ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitPhysics/Mods/interface/PhotonTreeWriter.h
Revision: 1.17
Committed: Sun May 27 16:09:56 2012 UTC (12 years, 11 months ago) by bendavid
Content type: text/plain
Branch: MAIN
Changes since 1.16: +124 -5 lines
Log Message:
add optional filling of detailed cluster arrays and optimization of tree writing

File Contents

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