CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes
PhotonIsolationCalculator Class Reference

#include <PhotonIsolationCalculator.h>

Public Member Functions

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
 
 PhotonIsolationCalculator ()
 
void setup (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)
 
 ~PhotonIsolationCalculator ()
 

Private Member Functions

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
 
template<bool isoBC>
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
 
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
 

Static Private Member Functions

static void classify (const reco::Photon *photon, bool &isEBPho, bool &isEEPho, bool &isEBEtaGap, bool &isEBPhiGap, bool &isEERingGap, bool &isEEDeeGap, bool &isEBEEGap)
 

Private Attributes

edm::EDGetToken barrelecalCollection_
 
edm::EDGetToken beamSpotProducerTag_
 
edm::ESGetToken< CaloGeometry, CaloGeometryRecordcaloGeometryToken_
 
std::array< double, 5 > ecalIsoBarrelRadiusA_
 
std::array< double, 5 > ecalIsoBarrelRadiusB_
 
std::array< double, 5 > ecalIsoEndcapRadiusA_
 
std::array< double, 5 > ecalIsoEndcapRadiusB_
 
edm::ESGetToken< EcalSeverityLevelAlgo, EcalSeverityLevelAlgoRcdecalSevLvlToken_
 
edm::EDGetToken endcapecalCollection_
 
std::vector< int > flagsEB_
 
std::vector< int > flagsEE_
 
edm::EDGetTokenT< HBHERecHitCollectionhbheRecHitsTag_
 
edm::ESGetToken< HcalChannelQuality, HcalChannelQualityRcdhcalChannelQualityToken_
 
EgammaHcalIsolation::arrayHB hcalIsoEThresHB_
 
EgammaHcalIsolation::arrayHE hcalIsoEThresHE_
 
std::array< double, 7 > hcalIsoInnerRadAEB_
 
std::array< double, 7 > hcalIsoInnerRadAEE_
 
std::array< double, 7 > hcalIsoInnerRadBEB_
 
std::array< double, 7 > hcalIsoInnerRadBEE_
 
std::array< double, 7 > hcalIsoOuterRadAEB_
 
std::array< double, 7 > hcalIsoOuterRadAEE_
 
std::array< double, 7 > hcalIsoOuterRadBEB_
 
std::array< double, 7 > hcalIsoOuterRadBEE_
 
edm::ESGetToken< HcalSeverityLevelComputer, HcalSeverityLevelComputerRcdhcalSevLvlComputerToken_
 
edm::ESGetToken< HcalTopology, HcalRecNumberingRecordhcalTopologyToken_
 
int maxHcalSeverity_
 
std::vector< double > moduleEtaBoundary_
 
double modulePhiBoundary_
 
std::vector< int > severityExclEB_
 
std::vector< int > severityExclEE_
 
edm::ESGetToken< CaloTowerConstituentsMap, CaloGeometryRecordtowerMapToken_
 
edm::EDGetToken trackInputTag_
 
std::array< double, 6 > trkIsoBarrelRadiusA_
 
std::array< double, 6 > trkIsoBarrelRadiusB_
 
std::array< double, 6 > trkIsoEndcapRadiusA_
 
std::array< double, 6 > trkIsoEndcapRadiusB_
 
bool useNumCrystals_
 
bool vetoClusteredEcalHits_
 

Detailed Description

Determine and Set quality information on Photon Objects

Author
A. Askew, N. Marinelli, M.B. Anderson

Definition at line 31 of file PhotonIsolationCalculator.h.

Constructor & Destructor Documentation

◆ PhotonIsolationCalculator()

PhotonIsolationCalculator::PhotonIsolationCalculator ( )
inline

Definition at line 33 of file PhotonIsolationCalculator.h.

33 {}

◆ ~PhotonIsolationCalculator()

PhotonIsolationCalculator::~PhotonIsolationCalculator ( )
inline

Definition at line 35 of file PhotonIsolationCalculator.h.

35 {}

Member Function Documentation

◆ calculate()

void PhotonIsolationCalculator::calculate ( const reco::Photon pho,
const edm::Event e,
const edm::EventSetup es,
reco::Photon::FiducialFlags phofid,
reco::Photon::IsolationVariables phoisolR03,
reco::Photon::IsolationVariables phoisolR04,
const HcalPFCuts hcalCuts 
) const

Definition at line 145 of file PhotonIsolationCalculator.cc.

References calculateEcalRecHitIso(), calculateTrackIso(), caloGeometryToken_, classify(), hcalRecHitTable_cff::depth, hgcalTestNeighbor_cfi::detector, MillePedeFileConverter_cfg::e, EcalBarrel, ecalIsoBarrelRadiusA_, ecalIsoBarrelRadiusB_, ecalIsoEndcapRadiusA_, ecalIsoEndcapRadiusB_, reco::Photon::IsolationVariables::ecalRecHitSumEt, fbc, edm::EventSetup::getData(), ecalDrivenElectronSeeds_cfi::hbheRecHits, hbheRecHitsTag_, hcalChannelQualityToken_, hcalIsoInnerRadAEB_, hcalIsoInnerRadAEE_, hcalIsoInnerRadBEB_, hcalIsoInnerRadBEE_, hcalIsoOuterRadAEB_, hcalIsoOuterRadAEE_, hcalIsoOuterRadBEB_, hcalIsoOuterRadBEE_, reco::Photon::IsolationVariables::hcalRecHitSumEt, reco::Photon::IsolationVariables::hcalRecHitSumEtBc, hcalSevLvlComputerToken_, hcalTopologyToken_, reco::CaloCluster::hitsAndFractions(), l1ctLayer2EG_cff::id, SurfaceOrientation::inner, reco::Photon::FiducialFlags::isEB, reco::Photon::FiducialFlags::isEBEEGap, reco::Photon::FiducialFlags::isEBEtaGap, reco::Photon::FiducialFlags::isEBPhiGap, reco::Photon::FiducialFlags::isEE, reco::Photon::FiducialFlags::isEEDeeGap, reco::Photon::FiducialFlags::isEERingGap, reco::Photon::IsolationVariables::nTrkHollowCone, reco::Photon::IsolationVariables::nTrkSolidCone, SurfaceOrientation::outer, reco::Photon::IsolationVariables::pre7DepthHcal, DetId::subdetId(), reco::Photon::superCluster(), towerMapToken_, trkIsoBarrelRadiusA_, trkIsoBarrelRadiusB_, trkIsoEndcapRadiusA_, trkIsoEndcapRadiusB_, reco::Photon::IsolationVariables::trkSumPtHollowCone, reco::Photon::IsolationVariables::trkSumPtSolidCone, useNumCrystals_, and vetoClusteredEcalHits_.

