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
 
 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
 
double calculateHcalTowerIso (const reco::Photon *photon, const edm::Event &iEvent, const edm::EventSetup &iSetup, double RCone, double eMin, signed int depth) const
 
double calculateHcalTowerIso (const reco::Photon *photon, const edm::Event &iEvent, const edm::EventSetup &iSetup, double RCone, double RConeInner, double eMin, signed int depth) 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_
 
double ecalIsoBarrelRadiusA_ [5]
 
double ecalIsoBarrelRadiusB_ [5]
 
double ecalIsoEndcapRadiusA_ [5]
 
double ecalIsoEndcapRadiusB_ [5]
 
edm::EDGetToken endcapecalCollection_
 
std::vector< int > flagsEB_
 
std::vector< int > flagsEE_
 
edm::EDGetToken hcalCollection_
 
double hcalIsoBarrelRadiusA_ [9]
 
double hcalIsoBarrelRadiusB_ [9]
 
double hcalIsoEndcapRadiusA_ [9]
 
double hcalIsoEndcapRadiusB_ [9]
 
std::vector< double > moduleEtaBoundary_
 
double modulePhiBoundary_
 
std::vector< int > severityExclEB_
 
std::vector< int > severityExclEE_
 
edm::EDGetToken trackInputTag_
 
double trkIsoBarrelRadiusA_ [6]
 
double trkIsoBarrelRadiusB_ [6]
 
double trkIsoEndcapRadiusA_ [6]
 
double trkIsoEndcapRadiusB_ [6]
 
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 16 of file PhotonIsolationCalculator.h.

Constructor & Destructor Documentation

◆ PhotonIsolationCalculator()

PhotonIsolationCalculator::PhotonIsolationCalculator ( )
inline

Definition at line 18 of file PhotonIsolationCalculator.h.

18 {}

◆ ~PhotonIsolationCalculator()

PhotonIsolationCalculator::~PhotonIsolationCalculator ( )
inline

Definition at line 20 of file PhotonIsolationCalculator.h.

20 {}

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

Definition at line 170 of file PhotonIsolationCalculator.cc.

