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.4 by amagnan, Wed Feb 10 13:50:18 2010 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 51 | 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 145 | 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 165 | 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 188 | 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().softElectronByPt);
238 <    if (isMatched) p_bDiscriminator[6][lFlav]->Fill(aJet.btagVars().softElectronByPt);
239 <    p_bDiscriminator[7][0]->Fill(aJet.btagVars().softElectronByIP3d);
240 <    if (isMatched) p_bDiscriminator[7][lFlav]->Fill(aJet.btagVars().softElectronByIP3d);
241 <    p_bDiscriminator[8][0]->Fill(aJet.btagVars().softMuon);
242 <    if (isMatched) p_bDiscriminator[8][lFlav]->Fill(aJet.btagVars().softMuon);
243 <    p_bDiscriminator[9][0]->Fill(aJet.btagVars().softMuonByPt);
244 <    if (isMatched) p_bDiscriminator[9][lFlav]->Fill(aJet.btagVars().softMuonByPt);
245 <    p_bDiscriminator[10][0]->Fill(aJet.btagVars().softMuonByIP3d);
246 <    if (isMatched) p_bDiscriminator[10][lFlav]->Fill(aJet.btagVars().softMuonByIP3d);
247 <    p_bDiscriminator[11][0]->Fill(aJet.btagVars().tCHE);
248 <    if (isMatched) p_bDiscriminator[11][lFlav]->Fill(aJet.btagVars().tCHE);
249 <    p_bDiscriminator[12][0]->Fill(aJet.btagVars().tCHP);
250 <    if (isMatched) p_bDiscriminator[12][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