CMS 3D CMS Logo

PhotonIsolationCalculator.h
Go to the documentation of this file.
1 #ifndef PhotonIsolationCalculator_H
2 #define PhotonIsolationCalculator_H
3 
9 
18 
20 
21 #include <vector>
22 
25 
29 
32 
34 public:
36  std::vector<int> const& flagsEB_,
37  std::vector<int> const& flagsEE_,
38  std::vector<int> const& severitiesEB_,
39  std::vector<int> const& severitiesEE_,
41 
42  ~PhotonIsolationCalculator() = default;
43 
44  void calculate(const reco::Photon*,
45  const edm::Event&,
46  const edm::EventSetup& es,
50  const HcalPFCuts* hcalCuts) const;
51 
52 private:
53  static void classify(const reco::Photon* photon,
54  bool& isEBPho,
55  bool& isEEPho,
56  bool& isEBEtaGap,
57  bool& isEBPhiGap,
58  bool& isEERingGap,
59  bool& isEEDeeGap,
60  bool& isEBEEGap) dso_internal;
61 
63  const edm::Event& e,
64  double& trkCone,
65  int& ntrkCone,
66  double pTThresh = 0,
67  double RCone = .4,
68  double RinnerCone = .1,
69  double etaSlice = 0.015,
70  double lip = 0.2,
71  double d0 = 0.1) const dso_internal;
72 
74  const edm::Event& iEvent,
75  const edm::EventSetup& iSetup,
76  double RCone,
77  double RConeInner,
78  double etaSlice,
79  double eMin,
80  double etMin,
81  bool vetoClusteredHits,
82  bool useNumCrystals) const dso_internal;
83 
84  template <bool isoBC>
86  const CaloGeometry& geometry,
87  const HcalTopology& hcalTopology,
88  const HcalChannelQuality& hcalChStatus,
89  const HcalSeverityLevelComputer& hcalSevLvlComputer,
90  const CaloTowerConstituentsMap& towerMap,
92  double RCone,
93  double RConeInner,
94  int depth,
95  const HcalPFCuts* hcalCuts) const dso_internal;
96 
97 private:
101 
109 
113  std::vector<double> moduleEtaBoundary_;
116 
117  std::array<double, 6> trkIsoBarrelRadiusA_;
118  std::array<double, 5> ecalIsoBarrelRadiusA_;
119  std::array<double, 6> trkIsoBarrelRadiusB_;
120  std::array<double, 5> ecalIsoBarrelRadiusB_;
121 
122  std::array<double, 6> trkIsoEndcapRadiusA_;
123  std::array<double, 5> ecalIsoEndcapRadiusA_;
124  std::array<double, 6> trkIsoEndcapRadiusB_;
125  std::array<double, 5> ecalIsoEndcapRadiusB_;
126 
127  std::array<double, 7> hcalIsoInnerRadAEB_;
128  std::array<double, 7> hcalIsoOuterRadAEB_;
129 
130  std::array<double, 7> hcalIsoInnerRadBEB_;
131  std::array<double, 7> hcalIsoOuterRadBEB_;
132 
133  std::array<double, 7> hcalIsoInnerRadAEE_;
134  std::array<double, 7> hcalIsoOuterRadAEE_;
135 
136  std::array<double, 7> hcalIsoInnerRadBEE_;
137  std::array<double, 7> hcalIsoOuterRadBEE_;
138 
142 
143  std::vector<int> flagsEB_;
144  std::vector<int> flagsEE_;
145  std::vector<int> severityExclEB_;
146  std::vector<int> severityExclEE_;
147 };
148 
149 #endif // PhotonIsolationCalculator_H
std::array< double, 7 > hcalIsoInnerRadBEB_
std::array< double, 6 > trkIsoBarrelRadiusA_
void calculate(const reco::Photon *, const edm::Event &, const edm::EventSetup &es, reco::Photon::FiducialFlags &phofid, reco::Photon::IsolationVariables &phoisolR03, reco::Photon::IsolationVariables &phoisolR04, const HcalPFCuts *hcalCuts) const
EgammaHcalIsolation::arrayHE hcalIsoEThresHE_
edm::ESGetToken< EcalSeverityLevelAlgo, EcalSeverityLevelAlgoRcd > ecalSevLvlToken_
edm::ESGetToken< CaloGeometry, CaloGeometryRecord > caloGeometryToken_
~PhotonIsolationCalculator()=default
edm::EDGetTokenT< HBHERecHitCollection > hbheRecHitsTag_
int iEvent
Definition: GenABIO.cc:224
std::array< double, 7 > hcalIsoOuterRadAEE_
std::array< double, 7 > hcalIsoInnerRadAEE_
std::array< double, 7 > hcalIsoOuterRadBEE_
#define dso_internal
Definition: Visibility.h:13
std::array< double, 5 > ecalIsoEndcapRadiusB_
void calculateTrackIso(const reco::Photon *photon, const edm::Event &e, double &trkCone, int &ntrkCone, double pTThresh=0, double RCone=.4, double RinnerCone=.1, double etaSlice=0.015, double lip=0.2, double d0=0.1) const
std::array< double, 7 > hcalIsoOuterRadAEB_
std::array< double, 6 > trkIsoEndcapRadiusB_
edm::ESGetToken< EcalPFRecHitThresholds, EcalPFRecHitThresholdsRcd > ecalPFRechitThresholdsToken_
EgammaHcalIsolation::arrayHB hcalIsoEThresHB_
static constexpr float d0
edm::ESGetToken< HcalChannelQuality, HcalChannelQualityRcd > hcalChannelQualityToken_
std::array< double, 5 > ecalIsoBarrelRadiusB_
std::array< double, 5 > ecalIsoEndcapRadiusA_
edm::ESGetToken< CaloTowerConstituentsMap, CaloGeometryRecord > towerMapToken_
std::array< double, 6 > trkIsoBarrelRadiusB_
double calculateEcalRecHitIso(const reco::Photon *photon, const edm::Event &iEvent, const edm::EventSetup &iSetup, double RCone, double RConeInner, double etaSlice, double eMin, double etMin, bool vetoClusteredHits, bool useNumCrystals) const
double calculateHcalRecHitIso(const reco::Photon *photon, const CaloGeometry &geometry, const HcalTopology &hcalTopology, const HcalChannelQuality &hcalChStatus, const HcalSeverityLevelComputer &hcalSevLvlComputer, const CaloTowerConstituentsMap &towerMap, const HBHERecHitCollection &hbheRecHits, double RCone, double RConeInner, int depth, const HcalPFCuts *hcalCuts) const
std::array< double, 5 > ecalIsoBarrelRadiusA_
PhotonIsolationCalculator(const edm::ParameterSet &conf, std::vector< int > const &flagsEB_, std::vector< int > const &flagsEE_, std::vector< int > const &severitiesEB_, std::vector< int > const &severitiesEE_, edm::ConsumesCollector &&iC)
edm::ESGetToken< HcalTopology, HcalRecNumberingRecord > hcalTopologyToken_
std::vector< double > moduleEtaBoundary_
edm::ESGetToken< HcalSeverityLevelComputer, HcalSeverityLevelComputerRcd > hcalSevLvlComputerToken_
std::array< double, 7 > hcalIsoInnerRadBEE_
std::array< double, 4 > arrayHB
static void classify(const reco::Photon *photon, bool &isEBPho, bool &isEEPho, bool &isEBEtaGap, bool &isEBPhiGap, bool &isEERingGap, bool &isEEDeeGap, bool &isEBEEGap)
std::array< double, 7 > hcalIsoOuterRadBEB_
std::array< double, 7 > hcalIsoInnerRadAEB_
std::array< double, 6 > trkIsoEndcapRadiusA_
std::array< double, 7 > arrayHE