ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/HbbAnalysis/src/HistosJetsBase.cc
(Generate patch)

Comparing UserCode/HbbAnalysis/src/HistosJetsBase.cc (file contents):
Revision 1.2 by amagnan, Wed Nov 4 15:20:10 2009 UTC vs.
Revision 1.5 by amagnan, Thu Feb 11 18:13:32 2010 UTC

# Line 19 | Line 19 | namespace HbbAnalysis {//namespace
19      p_deltaRmuons = aDir.make<TH1F>("p_deltaRmuons",";#Delta R(muons);N_{entries}",225,-1,8);
20      p_deltaRtaus = aDir.make<TH1F>("p_deltaRtaus",";#Delta R(taus);N_{entries}",225,-1,8);
21      //p_deltaRpftaus = aDir.make<TH1F>("p_deltaRpftaus",";#Delta R(pftaus);N_{entries}",225,-1,8);
22 +    p_deltaRleadJet = aDir.make<TH1F>("p_deltaRleadJet",";#Delta R(leadJet);N_{entries}",225,-1,8);
23 +    p_deltaRntoleadJet = aDir.make<TH1F>("p_deltaRntoleadJet",";#Delta R(ntoleadJet);N_{entries}",225,-1,8);
24  
25  
26 <
25 <    p_partonFlavour = aDir.make<TH1F>("p_partonFlavour",";parton flavour;N_{entries}",30,0,30);
26 >    p_partonFlavour = aDir.make<TH1F>("p_partonFlavour",";parton flavour;N_{entries}",50,-25,25);
27      p_hasJetCorrFactors = aDir.make<TH1F>("p_hasJetCorrFactors",";hasJetCorFactors;N_{entries}",2,0,2);
28    
29      std::vector<std::string> btagAlgos;
# Line 32 | Line 33 | namespace HbbAnalysis {//namespace
33      btagAlgos.push_back("jetBProbabilityBJetTags");
34      btagAlgos.push_back("jetProbabilityBJetTags");
35      btagAlgos.push_back("simpleSecondaryVertexBJetTags");
36 <    btagAlgos.push_back("softElectronBJetTags");
36 >    btagAlgos.push_back("softElectronByPtBJetTags");
37 >    btagAlgos.push_back("softElectronByIP3dBJetTags");
38      btagAlgos.push_back("softMuonBJetTags");
39 <    btagAlgos.push_back("softMuonNoIPBJetTags");
39 >    btagAlgos.push_back("softMuonByPtBJetTags");
40 >    btagAlgos.push_back("softMuonByIP3dBJetTags");
41      btagAlgos.push_back("trackCountingHighEffBJetTags");
42      btagAlgos.push_back("trackCountingHighPurBJetTags");
43  
44      const unsigned int nTags = btagAlgos.size();
45 <    assert (nTags == 11);
46 <    double min[11] = {0,0,-0.1,0,0,1,0,0,0,-5,-5};
47 <    double max[11] = {1,1,1,6,2,5,1,1,1,20,20};
45 >    assert (nTags == 13);
46 >    //double min[11] = {0,0,-0.1,0,0,1,0,0,0,-5,-5};
47 >    //double max[11] = {1,1,1,6,2,5,1,1,1,20,20};
48  
49      for (unsigned int i(0); i<nTags; i++){
50        for (int fs(0); fs<4; fs++){//loop on FS
# Line 143 | Line 146 | namespace HbbAnalysis {//namespace
146    }
147  
148    void HistosJetsBase::FillEventHistograms(const std::vector<HbbAnalysis::Jet> & abJetCol,
149 <                                           const std::vector<HbbAnalysis::Jet> & anonbJetCol)
149 >                                           const std::vector<HbbAnalysis::Jet> & anonbJetCol,
150 >                                           bool genMatched)
151    {
152  
153      p_nJets->Fill(abJetCol.size()+anonbJetCol.size());
154 <    p_nbJets->Fill(abJetCol.size());
154 >
155 >    unsigned int nbjets = 0;
156 >    for (std::vector<HbbAnalysis::Jet>::const_iterator iJet = abJetCol.begin();
157 >         iJet != abJetCol.end();
158 >         iJet++)
159 >      {
160 >        if (genMatched){
161 >          if (abs((*iJet).commonVars().partonFlavour) == 5) {
162 >            nbjets++;
163 >          }
164 >        }
165 >        // else {
166 >        //   const HbbAnalysis::BaseVars v1 = (*iJet).recoVars();
167 >        //   bool isBad = false;
168 >        //   //loop from the beginning, mark lowest btag discri jet as bad
169 >        //   for (std::vector<HbbAnalysis::Jet>::const_iterator iSec = abJetCol.begin();
170 >        //        iSec != abJetCol.end(); iSec++){//loop on second jet
171 >        //     if (iSec != iJet) {
172 >        //       const HbbAnalysis::BaseVars v2 = (*iSec).recoVars();
173 >        //       if (HbbAnalysis::DeltaR(v1,v2) < 0.7){
174 >        //      if ((*iJet).btagVars().tCHP < (*iSec).btagVars().tCHP) isBad = true;
175 >        //       }
176 >        //     }
177 >        //   }
178 >        //   if (!isBad) nbjets++;
179 >        // }
180 >      }
181 >    if (genMatched) p_nbJets->Fill(nbjets);
182 >    else p_nbJets->Fill(abJetCol.size());
183 >
184    }
185  
186    
# Line 163 | Line 196 | namespace HbbAnalysis {//namespace
196      //p_deltaRpftaus->Fill(deltaRpftau);
197    }
198  
199 +  void HistosJetsBase::FillHistograms(const HbbAnalysis::Jet & aJet,
200 +                                      const HbbAnalysis::Jet & aLeadJet,
201 +                                      const HbbAnalysis::Jet & aNtoLeadJet
202 +                                      ){
203 +    const HbbAnalysis::BaseVars v1 = aJet.recoVars();
204 +    const HbbAnalysis::BaseVars vL = aLeadJet.recoVars();
205 +    const HbbAnalysis::BaseVars vNtoL = aNtoLeadJet.recoVars();
206 +    
207 +    p_deltaRleadJet->Fill(HbbAnalysis::DeltaR(v1,vL));
208 +    p_deltaRntoleadJet->Fill(HbbAnalysis::DeltaR(v1,vNtoL));
209 +  }
210  
211    void HistosJetsBase::FillHistograms(const HbbAnalysis::Jet & aJet){//FillHistograms
212      
# Line 188 | Line 232 | namespace HbbAnalysis {//namespace
232      if (isMatched) p_bDiscriminator[4][lFlav]->Fill(aJet.btagVars().probability);
233      p_bDiscriminator[5][0]->Fill(aJet.btagVars().sSV);
234      if (isMatched) p_bDiscriminator[5][lFlav]->Fill(aJet.btagVars().sSV);
235 <    p_bDiscriminator[6][0]->Fill(aJet.btagVars().softElectron);
236 <    if (isMatched) p_bDiscriminator[6][lFlav]->Fill(aJet.btagVars().softElectron);
237 <    p_bDiscriminator[7][0]->Fill(aJet.btagVars().softMuon);
238 <    if (isMatched) p_bDiscriminator[7][lFlav]->Fill(aJet.btagVars().softMuon);
239 <    p_bDiscriminator[8][0]->Fill(aJet.btagVars().softMuonNoIP);
240 <    if (isMatched) p_bDiscriminator[8][lFlav]->Fill(aJet.btagVars().softMuonNoIP);
241 <    p_bDiscriminator[9][0]->Fill(aJet.btagVars().tCHE);
242 <    if (isMatched) p_bDiscriminator[9][lFlav]->Fill(aJet.btagVars().tCHE);
243 <    p_bDiscriminator[10][0]->Fill(aJet.btagVars().tCHP);
244 <    if (isMatched) p_bDiscriminator[10][lFlav]->Fill(aJet.btagVars().tCHP);
235 >    p_bDiscriminator[6][0]->Fill(aJet.btagVars().softElectronByPt);
236 >    if (isMatched) p_bDiscriminator[6][lFlav]->Fill(aJet.btagVars().softElectronByPt);
237 >    p_bDiscriminator[7][0]->Fill(aJet.btagVars().softElectronByIP3d);
238 >    if (isMatched) p_bDiscriminator[7][lFlav]->Fill(aJet.btagVars().softElectronByIP3d);
239 >    p_bDiscriminator[8][0]->Fill(aJet.btagVars().softMuon);
240 >    if (isMatched) p_bDiscriminator[8][lFlav]->Fill(aJet.btagVars().softMuon);
241 >    p_bDiscriminator[9][0]->Fill(aJet.btagVars().softMuonByPt);
242 >    if (isMatched) p_bDiscriminator[9][lFlav]->Fill(aJet.btagVars().softMuonByPt);
243 >    p_bDiscriminator[10][0]->Fill(aJet.btagVars().softMuonByIP3d);
244 >    if (isMatched) p_bDiscriminator[10][lFlav]->Fill(aJet.btagVars().softMuonByIP3d);
245 >    p_bDiscriminator[11][0]->Fill(aJet.btagVars().tCHE);
246 >    if (isMatched) p_bDiscriminator[11][lFlav]->Fill(aJet.btagVars().tCHE);
247 >    p_bDiscriminator[12][0]->Fill(aJet.btagVars().tCHP);
248 >    if (isMatched) p_bDiscriminator[12][lFlav]->Fill(aJet.btagVars().tCHP);
249  
250      if (aJet.genJetVars().valid){
251        p_pTgenjet[0]->Fill(aJet.genJetVars().pT);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines