![]() |
![]() |
00001 #ifndef PhotonIDAlgo_H 00002 #define PhotonIDAlgo_H 00003 00004 #include "FWCore/Framework/interface/Event.h" 00005 #include "FWCore/Framework/interface/EventSetup.h" 00006 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00007 #include "DataFormats/EgammaCandidates/interface/Photon.h" 00008 #include "DataFormats/EgammaCandidates/interface/PhotonID.h" 00009 #include <string> 00010 00011 class PhotonIDAlgo { 00012 00013 public: 00014 00015 PhotonIDAlgo(){}; 00016 00017 virtual ~PhotonIDAlgo(){}; 00018 00019 void baseSetup(const edm::ParameterSet& conf); 00020 void classify(const reco::Photon* photon, 00021 bool &isEBPho, 00022 bool &isEEPho, 00023 bool &isEBGap, 00024 bool &isEEGap, 00025 bool &isEBEEGap); 00026 void calculateTrackIso(const reco::Photon* photon, 00027 const edm::Event &e, 00028 double &trkCone, 00029 int &ntrkCone, 00030 double pTThresh=0, 00031 double RCone=.4, 00032 double RinnerCone=.1); 00033 double calculateBasicClusterIso(const reco::Photon* photon, 00034 const edm::Event& iEvent, 00035 double RCone=0.4, 00036 double RConeInner=0, 00037 double etMin=0); 00038 double calculateEcalRecHitIso(const reco::Photon* photon, 00039 const edm::Event& iEvent, 00040 const edm::EventSetup& iSetup, 00041 double RCone, 00042 double RConeInner, 00043 double etaSlice, 00044 double etMin); 00045 double calculateHcalRecHitIso(const reco::Photon* photon, 00046 const edm::Event& iEvent, 00047 const edm::EventSetup& iSetup, 00048 double RCone, 00049 double RConeInner, 00050 double etaSlice, 00051 double etMin); 00052 00053 double calculateR9(const reco::Photon* photon, 00054 const edm::Event& iEvent, 00055 const edm::EventSetup& iSetup); 00056 00057 00058 bool isAlsoElectron(const reco::Photon* photon, 00059 const edm::Event& e); 00060 00061 00062 protected: 00063 00064 00065 std::string endcapSuperClusterProducer_; 00066 std::string endcapsuperclusterCollection_; 00067 std::string barrelsuperclusterCollection_; 00068 std::string barrelsuperclusterProducer_; 00069 std::string barrelbasicclusterCollection_; 00070 std::string barrelbasicclusterProducer_; 00071 std::string endcapbasicclusterCollection_; 00072 std::string endcapbasicclusterProducer_; 00073 std::string barrelecalCollection_; 00074 std::string barrelecalProducer_; 00075 std::string endcapecalCollection_; 00076 std::string endcapecalProducer_; 00077 std::string hcalCollection_; 00078 std::string hcalProducer_; 00079 00080 00081 00082 edm::InputTag trackInputTag_; 00083 edm::InputTag gsfRecoInputTag_; 00084 00085 double modulePhiBoundary_; 00086 std::vector<double> moduleEtaBoundary_; 00087 00088 }; 00089 00090 #endif // PhotonIDAlgo_H