CMS 3D CMS Logo

PhotonIDAlgo.h

Go to the documentation of this file.
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

Generated on Tue Jun 9 17:43:34 2009 for CMSSW by  doxygen 1.5.4