Referenced by PhotonProducer::fillPhotonCollection().

151  {
152  //Get fiducial flags. This does not really belong here
153  bool isEBPho = false;
154  bool isEEPho = false;
155  bool isEBEtaGap = false;
156  bool isEBPhiGap = false;
157  bool isEERingGap = false;
158  bool isEEDeeGap = false;
159  bool isEBEEGap = false;
160  classify(pho, isEBPho, isEEPho, isEBEtaGap, isEBPhiGap, isEERingGap, isEEDeeGap, isEBEEGap);
161  phofid.isEB = isEBPho;
162  phofid.isEE = isEEPho;
163  phofid.isEBEtaGap = isEBEtaGap;
164  phofid.isEBPhiGap = isEBPhiGap;
165  phofid.isEERingGap = isEERingGap;
166  phofid.isEEDeeGap = isEEDeeGap;
167  phofid.isEBEEGap = isEBEEGap;
168 
169  auto const& caloGeometry = es.getData(caloGeometryToken_);
170  auto const& hcalTopology = &es.getData(hcalTopologyToken_);
171  auto const& hcalChannelQuality = &es.getData(hcalChannelQualityToken_);
172  auto const& hcalSevLvlComputer = &es.getData(hcalSevLvlComputerToken_);
173  auto const& towerMap = es.getData(towerMapToken_);
174 
175  // Calculate isolation variables. cone sizes and thresholds
176  // are set for Barrel and endcap separately
177 
178  reco::SuperClusterRef scRef = pho->superCluster();
179  const reco::BasicCluster& seedCluster = *(scRef->seed());
180  DetId seedXtalId = seedCluster.hitsAndFractions()[0].first;
181  int detector = seedXtalId.subdetId();
182 
183  //Isolation parameters variables
184  double photonEcalRecHitConeInnerRadiusA_;
185  double photonEcalRecHitConeOuterRadiusA_;
186  double photonEcalRecHitEtaSliceA_;
187  double photonEcalRecHitThreshEA_;
188  double photonEcalRecHitThreshEtA_;
189  double trackConeOuterRadiusA_;
190  double trackConeInnerRadiusA_;
191  double isolationtrackThresholdA_;
192  double isolationtrackEtaSliceA_;
193  double trackLipRadiusA_;
194  double trackD0RadiusA_;
195  double photonEcalRecHitConeInnerRadiusB_;
196  double photonEcalRecHitConeOuterRadiusB_;
197  double photonEcalRecHitEtaSliceB_;
198  double photonEcalRecHitThreshEB_;
199  double photonEcalRecHitThreshEtB_;
200  double trackConeOuterRadiusB_;
201  double trackConeInnerRadiusB_;
202  double isolationtrackThresholdB_;
203  double isolationtrackEtaSliceB_;
204  double trackLipRadiusB_;
205  double trackD0RadiusB_;
206 
207  if (detector == EcalBarrel) {
208  trackConeOuterRadiusA_ = trkIsoBarrelRadiusA_[0];
209  trackConeInnerRadiusA_ = trkIsoBarrelRadiusA_[1];
210  isolationtrackThresholdA_ = trkIsoBarrelRadiusA_[2];
211  trackLipRadiusA_ = trkIsoBarrelRadiusA_[3];
212  trackD0RadiusA_ = trkIsoBarrelRadiusA_[4];
213  isolationtrackEtaSliceA_ = trkIsoBarrelRadiusA_[5];
214 
215  photonEcalRecHitConeInnerRadiusA_ = ecalIsoBarrelRadiusA_[0];
216  photonEcalRecHitConeOuterRadiusA_ = ecalIsoBarrelRadiusA_[1];
217  photonEcalRecHitEtaSliceA_ = ecalIsoBarrelRadiusA_[2];
218  photonEcalRecHitThreshEA_ = ecalIsoBarrelRadiusA_[3];
219  photonEcalRecHitThreshEtA_ = ecalIsoBarrelRadiusA_[4];
220 
221  trackConeOuterRadiusB_ = trkIsoBarrelRadiusB_[0];
222  trackConeInnerRadiusB_ = trkIsoBarrelRadiusB_[1];
223  isolationtrackThresholdB_ = trkIsoBarrelRadiusB_[2];
224  trackLipRadiusB_ = trkIsoBarrelRadiusB_[3];
225  trackD0RadiusB_ = trkIsoBarrelRadiusB_[4];
226  isolationtrackEtaSliceB_ = trkIsoBarrelRadiusB_[5];
227 
228  photonEcalRecHitConeInnerRadiusB_ = ecalIsoBarrelRadiusB_[0];
229  photonEcalRecHitConeOuterRadiusB_ = ecalIsoBarrelRadiusB_[1];
230  photonEcalRecHitEtaSliceB_ = ecalIsoBarrelRadiusB_[2];
231  photonEcalRecHitThreshEB_ = ecalIsoBarrelRadiusB_[3];
232  photonEcalRecHitThreshEtB_ = ecalIsoBarrelRadiusB_[4];
233  } else {
234  // detector==EcalEndcap
235 
236  trackConeOuterRadiusA_ = trkIsoEndcapRadiusA_[0];
237  trackConeInnerRadiusA_ = trkIsoEndcapRadiusA_[1];
238  isolationtrackThresholdA_ = trkIsoEndcapRadiusA_[2];
239  trackLipRadiusA_ = trkIsoEndcapRadiusA_[3];
240  trackD0RadiusA_ = trkIsoEndcapRadiusA_[4];
241  isolationtrackEtaSliceA_ = trkIsoEndcapRadiusA_[5];
242 
243  photonEcalRecHitConeInnerRadiusA_ = ecalIsoEndcapRadiusA_[0];
244  photonEcalRecHitConeOuterRadiusA_ = ecalIsoEndcapRadiusA_[1];
245  photonEcalRecHitEtaSliceA_ = ecalIsoEndcapRadiusA_[2];
246  photonEcalRecHitThreshEA_ = ecalIsoEndcapRadiusA_[3];
247  photonEcalRecHitThreshEtA_ = ecalIsoEndcapRadiusA_[4];
248 
249  trackConeOuterRadiusB_ = trkIsoEndcapRadiusB_[0];
250  trackConeInnerRadiusB_ = trkIsoEndcapRadiusB_[1];
251  isolationtrackThresholdB_ = trkIsoEndcapRadiusB_[2];
252  trackLipRadiusB_ = trkIsoEndcapRadiusB_[3];
253  trackD0RadiusB_ = trkIsoEndcapRadiusB_[4];
254  isolationtrackEtaSliceB_ = trkIsoEndcapRadiusB_[5];
255 
256  photonEcalRecHitConeInnerRadiusB_ = ecalIsoEndcapRadiusB_[0];
257  photonEcalRecHitConeOuterRadiusB_ = ecalIsoEndcapRadiusB_[1];
258  photonEcalRecHitEtaSliceB_ = ecalIsoEndcapRadiusB_[2];
259  photonEcalRecHitThreshEB_ = ecalIsoEndcapRadiusB_[3];
260  photonEcalRecHitThreshEtB_ = ecalIsoEndcapRadiusB_[4];
261  }
262 
263  //Calculate hollow cone track isolation, CONE A
264  int ntrkA = 0;
265  double trkisoA = 0;
266  calculateTrackIso(pho,
267  e,
268  trkisoA,
269  ntrkA,
270  isolationtrackThresholdA_,
271  trackConeOuterRadiusA_,
272  trackConeInnerRadiusA_,
273  isolationtrackEtaSliceA_,
274  trackLipRadiusA_,
275  trackD0RadiusA_);
276 
277  //Calculate solid cone track isolation, CONE A
278  int sntrkA = 0;
279  double strkisoA = 0;
280  calculateTrackIso(pho,
281  e,
282  strkisoA,
283  sntrkA,
284  isolationtrackThresholdA_,
285  trackConeOuterRadiusA_,
286  0.,
287  isolationtrackEtaSliceA_,
288  trackLipRadiusA_,
289  trackD0RadiusA_);
290 
291  phoisolR1.nTrkHollowCone = ntrkA;
292  phoisolR1.trkSumPtHollowCone = trkisoA;
293  phoisolR1.nTrkSolidCone = sntrkA;
294  phoisolR1.trkSumPtSolidCone = strkisoA;
295 
296  //Calculate hollow cone track isolation, CONE B
297  int ntrkB = 0;
298  double trkisoB = 0;
299  calculateTrackIso(pho,
300  e,
301  trkisoB,
302  ntrkB,
303  isolationtrackThresholdB_,
304  trackConeOuterRadiusB_,
305  trackConeInnerRadiusB_,
306  isolationtrackEtaSliceB_,
307  trackLipRadiusB_,
308  trackD0RadiusB_);
309 
310  //Calculate solid cone track isolation, CONE B
311  int sntrkB = 0;
312  double strkisoB = 0;
313  calculateTrackIso(pho,
314  e,
315  strkisoB,
316  sntrkB,
317  isolationtrackThresholdB_,
318  trackConeOuterRadiusB_,
319  0.,
320  isolationtrackEtaSliceB_,
321  trackLipRadiusB_,
322  trackD0RadiusB_);
323 
324  phoisolR2.nTrkHollowCone = ntrkB;
325  phoisolR2.trkSumPtHollowCone = trkisoB;
326  phoisolR2.nTrkSolidCone = sntrkB;
327  phoisolR2.trkSumPtSolidCone = strkisoB;
328 
329  // std::cout << "Output from solid cone track isolation: ";
330  // std::cout << " Sum pT: " << strkiso << " ntrk: " << sntrk << std::endl;
331 
332  double EcalRecHitIsoA = calculateEcalRecHitIso(pho,
333  e,
334  es,
335  photonEcalRecHitConeOuterRadiusA_,
336  photonEcalRecHitConeInnerRadiusA_,
337  photonEcalRecHitEtaSliceA_,
338  photonEcalRecHitThreshEA_,
339  photonEcalRecHitThreshEtA_,
342  phoisolR1.ecalRecHitSumEt = EcalRecHitIsoA;
343 
344  double EcalRecHitIsoB = calculateEcalRecHitIso(pho,
345  e,
346  es,
347  photonEcalRecHitConeOuterRadiusB_,
348  photonEcalRecHitConeInnerRadiusB_,
349  photonEcalRecHitEtaSliceB_,
350  photonEcalRecHitThreshEB_,
351  photonEcalRecHitThreshEtB_,
354  phoisolR2.ecalRecHitSumEt = EcalRecHitIsoB;
355 
356  if (not hbheRecHitsTag_.isUninitialized()) {
357  auto const& hbheRecHits = e.get(hbheRecHitsTag_);
358 
359  auto fcone = [this,
360  pho,
361  &caloGeometry,
362  &hcalTopo = *hcalTopology,
363  &hcalQual = *hcalChannelQuality,
364  &hcalSev = *hcalSevLvlComputer,
365  &towerMap,
366  &hbheRecHits,
367  hcalCuts](double outer, double inner, int depth) {
368  return calculateHcalRecHitIso<false>(
369  pho, caloGeometry, hcalTopo, hcalQual, hcalSev, towerMap, hbheRecHits, outer, inner, depth, hcalCuts);
370  };
371 
372  auto fbc = [this,
373  pho,
374  &caloGeometry,
375  &hcalTopo = *hcalTopology,
376  &hcalQual = *hcalChannelQuality,
377  &hcalSev = *hcalSevLvlComputer,
378  &towerMap,
379  &hbheRecHits,
380  hcalCuts](double outer, int depth) {
381  return calculateHcalRecHitIso<true>(
382  pho, caloGeometry, hcalTopo, hcalQual, hcalSev, towerMap, hbheRecHits, outer, 0., depth, hcalCuts);
383  };
384 
385  for (size_t id = 0; id < phoisolR1.hcalRecHitSumEt.size(); ++id) {
386  const auto& outerA = detector == EcalBarrel ? hcalIsoOuterRadAEB_[id] : hcalIsoOuterRadAEE_[id];
387  const auto& outerB = detector == EcalBarrel ? hcalIsoOuterRadBEB_[id] : hcalIsoOuterRadBEE_[id];
388  const auto& innerA = detector == EcalBarrel ? hcalIsoInnerRadAEB_[id] : hcalIsoInnerRadAEE_[id];
389  const auto& innerB = detector == EcalBarrel ? hcalIsoInnerRadBEB_[id] : hcalIsoInnerRadBEE_[id];
390 
391  phoisolR1.hcalRecHitSumEt[id] = fcone(outerA, innerA, id + 1);
392  phoisolR2.hcalRecHitSumEt[id] = fcone(outerB, innerB, id + 1);
393 
394  phoisolR1.hcalRecHitSumEtBc[id] = fbc(outerA, id + 1);
395  phoisolR2.hcalRecHitSumEtBc[id] = fbc(outerB, id + 1);
396  }
397  }
398 
399  phoisolR1.pre7DepthHcal = false;
400  phoisolR2.pre7DepthHcal = false;
401 }
std::array< double, 7 > hcalIsoInnerRadBEB_
std::array< double, 6 > trkIsoBarrelRadiusA_
const std::vector< std::pair< DetId, float > > & hitsAndFractions() const
Definition: CaloCluster.h:209
T const & getData(const ESGetToken< T, R > &iToken) const noexcept(false)
Definition: EventSetup.h:119
edm::ESGetToken< CaloGeometry, CaloGeometryRecord > caloGeometryToken_
edm::EDGetTokenT< HBHERecHitCollection > hbheRecHitsTag_
reco::SuperClusterRef superCluster() const override
Ref to SuperCluster.
std::array< double, 7 > hcalIsoOuterRadAEE_
std::array< double, 7 > hcalIsoInnerRadAEE_
std::array< double, 7 > hcalIsoOuterRadBEE_
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
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector&#39;s numbering enum) ...
Definition: DetId.h:48
std::array< double, 7 > hcalIsoOuterRadAEB_
std::array< double, 6 > trkIsoEndcapRadiusB_
Definition: DetId.h:17
cc *****************************************************cc the common blocks pinput and cwdidth are for input parameters cc these parameters needed to be interfaced to other program common pinput fbc
Definition: inclcon.h:4
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
std::array< double, 5 > ecalIsoBarrelRadiusA_
edm::ESGetToken< HcalTopology, HcalRecNumberingRecord > hcalTopologyToken_
edm::ESGetToken< HcalSeverityLevelComputer, HcalSeverityLevelComputerRcd > hcalSevLvlComputerToken_
std::array< double, 7 > hcalIsoInnerRadBEE_
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_

◆ calculateEcalRecHitIso()

double PhotonIsolationCalculator::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
private

Definition at line 487 of file PhotonIsolationCalculator.cc.

References barrelecalCollection_, caloGeometryToken_, EgammaRecHitIsolation::doFlagChecks(), EgammaRecHitIsolation::doSeverityChecks(), DetId::Ecal, ecalSevLvlToken_, photonAnalyzer_cfi::eMin, endcapecalCollection_, photonAnalyzer_cfi::etMin, flagsEB_, flagsEE_, edm::EventSetup::getData(), EgammaRecHitIsolation::getEtSum(), edm::EventSetup::getHandle(), iEvent, displacedMuons_cfi::photon, edm::Handle< T >::product(), EgammaRecHitIsolation::setUseNumCrystals(), EgammaRecHitIsolation::setVetoClustered(), severityExclEB_, and severityExclEE_.

Referenced by calculate().

496  {
497  edm::Handle<EcalRecHitCollection> ecalhitsCollEB;
498  edm::Handle<EcalRecHitCollection> ecalhitsCollEE;
499  iEvent.getByToken(endcapecalCollection_, ecalhitsCollEE);
500 
501  iEvent.getByToken(barrelecalCollection_, ecalhitsCollEB);
502 
503  const EcalRecHitCollection* rechitsCollectionEE_ = ecalhitsCollEE.product();
504  const EcalRecHitCollection* rechitsCollectionEB_ = ecalhitsCollEB.product();
505 
506  const EcalSeverityLevelAlgo* sevLevel = &iSetup.getData(ecalSevLvlToken_);
507 
509 
510  EgammaRecHitIsolation phoIsoEB(
511  RCone, RConeInner, etaSlice, etMin, eMin, geoHandle, *rechitsCollectionEB_, sevLevel, DetId::Ecal);
512 
513  phoIsoEB.setVetoClustered(vetoClusteredHits);
514  phoIsoEB.setUseNumCrystals(useNumXtals);
515  phoIsoEB.doSeverityChecks(ecalhitsCollEB.product(), severityExclEB_);
516  phoIsoEB.doFlagChecks(flagsEB_);
517  double ecalIsolEB = phoIsoEB.getEtSum(photon);
518 
519  EgammaRecHitIsolation phoIsoEE(
520  RCone, RConeInner, etaSlice, etMin, eMin, geoHandle, *rechitsCollectionEE_, sevLevel, DetId::Ecal);
521 
522  phoIsoEE.setVetoClustered(vetoClusteredHits);
523  phoIsoEE.setUseNumCrystals(useNumXtals);
524  phoIsoEE.doSeverityChecks(ecalhitsCollEE.product(), severityExclEE_);
525  phoIsoEE.doFlagChecks(flagsEE_);
526 
527  double ecalIsolEE = phoIsoEE.getEtSum(photon);
528  // delete phoIso;
529  double ecalIsol = ecalIsolEB + ecalIsolEE;
530 
531  return ecalIsol;
532 }
T const & getData(const ESGetToken< T, R > &iToken) const noexcept(false)
Definition: EventSetup.h:119
T const * product() const
Definition: Handle.h:70
edm::ESGetToken< EcalSeverityLevelAlgo, EcalSeverityLevelAlgoRcd > ecalSevLvlToken_
edm::ESGetToken< CaloGeometry, CaloGeometryRecord > caloGeometryToken_
int iEvent
Definition: GenABIO.cc:224
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
Definition: EventSetup.h:130

◆ calculateHcalRecHitIso()

template<bool isoBC>
double PhotonIsolationCalculator::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
private

Definition at line 535 of file PhotonIsolationCalculator.cc.

References hcalRecHitTable_cff::depth, ecalDrivenElectronSeeds_cfi::hbheRecHits, hcalIsoEThresHB_, hcalIsoEThresHE_, EgammaHcalIsolation::isBehindClusterSeed, maxHcalSeverity_, displacedMuons_cfi::photon, and EgammaHcalIsolation::withinConeAroundCluster.

545  {
546  const EgammaHcalIsolation::arrayHB e04{{0., 0., 0., 0.}};
547  const EgammaHcalIsolation::arrayHE e07{{0., 0., 0., 0., 0., 0., 0.}};
548 
549  if constexpr (isoBC) {
551  RCone,
553  RConeInner,
555  e04,
558  e07,
560  hbheRecHits,
561  geometry,
562  hcalTopology,
563  hcalChStatus,
564  hcalSevLvlComputer,
565  towerMap);
566 
567  return hcaliso.getHcalEtSumBc(photon, depth, hcalCuts);
568  } else {
570  RCone,
572  RConeInner,
574  e04,
577  e07,
579  hbheRecHits,
580  geometry,
581  hcalTopology,
582  hcalChStatus,
583  hcalSevLvlComputer,
584  towerMap);
585 
586  return hcaliso.getHcalEtSum(photon, depth, hcalCuts);
587  }
588 }
EgammaHcalIsolation::arrayHE hcalIsoEThresHE_
EgammaHcalIsolation::arrayHB hcalIsoEThresHB_
std::array< double, 4 > arrayHB
std::array< double, 7 > arrayHE

