1 |
loizides |
1.1 |
//--------------------------------------------------------------------------------------------------
|
2 |
bendavid |
1.45 |
// $Id: Photon.h,v 1.44 2011/12/11 00:00:28 bendavid Exp $
|
3 |
loizides |
1.1 |
//
|
4 |
|
|
// Photon
|
5 |
|
|
//
|
6 |
loizides |
1.24 |
// This class holds the reconstructed photon quantities.
|
7 |
loizides |
1.1 |
//
|
8 |
loizides |
1.2 |
// Authors: J.Bendavid, C.Loizides
|
9 |
loizides |
1.1 |
//--------------------------------------------------------------------------------------------------
|
10 |
|
|
|
11 |
loizides |
1.12 |
#ifndef MITANA_DATATREE_PHOTON_H
|
12 |
|
|
#define MITANA_DATATREE_PHOTON_H
|
13 |
loizides |
1.1 |
|
14 |
loizides |
1.24 |
#include "MitCommon/DataFormats/interface/Vect4M.h"
|
15 |
bendavid |
1.3 |
#include "MitAna/DataTree/interface/Particle.h"
|
16 |
|
|
#include "MitAna/DataTree/interface/Conversion.h"
|
17 |
bendavid |
1.38 |
#include "MitAna/DataTree/interface/Vertex.h"
|
18 |
loizides |
1.11 |
#include "MitAna/DataCont/interface/RefArray.h"
|
19 |
loizides |
1.1 |
|
20 |
|
|
namespace mithep
|
21 |
|
|
{
|
22 |
bendavid |
1.3 |
class Photon : public Particle
|
23 |
loizides |
1.1 |
{
|
24 |
|
|
public:
|
25 |
loizides |
1.29 |
Photon() :
|
26 |
bendavid |
1.33 |
fR9(0),fHadOverEm(0),fHcalDepth1OverEcal(0),
|
27 |
|
|
fHcalDepth2OverEcal(0), fMaxEnergyXtal(0), fE15(0), fE25(0), fE33(0),
|
28 |
|
|
fE55(0), fCovEtaEta(0), fCoviEtaiEta(0),
|
29 |
|
|
fEcalRecHitIso(0),fHcalRecHitIso(0), fHcalTowerSumEtDr04(0),
|
30 |
loizides |
1.29 |
fHcalDepth1TowerSumEtDr04(0), fHcalDepth2TowerSumEtDr04(0), fSolidConeTrkIso(0),
|
31 |
|
|
fHollowConeTrkIso(0),fSolidConeNTrk(0),fHollowConeNTrk(0), fEcalRecHitIsoDr03(0),
|
32 |
|
|
fHcalTowerSumEtDr03(0), fHcalDepth1TowerSumEtDr03(0), fHcalDepth2TowerSumEtDr03(0),
|
33 |
|
|
fSolidConeTrkIsoDr03(0), fHollowConeTrkIsoDr03(0),fSolidConeNTrkDr03(0),
|
34 |
bendavid |
1.36 |
fHollowConeNTrkDr03(0), fPFChargedHadronIso(0), fPFNeutralHadronIso(0), fPFPhotonIso(0),
|
35 |
|
|
fHasPixelSeed(0), fIsEB(0), fIsEE(0), fIsEBGap(0),
|
36 |
loizides |
1.29 |
fIsEEGap(0),fIsEBEEGap(0), fIsLooseEM(0),fIsLoosePhoton(0), fIsTightPhoton(0),
|
37 |
bendavid |
1.41 |
fIsConverted(0), fEnergyErr(-99.), fEnergyErrSmeared(-99.), fEnergySmearing(0.),
|
38 |
bendavid |
1.45 |
fEnergyRegr(0.), fEnergyErrRegr(0.), fEnergyPhoFix(0.), fEnergyErrPhoFix(0.), fVtxProb(1.0), fIdMva(-99.),
|
39 |
|
|
fEtaWidth(-99.), fPhiWidth(-99.) {}
|
40 |
loizides |
1.21 |
Photon(Double_t px, Double_t py, Double_t pz, Double_t e) :
|
41 |
loizides |
1.24 |
fMom(FourVector(px,py,pz,e)),
|
42 |
bendavid |
1.33 |
fR9(0),fHadOverEm(0),fHcalDepth1OverEcal(0),
|
43 |
|
|
fHcalDepth2OverEcal(0), fMaxEnergyXtal(0), fE15(0), fE25(0), fE33(0),
|
44 |
|
|
fE55(0), fCovEtaEta(0), fCoviEtaiEta(0),
|
45 |
|
|
fEcalRecHitIso(0),fHcalRecHitIso(0), fHcalTowerSumEtDr04(0),
|
46 |
bendavid |
1.25 |
fHcalDepth1TowerSumEtDr04(0), fHcalDepth2TowerSumEtDr04(0), fSolidConeTrkIso(0),
|
47 |
|
|
fHollowConeTrkIso(0),fSolidConeNTrk(0),fHollowConeNTrk(0), fEcalRecHitIsoDr03(0),
|
48 |
|
|
fHcalTowerSumEtDr03(0), fHcalDepth1TowerSumEtDr03(0), fHcalDepth2TowerSumEtDr03(0),
|
49 |
|
|
fSolidConeTrkIsoDr03(0), fHollowConeTrkIsoDr03(0),fSolidConeNTrkDr03(0),
|
50 |
bendavid |
1.36 |
fHollowConeNTrkDr03(0), fPFChargedHadronIso(0), fPFNeutralHadronIso(0), fPFPhotonIso(0),
|
51 |
|
|
fHasPixelSeed(0), fIsEB(0), fIsEE(0), fIsEBGap(0),
|
52 |
bendavid |
1.26 |
fIsEEGap(0),fIsEBEEGap(0), fIsLooseEM(0),fIsLoosePhoton(0), fIsTightPhoton(0),
|
53 |
bendavid |
1.41 |
fIsConverted(0), fEnergyErr(-99.), fEnergyErrSmeared(-99.), fEnergySmearing(0.),
|
54 |
bendavid |
1.45 |
fEnergyRegr(0.), fEnergyErrRegr(0.), fEnergyPhoFix(0.), fEnergyErrPhoFix(0.), fVtxProb(1.0), fIdMva(-99.),
|
55 |
|
|
fEtaWidth(-99.), fPhiWidth(-99.) {}
|
56 |
loizides |
1.2 |
|
57 |
paus |
1.42 |
const Conversion *ConvCand(UInt_t i) const { return fConversions.At(i); }
|
58 |
|
|
Double_t EcalRecHitIsoDr03() const { return fEcalRecHitIsoDr03; }
|
59 |
|
|
Double_t EcalRecHitIsoDr04() const { return fEcalRecHitIso; }
|
60 |
|
|
Double_t EnergyErr() const { return fEnergyErr; }
|
61 |
|
|
Double_t EnergyErrSmeared() const { return fEnergyErrSmeared; }
|
62 |
|
|
Double_t EnergySmearing() const { return fEnergySmearing; }
|
63 |
|
|
Double_t EnergyRegr() const { return fEnergyRegr; }
|
64 |
|
|
Double_t EnergyErrRegr() const { return fEnergyErrRegr; }
|
65 |
|
|
Double_t EnergyPhoFix() const { return fEnergyPhoFix; }
|
66 |
|
|
Double_t EnergyErrPhoFix() const { return fEnergyErrPhoFix; }
|
67 |
|
|
Double_t HadOverEm() const { return fHadOverEm; }
|
68 |
|
|
Double_t HcalDepth1OverEcal() const { return fHcalDepth1OverEcal; }
|
69 |
|
|
Double_t HcalDepth2OverEcal() const { return fHcalDepth2OverEcal; }
|
70 |
|
|
Double_t MaxEnergyXtal() const { return fMaxEnergyXtal; }
|
71 |
|
|
Double_t E15() const { return fE15; }
|
72 |
|
|
Double_t E25() const { return fE25; }
|
73 |
|
|
Double_t E33() const { return fE33; }
|
74 |
|
|
Double_t E55() const { return fE55; }
|
75 |
|
|
ThreeVectorC CaloPos() const;
|
76 |
|
|
Double_t CovEtaEta() const { return fCovEtaEta; }
|
77 |
|
|
Double_t CoviEtaiEta() const { return fCoviEtaiEta; }
|
78 |
|
|
Bool_t HasPixelSeed() const { return fHasPixelSeed; }
|
79 |
loizides |
1.29 |
Double_t HcalDepth1TowerSumEtDr03() const { return fHcalDepth1TowerSumEtDr03; }
|
80 |
|
|
Double_t HcalDepth1TowerSumEtDr04() const { return fHcalDepth1TowerSumEtDr04; }
|
81 |
|
|
Double_t HcalDepth2TowerSumEtDr03() const { return fHcalDepth2TowerSumEtDr03; }
|
82 |
bendavid |
1.32 |
Double_t HcalDepth2TowerSumEtDr04() const { return fHcalDepth2TowerSumEtDr04; }
|
83 |
paus |
1.42 |
Double_t HcalRecHitIso() const { return fHcalRecHitIso; } // *DEPRECATED*
|
84 |
|
|
Double_t HcalTowerSumEtDr03() const { return fHcalTowerSumEtDr03; }
|
85 |
|
|
Double_t HcalTowerSumEtDr04() const { return fHcalTowerSumEtDr04; }
|
86 |
|
|
UShort_t HollowConeNTrkDr03() const { return fHollowConeNTrkDr03; }
|
87 |
|
|
UShort_t HollowConeNTrkDr04() const { return fHollowConeNTrk; }
|
88 |
|
|
Double_t HollowConeTrkIsoDr03() const { return fHollowConeTrkIsoDr03; }
|
89 |
|
|
Double_t HollowConeTrkIsoDr04() const { return fHollowConeTrkIso; }
|
90 |
|
|
Double_t PFChargedHadronIso() const { return fPFChargedHadronIso; }
|
91 |
|
|
Double_t PFNeutralHadronIso() const { return fPFNeutralHadronIso; }
|
92 |
|
|
Double_t PFPhotonIso() const { return fPFPhotonIso; }
|
93 |
|
|
Bool_t IsEB() const { return fIsEB; }
|
94 |
|
|
Bool_t IsEE() const { return fIsEE; }
|
95 |
|
|
Bool_t IsEBGap() const { return fIsEBGap; }
|
96 |
|
|
Bool_t IsEEGap() const { return fIsEEGap; }
|
97 |
|
|
Bool_t IsEBEEGap() const { return fIsEBEEGap; }
|
98 |
|
|
Bool_t IsLooseEM() const { return fIsLooseEM; } // *DEPRECATED*
|
99 |
|
|
Bool_t IsLoosePhoton() const { return fIsLoosePhoton; }
|
100 |
|
|
Bool_t IsTightPhoton() const { return fIsTightPhoton; }
|
101 |
|
|
Bool_t IsConverted() const { return fIsConverted; }
|
102 |
|
|
ThreeVector Mom3(const ThreeVector &v) const { return E()*(ThreeVector(CaloPos()) - v).Unit(); }
|
103 |
bendavid |
1.35 |
FourVectorM MomVtx(const ThreeVector &vtx) const;
|
104 |
paus |
1.42 |
UInt_t NConversions() const { return fConversions.Entries(); }
|
105 |
|
|
EObjType ObjType() const { return kPhoton; }
|
106 |
|
|
Double_t R9() const { return fR9; }
|
107 |
|
|
const SuperCluster *SCluster() const { return fSuperClusterRef.Obj(); }
|
108 |
|
|
Double_t SolidConeTrkIsoDr03() const { return fSolidConeTrkIsoDr03; }
|
109 |
|
|
Double_t SolidConeTrkIsoDr04() const { return fSolidConeTrkIso; }
|
110 |
|
|
UShort_t SolidConeNTrkDr03() const { return fSolidConeNTrkDr03; }
|
111 |
|
|
UShort_t SolidConeNTrkDr04() const { return fSolidConeNTrk; }
|
112 |
bendavid |
1.45 |
Double_t EtaWidth() const { return fEtaWidth >= 0. ? fEtaWidth : SCluster()->EtaWidth(); }
|
113 |
|
|
Double_t PhiWidth() const { return fPhiWidth >= 0. ? fPhiWidth : SCluster()->PhiWidth(); }
|
114 |
paus |
1.42 |
|
115 |
|
|
void AddConversion(const Conversion *c) { fConversions.Add(c); }
|
116 |
|
|
void SetEnergyErr(Double_t x) { fEnergyErr = x; }
|
117 |
|
|
void SetEnergyErrSmeared(Double_t x) { fEnergyErrSmeared = x; }
|
118 |
|
|
void SetEnergySmearing(Double_t x) { fEnergySmearing = x; }
|
119 |
|
|
void SetEnergyRegr(Double_t x) { fEnergyRegr = x; }
|
120 |
|
|
void SetEnergyErrRegr(Double_t x) { fEnergyErrRegr = x; }
|
121 |
|
|
void SetEnergyPhoFix(Double_t x) { fEnergyPhoFix = x; }
|
122 |
|
|
void SetEnergyErrPhoFix(Double_t x) { fEnergyErrPhoFix = x; }
|
123 |
|
|
void SetIsConverted(Bool_t b) { fIsConverted = b; }
|
124 |
loizides |
1.29 |
void SetMom(Double_t px, Double_t py, Double_t pz, Double_t e);
|
125 |
|
|
void SetSuperCluster(const SuperCluster* sc) { fSuperClusterRef = sc; }
|
126 |
|
|
void SetR9(Double_t x) { fR9 = x; }
|
127 |
|
|
void SetHadOverEm(Double_t x) { fHadOverEm = x; }
|
128 |
bendavid |
1.33 |
void SetHcalDepth1OverEcal(Double_t x) { fHcalDepth1OverEcal = x; }
|
129 |
|
|
void SetHcalDepth2OverEcal(Double_t x) { fHcalDepth2OverEcal = x; }
|
130 |
|
|
void SetMaxEnergyXtal(Double_t x) { fMaxEnergyXtal = x; }
|
131 |
|
|
void SetE15(Double_t x) { fE15 = x; }
|
132 |
|
|
void SetE25(Double_t x) { fE25 = x; }
|
133 |
|
|
void SetE33(Double_t x) { fE33 = x; }
|
134 |
|
|
void SetE55(Double_t x) { fE55 = x; }
|
135 |
paus |
1.42 |
void SetCovEtaEta(Double_t x) { fCovEtaEta = x; }
|
136 |
|
|
void SetCoviEtaiEta(Double_t x) { fCoviEtaiEta = x; }
|
137 |
loizides |
1.29 |
void SetHasPixelSeed(Bool_t x) { fHasPixelSeed = x; }
|
138 |
|
|
void SetEcalRecHitIsoDr04(Double_t x) { fEcalRecHitIso = x; }
|
139 |
|
|
void SetHcalTowerSumEtDr04(Double_t x) { fHcalTowerSumEtDr04 = x; }
|
140 |
|
|
void SetHcalDepth1TowerSumEtDr04(Double_t x) { fHcalDepth1TowerSumEtDr04 = x; }
|
141 |
|
|
void SetHcalDepth2TowerSumEtDr04(Double_t x) { fHcalDepth2TowerSumEtDr04 = x; }
|
142 |
|
|
void SetSolidConeTrkIsoDr04(Double_t x) { fSolidConeTrkIso = x; }
|
143 |
|
|
void SetHollowConeTrkIsoDr04(Double_t x) { fHollowConeTrkIso = x; }
|
144 |
|
|
void SetSolidConeNTrkDr04(UShort_t x) { fSolidConeNTrk = x; }
|
145 |
|
|
void SetHollowConeNTrkDr04(UShort_t x) { fHollowConeNTrk = x; }
|
146 |
|
|
void SetEcalRecHitIsoDr03(Double_t x) { fEcalRecHitIsoDr03 = x; }
|
147 |
|
|
void SetHcalTowerSumEtDr03(Double_t x) { fHcalTowerSumEtDr03 = x; }
|
148 |
|
|
void SetHcalDepth1TowerSumEtDr03(Double_t x) { fHcalDepth1TowerSumEtDr03 = x; }
|
149 |
|
|
void SetHcalDepth2TowerSumEtDr03(Double_t x) { fHcalDepth2TowerSumEtDr03 = x; }
|
150 |
|
|
void SetSolidConeTrkIsoDr03(Double_t x) { fSolidConeTrkIsoDr03 = x; }
|
151 |
|
|
void SetHollowConeTrkIsoDr03(Double_t x) { fHollowConeTrkIsoDr03 = x; }
|
152 |
|
|
void SetSolidConeNTrkDr03(UShort_t x) { fSolidConeNTrkDr03 = x; }
|
153 |
|
|
void SetHollowConeNTrkDr03(UShort_t x) { fHollowConeNTrkDr03 = x; }
|
154 |
bendavid |
1.43 |
void SetPFChargedHadronIso(Double_t x) { fPFChargedHadronIso = x; }
|
155 |
|
|
void SetPFNeutralHadronIso(Double_t x) { fPFNeutralHadronIso = x; }
|
156 |
|
|
void SetPFPhotonIso(Double_t x) { fPFPhotonIso = x; }
|
157 |
|
|
void SetIsEB(Bool_t x) { fIsEB = x; }
|
158 |
|
|
void SetIsEE(Bool_t x) { fIsEE = x; }
|
159 |
|
|
void SetIsEBGap(Bool_t x) { fIsEBGap = x; }
|
160 |
|
|
void SetIsEEGap(Bool_t x) { fIsEEGap = x; }
|
161 |
|
|
void SetIsEBEEGap(Bool_t x) { fIsEBEEGap = x; }
|
162 |
|
|
void SetIsLooseEM(Bool_t x) { fIsLooseEM = x; }
|
163 |
|
|
void SetIsLoosePhoton(Bool_t x) { fIsLoosePhoton = x; }
|
164 |
|
|
void SetIsTightPhoton(Bool_t x) { fIsTightPhoton = x; }
|
165 |
|
|
void SetCaloPosXYZ(Double_t x, Double_t y, Double_t z) { fCaloPos.SetXYZ(x,y,z); }
|
166 |
|
|
void SetPV(const Vertex *v) { fPVRef = v; }
|
167 |
|
|
void SetVtxProb(Double_t x) { fVtxProb = x; }
|
168 |
bendavid |
1.44 |
void SetIdMva(Double_t x) { fIdMva = x; }
|
169 |
bendavid |
1.45 |
void SetEtaWidth(Double_t x) { fEtaWidth = x; }
|
170 |
|
|
void SetPhiWidth(Double_t x) { fPhiWidth = x; }
|
171 |
|
|
|
172 |
bendavid |
1.43 |
Bool_t HasPV() const { return fPVRef.IsValid(); }
|
173 |
|
|
const Vertex *PV() const { return fPVRef.Obj(); }
|
174 |
|
|
Double_t VtxProb() const { return fVtxProb; }
|
175 |
bendavid |
1.44 |
Double_t IdMva() const { return fIdMva; }
|
176 |
sixie |
1.16 |
|
177 |
loizides |
1.1 |
protected:
|
178 |
paus |
1.42 |
void GetMom() const;
|
179 |
loizides |
1.21 |
|
180 |
paus |
1.42 |
Vect4M fMom; //four momentum vector
|
181 |
|
|
Vect3C fCaloPos; //shower position
|
182 |
|
|
Double32_t fR9; //[0,0,14]r9=e3x3/etotal variable
|
183 |
|
|
Double32_t fHadOverEm; //[0,0,14]hadronic over em fraction
|
184 |
|
|
Double32_t fHcalDepth1OverEcal; //[0,0,14]hadronic over em fraction depth1
|
185 |
|
|
Double32_t fHcalDepth2OverEcal; //[0,0,14]hadronic over em fraction depth2
|
186 |
|
|
Double32_t fMaxEnergyXtal; //[0,0,14]maximum single crystal energy
|
187 |
|
|
Double32_t fE15; //[0,0,14]1x5 crystal energy
|
188 |
|
|
Double32_t fE25; //[0,0,14]2x5 crystal energy
|
189 |
|
|
Double32_t fE33; //[0,0,14]3x3 crystal energy
|
190 |
|
|
Double32_t fE55; //[0,0,14]5x5 crystal energy
|
191 |
|
|
Double32_t fCovEtaEta; //[0,0,14]variance eta-eta
|
192 |
|
|
Double32_t fCoviEtaiEta; //[0,0,14]covariance eta-eta (in crystals)
|
193 |
|
|
Double32_t fEcalRecHitIso; //[0,0,14]ecal rechit based isolation dR 0.4 *RENAMING*
|
194 |
|
|
Double32_t fHcalRecHitIso; //[0,0,14]hcal rechit based isolation dR 0.4 - *DEPRECATED*
|
195 |
|
|
Double32_t fHcalTowerSumEtDr04; //[0,0,14]hcal tower based isolation dR 0.4
|
196 |
loizides |
1.29 |
Double32_t fHcalDepth1TowerSumEtDr04; //[0,0,14]hcal depth1 tower based isolation dR 0.4
|
197 |
|
|
Double32_t fHcalDepth2TowerSumEtDr04; //[0,0,14]hcal depth2 tower based isolation dR 0.4
|
198 |
paus |
1.42 |
Double32_t fSolidConeTrkIso; //[0,0,14]sum track pT in cone of dR 0.4 *RENAMING*
|
199 |
|
|
Double32_t fHollowConeTrkIso; //[0,0,14]as above excluding the core, dR 0.4 *RENAMING*
|
200 |
|
|
UShort_t fSolidConeNTrk; //number of tracks in a cone of dR 0.4 *RENAMING*
|
201 |
|
|
UShort_t fHollowConeNTrk; //as above excluding the core, dR 0.4 *RENAMING*
|
202 |
|
|
Double32_t fEcalRecHitIsoDr03; //[0,0,14]ecal rechit based isolation dR 0.3
|
203 |
|
|
Double32_t fHcalTowerSumEtDr03; //[0,0,14] hcal tower based isolation dR 0.3
|
204 |
loizides |
1.29 |
Double32_t fHcalDepth1TowerSumEtDr03; //[0,0,14]hcal depth1 tower based isolation dR 0.3
|
205 |
|
|
Double32_t fHcalDepth2TowerSumEtDr03; //[0,0,14]hcal depth2 tower based isolation dR 0.3
|
206 |
|
|
Double32_t fSolidConeTrkIsoDr03; //[0,0,14]sum track pT in cone of dR 0.3
|
207 |
|
|
Double32_t fHollowConeTrkIsoDr03; //[0,0,14]as above excluding the core, dR 0.3
|
208 |
bendavid |
1.43 |
UShort_t fSolidConeNTrkDr03; //number of tracks in a cone of dR 0.3
|
209 |
|
|
UShort_t fHollowConeNTrkDr03; //as above excluding the core, dR 0.3
|
210 |
|
|
Double32_t fPFChargedHadronIso; //[0,0,14]pf isolation, charged hadrons
|
211 |
|
|
Double32_t fPFNeutralHadronIso; //[0,0,14]pf isolation, neutral hadrons
|
212 |
|
|
Double32_t fPFPhotonIso; //[0,0,14]pf isolation, photons
|
213 |
|
|
Bool_t fHasPixelSeed; //=true if super cluster has matched seed
|
214 |
|
|
Bool_t fIsEB; //=true if photon is ECal barrel
|
215 |
|
|
Bool_t fIsEE; //=true if photon is ECAL endcap
|
216 |
|
|
Bool_t fIsEBGap; //=true photon is in ECAL barrel crystal gap
|
217 |
|
|
Bool_t fIsEEGap; //=true photon is in ECAL endcap crystal gap
|
218 |
|
|
Bool_t fIsEBEEGap; //=true photon is in boundary between EB/EE
|
219 |
|
|
Bool_t fIsLooseEM; //=true if loose em cuts are passed *DEPRECATED*
|
220 |
|
|
// LooseEM corresponds to supercluster preselection in 3_1_X
|
221 |
|
|
//so this variable is now always true for photon objects
|
222 |
|
|
Bool_t fIsLoosePhoton; //=true if loose photon cuts are passed
|
223 |
|
|
Bool_t fIsTightPhoton; //=true if tight photon cuts are passed
|
224 |
|
|
Bool_t fIsConverted; //=true if photon converted
|
225 |
|
|
RefArray<Conversion> fConversions; //refs to associated conversion candidates
|
226 |
|
|
Ref<SuperCluster> fSuperClusterRef; //ref to associated super cluster
|
227 |
|
|
Ref<Vertex> fPVRef; //ref to associated primary vertex
|
228 |
|
|
Double32_t fEnergyErr; //[0,0,14]uncertainty on energy measurement (in GeV), eg from variance regression
|
229 |
|
|
Double32_t fEnergyErrSmeared; //[0,0,14]uncertainty on energy measurement (in GeV), eg from variance regression with added smearing
|
230 |
|
|
Double32_t fEnergySmearing; //[0,0,14]additional energy smearing applied or required wrt MC
|
231 |
|
|
Double32_t fEnergyRegr; //[0,0,14]regression energy (computed at filler time)
|
232 |
|
|
Double32_t fEnergyErrRegr; //[0,0,14]regression energy uncertainty (computed at filler time)
|
233 |
|
|
Double32_t fEnergyPhoFix; //[0,0,14]PhotonFix energy (computed at filler time)
|
234 |
|
|
Double32_t fEnergyErrPhoFix; //[0,0,14]PhotonFix energy uncertainty (computed at filler time)
|
235 |
|
|
Double32_t fVtxProb; //[0,0,14]Probability that linked primary vertex is the correct one
|
236 |
bendavid |
1.44 |
Double32_t fIdMva; //[0,0,14]output of photon id mva
|
237 |
bendavid |
1.45 |
Double32_t fEtaWidth; //[0,0,14]output of photon id mva
|
238 |
|
|
Double32_t fPhiWidth; //[0,0,14]output of photon id mva
|
239 |
bendavid |
1.43 |
|
240 |
bendavid |
1.40 |
|
241 |
bendavid |
1.45 |
ClassDef(Photon,13) // Photon class
|
242 |
loizides |
1.1 |
};
|
243 |
|
|
}
|
244 |
loizides |
1.2 |
|
245 |
|
|
//--------------------------------------------------------------------------------------------------
|
246 |
bendavid |
1.37 |
inline mithep::ThreeVectorC mithep::Photon::CaloPos() const
|
247 |
|
|
{
|
248 |
|
|
// Get caloposition
|
249 |
|
|
mithep::ThreeVectorC calopos = fCaloPos.V();
|
250 |
|
|
if (calopos.Rho()>1.0) {
|
251 |
|
|
return calopos;
|
252 |
|
|
}
|
253 |
|
|
else {
|
254 |
|
|
return SCluster()->Point();
|
255 |
|
|
}
|
256 |
|
|
|
257 |
|
|
}
|
258 |
|
|
|
259 |
|
|
//--------------------------------------------------------------------------------------------------
|
260 |
loizides |
1.21 |
inline void mithep::Photon::GetMom() const
|
261 |
|
|
{
|
262 |
|
|
// Get momentum values from stored values.
|
263 |
|
|
|
264 |
loizides |
1.24 |
fCachedMom.SetCoordinates(fMom.Pt(),fMom.Eta(),fMom.Phi(),fMom.M());
|
265 |
loizides |
1.21 |
}
|
266 |
|
|
|
267 |
|
|
//--------------------------------------------------------------------------------------------------
|
268 |
loizides |
1.2 |
inline void mithep::Photon::SetMom(Double_t px, Double_t py, Double_t pz, Double_t e)
|
269 |
|
|
{
|
270 |
loizides |
1.21 |
// Set momentum vector.
|
271 |
loizides |
1.2 |
|
272 |
loizides |
1.21 |
fMom.SetXYZT(px, py, pz, e);
|
273 |
bendavid |
1.22 |
ClearMom();
|
274 |
loizides |
1.2 |
}
|
275 |
bendavid |
1.34 |
|
276 |
|
|
//--------------------------------------------------------------------------------------------------
|
277 |
bendavid |
1.35 |
inline mithep::FourVectorM mithep::Photon::MomVtx(const ThreeVector &vtx) const
|
278 |
bendavid |
1.34 |
{
|
279 |
|
|
// Get momentum values from stored values.
|
280 |
|
|
ThreeVector momv = Mom3(vtx);
|
281 |
|
|
FourVectorM newmom;
|
282 |
|
|
|
283 |
|
|
newmom.SetCoordinates(momv.Rho(),momv.Eta(),momv.Phi(),0.);
|
284 |
|
|
|
285 |
|
|
return newmom;
|
286 |
|
|
}
|
287 |
|
|
|
288 |
loizides |
1.1 |
#endif
|