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,
83 std::vector< bool >& active,
84 std::auto_ptr< reco::PFCandidateCollection > &pfPhotonCandidates,
85 std::vector<reco::PFCandidatePhotonExtra>& pfPhotonExtraCandidates,
86 std::vector<reco::PFCandidate>&
87 tempElectronCandidates
98 pfPhotonExtraCandidates,
99 tempElectronCandidates
104 for ( std::vector<reco::PFCandidate>::const_iterator ec=tempElectronCandidates.begin(); ec != tempElectronCandidates.end(); ++ec){
123 tempElectronCandidates.clear();
184 float PFPhoEta_,
PFPhoPhi_,
PFPhoR9_,
PFPhoR9Corr_,
SCPhiWidth_,
SCEtaWidth_,
PFPhoEt_,
RConv_,
PFPhoEtCorr_,
PFPhoE_,
PFPhoECorr_,
MustE_,
E3x3_;
199 std::vector< bool >& active,
201 std::auto_ptr< reco::PFCandidateCollection > &pfPhotonCandidates,
202 std::vector<reco::PFCandidatePhotonExtra>&
203 pfPhotonExtraCandidates,
206 std::vector<reco::PFCandidate>&
207 tempElectronCandidates
212 unsigned int track_index);
218 std::vector<int>
getPFMustacheClus(
int nClust, std::vector<float>& ClustEt, std::vector<float>& ClustEta, std::vector<float>& ClustPhi);
222 std::vector<reco::PFCandidate>&
223 tempElectronCandidates,
tuple sumPtTrackIsoSlopeForPhoton
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_
double ClustersPhiRMS(const std::vector< reco::CaloCluster > &PFClusters, float PFPhoPhi)
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 EvaluateResMVA(const reco::PFCandidate &, const std::vector< reco::CaloCluster > &PFClusters)
tuple sumPtTrackIsoForPhoton
float EvaluateGCorrMVA(const reco::PFCandidate &, const std::vector< reco::CaloCluster > &PFClusters)
float EvaluateLCorrMVA(reco::PFClusterRef clusterRef)
const GBRForest * ReaderLC_
const GBRForest * ReaderLCEB_
const reco::Vertex * primaryVertex_
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)
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)
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_
void setPhotonPrimaryVtx(const reco::Vertex &primary)
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)