21 |
|
#include "MitAna/DataTree/interface/DecayParticleCol.h" |
22 |
|
#include "MitAna/DataTree/interface/PileupInfoCol.h" |
23 |
|
#include "MitAna/DataTree/interface/MCParticleCol.h" |
24 |
< |
|
24 |
> |
#include "MitAna/DataTree/interface/SuperClusterCol.h" |
25 |
> |
#include "MitAna/DataTree/interface/PFMetCol.h" |
26 |
> |
#include "MitPhysics/Utils/interface/PhotonFix.h" |
27 |
|
#include "MitPhysics/Utils/interface/PhotonTools.h" |
28 |
|
|
29 |
|
class TNtuple; |
35 |
|
class PhotonTreeWriterPhoton |
36 |
|
{ |
37 |
|
public: |
38 |
< |
void SetVars(const Photon *p, const DecayParticle *c = 0, const MCParticle *m = 0); |
38 |
> |
void SetVars(const Photon *p, const DecayParticle *c, const Electron *ele, const SuperCluster *pfsc, const MCParticle *m, PhotonFix &phfixph, PhotonFix &phfixele); |
39 |
|
Float_t Ecor() const { return ecor; }; |
40 |
|
Float_t Ecorerr() const { return ecorerr; }; |
41 |
+ |
Float_t Ecorele() const { return ecorele; }; |
42 |
+ |
Float_t Ecoreleerr() const { return ecoreleerr; }; |
43 |
|
|
44 |
|
private: |
45 |
+ |
Bool_t hasphoton; |
46 |
|
Float_t e; |
47 |
|
Float_t pt; |
48 |
|
Float_t eta; |
57 |
|
Float_t scphi; |
58 |
|
UInt_t scnclusters; |
59 |
|
UInt_t scnhits; |
60 |
+ |
Float_t scetawidth; |
61 |
+ |
Float_t scphiwidth; |
62 |
|
Float_t hovere; |
63 |
|
Float_t sigietaieta; |
64 |
|
Bool_t isbarrel; |
65 |
|
Bool_t isr9reco; |
66 |
|
Bool_t isr9cat; |
67 |
< |
UChar_t phcat; |
67 |
> |
Char_t phcat; |
68 |
> |
Float_t eerr; |
69 |
> |
Float_t eerrsmeared; |
70 |
|
|
71 |
|
//quantities from seed basic cluster |
72 |
|
Float_t sigiphiphi; |
87 |
|
Float_t e2x5bottom; |
88 |
|
Float_t e2x5left; |
89 |
|
Float_t e2x5right; |
90 |
+ |
Float_t eseed; |
91 |
|
|
92 |
|
//energy correction quantities from PhotonFix |
93 |
|
Float_t ecor; |
94 |
|
Float_t ecorerr; |
95 |
+ |
Float_t ecorele; |
96 |
+ |
Float_t ecoreleerr; |
97 |
|
Float_t etac; |
98 |
|
Float_t etas; |
99 |
|
Float_t etam; |
131 |
|
Char_t convtrailtrackalgos; |
132 |
|
Char_t trailtrackcharge; |
133 |
|
|
134 |
+ |
//electron quantities |
135 |
+ |
Bool_t haselectron; |
136 |
+ |
Bool_t eleisecaldriven; |
137 |
+ |
Bool_t eleistrackerdriven; |
138 |
+ |
Float_t elee; |
139 |
+ |
Float_t elept; |
140 |
+ |
Float_t eleeta; |
141 |
+ |
Float_t elephi; |
142 |
+ |
Char_t elecharge; |
143 |
+ |
Float_t elefbrem; |
144 |
+ |
Float_t eledeta; |
145 |
+ |
Float_t eledphi; |
146 |
+ |
Float_t elep; |
147 |
+ |
Float_t elepin; |
148 |
+ |
Float_t elepout; |
149 |
+ |
|
150 |
+ |
//pf supercluster quantities |
151 |
+ |
Bool_t haspfsc; |
152 |
+ |
Float_t pfsce; |
153 |
+ |
Float_t pfscrawe; |
154 |
+ |
Float_t pfsceta; |
155 |
+ |
Float_t pfscphi; |
156 |
|
|
157 |
|
//generator level quantities |
158 |
|
Bool_t ispromptgen; |
174 |
|
Float_t genHiggsZ; |
175 |
|
Float_t genmass; |
176 |
|
Float_t gencostheta; |
177 |
+ |
Float_t bsX; |
178 |
+ |
Float_t bsY; |
179 |
+ |
Float_t bsZ; |
180 |
+ |
Float_t vtxX; |
181 |
+ |
Float_t vtxY; |
182 |
|
Float_t vtxZ; |
183 |
|
Int_t nVtx; |
184 |
|
Int_t numPU; |
185 |
|
Int_t numPUminus; |
186 |
|
Int_t numPUplus; |
187 |
|
Float_t mass; |
188 |
+ |
Float_t masserr; |
189 |
+ |
Float_t masserrsmeared; |
190 |
|
Float_t ptgg; |
191 |
|
Float_t costheta; |
192 |
+ |
Float_t massele; |
193 |
+ |
Float_t ptee; |
194 |
+ |
Float_t costhetaele; |
195 |
+ |
Float_t mt; |
196 |
+ |
Float_t cosphimet; |
197 |
+ |
Float_t mtele; |
198 |
+ |
Float_t cosphimetele; |
199 |
|
UInt_t evt; |
200 |
|
UInt_t run; |
201 |
|
UInt_t lumi; |
202 |
|
UChar_t evtcat; |
203 |
+ |
UInt_t nobj; |
204 |
+ |
Float_t pfmet; |
205 |
+ |
Float_t pfmetphi; |
206 |
+ |
Float_t pfmetx; |
207 |
+ |
Float_t pfmety; |
208 |
+ |
Bool_t ismc; |
209 |
|
|
210 |
|
//corrected quantities from PhotonFix corrections |
211 |
|
Float_t masscor; |
212 |
|
Float_t masscorerr; |
213 |
+ |
Float_t masscorele; |
214 |
+ |
Float_t masscoreleerr; |
215 |
|
|
216 |
|
PhotonTreeWriterPhoton photons[2]; |
217 |
|
|
239 |
|
void SetPUInfoName(const char *n) { fPileUpName = n; } |
240 |
|
void SetBeamspotName(const char *n) { fBeamspotName = n; } |
241 |
|
void SetPFCandName(const char *n) { fPFCandName = n; } |
242 |
< |
|
242 |
> |
void SetSuperClusterName(const char *n) { fSuperClusterName = n; } |
243 |
> |
void SetPhFixDataFile(const char *n) { fPhFixDataFile = n; } |
244 |
|
|
245 |
|
|
246 |
|
// set basic Cut variables (FOR PRE-SELECTION) |
256 |
|
void SetGoodElectronName(TString name) { fGoodElectronName = name; } |
257 |
|
void SetWriteDiphotonTree(Bool_t b) { fWriteDiphotonTree = b; } |
258 |
|
void SetWriteSingleTree(Bool_t b) { fWriteSingleTree = b; } |
259 |
+ |
void SetLoopOnGoodElectrons(Bool_t b) { fLoopOnGoodElectrons = b; } |
260 |
+ |
void SetExcludeSinglePrompt(Bool_t b) { fExcludeSinglePrompt = b; } |
261 |
+ |
void SetExcludeDoublePrompt(Bool_t b) { fExcludeDoublePrompt = b; } |
262 |
|
|
263 |
|
protected: |
264 |
|
void Process(); |
280 |
|
TString fPFCandName; |
281 |
|
TString fMCParticleName; |
282 |
|
TString fPileUpName; |
283 |
+ |
TString fSuperClusterName; |
284 |
+ |
TString fPFMetName; |
285 |
|
|
286 |
|
// is it Data or MC? |
287 |
|
Bool_t fIsData; |
302 |
|
const PFCandidateCol *fPFCands; |
303 |
|
const MCParticleCol *fMCParticles; |
304 |
|
const PileupInfoCol *fPileUp; |
305 |
< |
|
305 |
> |
const SuperClusterCol *fSuperClusters; |
306 |
> |
const PFMetCol *fPFMet; |
307 |
> |
|
308 |
|
// -------------------------------- |
309 |
+ |
Bool_t fLoopOnGoodElectrons; //primary loop over good electrons collection instead of photons |
310 |
|
Bool_t fInvertElectronVeto; //=true then invert electron veto (for cic selection only atm) |
311 |
|
Bool_t fWriteDiphotonTree; |
312 |
|
Bool_t fWriteSingleTree; |
313 |
|
|
314 |
+ |
Bool_t fExcludeSinglePrompt; |
315 |
+ |
Bool_t fExcludeDoublePrompt; |
316 |
+ |
|
317 |
+ |
TString fPhFixDataFile; |
318 |
+ |
PhotonFix fPhfixph; |
319 |
+ |
PhotonFix fPhfixele; |
320 |
|
|
321 |
|
// -------------------------------- |
322 |
|
// validation Tuple |