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
Error occurred while calculating annotation data.
Log Message:
oups...

File Contents

# Content
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