1 #ifndef RecoParticleFlow_PFProducer_PFAlgo_h 2 #define RecoParticleFlow_PFProducer_PFAlgo_h 64 const std::shared_ptr<PFEnergyCalibration>& calibration,
65 const std::shared_ptr<PFEnergyCalibrationHF>& thepfEnergyCalibrationHF);
77 connector_.
setParameters(bCorrect, bCalibPrimary, dptRel_PrimaryTrack, dptRel_MergedTrack, ptErrorSecondary, nuclCalibFactors);
90 const std::shared_ptr<PFSCEnergyCalibration>& thePFSCEnergyCalibration,
101 bool useEGElectrons=
false,
109 const std::shared_ptr<PFEnergyCalibration>& thePFEnergyCalibration,
175 const std::unique_ptr<reco::PFCandidateCollection>&
pfCandidates()
const {
187 auto result = std::make_unique<reco::PFCandidateElectronExtraCollection>();
196 auto result = std::make_unique<reco::PFCandidatePhotonExtraCollection>();
224 std::list<reco::PFBlockRef>& hcalBlockRefs,
225 std::list<reco::PFBlockRef>& ecalBlockRefs,
PFEGammaFilters const* pfegamma );
239 double particleEnergy,
240 bool useDirection =
false,
243 double particleZ=0.);
258 double clusterEta )
const;
262 double clusterEta )
const;
283 std::vector<bool>& active,
284 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)
PFAlgo(bool debug)
constructor
double sumEtEcalIsoForEgammaSC_endcap_
Particle flow cluster, see clustering algorithm in PFClusterAlgo.
double coneEcalIsoForEgammaSC_
reco::PFCandidateCollection transferCandidates()
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.)
const std::unique_ptr< reco::PFCandidateCollection > & pfCandidates() const
std::vector< double > setchi2Values_
bool useProtectionsForJetMET_
std::unique_ptr< PFElectronAlgo > pfele_
double coneTrackIsoForEgammaSC_
float goodPixelTrackDeadHcal_minEta_
double nSigmaHCAL_
number of sigma to judge energy excess in HCAL
std::map< unsigned int, Link > LinkData
void setMuonHandle(const edm::Handle< reco::MuonCollection > &)
std::shared_ptr< PFEnergyCalibrationHF > thepfEnergyCalibrationHF_
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)
std::shared_ptr< PFEnergyCalibration > calibration_
double sumEtEcalIsoForEgammaSC_barrel_
float goodPixelTrackDeadHcal_dxy_
void setEGElectronCollection(const reco::GsfElectronCollection &egelectrons)
std::vector< GsfElectron > GsfElectronCollection
collection of GsfElectron objects
bool rejectTracks_Step45_
double minSignificanceReduction_
std::vector< double > factors45_
void setPFVertexParameters(bool useVertex, reco::VertexCollection const &primaryVertices)
bool useEGammaSupercluster_
std::unique_ptr< reco::PFCandidateCollection > pfCleanedCandidates_
std::unique_ptr< PFPhotonAlgo > pfpho_
bool usePFNuclearInteractions_
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)
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 setPFEleParameters(double mvaEleCut, std::string mvaWeightFileEleID, bool usePFElectrons, const std::shared_ptr< PFSCEnergyCalibration > &thePFSCEnergyCalibration, const std::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 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_
reco::PFCandidateCollection connect(reco::PFCandidateCollection &pfCand) const
std::shared_ptr< PFEnergyCalibration > thePFEnergyCalibration()
return the pointer to the calibration function
void setParameters(double nSigmaECAL, double nSigmaHCAL, const std::shared_ptr< PFEnergyCalibration > &calibration, const std::shared_ptr< PFEnergyCalibrationHF > &thepfEnergyCalibrationHF)
void setPFMuonAlgo(PFMuonAlgo *algo)
sumEtEcalIsoForEgammaSC_barrel
void setPostHFCleaningParameters(bool postHFCleaning, double minHFCleaningPt, double minSignificance, double maxSignificance, double minSignificanceReduction, double maxDeltaPhiPt, double minDeltaMet)
void setPFPhotonParameters(bool usePFPhoton, std::string mvaWeightFileConvID, double mvaConvCut, bool useReg, std::string X0_Map, const std::shared_ptr< PFEnergyCalibration > &thePFEnergyCalibration, double sumPtTrackIsoForPhoton, double sumPtTrackIsoSlopeForPhoton)
std::vector< PFBlock > PFBlockCollection
collection of PFBlock objects
void processBlock(const reco::PFBlockRef &blockref, std::list< reco::PFBlockRef > &hcalBlockRefs, std::list< reco::PFBlockRef > &ecalBlockRefs, PFEGammaFilters const *pfegamma)
int goodPixelTrackDeadHcal_maxLost3Hit_
std::shared_ptr< PFSCEnergyCalibration > thePFSCEnergyCalibration_
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
void reconstructParticles(const reco::PFBlockHandle &blockHandle, PFEGammaFilters const *pfegamma)
float goodPixelTrackDeadHcal_maxPt_
std::vector< reco::PFCandidate > PFCandidateCollection
collection of PFCandidates
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
reco::PFBlockHandle blockHandle_
input block handle (full framework case)
Particle reconstructed by the particle flow algorithm.
PFMuonAlgo * getPFMuonAlgo()
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
float goodTrackDeadHcal_chi2n_
double sumPtTrackIsoForEgammaSC_barrel_
float goodPixelTrackDeadHcal_dz_
void setHcalDepthInfo(reco::PFCandidate &cand, const reco::PFCluster &cluster) const
void setEGammaParameters(bool use_EGammaFilters, bool useProtectionsForJetMET)
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