21 |
|
void SetVertexFalse(){StoreVertex = kFALSE;} |
22 |
|
void SetTriggerFalse(){StoreTrigger = kFALSE;} |
23 |
|
void SetMetFalse(){StoreMet = kFALSE;} |
24 |
+ |
void SetGeneralFalse(){StoreGeneral = kFALSE;} |
25 |
|
|
26 |
|
//typedef struct MuonVariables{ |
27 |
|
typedef struct { |
28 |
|
|
28 |
– |
//Muon ID Variables |
29 |
– |
Int_t nummuons; |
30 |
– |
Double_t relisolation[NMAX]; |
31 |
– |
Double_t d0[NMAX]; |
32 |
– |
Int_t hits[NMAX]; |
33 |
– |
Int_t trackhits[NMAX]; |
34 |
– |
Double_t normalchi2[NMAX]; |
35 |
– |
Int_t stations[NMAX]; |
36 |
– |
Int_t pixelhits[NMAX]; |
37 |
– |
Double_t muonvzwithPV[NMAX]; |
38 |
– |
Int_t tightmuon[NMAX]; |
39 |
– |
Int_t nloosemuon; |
40 |
– |
Int_t ntightmuon; |
41 |
– |
|
29 |
|
//Muon Kinematic |
30 |
< |
Double_t pt[NMAX]; |
31 |
< |
Double_t eta[NMAX]; |
32 |
< |
Double_t phi[NMAX]; |
30 |
> |
Double_t Muonpt; |
31 |
> |
Double_t Muoneta; |
32 |
> |
Double_t Muonphi; |
33 |
|
Double_t e[NMAX]; |
34 |
|
|
35 |
|
//Muon Jet deltaR |
36 |
< |
Double_t deltaR[NMAX]; |
36 |
> |
Double_t MuondeltaR; |
37 |
|
|
38 |
|
} MuonVariables; |
39 |
|
|
68 |
|
|
69 |
|
Int_t numjets; |
70 |
|
//Jet Kinematic |
71 |
< |
/*Double_t jetpt[NMAX]; |
72 |
< |
Double_t jeteta[NMAX]; |
71 |
> |
Double_t jet1pt; |
72 |
> |
Double_t jet2pt; |
73 |
> |
Double_t jet3pt; |
74 |
> |
Double_t jet4pt; |
75 |
> |
Double_t deltaRmindijet; |
76 |
> |
Double_t deltaRdijet; |
77 |
> |
Double_t deltaRmu2jet; |
78 |
> |
Double_t deltaRmu3jet; |
79 |
> |
Double_t deltaPhidijet; |
80 |
> |
Double_t deltaPhimu2jet; |
81 |
> |
Double_t deltaPhimu3jet; |
82 |
> |
/*Double_t jeteta[NMAX]; |
83 |
|
Double_t jetphi[NMAX]; |
84 |
< |
Double_t jete[NMAX]; |
84 |
> |
Double_t jete[NMAX];*/ |
85 |
|
|
86 |
|
//mc |
87 |
+ |
/* |
88 |
|
Int_t jetparton[NMAX]; |
89 |
|
|
90 |
|
//b tag |
92 |
|
Double_t jettche[NMAX]; |
93 |
|
Double_t jetsvhe[NMAX]; |
94 |
|
Double_t jetsvhp[NMAX]; |
95 |
< |
Double_t jetcsv[NMAX]; |
96 |
< |
|
95 |
> |
Double_t jetcsv[NMAX]; */ |
96 |
> |
Int_t numBjets_csvl; |
97 |
> |
Int_t numBjets_csvm; |
98 |
> |
Int_t numBjets_csvt; |
99 |
> |
|
100 |
> |
Double_t jet1CSVLpt; |
101 |
> |
Double_t jet2CSVLpt; |
102 |
> |
Double_t jet3CSVLpt; |
103 |
> |
Double_t jet4CSVLpt; |
104 |
> |
Double_t jet1CSVMpt; |
105 |
> |
Double_t jet2CSVMpt; |
106 |
> |
Double_t jet3CSVMpt; |
107 |
> |
Double_t jet4CSVMpt; |
108 |
|
//Jet Track number |
109 |
< |
Int_t jettracksize[NMAX]; |
110 |
< |
*/ |
102 |
< |
|
103 |
< |
// B discriminator |
104 |
< |
Double_t bdisc_1st[NMAX]; |
105 |
< |
Double_t bdisc_2nd[NMAX]; |
106 |
< |
Double_t bdisc_3rd[NMAX]; |
107 |
< |
Double_t bdisc_4th[NMAX]; |
108 |
< |
Double_t bdisc_5th[NMAX]; |
109 |
< |
Double_t bdisc_6th[NMAX]; |
110 |
< |
Double_t bdisc_7th[NMAX]; |
111 |
< |
|
109 |
> |
//Int_t jettracksize[NMAX]; |
110 |
> |
|
111 |
|
}; |
112 |
|
|
113 |
|
|
127 |
|
|
128 |
|
struct MetVariables{ |
129 |
|
|
130 |
< |
/* |
131 |
< |
Double_t met; |
132 |
< |
Double_t metphi; |
130 |
> |
Double_t MET; |
131 |
> |
Double_t METphi; |
132 |
> |
/* |
133 |
|
Double_t mht; |
134 |
|
Double_t neupt; |
135 |
|
Double_t rho; |
153 |
|
Int_t csvbtagjetnum_down; |
154 |
|
Int_t flavorhistory; |
155 |
|
*/ |
156 |
+ |
Double_t Ht; |
157 |
+ |
Double_t Stlep; |
158 |
+ |
Double_t Stjet; |
159 |
+ |
Double_t diWdeltaphi; |
160 |
+ |
Double_t diWdeltaR; |
161 |
+ |
Double_t DeltaPhiWW; |
162 |
+ |
Double_t DeltaRWW; |
163 |
+ |
Double_t DeltaPhiMETWlep; |
164 |
+ |
Double_t DeltaPhiMETlep; |
165 |
+ |
Double_t DeltaPhiNulep; |
166 |
+ |
Double_t LepWPt; |
167 |
+ |
Double_t topmass; |
168 |
+ |
Double_t toppt; |
169 |
+ |
|
170 |
+ |
}; |
171 |
+ |
|
172 |
+ |
struct GeneralVariables { |
173 |
|
|
174 |
|
Int_t Run; |
175 |
|
Int_t Lumi; |
176 |
|
Int_t Event; |
177 |
+ |
Double_t PUWeight; |
178 |
|
|
179 |
|
}; |
180 |
|
|
186 |
|
VertexVariables *GetVertexVariable(){return &VStoreVertex;} |
187 |
|
TriggerVariables *GetTriggerVariable(){return &VStoreTrigger;} |
188 |
|
MetVariables *GetMetVariable(){return &VStoreMet;} |
189 |
+ |
GeneralVariables *GetGeneralVariable(){return &VStoreGeneral;} |
190 |
|
|
191 |
|
void InitialAll(); |
192 |
|
void InitialVertex(); |
195 |
|
void InitialJet(); |
196 |
|
void InitialTrigger(); |
197 |
|
void InitialMet(); |
198 |
+ |
void InitialGeneral(); |
199 |
|
|
200 |
|
private: |
201 |
|
|
207 |
|
bool StoreJet; |
208 |
|
bool StoreTrigger; |
209 |
|
bool StoreMet; |
210 |
+ |
bool StoreGeneral; |
211 |
|
|
212 |
|
//V mean variables |
213 |
|
MuonVariables VStoreMuon; |
216 |
|
VertexVariables VStoreVertex; |
217 |
|
TriggerVariables VStoreTrigger; |
218 |
|
MetVariables VStoreMet; |
219 |
+ |
GeneralVariables VStoreGeneral; |
220 |
|
|
221 |
|
}; |
222 |
|
|
233 |
|
StoreJet = kTRUE; |
234 |
|
StoreTrigger = kTRUE; |
235 |
|
StoreMet = kTRUE; |
236 |
+ |
StoreGeneral = kTRUE; |
237 |
|
|
238 |
|
} |
239 |
|
|
246 |
|
if(StoreMuon){ |
247 |
|
cout<<"We are initial the Muon Branch"<<endl; |
248 |
|
|
249 |
< |
Top->Branch("muon_number",&VStoreMuon.nummuons,"nummuons/I"); |
249 |
> |
/*Top->Branch("muon_number",&VStoreMuon.nummuons,"nummuons/I"); |
250 |
|
Top->Branch("muon_isolation",VStoreMuon.relisolation,"reisolation[nummuons]/D"); |
251 |
|
Top->Branch("muon_d0",VStoreMuon.d0,"d0[nummuons]/D"); |
252 |
|
Top->Branch("muon_muonhist",VStoreMuon.hits,"hits[nummuons]/I"); |
259 |
|
Top->Branch("muon_nloosemuon",&VStoreMuon.nloosemuon,"nloosemuon/I"); |
260 |
|
Top->Branch("muon_ntightmuon",&VStoreMuon.ntightmuon,"ntightmuon/I"); |
261 |
|
Top->Branch("muon_jet_deltaR",VStoreMuon.deltaR,"deltaR[nummuons]/D"); |
262 |
< |
|
262 |
> |
*/ |
263 |
|
//kinematic |
264 |
< |
Top->Branch("muon_pt",VStoreMuon.pt,"pt[nummuons]/D"); |
265 |
< |
//Top->Branch("muon_pt",muonpt,"pt[nummuons]/D"); |
266 |
< |
Top->Branch("muon_eta",VStoreMuon.eta,"eta[nummuons]/D"); |
267 |
< |
Top->Branch("muon_phi",VStoreMuon.phi,"phi[nummuons]/D"); |
246 |
< |
Top->Branch("muon_energy",VStoreMuon.e,"e[nummuons]/D"); |
264 |
> |
Top->Branch("Muonpt",&VStoreMuon.Muonpt,"Muonpt/D"); |
265 |
> |
Top->Branch("Muoneta",&VStoreMuon.Muoneta,"Muoneta/D"); |
266 |
> |
Top->Branch("Muonphi",&VStoreMuon.Muonphi,"Muonphi/D"); |
267 |
> |
Top->Branch("MuondeltaR",&VStoreMuon.MuondeltaR,"MuondeltaR/D"); |
268 |
|
|
269 |
|
} |
270 |
|
|
304 |
|
cout<<"We are initial Jet Branch"<<endl; |
305 |
|
|
306 |
|
Top->Branch("jet_number",&VStoreJet.numjets,"numjets/I"); |
307 |
< |
/* |
308 |
< |
Top->Branch("jet_pt",VStoreJet.jetpt,"jetpt[numjets]/D"); |
309 |
< |
Top->Branch("jet_eta",VStoreJet.jeteta,"jeteta[numjets]/D"); |
307 |
> |
|
308 |
> |
Top->Branch("jet1_pt",&VStoreJet.jet1pt,"jet1pt/D"); |
309 |
> |
Top->Branch("jet2_pt",&VStoreJet.jet2pt,"jet2pt/D"); |
310 |
> |
Top->Branch("jet3_pt",&VStoreJet.jet3pt,"jet3pt/D"); |
311 |
> |
Top->Branch("jet4_pt",&VStoreJet.jet4pt,"jet4pt/D"); |
312 |
> |
Top->Branch("deltaRdijet",&VStoreJet.deltaRdijet,"deltaRdijet/D"); |
313 |
> |
Top->Branch("deltaRmindijet",&VStoreJet.deltaRmindijet,"deltaRmindijet/D"); |
314 |
> |
Top->Branch("deltaRmu2jet",&VStoreJet.deltaRmu2jet,"deltaRmu2jet/D"); |
315 |
> |
Top->Branch("deltaRmu3jet",&VStoreJet.deltaRmu3jet,"deltaRmu3jet/D"); |
316 |
> |
Top->Branch("deltaPhidijet",&VStoreJet.deltaPhidijet,"deltaPhidijet/D"); |
317 |
> |
Top->Branch("deltaPhimu2jet",&VStoreJet.deltaPhimu2jet,"deltaPhimu2jet/D"); |
318 |
> |
Top->Branch("deltaPhimu3jet",&VStoreJet.deltaPhimu3jet,"deltaPhimu3jet/D"); |
319 |
> |
|
320 |
> |
/*Top->Branch("jet_eta",VStoreJet.jeteta,"jeteta[numjets]/D"); |
321 |
|
Top->Branch("jet_phi",VStoreJet.jetphi,"jetphi[numjets]/D"); |
322 |
|
Top->Branch("jet_energy",VStoreJet.jete,"jete[numjets]/D"); |
323 |
|
Top->Branch("jet_partonflavor",VStoreJet.jetparton,"jetparton[numjets]/I"); |
328 |
|
Top->Branch("jet_btag_SVhighputy",VStoreJet.jetsvhp,"jetsvhp[numjets]/D"); |
329 |
|
Top->Branch("jet_btag_csv",VStoreJet.jetcsv,"jetcsv[numjets]/D"); |
330 |
|
*/ |
331 |
< |
//b discriminant |
332 |
< |
Top->Branch("jet_bdisc_1st",VStoreJet.bdisc_1st,"bdisc_1st[numjets]/D"); |
333 |
< |
Top->Branch("jet_bdisc_2nd",VStoreJet.bdisc_2nd,"bdisc_2nd[numjets]/D"); |
334 |
< |
Top->Branch("jet_bdisc_3rd",VStoreJet.bdisc_3rd,"bdisc_3rd[numjets]/D"); |
335 |
< |
Top->Branch("jet_bdisc_4th",VStoreJet.bdisc_4th,"bdisc_4th[numjets]/D"); |
336 |
< |
Top->Branch("jet_bdisc_5th",VStoreJet.bdisc_5th,"bdisc_5th[numjets]/D"); |
337 |
< |
Top->Branch("jet_bdisc_6th",VStoreJet.bdisc_6th,"bdisc_6th[numjets]/D"); |
338 |
< |
Top->Branch("jet_bdisc_7th",VStoreJet.bdisc_7th,"bdisc_7th[numjets]/D"); |
339 |
< |
|
331 |
> |
Top->Branch("numBjets_csvl",&VStoreJet.numBjets_csvl,"numBjets_csvl/I"); |
332 |
> |
Top->Branch("numBjets_csvm",&VStoreJet.numBjets_csvm,"numBjets_csvm/I"); |
333 |
> |
Top->Branch("numBjets_csvt",&VStoreJet.numBjets_csvt,"numBjets_csvt/I"); |
334 |
> |
|
335 |
> |
Top->Branch("jet1CSVLpt",&VStoreJet.jet1CSVLpt,"jet1CSVLpt/D"); |
336 |
> |
Top->Branch("jet2CSVLpt",&VStoreJet.jet2CSVLpt,"jet2CSVLpt/D"); |
337 |
> |
Top->Branch("jet3CSVLpt",&VStoreJet.jet3CSVLpt,"jet3CSVLpt/D"); |
338 |
> |
Top->Branch("jet4CSVLpt",&VStoreJet.jet4CSVLpt,"jet4CSVLpt/D"); |
339 |
> |
Top->Branch("jet1CSVMpt",&VStoreJet.jet1CSVMpt,"jet1CSVMpt/D"); |
340 |
> |
Top->Branch("jet2CSVMpt",&VStoreJet.jet2CSVMpt,"jet2CSVMpt/D"); |
341 |
> |
Top->Branch("jet3CSVMpt",&VStoreJet.jet3CSVMpt,"jet3CSVMpt/D"); |
342 |
> |
Top->Branch("jet4CSVMpt",&VStoreJet.jet4CSVMpt,"jet4CSVMpt/D"); |
343 |
|
//Jet track size |
344 |
|
//Top->Branch("jet_tracksize",VStoreJet.jettracksize,"jettracksize[numjets]/I"); |
310 |
– |
|
345 |
|
} |
346 |
|
|
347 |
|
} |
350 |
|
|
351 |
|
if(StoreMet){ |
352 |
|
cout<<"We are inital Met Branch"<<endl; |
353 |
< |
|
354 |
< |
/* |
355 |
< |
Top->Branch("MET_energy",&VStoreMet.met,"met/D"); |
322 |
< |
Top->Branch("MET_phi",&VStoreMet.metphi,"metphi/D"); |
353 |
> |
|
354 |
> |
Top->Branch("MET",&VStoreMet.MET,"MET/D"); |
355 |
> |
/*Top->Branch("MET_phi",&VStoreMet.metphi,"metphi/D"); |
356 |
|
Top->Branch("MHT_energy",&VStoreMet.mht,"mht/D"); |
357 |
|
Top->Branch("Neutrinuo_pt",&VStoreMet.neupt,"neupt/D"); |
358 |
|
Top->Branch("pileup_rho",&VStoreMet.rho,"rho/D"); |
374 |
|
Top->Branch("csvbtagjetnum_up",&VStoreMet.csvbtagjetnum_up,"csvbtagjetnum_up/I"); |
375 |
|
Top->Branch("csvbtagjetnum_down",&VStoreMet.csvbtagjetnum_down,"csvbtagjetnum_down/I"); |
376 |
|
Top->Branch("flavorhistory",&VStoreMet.flavorhistory,"flavorhistory/I"); |
377 |
< |
*/ |
378 |
< |
Top->Branch("run",&VStoreMet.Run,"Run/I"); |
379 |
< |
Top->Branch("lumi",&VStoreMet.Lumi,"Lumi/I"); |
380 |
< |
Top->Branch("event",&VStoreMet.Event,"Event/I"); |
381 |
< |
|
377 |
> |
*/ |
378 |
> |
Top->Branch("Ht",&VStoreMet.Ht,"Ht/D"); |
379 |
> |
Top->Branch("Stlep",&VStoreMet.Stlep,"Stlep/D"); |
380 |
> |
Top->Branch("Stjet",&VStoreMet.Stjet,"Stjet/D"); |
381 |
> |
Top->Branch("diWdeltaphi",&VStoreMet.diWdeltaphi,"diWdeltaphi/D"); |
382 |
> |
Top->Branch("diWdeltaR",&VStoreMet.diWdeltaR,"diWdeltaR/D"); |
383 |
> |
Top->Branch("DeltaPhiMETWlep",&VStoreMet.DeltaPhiMETWlep,"DeltaPhiMETWlep/D"); |
384 |
> |
Top->Branch("DeltaPhiMETlep",&VStoreMet.DeltaPhiMETlep,"DeltaPhiMETlep/D"); |
385 |
> |
Top->Branch("DeltaPhiNulep",&VStoreMet.DeltaPhiNulep,"DeltaPhiNulep/D"); |
386 |
> |
Top->Branch("LepWPt",&VStoreMet.LepWPt,"LepWPt/D"); |
387 |
> |
Top->Branch("topmass",&VStoreMet.topmass,"topmass/D"); |
388 |
> |
Top->Branch("toppt",&VStoreMet.toppt,"toppt/D"); |
389 |
|
} |
390 |
+ |
} |
391 |
+ |
|
392 |
+ |
void StoreTreeVariable::InitialGeneral(){ |
393 |
|
|
394 |
+ |
if(StoreGeneral){ |
395 |
+ |
cout<<"We are inital General Branch"<<endl; |
396 |
+ |
|
397 |
+ |
Top->Branch("run",&VStoreGeneral.Run,"Run/I"); |
398 |
+ |
Top->Branch("lumi",&VStoreGeneral.Lumi,"Lumi/I"); |
399 |
+ |
Top->Branch("event",&VStoreGeneral.Event,"Event/I"); |
400 |
+ |
Top->Branch("PUWeight",&VStoreGeneral.PUWeight,"PUWeight/D"); |
401 |
+ |
|
402 |
+ |
} |
403 |
|
} |
404 |
|
|
405 |
|
void StoreTreeVariable::InitialTrigger(){ |
434 |
|
InitialElectron(); |
435 |
|
InitialJet(); |
436 |
|
InitialMet(); |
437 |
+ |
InitialGeneral(); |
438 |
|
} |