46 std::vector<int>
const & flagsEB, std::vector<int>
const & flagsEE,
47 std::vector<int>
const & severitiesEB, std::vector<int>
const & severitiesEE,
56 if (not hcRHC.label().empty())
190 bool isEBPho =
false;
191 bool isEEPho =
false;
192 bool isEBEtaGap =
false;
193 bool isEBPhiGap =
false;
194 bool isEERingGap =
false;
195 bool isEEDeeGap =
false;
196 bool isEBEEGap =
false;
197 classify(pho, isEBPho, isEEPho, isEBEtaGap, isEBPhiGap, isEERingGap, isEEDeeGap, isEBEEGap);
198 phofid.
isEB = isEBPho;
199 phofid.
isEE = isEEPho;
211 DetId seedXtalId = seedCluster.hitsAndFractions()[0].first ;
216 double photonEcalRecHitConeInnerRadiusA_;
217 double photonEcalRecHitConeOuterRadiusA_;
218 double photonEcalRecHitEtaSliceA_;
219 double photonEcalRecHitThreshEA_;
220 double photonEcalRecHitThreshEtA_;
221 double photonHcalTowerConeInnerRadiusA_;
222 double photonHcalTowerConeOuterRadiusA_;
223 double photonHcalTowerThreshEA_;
224 double photonHcalDepth1TowerConeInnerRadiusA_;
225 double photonHcalDepth1TowerConeOuterRadiusA_;
226 double photonHcalDepth1TowerThreshEA_;
227 double photonHcalDepth2TowerConeInnerRadiusA_;
228 double photonHcalDepth2TowerConeOuterRadiusA_;
229 double photonHcalDepth2TowerThreshEA_;
230 double trackConeOuterRadiusA_;
231 double trackConeInnerRadiusA_;
232 double isolationtrackThresholdA_;
233 double isolationtrackEtaSliceA_;
234 double trackLipRadiusA_;
235 double trackD0RadiusA_;
236 double photonEcalRecHitConeInnerRadiusB_;
237 double photonEcalRecHitConeOuterRadiusB_;
238 double photonEcalRecHitEtaSliceB_;
239 double photonEcalRecHitThreshEB_;
240 double photonEcalRecHitThreshEtB_;
241 double photonHcalTowerConeInnerRadiusB_;
242 double photonHcalTowerConeOuterRadiusB_;
243 double photonHcalTowerThreshEB_;
244 double photonHcalDepth1TowerConeInnerRadiusB_;
245 double photonHcalDepth1TowerConeOuterRadiusB_;
246 double photonHcalDepth1TowerThreshEB_;
247 double photonHcalDepth2TowerConeInnerRadiusB_;
248 double photonHcalDepth2TowerConeOuterRadiusB_;
249 double photonHcalDepth2TowerThreshEB_;
250 double trackConeOuterRadiusB_;
251 double trackConeInnerRadiusB_;
252 double isolationtrackThresholdB_;
253 double isolationtrackEtaSliceB_;
254 double trackLipRadiusB_;
255 double trackD0RadiusB_;
364 trackConeOuterRadiusA_, trackConeInnerRadiusA_, isolationtrackEtaSliceA_, trackLipRadiusA_, trackD0RadiusA_);
370 trackConeOuterRadiusA_, 0., isolationtrackEtaSliceA_, trackLipRadiusA_, trackD0RadiusA_ );
381 trackConeOuterRadiusB_, trackConeInnerRadiusB_, isolationtrackEtaSliceB_, trackLipRadiusB_, trackD0RadiusB_ );
387 trackConeOuterRadiusB_, 0., isolationtrackEtaSliceB_, trackLipRadiusB_, trackD0RadiusB_);
398 photonEcalRecHitConeOuterRadiusA_,
399 photonEcalRecHitConeInnerRadiusA_,
400 photonEcalRecHitEtaSliceA_,
401 photonEcalRecHitThreshEA_,
402 photonEcalRecHitThreshEtA_,
408 photonEcalRecHitConeOuterRadiusB_,
409 photonEcalRecHitConeInnerRadiusB_,
410 photonEcalRecHitEtaSliceB_,
411 photonEcalRecHitThreshEB_,
412 photonEcalRecHitThreshEtB_,
419 photonHcalTowerConeInnerRadiusA_,
420 photonHcalTowerThreshEA_, -1 );
425 photonHcalTowerConeInnerRadiusB_,
426 photonHcalTowerThreshEB_, -1 );
431 double HcalDepth1TowerIsoA =
calculateHcalTowerIso(pho, e, es, photonHcalDepth1TowerConeOuterRadiusA_,
432 photonHcalDepth1TowerConeInnerRadiusA_,
433 photonHcalDepth1TowerThreshEA_, 1 );
437 double HcalDepth1TowerIsoB =
calculateHcalTowerIso(pho, e, es, photonHcalDepth1TowerConeOuterRadiusB_,
438 photonHcalDepth1TowerConeInnerRadiusB_,
439 photonHcalDepth1TowerThreshEB_, 1 );
446 double HcalDepth2TowerIsoA =
calculateHcalTowerIso(pho, e, es, photonHcalDepth2TowerConeOuterRadiusA_,
447 photonHcalDepth2TowerConeInnerRadiusA_,
448 photonHcalDepth2TowerThreshEA_, 2 );
452 double HcalDepth2TowerIsoB =
calculateHcalTowerIso(pho, e, es, photonHcalDepth2TowerConeOuterRadiusB_,
453 photonHcalDepth2TowerConeInnerRadiusB_,
454 photonHcalDepth2TowerThreshEB_, 2 );
460 photonHcalTowerThreshEA_, -1 );
465 photonHcalTowerThreshEB_, -1 );
470 double HcalDepth1TowerBcIsoA =
calculateHcalTowerIso(pho, e, es, photonHcalDepth1TowerConeOuterRadiusA_,
471 photonHcalDepth1TowerThreshEA_, 1 );
475 double HcalDepth1TowerBcIsoB =
calculateHcalTowerIso(pho, e, es, photonHcalDepth1TowerConeOuterRadiusB_,
476 photonHcalDepth1TowerThreshEB_, 1 );
483 double HcalDepth2TowerBcIsoA =
calculateHcalTowerIso(pho, e, es, photonHcalDepth2TowerConeOuterRadiusA_,
484 photonHcalDepth2TowerThreshEA_, 2 );
488 double HcalDepth2TowerBcIsoB =
calculateHcalTowerIso(pho, e, es, photonHcalDepth2TowerConeOuterRadiusB_,
489 photonHcalDepth2TowerThreshEB_, 2 );
516 double feta = fabs(eta);
523 if (fabs(feta-1.479)<.1) isEBEEGap =
true ;
537 if (fabs(feta-1.479)<.1) isEBEEGap =
true ;
560 ntrkCone =0;trkCone=0;
572 vertexBeamSpot = *recoBeamSpotHandle;
583 std::pair<int,double>
res = phoIso.
getIso(photon);
584 ntrkCone = res.first;
585 trkCone = res.second;
599 bool useNumXtals)
const 624 *rechitsCollectionEB_,
632 double ecalIsolEB = phoIsoEB.
getEtSum(photon);
640 *rechitsCollectionEE_,
649 double ecalIsolEE = phoIsoEE.
getEtSum(photon);
651 double ecalIsol = ecalIsolEB + ecalIsolEE;
662 signed int depth )
const 692 signed int depth )
const T getParameter(std::string const &) const
double z0() const
z coordinate
float hcalDepth1TowerSumEtBc
double ecalIsoBarrelRadiusA_[5]
float hcalDepth1TowerSumEt
std::vector< int > flagsEE_
static bool isNextToEtaBoundary(EBDetId id)
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
double modulePhiBoundary_
double hcalIsoBarrelRadiusB_[9]
bool getByToken(EDGetToken token, Handle< PROD > &result) const
double getEtSum(const reco::Candidate *emObject) const
edm::EDGetToken barrelecalCollection_
edm::EDGetToken endcapecalCollection_
std::vector< Track > TrackCollection
collection of Tracks
double trkIsoEndcapRadiusB_[6]
const std::vector< std::pair< DetId, float > > & hitsAndFractions() const
std::vector< int > severityExclEE_
double trkIsoBarrelRadiusB_[6]
float hcalDepth2TowerSumEt
reco::SuperClusterRef superCluster() const override
Ref to SuperCluster.
edm::EDGetToken hcalCollection_
double hcalIsoBarrelRadiusA_[9]
void doFlagChecks(const std::vector< int > &v)
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 setUseNumCrystals(bool b=true)
double hcalIsoEndcapRadiusA_[9]
std::vector< int > flagsEB_
std::vector< int > severityExclEB_
double trkIsoBarrelRadiusA_[6]
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)
static bool isNextToPhiBoundary(EBDetId id)
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
static bool isNextToRingBoundary(EEDetId id)
bool isUninitialized() const
double ecalIsoBarrelRadiusB_[5]
double ecalIsoEndcapRadiusB_[5]
static bool isNextToDBoundary(EEDetId id)
edm::EDGetToken trackInputTag_
std::pair< int, float > getIso(const reco::Candidate *) const
void doSeverityChecks(const EcalRecHitCollection *const recHits, const std::vector< int > &v)
float hcalDepth2TowerSumEtBc
T const * product() const
XYZPointD XYZPoint
point in space with cartesian internal representation
double trkIsoEndcapRadiusA_[6]
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
std::vector< double > moduleEtaBoundary_
void setVetoClustered(bool b=true)
edm::EDGetToken beamSpotProducerTag_
double getTowerEtSum(const reco::Candidate *cand, const std::vector< CaloTowerDetId > *detIdToExclude=0) const
double y0() const
y coordinate
const std::vector< CaloTowerDetId > & hcalTowersBehindClusters() const
static void classify(const reco::Photon *photon, bool &isEBPho, bool &isEEPho, bool &isEBEtaGap, bool &isEBPhiGap, bool &isEERingGap, bool &isEEDeeGap, bool &isEBEEGap)
double ecalIsoEndcapRadiusA_[5]
T const * product() const
double x0() const
x coordinate
double hcalIsoEndcapRadiusB_[9]
bool vetoClusteredEcalHits_