ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitPhysics/Mods/interface/PhotonTreeWriter.h
Revision: 1.24
Committed: Tue Oct 9 15:40:14 2012 UTC (12 years, 7 months ago) by mingyang
Content type: text/plain
Branch: MAIN
Changes since 1.23: +22 -4 lines
Log Message:
lepton tag and vbf tag added

File Contents

# User Rev Content
1 bendavid 1.1 //--------------------------------------------------------------------------------------------------
2 mingyang 1.24 // $Id: PhotonTreeWriter.h,v 1.23 2012/07/24 15:46:36 bendavid Exp $
3 bendavid 1.1 //
4     // PhotonTreeWriter
5     //
6     // Authors: J. Bendavid
7     //--------------------------------------------------------------------------------------------------
8    
9     #ifndef MITPHYSICS_MODS_PHOTONTREEWRITER_H
10     #define MITPHYSICS_MODS_PHOTONTREEWRITER_H
11    
12     #include "MitAna/TreeMod/interface/BaseMod.h"
13     #include "MitAna/DataTree/interface/PhotonFwd.h"
14     #include "MitAna/DataTree/interface/TrackCol.h"
15     #include "MitAna/DataTree/interface/VertexCol.h"
16     #include "MitAna/DataTree/interface/BeamSpotCol.h"
17     #include "MitAna/DataTree/interface/PFCandidateCol.h"
18     #include "MitAna/DataTree/interface/PileupEnergyDensityCol.h"
19     #include "MitAna/DataTree/interface/DecayParticleCol.h"
20     #include "MitAna/DataTree/interface/ElectronCol.h"
21 fabstoec 1.10 #include "MitAna/DataTree/interface/MuonCol.h"
22 bendavid 1.1 #include "MitAna/DataTree/interface/DecayParticleCol.h"
23     #include "MitAna/DataTree/interface/PileupInfoCol.h"
24     #include "MitAna/DataTree/interface/MCParticleCol.h"
25 bendavid 1.2 #include "MitAna/DataTree/interface/SuperClusterCol.h"
26     #include "MitAna/DataTree/interface/PFMetCol.h"
27 bendavid 1.5 #include "MitAna/DataTree/interface/JetCol.h"
28 fabstoec 1.13 #include "MitAna/DataTree/interface/PFJetCol.h"
29     #include "MitAna/DataTree/interface/GenJetCol.h"
30 bendavid 1.2 #include "MitPhysics/Utils/interface/PhotonFix.h"
31 bendavid 1.1 #include "MitPhysics/Utils/interface/PhotonTools.h"
32 bendavid 1.17 #include "MitPhysics/Utils/interface/MVAMet.h"
33 mingyang 1.24 #include "MitPhysics/Utils/interface/MVAVBF.h"
34 bendavid 1.1
35     class TNtuple;
36     class TRandom3;
37    
38     namespace mithep
39     {
40 bendavid 1.18
41     class PhotonTreeWriterVtx
42     {
43    
44     public:
45     void SetVars(const Vertex *v, const Photon *p1, const Photon *p2, const PFCandidateCol *pfcands, Int_t idx, Int_t numvtx, Float_t genvtxz);
46    
47     private:
48     Int_t n;
49     Int_t nvtx;
50     Float_t ptgg;
51     Float_t phigg;
52     Float_t etagg;
53     Float_t pxgg;
54     Float_t pygg;
55     Float_t pzgg;
56     Float_t mgg;
57     Float_t zgen;
58     Float_t x;
59     Float_t y;
60     Float_t z;
61     Float_t pt;
62     Float_t phi;
63     Float_t eta;
64     Float_t px;
65     Float_t py;
66     Float_t pz;
67     Float_t sumpt;
68     Float_t sumptsq;
69     Int_t nchalltoward;
70     Int_t nchalltransverse;
71     Int_t nchallaway;
72     Int_t nchcuttoward;
73     Int_t nchcuttransverse;
74     Int_t nchcutaway;
75     };
76    
77 mingyang 1.21 template <int NClus=16>//ming: what's template
78 bendavid 1.1 class PhotonTreeWriterPhoton
79     {
80     public:
81 bendavid 1.23 void SetVars(const Photon *p, const DecayParticle *c, const Electron *ele, const SuperCluster *pfsc, const MCParticle *m, PhotonFix &phfixph, PhotonFix &phfixele, const TrackCol* trackCol,const VertexCol* vtxCol, const PFCandidateCol* candCol, Double_t _tRho, Bool_t fillclusterarrays, const ElectronCol* els, const DecayParticleCol *convs, const BaseVertex *bs, Bool_t applyElectronVeto=kTRUE);
82 bendavid 1.1 Float_t Ecor() const { return ecor; };
83     Float_t Ecorerr() const { return ecorerr; };
84 bendavid 1.2 Float_t Ecorele() const { return ecorele; };
85     Float_t Ecoreleerr() const { return ecoreleerr; };
86 bendavid 1.1
87     private:
88 bendavid 1.5 UChar_t hasphoton;
89 bendavid 1.1 Float_t e;
90     Float_t pt;
91     Float_t eta;
92     Float_t phi;
93     Float_t r9;
94     Float_t e3x3;
95     Float_t e5x5;
96     Float_t sce;
97     Float_t scrawe;
98     Float_t scpse;
99 bendavid 1.17 Float_t scpssigmaxx;
100     Float_t scpssigmayy;
101 bendavid 1.1 Float_t sceta;
102     Float_t scphi;
103 paus 1.9 UInt_t scnclusters;
104     UInt_t scnhits;
105 bendavid 1.2 Float_t scetawidth;
106     Float_t scphiwidth;
107 bendavid 1.1 Float_t hovere;
108 bendavid 1.17 Float_t hoveretower;
109 bendavid 1.1 Float_t sigietaieta;
110 paus 1.9 Bool_t isbarrel;
111     Bool_t isr9reco;
112     Bool_t isr9cat;
113     Char_t phcat;
114 bendavid 1.2 Float_t eerr;
115     Float_t eerrsmeared;
116 bendavid 1.3 Float_t esmearing;
117 bendavid 1.5 Float_t idmva;
118     Float_t ecalisodr03;
119     Float_t hcalisodr03;
120     Float_t trkisohollowdr03;
121 bendavid 1.8 Float_t ecalisodr04;
122     Float_t hcalisodr04;
123     Float_t trkisohollowdr04;
124     Float_t trackiso1;
125     Float_t trackiso2;
126     Float_t combiso1;
127     Float_t combiso2;
128 bendavid 1.23 Bool_t passeleveto;
129    
130 bendavid 1.5 //quantities from seed basic cluster
131 bendavid 1.2 Float_t eseed;
132 bendavid 1.4 Float_t etaseed;
133     Float_t phiseed;
134 paus 1.9 Int_t ietaseed;
135     Int_t iphiseed;
136     Int_t ixseed;
137     Int_t iyseed;
138 bendavid 1.4 Float_t etacryseed;
139     Float_t phicryseed;
140     Float_t xcryseed;
141     Float_t ycryseed;
142     Float_t thetaaxisseed;
143     Float_t phiaxisseed;
144 bendavid 1.5 Float_t sigietaietaseed;
145     Float_t sigiphiphiseed;
146     Float_t covietaiphiseed;
147     Float_t e3x3seed;
148     Float_t e5x5seed;
149     Float_t emaxseed;
150     Float_t e2ndseed;
151     Float_t etopseed;
152     Float_t ebottomseed;
153     Float_t eleftseed;
154     Float_t erightseed;
155     Float_t e1x3seed;
156     Float_t e3x1seed;
157     Float_t e1x5seed;
158     Float_t e2x2seed;
159     Float_t e4x4seed;
160     Float_t e2x5maxseed;
161     Float_t e2x5topseed;
162     Float_t e2x5bottomseed;
163     Float_t e2x5leftseed;
164     Float_t e2x5rightseed;
165     Float_t xseedseed;
166     Float_t yseedseed;
167     Float_t zseedseed;
168     UInt_t nhitsseed;
169    
170 bendavid 1.4 //quantities from second basic cluster, if present
171     Float_t ebc2;
172     Float_t etabc2;
173     Float_t phibc2;
174 paus 1.9 Int_t ietabc2;
175     Int_t iphibc2;
176     Int_t ixbc2;
177     Int_t iybc2;
178 bendavid 1.4 Float_t etacrybc2;
179     Float_t phicrybc2;
180     Float_t xcrybc2;
181     Float_t ycrybc2;
182     Float_t thetaaxisbc2;
183 bendavid 1.5 Float_t phiaxisbc2;
184     Float_t sigietaietabc2;
185     Float_t sigiphiphibc2;
186     Float_t covietaiphibc2;
187     Float_t e3x3bc2;
188     Float_t e5x5bc2;
189     Float_t emaxbc2;
190     Float_t e2ndbc2;
191     Float_t etopbc2;
192     Float_t ebottombc2;
193     Float_t eleftbc2;
194     Float_t erightbc2;
195     Float_t e1x3bc2;
196     Float_t e3x1bc2;
197     Float_t e1x5bc2;
198     Float_t e2x2bc2;
199     Float_t e4x4bc2;
200     Float_t e2x5maxbc2;
201     Float_t e2x5topbc2;
202     Float_t e2x5bottombc2;
203     Float_t e2x5leftbc2;
204     Float_t e2x5rightbc2;
205     Float_t xbc2bc2;
206     Float_t ybc2bc2;
207     Float_t zbc2bc2;
208     UInt_t nhitsbc2;
209    
210     //quantities from lowest energy basic cluster if present
211     Float_t ebclast;
212     Float_t etabclast;
213     Float_t phibclast;
214 paus 1.9 Int_t ietabclast;
215     Int_t iphibclast;
216     Int_t ixbclast;
217     Int_t iybclast;
218 bendavid 1.5 Float_t etacrybclast;
219     Float_t phicrybclast;
220     Float_t xcrybclast;
221     Float_t ycrybclast;
222     Float_t thetaaxisbclast;
223     Float_t phiaxisbclast;
224     Float_t sigietaietabclast;
225     Float_t sigiphiphibclast;
226     Float_t covietaiphibclast;
227     Float_t e3x3bclast;
228     Float_t e5x5bclast;
229     UInt_t nhitsbclast;
230    
231     //quantities from second lowest energy basic cluster if present
232     Float_t ebclast2;
233     Float_t etabclast2;
234     Float_t phibclast2;
235 paus 1.9 Int_t ietabclast2;
236     Int_t iphibclast2;
237     Int_t ixbclast2;
238     Int_t iybclast2;
239 bendavid 1.5 Float_t etacrybclast2;
240     Float_t phicrybclast2;
241     Float_t xcrybclast2;
242     Float_t ycrybclast2;
243     Float_t thetaaxisbclast2;
244     Float_t phiaxisbclast2;
245     Float_t sigietaietabclast2;
246     Float_t sigiphiphibclast2;
247     Float_t covietaiphibclast2;
248     Float_t e3x3bclast2;
249     Float_t e5x5bclast2;
250     UInt_t nhitsbclast2;
251 bendavid 1.1
252     //energy correction quantities from PhotonFix
253     Float_t ecor;
254     Float_t ecorerr;
255 bendavid 1.2 Float_t ecorele;
256     Float_t ecoreleerr;
257 bendavid 1.1 Float_t etac;
258     Float_t etas;
259     Float_t etam;
260     Float_t phic;
261     Float_t phis;
262     Float_t phim;
263     Float_t xz;
264     Float_t xc;
265     Float_t xs;
266     Float_t xm;
267     Float_t yz;
268     Float_t yc;
269     Float_t ys;
270     Float_t ym;
271    
272     //conversion quantities
273 bendavid 1.5 UChar_t hasconversion;
274 bendavid 1.1 Float_t convp;
275     Float_t convpt;
276     Float_t conveta;
277     Float_t convphi;
278     Float_t convdeta;
279     Float_t convdphi;
280     Float_t convvtxrho;
281     Float_t convvtxz;
282     Float_t convvtxphi;
283     Float_t convleadpt;
284     Float_t convtrailpt;
285     Float_t convleadtrackpt;
286 paus 1.9 Char_t convleadtrackalgo;
287     Char_t convleadtrackalgos;
288     Char_t convleadtrackcharge;
289 bendavid 1.1 Float_t convtrailtrackpt;
290 paus 1.9 Char_t convtrailtrackalgo;
291     Char_t convtrailtrackalgos;
292     Char_t trailtrackcharge;
293 bendavid 1.1
294 bendavid 1.2 //electron quantities
295 bendavid 1.5 UChar_t haselectron;
296     UChar_t eleisecaldriven;
297     UChar_t eleistrackerdriven;
298 bendavid 1.2 Float_t elee;
299     Float_t elept;
300     Float_t eleeta;
301     Float_t elephi;
302 paus 1.9 Char_t elecharge;
303 bendavid 1.2 Float_t elefbrem;
304     Float_t eledeta;
305     Float_t eledphi;
306     Float_t elep;
307     Float_t elepin;
308     Float_t elepout;
309    
310     //pf supercluster quantities
311 bendavid 1.5 UChar_t haspfsc;
312 bendavid 1.2 Float_t pfsce;
313     Float_t pfscrawe;
314     Float_t pfsceta;
315     Float_t pfscphi;
316 bendavid 1.17 UInt_t pfscnclusters;
317     UInt_t pfscnhits;
318     Float_t pfscetawidth;
319     Float_t pfscphiwidth;
320     UInt_t pfscnpsclusters;
321 bendavid 1.1
322     //generator level quantities
323 bendavid 1.5 UChar_t ispromptgen;
324 bendavid 1.1 Float_t gene;
325     Float_t genpt;
326     Float_t geneta;
327     Float_t genphi;
328     Float_t genz;
329 bendavid 1.5 Int_t pdgid;
330     Int_t motherpdgid;
331 bendavid 1.17
332 fabstoec 1.19 // -----------------------------------------------------
333     // PF-CiC4 Debug Stuff
334     Float_t pfcic4_tIso1;
335     Float_t pfcic4_tIso2;
336     Float_t pfcic4_tIso3;
337     Float_t pfcic4_covIEtaIEta;
338     Float_t pfcic4_HoE;
339     Float_t pfcic4_R9;
340     Float_t pfcic4_wVtxInd;
341     Float_t pfcic4_ecalIso3;
342     Float_t pfcic4_ecalIso4;
343     Float_t pfcic4_trackIsoSel03;
344     Float_t pfcic4_trackIsoWorst04;
345     Float_t pfcic4_combIso1;
346     Float_t pfcic4_combIso2;
347     // -----------------------------------------------------
348    
349 mingyang 1.21 // -----------------------------------------------------
350     //id mva
351     //2011
352     Float_t idmva_tIso1abs;
353     Float_t idmva_tIso2abs;
354     Float_t idmva_tIso3abs;
355     Float_t idmva_absIsoEcal;
356     Float_t idmva_absIsoHcal;
357     //2012
358     Float_t idmva_CoviEtaiPhi;
359     Float_t idmva_s4ratio;
360     Float_t idmva_GammaIso;
361     Float_t idmva_ChargedIso_selvtx;
362     Float_t idmva_ChargedIso_worstvtx;
363     Float_t idmva_PsEffWidthSigmaRR;
364    
365     Float_t ebcs[NClus];
366 bendavid 1.17 Float_t etabcs[NClus];
367     Float_t phibcs[NClus];
368     Int_t ietabcs[NClus];
369     Int_t iphibcs[NClus];
370     Int_t ixbcs[NClus];
371     Int_t iybcs[NClus];
372     Float_t etacrybcs[NClus];
373     Float_t phicrybcs[NClus];
374     Float_t xcrybcs[NClus];
375     Float_t ycrybcs[NClus];
376     Float_t sigietaietabcs[NClus];
377     Float_t sigiphiphibcs[NClus];
378     Float_t covietaiphibcs[NClus];
379     Float_t sigetaetabcs[NClus];
380     Float_t sigphiphibcs[NClus];
381     Float_t covetaphibcs[NClus];
382     Float_t e3x3bcs[NClus];
383     Float_t e5x5bcs[NClus];
384     Float_t emaxbcs[NClus];
385     Float_t e2ndbcs[NClus];
386     Float_t etopbcs[NClus];
387     Float_t ebottombcs[NClus];
388     Float_t eleftbcs[NClus];
389     Float_t erightbcs[NClus];
390     Float_t e1x3bcs[NClus];
391     Float_t e3x1bcs[NClus];
392     Float_t e1x5bcs[NClus];
393     Float_t e2x2bcs[NClus];
394     Float_t e4x4bcs[NClus];
395     Float_t e2x5maxbcs[NClus];
396     Float_t e2x5topbcs[NClus];
397     Float_t e2x5bottombcs[NClus];
398     Float_t e2x5leftbcs[NClus];
399     Float_t e2x5rightbcs[NClus];
400     UInt_t nhitsbcs[NClus];
401    
402     Float_t epfbcs[NClus];
403     Float_t etapfbcs[NClus];
404     Float_t phipfbcs[NClus];
405     Int_t ietapfbcs[NClus];
406     Int_t iphipfbcs[NClus];
407     Int_t ixpfbcs[NClus];
408     Int_t iypfbcs[NClus];
409     Float_t etacrypfbcs[NClus];
410     Float_t phicrypfbcs[NClus];
411     Float_t xcrypfbcs[NClus];
412     Float_t ycrypfbcs[NClus];
413     Float_t sigietaietapfbcs[NClus];
414     Float_t sigiphiphipfbcs[NClus];
415     Float_t covietaiphipfbcs[NClus];
416     Float_t sigetaetapfbcs[NClus];
417     Float_t sigphiphipfbcs[NClus];
418     Float_t covetaphipfbcs[NClus];
419     Float_t e3x3pfbcs[NClus];
420     Float_t e5x5pfbcs[NClus];
421     Float_t emaxpfbcs[NClus];
422     Float_t e2ndpfbcs[NClus];
423     Float_t etoppfbcs[NClus];
424     Float_t ebottompfbcs[NClus];
425     Float_t eleftpfbcs[NClus];
426     Float_t erightpfbcs[NClus];
427     Float_t e1x3pfbcs[NClus];
428     Float_t e3x1pfbcs[NClus];
429     Float_t e1x5pfbcs[NClus];
430     Float_t e2x2pfbcs[NClus];
431     Float_t e4x4pfbcs[NClus];
432     Float_t e2x5maxpfbcs[NClus];
433     Float_t e2x5toppfbcs[NClus];
434     Float_t e2x5bottompfbcs[NClus];
435     Float_t e2x5leftpfbcs[NClus];
436     Float_t e2x5rightpfbcs[NClus];
437     UInt_t nhitspfbcs[NClus];
438    
439     Float_t epsc[100];
440     Float_t etapsc[100];
441     Float_t phipsc[100];
442     UChar_t planepsc[100];
443    
444    
445 bendavid 1.1 };
446    
447     class PhotonTreeWriterDiphotonEvent
448     {
449     public:
450 fabstoec 1.12 // ------------ BTAG STUFF -------------------
451 fabstoec 1.15 Float_t btagJet1;
452     Float_t btagJet1Pt;
453     Float_t btagJet1Eta;
454     Float_t btagJet2;
455     Float_t btagJet2Pt;
456     Float_t btagJet2Eta;
457 fabstoec 1.12 // ----------- LEPTON TAG STUFF -------------
458 fabstoec 1.10 Int_t leptonTag;
459 fabstoec 1.11 // ---------- MUON STUFF --------------------
460     Float_t muonPt;
461     Float_t muonEta;
462     Float_t muDR1;
463     Float_t muDR2;
464     Float_t muIso1;
465     Float_t muIso2;
466     Float_t muIso3;
467     Float_t muIso4;
468     Float_t muD0;
469     Float_t muDZ;
470     Int_t muNhits;
471     Float_t muChi2;
472     Int_t muNpixhits;
473     Int_t muNegs;
474     Int_t muNMatch;
475     // ----------- ELECTRON STUFF --------------
476     Float_t elePt;
477     Float_t eleEta;
478     Float_t eleSCEta;
479     Float_t eleIso1;
480     Float_t eleIso2;
481     Float_t eleIso3;
482     Float_t eleIso4;
483     Float_t eleDist;
484     Float_t eleDcot;
485     Float_t eleCoviee;
486     Float_t eleDphiin;
487     Float_t eleDetain;
488     Float_t eleDR1;
489     Float_t eleDR2;
490     Float_t eleMass1;
491     Float_t eleMass2;
492     Int_t eleNinnerHits;
493     // -----------------------------------------
494 bendavid 1.1 Float_t rho;
495 bendavid 1.17 Float_t rho25;
496     Float_t rhoold;
497 bendavid 1.1 Float_t genHiggspt;
498     Float_t genHiggsZ;
499     Float_t genmass;
500     Float_t gencostheta;
501 bendavid 1.23 Float_t genz;
502 bendavid 1.2 Float_t bsX;
503     Float_t bsY;
504     Float_t bsZ;
505 bendavid 1.7 Float_t bsSigmaZ;
506 bendavid 1.2 Float_t vtxX;
507     Float_t vtxY;
508 bendavid 1.1 Float_t vtxZ;
509     Int_t nVtx;
510     Int_t numPU;
511     Int_t numPUminus;
512     Int_t numPUplus;
513     Float_t mass;
514 bendavid 1.2 Float_t masserr;
515     Float_t masserrsmeared;
516 bendavid 1.4 Float_t masserrwrongvtx;
517     Float_t masserrsmearedwrongvtx;
518     Float_t vtxprob;
519 bendavid 1.5 Float_t deltamvtx;
520 bendavid 1.1 Float_t ptgg;
521 bendavid 1.5 Float_t etagg;
522     Float_t phigg;
523 bendavid 1.1 Float_t costheta;
524 bendavid 1.2 Float_t massele;
525     Float_t ptee;
526     Float_t costhetaele;
527     Float_t mt;
528     Float_t cosphimet;
529     Float_t mtele;
530     Float_t cosphimetele;
531 bendavid 1.1 UInt_t evt;
532     UInt_t run;
533     UInt_t lumi;
534     UChar_t evtcat;
535 bendavid 1.2 UInt_t nobj;
536 fabstoec 1.13 Double_t fromZ; //added: Heng 2/14/2012
537     Double_t fromW; //added: Heng
538     Float_t zpt; //added: Heng
539     Float_t allZpt; //added: Heng
540     Float_t zEta; //added: Heng
541     Float_t allZEta; //added: Heng
542 fabstoec 1.16
543     //Met stuff
544 fabstoec 1.13 Float_t corrpfmet;
545     Float_t corrpfmetphi;
546     Float_t corrpfmetx;
547     Float_t corrpfmety;
548     Double_t dphiMetgg;
549     Double_t cosdphiMetgg;
550     Double_t dphiPhPh;
551 bendavid 1.2 Float_t pfmet;
552     Float_t pfmetphi;
553     Float_t pfmetx;
554     Float_t pfmety;
555 mtouch 1.20
556 bendavid 1.17
557     Float_t mvametsel;
558     Float_t mvametselphi;
559     Float_t mvametselx;
560     Float_t mvametsely;
561     Float_t mvametselsig;
562    
563     Float_t mvametfirst;
564     Float_t mvametfirstphi;
565     Float_t mvametfirstx;
566     Float_t mvametfirsty;
567     Float_t mvametfirstsig;
568    
569 fabstoec 1.16 Double_t spfMet;
570 bendavid 1.17
571 mingyang 1.24 // ----------- VBF TAG STUFF -------------
572     Int_t vbfTag;
573     Float_t vbfbdt;
574 mtouch 1.20
575 mingyang 1.24 // ----------------------------------------
576 bendavid 1.5 UChar_t ismc;
577 bendavid 1.1
578     //corrected quantities from PhotonFix corrections
579     Float_t masscor;
580     Float_t masscorerr;
581 bendavid 1.2 Float_t masscorele;
582     Float_t masscoreleerr;
583 bendavid 1.1
584 bendavid 1.5 //jet quantities
585     Float_t jet1pt;
586     Float_t jet1eta;
587     Float_t jet1phi;
588     Float_t jet1mass;
589     Float_t jet2pt;
590     Float_t jet2eta;
591     Float_t jet2phi;
592     Float_t jet2mass;
593     Float_t jetcentralpt;
594     Float_t jetcentraleta;
595     Float_t jetcentralphi;
596     Float_t jetcentralmass;
597     Float_t dijetpt;
598     Float_t dijeteta;
599     Float_t dijetphi;
600     Float_t dijetmass;
601     Float_t jetetaplus;
602     Float_t jetetaminus;
603    
604 fabstoec 1.16 // Float_t uncorrjet1pt;
605     // Float_t uncorrjet1eta;
606     // Float_t uncorrjet1phi;
607     // Float_t uncorrjet1mass;
608     // Float_t uncorrjet2pt;
609     // Float_t uncorrjet2eta;
610     // Float_t uncorrjet2phi;
611     // Float_t uncorrjet2mass;
612     // Float_t uncorrjetcentralpt;
613     // Float_t uncorrjetcentraleta;
614     // Float_t uncorrjetcentralphi;
615     // Float_t uncorrjetcentralmass;
616     // Float_t diuncorrjetpt;
617     // Float_t diuncorrjeteta;
618     // Float_t diuncorrjetphi;
619     // Float_t diuncorrjetmass;
620     // Float_t uncorrjetetaplus;
621     // Float_t uncorrjetetaminus;
622    
623 bendavid 1.5 Float_t zeppenfeld;
624     Float_t dphidijetgg;
625    
626 bendavid 1.17 PhotonTreeWriterPhoton<16> photons[2];
627 bendavid 1.1 };
628    
629     class PhotonTreeWriter : public BaseMod
630     {
631     public:
632     PhotonTreeWriter(const char *name ="PhotonTreeWriter",
633     const char *title="Selecting PhotonPairs");
634    
635     ~PhotonTreeWriter();
636    
637     // setting all the input Names
638     void SetInputPhotonsName(const char *n){ fPhotonBranchName= n; }
639     void SetPhotonsFromBranch(bool b) { fPhotonsFromBranch = b; }
640     void SetTrackName(const char *n) { fTrackBranchName = n; }
641     void SetElectronName(const char *n) { fElectronName = n; }
642     void SetConversionName(const char *n) { fConversionName = n; }
643     void SetPUDensityName(const char *n) { fPileUpDenName = n; }
644     void SetPVName(const char *n) { fPVName = n; }
645     void SetPVFromBranch(bool b) { fPVFromBranch = b; }
646     void SetMCParticle(const char *n) { fMCParticleName = n; }
647     void SetPUInfoName(const char *n) { fPileUpName = n; }
648     void SetBeamspotName(const char *n) { fBeamspotName = n; }
649     void SetPFCandName(const char *n) { fPFCandName = n; }
650 bendavid 1.2 void SetSuperClusterName(const char *n) { fSuperClusterName = n; }
651 bendavid 1.5 void SetPFJetName(const char *n) { fPFJetName = n; }
652 fabstoec 1.13 void SetGenJetName(const char *n) { fGenJetName = n; }
653     void SetuncorrPFJetName(const char *n) { funcorrPFJetName = n; }
654 fabstoec 1.22 void SetPFNoPileUpName(const char *n) { fPFNoPileUpName = n; }
655     void SetPFPileUpName(const char *n) { fPFPileUpName = n; }
656    
657 fabstoec 1.13
658 bendavid 1.5 void SetPFJetsFromBranch(Bool_t b) { fPFJetsFromBranch = b; }
659     void SetEnableJets(Bool_t b) { fEnableJets = b; }
660 bendavid 1.18 void SetApplyJetId(Bool_t b) { fApplyJetId = b; }
661 fabstoec 1.10 void SetApplyLeptonTag(Bool_t b) { fApplyLeptonTag = b; }
662 mingyang 1.24 void SetApplyVBFTag(Bool_t b) { fApplyVBFTag = b; }
663 fabstoec 1.12 void SetApplyBTag(Bool_t b) { fApplyBTag = b; }
664 fabstoec 1.14 void SetApplyPFMetCorr(Bool_t b) { fApplyPFMetCorrections = b; }
665 bendavid 1.2 void SetPhFixDataFile(const char *n) { fPhFixDataFile = n; }
666 bendavid 1.1
667 fabstoec 1.16
668 fabstoec 1.22
669    
670 bendavid 1.1 // set basic Cut variables (FOR PRE-SELECTION)
671    
672     // is Data Or Not?
673 paus 1.9 void SetIsData (Bool_t b) { fIsData = b; };
674 bendavid 1.1
675    
676 bendavid 1.6 void SetApplyElectronVeto(Bool_t b) { fApplyElectronVeto = b; }
677 bendavid 1.1
678 paus 1.9 void SetTupleName(const char* c) { fTupleName = c; }
679 bendavid 1.1 void SetGoodElectronsFromBranch(Bool_t b) { fGoodElectronsFromBranch = b; }
680 paus 1.9 void SetGoodElectronName(TString name) { fGoodElectronName = name; }
681     void SetWriteDiphotonTree(Bool_t b) { fWriteDiphotonTree = b; }
682     void SetWriteSingleTree(Bool_t b) { fWriteSingleTree = b; }
683     void SetLoopOnGoodElectrons(Bool_t b) { fLoopOnGoodElectrons = b; }
684 bendavid 1.17 void SetEnablePFPhotons(Bool_t b) { fEnablePFPhotons = b; }
685 paus 1.9 void SetExcludeSinglePrompt(Bool_t b) { fExcludeSinglePrompt = b; }
686     void SetExcludeDoublePrompt(Bool_t b) { fExcludeDoublePrompt = b; }
687 bendavid 1.1
688 fabstoec 1.10 void SetLeptonTagElectronsName(TString name) { fLeptonTagElectronsName = name; }
689     void SetLeptonTagMuonsName (TString name) { fLeptonTagMuonsName = name; }
690 fabstoec 1.22 void SetFillClusterArrays(Bool_t b) { fFillClusterArrays = b; }
691 fabstoec 1.10
692 fabstoec 1.22 void SetDo2012LepTag(Bool_t b) { fDo2012LepTag = b; }
693 bendavid 1.17
694 bendavid 1.23 void SetBeamspotWidth(Double_t x) { fBeamspotWidth = x; }
695    
696 bendavid 1.1 protected:
697     void Process();
698     void SlaveBegin();
699 paus 1.9 // Private auxiliary methods...
700 bendavid 1.1 void FindHiggsPtAndZ(Float_t& pt, Float_t& z, Float_t& mass);
701 paus 1.9 Float_t GetEventCat (PhotonTools::CiCBaseLineCats cat1,
702     PhotonTools::CiCBaseLineCats cat2);
703 bendavid 1.1
704     // Names for the input Collections
705     TString fPhotonBranchName;
706 bendavid 1.17 TString fPFPhotonName;
707 bendavid 1.1 TString fElectronName;
708     TString fGoodElectronName;
709     TString fConversionName;
710     TString fTrackBranchName;
711     TString fPileUpDenName;
712     TString fPVName;
713     TString fBeamspotName;
714     TString fPFCandName;
715 fabstoec 1.22 TString fPFNoPileUpName; //name of pfnpu collection
716     TString fPFPileUpName; //name of pfpu collection
717    
718 bendavid 1.1 TString fMCParticleName;
719     TString fPileUpName;
720 bendavid 1.2 TString fSuperClusterName;
721     TString fPFMetName;
722 bendavid 1.5 TString fPFJetName;
723 fabstoec 1.10
724 mtouch 1.20
725 fabstoec 1.16 TString funcorrPFJetName;
726 fabstoec 1.13 TString fGenJetName; //added to do pfmet correction 05/01/2012
727    
728 mtouch 1.20
729 fabstoec 1.10 TString fLeptonTagElectronsName;
730     TString fLeptonTagMuonsName;
731    
732 bendavid 1.1
733     // is it Data or MC?
734     Bool_t fIsData;
735    
736     // in case there's some PV pre-selection
737     Bool_t fPhotonsFromBranch;
738     Bool_t fPVFromBranch;
739     Bool_t fGoodElectronsFromBranch;
740 bendavid 1.5 Bool_t fPFJetsFromBranch;
741 bendavid 1.1
742 paus 1.9 const PhotonCol *fPhotons;
743 bendavid 1.17 const PhotonCol *fPFPhotons;
744 paus 1.9 const ElectronCol *fElectrons;
745     const ElectronCol *fGoodElectrons;
746     const DecayParticleCol *fConversions;
747     const TrackCol *fTracks;
748     const PileupEnergyDensityCol *fPileUpDen;
749     const VertexCol *fPV;
750     const BeamSpotCol *fBeamspot;
751     const PFCandidateCol *fPFCands;
752     const MCParticleCol *fMCParticles;
753     const PileupInfoCol *fPileUp;
754     const SuperClusterCol *fSuperClusters;
755     const PFMetCol *fPFMet;
756     const JetCol *fPFJets;
757 fabstoec 1.13 const GenJetCol *fGenJets;
758     const PFJetCol *funcorrPFJets;
759 bendavid 1.2
760 fabstoec 1.10 const ElectronCol *fLeptonTagElectrons;
761     const MuonCol *fLeptonTagMuons;
762 fabstoec 1.22 const PFCandidateCol *fPFNoPileUpCands; //!pfnpu collection
763     const PFCandidateCol *fPFPileUpCands; //!pfpu collection
764 fabstoec 1.10
765 bendavid 1.1 // --------------------------------
766 paus 1.9 Bool_t fLoopOnGoodElectrons; //loop over good elecs instead of photons
767     Bool_t fApplyElectronVeto; //invert elec veto (for cic sel. only atm)
768     Bool_t fWriteDiphotonTree;
769     Bool_t fWriteSingleTree;
770 bendavid 1.1
771 bendavid 1.17 Bool_t fEnablePFPhotons;
772    
773 paus 1.9 Bool_t fExcludeSinglePrompt;
774     Bool_t fExcludeDoublePrompt;
775 bendavid 1.2
776 paus 1.9 Bool_t fEnableJets;
777 bendavid 1.18 Bool_t fApplyJetId;
778 fabstoec 1.10
779     Bool_t fApplyLeptonTag;
780 mingyang 1.24 Bool_t fApplyVBFTag;
781 fabstoec 1.12 Bool_t fApplyBTag;
782 fabstoec 1.14 Bool_t fApplyPFMetCorrections;
783 fabstoec 1.12
784 bendavid 1.17 Bool_t fFillClusterArrays;
785 bendavid 1.18 Bool_t fFillVertexTree;
786 bendavid 1.17
787 fabstoec 1.22 Bool_t fDo2012LepTag;
788    
789 paus 1.9 TString fPhFixDataFile;
790     PhotonFix fPhfixph;
791     PhotonFix fPhfixele;
792 bendavid 1.23
793     Double_t fBeamspotWidth;
794 bendavid 1.1
795     // --------------------------------
796 mingyang 1.24 // variables for vbf
797     float jet1pt_vbf;
798     float jet2pt_vbf;
799     float deltajeteta_vbf;
800     float dijetmass_vbf;
801     float zeppenfeld_vbf;
802     float dphidijetgg_vbf;
803     float diphoptOverdiphomass_vbf;
804     float pho1ptOverdiphomass_vbf;
805     float pho2ptOverdiphomass_vbf;
806    
807     // --------------------------------
808 bendavid 1.1 // validation Tuple
809 paus 1.9 TString fTupleName;
810 bendavid 1.1 PhotonTreeWriterDiphotonEvent* fDiphotonEvent;
811 bendavid 1.17 PhotonTreeWriterPhoton<16>* fSinglePhoton;
812 paus 1.9 TTree* hCiCTuple;
813     TTree* hCiCTupleSingle;
814 bendavid 1.1
815 bendavid 1.18 PhotonTreeWriterVtx *fDiphotonVtx;
816     TTree *hVtxTree;
817    
818 bendavid 1.17 MVAMet fMVAMet;
819 bendavid 1.18 JetIDMVA fJetId;
820 mingyang 1.24 MVAVBF fMVAVBF;
821 bendavid 1.17
822 bendavid 1.1 ClassDef(PhotonTreeWriter, 1) // Photon identification module
823 mingyang 1.24 };
824 bendavid 1.1 }
825     #endif