CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
PhotonIDValueMapProducer Class Reference
Inheritance diagram for PhotonIDValueMapProducer:
edm::global::EDProducer<> edm::global::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

 PhotonIDValueMapProducer (const edm::ParameterSet &)
 
 ~PhotonIDValueMapProducer () override
 
- Public Member Functions inherited from edm::global::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
 
EDProduceroperator= (const EDProducer &)=delete
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
bool wantsInputProcessBlocks () const final
 
bool wantsProcessBlocks () const final
 
bool wantsStreamLuminosityBlocks () const final
 
bool wantsStreamRuns () const final
 
- Public Member Functions inherited from edm::global::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
 ~EDProducerBase () override
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex () const
 
std::vector< bool > const & recordProvenanceList () const
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription const &)> registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
TypeLabelList const & typeLabelList () const
 used by the fwk to register the list of products of this module More...
 
 ~ProducerBase () noexcept(false) override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase &&)=default
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
std::vector< ESProxyIndex > const & esGetTokenIndicesVector (edm::Transition iTrans) const
 
std::vector< ESRecordIndex > const & esGetTokenRecordIndicesVector (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::array< std::vector< ModuleDescription const * > *, NumBranchTypes > &modulesAll, std::vector< ModuleProcessName > &modulesInPreviousProcesses, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 
- Static Public Member Functions inherited from edm::global::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 

Private Member Functions

float computeWorstPFChargedIsolation (const reco::Photon &photon, const edm::View< reco::Candidate > &pfCands, const reco::VertexCollection &vertices, const reco::Vertex &pv, unsigned char options, bool isAOD) const
 
void produce (edm::StreamID, edm::Event &, const edm::EventSetup &) const override
 

Private Attributes

const edm::EDGetTokenT< EcalRecHitCollectionebRecHits_
 
const EcalClusterLazyTools::ESGetTokens ecalClusterToolsESGetTokens_
 
const edm::EDGetTokenT< EcalRecHitCollectioneeRecHits_
 
const edm::EDGetTokenT< EcalRecHitCollectionesRecHits_
 
const bool isAOD_
 
const edm::EDGetToken particleBasedIsolationToken_
 
const edm::EDGetTokenT< edm::View< reco::Candidate > > pfCandsToken_
 
const edm::EDGetTokenT< edm::View< reco::Photon > > src_
 
const bool usesES_
 
const edm::EDGetTokenT< reco::VertexCollectionvtxToken_
 

Additional Inherited Members

- Public Types inherited from edm::global::EDProducerBase
typedef EDProducerBase ModuleType
 
- Public Types inherited from edm::ProducerBase
using ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex > >
 
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Protected Member Functions inherited from edm::ProducerBase
template<class ProductType >
BranchAliasSetterT< ProductType > produces ()
 declare what type of product will make and with which optional label More...
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces ()
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces ()
 
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<BranchType B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<Transition B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<class ProductType >
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
ProducesCollector producesCollector ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
template<BranchType B = InEvent>
EDConsumerBaseAdaptor< B > consumes (edm::InputTag tag) noexcept
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<Transition Tr = Transition::Event>
constexpr auto esConsumes () noexcept
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<Transition Tr = Transition::Event>
auto esConsumes (ESInputTag tag) noexcept
 
template<Transition Tr = Transition::Event>
ESGetTokenGeneric esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey)
 Used with EventSetupRecord::doGet. More...
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 

Detailed Description

Definition at line 82 of file PhotonIDValueMapProducer.cc.

Constructor & Destructor Documentation

◆ PhotonIDValueMapProducer()

PhotonIDValueMapProducer::PhotonIDValueMapProducer ( const edm::ParameterSet cfg)
explicit

Definition at line 161 of file PhotonIDValueMapProducer.cc.

