#include <PFCandidateElectronExtra.h>
Public Types | |
enum | MvaVariable { MVA_FIRST = 0, MVA_LnPtGsf = MVA_FIRST, MVA_EtaGsf, MVA_SigmaPtOverPt, MVA_Fbrem, MVA_Chi2Gsf, MVA_NhitsKf, MVA_Chi2Kf, MVA_EtotOverPin, MVA_EseedOverPout, MVA_EbremOverDeltaP, MVA_DeltaEtaTrackCluster, MVA_LogSigmaEtaEta, MVA_HOverHE, MVA_LateBrem, MVA_FirstBrem, MVA_MVA, MVA_LAST } |
enum | StatusFlag { X = 0, Selected, ECALDrivenPreselected, MVASelected, Rejected } |
Public Member Functions | |
bool | electronStatus (StatusFlag) const |
access to the status | |
reco::GsfTrackRef | gsfTrackRef () const |
return a reference to the corresponding GSF track | |
reco::TrackRef | kfTrackRef () const |
return a reference to the corresponding KF track | |
bool | mvaStatus (MvaVariable flag) const |
access to mva variable status | |
float | mvaVariable (MvaVariable var) const |
access to any variable | |
const std::vector< float > & | mvaVariables () const |
access to the mva variables | |
PFCandidateElectronExtra (const GsfTrackRef &) | |
constructor | |
PFCandidateElectronExtra () | |
constructor | |
void | setClusterEnergies (const std::vector< float > &energies) |
set the cluster energies. the Pout should be saved first | |
void | setDeltaEta (float val) |
set the delta eta | |
void | setEarlyBrem (float val) |
set EarlyBrem | |
void | setGsfTrackPout (const math::XYZTLorentzVector &pout) |
set the pout (not trivial to get from the GSF track) | |
void | setGsfTrackRef (const reco::GsfTrackRef &ref) |
set gsftrack reference | |
void | setHadEnergy (float val) |
set the had energy. The cluster energies should be entered before | |
void | setKfTrackRef (const reco::TrackRef &ref) |
set kf track reference | |
void | setLateBrem (float val) |
set LateBrem | |
void | setMVA (float val) |
set the result (mostly for debugging) | |
void | setSigmaEtaEta (float val) |
set the sigmaetaeta | |
void | setStatus (StatusFlag type, bool status=true) |
set status | |
~PFCandidateElectronExtra () | |
destructor | |
Private Member Functions | |
void | setVariable (MvaVariable type, float var) |
Private Attributes | |
std::vector< float > | clusterEnergies_ |
energy of individual clusters (corrected). The first cluster is the seed | |
float | deltaEta_ |
float | earlyBrem_ |
reco::GsfTrackRef | gsfTrackRef_ |
Ref to the GSF track. | |
float | hadEnergy_ |
reco::TrackRef | kfTrackRef_ |
Ref to the KF track. | |
float | lateBrem_ |
int | mvaStatus_ |
status of mva variables | |
std::vector< float > | mvaVariables_ |
mva variables - transient ! | |
math::XYZTLorentzVector | pout_ |
Variables entering the MVA that should be saved. | |
float | sigmaEtaEta_ |
int | status_ |
Status of the electron. |
extra information on the electron particle candidate from particle flow
Definition at line 16 of file PFCandidateElectronExtra.h.
Definition at line 27 of file PFCandidateElectronExtra.h.
Definition at line 18 of file PFCandidateElectronExtra.h.
{ X=0, // undefined Selected, // selected ECALDrivenPreselected, // ECAL-driven electron pre-selected MVASelected, // Passed the internal particle-flow selection (mva selection) Rejected // Rejected };
PFCandidateElectronExtra::PFCandidateElectronExtra | ( | ) |
constructor
Definition at line 8 of file PFCandidateElectronExtra.cc.
References gsfTrackRef_, hadEnergy_, kfTrackRef_, m, MVA_FIRST, MVA_LAST, mvaStatus_, mvaVariables_, pout_, sigmaEtaEta_, and status_.
{ status_ = 0; mvaStatus_ = 0; pout_ = math::XYZTLorentzVector(0.,0.,0.,0.); hadEnergy_ = -9999. ; sigmaEtaEta_ = -9999.; for(MvaVariable m=MVA_FIRST; m<MVA_LAST; m=MvaVariable(m+1)) mvaVariables_.push_back(-9999.); gsfTrackRef_ = GsfTrackRef(); kfTrackRef_ = TrackRef(); }
PFCandidateElectronExtra::PFCandidateElectronExtra | ( | const GsfTrackRef & | gsfTrack | ) |
constructor
Definition at line 22 of file PFCandidateElectronExtra.cc.
References gsfTrackRef_, hadEnergy_, kfTrackRef_, funct::log(), m, MVA_Chi2Gsf, MVA_EtaGsf, MVA_Fbrem, MVA_FIRST, MVA_LAST, MVA_LnPtGsf, MVA_SigmaPtOverPt, mvaStatus_, mvaVariables_, pout_, setVariable(), sigmaEtaEta_, and status_.
{ status_ = 0; mvaStatus_ = 0; pout_ = math::XYZTLorentzVector(0.,0.,0.,0.); hadEnergy_ = -9999. ; sigmaEtaEta_ = -9999.; for(MvaVariable m=MVA_FIRST; m<MVA_LAST; m=MvaVariable(m+1)) mvaVariables_.push_back(-9999.); gsfTrackRef_ = gsfTrack; kfTrackRef_ = TrackRef(); setVariable(MVA_LnPtGsf,log(gsfTrackRef_->ptMode())); setVariable(MVA_EtaGsf,gsfTrackRef_->etaMode()); setVariable(MVA_Chi2Gsf,gsfTrackRef_->normalizedChi2()); float ptmodeerror=gsfTrackRef_->ptModeError() ; if(ptmodeerror>0.) setVariable(MVA_SigmaPtOverPt,ptmodeerror/gsfTrackRef_->ptMode()); else setVariable(MVA_SigmaPtOverPt,-999.); setVariable(MVA_Fbrem,(gsfTrackRef_->ptMode() - pout_.pt())/gsfTrackRef_->ptMode()); }
reco::PFCandidateElectronExtra::~PFCandidateElectronExtra | ( | ) | [inline] |
bool PFCandidateElectronExtra::electronStatus | ( | StatusFlag | flag | ) | const |
access to the status
Definition at line 144 of file PFCandidateElectronExtra.cc.
References status_.
reco::GsfTrackRef reco::PFCandidateElectronExtra::gsfTrackRef | ( | ) | const [inline] |
return a reference to the corresponding GSF track
Definition at line 64 of file PFCandidateElectronExtra.h.
References gsfTrackRef_.
Referenced by PFElectronExtraEqual::operator()().
{ return gsfTrackRef_; }
reco::TrackRef reco::PFCandidateElectronExtra::kfTrackRef | ( | ) | const [inline] |
return a reference to the corresponding KF track
Definition at line 67 of file PFCandidateElectronExtra.h.
References kfTrackRef_.
Referenced by PFElectronExtraKfEqual::operator()().
{ return kfTrackRef_; }
bool PFCandidateElectronExtra::mvaStatus | ( | MvaVariable | flag | ) | const |
access to mva variable status
Definition at line 148 of file PFCandidateElectronExtra.cc.
References mvaStatus_.
Referenced by mvaVariable(), and reco::operator<<().
{ return mvaStatus_ & (1<< (flag)) ; }
float PFCandidateElectronExtra::mvaVariable | ( | MvaVariable | var | ) | const |
access to any variable
Definition at line 152 of file PFCandidateElectronExtra.cc.
References mvaStatus(), and mvaVariables_.
Referenced by reco::operator<<().
{ return (mvaStatus(var) ? mvaVariables_[var] : -9999. ); }
const std::vector<float>& reco::PFCandidateElectronExtra::mvaVariables | ( | ) | const [inline] |
access to the mva variables
Definition at line 102 of file PFCandidateElectronExtra.h.
References mvaVariables_.
{return mvaVariables_;}
void PFCandidateElectronExtra::setClusterEnergies | ( | const std::vector< float > & | energies | ) |
set the cluster energies. the Pout should be saved first
Definition at line 96 of file PFCandidateElectronExtra.cc.
References clusterEnergies_, gsfTrackRef_, hadEnergy_, MVA_EbremOverDeltaP, MVA_EseedOverPout, MVA_EtotOverPin, pout_, setHadEnergy(), setVariable(), findQualityFiles::size, and mathSSE::sqrt().
{ clusterEnergies_=energies; if(pout_.t()!=0.) setVariable(MVA_EseedOverPout,clusterEnergies_[0]/pout_.t()); static float m_el2=0.00051*0.00051; float Ein_gsf =sqrt(gsfTrackRef_->pMode()* gsfTrackRef_->pMode()+m_el2); float etot=0; unsigned size=clusterEnergies_.size(); // std::cout << " N clusters " << size << std::endl; float ebrem=0.; for(unsigned ic=0;ic<size;++ic) { etot+=clusterEnergies_[ic]; if(ic>0) ebrem+=clusterEnergies_[ic]; } setVariable(MVA_EtotOverPin,etot/Ein_gsf); setVariable(MVA_EbremOverDeltaP,ebrem/(Ein_gsf-pout_.t())); // recompute - as in PFElectronAglo, the had energy is filled before the cluster energies if(hadEnergy_!=-9999.) setHadEnergy(hadEnergy_); }
void PFCandidateElectronExtra::setDeltaEta | ( | float | val | ) |
set the delta eta
Definition at line 90 of file PFCandidateElectronExtra.cc.
References deltaEta_, MVA_DeltaEtaTrackCluster, and setVariable().
Referenced by PFElectronAlgo::SetIDOutputs().
{ deltaEta_ = val; setVariable(MVA_DeltaEtaTrackCluster,val); }
void PFCandidateElectronExtra::setEarlyBrem | ( | float | val | ) |
set EarlyBrem
Definition at line 74 of file PFCandidateElectronExtra.cc.
References earlyBrem_, MVA_FirstBrem, and setVariable().
Referenced by PFElectronAlgo::SetIDOutputs().
{ earlyBrem_ = val; setVariable(MVA_FirstBrem,val); }
void PFCandidateElectronExtra::setGsfTrackPout | ( | const math::XYZTLorentzVector & | pout | ) |
set the pout (not trivial to get from the GSF track)
Definition at line 51 of file PFCandidateElectronExtra.cc.
References pout_.
Referenced by PFElectronAlgo::SetIDOutputs().
{ pout_ = pout; }
void PFCandidateElectronExtra::setGsfTrackRef | ( | const reco::GsfTrackRef & | ref | ) |
set gsftrack reference
Definition at line 47 of file PFCandidateElectronExtra.cc.
References gsfTrackRef_.
{ gsfTrackRef_= ref; }
void PFCandidateElectronExtra::setHadEnergy | ( | float | val | ) |
set the had energy. The cluster energies should be entered before
Definition at line 79 of file PFCandidateElectronExtra.cc.
References clusterEnergies_, hadEnergy_, MVA_HOverHE, and setVariable().
Referenced by setClusterEnergies(), and PFElectronAlgo::SetIDOutputs().
{ hadEnergy_ = val; if(clusterEnergies_.size()>0) setVariable(MVA_HOverHE,hadEnergy_/(hadEnergy_+clusterEnergies_[0])); }
void PFCandidateElectronExtra::setKfTrackRef | ( | const reco::TrackRef & | ref | ) |
set kf track reference
Definition at line 56 of file PFCandidateElectronExtra.cc.
References edm::Ref< C, T, F >::isNonnull(), kfTrackRef_, MVA_Chi2Kf, MVA_NhitsKf, and setVariable().
Referenced by PFElectronAlgo::SetIDOutputs().
{ kfTrackRef_ = ref; float nhit_kf=0; float chi2_kf=-0.01; // if the reference is null, it does not mean that the variables have not been set if(kfTrackRef_.isNonnull()) { nhit_kf=(float)kfTrackRef_->hitPattern().trackerLayersWithMeasurement(); chi2_kf=kfTrackRef_->normalizedChi2(); } setVariable(MVA_NhitsKf,nhit_kf); setVariable(MVA_Chi2Kf,chi2_kf); }
void PFCandidateElectronExtra::setLateBrem | ( | float | val | ) |
set LateBrem
Definition at line 69 of file PFCandidateElectronExtra.cc.
References lateBrem_, MVA_LateBrem, and setVariable().
Referenced by PFElectronAlgo::SetIDOutputs().
{ lateBrem_ = val; setVariable(MVA_LateBrem,val); }
void PFCandidateElectronExtra::setMVA | ( | float | val | ) |
set the result (mostly for debugging)
Definition at line 124 of file PFCandidateElectronExtra.cc.
References MVA_MVA, and setVariable().
Referenced by PFElectronAlgo::SetIDOutputs().
{ setVariable(MVA_MVA,val); }
void PFCandidateElectronExtra::setSigmaEtaEta | ( | float | val | ) |
set the sigmaetaeta
Definition at line 85 of file PFCandidateElectronExtra.cc.
References MVA_LogSigmaEtaEta, setVariable(), and sigmaEtaEta_.
Referenced by PFElectronAlgo::SetIDOutputs().
{ sigmaEtaEta_ = val; setVariable(MVA_LogSigmaEtaEta,val); }
void PFCandidateElectronExtra::setStatus | ( | StatusFlag | type, |
bool | status = true |
||
) |
void PFCandidateElectronExtra::setVariable | ( | MvaVariable | type, |
float | var | ||
) | [private] |
Definition at line 128 of file PFCandidateElectronExtra.cc.
References mvaStatus_, and mvaVariables_.
Referenced by PFCandidateElectronExtra(), setClusterEnergies(), setDeltaEta(), setEarlyBrem(), setHadEnergy(), setKfTrackRef(), setLateBrem(), setMVA(), and setSigmaEtaEta().
{ mvaVariables_[type]=val; mvaStatus_ |= (1 << (type)) ; }
std::vector<float> reco::PFCandidateElectronExtra::clusterEnergies_ [private] |
energy of individual clusters (corrected). The first cluster is the seed
Definition at line 117 of file PFCandidateElectronExtra.h.
Referenced by setClusterEnergies(), and setHadEnergy().
float reco::PFCandidateElectronExtra::deltaEta_ [private] |
Definition at line 134 of file PFCandidateElectronExtra.h.
Referenced by setDeltaEta().
float reco::PFCandidateElectronExtra::earlyBrem_ [private] |
Definition at line 130 of file PFCandidateElectronExtra.h.
Referenced by setEarlyBrem().
Ref to the GSF track.
Definition at line 112 of file PFCandidateElectronExtra.h.
Referenced by gsfTrackRef(), PFCandidateElectronExtra(), setClusterEnergies(), and setGsfTrackRef().
float reco::PFCandidateElectronExtra::hadEnergy_ [private] |
Definition at line 133 of file PFCandidateElectronExtra.h.
Referenced by PFCandidateElectronExtra(), setClusterEnergies(), and setHadEnergy().
Ref to the KF track.
Definition at line 114 of file PFCandidateElectronExtra.h.
Referenced by kfTrackRef(), PFCandidateElectronExtra(), and setKfTrackRef().
float reco::PFCandidateElectronExtra::lateBrem_ [private] |
Definition at line 131 of file PFCandidateElectronExtra.h.
Referenced by setLateBrem().
int reco::PFCandidateElectronExtra::mvaStatus_ [private] |
status of mva variables
Definition at line 123 of file PFCandidateElectronExtra.h.
Referenced by mvaStatus(), PFCandidateElectronExtra(), and setVariable().
std::vector<float> reco::PFCandidateElectronExtra::mvaVariables_ [private] |
mva variables - transient !
Definition at line 120 of file PFCandidateElectronExtra.h.
Referenced by mvaVariable(), mvaVariables(), PFCandidateElectronExtra(), and setVariable().
Variables entering the MVA that should be saved.
Definition at line 129 of file PFCandidateElectronExtra.h.
Referenced by PFCandidateElectronExtra(), setClusterEnergies(), and setGsfTrackPout().
float reco::PFCandidateElectronExtra::sigmaEtaEta_ [private] |
Definition at line 132 of file PFCandidateElectronExtra.h.
Referenced by PFCandidateElectronExtra(), and setSigmaEtaEta().
int reco::PFCandidateElectronExtra::status_ [private] |
Status of the electron.
Definition at line 126 of file PFCandidateElectronExtra.h.
Referenced by electronStatus(), PFCandidateElectronExtra(), and setStatus().