1 #ifndef RecoParticleFlow_PFProducer_PFAlgo_h
2 #define RecoParticleFlow_PFProducer_PFAlgo_h
46 class PFClusterCalibration;
65 const boost::shared_ptr<PFEnergyCalibration>& calibration,
66 const boost::shared_ptr<pftools::PFClusterCalibration>& clusterCalibration,
67 const boost::shared_ptr<PFEnergyCalibrationHF>& thepfEnergyCalibrationHF,
68 unsigned int newCalib);
76 double dptRel_PrimaryTrack,
77 double dptRel_MergedTrack,
78 double ptErrorSecondary,
79 std::vector<double> nuclCalibFactors){
80 connector_.
setParameters(bCorrect, bCalibPrimary, dptRel_PrimaryTrack, dptRel_MergedTrack, ptErrorSecondary, nuclCalibFactors);
85 std::vector<double> muonECAL,
88 std::vector<double> factors45,
92 std::string mvaWeightFileEleID,
94 const boost::shared_ptr<PFSCEnergyCalibration>& thePFSCEnergyCalibration,
102 bool applyCrackCorrections=
false,
104 bool useEGElectrons=
false,
148 const std::auto_ptr< reco::PFCandidateCollection >&
pfCandidates()
const {
213 std::list<reco::PFBlockRef>& hcalBlockRefs,
214 std::list<reco::PFBlockRef>& ecalBlockRefs );
227 double particleEnergy,
228 bool useDirection =
false,
231 double particleZ=0.);
245 double clusterEta )
const;
249 double clusterEta )
const;
283 std::vector<bool>& active,
284 std::vector<double>& psEne);
std::auto_ptr< reco::PFCandidateCollection > transferCandidates()
unsigned int nTrackIsoForEgammaSC_
Abstract base class for a PFBlock element (track, cluster...)
reconstructed track used as an input to particle flow
bool isFromSecInt(const reco::PFBlockElement &eTrack, std::string order) const
std::vector< double > muonHCAL_
Variables for muons and fakes.
std::auto_ptr< reco::PFCandidateCollection > connect(std::auto_ptr< reco::PFCandidateCollection > &pfCand)
tuple coneTrackIsoForEgammaSC
tuple coneEcalIsoForEgammaSC
tuple sumEtEcalIsoForEgammaSC_barrel
double sumEtEcalIsoForEgammaSC_endcap_
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()
tuple usePFNuclearInteractions
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)
tuple sumEtEcalIsoForEgammaSC_endcap
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 setEGElectronCollection(const reco::GsfElectronCollection &egelectrons)
std::vector< GsfElectron > GsfElectronCollection
collection of GsfElectron objects
bool rejectTracks_Step45_
double minSignificanceReduction_
std::vector< double > factors45_
PFConversionAlgo * pfConversion_
void setPFEleParameters(double mvaEleCut, std::string mvaWeightFileEleID, bool usePFElectrons, const boost::shared_ptr< PFSCEnergyCalibration > &thePFSCEnergyCalibration, 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)
bool useEGammaSupercluster_
boost::shared_ptr< pftools::PFClusterCalibration > clusterCalibration_
tuple rejectTracks_Step45
bool usePFNuclearInteractions_
void setDebug(bool debug)
Based on a class from : V. Roberfroid, February 2008.
std::auto_ptr< reco::PFCandidateCollection > transferPunchThroughHadronCleanedCandidates()
tuple minSignificanceReduction
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.
tuple nTrackIsoForEgammaSC
std::auto_ptr< reco::PFCandidateCollection > transferPunchThroughMuonCleanedCandidates()
std::auto_ptr< reco::PFCandidateCollection > transferElectronCandidates()
reco::Vertex primaryVertex_
double nSigmaHCAL(double clusterEnergy, double clusterEta) const
std::vector< double > muonECAL_
tuple sumPtTrackIsoForEgammaSC_endcap
void setPostHFCleaningParameters(bool postHFCleaning, double minHFCleaningPt, double minSignificance, double maxSignificance, double minSignificanceReduction, double maxDeltaPhiPt, double minDeltaMet)
block
Formating index page's pieces.
std::vector< PFBlock > PFBlockCollection
collection of PFBlock objects
void setPFMuonAndFakeParameters(std::vector< double > muonHCAL, std::vector< double > muonECAL, double nSigmaTRACK, double ptError, std::vector< double > factors45, bool usePFMuonMomAssign)
reco::PFBlockRef createBlockRef(const reco::PFBlockCollection &blocks, unsigned bi)
bool isSatelliteCluster(const reco::PFRecTrack &track, const reco::PFCluster &cluster)
void setPFVertexParameters(bool useVertex, const reco::VertexCollection &primaryVertices)
void setParameters(double nSigmaECAL, double nSigmaHCAL, const boost::shared_ptr< PFEnergyCalibration > &calibration, const boost::shared_ptr< pftools::PFClusterCalibration > &clusterCalibration, const boost::shared_ptr< PFEnergyCalibrationHF > &thepfEnergyCalibrationHF, unsigned int newCalib)
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)
tuple useEGammaSupercluster
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_
tuple sumPtTrackIsoForEgammaSC_barrel
std::auto_ptr< reco::PFCandidateCollection > pfPunchThroughHadronCleanedCandidates_
the collection of punch-through cleaned neutral hadron candidates
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()
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