1 #ifndef PFProducer_PFPhotonAlgo_H 2 #define PFProducer_PFPhotonAlgo_H 21 #include "TMVA/Reader.h" 29 class PFCandidateCollectioon;
41 const std::shared_ptr<PFEnergyCalibration>& thePFEnergyCalibration,
54 ReaderLC_=LCorrForest;
55 ReaderGC_=GCorrForest;
68 ReaderLCEB_=LCorrForestEB;
69 ReaderLCEE_=LCorrForestEE;
70 ReaderGCEB_=GCorrForestBarrel;
71 ReaderGCEEhR9_=GCorrForestEndcapHr9;
72 ReaderGCEElR9_=GCorrForestEndcapLr9;
73 ReaderRes_=PFEcalResolution;
79 primaryVertex_ = & primary;
83 std::vector< bool >& active,
84 std::unique_ptr< reco::PFCandidateCollection > &pfPhotonCandidates,
85 std::vector<reco::PFCandidatePhotonExtra>& pfPhotonExtraCandidates,
86 std::vector<reco::PFCandidate>&
87 tempElectronCandidates
93 permElectronCandidates_.clear();
98 pfPhotonExtraCandidates,
99 tempElectronCandidates
104 for ( std::vector<reco::PFCandidate>::const_iterator
ec=tempElectronCandidates.begin();
ec != tempElectronCandidates.end(); ++
ec){
108 if(ind==match_ind[
i])
117 permElectronCandidates_.push_back(*
ec);
123 tempElectronCandidates.clear();
124 for ( std::vector<reco::PFCandidate>::const_iterator
ec=permElectronCandidates_.begin();
ec != permElectronCandidates_.end(); ++
ec)tempElectronCandidates.push_back(*
ec);
125 permElectronCandidates_.clear();
174 float CrysPhi_, CrysEta_,
VtxZ_, ClusPhi_, ClusEta_,
175 ClusR9_, Clus5x5ratio_, PFCrysEtaCrack_, logPFClusE_, e3x3_;
180 float eSeed_, e1x3_,e3x1_, e1x5_, e2x5Top_, e2x5Bottom_, e2x5Left_, e2x5Right_ ;
181 float etop_, ebottom_, eleft_, eright_;
184 float PFPhoEta_, PFPhoPhi_, PFPhoR9_, PFPhoR9Corr_,
SCPhiWidth_, SCEtaWidth_, PFPhoEt_, RConv_, PFPhoEtCorr_, PFPhoE_, PFPhoECorr_, MustE_, E3x3_;
185 float dEta_, dPhi_, LowClusE_, RMSAll_,
RMSMust_, nPFClus_;
199 std::vector< bool >& active,
201 std::unique_ptr<reco::PFCandidateCollection> &pfPhotonCandidates,
202 std::vector<reco::PFCandidatePhotonExtra>&
203 pfPhotonExtraCandidates,
206 std::vector<reco::PFCandidate>&
207 tempElectronCandidates
212 unsigned int track_index);
214 double ClustersPhiRMS(
const std::vector<reco::CaloCluster>&
PFClusters,
float PFPhoPhi);
218 std::vector<int> getPFMustacheClus(
int nClust, std::vector<float>& ClustEt, std::vector<float>& ClustEta, std::vector<float>& ClustPhi);
219 void EarlyConversion(
222 std::vector<reco::PFCandidate>&
223 tempElectronCandidates,
const GBRForest * ReaderLCEE_
bool isPhotonValidCandidate(const reco::PFBlockRef &blockRef, std::vector< bool > &active, std::unique_ptr< reco::PFCandidateCollection > &pfPhotonCandidates, std::vector< reco::PFCandidatePhotonExtra > &pfPhotonExtraCandidates, std::vector< reco::PFCandidate > &tempElectronCandidates)
const GBRForest * ReaderGC_
verbosityLevel verbosityLevel_
const GBRForest * ReaderRes_
std::vector< unsigned int > AddFromElectron_
const GBRForest * ReaderGCEEhR9_
std::vector< reco::PFCandidate > permElectronCandidates_
TMVA::Reader * tmvaReader_
const GBRForest * ReaderLC_
const GBRForest * ReaderLCEB_
const reco::Vertex * primaryVertex_
double sumPtTrackIsoSlopeForPhoton_
const GBRForest * ReaderGCEB_
void setGBRForest(const GBRForest *LCorrForestEB, const GBRForest *LCorrForestEE, const GBRForest *GCorrForestBarrel, const GBRForest *GCorrForestEndcapHr9, const GBRForest *GCorrForestEndcapLr9, const GBRForest *PFEcalResolution)
std::shared_ptr< PFEnergyCalibration > thePFEnergyCalibration_
void setGBRForest(const GBRForest *LCorrForest, const GBRForest *GCorrForest, const GBRForest *ResForest)
Particle reconstructed by the particle flow algorithm.
const GBRForest * ReaderGCEElR9_
sumPtTrackIsoSlopeForPhoton
double sumPtTrackIsoForPhoton_
void setPhotonPrimaryVtx(const reco::Vertex &primary)
std::vector< int > match_ind