◆ calculateTrackIso()

void PhotonIsolationCalculator::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
private

Definition at line 448 of file PhotonIsolationCalculator.cc.

References beamSpotProducerTag_, d0, MillePedeFileConverter_cfg::e, PhotonTkIsolation::getIso(), qcdUeDQM_cfi::lip, displacedMuons_cfi::photon, JetHT_cfg::trackCollection, trackInputTag_, DiMuonV_cfg::tracks, reco::BeamSpot::x0(), reco::BeamSpot::y0(), and reco::BeamSpot::z0().

Referenced by calculate().

457  {
458  ntrkCone = 0;
459  trkCone = 0;
460  //get the tracks
462  e.getByToken(trackInputTag_, tracks);
463  if (!tracks.isValid()) {
464  return;
465  }
466  const reco::TrackCollection* trackCollection = tracks.product();
467  //Photon Eta and Phi. Hope these are correct.
468  reco::BeamSpot vertexBeamSpot;
469  edm::Handle<reco::BeamSpot> recoBeamSpotHandle;
470  e.getByToken(beamSpotProducerTag_, recoBeamSpotHandle);
471  vertexBeamSpot = *recoBeamSpotHandle;
472 
473  PhotonTkIsolation phoIso(RCone,
474  RinnerCone,
475  etaSlice,
476  pTThresh,
477  lip,
478  d0,
480  math::XYZPoint(vertexBeamSpot.x0(), vertexBeamSpot.y0(), vertexBeamSpot.z0()));
481 
482  std::pair<int, double> res = phoIso.getIso(photon);
483  ntrkCone = res.first;
484  trkCone = res.second;
485 }
std::vector< Track > TrackCollection
collection of Tracks
Definition: TrackFwd.h:14
Definition: Electron.h:6
double x0() const
x coordinate
Definition: BeamSpot.h:61
double y0() const
y coordinate
Definition: BeamSpot.h:63
trackCollection
Definition: JetHT_cfg.py:51
static constexpr float d0
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:12
double z0() const
z coordinate
Definition: BeamSpot.h:65

