4 #ifndef DataFormats_PatCandidates_Electron_h 5 #define DataFormats_PatCandidates_Electron_h 56 typedef std::pair<std::string,float>
IdPair;
89 const std::vector<reco::CaloCluster>&
basicClusters()
const {
return basicClusters_ ; }
91 const std::vector<reco::CaloCluster>&
preshowerClusters()
const {
return preshowerClusters_ ; }
93 const std::vector<reco::CaloCluster>&
pflowBasicClusters()
const {
return pflowBasicClusters_ ; }
139 bool isElectronIDAvailable(
const std::string& name)
const;
144 const std::vector<IdPair> &
electronIDs()
const {
return electronIDs_; }
152 float ecalIso()
const {
return dr04EcalRecHitSumEt(); }
154 float hcalIso()
const {
return dr04HcalTowerSumEt(); }
156 float caloIso()
const {
return ecalIso()+hcalIso(); }
168 puppiChargedHadronIso_ = chargedhadrons_;
169 puppiNeutralHadronIso_ = neutralhadrons_;
170 puppiPhotonIso_ = photons_;
176 puppiNoLeptonsChargedHadronIso_ = chargedhadrons_;
177 puppiNoLeptonsNeutralHadronIso_ = neutralhadrons_;
178 puppiNoLeptonsPhotonIso_ = photons_;
182 bool isPF()
const{
return isPF_; }
183 void setIsPF(
bool hasPFCandidate) { isPF_ = hasPFCandidate ; }
189 pfCandidateRef_ = ref;
195 return (pfCandidateRef_.isNonnull() ? 1 : 0) + associatedPackedFCandidateIndices_.size();
201 typedef enum IPTYPE { PV2D = 0, PV3D = 1, BS2D = 2, BS3D = 3, PVDZ = 4, IpTypeSize = 5 }
IpType;
205 double edB(
IPTYPE type)
const;
211 void setDB(
double dB,
double edB,
IPTYPE type);
226 double ip3d()
const {
return ip3d_; }
228 void setMvaVariables(
double sigmaIetaIphi,
double ip3d );
271 packedPFCandidates_ = refprod;
272 associatedPackedFCandidateIndices_.clear();
273 associatedPackedFCandidateIndices_.insert(associatedPackedFCandidateIndices_.end(),
282 void initImpactParameters();
378 float ip_[IpTypeSize];
380 float eip_[IpTypeSize];
float trackIso() const
Overload of pat::Lepton::trackIso(); returns the value of the summed track pt in a cone of deltaR<0...
float puppiNoLeptonsChargedHadronIso() const
returns PUPPINoLeptons isolations
double ecalTrackRegressionSmear() const
double ecalTrackRegressionScale() const
uint8_t cachedIP_
True if the IP (former dB) has been cached.
bool embeddedTrack_
True if electron's track is stored internally.
std::vector< reco::GsfTrack > gsfTrack_
Place to store electron's gsfTrack internally.
double ecalRegressionEnergy_
output of regression
embedPFCandidate
embed in AOD externally stored the electron's pflow preshower clusters
void setElectronIDs(const std::vector< IdPair > &ids)
Store multiple electron ID values, discarding existing ones. The first one in the list becomes the 'd...
double dB() const
the version without arguments returns PD2D, but with an absolute value (for backwards compatibility) ...
double ecalScale() const
get scale corrections /smearings
double ecalScale_
scale corrections and smearing applied or to be be applied. Initialized to -99999.
float puppiChargedHadronIso_
PUPPI isolations.
const LorentzVector & ecalDrivenMomentum() const
embedPreshowerClusters
embed in AOD externally stored the electron's basic clusters
embedGsfTrack
embed in AOD externally stored gsf electron core
float caloIso() const
Overload of pat::Lepton::caloIso(); returns the sum of ecalIso() and hcalIso.
const std::vector< reco::CaloCluster > & basicClusters() const
embedPflowSuperCluster
embed in AOD externally stored supercluster
Electron * clone() const override
required reimplementation of the Candidate's clone method
void setPFCandidateRef(const reco::PFCandidateRef &ref)
add a reference to the source IsolatedPFCandidate
embedRecHits
embed in AOD externally stored track (note: gsf electrons don't have a track)
void full5x5_setSigmaIetaIphi(float sigmaIetaIphi)
void setPassConversionVeto(bool flag)
std::vector< reco::SuperCluster > superCluster_
Place to store electron's supercluster internally.
Slimmer of PAT Electrons.
double ecalTrackRegressionSmear_
double ecalRegressionScale() const
std::vector< reco::Track > track_
Place to store electron's track internally.
electronID
electronId to be used for probe the following types are available:
void setEcalDrivenMomentum(const Candidate::LorentzVector &mom)
bool embeddedGsfElectronCore_
True if electron's gsfElectronCore is stored internally.
double ecalRegressionSmear() const
const EcalRecHitCollection * recHits() const
const std::vector< reco::CaloCluster > & pflowBasicClusters() const
std::vector< reco::CaloCluster > pflowBasicClusters_
Place to store electron's pflow basic clusters internally.
float electronID(const char *name) const
virtual reco::TrackRef track() const
reference to a Track
edm::RefProd< pat::PackedCandidateCollection > packedPFCandidates_
float puppiNeutralHadronIso() const
std::vector< reco::CaloCluster > basicClusters_
Place to store electron's basic clusters internally.
embedBasicClusters
embed in AOD externally stored the electron's seedcluster
std::vector< uint16_t > associatedPackedFCandidateIndices_
size_t numberOfSourceCandidatePtrs() const override
get the number of non-null PFCandidates
double ecalRegressionSmear_
edm::RefVector< ElectronCollection > ElectronRefVector
std::ostream & operator<<(std::ostream &, BeamSpot beam)
std::vector< reco::CaloCluster > preshowerClusters_
Place to store electron's preshower clusters internally.
embedTrack
embed in AOD externally stored particle flow candidate
std::vector< Electron > ElectronCollection
bool embeddedRecHits_
True if RecHits stored internally.
float puppiNoLeptonsPhotonIso() const
float puppiNoLeptonsChargedHadronIso_
PUPPINoLeptons isolations.
double edB() const
the version without arguments returns PD2D, but with an absolute value (for backwards compatibility) ...
double ecalTrackRegressionError_
enum pat::Electron::IPTYPE IpType
void setEcalTrackRegressionSmear(double val)
void setIsolationPUPPINoLeptons(float chargedhadrons_, float neutralhadrons_, float photons_)
sets PUPPINoLeptons isolations
std::ostream & operator<<(std::ostream &out, const strbitset::index_type &r)
bool passConversionVeto_
conversion veto
bool embeddedSeedCluster_
True if seed cluster is stored internally.
edm::AtomicPtrCache< std::vector< reco::SuperCluster > > superClusterRelinked_
Place to temporarily store the electron's supercluster after relinking the seed to it...
const std::vector< reco::CaloCluster > & pflowPreshowerClusters() const
Abs< T >::type abs(const T &t)
const std::vector< IdPair > & electronIDs() const
Returns all the electron IDs in the form of <name,value> pairs. The 'default' ID is the first in the ...
std::vector< reco::GsfElectronCore > gsfElectronCore_
Place to store electron's gsfElectronCore internally.
double ecalTrackRegressionEnergy() const
regression2
float puppiNoLeptonsPhotonIso_
float puppiNoLeptonsNeutralHadronIso_
float full5x5_sigmaIetaIphi() const
sigmaIEtaIPhi (from full 5x5 non-ZS clusters without fractions, a la 5.3.X)
double ecalTrackRegressionEnergy_
double ecalRegressionError() const
double ecalTrackRegressionError() const
embedSeedCluster
embed in AOD externally stored supercluster
float ecalIso() const
Overload of pat::Lepton::ecalIso(); returns the value of the summed Et of all recHits in the ecal in ...
double ecalRegressionError_
EcalRecHitCollection recHits_
Place to store electron's RecHits internally (5x5 around seed+ all RecHits)
void setEcalTrackRegressionEnergy(double val, double err)
set regression2
std::vector< reco::PFCandidate > PFCandidateCollection
collection of PFCandidates
reco::PFCandidateCollection pfCandidate_
A copy of the source IsolatedPFCandidate is stored in this vector if embeddedPFCandidate_ if True...
void setEcalScale(double val)
set scale corrections / smearings
void setEcalRegressionScale(double val)
bool embeddedGsfTrack_
True if electron's gsfTrack is stored internally.
edm::Ref< ElectronCollection > ElectronRef
void setIsPF(bool hasPFCandidate)
bool isElectronIDAvailable(const char *name) const
float puppiNoLeptonsNeutralHadronIso() const
bool embeddedPflowSuperCluster_
True if electron's pflowsupercluster is stored internally.
float puppiPhotonIso() const
void setEcalRegressionSmear(double val)
Analysis-level electron class.
std::vector< IdPair > electronIDs_
Electron IDs.
void setEcalSmear(double val)
bool passConversionVeto() const
vertex fit combined with missing number of hits method
math::XYZTLorentzVector LorentzVector
Lorentz vector.
reco::PFCandidateRef pfCandidateRef_
reference to the IsolatedPFCandidate this has been built from; null if this has been built from a sta...
bool embeddedSuperCluster_
True if electron's supercluster is stored internally.
float puppiNeutralHadronIso_
embedSuperCluster
embed in AOD externally stored gsf track
void setEcalTrackRegressionScale(double val)
embedPflowPreshowerClusters
embed in AOD externally stored the electron's pflow basic clusters
double ecalRegressionScale_
std::vector< reco::CaloCluster > pflowPreshowerClusters_
Place to store electron's pflow preshower clusters internally.
std::pair< std::string, float > IdPair
float sigmaIetaIphi() const
float puppiChargedHadronIso() const
returns PUPPI isolations
const std::vector< reco::CaloCluster > & preshowerClusters() const
void setAssociatedPackedPFCandidates(const edm::RefProd< pat::PackedCandidateCollection > &refprod, T beginIndexItr, T endIndexItr)
References to PFCandidates linked to this object (e.g. for isolation vetos or masking before jet recl...
LorentzVector ecalDrivenMomentum_
ECAL-driven momentum.
embedPflowBasicClusters
embed in AOD externally stored the electron's preshower clusters
bool embeddedPFCandidate_
true if the IsolatedPFCandidate is embedded
double ecalTrackRegressionScale_
double ecalRegressionEnergy() const
void setIsolationPUPPI(float chargedhadrons_, float neutralhadrons_, float photons_)
sets PUPPI isolations
void setEcalRegressionEnergy(double val, double err)
set regression1
math::PtEtaPhiELorentzVectorF LorentzVector
std::vector< reco::SuperCluster > pflowSuperCluster_
Place to store electron's pflow supercluster internally.
float hcalIso() const
Overload of pat::Lepton::hcalIso(); returns the value of the summed Et of all caloTowers in the hcal ...
float sigmaIetaIphi_
additional missing mva variables : 14/04/2012
std::vector< reco::CaloCluster > seedCluster_
Place to store electron's seed cluster internally.