ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/HbbAnalysis/python/src/HistosJets.cc
Revision: 1.2
Committed: Wed Apr 15 11:57:41 2009 UTC (16 years ago) by amagnan
Content type: text/plain
Branch: MAIN
CVS Tags: HEAD
Changes since 1.1: +0 -0 lines
State: FILE REMOVED
Log Message:
oups...

File Contents

# User Rev Content
1 amagnan 1.1 #include <iostream>
2     #include <fstream>
3    
4     #include "UserCode/HbbAnalysis/interface/HistosJets.hh"
5    
6     namespace HbbAnalysis {//namespace
7    
8     void HistosJets::Initialise(TFileDirectory & aDir, std::string aName){
9    
10     CreateHistos(aName,aDir);
11    
12     p_nJets = aDir.make<TH1F>("p_nJets",";N_{jets};N_{entries}",50,0,50);
13    
14     p_partonFlavour = aDir.make<TH1F>("p_partonFlavour",";parton flavour;N_{entries}",22,0,22);
15     p_hasJetCorrFactors = aDir.make<TH1F>("p_hasJetCorrFactors",";hasJetCorFactors;N_{entries}",2,0,2);
16    
17     std::vector<std::string> btagAlgos;
18     btagAlgos.push_back("combinedSecondaryVertexBJetTags");
19     btagAlgos.push_back("combinedSecondaryVertexMVABJetTags");
20     btagAlgos.push_back("impactParameterMVABJetTags");
21     btagAlgos.push_back("jetBProbabilityBJetTags");
22     btagAlgos.push_back("jetProbabilityBJetTags");
23     btagAlgos.push_back("simpleSecondaryVertexBJetTags");
24     btagAlgos.push_back("softElectronBJetTags");
25     btagAlgos.push_back("softMuonBJetTags");
26     btagAlgos.push_back("softMuonNoIPBJetTags");
27     btagAlgos.push_back("trackCountingHighEffBJetTags");
28     btagAlgos.push_back("trackCountingHighPurBJetTags");
29    
30     const unsigned int nTags = btagAlgos.size();
31     assert (nTags == 11);
32     double min[11] = {0,0,-0.1,0,0,1,0,0,0,-5,-5};
33     double max[11] = {1,1,1,6,2,4,1,1,1,20,20};
34    
35     for (unsigned int i(0); i<nTags; i++){
36     std::ostringstream lTitle;
37     lTitle << "p_bDiscriminator_" << i ;
38     std::ostringstream lAxis;
39     lAxis << btagAlgos.at(i) << ";N_{entries}" ;
40     p_bDiscriminator[i] = aDir.make<TH1F>(lTitle.str().c_str(),lAxis.str().c_str(),100,min[i],max[i]);
41     }
42    
43     p_charge = aDir.make<TH1F>("p_charge",";charge;N_{entries}",6,-1,1);
44     p_nAssociatedTracks = aDir.make<TH1F>("p_nAssociatedTracks",";N_{tracks};N_{entries}",50,0,50);
45     p_isCaloJet = aDir.make<TH1F>("p_isCaloJet",";isCaloJet;N_{entries}",2,0,2);
46     p_isPFJet = aDir.make<TH1F>("p_isPFJet",";isPFJet;N_{entries}",2,0,2);
47     p_isBasicJet = aDir.make<TH1F>("p_isBasicJet",";isBasicJet;N_{entries}",2,0,2);
48    
49     //================== Calo Jet specific information ====================
50     p_maxEInEmTowers = aDir.make<TH1F>("p_maxEInEmTowers",";maxEInEmTowers;N_{entries}",200,0,200);
51     p_maxEInHadTowers = aDir.make<TH1F>("p_maxEInHadTowers",";maxEInHadTowers;N_{entries}",200,0,200);
52     p_energyFractionHadronic = aDir.make<TH1F>("p_energyFractionHadronic",";energyFractionHadronic;N_{entries}",100,0,2);
53     p_emEnergyFraction = aDir.make<TH1F>("p_emEnergyFraction",";emEnergyFraction;N_{entries}",100,0,2);
54     p_hadEnergyInHB = aDir.make<TH1F>("p_hadEnergyInHB",";hadEnergyInHB;N_{entries}",200,0,200);
55     p_hadEnergyInHO = aDir.make<TH1F>("p_hadEnergyInHO",";hadEnergyInHO;N_{entries}",200,0,200);
56     p_hadEnergyInHE = aDir.make<TH1F>("p_hadEnergyInHE",";hadEnergyInHE;N_{entries}",200,0,200);
57     p_hadEnergyInHF = aDir.make<TH1F>("p_hadEnergyInHF",";hadEnergyInHF;N_{entries}",200,0,200);
58     p_emEnergyInEB = aDir.make<TH1F>("p_emEnergyInEB",";emEnergyInEB;N_{entries}",200,0,200);
59     p_emEnergyInEE = aDir.make<TH1F>("p_emEnergyInEE",";emEnergyInEE;N_{entries}",200,0,200);
60     p_emEnergyInHF = aDir.make<TH1F>("p_emEnergyInHF",";emEnergyInHF;N_{entries}",200,0,200);
61     p_towersArea = aDir.make<TH1F>("p_towersArea",";towersArea;N_{entries}",100,0,1);
62     p_n90 = aDir.make<TH1F>("p_n90",";n90;N_{entries}",20,0,20);
63     p_n60 = aDir.make<TH1F>("p_n60",";n60;N_{entries}",20,0,20);
64    
65     //================== PF Jet specific information ====================
66     p_chargedHadronEnergy = aDir.make<TH1F>("p_chargedHadronEnergy",";chargedHadronEnergy;N_{entries}",200,0,200);
67     p_chargedHadronEnergyFraction = aDir.make<TH1F>("p_chargedHadronEnergyFraction",";chargedHadronEnergyFraction;N_{entries}",100,0,2);
68     p_neutralHadronEnergy = aDir.make<TH1F>("p_neutralHadronEnergy",";neutralHadronEnergy;N_{entries}",200,0,200);
69     p_neutralHadronEnergyFraction = aDir.make<TH1F>("p_neutralHadronEnergyFraction",";neutralHadronEnergyFraction;N_{entries}",100,0,2);
70     p_chargedEmEnergy = aDir.make<TH1F>("p_chargedEmEnergy",";chargedEmEnergy;N_{entries}",200,0,200);
71     p_chargedEmEnergyFraction = aDir.make<TH1F>("p_chargedEmEnergyFraction",";chargedEmEnergyFraction;N_{entries}",100,0,2);
72     p_chargedMuEnergy = aDir.make<TH1F>("p_chargedMuEnergy",";chargedMuEnergy;N_{entries}",200,0,200);
73     p_chargedMuEnergyFraction = aDir.make<TH1F>("p_chargedMuEnergyFraction",";chargedMuEnergyFraction;N_{entries}",100,0,2);
74     p_neutralEmEnergy = aDir.make<TH1F>("p_neutralEmEnergy",";neutralEmEnergy;N_{entries}",200,0,200);
75     p_neutralEmEnergyFraction = aDir.make<TH1F>("p_neutralEmEnergyFraction",";neutralEmEnergyFraction;N_{entries}",100,0,2);
76     p_chargedMultiplicity = aDir.make<TH1F>("p_chargedMultiplicity",";chargedMultiplicity;N_{entries}",20,0,20);
77     p_neutralMultiplicity = aDir.make<TH1F>("p_neutralMultiplicity",";neutralMultiplicity;N_{entries}",20,0,20);
78     p_muonMultiplicity = aDir.make<TH1F>("p_muonMultiplicity",";muonMultiplicity;N_{entries}",20,0,20);
79    
80     }
81    
82     void HistosJets::FillEventHistograms(edm::Handle<std::vector<pat::Jet> > aJetCol){
83    
84     //if (doGenMatched_) {
85     //unsigned int nMuMatched = 0;
86     //for (std::vector<pat::Muon>::const_iterator iMuon = aMuCol->begin();
87     // iMuon != aMuCol->end();
88     // iMuon++)
89     // {
90     // if (MatchesGenMuon(*iMuon)) nMuMatched++;
91     //}
92     //p_nMuons->Fill(nMuMatched);
93     //}
94     //else
95     p_nJets->Fill(aJetCol->size());
96    
97     }
98    
99     void HistosJets::FillHistograms(const pat::Jet & aJet, bool isLead){//FillHistograms
100    
101     FillBaseHistograms(aJet.pt(),aJet.eta(),aJet.phi());
102    
103     p_partonFlavour->Fill(aJet.partonFlavour());
104     p_hasJetCorrFactors->Fill(aJet.hasJetCorrFactors());
105    
106     const std::vector<std::pair<std::string, float> > & lPairDiscri = aJet.getPairDiscri();
107     const unsigned int lNTags = lPairDiscri.size();
108     //std::cout << "numberOfTags = " << lNTags << std::endl;
109     assert (lNTags <= 11);
110    
111     for (unsigned int i(0); i<lNTags; i++){
112     //std::cout << "tag " << i << ", name=" << lPairDiscri.at(i).first << std::endl;
113     p_bDiscriminator[i]->Fill(lPairDiscri.at(i).second);
114     }
115    
116     p_charge->Fill(aJet.charge());
117     p_nAssociatedTracks->Fill((aJet.associatedTracks()).size());
118     p_isCaloJet->Fill(aJet.isCaloJet());
119     p_isPFJet->Fill(aJet.isPFJet());
120     p_isBasicJet->Fill(aJet.isBasicJet());
121    
122     //================== Calo Jet specific information ====================
123     if (aJet.isCaloJet()) {
124     p_maxEInEmTowers->Fill(aJet.maxEInEmTowers());
125     p_maxEInHadTowers->Fill(aJet.maxEInHadTowers());
126     p_energyFractionHadronic->Fill(aJet.energyFractionHadronic());
127     p_emEnergyFraction->Fill(aJet.emEnergyFraction());
128     p_hadEnergyInHB->Fill(aJet.hadEnergyInHB());
129     p_hadEnergyInHO->Fill(aJet.hadEnergyInHO());
130     p_hadEnergyInHE->Fill(aJet.hadEnergyInHE());
131     p_hadEnergyInHF->Fill(aJet.hadEnergyInHF());
132     p_emEnergyInEB->Fill(aJet.emEnergyInEB());
133     p_emEnergyInEE->Fill(aJet.emEnergyInEE());
134     p_emEnergyInHF->Fill(aJet.emEnergyInHF());
135     p_towersArea->Fill(aJet.towersArea());
136     p_n90->Fill(aJet.n90());
137     p_n60->Fill(aJet.n60());
138     }
139    
140     // //================== PF Jet specific information ====================
141     if (aJet.isPFJet()){
142     p_chargedHadronEnergy->Fill(aJet.chargedHadronEnergy());
143     p_chargedHadronEnergyFraction->Fill(aJet.chargedHadronEnergyFraction());
144     p_neutralHadronEnergy->Fill(aJet.neutralHadronEnergy());
145     p_neutralHadronEnergyFraction->Fill(aJet.neutralHadronEnergyFraction());
146     p_chargedEmEnergy->Fill(aJet.chargedEmEnergy());
147     p_chargedEmEnergyFraction->Fill(aJet.chargedEmEnergyFraction());
148     p_chargedMuEnergy->Fill(aJet.chargedMuEnergy());
149     p_chargedMuEnergyFraction->Fill(aJet.chargedMuEnergyFraction());
150     p_neutralEmEnergy->Fill(aJet.neutralEmEnergy());
151     p_neutralEmEnergyFraction->Fill(aJet.neutralEmEnergyFraction());
152     p_chargedMultiplicity->Fill(aJet.chargedMultiplicity());
153     p_neutralMultiplicity->Fill(aJet.neutralMultiplicity());
154     p_muonMultiplicity->Fill(aJet.muonMultiplicity());
155     }
156    
157    
158    
159     }//FillHistograms
160    
161     }//namespace
162    
163