ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/csander/JetResponse/JetResolutions.h
Revision: 1.1.1.1 (vendor branch)
Committed: Mon Sep 20 08:04:36 2010 UTC (14 years, 7 months ago) by csander
Content type: text/plain
Branch: JetResponse, MAIN
CVS Tags: start, HEAD
Changes since 1.1: +0 -0 lines
Error occurred while calculating annotation data.
Log Message:
Jet resolutions from MC
CVS ----------------------------------------------------------------------

File Contents

# Content
1 //////////////////////////////////////////////////////////
2 // This class has been automatically generated on
3 // Wed Apr 14 14:19:35 2010 by ROOT version 5.20/00
4 // from TTree DiJetTree/
5 // found on file: Summer09QCDFlat-MC_31X_V9_7TeV-v1_E/Summer09QCDFlat_Pt15to3000MC_31X_V9_7TeV-v1_1.root
6 //////////////////////////////////////////////////////////
7
8 #ifndef JetResolutions_h
9 #define JetResolutions_h
10
11 #include <TROOT.h>
12 #include <TChain.h>
13 #include <TFile.h>
14 #include <TSelector.h>
15 #include <TH1F.h>
16 #include <TF1.h>
17 #include <TStyle.h>
18 #include <TLorentzVector.h>
19 #include <TMath.h>
20 #include <TCanvas.h>
21
22 #include <vector>
23 #include <string>
24 #include <cstring>
25 #include <iostream>
26
27 using namespace std;
28
29 class JetResolutions: public TSelector {
30 public:
31 TTree *fChain; //!pointer to the analyzed TTree or TChain
32
33 // Declaration of leaf types
34 UInt_t RunNumber;
35 UInt_t LumiBlockNumber;
36 UInt_t EventNumber;
37 Bool_t HltPhysicsDelcared;
38 Int_t VtxNTracks;
39 Float_t VtxPosX;
40 Float_t VtxPosY;
41 Float_t VtxPosZ;
42 Float_t VtxNormalizedChi2;
43 Float_t VtxNDof;
44 Bool_t VtxIsFake;
45 Int_t NobjTow;
46 Int_t TowId[1000]; //[NobjTow]
47 Int_t TowId_phi[1000]; //[NobjTow]
48 Int_t TowId_eta[1000]; //[NobjTow]
49 Float_t TowEt[1000]; //[NobjTow]
50 Float_t TowEta[1000]; //[NobjTow]
51 Float_t TowPhi[1000]; //[NobjTow]
52 Float_t TowE[1000]; //[NobjTow]
53 Float_t TowEm[1000]; //[NobjTow]
54 Float_t TowHad[1000]; //[NobjTow]
55 Float_t TowOE[1000]; //[NobjTow]
56 Int_t Tow_jetidx[1000]; //[NobjTow]
57 UInt_t TowNumBadEcalCells[1000]; //[NobjTow]
58 UInt_t TowNumBadHcalCells[1000]; //[NobjTow]
59 UInt_t TowNumProblematicEcalCells[1000]; //[NobjTow]
60 UInt_t TowNumProblematicHcalCells[1000]; //[NobjTow]
61 UInt_t TowNumRecoveredEcalCells[1000]; //[NobjTow]
62 UInt_t TowNumRecoveredHcalCells[1000]; //[NobjTow]
63 Int_t NobjTrack;
64 Int_t TrackTowId[1000]; //[NobjTrack]
65 Int_t TrackTowIdPhi[1000]; //[NobjTrack]
66 Int_t TrackTowIdEta[1000]; //[NobjTrack]
67 Int_t TrackId[1000]; //[NobjTrack]
68 Int_t TrackNHits[1000]; //[NobjTrack]
69 Bool_t TrackQualityL[1000]; //[NobjTrack]
70 Bool_t TrackQualityT[1000]; //[NobjTrack]
71 Bool_t TrackQualityHP[1000]; //[NobjTrack]
72 Float_t TrackChi2[1000]; //[NobjTrack]
73 Float_t TrackPt[1000]; //[NobjTrack]
74 Float_t TrackEta[1000]; //[NobjTrack]
75 Float_t TrackPhi[1000]; //[NobjTrack]
76 Float_t TrackP[1000]; //[NobjTrack]
77 Float_t TrackDR[1000]; //[NobjTrack]
78 Float_t TrackPhiOut[1000]; //[NobjTrack]
79 Float_t TrackEtaOut[1000]; //[NobjTrack]
80 Float_t TrackDROut[1000]; //[NobjTrack]
81 Float_t TrackEMC1[1000]; //[NobjTrack]
82 Float_t TrackEMC3[1000]; //[NobjTrack]
83 Float_t TrackEMC5[1000]; //[NobjTrack]
84 Float_t TrackHAC1[1000]; //[NobjTrack]
85 Float_t TrackHAC3[1000]; //[NobjTrack]
86 Float_t TrackHAC5[1000]; //[NobjTrack]
87 Int_t Track_jetidx[1000]; //[NobjTrack]
88 Float_t MuDR[1000]; //[NobjTrack]
89 Float_t MuDE[1000]; //[NobjTrack]
90 Float_t TrackD0[1000]; //[NobjTrack]
91 Float_t TrackZ0[1000]; //[NobjTrack]
92 Int_t NobjJet;
93 Float_t JetPt[50]; //[NobjJet]
94 Float_t JetPhi[50]; //[NobjJet]
95 Float_t JetEta[50]; //[NobjJet]
96 Float_t JetEt[50]; //[NobjJet]
97 Float_t JetE[50]; //[NobjJet]
98 Int_t JetN90Hits[50]; //[NobjJet]
99 Float_t JetEMF[50]; //[NobjJet]
100 Float_t JetFHPD[50]; //[NobjJet]
101 Float_t JetFRBX[50]; //[NobjJet]
102 Float_t JetEtWeightedSigmaPhi[50]; //[NobjJet]
103 Float_t JetEtWeightedSigmaEta[50]; //[NobjJet]
104 Float_t JetCorrZSP[50]; //[NobjJet]
105 Float_t JetCorrL2[50]; //[NobjJet]
106 Float_t JetCorrL3[50]; //[NobjJet]
107 Float_t JetCorrJPT[50]; //[NobjJet]
108 Float_t JetCorrL2L3[50]; //[NobjJet]
109 Float_t JetCorrL2L3JPT[50]; //[NobjJet]
110 Float_t JetGenJetDeltaR[50]; //[NobjJet]
111 Float_t GenJetPt[50]; //[NobjJet]
112 Float_t GenJetPhi[50]; //[NobjJet]
113 Float_t GenJetEta[50]; //[NobjJet]
114 Float_t GenJetEt[50]; //[NobjJet]
115 Float_t GenJetE[50]; //[NobjJet]
116 Int_t NobjGenJet;
117 Float_t GenJetColPt[50]; //[NobjGenJet]
118 Float_t GenJetColPhi[50]; //[NobjGenJet]
119 Float_t GenJetColEta[50]; //[NobjGenJet]
120 Float_t GenJetColEt[50]; //[NobjGenJet]
121 Float_t GenJetColE[50]; //[NobjGenJet]
122 Float_t GenJetColEmE[50]; //[NobjGenJet]
123 Float_t GenJetColHadE[50]; //[NobjGenJet]
124 Float_t GenJetColInvE[50]; //[NobjGenJet]
125 Float_t GenJetColAuxE[50]; //[NobjGenJet]
126 Int_t GenJetColJetIdx[50]; //[NobjGenJet]
127 Int_t NobjGenJetPart;
128 Float_t GenJetPartE[1000]; //[NobjGenJetPart]
129 Float_t GenJetPartPt[1000]; //[NobjGenJetPart]
130 Float_t GenJetPartEta[1000]; //[NobjGenJetPart]
131 Float_t GenJetPartPhi[1000]; //[NobjGenJetPart]
132 Int_t GenJetPartPDG[1000]; //[NobjGenJetPart]
133 Int_t GenJetPartGenJetColIdx[1000]; //[NobjGenJetPart]
134 Float_t GenPartPt_algo[50]; //[NobjJet]
135 Float_t GenPartPhi_algo[50]; //[NobjJet]
136 Float_t GenPartEta_algo[50]; //[NobjJet]
137 Float_t GenPartEt_algo[50]; //[NobjJet]
138 Float_t GenPartE_algo[50]; //[NobjJet]
139 Float_t GenPartM_algo[50]; //[NobjJet]
140 Int_t GenPartId_algo[50]; //[NobjJet]
141 Float_t GenPartPt_phys[50]; //[NobjJet]
142 Float_t GenPartPhi_phys[50]; //[NobjJet]
143 Float_t GenPartEta_phys[50]; //[NobjJet]
144 Float_t GenPartEt_phys[50]; //[NobjJet]
145 Float_t GenPartE_phys[50]; //[NobjJet]
146 Float_t GenPartM_phys[50]; //[NobjJet]
147 Int_t GenPartId_phys[50]; //[NobjJet]
148 Float_t GenEvtScale;
149 Float_t Met;
150 Float_t MetPhi;
151 Float_t MetSum;
152 Float_t Weight;
153
154 // List of branches
155 TBranch *b_RunNumber; //!
156 TBranch *b_LumiBlockNumber; //!
157 TBranch *b_EventNumber; //!
158 TBranch *b_HltPhysicsDelcared; //!
159 TBranch *b_VtxNTracks; //!
160 TBranch *b_VtxPosX; //!
161 TBranch *b_VtxPosY; //!
162 TBranch *b_VtxPosZ; //!
163 TBranch *b_VtxNormalizedChi2; //!
164 TBranch *b_VtxNDof; //!
165 TBranch *b_VtxIsFake; //!
166 TBranch *b_NobjTow; //!
167 TBranch *b_TowId; //!
168 TBranch *b_TowId_phi; //!
169 TBranch *b_TowId_eta; //!
170 TBranch *b_TowEt; //!
171 TBranch *b_TowEta; //!
172 TBranch *b_TowPhi; //!
173 TBranch *b_TowE; //!
174 TBranch *b_TowEm; //!
175 TBranch *b_TowHad; //!
176 TBranch *b_TowOE; //!
177 TBranch *b_Tow_jetidx; //!
178 TBranch *b_TowNumBadEcalCells; //!
179 TBranch *b_TowNumBadHcalCells; //!
180 TBranch *b_TowNumProblematicEcalCells; //!
181 TBranch *b_TowNumProblematicHcalCells; //!
182 TBranch *b_TowNumRecoveredEcalCells; //!
183 TBranch *b_TowNumRecoveredHcalCells; //!
184 TBranch *b_NobjTrack; //!
185 TBranch *b_TrackTowId; //!
186 TBranch *b_TrackTowIdPhi; //!
187 TBranch *b_TrackTowIdEta; //!
188 TBranch *b_TrackId; //!
189 TBranch *b_TrackNHits; //!
190 TBranch *b_TrackQualityL; //!
191 TBranch *b_TrackQualityT; //!
192 TBranch *b_TrackQualityHP; //!
193 TBranch *b_TrackChi2; //!
194 TBranch *b_TrackPt; //!
195 TBranch *b_TrackEta; //!
196 TBranch *b_TrackPhi; //!
197 TBranch *b_TrackP; //!
198 TBranch *b_TrackDR; //!
199 TBranch *b_TrackPhiOut; //!
200 TBranch *b_TrackEtaOut; //!
201 TBranch *b_TrackDROut; //!
202 TBranch *b_TrackEMC1; //!
203 TBranch *b_TrackEMC3; //!
204 TBranch *b_TrackEMC5; //!
205 TBranch *b_TrackHAC1; //!
206 TBranch *b_TrackHAC3; //!
207 TBranch *b_TrackHAC5; //!
208 TBranch *b_Track_jetidx; //!
209 TBranch *b_MuDR; //!
210 TBranch *b_MuDE; //!
211 TBranch *b_TrackD0; //!
212 TBranch *b_TrackZ0; //!
213 TBranch *b_NobjJet; //!
214 TBranch *b_JetPt; //!
215 TBranch *b_JetPhi; //!
216 TBranch *b_JetEta; //!
217 TBranch *b_JetEt; //!
218 TBranch *b_JetE; //!
219 TBranch *b_JetN90Hits; //!
220 TBranch *b_JetEMF; //!
221 TBranch *b_JetFHPD; //!
222 TBranch *b_JetFRBX; //!
223 TBranch *b_JetEtWeightedSigmaPhi; //!
224 TBranch *b_JetEtWeightedSigmaEta; //!
225 TBranch *b_JetCorrZSP; //!
226 TBranch *b_JetCorrL2; //!
227 TBranch *b_JetCorrL3; //!
228 TBranch *b_JetCorrJPT; //!
229 TBranch *b_JetCorrL2L3; //!
230 TBranch *b_JetCorrL2L3JPT; //!
231 TBranch *b_JetGenJetDeltaR; //!
232 TBranch *b_GenJetPt; //!
233 TBranch *b_GenJetPhi; //!
234 TBranch *b_GenJetEta; //!
235 TBranch *b_GenJetEt; //!
236 TBranch *b_GenJetE; //!
237 TBranch *b_NobjGenJet; //!
238 TBranch *b_GenJetColPt; //!
239 TBranch *b_GenJetColPhi; //!
240 TBranch *b_GenJetColEta; //!
241 TBranch *b_GenJetColEt; //!
242 TBranch *b_GenJetColE; //!
243 TBranch *b_GenJetColEmE; //!
244 TBranch *b_GenJetColHadE; //!
245 TBranch *b_GenJetColInvE; //!
246 TBranch *b_GenJetColAuxE; //!
247 TBranch *b_GenJetColJetIdx; //!
248 TBranch *b_NobjGenJetPart; //!
249 TBranch *b_GenJetPartE; //!
250 TBranch *b_GenJetPartPt; //!
251 TBranch *b_GenJetPartEta; //!
252 TBranch *b_GenJetPartPhi; //!
253 TBranch *b_GenJetPartPDG; //!
254 TBranch *b_GenJetPartGenJetColIdx; //!
255 TBranch *b_GenPartPt_algo; //!
256 TBranch *b_GenPartPhi_algo; //!
257 TBranch *b_GenPartEta_algo; //!
258 TBranch *b_GenPartEt_algo; //!
259 TBranch *b_GenPartE_algo; //!
260 TBranch *b_GenPartM_algo; //!
261 TBranch *b_GenPartId_algo; //!
262 TBranch *b_GenPartPt_phys; //!
263 TBranch *b_GenPartPhi_phys; //!
264 TBranch *b_GenPartEta_phys; //!
265 TBranch *b_GenPartEt_phys; //!
266 TBranch *b_GenPartE_phys; //!
267 TBranch *b_GenPartM_phys; //!
268 TBranch *b_GenPartId_phys; //!
269 TBranch *b_GenEvtScale; //!
270 TBranch *b_Met; //!
271 TBranch *b_MetPhi; //!
272 TBranch *b_MetSum; //!
273 TBranch *b_Weight; //!
274
275 JetResolutions(TTree * /*tree*/= 0) {
276 }
277 virtual ~JetResolutions() {
278 }
279 virtual Int_t Version() const {
280 return 2;
281 }
282 virtual void Begin(TTree *tree);
283 virtual void SlaveBegin(TTree *tree);
284 virtual void Init(TTree *tree);
285 virtual Bool_t Notify();
286 virtual Bool_t Process(Long64_t entry);
287 virtual Int_t GetEntry(Long64_t entry, Int_t getall = 0) {
288 return fChain ? fChain->GetTree()->GetEntry(entry, getall) : 0;
289 }
290 virtual void SetOption(const char *option) {
291 fOption = option;
292 }
293 virtual void SetObject(TObject *obj) {
294 fObject = obj;
295 }
296 virtual void SetInputList(TList *input) {
297 fInput = input;
298 }
299 virtual TList *GetOutputList() const {
300 return fOutput;
301 }
302 virtual void SlaveTerminate();
303 virtual void Terminate();
304
305 //// Members
306 int EBin(const double& e);
307 int PtBin(const double& pt);
308 int EtaBin(const double& eta);
309 vector<vector<TH1F*> > h_JetResPt_Pt;
310 vector<vector<TH1F*> > h_JetResPt_E;
311 vector<vector<TH1F*> > h_JetResEta_Pt;
312 vector<vector<TH1F*> > h_JetResEta_E;
313 vector<vector<TH1F*> > h_JetResPhi_Pt;
314 vector<vector<TH1F*> > h_JetResPhi_E;
315 vector<double> EBinEdges;
316 vector<double> PtBinEdges;
317 vector<double> EtaBinEdges;
318
319 //ClassDef(JetResolutions,0);
320 };
321
322 #endif
323
324 #ifdef JetResolutions_cxx
325 void JetResolutions::Init(TTree *tree)
326 {
327 // The Init() function is called when the selector needs to initialize
328 // a new tree or chain. Typically here the branch addresses and branch
329 // pointers of the tree will be set.
330 // It is normally not necessary to make changes to the generated
331 // code, but the routine can be extended by the user if needed.
332 // Init() will be called many times when running on PROOF
333 // (once per file to be processed).
334
335 // Set branch addresses and branch pointers
336 if (!tree) return;
337 fChain = tree;
338 //fChain->SetMakeClass(1);
339
340 fChain->SetBranchAddress("RunNumber", &RunNumber, &b_RunNumber);
341 fChain->SetBranchAddress("LumiBlockNumber", &LumiBlockNumber, &b_LumiBlockNumber);
342 fChain->SetBranchAddress("EventNumber", &EventNumber, &b_EventNumber);
343 fChain->SetBranchAddress("HltPhysicsDelcared", &HltPhysicsDelcared, &b_HltPhysicsDelcared);
344 fChain->SetBranchAddress("VtxNTracks", &VtxNTracks, &b_VtxNTracks);
345 fChain->SetBranchAddress("VtxPosX", &VtxPosX, &b_VtxPosX);
346 fChain->SetBranchAddress("VtxPosY", &VtxPosY, &b_VtxPosY);
347 fChain->SetBranchAddress("VtxPosZ", &VtxPosZ, &b_VtxPosZ);
348 fChain->SetBranchAddress("VtxNormalizedChi2", &VtxNormalizedChi2, &b_VtxNormalizedChi2);
349 fChain->SetBranchAddress("VtxNDof", &VtxNDof, &b_VtxNDof);
350 fChain->SetBranchAddress("VtxIsFake", &VtxIsFake, &b_VtxIsFake);
351 fChain->SetBranchAddress("NobjTow", &NobjTow, &b_NobjTow);
352 fChain->SetBranchAddress("TowId", TowId, &b_TowId);
353 fChain->SetBranchAddress("TowId_phi", TowId_phi, &b_TowId_phi);
354 fChain->SetBranchAddress("TowId_eta", TowId_eta, &b_TowId_eta);
355 fChain->SetBranchAddress("TowEt", TowEt, &b_TowEt);
356 fChain->SetBranchAddress("TowEta", TowEta, &b_TowEta);
357 fChain->SetBranchAddress("TowPhi", TowPhi, &b_TowPhi);
358 fChain->SetBranchAddress("TowE", TowE, &b_TowE);
359 fChain->SetBranchAddress("TowEm", TowEm, &b_TowEm);
360 fChain->SetBranchAddress("TowHad", TowHad, &b_TowHad);
361 fChain->SetBranchAddress("TowOE", TowOE, &b_TowOE);
362 fChain->SetBranchAddress("Tow_jetidx", Tow_jetidx, &b_Tow_jetidx);
363 fChain->SetBranchAddress("TowNumBadEcalCells", TowNumBadEcalCells, &b_TowNumBadEcalCells);
364 fChain->SetBranchAddress("TowNumBadHcalCells", TowNumBadHcalCells, &b_TowNumBadHcalCells);
365 fChain->SetBranchAddress("TowNumProblematicEcalCells", TowNumProblematicEcalCells, &b_TowNumProblematicEcalCells);
366 fChain->SetBranchAddress("TowNumProblematicHcalCells", TowNumProblematicHcalCells, &b_TowNumProblematicHcalCells);
367 fChain->SetBranchAddress("TowNumRecoveredEcalCells", TowNumRecoveredEcalCells, &b_TowNumRecoveredEcalCells);
368 fChain->SetBranchAddress("TowNumRecoveredHcalCells", TowNumRecoveredHcalCells, &b_TowNumRecoveredHcalCells);
369 fChain->SetBranchAddress("NobjTrack", &NobjTrack, &b_NobjTrack);
370 fChain->SetBranchAddress("TrackTowId", TrackTowId, &b_TrackTowId);
371 fChain->SetBranchAddress("TrackTowIdPhi", TrackTowIdPhi, &b_TrackTowIdPhi);
372 fChain->SetBranchAddress("TrackTowIdEta", TrackTowIdEta, &b_TrackTowIdEta);
373 fChain->SetBranchAddress("TrackId", TrackId, &b_TrackId);
374 fChain->SetBranchAddress("TrackNHits", TrackNHits, &b_TrackNHits);
375 fChain->SetBranchAddress("TrackQualityL", TrackQualityL, &b_TrackQualityL);
376 fChain->SetBranchAddress("TrackQualityT", TrackQualityT, &b_TrackQualityT);
377 fChain->SetBranchAddress("TrackQualityHP", TrackQualityHP, &b_TrackQualityHP);
378 fChain->SetBranchAddress("TrackChi2", TrackChi2, &b_TrackChi2);
379 fChain->SetBranchAddress("TrackPt", TrackPt, &b_TrackPt);
380 fChain->SetBranchAddress("TrackEta", TrackEta, &b_TrackEta);
381 fChain->SetBranchAddress("TrackPhi", TrackPhi, &b_TrackPhi);
382 fChain->SetBranchAddress("TrackP", TrackP, &b_TrackP);
383 fChain->SetBranchAddress("TrackDR", TrackDR, &b_TrackDR);
384 fChain->SetBranchAddress("TrackPhiOut", TrackPhiOut, &b_TrackPhiOut);
385 fChain->SetBranchAddress("TrackEtaOut", TrackEtaOut, &b_TrackEtaOut);
386 fChain->SetBranchAddress("TrackDROut", TrackDROut, &b_TrackDROut);
387 fChain->SetBranchAddress("TrackEMC1", TrackEMC1, &b_TrackEMC1);
388 fChain->SetBranchAddress("TrackEMC3", TrackEMC3, &b_TrackEMC3);
389 fChain->SetBranchAddress("TrackEMC5", TrackEMC5, &b_TrackEMC5);
390 fChain->SetBranchAddress("TrackHAC1", TrackHAC1, &b_TrackHAC1);
391 fChain->SetBranchAddress("TrackHAC3", TrackHAC3, &b_TrackHAC3);
392 fChain->SetBranchAddress("TrackHAC5", TrackHAC5, &b_TrackHAC5);
393 fChain->SetBranchAddress("Track_jetidx", Track_jetidx, &b_Track_jetidx);
394 fChain->SetBranchAddress("MuDR", MuDR, &b_MuDR);
395 fChain->SetBranchAddress("MuDE", MuDE, &b_MuDE);
396 fChain->SetBranchAddress("TrackD0", TrackD0, &b_TrackD0);
397 fChain->SetBranchAddress("TrackZ0", TrackZ0, &b_TrackZ0);
398 fChain->SetBranchAddress("NobjJet", &NobjJet, &b_NobjJet);
399 fChain->SetBranchAddress("JetPt", JetPt, &b_JetPt);
400 fChain->SetBranchAddress("JetPhi", JetPhi, &b_JetPhi);
401 fChain->SetBranchAddress("JetEta", JetEta, &b_JetEta);
402 fChain->SetBranchAddress("JetEt", JetEt, &b_JetEt);
403 fChain->SetBranchAddress("JetE", JetE, &b_JetE);
404 fChain->SetBranchAddress("JetN90Hits", JetN90Hits, &b_JetN90Hits);
405 fChain->SetBranchAddress("JetEMF", JetEMF, &b_JetEMF);
406 fChain->SetBranchAddress("JetFHPD", JetFHPD, &b_JetFHPD);
407 fChain->SetBranchAddress("JetFRBX", JetFRBX, &b_JetFRBX);
408 fChain->SetBranchAddress("JetEtWeightedSigmaPhi", JetEtWeightedSigmaPhi, &b_JetEtWeightedSigmaPhi);
409 fChain->SetBranchAddress("JetEtWeightedSigmaEta", JetEtWeightedSigmaEta, &b_JetEtWeightedSigmaEta);
410 fChain->SetBranchAddress("JetCorrZSP", JetCorrZSP, &b_JetCorrZSP);
411 fChain->SetBranchAddress("JetCorrL2", JetCorrL2, &b_JetCorrL2);
412 fChain->SetBranchAddress("JetCorrL3", JetCorrL3, &b_JetCorrL3);
413 fChain->SetBranchAddress("JetCorrJPT", JetCorrJPT, &b_JetCorrJPT);
414 fChain->SetBranchAddress("JetCorrL2L3", JetCorrL2L3, &b_JetCorrL2L3);
415 fChain->SetBranchAddress("JetCorrL2L3JPT", JetCorrL2L3JPT, &b_JetCorrL2L3JPT);
416 fChain->SetBranchAddress("JetGenJetDeltaR", JetGenJetDeltaR, &b_JetGenJetDeltaR);
417 fChain->SetBranchAddress("GenJetPt", GenJetPt, &b_GenJetPt);
418 fChain->SetBranchAddress("GenJetPhi", GenJetPhi, &b_GenJetPhi);
419 fChain->SetBranchAddress("GenJetEta", GenJetEta, &b_GenJetEta);
420 fChain->SetBranchAddress("GenJetEt", GenJetEt, &b_GenJetEt);
421 fChain->SetBranchAddress("GenJetE", GenJetE, &b_GenJetE);
422 fChain->SetBranchAddress("NobjGenJet", &NobjGenJet, &b_NobjGenJet);
423 fChain->SetBranchAddress("GenJetColPt", GenJetColPt, &b_GenJetColPt);
424 fChain->SetBranchAddress("GenJetColPhi", GenJetColPhi, &b_GenJetColPhi);
425 fChain->SetBranchAddress("GenJetColEta", GenJetColEta, &b_GenJetColEta);
426 fChain->SetBranchAddress("GenJetColEt", GenJetColEt, &b_GenJetColEt);
427 fChain->SetBranchAddress("GenJetColE", GenJetColE, &b_GenJetColE);
428 fChain->SetBranchAddress("GenJetColEmE", GenJetColEmE, &b_GenJetColEmE);
429 fChain->SetBranchAddress("GenJetColHadE", GenJetColHadE, &b_GenJetColHadE);
430 fChain->SetBranchAddress("GenJetColInvE", GenJetColInvE, &b_GenJetColInvE);
431 fChain->SetBranchAddress("GenJetColAuxE", GenJetColAuxE, &b_GenJetColAuxE);
432 fChain->SetBranchAddress("GenJetColJetIdx", GenJetColJetIdx, &b_GenJetColJetIdx);
433 fChain->SetBranchAddress("NobjGenJetPart", &NobjGenJetPart, &b_NobjGenJetPart);
434 fChain->SetBranchAddress("GenJetPartE", GenJetPartE, &b_GenJetPartE);
435 fChain->SetBranchAddress("GenJetPartPt", GenJetPartPt, &b_GenJetPartPt);
436 fChain->SetBranchAddress("GenJetPartEta", GenJetPartEta, &b_GenJetPartEta);
437 fChain->SetBranchAddress("GenJetPartPhi", GenJetPartPhi, &b_GenJetPartPhi);
438 fChain->SetBranchAddress("GenJetPartPDG", GenJetPartPDG, &b_GenJetPartPDG);
439 fChain->SetBranchAddress("GenJetPartGenJetColIdx", GenJetPartGenJetColIdx, &b_GenJetPartGenJetColIdx);
440 fChain->SetBranchAddress("GenPartPt_algo", GenPartPt_algo, &b_GenPartPt_algo);
441 fChain->SetBranchAddress("GenPartPhi_algo", GenPartPhi_algo, &b_GenPartPhi_algo);
442 fChain->SetBranchAddress("GenPartEta_algo", GenPartEta_algo, &b_GenPartEta_algo);
443 fChain->SetBranchAddress("GenPartEt_algo", GenPartEt_algo, &b_GenPartEt_algo);
444 fChain->SetBranchAddress("GenPartE_algo", GenPartE_algo, &b_GenPartE_algo);
445 fChain->SetBranchAddress("GenPartM_algo", GenPartM_algo, &b_GenPartM_algo);
446 fChain->SetBranchAddress("GenPartId_algo", GenPartId_algo, &b_GenPartId_algo);
447 fChain->SetBranchAddress("GenPartPt_phys", GenPartPt_phys, &b_GenPartPt_phys);
448 fChain->SetBranchAddress("GenPartPhi_phys", GenPartPhi_phys, &b_GenPartPhi_phys);
449 fChain->SetBranchAddress("GenPartEta_phys", GenPartEta_phys, &b_GenPartEta_phys);
450 fChain->SetBranchAddress("GenPartEt_phys", GenPartEt_phys, &b_GenPartEt_phys);
451 fChain->SetBranchAddress("GenPartE_phys", GenPartE_phys, &b_GenPartE_phys);
452 fChain->SetBranchAddress("GenPartM_phys", GenPartM_phys, &b_GenPartM_phys);
453 fChain->SetBranchAddress("GenPartId_phys", GenPartId_phys, &b_GenPartId_phys);
454 fChain->SetBranchAddress("GenEvtScale", &GenEvtScale, &b_GenEvtScale);
455 fChain->SetBranchAddress("Met", &Met, &b_Met);
456 fChain->SetBranchAddress("MetPhi", &MetPhi, &b_MetPhi);
457 fChain->SetBranchAddress("MetSum", &MetSum, &b_MetSum);
458 fChain->SetBranchAddress("Weight", &Weight, &b_Weight);
459 }
460
461 Bool_t JetResolutions::Notify()
462 {
463 // The Notify() function is called when a new file is opened. This
464 // can be either for a new TTree in a TChain or when when a new TTree
465 // is started when using PROOF. It is normally not necessary to make changes
466 // to the generated code, but the routine can be extended by the
467 // user if needed. The return value is currently not used.
468
469 return kTRUE;
470 }
471
472 //Crystal ball function for signal, parameters are 0:alpha, 1:n, 2:mean, 3:sigma, 4:normalization;
473 Double_t CrystalBall(Double_t *x,Double_t *par) {
474
475 Double_t t = (x[0]-par[2])/par[3];
476 if (par[0] < 0) t = -t;
477
478 Double_t absAlpha = fabs((Double_t)par[0]);
479
480 if (t >= -absAlpha) {
481 return par[4]*exp(-0.5*t*t);
482 }
483 else {
484 Double_t a = TMath::Power(par[1]/absAlpha,par[1])*exp(-0.5*absAlpha*absAlpha);
485 Double_t b = par[1]/absAlpha - absAlpha;
486
487 return par[4]*(a/TMath::Power(b - t, par[1]));
488 }
489 }
490
491 //Double sided crystal ball function for signal, parameters are 0:alpha_l, 1:n_l, 2:alpha_r, 3:n_r 4:mean, 5:sigma, 6:normalization;
492 Double_t DSCrystalBall(Double_t *x,Double_t *par) {
493
494 Double_t t = (x[0]-par[4])/par[5];
495
496 Double_t absAlpha_l = fabs((Double_t)par[0]);
497 Double_t absAlpha_r = fabs((Double_t)par[2]);
498 Double_t pow_l = fabs((Double_t)par[1]);
499 Double_t pow_r = fabs((Double_t)par[3]);
500
501 if (t > -absAlpha_l && t < absAlpha_r) {
502 return par[6]*exp(-0.5*t*t);
503 } else if (t <= -absAlpha_l) {
504 Double_t a = TMath::Power(pow_l/absAlpha_l,pow_l)*exp(-0.5*absAlpha_l*absAlpha_l);
505 Double_t b = pow_l/absAlpha_l - absAlpha_l;
506 return par[6]*(a/TMath::Power(b - t, pow_l));
507 } else if (t >= absAlpha_r) {
508 Double_t a = TMath::Power(pow_r/absAlpha_r,pow_r)*exp(-0.5*absAlpha_r*absAlpha_r);
509 Double_t b = pow_r/absAlpha_r - absAlpha_r;
510 return par[6]*(a/TMath::Power(b + t, pow_r));
511 }
512 cout<<"This should never happen!"<<endl;
513 return 0;
514 }
515
516 #endif // #ifdef JetResolutions_cxx