◆ classify()

void PhotonIsolationCalculator::classify ( const reco::Photon photon,
bool &  isEBPho,
bool &  isEEPho,
bool &  isEBEtaGap,
bool &  isEBPhiGap,
bool &  isEERingGap,
bool &  isEEDeeGap,
bool &  isEBEEGap 
)
staticprivate

Definition at line 403 of file PhotonIsolationCalculator.cc.

References hgcalTestNeighbor_cfi::detector, EcalBarrel, EcalEndcap, PVValHelper::eta, JetMETHLTOfflineSource_cfi::feta, reco::CaloCluster::hitsAndFractions(), EEDetId::isNextToDBoundary(), EBDetId::isNextToEtaBoundary(), EBDetId::isNextToPhiBoundary(), EEDetId::isNextToRingBoundary(), displacedMuons_cfi::photon, and DetId::subdetId().

Referenced by calculate().

410  {
411  const reco::CaloCluster& seedCluster = *(photon->superCluster()->seed());
412  // following line is temporary until the D. Evans or F. Ferri submit the new tag for ClusterAlgos
413  // DEfinitive will be
414  // DetId seedXtalId = scRef->seed()->seed();
415  DetId seedXtalId = seedCluster.hitsAndFractions()[0].first;
416  int detector = seedXtalId.subdetId();
417 
418  //Set fiducial flags for this photon.
419  double eta = photon->superCluster()->position().eta();
420  double feta = fabs(eta);
421 
422  if (detector == EcalBarrel) {
423  isEBPho = true;
424  if (EBDetId::isNextToEtaBoundary(EBDetId(seedXtalId))) {
425  if (fabs(feta - 1.479) < .1)
426  isEBEEGap = true;
427  else
428  isEBEtaGap = true;
429  }
430 
431  if (EBDetId::isNextToPhiBoundary(EBDetId(seedXtalId)))
432  isEBPhiGap = true;
433 
434  } else if (detector == EcalEndcap) {
435  isEEPho = true;
436  if (EEDetId::isNextToRingBoundary(EEDetId(seedXtalId))) {
437  if (fabs(feta - 1.479) < .1)
438  isEBEEGap = true;
439  else
440  isEERingGap = true;
441  }
442 
443  if (EEDetId::isNextToDBoundary(EEDetId(seedXtalId)))
444  isEEDeeGap = true;
445  }
446 }
static bool isNextToEtaBoundary(EBDetId id)
Definition: EBDetId.cc:108
const std::vector< std::pair< DetId, float > > & hitsAndFractions() const
Definition: CaloCluster.h:209
static bool isNextToPhiBoundary(EBDetId id)
Definition: EBDetId.cc:113
static bool isNextToRingBoundary(EEDetId id)
Definition: EEDetId.cc:284
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector&#39;s numbering enum) ...
Definition: DetId.h:48
static bool isNextToDBoundary(EEDetId id)
Definition: EEDetId.cc:279
Definition: DetId.h:17

