CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_2_9/src/RecoEgamma/PhotonIdentification/interface/PhotonIsolationCalculator.h

Go to the documentation of this file.
00001 #ifndef PhotonIsolationCalculator_H
00002 #define PhotonIsolationCalculator_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 
00009 #include "CondFormats/EcalObjects/interface/EcalChannelStatus.h"
00010 #include "RecoLocalCalo/EcalRecAlgos/interface/EcalSeverityLevelAlgo.h"
00011 
00012 #include <string>
00013 
00014 class PhotonIsolationCalculator {
00015 
00016 public:
00017 
00018   PhotonIsolationCalculator(){};
00019 
00020   virtual ~PhotonIsolationCalculator(){};
00021 
00022   void setup(const edm::ParameterSet& conf);
00023 
00024   void calculate(const reco::Photon*, 
00025                  const edm::Event&, const edm::EventSetup& es,
00026                  reco::Photon::FiducialFlags& phofid, 
00027                  reco::Photon::IsolationVariables& phoisolR03, 
00028                  reco::Photon::IsolationVariables& phoisolR04 );
00029 
00030   void classify(const reco::Photon* photon, 
00031                 bool &isEBPho,
00032                 bool &isEEPho,
00033                 bool &isEBEtaGap,
00034                 bool &isEBPhiGap,
00035                 bool &isEERingGap,
00036                 bool &isEEDeeGap,
00037                 bool &isEBEEGap);
00038   void calculateTrackIso(const reco::Photon* photon,
00039                          const edm::Event &e,
00040                          double &trkCone,
00041                          int &ntrkCone,
00042                          double pTThresh=0,
00043                          double RCone=.4,
00044                          double RinnerCone=.1,
00045                          double etaSlice=0.015,
00046                          double lip=0.2,
00047                          double d0=0.1);
00048 
00049 
00050 
00051   double calculateEcalRecHitIso(const reco::Photon* photon,
00052                                 const edm::Event& iEvent,
00053                                 const edm::EventSetup& iSetup,
00054                                 double RCone,
00055                                 double RConeInner,
00056                                 double etaSlice,
00057                                 double eMin,
00058                                 double etMin, 
00059                                 bool vetoClusteredHits, 
00060                                 bool useNumCrystals);
00061 
00062   double calculateHcalTowerIso(const reco::Photon* photon,
00063                                const edm::Event& iEvent,
00064                                const edm::EventSetup& iSetup,
00065                                double RCone,
00066                                double RConeInner,
00067                                double eMin,
00068                                signed int depth);
00069 
00070 
00071   
00072  protected:
00073 
00074   edm::InputTag barrelecalCollection_;
00075   edm::InputTag endcapecalCollection_;
00076   edm::InputTag hcalCollection_;
00077 
00078   edm::InputTag trackInputTag_;
00079   edm::InputTag beamSpotProducerTag_;
00080   double modulePhiBoundary_;
00081   std::vector<double> moduleEtaBoundary_;
00082   bool vetoClusteredEcalHits_;
00083   bool useNumCrystals_;
00084 
00085   std::vector<double>  trkIsoBarrelRadiusA_;
00086   std::vector<double>  ecalIsoBarrelRadiusA_;
00087   std::vector<double>  hcalIsoBarrelRadiusA_;
00088   std::vector<double>  trkIsoBarrelRadiusB_;
00089   std::vector<double>  ecalIsoBarrelRadiusB_;
00090   std::vector<double>  hcalIsoBarrelRadiusB_;
00091 
00092   std::vector<double>  trkIsoEndcapRadiusA_;
00093   std::vector<double>  ecalIsoEndcapRadiusA_;
00094   std::vector<double>  hcalIsoEndcapRadiusA_;
00095   std::vector<double>  trkIsoEndcapRadiusB_;
00096   std::vector<double>  ecalIsoEndcapRadiusB_;
00097   std::vector<double>  hcalIsoEndcapRadiusB_;
00098 
00099   //Isolation parameters variables
00100   double photonEcalRecHitConeInnerRadiusA_;
00101   double photonEcalRecHitConeOuterRadiusA_;
00102   double photonEcalRecHitEtaSliceA_;
00103   double photonEcalRecHitThreshEA_;
00104   double photonEcalRecHitThreshEtA_;
00105   double photonHcalTowerConeInnerRadiusA_;
00106   double photonHcalTowerConeOuterRadiusA_;
00107   double photonHcalTowerThreshEA_;
00108   double photonHcalDepth1TowerConeInnerRadiusA_;
00109   double photonHcalDepth1TowerConeOuterRadiusA_;
00110   double photonHcalDepth1TowerThreshEA_;
00111   double photonHcalDepth2TowerConeInnerRadiusA_;
00112   double photonHcalDepth2TowerConeOuterRadiusA_;
00113   double photonHcalDepth2TowerThreshEA_;
00114   double trackConeOuterRadiusA_;
00115   double trackConeInnerRadiusA_;
00116   double isolationtrackThresholdA_;
00117   double isolationtrackEtaSliceA_;
00118   double trackLipRadiusA_;
00119   double trackD0RadiusA_;
00120 
00121   int    severityLevelCut_;
00122   //float  severityRecHitThreshold_;
00123   //float  spikeIdThreshold_;
00124   //EcalSeverityLevelAlgo::SpikeId spId_;
00125   std::vector<int> v_chstatus_;
00126   //EcalSeverityLevelAlgo::SpikeId spId_;
00127 
00128 
00129   double photonEcalRecHitConeInnerRadiusB_;
00130   double photonEcalRecHitConeOuterRadiusB_;
00131   double photonEcalRecHitEtaSliceB_;
00132   double photonEcalRecHitThreshEB_;
00133   double photonEcalRecHitThreshEtB_;
00134   double photonHcalTowerConeInnerRadiusB_;
00135   double photonHcalTowerConeOuterRadiusB_;
00136   double photonHcalTowerThreshEB_;
00137   double photonHcalDepth1TowerConeInnerRadiusB_;
00138   double photonHcalDepth1TowerConeOuterRadiusB_;
00139   double photonHcalDepth1TowerThreshEB_;
00140   double photonHcalDepth2TowerConeInnerRadiusB_;
00141   double photonHcalDepth2TowerConeOuterRadiusB_;
00142   double photonHcalDepth2TowerThreshEB_;
00143   double trackConeOuterRadiusB_;
00144   double trackConeInnerRadiusB_;
00145   double isolationtrackThresholdB_;
00146   double isolationtrackEtaSliceB_;
00147   double trackLipRadiusB_;
00148   double trackD0RadiusB_;
00149 
00150 
00151 
00152   };
00153 
00154 #endif // PhotonIsolationCalculator_H