1 |
csander |
1.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
|