◆ setup()

void PhotonIsolationCalculator::setup ( 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 
)

Isolation parameters for barrel and for two different cone sizes

Isolation parameters for Endcap and for two different cone sizes

Definition at line 29 of file PhotonIsolationCalculator.cc.

References barrelecalCollection_, beamSpotProducerTag_, caloGeometryToken_, ecalIsoBarrelRadiusA_, ecalIsoBarrelRadiusB_, ecalIsoEndcapRadiusA_, ecalIsoEndcapRadiusB_, ecalSevLvlToken_, endcapecalCollection_, flagsEB_, flagsEE_, edm::ParameterSet::getParameter(), hbheRecHitsTag_, hcalChannelQualityToken_, hcalIsoEThresHB_, hcalIsoEThresHE_, hcalIsoInnerRadAEB_, hcalIsoInnerRadAEE_, hcalIsoInnerRadBEB_, hcalIsoInnerRadBEE_, hcalIsoOuterRadAEB_, hcalIsoOuterRadAEE_, hcalIsoOuterRadBEB_, hcalIsoOuterRadBEE_, hcalSevLvlComputerToken_, hcalTopologyToken_, mps_fire::i, maxHcalSeverity_, moduleEtaBoundary_, modulePhiBoundary_, severityExclEB_, severityExclEE_, towerMapToken_, trackInputTag_, trkIsoBarrelRadiusA_, trkIsoBarrelRadiusB_, trkIsoEndcapRadiusA_, trkIsoEndcapRadiusB_, useNumCrystals_, and vetoClusteredEcalHits_.

Referenced by PhotonProducer::PhotonProducer().

