1 #ifndef RecoParticleFlow_PFProducer_PFAlgo_h
2 #define RecoParticleFlow_PFProducer_PFAlgo_h
65 const boost::shared_ptr<PFEnergyCalibration>& calibration,
66 const boost::shared_ptr<PFEnergyCalibrationHF>& thepfEnergyCalibrationHF);
74 double dptRel_PrimaryTrack,
75 double dptRel_MergedTrack,
76 double ptErrorSecondary,
77 std::vector<double> nuclCalibFactors){
78 connector_.
setParameters(bCorrect, bCalibPrimary, dptRel_PrimaryTrack, dptRel_MergedTrack, ptErrorSecondary, nuclCalibFactors);
83 std::vector<double> muonECAL,
84 std::vector<double> muonHO,
87 std::vector<double> factors45,
88 bool usePFMuonMomAssign,
89 bool useBestMuonTrack);
92 std::string mvaWeightFileEleID,
94 const boost::shared_ptr<PFSCEnergyCalibration>& thePFSCEnergyCalibration,
96 double sumEtEcalIsoForEgammaSC_barrel,
97 double sumEtEcalIsoForEgammaSC_endcap,
98 double coneEcalIsoForEgammaSC,
99 double sumPtTrackIsoForEgammaSC_barrel,
100 double sumPtTrackIsoForEgammaSC_endcap,
101 unsigned int nTrackIsoForEgammaSC,
102 double coneTrackIsoForEgammaSC,
103 bool applyCrackCorrections=
false,
104 bool usePFSCEleCalib=
true,
105 bool useEGElectrons=
false,
106 bool useEGammaSupercluster =
true);
109 std::string mvaWeightFileConvID,
114 double sumPtTrackIsoForPhoton,
115 double sumPtTrackIsoSlopeForPhoton
133 double minHFCleaningPt,
134 double minSignificance,
135 double maxSignificance,
136 double minSignificanceReduction,
137 double maxDeltaPhiPt,
141 bool rejectTracks_Step45,
142 bool usePFNuclearInteractions,
143 bool usePFConversions,
145 double dptRel_DispVtx);
176 const std::auto_ptr< reco::PFCandidateCollection >&
pfCandidates()
const {
255 std::list<reco::PFBlockRef>& hcalBlockRefs,
256 std::list<reco::PFBlockRef>& ecalBlockRefs );
269 double particleEnergy,
270 bool useDirection =
false,
273 double particleZ=0.);
287 double clusterEta )
const;
291 double clusterEta )
const;
324 std::vector<bool>& active,
325 std::vector<double>& psEne);
std::auto_ptr< reco::PFCandidateCollection > transferCandidates()
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(std::vector< double > muonHCAL, std::vector< double > muonECAL, std::vector< double > muonHO, double nSigmaTRACK, double ptError, std::vector< double > factors45, bool usePFMuonMomAssign, bool useBestMuonTrack)
std::auto_ptr< reco::PFCandidateCollection > connect(std::auto_ptr< reco::PFCandidateCollection > &pfCand)
double sumEtEcalIsoForEgammaSC_endcap_
std::auto_ptr< reco::PFCandidateCollection > pfPhotonCandidates_
the unfiltered photon collection
Particle flow cluster, see clustering algorithm in PFClusterAlgo.
double coneEcalIsoForEgammaSC_
void setCandConnectorParameters(const edm::ParameterSet &iCfgCandConnector)
std::auto_ptr< reco::PFCandidateCollection > pfFakeMuonCleanedCandidates_
the collection of fake cleaned muon candidates
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::vector< double > setchi2Values_
double coneTrackIsoForEgammaSC_
std::auto_ptr< reco::PFCandidateElectronExtraCollection > transferElectronExtra()
double nSigmaHCAL_
number of sigma to judge energy excess in HCAL
std::map< unsigned int, Link > LinkData
std::auto_ptr< reco::PFCandidateCollection > transferFakeMuonCleanedCandidates()
virtual void processBlock(const reco::PFBlockRef &blockref, std::list< reco::PFBlockRef > &hcalBlockRefs, std::list< reco::PFBlockRef > &ecalBlockRefs)
std::vector< Vertex > VertexCollection
collection of Vertex objects
std::vector< PFRecHit > PFRecHitCollection
collection of PFRecHit objects
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_
std::auto_ptr< reco::PFCandidateCollection > pfCleanedCandidates_
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 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_
bool useEGammaSupercluster_
bool usePFNuclearInteractions_
void setDebug(bool debug)
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.
std::auto_ptr< reco::PFCandidateCollection > transferPunchThroughHadronCleanedCandidates()
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::string mvaWeightFileEleID_
Variables for PFElectrons.
std::auto_ptr< reco::PFCandidateCollection > transferPunchThroughMuonCleanedCandidates()
std::auto_ptr< reco::PFCandidateCollection > transferElectronCandidates()
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
std::vector< double > muonECAL_
void setPostHFCleaningParameters(bool postHFCleaning, double minHFCleaningPt, double minSignificance, double maxSignificance, double minSignificanceReduction, double maxDeltaPhiPt, double minDeltaMet)
std::vector< PFBlock > PFBlockCollection
collection of PFBlock objects
reco::PFBlockRef createBlockRef(const reco::PFBlockCollection &blocks, unsigned bi)
reco::PFCandidatePhotonExtraCollection pfPhotonExtra_
the extra photon collection
void setPFVertexParameters(bool useVertex, const reco::VertexCollection &primaryVertices)
std::vector< double > muonHO_
std::vector< reco::PFCandidatePhotonExtra > PFCandidatePhotonExtraCollection
collection of PFCandidatePhotonExtras
std::auto_ptr< reco::PFCandidateCollection > pfCosmicsMuonCleanedCandidates_
the collection of cosmics cleaned muon candidates
boost::shared_ptr< PFEnergyCalibration > calibration_
reco::PFBlockHandle blockHandle_
input block handle (full framework case)
std::auto_ptr< reco::PFCandidateCollection > transferCleanedTrackerAndGlobalMuonCandidates()
void setCandConnectorParameters(bool bCorrect, bool bCalibPrimary, double dptRel_PrimaryTrack, double dptRel_MergedTrack, double ptErrorSecondary, std::vector< double > nuclCalibFactors)
boost::shared_ptr< PFSCEnergyCalibration > thePFSCEnergyCalibration_
std::auto_ptr< reco::PFCandidateCollection > pfPunchThroughHadronCleanedCandidates_
the collection of punch-through cleaned neutral hadron candidates
std::auto_ptr< reco::PFCandidatePhotonExtraCollection > transferPhotonExtra()
virtual ~PFAlgo()
destructor
std::auto_ptr< reco::PFCandidateCollection > & transferCleanedCandidates()
std::auto_ptr< reco::PFCandidateCollection > pfCleanedTrackerAndGlobalMuonCandidates_
the collection of tracker/global cleaned muon candidates
boost::shared_ptr< PFEnergyCalibrationHF > thepfEnergyCalibrationHF_
std::auto_ptr< reco::PFCandidateCollection > pfCandidates_
void postMuonCleaning(const edm::Handle< reco::MuonCollection > &muonh, const reco::VertexCollection &primaryVertices)
std::auto_ptr< reco::PFCandidateCollection > transferAddedMuonCandidates()
void setPhotonExtraRef(const edm::OrphanHandle< reco::PFCandidatePhotonExtraCollection > &pf_extrah)
bool applyCrackCorrectionsElectrons_
void setParameters(const edm::ParameterSet &iCfgCandConnector)
double sumPtTrackIsoForEgammaSC_endcap_
unsigned reconstructTrack(const reco::PFBlockElement &elt)
std::auto_ptr< reco::PFCandidateCollection > pfPunchThroughMuonCleanedCandidates_
the collection of punch-through cleaned muon candidates
std::auto_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
std::auto_ptr< reco::PFCandidateCollection > pfAddedMuonCandidates_
the collection of added muon candidates
reco::PFCandidateElectronExtraCollection pfElectronExtra_
the unfiltered electron collection
std::auto_ptr< reco::PFCandidateCollection > transferCosmicsMuonCleanedCandidates()
void setDebug(bool debug)
double sumPtTrackIsoForEgammaSC_barrel_
const std::auto_ptr< reco::PFCandidateCollection > & pfCandidates() const
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