4 #ifndef DataFormats_PatCandidates_Photon_h
5 #define DataFormats_PatCandidates_Photon_h
45 class PATPhotonSlimmer;
51 typedef std::pair<std::string,Bool_t>
IdPair;
152 if (
size_t(key) >=
isolations_.size())
return -1.0;
154 }
else switch (key) {
174 "The key for which you're setting isolation does not correspond " <<
175 "to an individual isolation but to the sum of more independent isolations " <<
176 "(e.g. Calo = Ecal + Hcal), so you can't SET the value, just GET it.\n" <<
177 "Please set up each component independly.\n";
195 if (it->first == key)
return & it->second;
210 for (; it != ed; ++it) {
211 if (it->first == key) { it->second = dep;
return; }
float full5x5_maxEnergyXtal() const
void setAssociatedPackedPFCandidates(const edm::RefVector< pat::PackedCandidateCollection > &refvector)
References to PFCandidates linked to this object (e.g. for isolation vetos or masking before jet recl...
float subClusDPhi2() const
float hcalTowerSumEtConeDR04() const
Hcal isolation sum.
Analysis-level Photon class.
edm::RefVector< PhotonCollection > PhotonRefVector
float full5x5_hadronicOverEm() const
void setEcalIso(float caloIso)
Sets ecal isolation variable.
float neutralHadronIso() const
void setSubClusDPhi3(float s)
void setTrackIso(float trackIso)
Sets tracker isolation variable.
const reco::GenParticle * genParticle(size_t idx=0) const
Photon()
default constructor
bool passElectronVeto_
-— conversion veto -—
void trackIsoDeposit(const IsoDeposit &dep)
Sets tracker IsoDeposit.
virtual Photon * clone() const
required reimplementation of the Candidate's clone method
edm::Ref< PhotonCollection > PhotonRef
void setMaxDRRawEnergy(float m)
float full5x5_e5x5() const
float subClusDEta3() const
reco::CaloClusterPtr seed() const
direct access to the seed cluster
float subClusDEta2() const
float trkSumPtSolidConeDR04() const
float puChargedHadronIso() const
void embedBasicClusters()
method to store the electron's basic clusters
ShowerShape full5x5_showerShape_
void ecalIsoDeposit(const IsoDeposit &dep)
Sets ecal IsoDeposit.
void setSubClusDPhi2(float s)
float ecalRecHitSumEtConeDR04() const
float subClusDPhi1() const
void embedSuperCluster()
method to store the photon's supercluster internally
void full5x5_setShowerShape(const ShowerShape &s)
const std::vector< reco::CaloCluster > & basicClusters() const
std::vector< reco::SuperCluster > superCluster_
IsolationKeys
Enum defining isolation keys.
std::vector< reco::CaloCluster > preshowerClusters_
Place to store electron's preshower clusters internally.
void setUserIso(float value, uint8_t index=0)
Sets user isolation variable index.
void setGenParticleRef(const reco::GenParticleRef &ref, bool embed=false)
Set the generator level particle reference.
std::vector< reco::CaloCluster > seedCluster_
Place to store electron's seed cluster internally.
void setHcalIso(float caloIso)
Sets hcal isolation variable.
float hadTowDepth1OverEm() const
the ration of hadronic energy in towers depth1 behind the BCs in the SC and the SC energy ...
void setIsolation(IsolationKeys key, float value)
float chargedHadronIso() const
float full5x5_hadTowDepth1OverEm() const
edm::RefVector< pat::PackedCandidateCollection > associatedPackedPFCandidates() const
References to PFCandidates linked to this object (e.g. for isolation vetos or masking before jet recl...
void setIsoDeposit(IsolationKeys key, const IsoDeposit &dep)
Sets the IsoDeposit associated with some key; if it is already existent, it is overwritten.
void userIsoDeposit(const IsoDeposit &dep, uint8_t index=0)
Sets user-level IsoDeposit.
std::ostream & operator<<(std::ostream &, BeamSpot beam)
const EcalRecHitCollection * recHits() const
float seedEnergy() const
input variables for regression energy corrections
float full5x5_sigmaIetaIeta() const
const reco::Candidate * genPhoton() const
return the match to the generated photon
float full3x3_e3x3() const
void setMaxDRDEta(float m)
float subClusRawE1() const
void setPhotonIDs(const std::vector< IdPair > &ids)
edm::RefProd< pat::PackedCandidateCollection > packedPFCandidates_
float full5x5_r2x5() const
const IsoDeposit * hcalIsoDeposit() const
Return the hcal IsoDeposit.
float subClusRawE3() const
void setPassElectronVeto(bool flag)
void embedSeedCluster()
method to store the electron's seedcluster internally
float hadTowDepth2OverEm() const
the ration of hadronic energy in towers depth2 behind the BCs in the SC and the SC energy ...
void embedPreshowerClusters()
method to store the electron's preshower clusters
bool isPhotonIDAvailable(const std::string &name) const
Returns true if a specific ID is available in this pat::Photon.
float subClusDPhi3() const
float userIso(uint8_t index=0) const
Returns a user defined isolation value.
float full5x5_sigmaEtaEta() const
void setSeedEnergy(float e)
Bool_t photonID(const std::string &name) const
void setSubClusDPhi1(float s)
void hcalIsoDeposit(const IsoDeposit &dep)
Sets hcal IsoDeposit.
void setSubClusDEta1(float s)
std::vector< IdPair > photonIDs_
bool embeddedSuperCluster_
const IsoDeposit * ecalIsoDeposit() const
Return the ecal IsoDeposit.
edm::AtomicPtrCache< std::vector< reco::SuperCluster > > superClusterRelinked_
Place to temporarily store the electron's supercluster after relinking the seed to it...
float hadronicDepth1OverEm() const
the hadronic release in depth1 over electromagnetic fraction
EcalRecHitCollection recHits_
Place to store electron's RecHits internally (5x5 around seed+ all RecHits)
bool embeddedRecHits_
True if RecHits stored internally.
unsigned int index
index type
bool hasPixelSeed() const
std::pair< std::string, Bool_t > IdPair
void setHasPixelSeed(bool flag)
const std::vector< IdPair > & photonIDs() const
float full5x5_e2x5() const
void setSubClusDEta2(float s)
size_t numberOfSourceCandidatePtrs() const
get the number of non-null PFCandidates
float particleIso() const
IsoDepositPairs isoDeposits_
reco::SuperClusterRef superCluster() const
override the superCluster method from CaloJet, to access the internal storage of the supercluster ...
void setSubClusRawE2(float s)
float full5x5_e1x5() const
float full5x5_hadronicDepth1OverEm() const
bool passElectronVeto() const
vertex fit method
float full5x5_hadronicDepth2OverEm() const
float maxDRRawEnergy() const
const IsoDeposit * trackIsoDeposit() const
Return the tracker IsoDeposit.
float seedEnergy_
-— input variables for regression energy corrections -—
void setMaxDRDPhi(float m)
void setSubClusDEta3(float s)
virtual ~Photon()
destructor
bool embeddedSeedCluster_
True if seed cluster is stored internally.
void setSubClusRawE1(float s)
float full5x5_hadTowOverEm() const
Templated PAT object container.
float userIsolation(IsolationKeys key) const
float full5x5_r1x5() const
const IsoDeposit * userIsoDeposit(uint8_t index=0) const
Return a specified user-level IsoDeposit.
void setSubClusRawE3(float s)
std::vector< uint16_t > associatedPackedFCandidateIndices_
void setPackedPFCandidateCollection(const edm::RefProd< pat::PackedCandidateCollection > &refprod)
References to PFCandidates (e.g. to recompute isolation)
float full5x5_hadTowDepth2OverEm() const
float subClusDEta1() const
const IsoDeposit * isoDeposit(IsolationKeys key) const
Returns the IsoDeposit associated with some key, or a null pointer if it is not available.
float subClusRawE2() const
std::vector< std::pair< IsolationKeys, pat::IsoDeposit > > IsoDepositPairs
void embedRecHits(const EcalRecHitCollection *rechits)
method to store the RecHits internally - can be called from the PATElectronProducer ...
void setGenPhoton(const reco::GenParticleRef &gp, bool embed=false)
method to set the generated photon
reco::CandidatePtr sourceCandidatePtr(size_type i) const
get the source candidate pointer with index i
std::vector< Photon > PhotonCollection
std::vector< reco::CaloCluster > basicClusters_
Place to store electron's basic clusters internally.
std::vector< float > isolations_
const std::vector< reco::CaloCluster > & preshowerClusters() const