34  {
38  iC.consumes<EcalRecHitCollection>(conf.getParameter<edm::InputTag>("barrelEcalRecHitCollection"));
40  iC.consumes<EcalRecHitCollection>(conf.getParameter<edm::InputTag>("endcapEcalRecHitCollection"));
41 
42  auto hbhetag = conf.getParameter<edm::InputTag>("HBHERecHitCollection");
43  if (not hbhetag.label().empty())
45 
50  towerMapToken_ = decltype(towerMapToken_){iC.esConsumes()};
52 
53  // gsfRecoInputTag_ = conf.getParameter<edm::InputTag>("GsfRecoCollection");
54  modulePhiBoundary_ = conf.getParameter<double>("modulePhiBoundary");
55  moduleEtaBoundary_ = conf.getParameter<std::vector<double>>("moduleEtaBoundary");
56  //
57  vetoClusteredEcalHits_ = conf.getParameter<bool>("vetoClustered");
58  useNumCrystals_ = conf.getParameter<bool>("useNumCrystals");
59 
61  int i = 0;
62  trkIsoBarrelRadiusA_[i++] = (conf.getParameter<double>("TrackConeOuterRadiusA_Barrel"));
63  trkIsoBarrelRadiusA_[i++] = (conf.getParameter<double>("TrackConeInnerRadiusA_Barrel"));
64  trkIsoBarrelRadiusA_[i++] = (conf.getParameter<double>("isolationtrackThresholdA_Barrel"));
65  trkIsoBarrelRadiusA_[i++] = (conf.getParameter<double>("longImpactParameterA_Barrel"));
66  trkIsoBarrelRadiusA_[i++] = (conf.getParameter<double>("transImpactParameterA_Barrel"));
67  trkIsoBarrelRadiusA_[i++] = (conf.getParameter<double>("isolationtrackEtaSliceA_Barrel"));
68 
69  i = 0;
70  ecalIsoBarrelRadiusA_[i++] = (conf.getParameter<double>("EcalRecHitInnerRadiusA_Barrel"));
71  ecalIsoBarrelRadiusA_[i++] = (conf.getParameter<double>("EcalRecHitOuterRadiusA_Barrel"));
72  ecalIsoBarrelRadiusA_[i++] = (conf.getParameter<double>("EcalRecHitEtaSliceA_Barrel"));
73  ecalIsoBarrelRadiusA_[i++] = (conf.getParameter<double>("EcalRecHitThreshEA_Barrel"));
74  ecalIsoBarrelRadiusA_[i++] = (conf.getParameter<double>("EcalRecHitThreshEtA_Barrel"));
75 
76  hcalIsoInnerRadAEB_ = conf.getParameter<std::array<double, 7>>("HcalRecHitInnerRadiusA_Barrel");
77  hcalIsoOuterRadAEB_ = conf.getParameter<std::array<double, 7>>("HcalRecHitOuterRadiusA_Barrel");
78 
79  i = 0;
80  trkIsoBarrelRadiusB_[i++] = (conf.getParameter<double>("TrackConeOuterRadiusB_Barrel"));
81  trkIsoBarrelRadiusB_[i++] = (conf.getParameter<double>("TrackConeInnerRadiusB_Barrel"));
82  trkIsoBarrelRadiusB_[i++] = (conf.getParameter<double>("isolationtrackThresholdB_Barrel"));
83  trkIsoBarrelRadiusB_[i++] = (conf.getParameter<double>("longImpactParameterB_Barrel"));
84  trkIsoBarrelRadiusB_[i++] = (conf.getParameter<double>("transImpactParameterB_Barrel"));
85  trkIsoBarrelRadiusB_[i++] = (conf.getParameter<double>("isolationtrackEtaSliceB_Barrel"));
86 
87  i = 0;
88  ecalIsoBarrelRadiusB_[i++] = (conf.getParameter<double>("EcalRecHitInnerRadiusB_Barrel"));
89  ecalIsoBarrelRadiusB_[i++] = (conf.getParameter<double>("EcalRecHitOuterRadiusB_Barrel"));
90  ecalIsoBarrelRadiusB_[i++] = (conf.getParameter<double>("EcalRecHitEtaSliceB_Barrel"));
91  ecalIsoBarrelRadiusB_[i++] = (conf.getParameter<double>("EcalRecHitThreshEB_Barrel"));
92  ecalIsoBarrelRadiusB_[i++] = (conf.getParameter<double>("EcalRecHitThreshEtB_Barrel"));
93 
94  hcalIsoInnerRadBEB_ = conf.getParameter<std::array<double, 7>>("HcalRecHitInnerRadiusB_Barrel");
95  hcalIsoOuterRadBEB_ = conf.getParameter<std::array<double, 7>>("HcalRecHitOuterRadiusB_Barrel");
96 
98  i = 0;
99  trkIsoEndcapRadiusA_[i++] = (conf.getParameter<double>("TrackConeOuterRadiusA_Endcap"));
100  trkIsoEndcapRadiusA_[i++] = (conf.getParameter<double>("TrackConeInnerRadiusA_Endcap"));
101  trkIsoEndcapRadiusA_[i++] = (conf.getParameter<double>("isolationtrackThresholdA_Endcap"));
102  trkIsoEndcapRadiusA_[i++] = (conf.getParameter<double>("longImpactParameterA_Endcap"));
103  trkIsoEndcapRadiusA_[i++] = (conf.getParameter<double>("transImpactParameterA_Endcap"));
104  trkIsoEndcapRadiusA_[i++] = (conf.getParameter<double>("isolationtrackEtaSliceA_Endcap"));
105 
106  i = 0;
107  ecalIsoEndcapRadiusA_[i++] = (conf.getParameter<double>("EcalRecHitInnerRadiusA_Endcap"));
108  ecalIsoEndcapRadiusA_[i++] = (conf.getParameter<double>("EcalRecHitOuterRadiusA_Endcap"));
109  ecalIsoEndcapRadiusA_[i++] = (conf.getParameter<double>("EcalRecHitEtaSliceA_Endcap"));
110  ecalIsoEndcapRadiusA_[i++] = (conf.getParameter<double>("EcalRecHitThreshEA_Endcap"));
111  ecalIsoEndcapRadiusA_[i++] = (conf.getParameter<double>("EcalRecHitThreshEtA_Endcap"));
112 
113  hcalIsoInnerRadAEE_ = conf.getParameter<std::array<double, 7>>("HcalRecHitInnerRadiusA_Endcap");
114  hcalIsoOuterRadAEE_ = conf.getParameter<std::array<double, 7>>("HcalRecHitOuterRadiusA_Endcap");
115 
116  i = 0;
117  trkIsoEndcapRadiusB_[i++] = (conf.getParameter<double>("TrackConeOuterRadiusB_Endcap"));
118  trkIsoEndcapRadiusB_[i++] = (conf.getParameter<double>("TrackConeInnerRadiusB_Endcap"));
119  trkIsoEndcapRadiusB_[i++] = (conf.getParameter<double>("isolationtrackThresholdB_Endcap"));
120  trkIsoEndcapRadiusB_[i++] = (conf.getParameter<double>("longImpactParameterB_Endcap"));
121  trkIsoEndcapRadiusB_[i++] = (conf.getParameter<double>("transImpactParameterB_Endcap"));
122  trkIsoEndcapRadiusB_[i++] = (conf.getParameter<double>("isolationtrackEtaSliceB_Endcap"));
123 
124  i = 0;
125  ecalIsoEndcapRadiusB_[i++] = (conf.getParameter<double>("EcalRecHitInnerRadiusB_Endcap"));
126  ecalIsoEndcapRadiusB_[i++] = (conf.getParameter<double>("EcalRecHitOuterRadiusB_Endcap"));
127  ecalIsoEndcapRadiusB_[i++] = (conf.getParameter<double>("EcalRecHitEtaSliceB_Endcap"));
128  ecalIsoEndcapRadiusB_[i++] = (conf.getParameter<double>("EcalRecHitThreshEB_Endcap"));
129  ecalIsoEndcapRadiusB_[i++] = (conf.getParameter<double>("EcalRecHitThreshEtB_Endcap"));
130 
131  hcalIsoInnerRadBEE_ = conf.getParameter<std::array<double, 7>>("HcalRecHitInnerRadiusB_Endcap");
132  hcalIsoOuterRadBEE_ = conf.getParameter<std::array<double, 7>>("HcalRecHitOuterRadiusB_Endcap");
133 
134  //Pick up the variables for the spike removal
135  flagsEB_ = flagsEB;
136  flagsEE_ = flagsEE;
137  severityExclEB_ = severitiesEB;
138  severityExclEE_ = severitiesEE;
139 
140  hcalIsoEThresHB_ = conf.getParameter<EgammaHcalIsolation::arrayHB>("recHitEThresholdHB");
141  hcalIsoEThresHE_ = conf.getParameter<EgammaHcalIsolation::arrayHE>("recHitEThresholdHE");
142  maxHcalSeverity_ = conf.getParameter<int>("maxHcalRecHitSeverity");
143 }
std::array< double, 7 > hcalIsoInnerRadBEB_
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
T getParameter(std::string const &) const
Definition: ParameterSet.h:307
std::array< double, 6 > trkIsoBarrelRadiusA_
EgammaHcalIsolation::arrayHE hcalIsoEThresHE_
edm::ESGetToken< EcalSeverityLevelAlgo, EcalSeverityLevelAlgoRcd > ecalSevLvlToken_
std::vector< Track > TrackCollection
collection of Tracks
Definition: TrackFwd.h:14
edm::ESGetToken< CaloGeometry, CaloGeometryRecord > caloGeometryToken_
edm::EDGetTokenT< HBHERecHitCollection > hbheRecHitsTag_
std::array< double, 7 > hcalIsoOuterRadAEE_
std::array< double, 7 > hcalIsoInnerRadAEE_
std::array< double, 7 > hcalIsoOuterRadBEE_
std::array< double, 5 > ecalIsoEndcapRadiusB_
std::array< double, 7 > hcalIsoOuterRadAEB_
std::array< double, 6 > trkIsoEndcapRadiusB_
EgammaHcalIsolation::arrayHB hcalIsoEThresHB_
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_
std::array< double, 5 > ecalIsoBarrelRadiusA_
edm::ESGetToken< HcalTopology, HcalRecNumberingRecord > hcalTopologyToken_
std::vector< double > moduleEtaBoundary_
edm::ESGetToken< HcalSeverityLevelComputer, HcalSeverityLevelComputerRcd > hcalSevLvlComputerToken_
std::array< double, 7 > hcalIsoInnerRadBEE_
std::array< double, 4 > arrayHB
std::array< double, 7 > hcalIsoOuterRadBEB_
std::array< double, 7 > hcalIsoInnerRadAEB_
std::array< double, 6 > trkIsoEndcapRadiusA_
std::array< double, 7 > arrayHE

