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);
83 connector_.
setParameters(bCorrect, bCalibPrimary, dptRel_PrimaryTrack, dptRel_MergedTrack, ptErrorSecondary, nuclCalibFactors);
96 const boost::shared_ptr<PFSCEnergyCalibration>& thePFSCEnergyCalibration,
107 bool useEGElectrons=
false,
115 const boost::shared_ptr<PFEnergyCalibration>& thePFEnergyCalibration,
122 double ele_iso_mva_barrel,
123 double ele_iso_mva_endcap,
124 double ele_iso_combIso_barrel,
125 double ele_iso_combIso_endcap,
126 double ele_noniso_mva,
127 unsigned int ele_missinghits,
134 double ph_sietaieta_eb,
135 double ph_sietaieta_ee,
200 const std::unique_ptr<reco::PFCandidateCollection>&
pfCandidates()
const {
212 auto result = std::make_unique<reco::PFCandidateElectronExtraCollection>();
221 auto result = std::make_unique<reco::PFCandidatePhotonExtraCollection>();
249 std::list<reco::PFBlockRef>& hcalBlockRefs,
250 std::list<reco::PFBlockRef>& ecalBlockRefs );
264 double particleEnergy,
265 bool useDirection =
false,
268 double particleZ=0.);
283 double clusterEta )
const;
287 double clusterEta )
const;
308 std::vector<bool>& active,
309 std::vector<double>& psEne);
sumPtTrackIsoForEgammaSC_barrel
unsigned int nTrackIsoForEgammaSC_
Abstract base class for a PFBlock element (track, cluster...)
bool isFromSecInt(const reco::PFBlockElement &eTrack, std::string order) const
float goodTrackDeadHcal_dxy_
std::vector< double > muonHCAL_
Variables for muons and fakes.
sumPtTrackIsoForEgammaSC_endcap
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()
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_
float goodPixelTrackDeadHcal_minEta_
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
sumEtEcalIsoForEgammaSC_endcap
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)
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)
float goodPixelTrackDeadHcal_dxy_
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_
void setDebug(bool debug)
void setEGammaCollections(const edm::View< reco::PFCandidate > &pfEgammaCandidates, const edm::ValueMap< reco::GsfElectronRef > &valueMapGedElectrons, const edm::ValueMap< reco::PhotonRef > &valueMapGedPhotons)
void setBadHcalTrackParams(const edm::ParameterSet &pset)
boost::shared_ptr< PFEnergyCalibration > thePFEnergyCalibration()
return the pointer to the calibration function
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.
float goodTrackDeadHcal_validFr_
void setPFPhotonRegWeights(const GBRForest *LCorrForestEB, const GBRForest *LCorrForestEE, const GBRForest *GCorrForestBarrel, const GBRForest *GCorrForestEndcapHr9, const GBRForest *GCorrForestEndcapLr9, const GBRForest *PFEcalResolution)
reco::Vertex primaryVertex_
double nSigmaHCAL(double clusterEnergy, double clusterEta) const
edm::Handle< reco::MuonCollection > muonHandle_
std::vector< double > muonECAL_
void setPFMuonAlgo(PFMuonAlgo *algo)
sumEtEcalIsoForEgammaSC_barrel
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_
int goodPixelTrackDeadHcal_maxLost3Hit_
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
float goodPixelTrackDeadHcal_maxPt_
std::unique_ptr< reco::PFCandidatePhotonExtraCollection > transferPhotonExtra()
unsigned reconstructTrack(const reco::PFBlockElement &elt, bool allowLoose=false)
int goodTrackDeadHcal_layers_
std::vector< double > muonHO_
float goodPixelTrackDeadHcal_ptErrRel_
std::vector< reco::PFCandidatePhotonExtra > PFCandidatePhotonExtraCollection
collection of PFCandidatePhotonExtras
boost::shared_ptr< PFEnergyCalibration > calibration_
reco::PFBlockHandle blockHandle_
input block handle (full framework case)
boost::shared_ptr< PFSCEnergyCalibration > thePFSCEnergyCalibration_
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, const edm::ParameterSet &ele_protectionsForBadHcal, double ph_MinEt, double ph_combIso, double ph_HoE, double ph_sietaieta_eb, double ph_sietaieta_ee, const edm::ParameterSet &ph_protectionsForJetMET, const edm::ParameterSet &ph_protectionsForBadHcal)
virtual ~PFAlgo()
destructor
Particle reconstructed by the particle flow algorithm.
boost::shared_ptr< PFEnergyCalibrationHF > thepfEnergyCalibrationHF_
PFMuonAlgo * getPFMuonAlgo()
void setDebug(bool debug)
bool useEGammaFilters_
Variables for NEW EGAMMA selection.
void setPhotonExtraRef(const edm::OrphanHandle< reco::PFCandidatePhotonExtraCollection > &pf_extrah)
bool applyCrackCorrectionsElectrons_
float goodTrackDeadHcal_ptErrRel_
Variables for track cleaning in bad HCal areas.
void setParameters(const edm::ParameterSet &iCfgCandConnector)
sumPtTrackIsoSlopeForPhoton
double sumPtTrackIsoForEgammaSC_endcap_
std::unique_ptr< reco::PFCandidateCollection > pfElectronCandidates_
the unfiltered electron collection
int goodPixelTrackDeadHcal_maxLost4Hit_
float goodPixelTrackDeadHcal_chi2n_
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)
float goodTrackDeadHcal_chi2n_
double sumPtTrackIsoForEgammaSC_barrel_
float goodPixelTrackDeadHcal_dz_
void setHcalDepthInfo(reco::PFCandidate &cand, const reco::PFCluster &cluster) const
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