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]
reco::SuperClusterRef superCluster() const
Ref to SuperCluster.
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
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)
static bool isNextToRingBoundary(EEDetId id)
bool isUninitialized() const
double ecalIsoBarrelRadiusB_[5]
double ecalIsoEndcapRadiusB_[5]
static bool isNextToDBoundary(EEDetId id)
edm::EDGetToken trackInputTag_
int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
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_