CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
photonIsolationHIProducer Class Reference
Inheritance diagram for photonIsolationHIProducer:
edm::stream::EDProducer<>

Public Member Functions

 photonIsolationHIProducer (const edm::ParameterSet &ps)
 
- Public Member Functions inherited from edm::stream::EDProducer<>
 EDProducer ()=default
 
 EDProducer (const EDProducer &)=delete
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
const EDProduceroperator= (const EDProducer &)=delete
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 

Private Member Functions

void produce (edm::Event &evt, const edm::EventSetup &es) override
 

Private Attributes

edm::EDGetTokenT< reco::BasicClusterCollectionbarrelClusters_
 
edm::EDGetTokenT< EcalRecHitCollectionbarrelEcalHits_
 
const EcalClusterLazyTools::ESGetTokens ecalClusterToolsESGetTokens_
 
edm::EDGetTokenT< reco::BasicClusterCollectionendcapClusters_
 
edm::EDGetTokenT< EcalRecHitCollectionendcapEcalHits_
 
edm::EDGetTokenT< HBHERecHitCollectionhbhe_
 
edm::EDGetTokenT< HFRecHitCollectionhf_
 
edm::EDGetTokenT< HORecHitCollectionho_
 
edm::EDGetTokenT< reco::PhotonCollectionphotonProducer_
 
std::string trackQuality_
 
edm::EDGetTokenT< reco::TrackCollectiontracks_
 

Additional Inherited Members

- Public Types inherited from edm::stream::EDProducer<>
using CacheTypes = CacheContexts< T... >
 
using GlobalCache = typename CacheTypes::GlobalCache
 
using HasAbility = AbilityChecker< T... >
 
using InputProcessBlockCache = typename CacheTypes::InputProcessBlockCache
 
using LuminosityBlockCache = typename CacheTypes::LuminosityBlockCache
 
using LuminosityBlockContext = LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCache >
 
using LuminosityBlockSummaryCache = typename CacheTypes::LuminosityBlockSummaryCache
 
using RunCache = typename CacheTypes::RunCache
 
using RunContext = RunContextT< RunCache, GlobalCache >
 
using RunSummaryCache = typename CacheTypes::RunSummaryCache
 

Detailed Description

Definition at line 22 of file photonIsolationHIProducer.cc.

Constructor & Destructor Documentation

◆ photonIsolationHIProducer()

photonIsolationHIProducer::photonIsolationHIProducer ( const edm::ParameterSet ps)
explicit

Definition at line 46 of file photonIsolationHIProducer.cc.

47  : photonProducer_(consumes(config.getParameter<edm::InputTag>("photonProducer"))),
48  barrelEcalHits_(consumes(config.getParameter<edm::InputTag>("ebRecHitCollection"))),
49  endcapEcalHits_(consumes(config.getParameter<edm::InputTag>("eeRecHitCollection"))),
50  hbhe_(consumes(config.getParameter<edm::InputTag>("hbhe"))),
51  hf_(consumes(config.getParameter<edm::InputTag>("hf"))),
52  ho_(consumes(config.getParameter<edm::InputTag>("ho"))),
53  barrelClusters_(consumes(config.getParameter<edm::InputTag>("basicClusterBarrel"))),
54  endcapClusters_(consumes(config.getParameter<edm::InputTag>("basicClusterEndcap"))),
55  tracks_(consumes(config.getParameter<edm::InputTag>("trackCollection"))),
56  ecalClusterToolsESGetTokens_{consumesCollector()},
57  trackQuality_(config.getParameter<std::string>("trackQuality")) {
58  produces<reco::HIPhotonIsolationMap>();
59 }

Member Function Documentation

◆ fillDescriptions()

void photonIsolationHIProducer::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 137 of file photonIsolationHIProducer.cc.

137  {
139 
140  desc.add<edm::InputTag>("photonProducer", edm::InputTag("photons"));
141  desc.add<edm::InputTag>("ebRecHitCollection", edm::InputTag("ecalRecHit:EcalRecHitsEB"));
142  desc.add<edm::InputTag>("eeRecHitCollection", edm::InputTag("ecalRecHit:EcalRecHitsEE"));
143  desc.add<edm::InputTag>("hbhe", edm::InputTag("hbhereco"));
144  desc.add<edm::InputTag>("hf", edm::InputTag("hfreco"));
145  desc.add<edm::InputTag>("ho", edm::InputTag("horeco"));
146  desc.add<edm::InputTag>("basicClusterBarrel", edm::InputTag("islandBasicClusters:islandBarrelBasicClusters"));
147  desc.add<edm::InputTag>("basicClusterEndcap", edm::InputTag("islandBasicClusters:islandEndcapBasicClusters"));
148  desc.add<edm::InputTag>("trackCollection", edm::InputTag("hiGeneralTracks"));
149  desc.add<std::string>("trackQuality", "highPurity");
150 
151  descriptions.add("photonIsolationHIProducer", desc);
152 }

