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.7 by amagnan, Thu Apr 29 09:33:48 2010 UTC

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

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines