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 17 of file PhotonIsolationCalculator.h.

Constructor & Destructor Documentation

◆ PhotonIsolationCalculator()

PhotonIsolationCalculator::PhotonIsolationCalculator ( )
inline

Definition at line 19 of file PhotonIsolationCalculator.h.

19 {}

◆ ~PhotonIsolationCalculator()

PhotonIsolationCalculator::~PhotonIsolationCalculator ( )
inline

Definition at line 21 of file PhotonIsolationCalculator.h.

21 {}

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

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

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(), and GEDPhotonProducer::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 605 of file PhotonIsolationCalculator.cc.

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

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_, severityExclEE_, and conversionTrackCandidates_cfi::vetoClusteredHits.

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

685  {
686  double hcalIsol = 0.;
687 
688  if (not hcalCollection_.isUninitialized()) {
689  edm::Handle<CaloTowerCollection> hcalhitsCollH;
690  iEvent.getByToken(hcalCollection_, hcalhitsCollH);
691 
692  const CaloTowerCollection* toww = hcalhitsCollH.product();
693 
694  //std::cout << "before iso call" << std::endl;
695  EgammaTowerIsolation phoIso(RCone, 0., eMin, depth, toww);
696  hcalIsol = phoIso.getTowerEtSum(photon, &(photon->hcalTowersBehindClusters()));
697  // delete phoIso;
698  //std::cout << "after call" << std::endl;
699  }
700 
701  return hcalIsol;
702 }

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

661  {
662  double hcalIsol = 0.;
663 
664  if (not hcalCollection_.isUninitialized()) {
665  edm::Handle<CaloTowerCollection> hcalhitsCollH;
666  iEvent.getByToken(hcalCollection_, hcalhitsCollH);
667 
668  const CaloTowerCollection* toww = hcalhitsCollH.product();
669 
670  //std::cout << "before iso call" << std::endl;
671  EgammaTowerIsolation phoIso(RCone, RConeInner, eMin, depth, toww);
672  hcalIsol = phoIso.getTowerEtSum(photon);
673  // delete phoIso;
674  //std::cout << "after call" << std::endl;
675  }
676 
677  return hcalIsol;
678 }

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

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

References beamSpotProducerTag_, d0, MillePedeFileConverter_cfg::e, PhotonTkIsolation::getIso(), qcdUeDQM_cfi::lip, muons2muons_cfi::photon, duplicaterechits_cfi::trackCollection, trackInputTag_, PDWG_EXOHSCP_cff::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 521 of file PhotonIsolationCalculator.cc.

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

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

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

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 GEDPhotonProducer::GEDPhotonProducer(), and PhotonProducer::PhotonProducer().

Member Data Documentation

◆ barrelecalCollection_

edm::EDGetToken PhotonIsolationCalculator::barrelecalCollection_
private

Definition at line 85 of file PhotonIsolationCalculator.h.

Referenced by calculateEcalRecHitIso(), and setup().

◆ beamSpotProducerTag_

edm::EDGetToken PhotonIsolationCalculator::beamSpotProducerTag_
private

Definition at line 90 of file PhotonIsolationCalculator.h.

Referenced by calculateTrackIso(), and setup().

◆ ecalIsoBarrelRadiusA_

double PhotonIsolationCalculator::ecalIsoBarrelRadiusA_[5]
private

Definition at line 97 of file PhotonIsolationCalculator.h.

Referenced by calculate(), and setup().

◆ ecalIsoBarrelRadiusB_

double PhotonIsolationCalculator::ecalIsoBarrelRadiusB_[5]
private

Definition at line 100 of file PhotonIsolationCalculator.h.

Referenced by calculate(), and setup().

◆ ecalIsoEndcapRadiusA_

double PhotonIsolationCalculator::ecalIsoEndcapRadiusA_[5]
private

Definition at line 104 of file PhotonIsolationCalculator.h.

Referenced by calculate(), and setup().

◆ ecalIsoEndcapRadiusB_

double PhotonIsolationCalculator::ecalIsoEndcapRadiusB_[5]
private

Definition at line 107 of file PhotonIsolationCalculator.h.

Referenced by calculate(), and setup().

◆ endcapecalCollection_

edm::EDGetToken PhotonIsolationCalculator::endcapecalCollection_
private

Definition at line 86 of file PhotonIsolationCalculator.h.

Referenced by calculateEcalRecHitIso(), and setup().

◆ flagsEB_

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

Definition at line 110 of file PhotonIsolationCalculator.h.