References edm::ConfigurationDescriptions::add(), submitPVResolutionJobs::desc, HLT_FULL_cff::InputTag, and AlCaHLTBitMon_QueryRunRegistry::string.

◆ produce()

void photonIsolationHIProducer::produce ( edm::Event evt,
const edm::EventSetup es 
)
overrideprivate

Definition at line 61 of file photonIsolationHIProducer.cc.

61  {
69  evt.getByToken(hbhe_, hbhe);
71  evt.getByToken(hf_, hf);
73  evt.getByToken(ho_, ho);
80 
81  auto outputMap = std::make_unique<reco::HIPhotonIsolationMap>();
83  std::vector<reco::HIPhotonIsolation> isoVector;
84 
86  HcalRechitIsoCalculator RxC(evt, es, hbhe, hf, ho);
89 
90  for (reco::PhotonCollection::const_iterator phoItr = photons->begin(); phoItr != photons->end(); ++phoItr) {
92  // HI-style isolation info
93  iso.ecalClusterIsoR1(CxC.getBkgSubEcalClusterIso(phoItr->superCluster(), 1, 0));
94  iso.ecalClusterIsoR2(CxC.getBkgSubEcalClusterIso(phoItr->superCluster(), 2, 0));
95  iso.ecalClusterIsoR3(CxC.getBkgSubEcalClusterIso(phoItr->superCluster(), 3, 0));
96  iso.ecalClusterIsoR4(CxC.getBkgSubEcalClusterIso(phoItr->superCluster(), 4, 0));
97  iso.ecalClusterIsoR5(CxC.getBkgSubEcalClusterIso(phoItr->superCluster(), 5, 0));
98 
99  iso.hcalRechitIsoR1(RxC.getBkgSubHcalRechitIso(phoItr->superCluster(), 1, 0));
100  iso.hcalRechitIsoR2(RxC.getBkgSubHcalRechitIso(phoItr->superCluster(), 2, 0));
101  iso.hcalRechitIsoR3(RxC.getBkgSubHcalRechitIso(phoItr->superCluster(), 3, 0));
102  iso.hcalRechitIsoR4(RxC.getBkgSubHcalRechitIso(phoItr->superCluster(), 4, 0));
103  iso.hcalRechitIsoR5(RxC.getBkgSubHcalRechitIso(phoItr->superCluster(), 5, 0));
104 
105  iso.trackIsoR1PtCut20(TxC.getBkgSubTrackIso(*phoItr, 1, 2));
106  iso.trackIsoR2PtCut20(TxC.getBkgSubTrackIso(*phoItr, 2, 2));
107  iso.trackIsoR3PtCut20(TxC.getBkgSubTrackIso(*phoItr, 3, 2));
108  iso.trackIsoR4PtCut20(TxC.getBkgSubTrackIso(*phoItr, 4, 2));
109  iso.trackIsoR5PtCut20(TxC.getBkgSubTrackIso(*phoItr, 5, 2));
110 
111  // ecal spike rejection info (seed timing)
112  const reco::CaloClusterPtr seed = phoItr->superCluster()->seed();
113  const DetId& id = lazyTool.getMaximum(*seed).first;
114  float time = -999.;
115  const EcalRecHitCollection& rechits = (phoItr->isEB() ? *barrelEcalHits : *endcapEcalHits);
117  if (it != rechits.end()) {
118  time = it->time();
119  }
120  iso.seedTime(time);
121 
122  // ecal spike rejectino info (swiss cross)
123  float eMax = lazyTool.eMax(*seed);
124  float eRight = lazyTool.eRight(*seed);
125  float eLeft = lazyTool.eLeft(*seed);
126  float eTop = lazyTool.eTop(*seed);
127  float eBottom = lazyTool.eBottom(*seed);
128  iso.swissCrx(1 - (eRight + eLeft + eTop + eBottom) / eMax);
129 
130  isoVector.push_back(iso);
131  }
132  filler.insert(photons, isoVector.begin(), isoVector.end());
133  filler.fill();
134  evt.put(std::move(outputMap));
135 }