162  : usesES_(!cfg.getParameter<edm::InputTag>("esReducedRecHitCollection").label().empty()),
163  src_(consumes(cfg.getParameter<edm::InputTag>("src"))),
164  ebRecHits_(consumes(cfg.getParameter<edm::InputTag>("ebReducedRecHitCollection"))),
165  eeRecHits_(consumes(cfg.getParameter<edm::InputTag>("eeReducedRecHitCollection"))),
166  esRecHits_(consumes(cfg.getParameter<edm::InputTag>("esReducedRecHitCollection"))),
167  vtxToken_(consumes(cfg.getParameter<edm::InputTag>("vertices"))),
168  pfCandsToken_(consumes(cfg.getParameter<edm::InputTag>("pfCandidates"))),
169  particleBasedIsolationToken_(mayConsume<edm::ValueMap<std::vector<reco::PFCandidateRef>>>(
170  cfg.getParameter<edm::InputTag>("particleBasedIsolation")) /* ...only for AOD... */),
172  isAOD_(cfg.getParameter<bool>("isAOD")) {
173  // Declare producibles
174  for (int i = 0; i < nVars_; ++i)
176 }

References edm::EDConsumerBase::consumesCollector().

◆ ~PhotonIDValueMapProducer()

PhotonIDValueMapProducer::~PhotonIDValueMapProducer ( )
inlineoverride

Definition at line 85 of file PhotonIDValueMapProducer.cc.

85 {}

Member Function Documentation

◆ computeWorstPFChargedIsolation()

float PhotonIDValueMapProducer::computeWorstPFChargedIsolation ( const reco::Photon photon,
const edm::View< reco::Candidate > &  pfCands,
const reco::VertexCollection vertices,
const reco::Vertex pv,
unsigned char  options,
bool  isAOD 
) const
private

Definition at line 360 of file PhotonIDValueMapProducer.cc.

365  {
366  float worstIsolation = 0.0;
367 
368  const float dRveto2 = photon.isEB() ? dRveto2Barrel : dRveto2Endcap;
369 
370  std::vector<CachingPtrCandidate> chargedCands;
371  chargedCands.reserve(pfCands.size());
372  for (auto const& aCand : pfCands) {
373  // require that PFCandidate is a charged hadron
374  reco::PFCandidate::ParticleType thisCandidateType = getCandidatePdgId(&aCand, isAOD);
375  if (thisCandidateType != reco::PFCandidate::h)
376  continue;
377 
378  if ((options & PT_MIN_THRESH) && aCand.pt() < ptMin)
379  continue;
380 
381  chargedCands.emplace_back(&aCand, isAOD);
382  }
383 
384  // Calculate isolation sum separately for each vertex
385  for (unsigned int ivtx = 0; ivtx < vertices.size(); ++ivtx) {
386  // Shift the photon according to the vertex
387  const reco::VertexRef vtx(&vertices, ivtx);
388  math::XYZVector phoWrtVtx(photon.superCluster()->x() - vtx->x(),
389  photon.superCluster()->y() - vtx->y(),
390  photon.superCluster()->z() - vtx->z());
391 
392  const float phoWrtVtxPhi = phoWrtVtx.phi();
393  const float phoWrtVtxEta = phoWrtVtx.eta();
394 
395  float sum = 0;
396  // Loop over the PFCandidates
397  for (auto const& aCCand : chargedCands) {
398  auto iCand = aCCand.candidate;
399  float dR2 = deltaR2(phoWrtVtxEta, phoWrtVtxPhi, iCand->eta(), iCand->phi());
400  if (dR2 > coneSizeDR2 || (options & DR_VETO && dR2 < dRveto2))
401  continue;
402 
403  float dxy = -999;
404  float dz = -999;
405  if (options & PV_CONSTRAINT)
406  getImpactParameters(aCCand, pv, dxy, dz);
407  else
408  getImpactParameters(aCCand, *vtx, dxy, dz);
409 
410  if (fabs(dxy) > dxyMax || fabs(dz) > dzMax)
411  continue;
412 
413  sum += iCand->pt();
414  }
415 
416  worstIsolation = std::max(sum, worstIsolation);
417  }
418 
419  return worstIsolation;
420 }

