CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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 RConeInner, double eMin, signed int depth) const
 
double calculateHcalTowerIso (const reco::Photon *photon, const edm::Event &iEvent, const edm::EventSetup &iSetup, double RCone, 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 ( )
inline

Definition at line 21 of file PhotonIsolationCalculator.h.

21 {}
PhotonIsolationCalculator::~PhotonIsolationCalculator ( )
inline

Definition at line 23 of file PhotonIsolationCalculator.h.

23 {}

Member Function Documentation

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.

References calculateEcalRecHitIso(), calculateHcalTowerIso(), calculateTrackIso(), classify(), 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::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_.

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

References barrelecalCollection_, EgammaRecHitIsolation::doFlagChecks(), EgammaRecHitIsolation::doSeverityChecks(), DetId::Ecal, endcapecalCollection_, flagsEB_, flagsEE_, edm::EventSetup::get(), edm::Event::getByToken(), EgammaRecHitIsolation::getEtSum(), edm::Handle< T >::product(), edm::ESHandle< class >::product(), EgammaRecHitIsolation::setUseNumCrystals(), EgammaRecHitIsolation::setVetoClustered(), severityExclEB_, and severityExclEE_.

Referenced by calculate().

598 {
599 
600  edm::Handle<EcalRecHitCollection> ecalhitsCollEB;
601  edm::Handle<EcalRecHitCollection> ecalhitsCollEE;
602  iEvent.getByToken(endcapecalCollection_, ecalhitsCollEE);
603 
604  iEvent.getByToken(barrelecalCollection_, ecalhitsCollEB);
605 
606  const EcalRecHitCollection* rechitsCollectionEE_ = ecalhitsCollEE.product();
607  const EcalRecHitCollection* rechitsCollectionEB_ = ecalhitsCollEB.product();
608 
610  iSetup.get<EcalSeverityLevelAlgoRcd>().get(sevlv);
611  const EcalSeverityLevelAlgo* sevLevel = sevlv.product();
612 
613  edm::ESHandle<CaloGeometry> geoHandle;
614  iSetup.get<CaloGeometryRecord>().get(geoHandle);
615 
616  EgammaRecHitIsolation phoIsoEB(RCone,
617  RConeInner,
618  etaSlice,
619  etMin,
620  eMin,
621  geoHandle,
622  *rechitsCollectionEB_,
623  sevLevel,
624  DetId::Ecal);
625 
626  phoIsoEB.setVetoClustered(vetoClusteredHits);
627  phoIsoEB.setUseNumCrystals(useNumXtals);
628  phoIsoEB.doSeverityChecks(ecalhitsCollEB.product(), severityExclEB_);
629  phoIsoEB.doFlagChecks(flagsEB_);
630  double ecalIsolEB = phoIsoEB.getEtSum(photon);
631 
632  EgammaRecHitIsolation phoIsoEE(RCone,
633  RConeInner,
634  etaSlice,
635  etMin,
636  eMin,
637  geoHandle,
638  *rechitsCollectionEE_,
639  sevLevel,
640  DetId::Ecal);
641 
642  phoIsoEE.setVetoClustered(vetoClusteredHits);
643  phoIsoEE.setUseNumCrystals(useNumXtals);
644  phoIsoEE.doSeverityChecks(ecalhitsCollEE.product(), severityExclEE_);
645  phoIsoEE.doFlagChecks(flagsEE_);
646 
647  double ecalIsolEE = phoIsoEE.getEtSum(photon);
648  // delete phoIso;
649  double ecalIsol = ecalIsolEB + ecalIsolEE;
650 
651  return ecalIsol;
652 }
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:462
T const * product() const
Definition: Handle.h:81
const T & get() const
Definition: EventSetup.h:56
T const * product() const
Definition: ESHandle.h:86
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 654 of file PhotonIsolationCalculator.cc.

References edm::Event::getByToken(), EgammaTowerIsolation::getTowerEtSum(), hcalCollection_, and edm::Handle< T >::product().

Referenced by calculate().

661 {
662 
663  edm::Handle<CaloTowerCollection> hcalhitsCollH;
664 
665  iEvent.getByToken(hcalCollection_, hcalhitsCollH);
666 
667  const CaloTowerCollection *toww = hcalhitsCollH.product();
668 
669  double hcalIsol=0.;
670 
671  //std::cout << "before iso call" << std::endl;
672  EgammaTowerIsolation phoIso(RCone,
673  RConeInner,
674  eMin,depth,
675  toww);
676  hcalIsol = phoIso.getTowerEtSum(photon);
677  // delete phoIso;
678  //std::cout << "after call" << std::endl;
679  return hcalIsol;
680 
681 
682 }
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:462
T const * product() const
Definition: Handle.h:81
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 686 of file PhotonIsolationCalculator.cc.

References edm::Event::getByToken(), EgammaTowerIsolation::getTowerEtSum(), hcalCollection_, reco::Photon::hcalTowersBehindClusters(), and edm::Handle< T >::product().

692 {
693 
694  edm::Handle<CaloTowerCollection> hcalhitsCollH;
695 
696  iEvent.getByToken(hcalCollection_, hcalhitsCollH);
697 
698  const CaloTowerCollection *toww = hcalhitsCollH.product();
699 
700  double hcalIsol=0.;
701 
702  //std::cout << "before iso call" << std::endl;
703  EgammaTowerIsolation phoIso(RCone,
704  0.,
705  eMin,depth,
706  toww);
707  hcalIsol = phoIso.getTowerEtSum(photon, &(photon->hcalTowersBehindClusters()) );
708  // delete phoIso;
709  //std::cout << "after call" << std::endl;
710  return hcalIsol;
711 
712 
713 }
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:462
T const * product() const
Definition: Handle.h:81
const std::vector< CaloTowerDetId > & hcalTowersBehindClusters() const
Definition: Photon.h:215
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 547 of file PhotonIsolationCalculator.cc.

References beamSpotProducerTag_, edm::Event::getByToken(), PhotonTkIsolation::getIso(), edm::HandleBase::isValid(), edm::Handle< T >::product(), HLT_25ns10e33_v2_cff::trackCollection, trackInputTag_, testEve_cfg::tracks, reco::BeamSpot::x0(), reco::BeamSpot::y0(), and reco::BeamSpot::z0().

Referenced by calculate().

556  {
557 
558  ntrkCone =0;trkCone=0;
559  //get the tracks
561  e.getByToken(trackInputTag_,tracks);
562  if(!tracks.isValid()) {
563  return;
564  }
566  //Photon Eta and Phi. Hope these are correct.
567  reco::BeamSpot vertexBeamSpot;
568  edm::Handle<reco::BeamSpot> recoBeamSpotHandle;
569  e.getByToken(beamSpotProducerTag_,recoBeamSpotHandle);
570  vertexBeamSpot = *recoBeamSpotHandle;
571 
572  PhotonTkIsolation phoIso(RCone,
573  RinnerCone,
574  etaSlice,
575  pTThresh,
576  lip ,
577  d0,
578  trackCollection,
579  math::XYZPoint(vertexBeamSpot.x0(),vertexBeamSpot.y0(),vertexBeamSpot.z0()));
580 
581  std::pair<int,double> res = phoIso.getIso(photon);
582  ntrkCone = res.first;
583  trkCone = res.second;
584 }
double z0() const
z coordinate
Definition: BeamSpot.h:68
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:462
std::vector< Track > TrackCollection
collection of Tracks
Definition: TrackFwd.h:14
bool isValid() const
Definition: HandleBase.h:75
T const * product() const
Definition: Handle.h:81
tuple tracks
Definition: testEve_cfg.py:39
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:12
double y0() const
y coordinate
Definition: BeamSpot.h:66
double x0() const
x coordinate
Definition: BeamSpot.h:64
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 495 of file PhotonIsolationCalculator.cc.

References EcalBarrel, EcalEndcap, eta, reco::CaloCluster::hitsAndFractions(), EEDetId::isNextToDBoundary(), EBDetId::isNextToEtaBoundary(), EBDetId::isNextToPhiBoundary(), EEDetId::isNextToRingBoundary(), DetId::subdetId(), reco::Photon::superCluster(), and funct::true.

Referenced by calculate().

502  {
503 
504 
505  const reco::CaloCluster & seedCluster = *(photon->superCluster()->seed()) ;
506  // following line is temporary until the D. Evans or F. Ferri submit the new tag for ClusterAlgos
507  // DEfinitive will be
508  // DetId seedXtalId = scRef->seed()->seed();
509  DetId seedXtalId = seedCluster.hitsAndFractions()[0].first ;
510  int detector = seedXtalId.subdetId() ;
511 
512  //Set fiducial flags for this photon.
513  double eta = photon->superCluster()->position().eta();
514  double feta = fabs(eta);
515 
516  if (detector==EcalBarrel) {
517 
518 
519  isEBPho = true;
520  if (EBDetId::isNextToEtaBoundary(EBDetId(seedXtalId))) {
521  if (fabs(feta-1.479)<.1) isEBEEGap = true ;
522  else
523  isEBEtaGap = true ;
524  }
525 
526  if (EBDetId::isNextToPhiBoundary(EBDetId(seedXtalId)))
527  isEBPhiGap = true ;
528 
529 
530 
531  } else if (detector==EcalEndcap) {
532 
533  isEEPho = true;
534  if (EEDetId::isNextToRingBoundary(EEDetId(seedXtalId))) {
535  if (fabs(feta-1.479)<.1) isEBEEGap = true ;
536  else
537  isEERingGap = true ;
538  }
539 
540  if (EEDetId::isNextToDBoundary(EEDetId(seedXtalId)))
541  isEEDeeGap = true ;
542  }
543 
544 
545 }
static bool isNextToEtaBoundary(EBDetId id)
Definition: EBDetId.cc:125
reco::SuperClusterRef superCluster() const
Ref to SuperCluster.
const std::vector< std::pair< DetId, float > > & hitsAndFractions() const
Definition: CaloCluster.h:192
static bool isNextToPhiBoundary(EBDetId id)
Definition: EBDetId.cc:130
static bool isNextToRingBoundary(EEDetId id)
Definition: EEDetId.cc:375
static bool isNextToDBoundary(EEDetId id)
Definition: EEDetId.cc:367
int subdetId() const
get the contents of the subdetector field (not cast into any detector&#39;s numbering enum) ...
Definition: DetId.h:37
Definition: DetId.h:18
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 45 of file PhotonIsolationCalculator.cc.

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

Referenced by GEDPhotonProducer::GEDPhotonProducer(), and PhotonProducer::PhotonProducer().

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

Member Data Documentation

edm::EDGetToken PhotonIsolationCalculator::barrelecalCollection_
private

Definition at line 98 of file PhotonIsolationCalculator.h.

Referenced by calculateEcalRecHitIso(), and setup().

edm::EDGetToken PhotonIsolationCalculator::beamSpotProducerTag_
private

Definition at line 103 of file PhotonIsolationCalculator.h.

Referenced by calculateTrackIso(), and setup().

double PhotonIsolationCalculator::ecalIsoBarrelRadiusA_[5]
private

Definition at line 110 of file PhotonIsolationCalculator.h.

Referenced by calculate(), and setup().

double PhotonIsolationCalculator::ecalIsoBarrelRadiusB_[5]
private

Definition at line 113 of file PhotonIsolationCalculator.h.

Referenced by calculate(), and setup().

double PhotonIsolationCalculator::ecalIsoEndcapRadiusA_[5]
private

Definition at line 117 of file PhotonIsolationCalculator.h.

Referenced by calculate(), and setup().

double PhotonIsolationCalculator::ecalIsoEndcapRadiusB_[5]
private

Definition at line 120 of file PhotonIsolationCalculator.h.

Referenced by calculate(), and setup().

edm::EDGetToken PhotonIsolationCalculator::endcapecalCollection_
private

Definition at line 99 of file PhotonIsolationCalculator.h.

Referenced by calculateEcalRecHitIso(), and setup().

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

Definition at line 124 of file PhotonIsolationCalculator.h.

Referenced by calculateEcalRecHitIso(), and setup().

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

Definition at line 125 of file PhotonIsolationCalculator.h.

Referenced by calculateEcalRecHitIso(), and setup().

edm::EDGetToken PhotonIsolationCalculator::hcalCollection_
private

Definition at line 100 of file PhotonIsolationCalculator.h.

Referenced by calculateHcalTowerIso(), and setup().

double PhotonIsolationCalculator::hcalIsoBarrelRadiusA_[9]
private

Definition at line 111 of file PhotonIsolationCalculator.h.

Referenced by calculate(), and setup().

double PhotonIsolationCalculator::hcalIsoBarrelRadiusB_[9]
private

Definition at line 114 of file PhotonIsolationCalculator.h.

Referenced by calculate(), and setup().

double PhotonIsolationCalculator::hcalIsoEndcapRadiusA_[9]
private

Definition at line 118 of file PhotonIsolationCalculator.h.

Referenced by calculate(), and setup().

double PhotonIsolationCalculator::hcalIsoEndcapRadiusB_[9]
private

Definition at line 121 of file PhotonIsolationCalculator.h.

Referenced by calculate(), and setup().

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

Definition at line 105 of file PhotonIsolationCalculator.h.

Referenced by setup().

double PhotonIsolationCalculator::modulePhiBoundary_
private

Definition at line 104 of file PhotonIsolationCalculator.h.

Referenced by setup().

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

Definition at line 126 of file PhotonIsolationCalculator.h.

Referenced by calculateEcalRecHitIso(), and setup().

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

Definition at line 127 of file PhotonIsolationCalculator.h.

Referenced by calculateEcalRecHitIso(), and setup().

edm::EDGetToken PhotonIsolationCalculator::trackInputTag_
private

Definition at line 102 of file PhotonIsolationCalculator.h.

Referenced by calculateTrackIso(), and setup().

double PhotonIsolationCalculator::trkIsoBarrelRadiusA_[6]
private

Definition at line 109 of file PhotonIsolationCalculator.h.

Referenced by calculate(), and setup().

double PhotonIsolationCalculator::trkIsoBarrelRadiusB_[6]
private

Definition at line 112 of file PhotonIsolationCalculator.h.

Referenced by calculate(), and setup().

double PhotonIsolationCalculator::trkIsoEndcapRadiusA_[6]
private

Definition at line 116 of file PhotonIsolationCalculator.h.

Referenced by calculate(), and setup().

double PhotonIsolationCalculator::trkIsoEndcapRadiusB_[6]
private

Definition at line 119 of file PhotonIsolationCalculator.h.

Referenced by calculate(), and setup().

bool PhotonIsolationCalculator::useNumCrystals_
private

Definition at line 107 of file PhotonIsolationCalculator.h.

Referenced by calculate(), and setup().

bool PhotonIsolationCalculator::vetoClusteredEcalHits_
private

Definition at line 106 of file PhotonIsolationCalculator.h.

Referenced by calculate(), and setup().