Referenced by calculateEcalRecHitIso(), and setup().

◆ flagsEE_

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

Definition at line 111 of file PhotonIsolationCalculator.h.

Referenced by calculateEcalRecHitIso(), and setup().

◆ hcalCollection_

edm::EDGetToken PhotonIsolationCalculator::hcalCollection_
private

Definition at line 87 of file PhotonIsolationCalculator.h.

Referenced by calculateHcalTowerIso(), and setup().

◆ hcalIsoBarrelRadiusA_

double PhotonIsolationCalculator::hcalIsoBarrelRadiusA_[9]
private

Definition at line 98 of file PhotonIsolationCalculator.h.

Referenced by calculate(), and setup().

◆ hcalIsoBarrelRadiusB_

double PhotonIsolationCalculator::hcalIsoBarrelRadiusB_[9]
private

Definition at line 101 of file PhotonIsolationCalculator.h.

Referenced by calculate(), and setup().

◆ hcalIsoEndcapRadiusA_

double PhotonIsolationCalculator::hcalIsoEndcapRadiusA_[9]
private

Definition at line 105 of file PhotonIsolationCalculator.h.

Referenced by calculate(), and setup().

◆ hcalIsoEndcapRadiusB_

double PhotonIsolationCalculator::hcalIsoEndcapRadiusB_[9]
private

Definition at line 108 of file PhotonIsolationCalculator.h.

Referenced by calculate(), and setup().

◆ moduleEtaBoundary_

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

Definition at line 92 of file PhotonIsolationCalculator.h.

Referenced by setup().

◆ modulePhiBoundary_

double PhotonIsolationCalculator::modulePhiBoundary_
private

Definition at line 91 of file PhotonIsolationCalculator.h.

Referenced by setup().

◆ severityExclEB_

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

Definition at line 112 of file PhotonIsolationCalculator.h.

Referenced by calculateEcalRecHitIso(), and setup().

◆ severityExclEE_

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

Definition at line 113 of file PhotonIsolationCalculator.h.

Referenced by calculateEcalRecHitIso(), and setup().

◆ trackInputTag_

edm::EDGetToken PhotonIsolationCalculator::trackInputTag_
private

Definition at line 89 of file PhotonIsolationCalculator.h.

Referenced by calculateTrackIso(), and setup().

◆ trkIsoBarrelRadiusA_

double PhotonIsolationCalculator::trkIsoBarrelRadiusA_[6]
private

Definition at line 96 of file PhotonIsolationCalculator.h.

Referenced by calculate(), and setup().

◆ trkIsoBarrelRadiusB_

double PhotonIsolationCalculator::trkIsoBarrelRadiusB_[6]
private

Definition at line 99 of file PhotonIsolationCalculator.h.

Referenced by calculate(), and setup().

◆ trkIsoEndcapRadiusA_

double PhotonIsolationCalculator::trkIsoEndcapRadiusA_[6]
private

Definition at line 103 of file PhotonIsolationCalculator.h.

Referenced by calculate(), and setup().

◆ trkIsoEndcapRadiusB_

double PhotonIsolationCalculator::trkIsoEndcapRadiusB_[6]
private

Definition at line 106 of file PhotonIsolationCalculator.h.

Referenced by calculate(), and setup().

◆ useNumCrystals_

bool PhotonIsolationCalculator::useNumCrystals_
private

Definition at line 94 of file PhotonIsolationCalculator.h.

Referenced by calculate(), and setup().

◆ vetoClusteredEcalHits_

bool PhotonIsolationCalculator::vetoClusteredEcalHits_
private

Definition at line 93 of file PhotonIsolationCalculator.h.

Referenced by calculate(), and setup().

