1 #ifndef RecoParticleFlow_PFProducer_PFAlgo_h
2 #define RecoParticleFlow_PFProducer_PFAlgo_h
70 const boost::shared_ptr<PFEnergyCalibration>& calibration,
71 const boost::shared_ptr<PFEnergyCalibrationHF>& thepfEnergyCalibrationHF);
79 double dptRel_PrimaryTrack,
80 double dptRel_MergedTrack,
81 double ptErrorSecondary,
82 const std::vector<double>& nuclCalibFactors){
83 connector_.
setParameters(bCorrect, bCalibPrimary, dptRel_PrimaryTrack, dptRel_MergedTrack, ptErrorSecondary, nuclCalibFactors);
94 const boost::shared_ptr<PFSCEnergyCalibration>& thePFSCEnergyCalibration,
105 bool useEGElectrons=
false,
120 double ele_iso_mva_barrel,
121 double ele_iso_mva_endcap,
122 double ele_iso_combIso_barrel,
123 double ele_iso_combIso_endcap,
124 double ele_noniso_mva,
125 unsigned int ele_missinghits,
131 double ph_sietaieta_eb,
132 double ph_sietaieta_ee,
196 const std::unique_ptr<reco::PFCandidateCollection>&
pfCandidates()
const {
208 auto result = std::make_unique<reco::PFCandidateElectronExtraCollection>();
217 auto result = std::make_unique<reco::PFCandidatePhotonExtraCollection>();
245 std::list<reco::PFBlockRef>& hcalBlockRefs,
246 std::list<reco::PFBlockRef>& ecalBlockRefs );
260 double particleEnergy,
261 bool useDirection =
false,
264 double particleZ=0.);
278 double clusterEta )
const;
282 double clusterEta )
const;
303 std::vector<bool>& active,
304 std::vector<double>& psEne);
unsigned int nTrackIsoForEgammaSC_
Abstract base class for a PFBlock element (track, cluster...)
bool isFromSecInt(const reco::PFBlockElement &eTrack, std::string order) const
std::vector< double > muonHCAL_
Variables for muons and fakes.
void setPFMuonAndFakeParameters(const edm::ParameterSet &pset)
double sumEtEcalIsoForEgammaSC_endcap_
Particle flow cluster, see clustering algorithm in PFClusterAlgo.
double coneEcalIsoForEgammaSC_
std::unique_ptr< reco::PFCandidateElectronExtraCollection > transferElectronExtra()
tuple coneTrackIsoForEgammaSC
std::unique_ptr< reco::PFCandidateCollection > pfCandidates_
void setCandConnectorParameters(const edm::ParameterSet &iCfgCandConnector)
unsigned reconstructCluster(const reco::PFCluster &cluster, double particleEnergy, bool useDirection=false, double particleX=0., double particleY=0., double particleZ=0.)
void reconstructParticles(const reco::PFBlockHandle &blockHandle)
std::unique_ptr< reco::PFCandidateCollection > connect(std::unique_ptr< reco::PFCandidateCollection > &pfCand)
const std::unique_ptr< reco::PFCandidateCollection > & pfCandidates() const
std::vector< double > setchi2Values_
bool useProtectionsForJetMET_
double coneTrackIsoForEgammaSC_
tuple useProtectionsForJetMET
tuple sumPtTrackIsoForEgammaSC_endcap
double nSigmaHCAL_
number of sigma to judge energy excess in HCAL
std::map< unsigned int, Link > LinkData
virtual void processBlock(const reco::PFBlockRef &blockref, std::list< reco::PFBlockRef > &hcalBlockRefs, std::list< reco::PFBlockRef > &ecalBlockRefs)
void setMuonHandle(const edm::Handle< reco::MuonCollection > &)
std::vector< Vertex > VertexCollection
collection of Vertex objects
std::vector< PFRecHit > PFRecHitCollection
collection of PFRecHit objects
const edm::ValueMap< reco::PhotonRef > * valueMapGedPhotons_
void checkCleaning(const reco::PFRecHitCollection &cleanedHF)
Check HF Cleaning.
PFCandConnector connector_
void setDisplacedVerticesParameters(bool rejectTracks_Bad, bool rejectTracks_Step45, bool usePFNuclearInteractions, bool usePFConversions, bool usePFDecays, double dptRel_DispVtx)
tuple sumPtTrackIsoSlopeForPhoton
double sumEtEcalIsoForEgammaSC_barrel_
void setPFEleParameters(double mvaEleCut, std::string mvaWeightFileEleID, bool usePFElectrons, const boost::shared_ptr< PFSCEnergyCalibration > &thePFSCEnergyCalibration, const boost::shared_ptr< PFEnergyCalibration > &thePFEnergyCalibration, double sumEtEcalIsoForEgammaSC_barrel, double sumEtEcalIsoForEgammaSC_endcap, double coneEcalIsoForEgammaSC, double sumPtTrackIsoForEgammaSC_barrel, double sumPtTrackIsoForEgammaSC_endcap, unsigned int nTrackIsoForEgammaSC, double coneTrackIsoForEgammaSC, bool applyCrackCorrections=false, bool usePFSCEleCalib=true, bool useEGElectrons=false, bool useEGammaSupercluster=true)
void setPFVertexParameters(bool useVertex, const reco::VertexCollection *primaryVertices)
void setEGElectronCollection(const reco::GsfElectronCollection &egelectrons)
std::vector< GsfElectron > GsfElectronCollection
collection of GsfElectron objects
bool rejectTracks_Step45_
double minSignificanceReduction_
void setPFPhotonParameters(bool usePFPhoton, std::string mvaWeightFileConvID, double mvaConvCut, bool useReg, std::string X0_Map, const boost::shared_ptr< PFEnergyCalibration > &thePFEnergyCalibration, double sumPtTrackIsoForPhoton, double sumPtTrackIsoSlopeForPhoton)
std::vector< double > factors45_
std::unique_ptr< reco::PFCandidateCollection > transferCandidates()
bool useEGammaSupercluster_
std::unique_ptr< reco::PFCandidateCollection > pfCleanedCandidates_
bool usePFNuclearInteractions_
tuple coneEcalIsoForEgammaSC
void setDebug(bool debug)
void setEGammaCollections(const edm::View< reco::PFCandidate > &pfEgammaCandidates, const edm::ValueMap< reco::GsfElectronRef > &valueMapGedElectrons, const edm::ValueMap< reco::PhotonRef > &valueMapGedPhotons)
boost::shared_ptr< PFEnergyCalibration > thePFEnergyCalibration()
return the pointer to the calibration function
tuple sumPtTrackIsoForEgammaSC_barrel
void setParameters(double nSigmaECAL, double nSigmaHCAL, const boost::shared_ptr< PFEnergyCalibration > &calibration, const boost::shared_ptr< PFEnergyCalibrationHF > &thepfEnergyCalibrationHF)
Based on a class from : V. Roberfroid, February 2008.
const edm::View< reco::PFCandidate > * pfEgammaCandidates_
std::unique_ptr< reco::PFCandidateCollection > transferCleanedCandidates()
void associatePSClusters(unsigned iEcal, reco::PFBlockElement::Type psElementType, const reco::PFBlock &block, const edm::OwnVector< reco::PFBlockElement > &elements, const reco::PFBlock::LinkData &linkData, std::vector< bool > &active, std::vector< double > &psEne)
Associate PS clusters to a given ECAL cluster, and return their energy.
std::unique_ptr< reco::PFCandidateCollection > transferElectronCandidates()
std::string mvaWeightFileEleID_
Variables for PFElectrons.
void setPFPhotonRegWeights(const GBRForest *LCorrForestEB, const GBRForest *LCorrForestEE, const GBRForest *GCorrForestBarrel, const GBRForest *GCorrForestEndcapHr9, const GBRForest *GCorrForestEndcapLr9, const GBRForest *PFEcalResolution)
tuple sumEtEcalIsoForEgammaSC_barrel
reco::Vertex primaryVertex_
double nSigmaHCAL(double clusterEnergy, double clusterEta) const
edm::Handle< reco::MuonCollection > muonHandle_
std::vector< double > muonECAL_
void setPFMuonAlgo(PFMuonAlgo *algo)
tuple sumEtEcalIsoForEgammaSC_endcap
void setPostHFCleaningParameters(bool postHFCleaning, double minHFCleaningPt, double minSignificance, double maxSignificance, double minSignificanceReduction, double maxDeltaPhiPt, double minDeltaMet)
std::vector< PFBlock > PFBlockCollection
collection of PFBlock objects
PFEGammaFilters * pfegamma_
reco::PFBlockRef createBlockRef(const reco::PFBlockCollection &blocks, unsigned bi)
reco::PFCandidatePhotonExtraCollection pfPhotonExtra_
the extra photon collection
void setCandConnectorParameters(bool bCorrect, bool bCalibPrimary, double dptRel_PrimaryTrack, double dptRel_MergedTrack, double ptErrorSecondary, const std::vector< double > &nuclCalibFactors)
std::unique_ptr< reco::PFCandidateCollection > pfPhotonCandidates_
the unfiltered photon collection
tuple rejectTracks_Step45
std::unique_ptr< reco::PFCandidatePhotonExtraCollection > transferPhotonExtra()
unsigned reconstructTrack(const reco::PFBlockElement &elt, bool allowLoose=false)
std::vector< double > muonHO_
std::vector< reco::PFCandidatePhotonExtra > PFCandidatePhotonExtraCollection
collection of PFCandidatePhotonExtras
boost::shared_ptr< PFEnergyCalibration > calibration_
tuple useEGammaSupercluster
reco::PFBlockHandle blockHandle_
input block handle (full framework case)
boost::shared_ptr< PFSCEnergyCalibration > thePFSCEnergyCalibration_
tuple minSignificanceReduction
virtual ~PFAlgo()
destructor
tuple usePFNuclearInteractions
boost::shared_ptr< PFEnergyCalibrationHF > thepfEnergyCalibrationHF_
PFMuonAlgo * getPFMuonAlgo()
bool useEGammaFilters_
Variables for NEW EGAMMA selection.
void setPhotonExtraRef(const edm::OrphanHandle< reco::PFCandidatePhotonExtraCollection > &pf_extrah)
bool applyCrackCorrectionsElectrons_
void setParameters(const edm::ParameterSet &iCfgCandConnector)
tuple applyCrackCorrections
tuple sumPtTrackIsoForPhoton
double sumPtTrackIsoForEgammaSC_endcap_
std::unique_ptr< reco::PFCandidateCollection > pfElectronCandidates_
the unfiltered electron collection
double neutralHadronEnergyResolution(double clusterEnergy, double clusterEta) const
todo: use PFClusterTools for this
std::vector< reco::PFCandidateElectronExtra > PFCandidateElectronExtraCollection
collection of PFCandidateElectronExtras
reco::PFCandidateElectronExtraCollection pfElectronExtra_
the unfiltered electron collection
void setDebug(bool debug)
tuple nTrackIsoForEgammaSC
double sumPtTrackIsoForEgammaSC_barrel_
void setEGammaParameters(bool use_EGammaFilters, std::string ele_iso_path_mvaWeightFile, double ele_iso_pt, double ele_iso_mva_barrel, double ele_iso_mva_endcap, double ele_iso_combIso_barrel, double ele_iso_combIso_endcap, double ele_noniso_mva, unsigned int ele_missinghits, bool useProtectionsForJetMET, const edm::ParameterSet &ele_protectionsForJetMET, double ph_MinEt, double ph_combIso, double ph_HoE, double ph_sietaieta_eb, double ph_sietaieta_ee, const edm::ParameterSet &ph_protectionsForJetMET)
const edm::ValueMap< reco::GsfElectronRef > * valueMapGedElectrons_
friend std::ostream & operator<<(std::ostream &out, const PFAlgo &algo)
void setElectronExtraRef(const edm::OrphanHandle< reco::PFCandidateElectronExtraCollection > &extrah)
double nSigmaECAL_
number of sigma to judge energy excess in ECAL