References HLT_FULL_cff::barrelClusters, barrelClusters_, piZeroAnalyzer_cfi::barrelEcalHits, barrelEcalHits_, reco::HIPhotonIsolation::ecalClusterIsoR1(), reco::HIPhotonIsolation::ecalClusterIsoR2(), reco::HIPhotonIsolation::ecalClusterIsoR3(), reco::HIPhotonIsolation::ecalClusterIsoR4(), reco::HIPhotonIsolation::ecalClusterIsoR5(), ecalClusterToolsESGetTokens_, cosmicPhotonAnalyzer_cfi::eMax, HLT_FULL_cff::endcapClusters, endcapClusters_, piZeroAnalyzer_cfi::endcapEcalHits, endcapEcalHits_, trigObjTnPSource_cfi::filler, EcalClusterLazyToolsBase::ESGetTokens::get(), EcalClusterIsoCalculator::getBkgSubEcalClusterIso(), HcalRechitIsoCalculator::getBkgSubHcalRechitIso(), TrackIsoCalculator::getBkgSubTrackIso(), edm::Event::getByToken(), photonIsolationHIProducer_cfi::hbhe, hbhe_, reco::HIPhotonIsolation::hcalRechitIsoR1(), reco::HIPhotonIsolation::hcalRechitIsoR2(), reco::HIPhotonIsolation::hcalRechitIsoR3(), reco::HIPhotonIsolation::hcalRechitIsoR4(), reco::HIPhotonIsolation::hcalRechitIsoR5(), photonIsolationHIProducer_cfi::hf, hf_, photonIsolationHIProducer_cfi::ho, ho_, eostools::move(), photonProducer_, BPHMonitor_cfi::photons, edm::Event::put(), HI_PhotonSkim_cff::rechits, fileCollector::seed, reco::HIPhotonIsolation::seedTime(), reco::HIPhotonIsolation::swissCrx(), protons_cff::time, duplicaterechits_cfi::trackCollection, reco::HIPhotonIsolation::trackIsoR1PtCut20(), reco::HIPhotonIsolation::trackIsoR2PtCut20(), reco::HIPhotonIsolation::trackIsoR3PtCut20(), reco::HIPhotonIsolation::trackIsoR4PtCut20(), reco::HIPhotonIsolation::trackIsoR5PtCut20(), trackQuality_, and tracks_.

Member Data Documentation

◆ barrelClusters_

edm::EDGetTokenT<reco::BasicClusterCollection> photonIsolationHIProducer::barrelClusters_
private

Definition at line 37 of file photonIsolationHIProducer.cc.

Referenced by produce().

◆ barrelEcalHits_

edm::EDGetTokenT<EcalRecHitCollection> photonIsolationHIProducer::barrelEcalHits_
private

Definition at line 32 of file photonIsolationHIProducer.cc.

Referenced by produce().

◆ ecalClusterToolsESGetTokens_

const EcalClusterLazyTools::ESGetTokens photonIsolationHIProducer::ecalClusterToolsESGetTokens_
private

Definition at line 41 of file photonIsolationHIProducer.cc.

Referenced by produce().

◆ endcapClusters_

edm::EDGetTokenT<reco::BasicClusterCollection> photonIsolationHIProducer::endcapClusters_
private

Definition at line 38 of file photonIsolationHIProducer.cc.

Referenced by produce().

◆ endcapEcalHits_

edm::EDGetTokenT<EcalRecHitCollection> photonIsolationHIProducer::endcapEcalHits_
private

Definition at line 33 of file photonIsolationHIProducer.cc.

Referenced by produce().

◆ hbhe_

edm::EDGetTokenT<HBHERecHitCollection> photonIsolationHIProducer::hbhe_
private

Definition at line 34 of file photonIsolationHIProducer.cc.

Referenced by produce().

◆ hf_

edm::EDGetTokenT<HFRecHitCollection> photonIsolationHIProducer::hf_
private

Definition at line 35 of file photonIsolationHIProducer.cc.

Referenced by produce().

◆ ho_

edm::EDGetTokenT<HORecHitCollection> photonIsolationHIProducer::ho_
private

Definition at line 36 of file photonIsolationHIProducer.cc.

Referenced by produce().

◆ photonProducer_

edm::EDGetTokenT<reco::PhotonCollection> photonIsolationHIProducer::photonProducer_
private

Definition at line 31 of file photonIsolationHIProducer.cc.