PhotonIsolationCalculator::vetoClusteredEcalHits_
bool vetoClusteredEcalHits_
Definition: PhotonIsolationCalculator.h:93
edm::ESHandle::product
T const * product() const
Definition: ESHandle.h:86
PhotonTkIsolation
Definition: PhotonTkIsolation.h:22
EcalSeverityLevelAlgo
Definition: EcalSeverityLevelAlgo.h:33
PhotonIsolationCalculator::flagsEB_
std::vector< int > flagsEB_
Definition: PhotonIsolationCalculator.h:110
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
PDWG_EXOHSCP_cff.tracks
tracks
Definition: PDWG_EXOHSCP_cff.py:28
mps_fire.i
i
Definition: mps_fire.py:355
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:100
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:105
CaloGeometryRecord
Definition: CaloGeometryRecord.h:30
EBDetId
Definition: EBDetId.h:17
PhotonIsolationCalculator::trkIsoBarrelRadiusB_
double trkIsoBarrelRadiusB_[6]
Definition: PhotonIsolationCalculator.h:99
edm::SortedCollection< EcalRecHit >
PhotonIsolationCalculator::ecalIsoEndcapRadiusB_
double ecalIsoEndcapRadiusB_[5]
Definition: PhotonIsolationCalculator.h:107
PhotonIsolationCalculator::flagsEE_
std::vector< int > flagsEE_
Definition: PhotonIsolationCalculator.h:111
PhotonIsolationCalculator::hcalIsoEndcapRadiusB_
double hcalIsoEndcapRadiusB_[9]
Definition: PhotonIsolationCalculator.h:108
EgammaRecHitIsolation
Definition: EgammaRecHitIsolation.h:26
edm::Handle
Definition: AssociativeIterator.h:50
PhotonIsolationCalculator::moduleEtaBoundary_
std::vector< double > moduleEtaBoundary_
Definition: PhotonIsolationCalculator.h:92
EcalBarrel
Definition: EcalSubdetector.h:10
PhotonIsolationCalculator::trkIsoEndcapRadiusA_
double trkIsoEndcapRadiusA_[6]
Definition: PhotonIsolationCalculator.h:103
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:98
PhotonIsolationCalculator::beamSpotProducerTag_
edm::EDGetToken beamSpotProducerTag_
Definition: PhotonIsolationCalculator.h:90
PhotonIsolationCalculator::hcalIsoBarrelRadiusB_
double hcalIsoBarrelRadiusB_[9]
Definition: PhotonIsolationCalculator.h:101
edm::EventSetup::get
T get() const
Definition: EventSetup.h:73
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:69
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:97
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:655
reco::BeamSpot
Definition: BeamSpot.h:21
edm::ESHandle< EcalSeverityLevelAlgo >
EcalSeverityLevelAlgoRcd
Definition: EcalSeverityLevelAlgoRcd.h:12
edm::EDGetToken::isUninitialized
bool isUninitialized() const
Definition: EDGetToken.h:46
edm::ConsumesCollector::consumes
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
Definition: ConsumesCollector.h:49
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:87
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
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:89
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:605
EgammaTowerIsolation
Definition: EgammaTowerIsolation.h:196
iEvent
int iEvent
Definition: GenABIO.cc:224
PhotonIsolationCalculator::severityExclEE_
std::vector< int > severityExclEE_
Definition: PhotonIsolationCalculator.h:113
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:521
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:566
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
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
PhotonIsolationCalculator::endcapecalCollection_
edm::EDGetToken endcapecalCollection_
Definition: PhotonIsolationCalculator.h:86
reco::BeamSpot::x0
double x0() const
x coordinate
Definition: BeamSpot.h:61
PhotonIsolationCalculator::ecalIsoEndcapRadiusA_
double ecalIsoEndcapRadiusA_[5]
Definition: PhotonIsolationCalculator.h:104
EEDetId::isNextToDBoundary
static bool isNextToDBoundary(EEDetId id)
Definition: EEDetId.cc:279
PhotonIsolationCalculator::trkIsoBarrelRadiusA_
double trkIsoBarrelRadiusA_[6]
Definition: PhotonIsolationCalculator.h:96
PhotonIsolationCalculator::modulePhiBoundary_
double modulePhiBoundary_
Definition: PhotonIsolationCalculator.h:91
hgcalTestNeighbor_cfi.detector
detector
Definition: hgcalTestNeighbor_cfi.py:6
PhotonIsolationCalculator::severityExclEB_
std::vector< int > severityExclEB_
Definition: PhotonIsolationCalculator.h:112
reco::BeamSpot::y0
double y0() const
y coordinate
Definition: BeamSpot.h:63
d0
static constexpr float d0
Definition: L1EGammaCrystalsEmulatorProducer.cc:84
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:106
PhotonIsolationCalculator::useNumCrystals_
bool useNumCrystals_
Definition: PhotonIsolationCalculator.h:94
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37
conversionTrackCandidates_cfi.vetoClusteredHits
vetoClusteredHits
Definition: conversionTrackCandidates_cfi.py:60
PhotonIsolationCalculator::barrelecalCollection_
edm::EDGetToken barrelecalCollection_
Definition: PhotonIsolationCalculator.h:85