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; }
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 hcalTowerSumEtConeDR04() const
Hcal isolation sum.
Analysis-level Photon class.
edm::RefVector< PhotonCollection > PhotonRefVector
void setEcalIso(float caloIso)
Sets ecal isolation variable.
float neutralHadronIso() const
void setTrackIso(float trackIso)
Sets tracker isolation variable.
const reco::GenParticle * genParticle(size_t idx=0) const
Photon()
default constructor
void trackIsoDeposit(const IsoDeposit &dep)
Sets tracker IsoDeposit.
virtual Photon * clone() const
required reimplementation of the Candidate's clone method
edm::Ref< PhotonCollection > PhotonRef
reco::CaloClusterPtr seed() const
direct access to the seed cluster
float trkSumPtSolidConeDR04() const
float puChargedHadronIso() const
void embedBasicClusters()
method to store the electron's basic clusters
void ecalIsoDeposit(const IsoDeposit &dep)
Sets ecal IsoDeposit.
float ecalRecHitSumEtConeDR04() const
void embedSuperCluster()
method to store the photon's supercluster internally
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.
void setIsolation(IsolationKeys key, float value)
float chargedHadronIso() 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
const reco::Candidate * genPhoton() const
return the match to the generated photon
void setPhotonIDs(const std::vector< IdPair > &ids)
edm::RefProd< pat::PackedCandidateCollection > packedPFCandidates_
const IsoDeposit * hcalIsoDeposit() const
Return the hcal IsoDeposit.
void embedSeedCluster()
method to store the electron's seedcluster internally
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 userIso(uint8_t index=0) const
Returns a user defined isolation value.
Bool_t photonID(const std::string &name) const
void hcalIsoDeposit(const IsoDeposit &dep)
Sets hcal IsoDeposit.
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...
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
std::pair< std::string, Bool_t > IdPair
const std::vector< IdPair > & photonIDs() const
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 ...
const IsoDeposit * trackIsoDeposit() const
Return the tracker IsoDeposit.
virtual ~Photon()
destructor
bool embeddedSeedCluster_
True if seed cluster is stored internally.
Templated PAT object container.
float userIsolation(IsolationKeys key) const
const IsoDeposit * userIsoDeposit(uint8_t index=0) const
Return a specified user-level IsoDeposit.
std::vector< uint16_t > associatedPackedFCandidateIndices_
void setPackedPFCandidateCollection(const edm::RefProd< pat::PackedCandidateCollection > &refprod)
References to PFCandidates (e.g. to recompute isolation)
const IsoDeposit * isoDeposit(IsolationKeys key) const
Returns the IsoDeposit associated with some key, or a null pointer if it is not available.
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