00001 #ifndef ParticleFlowCandidate_PFCandidatePhotonExtra_h 00002 #define ParticleFlowCandidate_PFCandidatePhotonExtra_h 00003 00004 #include "DataFormats/TrackReco/interface/TrackFwd.h" 00005 #include "DataFormats/EgammaReco/interface/SuperClusterFwd.h" 00006 #include "DataFormats/EgammaCandidates/interface/ConversionFwd.h" 00007 00008 #include <iosfwd> 00009 00010 namespace reco { 00016 class PFCandidatePhotonExtra { 00017 public: 00019 PFCandidatePhotonExtra(); 00021 PFCandidatePhotonExtra(const reco::SuperClusterRef&); 00023 ~PFCandidatePhotonExtra(){;} 00024 00025 // variables for the single conversion identification 00026 00028 reco::SuperClusterRef superClusterRef() const {return scRef_ ; } 00029 00031 void addSingleLegConvTrackRef(const reco::TrackRef& trackref); 00032 00034 const std::vector<reco::TrackRef>& singleLegConvTrackRef() const {return assoSingleLegRefTrack_;} 00035 00037 void addSingleLegConvMva(float& mvasingleleg); 00038 00040 const std::vector<float>& singleLegConvMva() const {return assoSingleLegMva_;} 00041 00043 void addConversionRef(const reco::ConversionRef& convref); 00044 00046 reco::ConversionRefVector conversionRef() const {return assoConversionsRef_;} 00047 00048 //from Mustache Id: 00049 void setMustache_Et(float Must_Et){Mustache_Et_=Must_Et;} 00050 void setExcludedClust(int excluded){Excluded_clust_=excluded;} 00051 float Mustache_Et()const{ return Mustache_Et_;} 00052 int ExcludedClust()const{ return Excluded_clust_;} 00053 00054 //MVA Energy Regression: 00055 void setMVAGlobalCorrE(float GCorr){GlobalCorr_=GCorr;} 00056 float MVAGlobalCorrE()const{return GlobalCorr_;} 00057 00058 void setMVAGlobalCorrEError(float GCorr){GlobalCorrEError_=GCorr;} 00059 float MVAGlobalCorrEError()const{return GlobalCorrEError_;} 00060 00061 void addLCorrClusEnergy(float LCorrE); 00062 const std::vector<float>& LCorrClusEnergy() const {return LocalCorr_;} 00063 00064 void SetPFPhotonRes(float Res){Res=MVAResolution_;} 00065 float PFPhotonRes()const {return MVAResolution_;} 00066 private: 00067 00069 reco::SuperClusterRef scRef_; 00070 00072 std::vector<reco::TrackRef> assoSingleLegRefTrack_; 00073 00075 std::vector<float> assoSingleLegMva_; 00076 00078 reco::ConversionRefVector assoConversionsRef_; 00079 00080 //for Mustache_Id 00081 float Mustache_Et_; 00082 int Excluded_clust_; 00083 00084 //for MVA Regression Energy 00085 std::vector<float> LocalCorr_; 00086 float GlobalCorr_; 00087 float GlobalCorrEError_; 00088 float MVAResolution_; 00089 }; 00090 } 00091 #endif