00001 #ifndef CutBasedPhotonIDAlgo_H 00002 #define CutBasedPhotonIDAlgo_H 00003 00004 #include "RecoEgamma/PhotonIdentification/interface/PhotonIDAlgo.h" 00005 #include "DataFormats/EgammaCandidates/interface/PhotonID.h" 00006 #include "DataFormats/EgammaCandidates/interface/Photon.h" 00007 #include "FWCore/Framework/interface/Event.h" 00008 #include "FWCore/Framework/interface/EventSetup.h" 00009 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00010 00011 class CutBasedPhotonIDAlgo : PhotonIDAlgo { 00012 00013 public: 00014 00015 CutBasedPhotonIDAlgo(){}; 00016 00017 virtual ~CutBasedPhotonIDAlgo(){}; 00018 00019 void setup(const edm::ParameterSet& conf); 00020 reco::PhotonID calculate(const reco::Photon*, const edm::Event&, const edm::EventSetup& es); 00021 void decideEB(reco::PhotonID &phID, const reco::Photon* pho); 00022 void decideEE(reco::PhotonID &phID, const reco::Photon* pho); 00023 private: 00024 00025 //Which cuts to do? 00026 bool dophotonBCIsolationCut_; 00027 bool dophotonEcalRecHitIsolationCut_; 00028 bool dophotonHcalRecHitIsolationCut_; 00029 bool dophotonHCTrkIsolationCut_; 00030 bool dophotonSCTrkIsolationCut_; 00031 bool dophotonHCNTrkCut_; 00032 bool dophotonSCNTrkCut_; 00033 bool dorequireNotElectron_; 00034 bool dorequireFiducial_; 00035 bool dophotonHadOverEMCut_; 00036 bool dophotonsigmaeeCut_; 00037 bool dophotonR9Cut_; 00038 00039 //Actual cut values 00040 double looseEMEcalRecHitIsolationCutEB_; 00041 double looseEMHcalRecHitIsolationCutEB_; 00042 double looseEMHollowConeTrkIsolationCutEB_; 00043 double looseEMSolidConeTrkIsolationCutEB_; 00044 int looseEMSolidConeNTrkCutEB_; 00045 int looseEMHollowConeNTrkCutEB_; 00046 double looseEMEtaWidthCutEB_; 00047 double looseEMHadOverEMCutEB_; 00048 double looseEMR9CutEB_; 00049 00050 double loosephotonEcalRecHitIsolationCutEB_; 00051 double loosephotonHcalRecHitIsolationCutEB_; 00052 double loosephotonHollowConeTrkIsolationCutEB_; 00053 double loosephotonSolidConeTrkIsolationCutEB_; 00054 int loosephotonSolidConeNTrkCutEB_; 00055 int loosephotonHollowConeNTrkCutEB_; 00056 double loosephotonEtaWidthCutEB_; 00057 double loosephotonHadOverEMCutEB_; 00058 double loosephotonR9CutEB_; 00059 00060 double tightphotonEcalRecHitIsolationCutEB_; 00061 double tightphotonHcalRecHitIsolationCutEB_; 00062 double tightphotonHollowConeTrkIsolationCutEB_; 00063 double tightphotonSolidConeTrkIsolationCutEB_; 00064 int tightphotonSolidConeNTrkCutEB_; 00065 int tightphotonHollowConeNTrkCutEB_; 00066 double tightphotonEtaWidthCutEB_; 00067 double tightphotonHadOverEMCutEB_; 00068 double tightphotonR9CutEB_; 00069 00070 double looseEMEcalRecHitIsolationCutEE_; 00071 double looseEMHcalRecHitIsolationCutEE_; 00072 double looseEMHollowConeTrkIsolationCutEE_; 00073 double looseEMSolidConeTrkIsolationCutEE_; 00074 int looseEMSolidConeNTrkCutEE_; 00075 int looseEMHollowConeNTrkCutEE_; 00076 double looseEMEtaWidthCutEE_; 00077 double looseEMHadOverEMCutEE_; 00078 double looseEMR9CutEE_; 00079 00080 double loosephotonEcalRecHitIsolationCutEE_; 00081 double loosephotonHcalRecHitIsolationCutEE_; 00082 double loosephotonHollowConeTrkIsolationCutEE_; 00083 double loosephotonSolidConeTrkIsolationCutEE_; 00084 int loosephotonSolidConeNTrkCutEE_; 00085 int loosephotonHollowConeNTrkCutEE_; 00086 double loosephotonEtaWidthCutEE_; 00087 double loosephotonHadOverEMCutEE_; 00088 double loosephotonR9CutEE_; 00089 00090 double tightphotonEcalRecHitIsolationCutEE_; 00091 double tightphotonHcalRecHitIsolationCutEE_; 00092 double tightphotonHollowConeTrkIsolationCutEE_; 00093 double tightphotonSolidConeTrkIsolationCutEE_; 00094 int tightphotonSolidConeNTrkCutEE_; 00095 int tightphotonHollowConeNTrkCutEE_; 00096 double tightphotonEtaWidthCutEE_; 00097 double tightphotonHadOverEMCutEE_; 00098 double tightphotonR9CutEE_; 00099 00100 //Isolation parameters 00101 double photonEcalRecHitConeInnerRadius_; 00102 double photonEcalRecHitConeOuterRadius_; 00103 double photonEcalRecHitEtaSlice_; 00104 double photonEcalRecHitThresh_; 00105 double photonHcalRecHitConeInnerRadius_; 00106 double photonHcalRecHitConeOuterRadius_; 00107 double photonHcalRecHitEtaSlice_; 00108 double photonHcalRecHitThresh_; 00109 double trackConeOuterRadius_; 00110 double trackConeInnerRadius_; 00111 double isolationtrackThreshold_; 00112 00113 }; 00114 00115 #endif // CutBasedPhotonIDAlgo_H