Member Data Documentation

◆ barrelecalCollection_

edm::EDGetToken PhotonIsolationCalculator::barrelecalCollection_
private

Definition at line 98 of file PhotonIsolationCalculator.h.

Referenced by calculateEcalRecHitIso(), and setup().

◆ beamSpotProducerTag_

edm::EDGetToken PhotonIsolationCalculator::beamSpotProducerTag_
private

Definition at line 110 of file PhotonIsolationCalculator.h.

Referenced by calculateTrackIso(), and setup().

◆ caloGeometryToken_

edm::ESGetToken<CaloGeometry, CaloGeometryRecord> PhotonIsolationCalculator::caloGeometryToken_
private

Definition at line 102 of file PhotonIsolationCalculator.h.

Referenced by calculate(), calculateEcalRecHitIso(), and setup().

◆ ecalIsoBarrelRadiusA_

std::array<double, 5> PhotonIsolationCalculator::ecalIsoBarrelRadiusA_
private

Definition at line 117 of file PhotonIsolationCalculator.h.

Referenced by calculate(), and setup().

◆ ecalIsoBarrelRadiusB_

std::array<double, 5> PhotonIsolationCalculator::ecalIsoBarrelRadiusB_
private

Definition at line 119 of file PhotonIsolationCalculator.h.

Referenced by calculate(), and setup().

◆ ecalIsoEndcapRadiusA_

std::array<double, 5> PhotonIsolationCalculator::ecalIsoEndcapRadiusA_
private

Definition at line 122 of file PhotonIsolationCalculator.h.

Referenced by calculate(), and setup().

◆ ecalIsoEndcapRadiusB_

std::array<double, 5> PhotonIsolationCalculator::ecalIsoEndcapRadiusB_
private

Definition at line 124 of file PhotonIsolationCalculator.h.

Referenced by calculate(), and setup().

◆ ecalSevLvlToken_

edm::ESGetToken<EcalSeverityLevelAlgo, EcalSeverityLevelAlgoRcd> PhotonIsolationCalculator::ecalSevLvlToken_
private

Definition at line 107 of file PhotonIsolationCalculator.h.

Referenced by calculateEcalRecHitIso(), and setup().

◆ endcapecalCollection_

edm::EDGetToken PhotonIsolationCalculator::endcapecalCollection_
private

Definition at line 99 of file PhotonIsolationCalculator.h.

Referenced by calculateEcalRecHitIso(), and setup().

◆ flagsEB_

std::vector<int> PhotonIsolationCalculator::flagsEB_
private

Definition at line 142 of file PhotonIsolationCalculator.h.

Referenced by calculateEcalRecHitIso(), and setup().

◆ flagsEE_

std::vector<int> PhotonIsolationCalculator::flagsEE_
private

Definition at line 143 of file PhotonIsolationCalculator.h.

Referenced by calculateEcalRecHitIso(), and setup().

