1 #ifndef EgammaCandidates_Photon_h
2 #define EgammaCandidates_Photon_h
92 bool isPhoton()
const override {
return true; }
231 return (!(depth > 0 and depth < 8)) ? std::accumulate(
std::begin(hovere),
std::end(hovere), 0.
f)
251 return (!(depth > 0 and depth < 8)) ? std::accumulate(
std::begin(hovere),
std::end(hovere), 0.
f)
471 return (!(depth > 0 and depth < 8)) ? std::accumulate(
std::begin(hcaliso),
std::end(hcaliso), 0.
f)
472 : hcaliso[depth - 1];
489 return (!(depth > 0 and depth < 8)) ? std::accumulate(
std::begin(hcaliso),
std::end(hcaliso), 0.
f)
490 : hcaliso[depth - 1];
MIPVariables mipVariableBlock_
float chargedHadronPFPVIso() const
void setPflowIsolationVariables(const PflowIsolationVariables &pfisol)
Set Particle Flow Isolation variables.
float hcalDepth1TowerSumEtBc
SaturationInfo saturationInfo_
Photon * clone() const override
returns a clone of the candidate
float hcalDepth1TowerSumEt
void setMIPVariables(const MIPVariables &mipVar)
set mip Variables
float trkSumPtSolidConeDR03() const
ShowerShape full5x5_showerShapeBlock_
std::array< float, 7 > hcalRecHitSumEtBc
PflowIsolationVariables pfIsolation_
std::vector< CaloTowerDetId > hcalTowersBehindClusters
void setCandidateP4type(const P4type type)
const EnergyCorrections & energyCorrections() const
float chargedHadronIso() const
Accessors for Particle Flow Isolation variables.
bool isEBGap() const
true if photon is in EB, and inside the boundaries in super crystals/modules
void setCorrectedEnergy(P4type type, float E, float dE, bool toCand=true)
float neutralHadronIso() const
float full5x5_r2x5() const
float full5x5_hcalOverEcalBc(int depth=0) const
the ratio of total energy of hcal rechits behind the SC and the SC energy
const SaturationInfo & saturationInfo() const
float hcalOverEcalBc(int depth=0) const
reco::ConversionRefVector conversionsOneLeg() const
vector of references to one leg Conversion's
float hcalTowerSumEtConeDR04(int depth=0) const
float hcalDepth2OverEcalBc
float hcalOverEcalBc(const ShowerShape &ss, int depth) const
the ratio of total energy of hcal rechits behind the SC and the SC energy
float trkSumPtSolidConeDR04() const
int nTrkSolidConeDR03() const
float full5x5_e2x5() const
float e1x5() const
Shower shape variables.
bool isEBEEGap() const
true if photon is in boundary between EB and EE
float chargedHadronWorstVtxGeomVetoIso
float ecalRecHitSumEtConeDR04() const
bool overlap(const Candidate &) const override
check overlap with another candidate
void setSaturationInfo(const SaturationInfo &s)
float full5x5_r1x5() const
const Point & vertex() const override
vertex position (overwritten by PF...)
float chargedHadronWorstVtxIso
ROOT::Math::PositionVector3D< ROOT::Math::Cartesian3D< float > > XYZPointF
point in space with cartesian internal representation
std::array< float, 7 > hcalOverEcalBc
float trkSumPtHollowConeDR03() const
float hcalOverEcal(const ShowerShape &ss, int depth) const
the total hadronic over electromagnetic fraction
float regression2EnergyError
float hcalDepth2TowerSumEt
void setHaloTaggerMVAVal(float x)
set the haloTaggerMVAVal here
float full5x5_maxEnergyXtal() const
float full5x5_sigmaEtaEta() const
IsolationVariables isolationR03_
int conversionTrackProvenance(const edm::RefToBase< reco::Track > &convTrack) const
const LorentzVector & p4() const final
four-momentum Lorentz vector
Photon()
default constructor
void setVertex(const Point &vertex) override
set primary event vertex used to define photon direction
float mipIntercept() const
math::XYZPointF caloPosition_
position of seed BasicCluster for shower depth of unconverted photon
float full5x5_e1x5() const
full5x5 Shower shape variables
float full5x5_e3x3() const
float hcalPFClusterIso() const
bool isPhoton() const override
Implement Candidate method for particle species.
float ecalPFClusterIso() const
LorentzVector regression2P4
reco::PhotonCoreRef photonCore() const
returns a reference to the core photon object
IsolationVariables isolationR04_
void setPhotonCore(const reco::PhotonCoreRef &photonCore)
float full5x5_sigmaIetaIeta() const
reco::SuperClusterRef superCluster() const override
Ref to SuperCluster.
reco::ConversionRefVector conversions() const
vector of references to Conversion's
PflowIsolationVariables()
void setEnergyCorrections(const EnergyCorrections &e)
bool isStandardPhoton() const
void setPflowIDVariables(const PflowIDVariables &pfid)
float sigmaIetaIeta() const
EnergyCorrections eCorrections_
void hcalToRun2EffDepth()
math::XYZTLorentzVector LorentzVector
void setShowerShapeVariables(const ShowerShape &a)
float sigmaEtaEta() const
float full5x5_hcalOverEcal(int depth=0) const
the total hadronic over electromagnetic fraction
int nTrkHollowConeDR04() const
int nTrkHollowConeDR03() const
bool isPFlowPhoton() const
Retrieve photonCore attributes.
~Photon() override
destructor
float mipTotEnergy() const
float hadronicOverEm(int depth=0) const
math::XYZPointF caloPosition() const
position in ECAL: this is th SC position if r9<0.93. If r8>0.93 is position of seed BasicCluster taki...
FiducialFlags fiducialFlagBlock_
float getCorrectedEnergyError(P4type type) const
float hcalDepth2TowerSumEtBc
P4type getCandidateP4type() const
float hcalTowerSumEtBcConeDR03(int depth=0) const
Hcal isolation sum for each depth excluding the region containing the rechits used for hcalOverEcalBc...
float etOutsideMustache() const
bool hasConversionTracks() const
Bool flagging photons with a vector of refereces to conversions with size >0.
float full5x5_hadronicOverEm(int depth=0) const
LorentzVector regression1P4
bool isEEGap() const
true if photon is in EE, and inside the boundaries in supercrystal/D
float regression1EnergyError
float hcalOverEcal(int depth=0) const
float hcalDepth1OverEcalBc
std::array< float, 7 > hcalOverEcal
bool hasPixelSeed() const
Bool flagging photons having a non-zero size vector of Ref to electornPixel seeds.
float hcalTowerSumEt(const IsolationVariables &iv, int depth) const
Hcal isolation sum for each depth excluding the region containing the rechits used for hcalOverEcal()...
void setFiducialVolumeFlags(const FiducialFlags &a)
set flags for photons in the ECAL fiducial volume
int nTrkSolidConeDR04() const
float hadTowOverEm(int depth=0) const
std::array< float, 7 > hcalRecHitSumEt
math::XYZTLorentzVector LorentzVector
Lorentz vector.
float getCorrectedEnergy(P4type type) const
bool hadronicOverEmValid() const
returns false if H/E is not reliably estimated (e.g. because hcal was off or masked) ...
float full5x5_hadTowOverEm(int depth=0) const
float trkSumPtHollowConeDR04() const
float chargedHadronPFPVIso
void full5x5_setShowerShapeVariables(const ShowerShape &a)
float ecalRecHitSumEtConeDR03() const
Isolation variables in cone dR=0.3.
float hcalTowerSumEtBc(const IsolationVariables &iv, int depth) const
Hcal isolation sum for each depth excluding the region containing the rechits used for hcalOverEcalBc...
const ShowerShape & full5x5_showerShapeVariables() const
Structure Point Contains parameters of Gaussian fits to DMRs.
int nClusterOutsideMustache() const
reco::ElectronSeedRefVector electronPixelSeeds() const
reference to electron Pixel seed
const std::vector< CaloTowerDetId > & hcalTowersBehindClusters() const
float chargedHadronWorstVtxIso() const
float isSeedSaturated() const
float hcalTowerSumEtConeDR03(int depth=0) const
Hcal isolation sum for each depth excluding the region containing the rechits used for hcalOverEcal()...
float chargedHadronWorstVtxGeomVetoIso() const
reco::SuperClusterRef parentSuperCluster() const
Ref to PFlow SuperCluster.
ShowerShape showerShapeBlock_
const PflowIsolationVariables & getPflowIsolationVariables() const
Get Particle Flow Isolation variables block.
float mipChi2() const
MIP variables.
bool hadTowOverEmValid() const
const ShowerShape & showerShapeVariables() const
float hcalTowerSumEtBcConeDR04(int depth=0) const
float haloTaggerMVAVal() const
MVA based beam halo tagger - trained for EE and for pT > 200 GeV.
reco::PhotonCoreRef photonCore_
reference to the PhotonCore
float full5x5_e5x5() const
void setP4(const LorentzVector &p4) final
set 4-momentum
int nClusterOutsideMustache
float nSaturatedXtals() const
void setIsolationVariables(const IsolationVariables &isolInDr04, const IsolationVariables &isolInDr03)
set relevant isolation variables
void setP4(P4type type, const LorentzVector &p4, float p4Error, bool setToRecoCandidate)
static constexpr float mvaPlaceholder
math::XYZPoint Point
point in the space
float maxEnergyXtal() const