175  {
176  //Get fiducial flags. This does not really belong here
177  bool isEBPho = false;
178  bool isEEPho = false;
179  bool isEBEtaGap = false;
180  bool isEBPhiGap = false;
181  bool isEERingGap = false;
182  bool isEEDeeGap = false;
183  bool isEBEEGap = false;
184  classify(pho, isEBPho, isEEPho, isEBEtaGap, isEBPhiGap, isEERingGap, isEEDeeGap, isEBEEGap);
185  phofid.isEB = isEBPho;
186  phofid.isEE = isEEPho;
187  phofid.isEBEtaGap = isEBEtaGap;
188  phofid.isEBPhiGap = isEBPhiGap;
189  phofid.isEERingGap = isEERingGap;
190  phofid.isEEDeeGap = isEEDeeGap;
191  phofid.isEBEEGap = isEBEEGap;
192 
193  // Calculate isolation variables. cone sizes and thresholds
194  // are set for Barrel and endcap separately
195 
196  reco::SuperClusterRef scRef = pho->superCluster();
197  const reco::BasicCluster& seedCluster = *(scRef->seed());
198  DetId seedXtalId = seedCluster.hitsAndFractions()[0].first;
199  int detector = seedXtalId.subdetId();
200 
201  //Isolation parameters variables
202  double photonEcalRecHitConeInnerRadiusA_;
203  double photonEcalRecHitConeOuterRadiusA_;
204  double photonEcalRecHitEtaSliceA_;
205  double photonEcalRecHitThreshEA_;
206  double photonEcalRecHitThreshEtA_;
207  double photonHcalTowerConeInnerRadiusA_;
208  double photonHcalTowerConeOuterRadiusA_;
209  double photonHcalTowerThreshEA_;
210  double photonHcalDepth1TowerConeInnerRadiusA_;
211  double photonHcalDepth1TowerConeOuterRadiusA_;
212  double photonHcalDepth1TowerThreshEA_;
213  double photonHcalDepth2TowerConeInnerRadiusA_;
214  double photonHcalDepth2TowerConeOuterRadiusA_;
215  double photonHcalDepth2TowerThreshEA_;
216  double trackConeOuterRadiusA_;
217  double trackConeInnerRadiusA_;
218  double isolationtrackThresholdA_;
219  double isolationtrackEtaSliceA_;
220  double trackLipRadiusA_;
221  double trackD0RadiusA_;
222  double photonEcalRecHitConeInnerRadiusB_;
223  double photonEcalRecHitConeOuterRadiusB_;
224  double photonEcalRecHitEtaSliceB_;
225  double photonEcalRecHitThreshEB_;
226  double photonEcalRecHitThreshEtB_;
227  double photonHcalTowerConeInnerRadiusB_;
228  double photonHcalTowerConeOuterRadiusB_;
229  double photonHcalTowerThreshEB_;
230  double photonHcalDepth1TowerConeInnerRadiusB_;
231  double photonHcalDepth1TowerConeOuterRadiusB_;
232  double photonHcalDepth1TowerThreshEB_;
233  double photonHcalDepth2TowerConeInnerRadiusB_;
234  double photonHcalDepth2TowerConeOuterRadiusB_;
235  double photonHcalDepth2TowerThreshEB_;
236  double trackConeOuterRadiusB_;
237  double trackConeInnerRadiusB_;
238  double isolationtrackThresholdB_;
239  double isolationtrackEtaSliceB_;
240  double trackLipRadiusB_;
241  double trackD0RadiusB_;
242 
243  if (detector == EcalBarrel) {
244  trackConeOuterRadiusA_ = trkIsoBarrelRadiusA_[0];
245  trackConeInnerRadiusA_ = trkIsoBarrelRadiusA_[1];
246  isolationtrackThresholdA_ = trkIsoBarrelRadiusA_[2];
247  trackLipRadiusA_ = trkIsoBarrelRadiusA_[3];
248  trackD0RadiusA_ = trkIsoBarrelRadiusA_[4];
249  isolationtrackEtaSliceA_ = trkIsoBarrelRadiusA_[5];
250 
251  photonEcalRecHitConeInnerRadiusA_ = ecalIsoBarrelRadiusA_[0];
252  photonEcalRecHitConeOuterRadiusA_ = ecalIsoBarrelRadiusA_[1];
253  photonEcalRecHitEtaSliceA_ = ecalIsoBarrelRadiusA_[2];
254  photonEcalRecHitThreshEA_ = ecalIsoBarrelRadiusA_[3];
255  photonEcalRecHitThreshEtA_ = ecalIsoBarrelRadiusA_[4];
256 
257  photonHcalTowerConeInnerRadiusA_ = hcalIsoBarrelRadiusA_[0];
258  photonHcalTowerConeOuterRadiusA_ = hcalIsoBarrelRadiusA_[1];
259  photonHcalTowerThreshEA_ = hcalIsoBarrelRadiusA_[2];
260  photonHcalDepth1TowerConeInnerRadiusA_ = hcalIsoBarrelRadiusA_[3];
261  photonHcalDepth1TowerConeOuterRadiusA_ = hcalIsoBarrelRadiusA_[4];
262  photonHcalDepth1TowerThreshEA_ = hcalIsoBarrelRadiusA_[5];
263  photonHcalDepth2TowerConeInnerRadiusA_ = hcalIsoBarrelRadiusA_[6];
264  photonHcalDepth2TowerConeOuterRadiusA_ = hcalIsoBarrelRadiusA_[7];
265  photonHcalDepth2TowerThreshEA_ = hcalIsoBarrelRadiusA_[8];
266 
267  trackConeOuterRadiusB_ = trkIsoBarrelRadiusB_[0];
268  trackConeInnerRadiusB_ = trkIsoBarrelRadiusB_[1];
269  isolationtrackThresholdB_ = trkIsoBarrelRadiusB_[2];
270  trackLipRadiusB_ = trkIsoBarrelRadiusB_[3];
271  trackD0RadiusB_ = trkIsoBarrelRadiusB_[4];
272  isolationtrackEtaSliceB_ = trkIsoBarrelRadiusB_[5];
273 
274  photonEcalRecHitConeInnerRadiusB_ = ecalIsoBarrelRadiusB_[0];
275  photonEcalRecHitConeOuterRadiusB_ = ecalIsoBarrelRadiusB_[1];
276  photonEcalRecHitEtaSliceB_ = ecalIsoBarrelRadiusB_[2];
277  photonEcalRecHitThreshEB_ = ecalIsoBarrelRadiusB_[3];
278  photonEcalRecHitThreshEtB_ = ecalIsoBarrelRadiusB_[4];
279 
280  photonHcalTowerConeInnerRadiusB_ = hcalIsoBarrelRadiusB_[0];
281  photonHcalTowerConeOuterRadiusB_ = hcalIsoBarrelRadiusB_[1];
282  photonHcalTowerThreshEB_ = hcalIsoBarrelRadiusB_[2];
283  photonHcalDepth1TowerConeInnerRadiusB_ = hcalIsoBarrelRadiusB_[3];
284  photonHcalDepth1TowerConeOuterRadiusB_ = hcalIsoBarrelRadiusB_[4];
285  photonHcalDepth1TowerThreshEB_ = hcalIsoBarrelRadiusB_[5];
286  photonHcalDepth2TowerConeInnerRadiusB_ = hcalIsoBarrelRadiusB_[6];
287  photonHcalDepth2TowerConeOuterRadiusB_ = hcalIsoBarrelRadiusB_[7];
288  photonHcalDepth2TowerThreshEB_ = hcalIsoBarrelRadiusB_[8];
289 
290  } else {
291  // detector==EcalEndcap
292 
293  trackConeOuterRadiusA_ = trkIsoEndcapRadiusA_[0];
294  trackConeInnerRadiusA_ = trkIsoEndcapRadiusA_[1];
295  isolationtrackThresholdA_ = trkIsoEndcapRadiusA_[2];
296  trackLipRadiusA_ = trkIsoEndcapRadiusA_[3];
297  trackD0RadiusA_ = trkIsoEndcapRadiusA_[4];
298  isolationtrackEtaSliceA_ = trkIsoEndcapRadiusA_[5];
299 
300  photonEcalRecHitConeInnerRadiusA_ = ecalIsoEndcapRadiusA_[0];
301  photonEcalRecHitConeOuterRadiusA_ = ecalIsoEndcapRadiusA_[1];
302  photonEcalRecHitEtaSliceA_ = ecalIsoEndcapRadiusA_[2];
303  photonEcalRecHitThreshEA_ = ecalIsoEndcapRadiusA_[3];
304  photonEcalRecHitThreshEtA_ = ecalIsoEndcapRadiusA_[4];
305 
306  photonHcalTowerConeInnerRadiusA_ = hcalIsoEndcapRadiusA_[0];
307  photonHcalTowerConeOuterRadiusA_ = hcalIsoEndcapRadiusA_[1];
308  photonHcalTowerThreshEA_ = hcalIsoEndcapRadiusA_[2];
309  photonHcalDepth1TowerConeInnerRadiusA_ = hcalIsoEndcapRadiusA_[3];
310  photonHcalDepth1TowerConeOuterRadiusA_ = hcalIsoEndcapRadiusA_[4];
311  photonHcalDepth1TowerThreshEA_ = hcalIsoEndcapRadiusA_[5];
312  photonHcalDepth2TowerConeInnerRadiusA_ = hcalIsoEndcapRadiusA_[6];
313  photonHcalDepth2TowerConeOuterRadiusA_ = hcalIsoEndcapRadiusA_[7];
314  photonHcalDepth2TowerThreshEA_ = hcalIsoEndcapRadiusA_[8];
315 
316  trackConeOuterRadiusB_ = trkIsoEndcapRadiusB_[0];
317  trackConeInnerRadiusB_ = trkIsoEndcapRadiusB_[1];
318  isolationtrackThresholdB_ = trkIsoEndcapRadiusB_[2];
319  trackLipRadiusB_ = trkIsoEndcapRadiusB_[3];
320  trackD0RadiusB_ = trkIsoEndcapRadiusB_[4];
321  isolationtrackEtaSliceB_ = trkIsoEndcapRadiusB_[5];
322 
323  photonEcalRecHitConeInnerRadiusB_ = ecalIsoEndcapRadiusB_[0];
324  photonEcalRecHitConeOuterRadiusB_ = ecalIsoEndcapRadiusB_[1];
325  photonEcalRecHitEtaSliceB_ = ecalIsoEndcapRadiusB_[2];
326  photonEcalRecHitThreshEB_ = ecalIsoEndcapRadiusB_[3];
327  photonEcalRecHitThreshEtB_ = ecalIsoEndcapRadiusB_[4];
328 
329  photonHcalTowerConeInnerRadiusB_ = hcalIsoEndcapRadiusB_[0];
330  photonHcalTowerConeOuterRadiusB_ = hcalIsoEndcapRadiusB_[1];
331  photonHcalTowerThreshEB_ = hcalIsoEndcapRadiusB_[2];
332  photonHcalDepth1TowerConeInnerRadiusB_ = hcalIsoEndcapRadiusB_[3];
333  photonHcalDepth1TowerConeOuterRadiusB_ = hcalIsoEndcapRadiusB_[4];
334  photonHcalDepth1TowerThreshEB_ = hcalIsoEndcapRadiusB_[5];
335  photonHcalDepth2TowerConeInnerRadiusB_ = hcalIsoEndcapRadiusB_[6];
336  photonHcalDepth2TowerConeOuterRadiusB_ = hcalIsoEndcapRadiusB_[7];
337  photonHcalDepth2TowerThreshEB_ = hcalIsoEndcapRadiusB_[8];
338  }
339 
340  //Calculate hollow cone track isolation, CONE A
341  int ntrkA = 0;
342  double trkisoA = 0;
343  calculateTrackIso(pho,
344  e,
345  trkisoA,
346  ntrkA,
347  isolationtrackThresholdA_,
348  trackConeOuterRadiusA_,
349  trackConeInnerRadiusA_,
350  isolationtrackEtaSliceA_,
351  trackLipRadiusA_,
352  trackD0RadiusA_);
353 
354  //Calculate solid cone track isolation, CONE A
355  int sntrkA = 0;
356  double strkisoA = 0;
357  calculateTrackIso(pho,
358  e,
359  strkisoA,
360  sntrkA,
361  isolationtrackThresholdA_,
362  trackConeOuterRadiusA_,
363  0.,
364  isolationtrackEtaSliceA_,
365  trackLipRadiusA_,
366  trackD0RadiusA_);
367 
368  phoisolR1.nTrkHollowCone = ntrkA;
369  phoisolR1.trkSumPtHollowCone = trkisoA;
370  phoisolR1.nTrkSolidCone = sntrkA;
371  phoisolR1.trkSumPtSolidCone = strkisoA;
372 
373  //Calculate hollow cone track isolation, CONE B
374  int ntrkB = 0;
375  double trkisoB = 0;
376  calculateTrackIso(pho,
377  e,
378  trkisoB,
379  ntrkB,
380  isolationtrackThresholdB_,
381  trackConeOuterRadiusB_,
382  trackConeInnerRadiusB_,
383  isolationtrackEtaSliceB_,
384  trackLipRadiusB_,
385  trackD0RadiusB_);
386 
387  //Calculate solid cone track isolation, CONE B
388  int sntrkB = 0;
389  double strkisoB = 0;
390  calculateTrackIso(pho,
391  e,
392  strkisoB,
393  sntrkB,
394  isolationtrackThresholdB_,
395  trackConeOuterRadiusB_,
396  0.,
397  isolationtrackEtaSliceB_,
398  trackLipRadiusB_,
399  trackD0RadiusB_);
400 
401  phoisolR2.nTrkHollowCone = ntrkB;
402  phoisolR2.trkSumPtHollowCone = trkisoB;
403  phoisolR2.nTrkSolidCone = sntrkB;
404  phoisolR2.trkSumPtSolidCone = strkisoB;
405 
406  // std::cout << "Output from solid cone track isolation: ";
407  // std::cout << " Sum pT: " << strkiso << " ntrk: " << sntrk << std::endl;
408 
409  double EcalRecHitIsoA = calculateEcalRecHitIso(pho,
410  e,
411  es,
412  photonEcalRecHitConeOuterRadiusA_,
413  photonEcalRecHitConeInnerRadiusA_,
414  photonEcalRecHitEtaSliceA_,
415  photonEcalRecHitThreshEA_,
416  photonEcalRecHitThreshEtA_,
419  phoisolR1.ecalRecHitSumEt = EcalRecHitIsoA;
420 
421  double EcalRecHitIsoB = calculateEcalRecHitIso(pho,
422  e,
423  es,
424  photonEcalRecHitConeOuterRadiusB_,
425  photonEcalRecHitConeInnerRadiusB_,
426  photonEcalRecHitEtaSliceB_,
427  photonEcalRecHitThreshEB_,
428  photonEcalRecHitThreshEtB_,
431  phoisolR2.ecalRecHitSumEt = EcalRecHitIsoB;
432 
433  double HcalTowerIsoA = calculateHcalTowerIso(
434  pho, e, es, photonHcalTowerConeOuterRadiusA_, photonHcalTowerConeInnerRadiusA_, photonHcalTowerThreshEA_, -1);
435  phoisolR1.hcalTowerSumEt = HcalTowerIsoA;
436 
437  double HcalTowerIsoB = calculateHcalTowerIso(
438  pho, e, es, photonHcalTowerConeOuterRadiusB_, photonHcalTowerConeInnerRadiusB_, photonHcalTowerThreshEB_, -1);
439  phoisolR2.hcalTowerSumEt = HcalTowerIsoB;
440 
442 
443  double HcalDepth1TowerIsoA = calculateHcalTowerIso(pho,
444  e,
445  es,
446  photonHcalDepth1TowerConeOuterRadiusA_,
447  photonHcalDepth1TowerConeInnerRadiusA_,
448  photonHcalDepth1TowerThreshEA_,
449  1);
450  phoisolR1.hcalDepth1TowerSumEt = HcalDepth1TowerIsoA;
451 
452  double HcalDepth1TowerIsoB = calculateHcalTowerIso(pho,
453  e,
454  es,
455  photonHcalDepth1TowerConeOuterRadiusB_,
456  photonHcalDepth1TowerConeInnerRadiusB_,
457  photonHcalDepth1TowerThreshEB_,
458  1);
459  phoisolR2.hcalDepth1TowerSumEt = HcalDepth1TowerIsoB;
460 
462 
463  double HcalDepth2TowerIsoA = calculateHcalTowerIso(pho,
464  e,
465  es,
466  photonHcalDepth2TowerConeOuterRadiusA_,
467  photonHcalDepth2TowerConeInnerRadiusA_,
468  photonHcalDepth2TowerThreshEA_,
469  2);
470  phoisolR1.hcalDepth2TowerSumEt = HcalDepth2TowerIsoA;
471 
472  double HcalDepth2TowerIsoB = calculateHcalTowerIso(pho,
473  e,
474  es,
475  photonHcalDepth2TowerConeOuterRadiusB_,
476  photonHcalDepth2TowerConeInnerRadiusB_,
477  photonHcalDepth2TowerThreshEB_,
478  2);
479  phoisolR2.hcalDepth2TowerSumEt = HcalDepth2TowerIsoB;
480 
481  // New Hcal isolation based on the new H/E definition (towers behind the BCs in the SC are used to evaluated H)
482  double HcalTowerBcIsoA =
483  calculateHcalTowerIso(pho, e, es, photonHcalTowerConeOuterRadiusA_, photonHcalTowerThreshEA_, -1);
484  phoisolR1.hcalTowerSumEtBc = HcalTowerBcIsoA;
485 
486  double HcalTowerBcIsoB =
487  calculateHcalTowerIso(pho, e, es, photonHcalTowerConeOuterRadiusB_, photonHcalTowerThreshEB_, -1);
488  phoisolR2.hcalTowerSumEtBc = HcalTowerBcIsoB;
489 
491 
492  double HcalDepth1TowerBcIsoA =
493  calculateHcalTowerIso(pho, e, es, photonHcalDepth1TowerConeOuterRadiusA_, photonHcalDepth1TowerThreshEA_, 1);
494  phoisolR1.hcalDepth1TowerSumEtBc = HcalDepth1TowerBcIsoA;
495 
496  double HcalDepth1TowerBcIsoB =
497  calculateHcalTowerIso(pho, e, es, photonHcalDepth1TowerConeOuterRadiusB_, photonHcalDepth1TowerThreshEB_, 1);
498  phoisolR2.hcalDepth1TowerSumEtBc = HcalDepth1TowerBcIsoB;
499 
501 
502  double HcalDepth2TowerBcIsoA =
503  calculateHcalTowerIso(pho, e, es, photonHcalDepth2TowerConeOuterRadiusA_, photonHcalDepth2TowerThreshEA_, 2);
504  phoisolR1.hcalDepth2TowerSumEtBc = HcalDepth2TowerBcIsoA;
505 
506  double HcalDepth2TowerBcIsoB =
507  calculateHcalTowerIso(pho, e, es, photonHcalDepth2TowerConeOuterRadiusB_, photonHcalDepth2TowerThreshEB_, 2);
508  phoisolR2.hcalDepth2TowerSumEtBc = HcalDepth2TowerBcIsoB;
509 }

References calculateEcalRecHitIso(), calculateHcalTowerIso(), calculateTrackIso(), classify(), hgcalTestNeighbor_cfi::detector, MillePedeFileConverter_cfg::e, EcalBarrel, ecalIsoBarrelRadiusA_, ecalIsoBarrelRadiusB_, ecalIsoEndcapRadiusA_, ecalIsoEndcapRadiusB_, reco::Photon::IsolationVariables::ecalRecHitSumEt, reco::Photon::IsolationVariables::hcalDepth1TowerSumEt, reco::Photon::IsolationVariables::hcalDepth1TowerSumEtBc, reco::Photon::IsolationVariables::hcalDepth2TowerSumEt, reco::Photon::IsolationVariables::hcalDepth2TowerSumEtBc, hcalIsoBarrelRadiusA_, hcalIsoBarrelRadiusB_, hcalIsoEndcapRadiusA_, hcalIsoEndcapRadiusB_, reco::Photon::IsolationVariables::hcalTowerSumEt, reco::Photon::IsolationVariables::hcalTowerSumEtBc, reco::CaloCluster::hitsAndFractions(), 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, DetId::subdetId(), reco::Photon::superCluster(), trkIsoBarrelRadiusA_, trkIsoBarrelRadiusB_, trkIsoEndcapRadiusA_, trkIsoEndcapRadiusB_, reco::Photon::IsolationVariables::trkSumPtHollowCone, reco::Photon::IsolationVariables::trkSumPtSolidCone, useNumCrystals_, and vetoClusteredEcalHits_.

Referenced by PhotonProducer::fillPhotonCollection().

◆ 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 595 of file PhotonIsolationCalculator.cc.

604  {
605  edm::Handle<EcalRecHitCollection> ecalhitsCollEB;
606  edm::Handle<EcalRecHitCollection> ecalhitsCollEE;
607  iEvent.getByToken(endcapecalCollection_, ecalhitsCollEE);
608 
609  iEvent.getByToken(barrelecalCollection_, ecalhitsCollEB);
610 
611  const EcalRecHitCollection* rechitsCollectionEE_ = ecalhitsCollEE.product();
612  const EcalRecHitCollection* rechitsCollectionEB_ = ecalhitsCollEB.product();
613 
615  iSetup.get<EcalSeverityLevelAlgoRcd>().get(sevlv);
616  const EcalSeverityLevelAlgo* sevLevel = sevlv.product();
617 
618  edm::ESHandle<CaloGeometry> geoHandle;
619  iSetup.get<CaloGeometryRecord>().get(geoHandle);
620 
621  EgammaRecHitIsolation phoIsoEB(
622  RCone, RConeInner, etaSlice, etMin, eMin, geoHandle, *rechitsCollectionEB_, sevLevel, DetId::Ecal);
623 
624  phoIsoEB.setVetoClustered(vetoClusteredHits);
625  phoIsoEB.setUseNumCrystals(useNumXtals);
626  phoIsoEB.doSeverityChecks(ecalhitsCollEB.product(), severityExclEB_);
627  phoIsoEB.doFlagChecks(flagsEB_);
628  double ecalIsolEB = phoIsoEB.getEtSum(photon);
629 
630  EgammaRecHitIsolation phoIsoEE(
631  RCone, RConeInner, etaSlice, etMin, eMin, geoHandle, *rechitsCollectionEE_, sevLevel, DetId::Ecal);
632 
633  phoIsoEE.setVetoClustered(vetoClusteredHits);
634  phoIsoEE.setUseNumCrystals(useNumXtals);
635  phoIsoEE.doSeverityChecks(ecalhitsCollEE.product(), severityExclEE_);
636  phoIsoEE.doFlagChecks(flagsEE_);
637 
638  double ecalIsolEE = phoIsoEE.getEtSum(photon);
639  // delete phoIso;
640  double ecalIsol = ecalIsolEB + ecalIsolEE;
641 
642  return ecalIsol;
643 }

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

Referenced by calculate().

◆ calculateHcalTowerIso() [1/2]

double PhotonIsolationCalculator::calculateHcalTowerIso ( const reco::Photon photon,
const edm::Event iEvent,
const edm::EventSetup iSetup,
double  RCone,
double  eMin,
signed int  depth 
) const
private

Definition at line 670 of file PhotonIsolationCalculator.cc.

675  {
676  double hcalIsol = 0.;
677 
678  if (not hcalCollection_.isUninitialized()) {
679  edm::Handle<CaloTowerCollection> hcalhitsCollH;
680  iEvent.getByToken(hcalCollection_, hcalhitsCollH);
681 
682  const CaloTowerCollection* toww = hcalhitsCollH.product();
683 
684  //std::cout << "before iso call" << std::endl;
685  EgammaTowerIsolation phoIso(RCone, 0., eMin, depth, toww);
686  hcalIsol = phoIso.getTowerEtSum(photon, &(photon->hcalTowersBehindClusters()));
687  // delete phoIso;
688  //std::cout << "after call" << std::endl;
689  }
690 
691  return hcalIsol;
692 }

References LEDCalibrationChannels::depth, photonAnalyzer_cfi::eMin, EgammaTowerIsolation::getTowerEtSum(), hcalCollection_, iEvent, edm::EDGetToken::isUninitialized(), muons2muons_cfi::photon, and edm::Handle< T >::product().

◆ calculateHcalTowerIso() [2/2]

double PhotonIsolationCalculator::calculateHcalTowerIso ( const reco::Photon photon,
const edm::Event iEvent,
const edm::EventSetup iSetup,
double  RCone,
double  RConeInner,
double  eMin,
signed int  depth 
) const
private

Definition at line 645 of file PhotonIsolationCalculator.cc.

651  {
652  double hcalIsol = 0.;
653 
654  if (not hcalCollection_.isUninitialized()) {
655  edm::Handle<CaloTowerCollection> hcalhitsCollH;
656  iEvent.getByToken(hcalCollection_, hcalhitsCollH);
657 
658  const CaloTowerCollection* toww = hcalhitsCollH.product();
659 
660  //std::cout << "before iso call" << std::endl;
661  EgammaTowerIsolation phoIso(RCone, RConeInner, eMin, depth, toww);
662  hcalIsol = phoIso.getTowerEtSum(photon);
663  // delete phoIso;
664  //std::cout << "after call" << std::endl;
665  }
666 
667  return hcalIsol;
668 }

References LEDCalibrationChannels::depth, photonAnalyzer_cfi::eMin, EgammaTowerIsolation::getTowerEtSum(), hcalCollection_, iEvent, edm::EDGetToken::isUninitialized(), muons2muons_cfi::photon, and edm::Handle< T >::product().

Referenced by calculate().

◆ 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 556 of file PhotonIsolationCalculator.cc.

565  {
566  ntrkCone = 0;
567  trkCone = 0;
568  //get the tracks
570  e.getByToken(trackInputTag_, tracks);
571  if (!tracks.isValid()) {
572  return;
573  }
574  const reco::TrackCollection* trackCollection = tracks.product();
575  //Photon Eta and Phi. Hope these are correct.
576  reco::BeamSpot vertexBeamSpot;
577  edm::Handle<reco::BeamSpot> recoBeamSpotHandle;
578  e.getByToken(beamSpotProducerTag_, recoBeamSpotHandle);
579  vertexBeamSpot = *recoBeamSpotHandle;
580 
581  PhotonTkIsolation phoIso(RCone,
582  RinnerCone,
583  etaSlice,
584  pTThresh,
585  lip,
586  d0,
588  math::XYZPoint(vertexBeamSpot.x0(), vertexBeamSpot.y0(), vertexBeamSpot.z0()));
589 
590  std::pair<int, double> res = phoIso.getIso(photon);
591  ntrkCone = res.first;
592  trkCone = res.second;
593 }

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

Referenced by calculate().

◆ 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 511 of file PhotonIsolationCalculator.cc.

518  {
519  const reco::CaloCluster& seedCluster = *(photon->superCluster()->seed());
520  // following line is temporary until the D. Evans or F. Ferri submit the new tag for ClusterAlgos
521  // DEfinitive will be
522  // DetId seedXtalId = scRef->seed()->seed();
523  DetId seedXtalId = seedCluster.hitsAndFractions()[0].first;
524  int detector = seedXtalId.subdetId();
525 
526  //Set fiducial flags for this photon.
527  double eta = photon->superCluster()->position().eta();
528  double feta = fabs(eta);
529 
530  if (detector == EcalBarrel) {
531  isEBPho = true;
532  if (EBDetId::isNextToEtaBoundary(EBDetId(seedXtalId))) {
533  if (fabs(feta - 1.479) < .1)
534  isEBEEGap = true;
535  else
536  isEBEtaGap = true;
537  }
538 
539  if (EBDetId::isNextToPhiBoundary(EBDetId(seedXtalId)))
540  isEBPhiGap = true;
541 
542  } else if (detector == EcalEndcap) {
543  isEEPho = true;
544  if (EEDetId::isNextToRingBoundary(EEDetId(seedXtalId))) {
545  if (fabs(feta - 1.479) < .1)
546  isEBEEGap = true;
547  else
548  isEERingGap = true;
549  }
550 
551  if (EEDetId::isNextToDBoundary(EEDetId(seedXtalId)))
552  isEEDeeGap = true;
553  }
554 }

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

Referenced by calculate().

◆ 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 34 of file PhotonIsolationCalculator.cc.

39  {
43  iC.consumes<EcalRecHitCollection>(conf.getParameter<edm::InputTag>("barrelEcalRecHitCollection"));
45  iC.consumes<EcalRecHitCollection>(conf.getParameter<edm::InputTag>("endcapEcalRecHitCollection"));
46  auto hcRHC = conf.getParameter<edm::InputTag>("HcalRecHitCollection");
47  if (not hcRHC.label().empty())
49 
50  // gsfRecoInputTag_ = conf.getParameter<edm::InputTag>("GsfRecoCollection");
51  modulePhiBoundary_ = conf.getParameter<double>("modulePhiBoundary");
52  moduleEtaBoundary_ = conf.getParameter<std::vector<double> >("moduleEtaBoundary");
53  //
54  vetoClusteredEcalHits_ = conf.getParameter<bool>("vetoClustered");
55  useNumCrystals_ = conf.getParameter<bool>("useNumCrystals");
56 
58  int i = 0;
59  trkIsoBarrelRadiusA_[i++] = (conf.getParameter<double>("TrackConeOuterRadiusA_Barrel"));
60  trkIsoBarrelRadiusA_[i++] = (conf.getParameter<double>("TrackConeInnerRadiusA_Barrel"));
61  trkIsoBarrelRadiusA_[i++] = (conf.getParameter<double>("isolationtrackThresholdA_Barrel"));
62  trkIsoBarrelRadiusA_[i++] = (conf.getParameter<double>("longImpactParameterA_Barrel"));
63  trkIsoBarrelRadiusA_[i++] = (conf.getParameter<double>("transImpactParameterA_Barrel"));
64  trkIsoBarrelRadiusA_[i++] = (conf.getParameter<double>("isolationtrackEtaSliceA_Barrel"));
65 
66  i = 0;
67  ecalIsoBarrelRadiusA_[i++] = (conf.getParameter<double>("EcalRecHitInnerRadiusA_Barrel"));
68  ecalIsoBarrelRadiusA_[i++] = (conf.getParameter<double>("EcalRecHitOuterRadiusA_Barrel"));
69  ecalIsoBarrelRadiusA_[i++] = (conf.getParameter<double>("EcalRecHitEtaSliceA_Barrel"));
70  ecalIsoBarrelRadiusA_[i++] = (conf.getParameter<double>("EcalRecHitThreshEA_Barrel"));
71  ecalIsoBarrelRadiusA_[i++] = (conf.getParameter<double>("EcalRecHitThreshEtA_Barrel"));
72 
73  i = 0;
74  hcalIsoBarrelRadiusA_[i++] = (conf.getParameter<double>("HcalTowerInnerRadiusA_Barrel"));
75  hcalIsoBarrelRadiusA_[i++] = (conf.getParameter<double>("HcalTowerOuterRadiusA_Barrel"));
76  hcalIsoBarrelRadiusA_[i++] = (conf.getParameter<double>("HcalTowerThreshEA_Barrel"));
77  hcalIsoBarrelRadiusA_[i++] = (conf.getParameter<double>("HcalDepth1TowerInnerRadiusA_Barrel"));
78  hcalIsoBarrelRadiusA_[i++] = (conf.getParameter<double>("HcalDepth1TowerOuterRadiusA_Barrel"));
79  hcalIsoBarrelRadiusA_[i++] = (conf.getParameter<double>("HcalDepth1TowerThreshEA_Barrel"));
80  hcalIsoBarrelRadiusA_[i++] = (conf.getParameter<double>("HcalDepth2TowerInnerRadiusA_Barrel"));
81  hcalIsoBarrelRadiusA_[i++] = (conf.getParameter<double>("HcalDepth2TowerOuterRadiusA_Barrel"));
82  hcalIsoBarrelRadiusA_[i++] = (conf.getParameter<double>("HcalDepth2TowerThreshEA_Barrel"));
83 
84  i = 0;
85  trkIsoBarrelRadiusB_[i++] = (conf.getParameter<double>("TrackConeOuterRadiusB_Barrel"));
86  trkIsoBarrelRadiusB_[i++] = (conf.getParameter<double>("TrackConeInnerRadiusB_Barrel"));
87  trkIsoBarrelRadiusB_[i++] = (conf.getParameter<double>("isolationtrackThresholdB_Barrel"));
88  trkIsoBarrelRadiusB_[i++] = (conf.getParameter<double>("longImpactParameterB_Barrel"));
89  trkIsoBarrelRadiusB_[i++] = (conf.getParameter<double>("transImpactParameterB_Barrel"));
90  trkIsoBarrelRadiusB_[i++] = (conf.getParameter<double>("isolationtrackEtaSliceB_Barrel"));
91 
92  i = 0;
93  ecalIsoBarrelRadiusB_[i++] = (conf.getParameter<double>("EcalRecHitInnerRadiusB_Barrel"));
94  ecalIsoBarrelRadiusB_[i++] = (conf.getParameter<double>("EcalRecHitOuterRadiusB_Barrel"));
95  ecalIsoBarrelRadiusB_[i++] = (conf.getParameter<double>("EcalRecHitEtaSliceB_Barrel"));
96  ecalIsoBarrelRadiusB_[i++] = (conf.getParameter<double>("EcalRecHitThreshEB_Barrel"));
97  ecalIsoBarrelRadiusB_[i++] = (conf.getParameter<double>("EcalRecHitThreshEtB_Barrel"));
98 
99  i = 0;
100  hcalIsoBarrelRadiusB_[i++] = (conf.getParameter<double>("HcalTowerInnerRadiusB_Barrel"));
101  hcalIsoBarrelRadiusB_[i++] = (conf.getParameter<double>("HcalTowerOuterRadiusB_Barrel"));
102  hcalIsoBarrelRadiusB_[i++] = (conf.getParameter<double>("HcalTowerThreshEB_Barrel"));
103  hcalIsoBarrelRadiusB_[i++] = (conf.getParameter<double>("HcalDepth1TowerInnerRadiusB_Barrel"));
104  hcalIsoBarrelRadiusB_[i++] = (conf.getParameter<double>("HcalDepth1TowerOuterRadiusB_Barrel"));
105  hcalIsoBarrelRadiusB_[i++] = (conf.getParameter<double>("HcalDepth1TowerThreshEB_Barrel"));
106  hcalIsoBarrelRadiusB_[i++] = (conf.getParameter<double>("HcalDepth2TowerInnerRadiusB_Barrel"));
107  hcalIsoBarrelRadiusB_[i++] = (conf.getParameter<double>("HcalDepth2TowerOuterRadiusB_Barrel"));
108  hcalIsoBarrelRadiusB_[i++] = (conf.getParameter<double>("HcalDepth2TowerThreshEB_Barrel"));
109 
111  i = 0;
112  trkIsoEndcapRadiusA_[i++] = (conf.getParameter<double>("TrackConeOuterRadiusA_Endcap"));
113  trkIsoEndcapRadiusA_[i++] = (conf.getParameter<double>("TrackConeInnerRadiusA_Endcap"));
114  trkIsoEndcapRadiusA_[i++] = (conf.getParameter<double>("isolationtrackThresholdA_Endcap"));
115  trkIsoEndcapRadiusA_[i++] = (conf.getParameter<double>("longImpactParameterA_Endcap"));
116  trkIsoEndcapRadiusA_[i++] = (conf.getParameter<double>("transImpactParameterA_Endcap"));
117  trkIsoEndcapRadiusA_[i++] = (conf.getParameter<double>("isolationtrackEtaSliceA_Endcap"));
118 
119  i = 0;
120  ecalIsoEndcapRadiusA_[i++] = (conf.getParameter<double>("EcalRecHitInnerRadiusA_Endcap"));
121  ecalIsoEndcapRadiusA_[i++] = (conf.getParameter<double>("EcalRecHitOuterRadiusA_Endcap"));
122  ecalIsoEndcapRadiusA_[i++] = (conf.getParameter<double>("EcalRecHitEtaSliceA_Endcap"));
123  ecalIsoEndcapRadiusA_[i++] = (conf.getParameter<double>("EcalRecHitThreshEA_Endcap"));
124  ecalIsoEndcapRadiusA_[i++] = (conf.getParameter<double>("EcalRecHitThreshEtA_Endcap"));
125 
126  i = 0;
127  hcalIsoEndcapRadiusA_[i++] = (conf.getParameter<double>("HcalTowerInnerRadiusA_Endcap"));
128  hcalIsoEndcapRadiusA_[i++] = (conf.getParameter<double>("HcalTowerOuterRadiusA_Endcap"));
129  hcalIsoEndcapRadiusA_[i++] = (conf.getParameter<double>("HcalTowerThreshEA_Endcap"));
130  hcalIsoEndcapRadiusA_[i++] = (conf.getParameter<double>("HcalDepth1TowerInnerRadiusA_Endcap"));
131  hcalIsoEndcapRadiusA_[i++] = (conf.getParameter<double>("HcalDepth1TowerOuterRadiusA_Endcap"));
132  hcalIsoEndcapRadiusA_[i++] = (conf.getParameter<double>("HcalDepth1TowerThreshEA_Endcap"));
133  hcalIsoEndcapRadiusA_[i++] = (conf.getParameter<double>("HcalDepth2TowerInnerRadiusA_Endcap"));
134  hcalIsoEndcapRadiusA_[i++] = (conf.getParameter<double>("HcalDepth2TowerOuterRadiusA_Endcap"));
135  hcalIsoEndcapRadiusA_[i++] = (conf.getParameter<double>("HcalDepth2TowerThreshEA_Endcap"));
136 
137  i = 0;
138  trkIsoEndcapRadiusB_[i++] = (conf.getParameter<double>("TrackConeOuterRadiusB_Endcap"));
139  trkIsoEndcapRadiusB_[i++] = (conf.getParameter<double>("TrackConeInnerRadiusB_Endcap"));
140  trkIsoEndcapRadiusB_[i++] = (conf.getParameter<double>("isolationtrackThresholdB_Endcap"));
141  trkIsoEndcapRadiusB_[i++] = (conf.getParameter<double>("longImpactParameterB_Endcap"));
142  trkIsoEndcapRadiusB_[i++] = (conf.getParameter<double>("transImpactParameterB_Endcap"));
143  trkIsoEndcapRadiusB_[i++] = (conf.getParameter<double>("isolationtrackEtaSliceB_Endcap"));
144 
145  i = 0;
146  ecalIsoEndcapRadiusB_[i++] = (conf.getParameter<double>("EcalRecHitInnerRadiusB_Endcap"));
147  ecalIsoEndcapRadiusB_[i++] = (conf.getParameter<double>("EcalRecHitOuterRadiusB_Endcap"));
148  ecalIsoEndcapRadiusB_[i++] = (conf.getParameter<double>("EcalRecHitEtaSliceB_Endcap"));
149  ecalIsoEndcapRadiusB_[i++] = (conf.getParameter<double>("EcalRecHitThreshEB_Endcap"));
150  ecalIsoEndcapRadiusB_[i++] = (conf.getParameter<double>("EcalRecHitThreshEtB_Endcap"));
151 
152  i = 0;
153  hcalIsoEndcapRadiusB_[i++] = (conf.getParameter<double>("HcalTowerInnerRadiusB_Endcap"));
154  hcalIsoEndcapRadiusB_[i++] = (conf.getParameter<double>("HcalTowerOuterRadiusB_Endcap"));
155  hcalIsoEndcapRadiusB_[i++] = (conf.getParameter<double>("HcalTowerThreshEB_Endcap"));
156  hcalIsoEndcapRadiusB_[i++] = (conf.getParameter<double>("HcalDepth1TowerInnerRadiusB_Endcap"));
157  hcalIsoEndcapRadiusB_[i++] = (conf.getParameter<double>("HcalDepth1TowerOuterRadiusB_Endcap"));
158  hcalIsoEndcapRadiusB_[i++] = (conf.getParameter<double>("HcalDepth1TowerThreshEB_Endcap"));
159  hcalIsoEndcapRadiusB_[i++] = (conf.getParameter<double>("HcalDepth2TowerInnerRadiusB_Endcap"));
160  hcalIsoEndcapRadiusB_[i++] = (conf.getParameter<double>("HcalDepth2TowerOuterRadiusB_Endcap"));
161  hcalIsoEndcapRadiusB_[i++] = (conf.getParameter<double>("HcalDepth2TowerThreshEB_Endcap"));
162 
163  //Pick up the variables for the spike removal
164  flagsEB_ = flagsEB;
165  flagsEE_ = flagsEE;
166  severityExclEB_ = severitiesEB;
167  severityExclEE_ = severitiesEE;
168 }

References barrelecalCollection_, beamSpotProducerTag_, ecalIsoBarrelRadiusA_, ecalIsoBarrelRadiusB_, ecalIsoEndcapRadiusA_, ecalIsoEndcapRadiusB_, endcapecalCollection_, flagsEB_, flagsEE_, edm::ParameterSet::getParameter(), hcalCollection_, hcalIsoBarrelRadiusA_, hcalIsoBarrelRadiusB_, hcalIsoEndcapRadiusA_, hcalIsoEndcapRadiusB_, mps_fire::i, moduleEtaBoundary_, modulePhiBoundary_, severityExclEB_, severityExclEE_, trackInputTag_, trkIsoBarrelRadiusA_, trkIsoBarrelRadiusB_, trkIsoEndcapRadiusA_, trkIsoEndcapRadiusB_, useNumCrystals_, and vetoClusteredEcalHits_.

Referenced by PhotonProducer::PhotonProducer().

Member Data Documentation

◆ barrelecalCollection_

edm::EDGetToken PhotonIsolationCalculator::barrelecalCollection_
private

Definition at line 84 of file PhotonIsolationCalculator.h.

Referenced by calculateEcalRecHitIso(), and setup().

◆ beamSpotProducerTag_

edm::EDGetToken PhotonIsolationCalculator::beamSpotProducerTag_
private

Definition at line 89 of file PhotonIsolationCalculator.h.

Referenced by calculateTrackIso(), and setup().

◆ ecalIsoBarrelRadiusA_

double PhotonIsolationCalculator::ecalIsoBarrelRadiusA_[5]
private

Definition at line 96 of file PhotonIsolationCalculator.h.

Referenced by calculate(), and setup().

◆ ecalIsoBarrelRadiusB_

double PhotonIsolationCalculator::ecalIsoBarrelRadiusB_[5]
private

Definition at line 99 of file PhotonIsolationCalculator.h.

Referenced by calculate(), and setup().

◆ ecalIsoEndcapRadiusA_

double PhotonIsolationCalculator::ecalIsoEndcapRadiusA_[5]
private

Definition at line 103 of file PhotonIsolationCalculator.h.

Referenced by calculate(), and setup().

◆ ecalIsoEndcapRadiusB_

double PhotonIsolationCalculator::ecalIsoEndcapRadiusB_[5]
private

Definition at line 106 of file PhotonIsolationCalculator.h.

Referenced by calculate(), and setup().

◆ endcapecalCollection_

edm::EDGetToken PhotonIsolationCalculator::endcapecalCollection_
private

Definition at line 85 of file PhotonIsolationCalculator.h.

Referenced by calculateEcalRecHitIso(), and setup().

◆ flagsEB_

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

Definition at line 109 of file PhotonIsolationCalculator.h.

Referenced by calculateEcalRecHitIso(), and setup().

◆ flagsEE_

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

Definition at line 110 of file PhotonIsolationCalculator.h.

Referenced by calculateEcalRecHitIso(), and setup().

◆ hcalCollection_

edm::EDGetToken PhotonIsolationCalculator::hcalCollection_
private

Definition at line 86 of file PhotonIsolationCalculator.h.

Referenced by calculateHcalTowerIso(), and setup().

◆ hcalIsoBarrelRadiusA_

double PhotonIsolationCalculator::hcalIsoBarrelRadiusA_[9]
private

Definition at line 97 of file PhotonIsolationCalculator.h.

Referenced by calculate(), and setup().

◆ hcalIsoBarrelRadiusB_

double PhotonIsolationCalculator::hcalIsoBarrelRadiusB_[9]
private

Definition at line 100 of file PhotonIsolationCalculator.h.

Referenced by calculate(), and setup().

◆ hcalIsoEndcapRadiusA_

double PhotonIsolationCalculator::hcalIsoEndcapRadiusA_[9]
private

Definition at line 104 of file PhotonIsolationCalculator.h.

Referenced by calculate(), and setup().

◆ hcalIsoEndcapRadiusB_

double PhotonIsolationCalculator::hcalIsoEndcapRadiusB_[9]
private

Definition at line 107 of file PhotonIsolationCalculator.h.

Referenced by calculate(), and setup().

◆ moduleEtaBoundary_

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

Definition at line 91 of file PhotonIsolationCalculator.h.

Referenced by setup().

◆ modulePhiBoundary_

double PhotonIsolationCalculator::modulePhiBoundary_
private

Definition at line 90 of file PhotonIsolationCalculator.h.

Referenced by setup().

◆ severityExclEB_

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

Definition at line 111 of file PhotonIsolationCalculator.h.

Referenced by calculateEcalRecHitIso(), and setup().

◆ severityExclEE_

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

Definition at line 112 of file PhotonIsolationCalculator.h.

Referenced by calculateEcalRecHitIso(), and setup().

◆ trackInputTag_

edm::EDGetToken PhotonIsolationCalculator::trackInputTag_
private

Definition at line 88 of file PhotonIsolationCalculator.h.

Referenced by calculateTrackIso(), and setup().

◆ trkIsoBarrelRadiusA_

double PhotonIsolationCalculator::trkIsoBarrelRadiusA_[6]
private

Definition at line 95 of file PhotonIsolationCalculator.h.

Referenced by calculate(), and setup().

◆ trkIsoBarrelRadiusB_

double PhotonIsolationCalculator::trkIsoBarrelRadiusB_[6]
private

Definition at line 98 of file PhotonIsolationCalculator.h.

Referenced by calculate(), and setup().

◆ trkIsoEndcapRadiusA_

double PhotonIsolationCalculator::trkIsoEndcapRadiusA_[6]
private

Definition at line 102 of file PhotonIsolationCalculator.h.

Referenced by calculate(), and setup().

◆ trkIsoEndcapRadiusB_

double PhotonIsolationCalculator::trkIsoEndcapRadiusB_[6]
private

Definition at line 105 of file PhotonIsolationCalculator.h.

Referenced by calculate(), and setup().

◆ useNumCrystals_

bool PhotonIsolationCalculator::useNumCrystals_
private

Definition at line 93 of file PhotonIsolationCalculator.h.

Referenced by calculate(), and setup().

◆ vetoClusteredEcalHits_

bool PhotonIsolationCalculator::vetoClusteredEcalHits_
private

Definition at line 92 of file PhotonIsolationCalculator.h.

Referenced by calculate(), and setup().

PhotonIsolationCalculator::vetoClusteredEcalHits_
bool vetoClusteredEcalHits_
Definition: PhotonIsolationCalculator.h:92
edm::ESHandle::product
T const * product() const
Definition: ESHandle.h:86
PhotonTkIsolation
Definition: PhotonTkIsolation.h:20
EcalSeverityLevelAlgo
Definition: EcalSeverityLevelAlgo.h:33
PhotonIsolationCalculator::flagsEB_
std::vector< int > flagsEB_
Definition: PhotonIsolationCalculator.h:109
muons2muons_cfi.photon
photon
Definition: muons2muons_cfi.py:28
EBDetId::isNextToEtaBoundary
static bool isNextToEtaBoundary(EBDetId id)
Definition: EBDetId.cc:108
photonAnalyzer_cfi.etMin
etMin
Definition: photonAnalyzer_cfi.py:54
mps_fire.i
i
Definition: mps_fire.py:428
reco::Photon::superCluster
reco::SuperClusterRef superCluster() const override
Ref to SuperCluster.
edm::Handle::product
T const * product() const
Definition: Handle.h:70
PhotonIsolationCalculator::ecalIsoBarrelRadiusB_
double ecalIsoBarrelRadiusB_[5]
Definition: PhotonIsolationCalculator.h:99
reco::BeamSpot::z0
double z0() const
z coordinate
Definition: BeamSpot.h:65
reco::Photon::FiducialFlags::isEE
bool isEE
Definition: Photon.h:96
PhotonIsolationCalculator::hcalIsoEndcapRadiusA_
double hcalIsoEndcapRadiusA_[9]
Definition: PhotonIsolationCalculator.h:104
CaloGeometryRecord
Definition: CaloGeometryRecord.h:30
EBDetId
Definition: EBDetId.h:17
PhotonIsolationCalculator::trkIsoBarrelRadiusB_
double trkIsoBarrelRadiusB_[6]
Definition: PhotonIsolationCalculator.h:98
edm::SortedCollection< EcalRecHit >
PhotonIsolationCalculator::ecalIsoEndcapRadiusB_
double ecalIsoEndcapRadiusB_[5]
Definition: PhotonIsolationCalculator.h:106
PhotonIsolationCalculator::flagsEE_
std::vector< int > flagsEE_
Definition: PhotonIsolationCalculator.h:110
PhotonIsolationCalculator::hcalIsoEndcapRadiusB_
double hcalIsoEndcapRadiusB_[9]
Definition: PhotonIsolationCalculator.h:107
EgammaRecHitIsolation
Definition: EgammaRecHitIsolation.h:26
edm::Handle
Definition: AssociativeIterator.h:50
PhotonIsolationCalculator::moduleEtaBoundary_
std::vector< double > moduleEtaBoundary_
Definition: PhotonIsolationCalculator.h:91
EcalBarrel
Definition: EcalSubdetector.h:10
PhotonIsolationCalculator::trkIsoEndcapRadiusA_
double trkIsoEndcapRadiusA_[6]
Definition: PhotonIsolationCalculator.h:102
edm::Ref< SuperClusterCollection >
qcdUeDQM_cfi.lip
lip
Definition: qcdUeDQM_cfi.py:25
DetId
Definition: DetId.h:17
PhotonIsolationCalculator::hcalIsoBarrelRadiusA_
double hcalIsoBarrelRadiusA_[9]
Definition: PhotonIsolationCalculator.h:97
PhotonIsolationCalculator::beamSpotProducerTag_
edm::EDGetToken beamSpotProducerTag_
Definition: PhotonIsolationCalculator.h:89
PhotonIsolationCalculator::hcalIsoBarrelRadiusB_
double hcalIsoBarrelRadiusB_[9]
Definition: PhotonIsolationCalculator.h:100
edm::EventSetup::get
T get() const
Definition: EventSetup.h:87
reco::Photon::FiducialFlags::isEBEEGap
bool isEBEEGap
Definition: Photon.h:101
reco::Photon::FiducialFlags::isEB
bool isEB
Definition: Photon.h:95
PVValHelper::eta
Definition: PVValidationHelpers.h:70
reco::Photon::FiducialFlags::isEEDeeGap
bool isEEDeeGap
Definition: Photon.h:100
reco::CaloCluster
Definition: CaloCluster.h:31
photonAnalyzer_cfi.eMin
eMin
Definition: photonAnalyzer_cfi.py:50
PhotonIsolationCalculator::ecalIsoBarrelRadiusA_
double ecalIsoBarrelRadiusA_[5]
Definition: PhotonIsolationCalculator.h:96
PhotonIsolationCalculator::calculateHcalTowerIso
double calculateHcalTowerIso(const reco::Photon *photon, const edm::Event &iEvent, const edm::EventSetup &iSetup, double RCone, double RConeInner, double eMin, signed int depth) const
Definition: PhotonIsolationCalculator.cc:645
reco::BeamSpot
Definition: BeamSpot.h:21
edm::ESHandle< EcalSeverityLevelAlgo >
EcalSeverityLevelAlgoRcd
Definition: EcalSeverityLevelAlgoRcd.h:12
edm::ConsumesCollector::consumes
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
Definition: ConsumesCollector.h:55
reco::Photon::FiducialFlags::isEERingGap
bool isEERingGap
Definition: Photon.h:99
LEDCalibrationChannels.depth
depth
Definition: LEDCalibrationChannels.py:65
DetId::subdetId
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum)
Definition: DetId.h:48
EEDetId
Definition: EEDetId.h:14
EcalEndcap
Definition: EcalSubdetector.h:10
PhotonIsolationCalculator::hcalCollection_
edm::EDGetToken hcalCollection_
Definition: PhotonIsolationCalculator.h:86
JetMETHLTOfflineSource_cfi.feta
feta
Definition: JetMETHLTOfflineSource_cfi.py:30
math::XYZPoint
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:12
duplicaterechits_cfi.trackCollection
trackCollection
Definition: duplicaterechits_cfi.py:4
tracks
const uint32_t *__restrict__ const HitContainer *__restrict__ TkSoA *__restrict__ tracks
Definition: CAHitNtupletGeneratorKernelsImpl.h:159
reco::CaloCluster::hitsAndFractions
const std::vector< std::pair< DetId, float > > & hitsAndFractions() const
Definition: CaloCluster.h:210
EEDetId::isNextToRingBoundary
static bool isNextToRingBoundary(EEDetId id)
Definition: EEDetId.cc:284
PhotonIsolationCalculator::trackInputTag_
edm::EDGetToken trackInputTag_
Definition: PhotonIsolationCalculator.h:88
reco::Photon::FiducialFlags::isEBPhiGap
bool isEBPhiGap
Definition: Photon.h:98
PhotonIsolationCalculator::calculateEcalRecHitIso
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
Definition: PhotonIsolationCalculator.cc:595
EgammaTowerIsolation
Definition: EgammaTowerIsolation.h:197
iEvent
int iEvent
Definition: GenABIO.cc:224
PhotonIsolationCalculator::severityExclEE_
std::vector< int > severityExclEE_
Definition: PhotonIsolationCalculator.h:112
PhotonIsolationCalculator::classify
static void classify(const reco::Photon *photon, bool &isEBPho, bool &isEEPho, bool &isEBEtaGap, bool &isEBPhiGap, bool &isEERingGap, bool &isEEDeeGap, bool &isEBEEGap)
Definition: PhotonIsolationCalculator.cc:511
PhotonIsolationCalculator::calculateTrackIso
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
Definition: PhotonIsolationCalculator.cc:556
DetId::Ecal
Definition: DetId.h:27
get
#define get
res
Definition: Electron.h:6
reco::Photon::FiducialFlags::isEBEtaGap
bool isEBEtaGap
Definition: Photon.h:97
EBDetId::isNextToPhiBoundary
static bool isNextToPhiBoundary(EBDetId id)
Definition: EBDetId.cc:113
PhotonIsolationCalculator::endcapecalCollection_
edm::EDGetToken endcapecalCollection_
Definition: PhotonIsolationCalculator.h:85
reco::BeamSpot::x0
double x0() const
x coordinate
Definition: BeamSpot.h:61
edm::EDGetToken::isUninitialized
constexpr bool isUninitialized() const noexcept
Definition: EDGetToken.h:51
PhotonIsolationCalculator::ecalIsoEndcapRadiusA_
double ecalIsoEndcapRadiusA_[5]
Definition: PhotonIsolationCalculator.h:103
EEDetId::isNextToDBoundary
static bool isNextToDBoundary(EEDetId id)
Definition: EEDetId.cc:279
PhotonIsolationCalculator::trkIsoBarrelRadiusA_
double trkIsoBarrelRadiusA_[6]
Definition: PhotonIsolationCalculator.h:95
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
PhotonIsolationCalculator::modulePhiBoundary_
double modulePhiBoundary_
Definition: PhotonIsolationCalculator.h:90
hgcalTestNeighbor_cfi.detector
detector
Definition: hgcalTestNeighbor_cfi.py:6
PhotonIsolationCalculator::severityExclEB_
std::vector< int > severityExclEB_
Definition: PhotonIsolationCalculator.h:111
reco::BeamSpot::y0
double y0() const
y coordinate
Definition: BeamSpot.h:63
d0
static constexpr float d0
Definition: L1EGammaCrystalsEmulatorProducer.cc:85
edm::InputTag
Definition: InputTag.h:15
reco::TrackCollection
std::vector< Track > TrackCollection
collection of Tracks
Definition: TrackFwd.h:14
PhotonIsolationCalculator::trkIsoEndcapRadiusB_
double trkIsoEndcapRadiusB_[6]
Definition: PhotonIsolationCalculator.h:105
PhotonIsolationCalculator::useNumCrystals_
bool useNumCrystals_
Definition: PhotonIsolationCalculator.h:93
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37
PhotonIsolationCalculator::barrelecalCollection_
edm::EDGetToken barrelecalCollection_
Definition: PhotonIsolationCalculator.h:84