13 |
|
|
14 |
|
#include "MitCommon/DataFormats/interface/Vect3.h" |
15 |
|
#include "MitCommon/DataFormats/interface/Vect4M.h" |
16 |
– |
#include "MitAna/DataTree/interface/Types.h" |
16 |
|
#include "MitAna/DataCont/interface/Ref.h" |
17 |
|
#include "MitAna/DataTree/interface/CompositeParticle.h" |
18 |
|
#include "MitAna/DataTree/interface/Track.h" |
48 |
|
eHBarrelEndcap, |
49 |
|
eHEndcapVFCal, |
50 |
|
eHVFCalEdge, |
51 |
< |
eToNuclInt, |
52 |
< |
eFromNuclInt, |
51 |
> |
eToDispVtx, |
52 |
> |
eFromDispVtx, |
53 |
|
eFromV0, |
54 |
|
eFromGammaConv, |
55 |
< |
eToConversion |
55 |
> |
eToConversion, |
56 |
> |
ePFNoPileup |
57 |
|
}; |
58 |
|
|
59 |
|
PFCandidate() : fCharge(0), fEECal(0), fEHCal(0), fEECalRaw(0), fEHCalRaw(0), |
131 |
|
const Track *BestTrk() const; |
132 |
|
const Track *Trk() const { return BestTrk(); } |
133 |
|
|
134 |
+ |
// Some structural tools |
135 |
+ |
void Mark() const; |
136 |
+ |
|
137 |
|
protected: |
138 |
|
Double_t GetCharge() const; |
139 |
|
void GetMom() const; |
154 |
|
Double32_t fMvaGamma; //[0,0,14]photon id discriminant |
155 |
|
Double32_t fMvaNeutralH; //[0,0,14]neutral hadron id discriminant |
156 |
|
Double32_t fMvaGammaNeutralH; //[0,0,14]photon-neutralhadron discriminant |
157 |
< |
Double32_t fEtaECal; //[0,0,10]eta at ecal front face |
158 |
< |
Double32_t fPhiECal; //[0,0,10]phi at ecal front face |
157 |
> |
Double32_t fEtaECal; //[0,0,12]eta at ecal front face |
158 |
> |
Double32_t fPhiECal; //[0,0,12]phi at ecal front face |
159 |
|
EPFType fPFType; //particle flow type |
160 |
|
BitMask32 fPFFlags; //various PF flags |
161 |
|
Ref<PFCandidate> fMother; //reference to mother |
169 |
|
} |
170 |
|
|
171 |
|
//-------------------------------------------------------------------------------------------------- |
172 |
+ |
inline void mithep::PFCandidate::Mark() const |
173 |
+ |
{ |
174 |
+ |
// mark myself |
175 |
+ |
mithep::DataObject::Mark(); |
176 |
+ |
// mark my dependencies if they are there |
177 |
+ |
if (fMother.IsValid()) |
178 |
+ |
fMother.Obj()->Mark(); |
179 |
+ |
if (fTrackerTrack.IsValid()) |
180 |
+ |
fTrackerTrack.Obj()->Mark(); |
181 |
+ |
if (fGsfTrack.IsValid()) |
182 |
+ |
fGsfTrack.Obj()->Mark(); |
183 |
+ |
if (fMuon.IsValid()) |
184 |
+ |
fMuon.Obj()->Mark(); |
185 |
+ |
if (fConversion.IsValid()) |
186 |
+ |
fConversion.Obj()->Mark(); |
187 |
+ |
} |
188 |
+ |
|
189 |
+ |
//-------------------------------------------------------------------------------------------------- |
190 |
|
inline const mithep::Track *mithep::PFCandidate::BestTrk() const |
191 |
|
{ |
192 |
|
// Return gsf track if present, or else tracker track if present |