◆ hbheRecHitsTag_

edm::EDGetTokenT<HBHERecHitCollection> PhotonIsolationCalculator::hbheRecHitsTag_
private

Definition at line 100 of file PhotonIsolationCalculator.h.

Referenced by calculate(), and setup().

◆ hcalChannelQualityToken_

edm::ESGetToken<HcalChannelQuality, HcalChannelQualityRcd> PhotonIsolationCalculator::hcalChannelQualityToken_
private

Definition at line 104 of file PhotonIsolationCalculator.h.

Referenced by calculate(), and setup().

◆ hcalIsoEThresHB_

EgammaHcalIsolation::arrayHB PhotonIsolationCalculator::hcalIsoEThresHB_
private

Definition at line 138 of file PhotonIsolationCalculator.h.

Referenced by calculateHcalRecHitIso(), and setup().

◆ hcalIsoEThresHE_

EgammaHcalIsolation::arrayHE PhotonIsolationCalculator::hcalIsoEThresHE_
private

Definition at line 139 of file PhotonIsolationCalculator.h.

Referenced by calculateHcalRecHitIso(), and setup().

◆ hcalIsoInnerRadAEB_

std::array<double, 7> PhotonIsolationCalculator::hcalIsoInnerRadAEB_
private

Definition at line 126 of file PhotonIsolationCalculator.h.

Referenced by calculate(), and setup().

◆ hcalIsoInnerRadAEE_

std::array<double, 7> PhotonIsolationCalculator::hcalIsoInnerRadAEE_
private

Definition at line 132 of file PhotonIsolationCalculator.h.

Referenced by calculate(), and setup().

◆ hcalIsoInnerRadBEB_

std::array<double, 7> PhotonIsolationCalculator::hcalIsoInnerRadBEB_
private

Definition at line 129 of file PhotonIsolationCalculator.h.

Referenced by calculate(), and setup().

◆ hcalIsoInnerRadBEE_

std::array<double, 7> PhotonIsolationCalculator::hcalIsoInnerRadBEE_
private

Definition at line 135 of file PhotonIsolationCalculator.h.

Referenced by calculate(), and setup().

◆ hcalIsoOuterRadAEB_

std::array<double, 7> PhotonIsolationCalculator::hcalIsoOuterRadAEB_
private

Definition at line 127 of file PhotonIsolationCalculator.h.

Referenced by calculate(), and setup().

◆ hcalIsoOuterRadAEE_

std::array<double, 7> PhotonIsolationCalculator::hcalIsoOuterRadAEE_
private

Definition at line 133 of file PhotonIsolationCalculator.h.

Referenced by calculate(), and setup().

◆ hcalIsoOuterRadBEB_

std::array<double, 7> PhotonIsolationCalculator::hcalIsoOuterRadBEB_
private

Definition at line 130 of file PhotonIsolationCalculator.h.

Referenced by calculate(), and setup().

◆ hcalIsoOuterRadBEE_

std::array<double, 7> PhotonIsolationCalculator::hcalIsoOuterRadBEE_
private

Definition at line 136 of file PhotonIsolationCalculator.h.

Referenced by calculate(), and setup().

◆ hcalSevLvlComputerToken_

edm::ESGetToken<HcalSeverityLevelComputer, HcalSeverityLevelComputerRcd> PhotonIsolationCalculator::hcalSevLvlComputerToken_
private

Definition at line 105 of file PhotonIsolationCalculator.h.

Referenced by calculate(), and setup().

◆ hcalTopologyToken_

edm::ESGetToken<HcalTopology, HcalRecNumberingRecord> PhotonIsolationCalculator::hcalTopologyToken_
private

Definition at line 103 of file PhotonIsolationCalculator.h.

Referenced by calculate(), and setup().

◆ maxHcalSeverity_

int PhotonIsolationCalculator::maxHcalSeverity_
private

Definition at line 140 of file PhotonIsolationCalculator.h.

Referenced by calculateHcalRecHitIso(), and setup().

◆ moduleEtaBoundary_

std::vector<double> PhotonIsolationCalculator::moduleEtaBoundary_
private

Definition at line 112 of file PhotonIsolationCalculator.h.

Referenced by setup().

◆ modulePhiBoundary_

double PhotonIsolationCalculator::modulePhiBoundary_
private

Definition at line 111 of file PhotonIsolationCalculator.h.

Referenced by setup().

◆ severityExclEB_

std::vector<int> PhotonIsolationCalculator::severityExclEB_
private

Definition at line 144 of file PhotonIsolationCalculator.h.

Referenced by calculateEcalRecHitIso(), and setup().

◆ severityExclEE_

std::vector<int> PhotonIsolationCalculator::severityExclEE_
private

Definition at line 145 of file PhotonIsolationCalculator.h.

Referenced by calculateEcalRecHitIso(), and setup().

◆ towerMapToken_

edm::ESGetToken<CaloTowerConstituentsMap, CaloGeometryRecord> PhotonIsolationCalculator::towerMapToken_
private

Definition at line 106 of file PhotonIsolationCalculator.h.

Referenced by calculate(), and setup().

◆ trackInputTag_

edm::EDGetToken PhotonIsolationCalculator::trackInputTag_
private

Definition at line 109 of file PhotonIsolationCalculator.h.

Referenced by calculateTrackIso(), and setup().

◆ trkIsoBarrelRadiusA_

std::array<double, 6> PhotonIsolationCalculator::trkIsoBarrelRadiusA_
private

Definition at line 116 of file PhotonIsolationCalculator.h.

Referenced by calculate(), and setup().

◆ trkIsoBarrelRadiusB_

std::array<double, 6> PhotonIsolationCalculator::trkIsoBarrelRadiusB_
private

Definition at line 118 of file PhotonIsolationCalculator.h.

Referenced by calculate(), and setup().

◆ trkIsoEndcapRadiusA_

std::array<double, 6> PhotonIsolationCalculator::trkIsoEndcapRadiusA_
private

Definition at line 121 of file PhotonIsolationCalculator.h.

Referenced by calculate(), and setup().

◆ trkIsoEndcapRadiusB_

std::array<double, 6> PhotonIsolationCalculator::trkIsoEndcapRadiusB_
private

Definition at line 123 of file PhotonIsolationCalculator.h.

Referenced by calculate(), and setup().

◆ useNumCrystals_

bool PhotonIsolationCalculator::useNumCrystals_
private

Definition at line 114 of file PhotonIsolationCalculator.h.

Referenced by calculate(), and setup().

◆ vetoClusteredEcalHits_

bool PhotonIsolationCalculator::vetoClusteredEcalHits_
private

Definition at line 113 of file PhotonIsolationCalculator.h.

Referenced by calculate(), and setup().