1 #ifndef PFProducer_PFElectronAlgo_H
2 #define PFProducer_PFElectronAlgo_H
14 #include "TMVA/Reader.h"
30 std::string mvaWeightFileEleID,
31 const boost::shared_ptr<PFSCEnergyCalibration>& thePFSCEnergyCalibration,
32 const boost::shared_ptr<PFEnergyCalibration>& thePFEnergyCalibration,
33 bool applyCrackCorrections,
36 bool useEGammaSupercluster,
37 double sumEtEcalIsoForEgammaSC_barrel,
38 double sumEtEcalIsoForEgammaSC_endcap,
39 double coneEcalIsoForEgammaSC,
40 double sumPtTrackIsoForEgammaSC_barrel,
41 double sumPtTrackIsoForEgammaSC_endcap,
42 unsigned int nTrackIsoForEgammaSC,
43 double coneTrackIsoForEgammaSC);
50 std::vector<bool>& active,
70 typedef std::map< unsigned int, std::vector<unsigned int> >
AssMap;
73 std::vector<bool>& active,
77 std::multimap<double, unsigned int>& Elems,
79 std::vector<bool>& active,
84 AssMap& associatedToBrems_,
86 std::vector<bool>& active,
91 AssMap& associatedToBrems_,
97 AssMap& associatedToBrems_,
98 AssMap& associatedToEcal_);
102 AssMap& associatedToBrems_,
103 AssMap& associatedToEcal_,
104 std::vector<bool>& active);
std::vector< std::pair< unsigned int, unsigned int > > fifthStepKfTrack_
bool SetLinks(const reco::PFBlockRef &blockRef, AssMap &associatedToGsf_, AssMap &associatedToBrems_, AssMap &associatedToEcal_, std::vector< bool > &active, const reco::Vertex &primaryVertex)
std::map< unsigned int, std::vector< unsigned int > > AssMap
const std::vector< reco::PFCandidate > & getAllElectronCandidates()
float EtotBremPinPoutMode
void SetCandidates(const reco::PFBlockRef &blockRef, AssMap &associatedToGsf_, AssMap &associatedToBrems_, AssMap &associatedToEcal_)
std::vector< std::pair< unsigned int, unsigned int > > convGsfTrack_
const char * mvaWeightFile_
std::vector< reco::PFCandidateElectronExtra > electronExtra_
const std::vector< reco::GsfElectron > * theGsfElectrons_
bool isPrimaryTrack(const reco::PFBlockElementTrack &KfEl, const reco::PFBlockElementGsfTrack &GsfEl)
std::vector< GsfElectron > GsfElectronCollection
collection of GsfElectron objects
double coneEcalIsoForEgammaSC_
TMVA::Reader * tmvaReader_
void SetActive(const reco::PFBlockRef &blockRef, AssMap &associatedToGsf_, AssMap &associatedToBrems_, AssMap &associatedToEcal_, std::vector< bool > &active)
const std::vector< reco::PFCandidateElectronExtra > & getElectronExtra()
double sumEtEcalIsoForEgammaSC_barrel_
std::vector< bool > lockExtraKf_
std::vector< double > BDToutput_
unsigned int FindClosestElement(const unsigned int iele, std::multimap< double, unsigned int > &Elems, float &chi2cut, std::vector< bool > &active, const reco::PFBlockRef &blockRef)
double sumEtEcalIsoForEgammaSC_endcap_
void SetIDOutputs(const reco::PFBlockRef &blockRef, AssMap &associatedToGsf_, AssMap &associatedToBrems_, AssMap &associatedToEcal_, const reco::Vertex &primaryVertex)
std::map< unsigned int, std::vector< reco::PFCandidate > > electronConstituents_
const std::vector< reco::PFCandidate > & getElectronCandidates()
double sumPtTrackIsoForEgammaSC_endcap_
unsigned int whichTrackAlgo(const reco::TrackRef &trackRef)
boost::shared_ptr< PFSCEnergyCalibration > thePFSCEnergyCalibration_
double coneTrackIsoForEgammaSC_
std::vector< bool > GsfTrackSingleEcal_
bool isElectronValidCandidate(const reco::PFBlockRef &blockRef, std::vector< bool > &active, const reco::Vertex &primaryVertex)
PFElectronAlgo(const double mvaEleCut, std::string mvaWeightFileEleID, const boost::shared_ptr< PFSCEnergyCalibration > &thePFSCEnergyCalibration, const boost::shared_ptr< PFEnergyCalibration > &thePFEnergyCalibration, bool applyCrackCorrections, bool usePFSCEleCalib, bool useEGElectrons, bool useEGammaSupercluster, double sumEtEcalIsoForEgammaSC_barrel, double sumEtEcalIsoForEgammaSC_endcap, double coneEcalIsoForEgammaSC, double sumPtTrackIsoForEgammaSC_barrel, double sumPtTrackIsoForEgammaSC_endcap, unsigned int nTrackIsoForEgammaSC, double coneTrackIsoForEgammaSC)
double sumPtTrackIsoForEgammaSC_barrel_
unsigned int nTrackIsoForEgammaSC_
void RunPFElectron(const reco::PFBlockRef &blockRef, std::vector< bool > &active, const reco::Vertex &primaryVertex)
boost::shared_ptr< PFEnergyCalibration > thePFEnergyCalibration_
std::vector< reco::PFCandidate > elCandidate_
bool applyCrackCorrections_
void setEGElectronCollection(const reco::GsfElectronCollection &egelectrons)
bool useEGammaSupercluster_
std::vector< reco::PFCandidate > allElCandidate_