References coneSizeDR2, HLTMuonOfflineAnalyzer_cfi::deltaR2, DR_VETO, dRveto2Barrel, dRveto2Endcap, PVValHelper::dxy, dxyMax, PVValHelper::dz, dzMax, reco::PFCandidate::h, HLTEGTnPMonitor_cfi::isAOD, SiStripPI::max, muons2muons_cfi::photon, PT_MIN_THRESH, ptMin, MetAnalyzer::pv(), PV_CONSTRAINT, edm::View< T >::size(), pwdgSkimBPark_cfi::vertices, and extraflags_cff::vtx.

Referenced by produce().

◆ fillDescriptions()

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

Definition at line 344 of file PhotonIDValueMapProducer.cc.

344  {
345  // photonIDValueMapProducer
347  desc.add<edm::InputTag>("particleBasedIsolation", edm::InputTag("particleBasedIsolation", "gedPhotons"));
348  desc.add<edm::InputTag>("src", edm::InputTag("slimmedPhotons", "", "@skipCurrentProcess"));
349  desc.add<edm::InputTag>("esReducedRecHitCollection", edm::InputTag("reducedEgamma", "reducedESRecHits"));
350  desc.add<edm::InputTag>("ebReducedRecHitCollection", edm::InputTag("reducedEgamma", "reducedEBRecHits"));
351  desc.add<edm::InputTag>("eeReducedRecHitCollection", edm::InputTag("reducedEgamma", "reducedEERecHits"));
352  desc.add<edm::InputTag>("pfCandidates", edm::InputTag("packedPFCandidates"));
353  desc.add<edm::InputTag>("vertices", edm::InputTag("offlineSlimmedPrimaryVertices"));
354  desc.add<bool>("isAOD", false);
355  descriptions.add("photonIDValueMapProducer", desc);
356 }

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

◆ produce()

void PhotonIDValueMapProducer::produce ( edm::StreamID  ,
edm::Event iEvent,
const edm::EventSetup iSetup 
) const
overrideprivatevirtual

Implements edm::global::EDProducerBase.

Definition at line 178 of file PhotonIDValueMapProducer.cc.

