1 #ifndef PFProducer_PFPhotonAlgo_H
2 #define PFProducer_PFPhotonAlgo_H
21 #include "TMVA/Reader.h"
29 class PFCandidateCollectioon;
41 const boost::shared_ptr<PFEnergyCalibration>& thePFEnergyCalibration,
42 double sumPtTrackIsoForPhoton,
43 double sumPtTrackIsoSlopeForPhoton
80 std::vector< bool >& active,
81 std::auto_ptr< reco::PFCandidateCollection > &pfPhotonCandidates,
82 std::vector<reco::PFCandidatePhotonExtra>& pfPhotonExtraCandidates,
83 std::vector<reco::PFCandidate>&
84 tempElectronCandidates
95 pfPhotonExtraCandidates,
96 tempElectronCandidates
101 for ( std::vector<reco::PFCandidate>::const_iterator ec=tempElectronCandidates.begin(); ec != tempElectronCandidates.end(); ++ec){
103 for(
int i=0;
i<matches;
i++)
120 tempElectronCandidates.clear();
181 float PFPhoEta_,
PFPhoPhi_,
PFPhoR9_,
PFPhoR9Corr_,
SCPhiWidth_,
SCEtaWidth_,
PFPhoEt_,
RConv_,
PFPhoEtCorr_,
PFPhoE_,
PFPhoECorr_,
MustE_,
E3x3_;
196 std::vector< bool >& active,
198 std::auto_ptr< reco::PFCandidateCollection > &pfPhotonCandidates,
199 std::vector<reco::PFCandidatePhotonExtra>&
200 pfPhotonExtraCandidates,
203 std::vector<reco::PFCandidate>&
204 tempElectronCandidates
209 unsigned int track_index);
211 double ClustersPhiRMS(std::vector<reco::CaloCluster>PFClusters,
float PFPhoPhi);
215 std::vector<int>
getPFMustacheClus(
int nClust, std::vector<float>& ClustEt, std::vector<float>& ClustEta, std::vector<float>& ClustPhi);
219 std::vector<reco::PFCandidate>&
220 tempElectronCandidates,
std::vector< int > getPFMustacheClus(int nClust, std::vector< float > &ClustEt, std::vector< float > &ClustEta, std::vector< float > &ClustPhi)
const GBRForest * ReaderLCEE_
const GBRForest * ReaderGC_
verbosityLevel verbosityLevel_
const GBRForest * ReaderRes_
std::vector< unsigned int > AddFromElectron_
const GBRForest * ReaderGCEEhR9_
std::vector< reco::PFCandidate > permElectronCandidates_
float EvaluateGCorrMVA(reco::PFCandidate, std::vector< reco::CaloCluster >PFClusters)
reco::Vertex primaryVertex_
void RunPFPhoton(const reco::PFBlockRef &blockRef, std::vector< bool > &active, std::auto_ptr< reco::PFCandidateCollection > &pfPhotonCandidates, std::vector< reco::PFCandidatePhotonExtra > &pfPhotonExtraCandidates, std::vector< reco::PFCandidate > &tempElectronCandidates)
TMVA::Reader * tmvaReader_
float EvaluateLCorrMVA(reco::PFClusterRef clusterRef)
const GBRForest * ReaderLC_
const GBRForest * ReaderLCEB_
double sumPtTrackIsoSlopeForPhoton_
PFPhotonAlgo(std::string mvaweightfile, double mvaConvCut, bool useReg, std::string X0_Map, const reco::Vertex &primary, const boost::shared_ptr< PFEnergyCalibration > &thePFEnergyCalibration, double sumPtTrackIsoForPhoton, double sumPtTrackIsoSlopeForPhoton)
double ClustersPhiRMS(std::vector< reco::CaloCluster >PFClusters, float PFPhoPhi)
boost::shared_ptr< PFEnergyCalibration > thePFEnergyCalibration_
const GBRForest * ReaderGCEB_
void setGBRForest(const GBRForest *LCorrForestEB, const GBRForest *LCorrForestEE, const GBRForest *GCorrForestBarrel, const GBRForest *GCorrForestEndcapHr9, const GBRForest *GCorrForestEndcapLr9, const GBRForest *PFEcalResolution)
void EarlyConversion(std::vector< reco::PFCandidate > &tempElectronCandidates, const reco::PFBlockElementSuperCluster *sc)
void setGBRForest(const GBRForest *LCorrForest, const GBRForest *GCorrForest, const GBRForest *ResForest)
float EvaluateResMVA(reco::PFCandidate, std::vector< reco::CaloCluster >PFClusters)
bool EvaluateSingleLegMVA(const reco::PFBlockRef &blockref, const reco::Vertex &primaryvtx, unsigned int track_index)
Particle reconstructed by the particle flow algorithm.
const GBRForest * ReaderGCEElR9_
double sumPtTrackIsoForPhoton_
std::vector< int > match_ind
bool isPhotonValidCandidate(const reco::PFBlockRef &blockRef, std::vector< bool > &active, std::auto_ptr< reco::PFCandidateCollection > &pfPhotonCandidates, std::vector< reco::PFCandidatePhotonExtra > &pfPhotonExtraCandidates, std::vector< reco::PFCandidate > &tempElectronCandidates)