ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitPhysics/Mods/interface/PhotonTreeWriter.h
Revision: 1.22
Committed: Thu Jul 12 17:04:56 2012 UTC (12 years, 10 months ago) by fabstoec
Content type: text/plain
Branch: MAIN
Changes since 1.21: +15 -2 lines
Log Message:
added 2012 Hgg LeptonTag

File Contents

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