47 std::vector<int>
const & flagsEB, std::vector<int>
const & flagsEE,
48 std::vector<int>
const & severitiesEB, std::vector<int>
const & severitiesEE) {
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;
209 DetId seedXtalId = seedCluster.hitsAndFractions()[0].first ;
210 int detector = seedXtalId.
subdetId() ;
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_;
362 trackConeOuterRadiusA_, trackConeInnerRadiusA_, isolationtrackEtaSliceA_, trackLipRadiusA_, trackD0RadiusA_);
368 trackConeOuterRadiusA_, 0., isolationtrackEtaSliceA_, trackLipRadiusA_, trackD0RadiusA_ );
379 trackConeOuterRadiusB_, trackConeInnerRadiusB_, isolationtrackEtaSliceB_, trackLipRadiusB_, trackD0RadiusB_ );
385 trackConeOuterRadiusB_, 0., isolationtrackEtaSliceB_, trackLipRadiusB_, trackD0RadiusB_);
396 photonEcalRecHitConeOuterRadiusA_,
397 photonEcalRecHitConeInnerRadiusA_,
398 photonEcalRecHitEtaSliceA_,
399 photonEcalRecHitThreshEA_,
400 photonEcalRecHitThreshEtA_,
406 photonEcalRecHitConeOuterRadiusB_,
407 photonEcalRecHitConeInnerRadiusB_,
408 photonEcalRecHitEtaSliceB_,
409 photonEcalRecHitThreshEB_,
410 photonEcalRecHitThreshEtB_,
417 photonHcalTowerConeInnerRadiusA_,
418 photonHcalTowerThreshEA_, -1 );
423 photonHcalTowerConeInnerRadiusB_,
424 photonHcalTowerThreshEB_, -1 );
429 double HcalDepth1TowerIsoA =
calculateHcalTowerIso(pho, e, es, photonHcalDepth1TowerConeOuterRadiusA_,
430 photonHcalDepth1TowerConeInnerRadiusA_,
431 photonHcalDepth1TowerThreshEA_, 1 );
435 double HcalDepth1TowerIsoB =
calculateHcalTowerIso(pho, e, es, photonHcalDepth1TowerConeOuterRadiusB_,
436 photonHcalDepth1TowerConeInnerRadiusB_,
437 photonHcalDepth1TowerThreshEB_, 1 );
444 double HcalDepth2TowerIsoA =
calculateHcalTowerIso(pho, e, es, photonHcalDepth2TowerConeOuterRadiusA_,
445 photonHcalDepth2TowerConeInnerRadiusA_,
446 photonHcalDepth2TowerThreshEA_, 2 );
450 double HcalDepth2TowerIsoB =
calculateHcalTowerIso(pho, e, es, photonHcalDepth2TowerConeOuterRadiusB_,
451 photonHcalDepth2TowerConeInnerRadiusB_,
452 photonHcalDepth2TowerThreshEB_, 2 );
458 photonHcalTowerThreshEA_, -1 );
463 photonHcalTowerThreshEB_, -1 );
468 double HcalDepth1TowerBcIsoA =
calculateHcalTowerIso(pho, e, es, photonHcalDepth1TowerConeOuterRadiusA_,
469 photonHcalDepth1TowerThreshEA_, 1 );
473 double HcalDepth1TowerBcIsoB =
calculateHcalTowerIso(pho, e, es, photonHcalDepth1TowerConeOuterRadiusB_,
474 photonHcalDepth1TowerThreshEB_, 1 );
481 double HcalDepth2TowerBcIsoA =
calculateHcalTowerIso(pho, e, es, photonHcalDepth2TowerConeOuterRadiusA_,
482 photonHcalDepth2TowerThreshEA_, 2 );
486 double HcalDepth2TowerBcIsoB =
calculateHcalTowerIso(pho, e, es, photonHcalDepth2TowerConeOuterRadiusB_,
487 photonHcalDepth2TowerThreshEB_, 2 );
510 int detector = seedXtalId.
subdetId() ;
514 double feta = fabs(eta);
521 if (fabs(feta-1.479)<.1) isEBEEGap =
true ;
535 if (fabs(feta-1.479)<.1) isEBEEGap =
true ;
558 ntrkCone =0;trkCone=0;
570 vertexBeamSpot = *recoBeamSpotHandle;
581 std::pair<int,double> res = phoIso.
getIso(photon);
582 ntrkCone = res.first;
583 trkCone = res.second;
596 bool vetoClusteredHits,
597 bool useNumXtals)
const
634 double ecalIsolEB = phoIsoEB.
getEtSum(photon);
651 double ecalIsolEE = phoIsoEE.
getEtSum(photon);
653 double ecalIsol = ecalIsolEB + ecalIsolEE;
664 signed int depth )
const
695 signed int depth )
const
static void classify(const reco::Photon *photon, bool &isEBPho, bool &isEEPho, bool &isEBEtaGap, bool &isEBPhiGap, bool &isEERingGap, bool &isEEDeeGap, bool &isEBEEGap) dso_internal
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]
double getEtSum(const reco::Candidate *emObject) const
std::vector< Track > TrackCollection
collection of Tracks
double trkIsoEndcapRadiusB_[6]
reco::SuperClusterRef superCluster() const
Ref to SuperCluster.
edm::InputTag barrelecalCollection_
const std::vector< std::pair< DetId, float > > & hitsAndFractions() const
std::vector< int > severityExclEE_
double trkIsoBarrelRadiusB_[6]
float hcalDepth2TowerSumEt
double hcalIsoBarrelRadiusA_[9]
void doFlagChecks(const std::vector< int > &v)
edm::InputTag endcapecalCollection_
void setUseNumCrystals(bool b=true)
double hcalIsoEndcapRadiusA_[9]
std::vector< int > flagsEB_
double calculateHcalTowerIso(const reco::Photon *photon, const edm::Event &iEvent, const edm::EventSetup &iSetup, double RCone, double RConeInner, double eMin, signed int depth) const dso_internal
edm::InputTag hcalCollection_
std::vector< int > severityExclEB_
double trkIsoBarrelRadiusA_[6]
static bool isNextToPhiBoundary(EBDetId id)
edm::InputTag trackInputTag_
static bool isNextToRingBoundary(EEDetId id)
double ecalIsoBarrelRadiusB_[5]
double ecalIsoEndcapRadiusB_[5]
static bool isNextToDBoundary(EEDetId id)
int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
std::pair< int, float > getIso(const reco::Candidate *) const
void doSeverityChecks(const EcalRecHitCollection *const recHits, const std::vector< int > &v)
float hcalDepth2TowerSumEtBc
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 dso_internal
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::InputTag beamSpotProducerTag_
XYZPointD XYZPoint
point in space with cartesian internal representation
T const * product() const
T const * product() const
double trkIsoEndcapRadiusA_[6]
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 dso_internal
std::vector< double > moduleEtaBoundary_
void setVetoClustered(bool b=true)
double getTowerEtSum(const reco::Candidate *cand, const std::vector< CaloTowerDetId > *detIdToExclude=0) const
double y0() const
y coordinate
const std::vector< CaloTowerDetId > & hcalTowersBehindClusters() const
double ecalIsoEndcapRadiusA_[5]
double x0() const
x coordinate
double hcalIsoEndcapRadiusB_[9]
bool vetoClusteredEcalHits_