ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/UHHAnalysis/SFrameAnalysis/src/JetHists.cxx
Revision: 1.7
Committed: Wed Jun 12 12:37:29 2013 UTC (11 years, 10 months ago) by peiffer
Content type: text/plain
Branch: MAIN
CVS Tags: HEAD
Changes since 1.6: +1 -3 lines
Error occurred while calculating annotation data.
Log Message:
removed ObjectHandler

File Contents

# Content
1 #include "include/JetHists.h"
2 #include "include/SelectionModules.h"
3 #include <iostream>
4
5 using namespace std;
6
7 JetHists::JetHists(const char* name) : BaseHists(name)
8 {
9 // named default constructor
10
11 }
12
13 JetHists::~JetHists()
14 {
15 // default destructor, does nothing
16 }
17
18 void JetHists::Init()
19 {
20 // book all histograms here
21 Book( TH1F( "NJets", "number of jets", 13, -0.5, 12.5 ) );
22 Book( TH1F( "NJets_ly", "number of jets", 13, -0.5, 12.5 ) );
23
24 Book( TH1F( "NJets30", "number of jets with P_{T} > 30 GeV", 15, -0.5, 14.5 ) );
25 Book( TH1F( "NJets30_ly", "number of jets with P_{T} > 30 GeV", 15, -0.5, 14.5 ) );
26
27 Book( TH1F( "NJets50", "number of jets with P_{T} > 50 GeV", 10, -0.5, 9.5 ) );
28 Book( TH1F( "NJets50_ly", "number of jets with P_{T} > 50 GeV", 10, -0.5, 9.5 ) );
29
30 Book( TH1F( "NJets100", "number of jets with P_{T} > 100 GeV", 8, -0.5, 7.5 ) );
31 Book( TH1F( "NJets100_ly", "number of jets with P_{T} > 100 GeV", 8, -0.5, 7.5 ) );
32
33 double* logPtjet_bins = MakeLogBinning(50, 20, 1500);
34 double* logPtjet1_bins = MakeLogBinning(50, 100, 1500);
35 double* logPtjet2_bins = MakeLogBinning(50, 30, 1000);
36 double* logPtjet3_bins = MakeLogBinning(50, 20, 500);
37 double* logPtjet4_bins = MakeLogBinning(50, 20, 250);
38
39 double* logMjet1_bins = MakeLogBinning(50, 0, 300);
40 double* logMjet2_bins = MakeLogBinning(50, 0, 300);
41 double* logMjet3_bins = MakeLogBinning(50, 0, 300);
42 double* logMjet4_bins = MakeLogBinning(50, 0, 300);
43
44 Book( TH1F( "pt_lx"," p_{T} all jets", 50, logPtjet_bins));
45 Book( TH1F( "pt_lxy"," p_{T} all jets", 50, logPtjet_bins));
46
47 Book( TH1F( "eta","#eta all jets", 50,-3,3));
48 Book( TH1F( "phi","#phi all jets", 50, -PI, PI));
49
50 // jet pts
51 Book( TH1F( "pt_jet1_lx", "p_{T}^{jet 1} [GeV/c]", 50, logPtjet1_bins ) );
52 Book( TH1F( "pt_jet1_lxy", "p_{T}^{jet 1} [GeV/c]", 50, logPtjet1_bins ) );
53 Book( TH1F( "pt_jet2_lx", "p_{T}^{jet 2} [GeV/c]", 50, logPtjet2_bins ) );
54 Book( TH1F( "pt_jet2_lxy", "p_{T}^{jet 2} [GeV/c]", 50, logPtjet2_bins ) );
55 Book( TH1F( "pt_jet3_lx", "p_{T}^{jet 3} [GeV/c]", 50, logPtjet3_bins ) );
56 Book( TH1F( "pt_jet3_lxy", "p_{T}^{jet 3} [GeV/c]", 50, logPtjet3_bins ) );
57 Book( TH1F( "pt_jet4_lx", "p_{T}^{jet 4} [GeV/c]", 50, logPtjet4_bins ) );
58 Book( TH1F( "pt_jet4_lxy", "p_{T}^{jet 4} [GeV/c]", 50, logPtjet4_bins ) );
59
60 // jet etas
61 Book( TH1F( "eta_1","#eta leading jet",100,-3,3));
62 Book( TH1F( "eta_2","#eta 2nd jet",100,-3,3));
63 Book( TH1F( "eta_3","#eta 3rd jet",100,-3,3));
64 Book( TH1F( "eta_4","#eta 4th jet",100,-3,3));
65
66 // jet phis
67 Book( TH1F( "phi_1","#phi leading jet",100,-PI,PI));
68 Book( TH1F( "phi_2","#phi 2nd jet",100,-PI,PI));
69 Book( TH1F( "phi_3","#phi 3rd jet",100,-PI,PI));
70 Book( TH1F( "phi_4","#phi 4th jet",100,-PI,PI));
71
72 // jet mass
73 Book( TH1F( "m_1", "M^{jet 1} [GeV/c^{2}]", 100, 0, 300) );
74 Book( TH1F( "m_2", "M^{jet 2} [GeV/c^{2}]", 100, 0, 300) );
75 Book( TH1F( "m_3", "M^{jet 3} [GeV/c^{2}]", 100, 0, 300) );
76 Book( TH1F( "m_4", "M^{jet 4} [GeV/c^{2}]", 100, 0, 300) );
77
78 // Delta_R
79 Book( TH1F( "deltaRmin_1", "#Delta R_{min}(first jet, nearest jet)", 40, 0, 2.0) );
80 Book( TH1F( "deltaRmin_1_ly", "#Delta R_{min}(first jet, nearest jet)", 40, 0, 2.0) );
81 Book( TH1F( "deltaRmin_2", "#Delta R_{min}(2nd jet, nearest jet)", 40, 0, 2.0) );
82 Book( TH1F( "deltaRmin_2_ly", "#Delta R_{min}(2nd jet, nearest jet)", 40, 0, 2.0) );
83
84 // b-jets
85 Book( TH1F( "NbJets", "number of bJets", 8, -0.5, 7.5 ) );
86 Book( TH1F( "NbJets_ly", "number of bJets", 8, -0.5, 7.5 ) );
87
88 Book( TH1F( "pt_bJet_1_lx"," p_{T} leading b-jet", 50, logPtjet1_bins));
89 Book( TH1F( "pt_bJet_1_lxy"," p_{T} leading b-jet", 50, logPtjet1_bins));
90 Book( TH1F( "pt_bJet_2_lx"," p_{T} 2nd bJet", 50, logPtjet1_bins));
91 Book( TH1F( "pt_bJet_2_lxy"," p_{T} 2nd bJet", 50, logPtjet1_bins));
92
93 Book( TH1F( "eta_bJet_1"," #eta leading bJet",100,-3,3));
94 Book( TH1F( "eta_bJet_2"," #eta 2nd bJet",100,-3,3));
95 Book( TH1F( "phi_bJet_1"," #phi leading bJet",100,-PI,PI));
96 Book( TH1F( "phi_bJet_2"," #phi 2nd bJet",100,-PI,PI));
97 Book( TH1F( "bjet_tag","index of b jet",4,0.5,4.5));
98 }
99
100 void JetHists::Fill()
101 {
102 // important: get the event weight
103 EventCalc* calc = EventCalc::Instance();
104 double weight = calc -> GetWeight();
105
106 BaseCycleContainer* bcc = calc->GetBaseCycleContainer();
107
108 int NJets = bcc-> jets -> size();
109 Hist("NJets")->Fill(NJets, weight);
110 Hist("NJets_ly")->Fill(NJets, weight);
111
112 int NJets30 = 0;
113 int NJets50 = 0;
114 int NJets100 = 0;
115 for (unsigned int i =0; i<bcc->jets->size(); ++i) {
116 Jet jet = bcc->jets->at(i);
117 Hist("pt_lx") -> Fill(jet.pt(),weight );
118 Hist("pt_lxy") -> Fill(jet.pt(),weight);
119 Hist("eta") -> Fill(jet.eta(),weight);
120 Hist("phi") -> Fill(jet.phi(),weight);
121 if (jet.pt()>30) ++NJets30;
122 if (jet.pt()>50) ++NJets50;
123 if (jet.pt()>100) ++NJets100;
124 }
125 Hist("NJets30")->Fill(NJets30, weight);
126 Hist("NJets30_ly")->Fill(NJets30, weight);
127 Hist("NJets50")->Fill(NJets50, weight);
128 Hist("NJets50_ly")->Fill(NJets50, weight);
129 Hist("NJets100")->Fill(NJets100, weight);
130 Hist("NJets100_ly")->Fill(NJets100, weight);
131
132 sort(bcc->jets->begin(), bcc->jets->end(), HigherPt());
133 for (unsigned int i =0; i<=3; ++i) {
134 if (bcc->jets->size()> i) {
135 Jet jet = bcc->jets->at(i);
136 TString hname = TString::Format("pt_jet%d_lx", i+1);
137 Hist(hname)->Fill(jet.pt(),weight);
138 TString hname_ly = TString::Format("pt_jet%d_lxy", i+1);
139 Hist(hname_ly)->Fill(jet.pt(),weight);
140 TString hname_eta = TString::Format("eta_%d", i+1);
141 Hist(hname_eta)->Fill(jet.eta(),weight);
142 TString hname_phi = TString::Format("phi_%d", i+1);
143 Hist(hname_phi)->Fill(jet.phi(),weight);
144 TString hname_m = TString::Format("m_%d", i+1);
145 if(jet.v4().isTimelike())
146 Hist(hname_m)->Fill(jet.v4().M(), weight);
147 if (jet.btag_combinedSecondaryVertex()>0.244) {
148 Hist("bjet_tag")-> Fill(i+1,weight);
149 }
150 if (i<2) {
151 TString hname_deltaRmin = TString::Format("deltaRmin_%d", i+1);
152 Hist(hname_deltaRmin)->Fill( deltaRmin(&jet, bcc->jets), weight);
153 TString hname_deltaRmin_ly = TString::Format("deltaRmin_%d_ly", i+1);
154 Hist(hname_deltaRmin_ly)->Fill( deltaRmin(&jet, bcc->jets), weight);
155 }
156
157 }
158 }
159
160 vector<Jet> bjets;
161 for (unsigned int i =0; i<bcc->jets->size(); ++i) {
162 if(bcc->jets->at(i).btag_combinedSecondaryVertex()>0.244) {
163 bjets.push_back(bcc->jets->at(i));
164 }
165 }
166
167 int NbJets = bjets.size();
168 Hist("NbJets")-> Fill(NbJets,weight);
169 Hist("NbJets_ly")-> Fill(NbJets,weight);
170
171 sort(bjets.begin(), bjets.end(), HigherPt());
172 for (unsigned int i =0; i<=1; ++i) {
173 if (bjets.size()> i) {
174 Jet bjet = bjets[i];
175 TString hname = TString::Format("pt_bJet_%d_lx", i+1);
176 Hist(hname)->Fill(bjet.pt(),weight);
177 TString hname_ly = TString::Format("pt_bJet_%d_lxy", i+1);
178 Hist(hname_ly)->Fill(bjet.pt(),weight);
179 TString hname_eta = TString::Format("eta_bJet_%d", i+1);
180 Hist(hname_eta)->Fill(bjet.eta(),weight);
181 TString hname_phi = TString::Format("phi_bJet_%d", i+1);
182 Hist(hname_phi)->Fill(bjet.phi(),weight);
183 }
184 }
185 }
186
187
188
189 void JetHists::Finish()
190 {
191 // final calculations, like division and addition of certain histograms
192
193
194 }
195