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