178  {
179  // Get the handles
180  auto src = iEvent.getHandle(src_);
181  auto vertices = iEvent.getHandle(vtxToken_);
182  auto pfCandsHandle = iEvent.getHandle(pfCandsToken_);
183 
185  if (isAOD_) { // this exists only in AOD
186  iEvent.getByToken(particleBasedIsolationToken_, particleBasedIsolationMap);
187  } else if (!src->empty()) {
188  edm::Ptr<pat::Photon> test(src->ptrAt(0));
189  if (test.isNull() || !test.isAvailable()) {
190  throw cms::Exception("InvalidConfiguration")
191  << "DataFormat is detected as miniAOD but cannot cast to pat::Photon!";
192  }
193  }
194 
195  // Configure Lazy Tools, which will compute 5x5 quantities
196  auto const& ecalClusterToolsESData = ecalClusterToolsESGetTokens_.get(iSetup);
197  auto lazyToolnoZS =
199  : noZS::EcalClusterLazyTools(iEvent, ecalClusterToolsESData, ebRecHits_, eeRecHits_);
200 
201  // Get PV
202  if (vertices->empty())
203  return; // skip the event if no PV found
204  const reco::Vertex& pv = vertices->front();
205 
206  std::vector<float> vars[nVars_];
207 
208  // reco::Photon::superCluster() is virtual so we can exploit polymorphism
209  for (auto const& iPho : src->ptrs()) {
210  //
211  // Compute full 5x5 quantities
212  //
213  const auto& seed = *(iPho->superCluster()->seed());
214 
215  // For full5x5_sigmaIetaIeta, for 720 we use: lazy tools for AOD,
216  // and userFloats or lazy tools for miniAOD. From some point in 72X and on, one can
217  // retrieve the full5x5 directly from the object with ->full5x5_sigmaIetaIeta()
218  // for both formats.
219  const auto& vCov = lazyToolnoZS.localCovariances(seed);
220  vars[0].push_back(edm::isNotFinite(vCov[0]) ? 0. : sqrt(vCov[0]));
221  vars[1].push_back(vCov[1]);
222  vars[2].push_back(lazyToolnoZS.e1x3(seed));
223  vars[3].push_back(lazyToolnoZS.e2x2(seed));
224  vars[4].push_back(lazyToolnoZS.e2x5Max(seed));
225  vars[5].push_back(lazyToolnoZS.e5x5(seed));
226  vars[6].push_back(lazyToolnoZS.eseffsirir(*(iPho->superCluster())));
227  vars[7].push_back(vars[2].back() / vars[5].back());
228  vars[8].push_back(vars[3].back() / vars[5].back());
229  vars[9].push_back(vars[4].back() / vars[5].back());
230 
231  //
232  // Compute absolute uncorrected isolations with footprint removal
233  //
234 
235  // First, find photon direction with respect to the good PV
236  math::XYZVector phoWrtVtx(
237  iPho->superCluster()->x() - pv.x(), iPho->superCluster()->y() - pv.y(), iPho->superCluster()->z() - pv.z());
238 
239  // isolation sums
240  float chargedIsoSum = 0.;
241  float neutralHadronIsoSum = 0.;
242  float photonIsoSum = 0.;
243 
244  // Loop over all PF candidates
245  for (auto const& iCand : pfCandsHandle->ptrs()) {
246  // Here, the type will be a simple reco::Candidate. We cast it
247  // for full PFCandidate or PackedCandidate below as necessary
248 
249  // One would think that we should check that this iCand from the
250  // generic PF collection is not identical to the iPho photon for
251  // which we are computing the isolations. However, it turns out to
252  // be unnecessary. Below, in the function isInFootprint(), we drop
253  // this iCand if it is in the footprint, and this always removes
254  // the iCand if it matches the iPho. The explicit check at this
255  // point is not totally trivial because of non-triviality of
256  // implementation of this check for miniAOD (PackedCandidates of
257  // the PF collection do not contain the supercluser link, so can't
258  // use that).
259  //
260  // if( isAOD_ ) {
261  // if( ((const edm::Ptr<reco::PFCandidate>)iCand)->superClusterRef() == iPho->superCluster() )
262  // continue;
263  // }
264 
265  // Check if this candidate is within the isolation cone
266  float dR2 = deltaR2(phoWrtVtx.Eta(), phoWrtVtx.Phi(), iCand->eta(), iCand->phi());
267  if (dR2 > coneSizeDR2)
268  continue;
269 
270  // Check if this candidate is not in the footprint
271  if (isAOD_) {
272  if (isInFootprint((*particleBasedIsolationMap)[iPho], iCand))
273  continue;
274  } else {
276  if (isInFootprint(patPhotonPtr->associatedPackedPFCandidates(), iCand))
277  continue;
278  }
279 
280  // Find candidate type
281  reco::PFCandidate::ParticleType thisCandidateType = getCandidatePdgId(&*iCand, isAOD_);
282 
283  // Increment the appropriate isolation sum
284  if (thisCandidateType == reco::PFCandidate::h) {
285  // for charged hadrons, additionally check consistency
286  // with the PV
287  float dxy = -999;
288  float dz = -999;
289 
290  getImpactParameters(CachingPtrCandidate(&*iCand, isAOD_), pv, dxy, dz);
291 
292  if (fabs(dxy) > dxyMax || fabs(dz) > dzMax)
293  continue;
294 
295  // The candidate is eligible, increment the isolaiton
296  chargedIsoSum += iCand->pt();
297  }
298 
299  if (thisCandidateType == reco::PFCandidate::h0)
300  neutralHadronIsoSum += iCand->pt();
301 
302  if (thisCandidateType == reco::PFCandidate::gamma)
303  photonIsoSum += iCand->pt();
304  }
305 
306  vars[10].push_back(chargedIsoSum);
307  vars[11].push_back(neutralHadronIsoSum);
308  vars[12].push_back(photonIsoSum);
309 
310  // Worst isolation computed with no vetos or ptMin cut, as in Run 1 Hgg code.
311  unsigned char options = 0;
312  vars[13].push_back(computeWorstPFChargedIsolation(*iPho, *pfCandsHandle, *vertices, pv, options, isAOD_));
313 
314  // Worst isolation computed with cone vetos and a ptMin cut, as in Run 2 Hgg code.
316  vars[14].push_back(computeWorstPFChargedIsolation(*iPho, *pfCandsHandle, *vertices, pv, options, isAOD_));
317 
318  // Like before, but adding primary vertex constraint
320  vars[15].push_back(computeWorstPFChargedIsolation(*iPho, *pfCandsHandle, *vertices, pv, options, isAOD_));
321 
322  // PFCluster Isolations
323  vars[16].push_back(iPho->trkSumPtSolidConeDR04());
324  if (isAOD_) {
325  vars[17].push_back(0.f);
326  vars[18].push_back(0.f);
327  } else {
329  vars[17].push_back(patPhotonPtr->hcalPFClusterIso());
330  vars[18].push_back(patPhotonPtr->ecalPFClusterIso());
331  }
332  }
333 
334  // write the value maps
335  for (int i = 0; i < nVars_; ++i) {
336  auto valMap = std::make_unique<edm::ValueMap<float>>();
337  typename edm::ValueMap<float>::Filler filler(*valMap);
338  filler.insert(src, vars[i].begin(), vars[i].end());
339  filler.fill();
340  iEvent.put(std::move(valMap), names[i]);
341  }
342 }