Referenced by produce().

◆ trackQuality_

std::string photonIsolationHIProducer::trackQuality_
private

Definition at line 43 of file photonIsolationHIProducer.cc.

Referenced by produce().

◆ tracks_

edm::EDGetTokenT<reco::TrackCollection> photonIsolationHIProducer::tracks_
private

Definition at line 39 of file photonIsolationHIProducer.cc.

Referenced by produce().

HLT_FULL_cff.endcapClusters
endcapClusters
Definition: HLT_FULL_cff.py:88199
edm::SortedCollection< EcalRecHit >::const_iterator
std::vector< EcalRecHit >::const_iterator const_iterator
Definition: SortedCollection.h:80
piZeroAnalyzer_cfi.barrelEcalHits
barrelEcalHits
Definition: piZeroAnalyzer_cfi.py:9
reco::HIPhotonIsolation::hcalRechitIsoR5
float hcalRechitIsoR5() const
Rechit-based isolation (HCAL) R = 0.5.
Definition: HIPhotonIsolation.h:52
HLT_FULL_cff.InputTag
InputTag
Definition: HLT_FULL_cff.py:89301
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
photonIsolationHIProducer::hf_
edm::EDGetTokenT< HFRecHitCollection > hf_
Definition: photonIsolationHIProducer.cc:35
photonIsolationHIProducer::trackQuality_
std::string trackQuality_
Definition: photonIsolationHIProducer.cc:43
reco::HIPhotonIsolation::trackIsoR1PtCut20
float trackIsoR1PtCut20() const
Track-based isolation, pt>2.0GeV, R = 0.1.
Definition: HIPhotonIsolation.h:55
protons_cff.time
time
Definition: protons_cff.py:35
photonIsolationHIProducer::barrelEcalHits_
edm::EDGetTokenT< EcalRecHitCollection > barrelEcalHits_
Definition: photonIsolationHIProducer.cc:32
edm::SortedCollection< EcalRecHit >
photonIsolationHIProducer::endcapEcalHits_
edm::EDGetTokenT< EcalRecHitCollection > endcapEcalHits_
Definition: photonIsolationHIProducer.cc:33
reco::HIPhotonIsolation::hcalRechitIsoR2
float hcalRechitIsoR2() const
Rechit-based isolation (HCAL) R = 0.2.
Definition: HIPhotonIsolation.h:46
edm::Handle< reco::PhotonCollection >
reco::HIPhotonIsolation::trackIsoR4PtCut20
float trackIsoR4PtCut20() const
Track-based isolation, pt>2.0GeV, R = 0.4.
Definition: HIPhotonIsolation.h:61
piZeroAnalyzer_cfi.endcapEcalHits
endcapEcalHits
Definition: piZeroAnalyzer_cfi.py:10
EcalClusterIsoCalculator
Definition: EcalClusterIsoCalculator.h:17
fileCollector.seed
seed
Definition: fileCollector.py:127
config
Definition: config.py:1
DetId
Definition: DetId.h:17
reco::HIPhotonIsolation::hcalRechitIsoR4
float hcalRechitIsoR4() const
Rechit-based isolation (HCAL) R = 0.4.
Definition: HIPhotonIsolation.h:50
photonIsolationHIProducer_cfi.hf
hf
Definition: photonIsolationHIProducer_cfi.py:9
reco::HIPhotonIsolation::ecalClusterIsoR2
float ecalClusterIsoR2() const
Cluster-based isolation (ECAL) R = 0.2.
Definition: HIPhotonIsolation.h:35
reco::HIPhotonIsolation
Definition: HIPhotonIsolation.h:8
edm::ConfigurationDescriptions::add
void add(std::string const &label, ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:57
photonIsolationHIProducer::photonProducer_
edm::EDGetTokenT< reco::PhotonCollection > photonProducer_
Definition: photonIsolationHIProducer.cc:31
reco::HIPhotonIsolation::ecalClusterIsoR1
float ecalClusterIsoR1() const
Cluster-based isolation (ECAL) R = 0.1.
Definition: HIPhotonIsolation.h:33
reco::HIPhotonIsolation::trackIsoR5PtCut20
float trackIsoR5PtCut20() const
Track-based isolation, pt>2.0GeV, R = 0.5.
Definition: HIPhotonIsolation.h:63
reco::HIPhotonIsolation::trackIsoR2PtCut20
float trackIsoR2PtCut20() const
Track-based isolation, pt>2.0GeV, R = 0.2.
Definition: HIPhotonIsolation.h:57
reco::HIPhotonIsolation::hcalRechitIsoR1
float hcalRechitIsoR1() const
Rechit-based isolation (HCAL) R = 0.1.
Definition: HIPhotonIsolation.h:44
HI_PhotonSkim_cff.rechits
rechits
Definition: HI_PhotonSkim_cff.py:76
edm::Event::getByToken
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:539
EcalClusterLazyTools
photonIsolationHIProducer::barrelClusters_
edm::EDGetTokenT< reco::BasicClusterCollection > barrelClusters_
Definition: photonIsolationHIProducer.cc:37
duplicaterechits_cfi.trackCollection
trackCollection
Definition: duplicaterechits_cfi.py:4
reco::HIPhotonIsolation::ecalClusterIsoR4
float ecalClusterIsoR4() const
Cluster-based isolation (ECAL) R = 0.4.
Definition: HIPhotonIsolation.h:39
cosmicPhotonAnalyzer_cfi.eMax
eMax
Definition: cosmicPhotonAnalyzer_cfi.py:10
trigObjTnPSource_cfi.filler
filler
Definition: trigObjTnPSource_cfi.py:21
TrackIsoCalculator
Definition: TrackIsoCalculator.h:8
edm::Event::put
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
Definition: Event.h:133
photonIsolationHIProducer_cfi.ho
ho
Definition: photonIsolationHIProducer_cfi.py:10
BPHMonitor_cfi.photons
photons
Definition: BPHMonitor_cfi.py:91
AlCaHLTBitMon_QueryRunRegistry.string
string string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
HcalRechitIsoCalculator
Definition: HcalRechitIsoCalculator.h:19
EcalClusterLazyToolsBase::ESGetTokens::get
ESData get(edm::EventSetup const &eventSetup) const
Definition: EcalClusterLazyTools.h:64
edm::Ptr< CaloCluster >
photonIsolationHIProducer_cfi.hbhe
hbhe
Definition: photonIsolationHIProducer_cfi.py:8
HLT_FULL_cff.barrelClusters
barrelClusters
Definition: HLT_FULL_cff.py:88198
photonIsolationHIProducer::ecalClusterToolsESGetTokens_
const EcalClusterLazyTools::ESGetTokens ecalClusterToolsESGetTokens_
Definition: photonIsolationHIProducer.cc:41
submitPVResolutionJobs.desc
string desc
Definition: submitPVResolutionJobs.py:251
reco::HIPhotonIsolation::ecalClusterIsoR5
float ecalClusterIsoR5() const
Cluster-based isolation (ECAL) R = 0.5.
Definition: HIPhotonIsolation.h:41
eostools.move
def move(src, dest)
Definition: eostools.py:511
photonIsolationHIProducer::hbhe_
edm::EDGetTokenT< HBHERecHitCollection > hbhe_
Definition: photonIsolationHIProducer.cc:34
reco::HIPhotonIsolation::trackIsoR3PtCut20
float trackIsoR3PtCut20() const
Track-based isolation, pt>2.0GeV, R = 0.3.
Definition: HIPhotonIsolation.h:59
reco::HIPhotonIsolation::swissCrx
float swissCrx() const
SwissCross crystal ratio.
Definition: HIPhotonIsolation.h:66
reco::HIPhotonIsolation::hcalRechitIsoR3
float hcalRechitIsoR3() const
Rechit-based isolation (HCAL) R = 0.3.
Definition: HIPhotonIsolation.h:48
photonIsolationHIProducer::ho_
edm::EDGetTokenT< HORecHitCollection > ho_
Definition: photonIsolationHIProducer.cc:36
edm::helper::Filler
Definition: ValueMap.h:22
photonIsolationHIProducer::endcapClusters_
edm::EDGetTokenT< reco::BasicClusterCollection > endcapClusters_
Definition: photonIsolationHIProducer.cc:38
reco::HIPhotonIsolation::seedTime
float seedTime() const
Ecal rechit seed time.
Definition: HIPhotonIsolation.h:68
edm::InputTag
Definition: InputTag.h:15
photonIsolationHIProducer::tracks_
edm::EDGetTokenT< reco::TrackCollection > tracks_
Definition: photonIsolationHIProducer.cc:39
reco::HIPhotonIsolation::ecalClusterIsoR3
float ecalClusterIsoR3() const
Cluster-based isolation (ECAL) R = 0.3.
Definition: HIPhotonIsolation.h:37