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
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () 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
 
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)
 
 ~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 const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ESProxyIndex const * esGetTokenIndices (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::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
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 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
ProducesCollector producesCollector ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
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<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

Detailed Description

Definition at line 82 of file PhotonIDValueMapProducer.cc.

Constructor & Destructor Documentation

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

Definition at line 159 of file PhotonIDValueMapProducer.cc.

References mps_fire::i, nVars_, and edm::ProductRegistryHelper::produces().

160  : usesES_(!cfg.getParameter<edm::InputTag>("esReducedRecHitCollection").label().empty()),
162  ebRecHits_(consumes<EcalRecHitCollection>(cfg.getParameter<edm::InputTag>("ebReducedRecHitCollection"))),
163  eeRecHits_(consumes<EcalRecHitCollection>(cfg.getParameter<edm::InputTag>("eeReducedRecHitCollection"))),
164  esRecHits_(consumes<EcalRecHitCollection>(cfg.getParameter<edm::InputTag>("esReducedRecHitCollection"))),
165  vtxToken_(consumes<reco::VertexCollection>(cfg.getParameter<edm::InputTag>("vertices"))),
167  particleBasedIsolationToken_(mayConsume<edm::ValueMap<std::vector<reco::PFCandidateRef>>>(
168  cfg.getParameter<edm::InputTag>("particleBasedIsolation")) /* ...only for AOD... */),
169  isAOD_(cfg.getParameter<bool>("isAOD")) {
170  // Declare producibles
171  for (int i = 0; i < nVars_; ++i)
173 }
BranchAliasSetterT< ProductType > produces()
declare what type of product will make and with which optional label
T getParameter(std::string const &) const
const std::string names[nVars_]
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
const edm::EDGetTokenT< EcalRecHitCollection > eeRecHits_
const edm::EDGetTokenT< EcalRecHitCollection > ebRecHits_
const edm::EDGetTokenT< reco::VertexCollection > vtxToken_
const edm::EDGetTokenT< edm::View< reco::Candidate > > pfCandsToken_
const edm::EDGetTokenT< EcalRecHitCollection > esRecHits_
std::string const & label() const
Definition: InputTag.h:36
const edm::EDGetToken particleBasedIsolationToken_
EDGetTokenT< ProductType > mayConsume(edm::InputTag const &tag)
const edm::EDGetTokenT< edm::View< reco::Photon > > src_
PhotonIDValueMapProducer::~PhotonIDValueMapProducer ( )
inlineoverride

Member Function Documentation

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 355 of file PhotonIDValueMapProducer.cc.

References DEFINE_FWK_MODULE, HLTMuonOfflineAnalyzer_cfi::deltaR2, dRveto2Endcap, reco::PFCandidate::h, reco::Photon::isEB(), SiStripPI::max, ptMin, edm::View< T >::size(), reco::Photon::superCluster(), and badGlobalMuonTaggersAOD_cff::vtx.

Referenced by produce().

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

Definition at line 339 of file PhotonIDValueMapProducer.cc.

References edm::ConfigurationDescriptions::add(), edm::ParameterSetDescription::add(), and HLT_2018_cff::InputTag.

339  {
340  // photonIDValueMapProducer
342  desc.add<edm::InputTag>("particleBasedIsolation", edm::InputTag("particleBasedIsolation", "gedPhotons"));
343  desc.add<edm::InputTag>("src", edm::InputTag("slimmedPhotons", "", "@skipCurrentProcess"));
344  desc.add<edm::InputTag>("esReducedRecHitCollection", edm::InputTag("reducedEgamma", "reducedESRecHits"));
345  desc.add<edm::InputTag>("ebReducedRecHitCollection", edm::InputTag("reducedEgamma", "reducedEBRecHits"));
346  desc.add<edm::InputTag>("eeReducedRecHitCollection", edm::InputTag("reducedEgamma", "reducedEERecHits"));
347  desc.add<edm::InputTag>("pfCandidates", edm::InputTag("packedPFCandidates"));
348  desc.add<edm::InputTag>("vertices", edm::InputTag("offlineSlimmedPrimaryVertices"));
349  desc.add<bool>("isAOD", false);
350  descriptions.add("photonIDValueMapProducer", desc);
351 }
ParameterDescriptionBase * add(U const &iLabel, T const &value)
void add(std::string const &label, ParameterSetDescription const &psetDescription)
void PhotonIDValueMapProducer::produce ( edm::StreamID  ,
edm::Event iEvent,
const edm::EventSetup iSetup 
) const
overrideprivate

Definition at line 175 of file PhotonIDValueMapProducer.cc.

References pat::Photon::associatedPackedPFCandidates(), begin, computeWorstPFChargedIsolation(), HLTMuonOfflineAnalyzer_cfi::deltaR2, DR_VETO, ebRecHits_, eeRecHits_, end, esRecHits_, Exception, f, trigObjTnPSource_cfi::filler, reco::PFCandidate::gamma, edm::Event::getByToken(), edm::Event::getHandle(), reco::PFCandidate::h, reco::PFCandidate::h0, mps_fire::i, isAOD_, edm::isNotFinite(), eostools::move(), nVars_, particleBasedIsolationToken_, pfCandsToken_, edm::Event::put(), PV_CONSTRAINT, SurveyInfoScenario_cff::seed, mathSSE::sqrt(), TrackRefitter_38T_cff::src, src_, ctpps_dqm_sourceclient-live_cfg::test, usesES_, pwdgSkimBPark_cfi::vertices, vtxToken_, reco::Vertex::x(), reco::Vertex::y(), and reco::Vertex::z().

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

Member Data Documentation

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

Definition at line 110 of file PhotonIDValueMapProducer.cc.

Referenced by produce().

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

Definition at line 111 of file PhotonIDValueMapProducer.cc.

Referenced by produce().

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

Definition at line 112 of file PhotonIDValueMapProducer.cc.

Referenced by produce().

const bool PhotonIDValueMapProducer::isAOD_
private

Definition at line 117 of file PhotonIDValueMapProducer.cc.

Referenced by produce().

const edm::EDGetToken PhotonIDValueMapProducer::particleBasedIsolationToken_
private

Definition at line 115 of file PhotonIDValueMapProducer.cc.

Referenced by produce().

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

Definition at line 114 of file PhotonIDValueMapProducer.cc.

Referenced by produce().

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

Definition at line 109 of file PhotonIDValueMapProducer.cc.

Referenced by produce().

const bool PhotonIDValueMapProducer::usesES_
private

Definition at line 106 of file PhotonIDValueMapProducer.cc.

Referenced by produce().

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

Definition at line 113 of file PhotonIDValueMapProducer.cc.

Referenced by produce().