References computeWorstPFChargedIsolation(), coneSizeDR2, HLTMuonOfflineAnalyzer_cfi::deltaR2, DR_VETO, PVValHelper::dxy, dxyMax, PVValHelper::dz, dzMax, ebRecHits_, ecalClusterToolsESGetTokens_, eeRecHits_, mps_fire::end, esRecHits_, Exception, f, trigObjTnPSource_cfi::filler, reco::PFCandidate::gamma, EcalClusterLazyToolsBase::ESGetTokens::get(), reco::PFCandidate::h, reco::PFCandidate::h0, mps_fire::i, iEvent, isAOD_, edm::isNotFinite(), eostools::move(), names, nVars_, particleBasedIsolationToken_, pfCandsToken_, PT_MIN_THRESH, MetAnalyzer::pv(), PV_CONSTRAINT, fileCollector::seed, mathSSE::sqrt(), TrackRefitter_38T_cff::src, src_, ctpps_dqm_sourceclient-live_cfg::test, usesES_, pwdgSkimBPark_cfi::vertices, and vtxToken_.

Member Data Documentation

◆ ebRecHits_

const edm::EDGetTokenT<EcalRecHitCollection> PhotonIDValueMapProducer::ebRecHits_
private

Definition at line 110 of file PhotonIDValueMapProducer.cc.

Referenced by produce().

◆ ecalClusterToolsESGetTokens_

const EcalClusterLazyTools::ESGetTokens PhotonIDValueMapProducer::ecalClusterToolsESGetTokens_
private

Definition at line 117 of file PhotonIDValueMapProducer.cc.

Referenced by produce().

◆ eeRecHits_

const edm::EDGetTokenT<EcalRecHitCollection> PhotonIDValueMapProducer::eeRecHits_
private

Definition at line 111 of file PhotonIDValueMapProducer.cc.

Referenced by produce().

◆ esRecHits_

const edm::EDGetTokenT<EcalRecHitCollection> PhotonIDValueMapProducer::esRecHits_
private

Definition at line 112 of file PhotonIDValueMapProducer.cc.

Referenced by produce().

◆ isAOD_

const bool PhotonIDValueMapProducer::isAOD_
private

Definition at line 119 of file PhotonIDValueMapProducer.cc.

Referenced by produce().

◆ particleBasedIsolationToken_

const edm::EDGetToken PhotonIDValueMapProducer::particleBasedIsolationToken_
private

Definition at line 115 of file PhotonIDValueMapProducer.cc.

Referenced by produce().

◆ pfCandsToken_

const edm::EDGetTokenT<edm::View<reco::Candidate> > PhotonIDValueMapProducer::pfCandsToken_
private

Definition at line 114 of file PhotonIDValueMapProducer.cc.

Referenced by produce().

◆ src_

const edm::EDGetTokenT<edm::View<reco::Photon> > PhotonIDValueMapProducer::src_
private

Definition at line 109 of file PhotonIDValueMapProducer.cc.

Referenced by produce().

◆ usesES_

const bool PhotonIDValueMapProducer::usesES_
private

Definition at line 106 of file PhotonIDValueMapProducer.cc.

Referenced by produce().

◆ vtxToken_

const edm::EDGetTokenT<reco::VertexCollection> PhotonIDValueMapProducer::vtxToken_
private

Definition at line 113 of file PhotonIDValueMapProducer.cc.

Referenced by produce().

DR_VETO
const unsigned char DR_VETO
Definition: PhotonIDValueMapProducer.cc:158
PhotonIDValueMapProducer::usesES_
const bool usesES_
Definition: PhotonIDValueMapProducer.cc:106
muons2muons_cfi.photon
photon
Definition: muons2muons_cfi.py:28
mps_fire.i
i
Definition: mps_fire.py:428
pat::patPhotonPtr
edm::Ptr< pat::Photon > patPhotonPtr
Definition: PhotonPFIsolationWithMapBasedVeto.cc:36
PhotonIDValueMapProducer::eeRecHits_
const edm::EDGetTokenT< EcalRecHitCollection > eeRecHits_
Definition: PhotonIDValueMapProducer.cc:111
f
double f[11][100]
Definition: MuScleFitUtils.cc:78
edm::isNotFinite
constexpr bool isNotFinite(T x)
Definition: isFinite.h:9
PhotonIDValueMapProducer::pfCandsToken_
const edm::EDGetTokenT< edm::View< reco::Candidate > > pfCandsToken_
Definition: PhotonIDValueMapProducer.cc:114
PhotonIDValueMapProducer::computeWorstPFChargedIsolation
float computeWorstPFChargedIsolation(const reco::Photon &photon, const edm::View< reco::Candidate > &pfCands, const reco::VertexCollection &vertices, const reco::Vertex &pv, unsigned char options, bool isAOD) const
Definition: PhotonIDValueMapProducer.cc:360
HLT_FULL_cff.InputTag
InputTag
Definition: HLT_FULL_cff.py:89285
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
ptMin
constexpr float ptMin
Definition: PhotonIDValueMapProducer.cc:155
reco::PFCandidate::h
Definition: PFCandidate.h:46
edm::EDConsumerBase::consumesCollector
ConsumesCollector consumesCollector()
Use a ConsumesCollector to gather consumes information from helper functions.
Definition: EDConsumerBase.cc:47
PhotonIDValueMapProducer::vtxToken_
const edm::EDGetTokenT< reco::VertexCollection > vtxToken_
Definition: PhotonIDValueMapProducer.cc:113
dRveto2Endcap
constexpr float dRveto2Endcap
Definition: PhotonIDValueMapProducer.cc:154
coneSizeDR2
constexpr float coneSizeDR2
Definition: PhotonIDValueMapProducer.cc:150
dzMax
constexpr float dzMax
Definition: PhotonIDValueMapProducer.cc:152
edm::Handle
Definition: AssociativeIterator.h:50
edm::Ref< VertexCollection >
fileCollector.seed
seed
Definition: fileCollector.py:127
options
Definition: options.py:1
edm::InputTag::label
std::string const & label() const
Definition: InputTag.h:36
dxyMax
constexpr float dxyMax
Definition: PhotonIDValueMapProducer.cc:151
PT_MIN_THRESH
const unsigned char PT_MIN_THRESH
Definition: PhotonIDValueMapProducer.cc:159
test
Definition: SmallWORMDict.h:13
ctpps_dqm_sourceclient-live_cfg.test
test
Definition: ctpps_dqm_sourceclient-live_cfg.py:7
edm::ConfigurationDescriptions::add
void add(std::string const &label, ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:57
HLTEGTnPMonitor_cfi.isAOD
isAOD
Definition: HLTEGTnPMonitor_cfi.py:1001
names
const std::string names[nVars_]
Definition: PhotonIDValueMapProducer.cc:124
vars
vars
Definition: DeepTauId.cc:164
PhotonIDValueMapProducer::particleBasedIsolationToken_
const edm::EDGetToken particleBasedIsolationToken_
Definition: PhotonIDValueMapProducer.cc:115
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
edm::EDConsumerBase::mayConsume
EDGetTokenT< ProductType > mayConsume(edm::InputTag const &tag)
Definition: EDConsumerBase.h:175
mps_fire.end
end
Definition: mps_fire.py:242
PhotonIDValueMapProducer::esRecHits_
const edm::EDGetTokenT< EcalRecHitCollection > esRecHits_
Definition: PhotonIDValueMapProducer.cc:112
EcalClusterLazyTools
PhotonIDValueMapProducer::isAOD_
const bool isAOD_
Definition: PhotonIDValueMapProducer.cc:119
edm::View::size
size_type size() const
PhotonIDValueMapProducer::src_
const edm::EDGetTokenT< edm::View< reco::Photon > > src_
Definition: PhotonIDValueMapProducer.cc:109
TrackRefitter_38T_cff.src
src
Definition: TrackRefitter_38T_cff.py:24
SiStripPI::max
Definition: SiStripPayloadInspectorHelper.h:169
trigObjTnPSource_cfi.filler
filler
Definition: trigObjTnPSource_cfi.py:21
math::XYZVector
XYZVectorD XYZVector
spatial vector with cartesian internal representation
Definition: Vector3D.h:31
MetAnalyzer.pv
def pv(vc)
Definition: MetAnalyzer.py:7
iEvent
int iEvent
Definition: GenABIO.cc:224
reco::PFCandidate::gamma
Definition: PFCandidate.h:49
EcalClusterLazyToolsBase::ESGetTokens::get
ESData get(edm::EventSetup const &eventSetup) const
Definition: EcalClusterLazyTools.h:64
dRveto2Barrel
constexpr float dRveto2Barrel
Definition: PhotonIDValueMapProducer.cc:153
edm::Ptr
Definition: AssociationVector.h:31
looper.cfg
cfg
Definition: looper.py:297
noZS
Definition: EcalClusterLazyTools.h:304
nVars_
constexpr int nVars_
Definition: PhotonIDValueMapProducer.cc:122
submitPVResolutionJobs.desc
string desc
Definition: submitPVResolutionJobs.py:251
edm::ProductRegistryHelper::produces
BranchAliasSetterT< ProductType > produces()
declare what type of product will make and with which optional label
Definition: ProductRegistryHelper.h:108
eostools.move
def move(src, dest)
Definition: eostools.py:511
PhotonIDValueMapProducer::ebRecHits_
const edm::EDGetTokenT< EcalRecHitCollection > ebRecHits_
Definition: PhotonIDValueMapProducer.cc:110
PVValHelper::dxy
Definition: PVValidationHelpers.h:48
extraflags_cff.vtx
vtx
Definition: extraflags_cff.py:18
HLTMuonOfflineAnalyzer_cfi.deltaR2
deltaR2
Definition: HLTMuonOfflineAnalyzer_cfi.py:105
PVValHelper::dz
Definition: PVValidationHelpers.h:51
edm::ValueMap
Definition: ValueMap.h:107
reco::PFCandidate::h0
Definition: PFCandidate.h:50
Exception
Definition: hltDiff.cc:245
edm::helper::Filler
Definition: ValueMap.h:22
PhotonIDValueMapProducer::ecalClusterToolsESGetTokens_
const EcalClusterLazyTools::ESGetTokens ecalClusterToolsESGetTokens_
Definition: PhotonIDValueMapProducer.cc:117
edm::EDConsumerBase::consumes
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
Definition: EDConsumerBase.h:155
reco::PFCandidate::ParticleType
ParticleType
particle types
Definition: PFCandidate.h:44
edm::InputTag
Definition: InputTag.h:15
noZS::EcalClusterLazyTools
EcalClusterLazyToolsT< noZS::EcalClusterTools > EcalClusterLazyTools
Definition: EcalClusterLazyTools.h:305
reco::Vertex
Definition: Vertex.h:35
pwdgSkimBPark_cfi.vertices
vertices
Definition: pwdgSkimBPark_cfi.py:7
PV_CONSTRAINT
const unsigned char PV_CONSTRAINT
Definition: PhotonIDValueMapProducer.cc:157