CMS 3D CMS Logo

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

Public Member Functions

 CandMCMatchTableProducer (edm::ParameterSet const &params)
 
void produce (edm::StreamID id, edm::Event &iEvent, const edm::EventSetup &iSetup) const override
 
 ~CandMCMatchTableProducer () override
 
- Public Member Functions inherited from edm::global::EDProducer<>
 EDProducer ()=default
 
bool hasAbilityToProduceInLumis () const final
 
bool hasAbilityToProduceInRuns () 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 int getParentHadronFlag (const reco::GenParticleRef match)
 
- Static Public Member Functions inherited from edm::global::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 

Protected Types

enum  MatchType {
  MMuon, MElectron, MTau, MPhoton,
  MOther, MElectronDressed
}
 

Protected Attributes

const std::string branchName_
 
const edm::EDGetTokenT< edm::Association< reco::GenParticleCollection > > candMap_
 
edm::EDGetTokenT< edm::Association< reco::GenJetCollection > > candMapDressedLep_
 
edm::EDGetTokenT< edm::Association< reco::GenParticleCollection > > candMapVisTau_
 
const std::string doc_
 
std::string flavDoc_
 
edm::EDGetTokenT< reco::GenParticleCollectiongenPartsToken_
 
edm::EDGetTokenT< edm::ValueMap< bool > > mapTauAnc_
 
const std::string objName_
 
const edm::EDGetTokenT< reco::CandidateViewsrc_
 
enum CandMCMatchTableProducer::MatchType type_
 

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::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 16 of file CandMCMatchTableProducer.cc.

Member Enumeration Documentation

Constructor & Destructor Documentation

CandMCMatchTableProducer::CandMCMatchTableProducer ( edm::ParameterSet const &  params)
inline

Definition at line 18 of file CandMCMatchTableProducer.cc.

References candMapDressedLep_, candMapVisTau_, Exception, flavDoc_, genPartsToken_, edm::ParameterSet::getParameter(), mapTauAnc_, MElectron, MElectronDressed, MMuon, MOther, MPhoton, MTau, AlCaHLTBitMon_QueryRunRegistry::string, and type_.

19  : objName_(params.getParameter<std::string>("objName")),
20  branchName_(params.getParameter<std::string>("branchName")),
21  doc_(params.getParameter<std::string>("docString")),
22  src_(consumes<reco::CandidateView>(params.getParameter<edm::InputTag>("src"))),
24  produces<nanoaod::FlatTable>();
25  const std::string& type = params.getParameter<std::string>("objType");
26  if (type == "Muon")
27  type_ = MMuon;
28  else if (type == "Electron")
29  type_ = MElectron;
30  else if (type == "ElectronDressed")
32  else if (type == "Tau")
33  type_ = MTau;
34  else if (type == "Photon")
35  type_ = MPhoton;
36  else if (type == "Other")
37  type_ = MOther;
38  else
39  throw cms::Exception("Configuration", "Unsupported objType '" + type + "'\n");
40 
41  switch (type_) {
42  case MMuon:
43  flavDoc_ =
44  "1 = prompt muon (including gamma*->mu mu), 15 = muon from prompt tau, " // continues below
45  "5 = muon from b, 4 = muon from c, 3 = muon from light or unknown, 0 = unmatched";
46  break;
47  case MElectron:
48  flavDoc_ =
49  "1 = prompt electron (including gamma*->mu mu), 15 = electron from prompt tau, 22 = prompt photon (likely "
50  "conversion), " // continues below
51  "5 = electron from b, 4 = electron from c, 3 = electron from light or unknown, 0 = unmatched";
52  break;
53  case MElectronDressed:
54  flavDoc_ =
55  "1 = prompt electron (including gamma*->mu mu), 15 = electron from prompt tau, 22 = prompt photon (likely "
56  "conversion), " // continues below
57  "5 = electron from b, 4 = electron from c, 3 = electron from light or unknown, 0 = unmatched";
58  break;
59  case MPhoton:
60  flavDoc_ = "1 = prompt photon, 11 = prompt electron, 0 = unknown or unmatched";
61  break;
62  case MTau:
63  flavDoc_ =
64  "1 = prompt electron, 2 = prompt muon, 3 = tau->e decay, 4 = tau->mu decay, 5 = hadronic tau decay, 0 = "
65  "unknown or unmatched";
66  break;
67  case MOther:
68  flavDoc_ = "1 = from hard scatter, 0 = unknown or unmatched";
69  break;
70  }
71 
72  if (type_ == MTau) {
74  consumes<edm::Association<reco::GenParticleCollection>>(params.getParameter<edm::InputTag>("mcMapVisTau"));
75  }
76  if (type_ == MElectronDressed) {
78  consumes<edm::Association<reco::GenJetCollection>>(params.getParameter<edm::InputTag>("mcMapDressedLep"));
79  mapTauAnc_ = consumes<edm::ValueMap<bool>>(params.getParameter<edm::InputTag>("mapTauAnc"));
80  genPartsToken_ = consumes<reco::GenParticleCollection>(params.getParameter<edm::InputTag>("genparticles"));
81  }
82  }
type
Definition: HCALResponse.h:21
enum CandMCMatchTableProducer::MatchType type_
edm::EDGetTokenT< edm::Association< reco::GenParticleCollection > > candMapVisTau_
edm::EDGetTokenT< reco::GenParticleCollection > genPartsToken_
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
const edm::EDGetTokenT< reco::CandidateView > src_
const edm::EDGetTokenT< edm::Association< reco::GenParticleCollection > > candMap_
edm::EDGetTokenT< edm::ValueMap< bool > > mapTauAnc_
edm::EDGetTokenT< edm::Association< reco::GenJetCollection > > candMapDressedLep_
CandMCMatchTableProducer::~CandMCMatchTableProducer ( )
inlineoverride

Definition at line 84 of file CandMCMatchTableProducer.cc.

84 {}

Member Function Documentation

static void CandMCMatchTableProducer::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
inlinestatic

Definition at line 251 of file CandMCMatchTableProducer.cc.

References edm::ConfigurationDescriptions::add(), edm::ParameterSetDescription::add(), edm::ParameterSetDescription::addOptional(), and AlCaHLTBitMon_QueryRunRegistry::string.

251  {
253  desc.add<std::string>("objName")->setComment("name of the nanoaod::FlatTable to extend with this table");
254  desc.add<std::string>("branchName")
255  ->setComment(
256  "name of the column to write (the final branch in the nanoaod will be <objName>_<branchName>Idx and "
257  "<objName>_<branchName>Flav");
258  desc.add<std::string>("docString")->setComment("documentation to forward to the output");
259  desc.add<edm::InputTag>("src")->setComment(
260  "physics object collection for the reconstructed objects (e.g. leptons)");
261  desc.add<edm::InputTag>("mcMap")->setComment(
262  "tag to an edm::Association<GenParticleCollection> mapping src to gen, such as the one produced by MCMatcher");
263  desc.add<std::string>("objType")->setComment(
264  "type of object to match (Muon, Electron, Tau, Photon, Other), taylors what's in t Flav branch");
265  desc.addOptional<edm::InputTag>("mcMapVisTau")
266  ->setComment("as mcMap, but pointing to the visible gen taus (only if objType == Tau)");
267  desc.addOptional<edm::InputTag>("mcMapDressedLep")
268  ->setComment("as mcMap, but pointing to gen dressed leptons (only if objType == Electrons)");
269  desc.addOptional<edm::InputTag>("mapTauAnc")
270  ->setComment("Value map of matched gen electrons containing info on the tau ancestry");
271  desc.addOptional<edm::InputTag>("genparticles")->setComment("Collection of genParticles to be stored.");
272  descriptions.add("candMcMatchTable", desc);
273  }
ParameterDescriptionBase * addOptional(U const &iLabel, T const &value)
ParameterDescriptionBase * add(U const &iLabel, T const &value)
void add(std::string const &label, ParameterSetDescription const &psetDescription)
static int CandMCMatchTableProducer::getParentHadronFlag ( const reco::GenParticleRef  match)
inlinestatic

Definition at line 228 of file CandMCMatchTableProducer.cc.

References funct::abs(), edm::Ref< C, T, F >::isAvailable(), edm::Ref< C, T, F >::isNonnull(), and edm::Ref< C, T, F >::key().

Referenced by produce().

228  {
229  bool has4 = false;
230  for (unsigned int im = 0, nm = match->numberOfMothers(); im < nm; ++im) {
231  reco::GenParticleRef mom = match->motherRef(im);
232  assert(mom.isNonnull() && mom.isAvailable()); // sanity
233  if (mom.key() >= match.key())
234  continue; // prevent circular refs
235  int id = std::abs(mom->pdgId());
236  if (id / 1000 == 5 || id / 100 == 5 || id == 5)
237  return 5;
238  if (id / 1000 == 4 || id / 100 == 4 || id == 4)
239  has4 = true;
240  if (mom->status() == 2) {
241  id = getParentHadronFlag(mom);
242  if (id == 5)
243  return 5;
244  else if (id == 4)
245  has4 = true;
246  }
247  }
248  return has4 ? 4 : 3;
249  }
bool isAvailable() const
Definition: Ref.h:575
bool isNonnull() const
Checks for non-null.
Definition: Ref.h:251
key_type key() const
Accessor for product key.
Definition: Ref.h:263
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
static int getParentHadronFlag(const reco::GenParticleRef match)
void CandMCMatchTableProducer::produce ( edm::StreamID  id,
edm::Event iEvent,
const edm::EventSetup iSetup 
) const
inlineoverride

Definition at line 86 of file CandMCMatchTableProducer.cc.

References funct::abs(), branchName_, candMap_, candMapDressedLep_, candMapVisTau_, egammaForCoreTracking_cff::cands, boostedElectronIsolation_cff::deltaR, doc_, flavDoc_, genPartsToken_, edm::Event::getByToken(), getParentHadronFlag(), electrons_cff::hasTauAnc, mps_fire::i, nanoaod::FlatTable::IntColumn, edm::Ref< C, T, F >::isNonnull(), crabWrapper::key, edm::Ref< C, T, F >::key(), genParticles_cff::map, electrons_cff::mapTauAnc, mapTauAnc_, match(), MElectron, MElectronDressed, HiEvtPlane_cfi::minpt, MMuon, eostools::move(), MPhoton, MTau, objName_, reco::LeafCandidate::pt(), edm::View< T >::ptrAt(), edm::Event::put(), edm::View< T >::size(), src_, type_, and nanoaod::FlatTable::UInt8Column.

86  {
88  iEvent.getByToken(src_, cands);
89  unsigned int ncand = cands->size();
90 
91  auto tab = std::make_unique<nanoaod::FlatTable>(ncand, objName_, false, true);
92 
94  iEvent.getByToken(candMap_, map);
95 
97  if (type_ == MTau) {
98  iEvent.getByToken(candMapVisTau_, mapVisTau);
99  }
100 
104  if (type_ == MElectronDressed) {
105  iEvent.getByToken(candMapDressedLep_, mapDressedLep);
106  iEvent.getByToken(mapTauAnc_, mapTauAnc);
107  iEvent.getByToken(genPartsToken_, genParts);
108  }
109 
110  std::vector<int> key(ncand, -1), flav(ncand, 0);
111  for (unsigned int i = 0; i < ncand; ++i) {
112  //std::cout << "cand #" << i << ": pT = " << cands->ptrAt(i)->pt() << ", eta = " << cands->ptrAt(i)->eta() << ", phi = " << cands->ptrAt(i)->phi() << std::endl;
113  reco::GenParticleRef match = (*map)[cands->ptrAt(i)];
114  reco::GenParticleRef matchVisTau;
115  reco::GenJetRef matchDressedLep;
116  bool hasTauAnc = false;
117  if (type_ == MTau) {
118  matchVisTau = (*mapVisTau)[cands->ptrAt(i)];
119  }
120  if (type_ == MElectronDressed) {
121  matchDressedLep = (*mapDressedLep)[cands->ptrAt(i)];
122  if (matchDressedLep.isNonnull()) {
123  hasTauAnc = (*mapTauAnc)[matchDressedLep];
124  }
125  }
126  if (match.isNonnull())
127  key[i] = match.key();
128  else if (matchVisTau.isNonnull())
129  key[i] = matchVisTau.key();
130  else if (type_ != MElectronDressed)
131  continue; // go ahead with electrons, as those may be matched to a dressed lepton
132  switch (type_) {
133  case MMuon:
134  if (match->isPromptFinalState())
135  flav[i] = 1; // prompt
136  else if (match->isDirectPromptTauDecayProductFinalState())
137  flav[i] = 15; // tau
138  else
139  flav[i] = getParentHadronFlag(match); // 3 = light, 4 = charm, 5 = b
140  break;
141  case MElectron:
142  if (match->isPromptFinalState())
143  flav[i] = (match->pdgId() == 22 ? 22 : 1); // prompt electron or photon
144  else if (match->isDirectPromptTauDecayProductFinalState())
145  flav[i] = 15; // tau
146  else
147  flav[i] = getParentHadronFlag(match); // 3 = light, 4 = charm, 5 = b
148  break;
149  case MElectronDressed:
150  if (matchDressedLep.isNonnull()) {
151  if (matchDressedLep->pdgId() == 22)
152  flav[i] = 22;
153  else
154  flav[i] = (hasTauAnc) ? 15 : 1;
155 
156  float minpt = 0;
157  const reco::GenParticle* highestPtConstituent = nullptr;
158  for (auto& consti : matchDressedLep->getGenConstituents()) {
159  if (abs(consti->pdgId()) != 11)
160  continue;
161  if (consti->pt() < minpt)
162  continue;
163  minpt = consti->pt();
164  highestPtConstituent = consti;
165  }
166  if (highestPtConstituent) {
167  auto iter =
168  std::find_if(genParts->begin(), genParts->end(), [highestPtConstituent](reco::GenParticle genp) {
169  return (abs(genp.pdgId()) == 11) && (deltaR(genp, *highestPtConstituent) < 0.01) &&
170  (abs(genp.pt() - highestPtConstituent->pt()) / highestPtConstituent->pt() < 0.01);
171  });
172  if (iter != genParts->end()) {
173  key[i] = iter - genParts->begin();
174  }
175  }
176  } else if (!match.isNonnull())
177  flav[i] = 0;
178  else if (match->isPromptFinalState())
179  flav[i] = (match->pdgId() == 22 ? 22 : 1); // prompt electron or photon
180  else if (match->isDirectPromptTauDecayProductFinalState())
181  flav[i] = 15; // tau
182  else
183  flav[i] = getParentHadronFlag(match); // 3 = light, 4 = charm, 5 = b
184  break;
185  case MPhoton:
186  if (match->isPromptFinalState() && match->pdgId() == 22)
187  flav[i] = 1; // prompt photon
188  else if ((match->isPromptFinalState() || match->isDirectPromptTauDecayProductFinalState()) &&
189  abs(match->pdgId()) == 11)
190  flav[i] = 11; // prompt electron
191  break;
192  case MTau:
193  // CV: assignment of status codes according to https://twiki.cern.ch/twiki/bin/viewauth/CMS/HiggsToTauTauWorking2016#MC_Matching
194  if (match.isNonnull() && match->statusFlags().isPrompt() && abs(match->pdgId()) == 11)
195  flav[i] = 1;
196  else if (match.isNonnull() && match->statusFlags().isPrompt() && abs(match->pdgId()) == 13)
197  flav[i] = 2;
198  else if (match.isNonnull() && match->isDirectPromptTauDecayProductFinalState() && abs(match->pdgId()) == 11)
199  flav[i] = 3;
200  else if (match.isNonnull() && match->isDirectPromptTauDecayProductFinalState() && abs(match->pdgId()) == 13)
201  flav[i] = 4;
202  else if (matchVisTau.isNonnull())
203  flav[i] = 5;
204  break;
205  default:
206  flav[i] = match->statusFlags().fromHardProcess();
207  };
208  }
209 
210  tab->addColumn<int>(
211  branchName_ + "Idx", key, "Index into genParticle list for " + doc_, nanoaod::FlatTable::IntColumn);
212  switch (type_) {
213  case MElectronDressed:
214  tab->addColumn<uint8_t>(branchName_ + "Flav",
215  flav,
216  "Flavour of genParticle (DressedLeptons for electrons) for " + doc_ + ": " + flavDoc_,
218  break;
219  default:
220  tab->addColumn<uint8_t>(branchName_ + "Flav",
221  flav,
222  "Flavour of genParticle for " + doc_ + ": " + flavDoc_,
224  }
225  iEvent.put(std::move(tab));
226  }
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
Definition: Event.h:125
bool isNonnull() const
Checks for non-null.
Definition: Ref.h:251
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:517
Ptr< value_type > ptrAt(size_type i) const
enum CandMCMatchTableProducer::MatchType type_
size_type size() const
double pt() const final
transverse momentum
key_type key() const
Accessor for product key.
Definition: Ref.h:263
edm::EDGetTokenT< edm::Association< reco::GenParticleCollection > > candMapVisTau_
edm::EDGetTokenT< reco::GenParticleCollection > genPartsToken_
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
const edm::EDGetTokenT< reco::CandidateView > src_
static int getParentHadronFlag(const reco::GenParticleRef match)
const edm::EDGetTokenT< edm::Association< reco::GenParticleCollection > > candMap_
edm::EDGetTokenT< edm::ValueMap< bool > > mapTauAnc_
std::pair< typename Association::data_type::first_type, double > match(Reference key, Association association, bool bestMatchByMaxValue)
Generic matching function.
Definition: Utils.h:10
edm::EDGetTokenT< edm::Association< reco::GenJetCollection > > candMapDressedLep_
def move(src, dest)
Definition: eostools.py:511

Member Data Documentation

const std::string CandMCMatchTableProducer::branchName_
protected

Definition at line 276 of file CandMCMatchTableProducer.cc.

Referenced by produce().

const edm::EDGetTokenT<edm::Association<reco::GenParticleCollection> > CandMCMatchTableProducer::candMap_
protected

Definition at line 278 of file CandMCMatchTableProducer.cc.

Referenced by produce().

edm::EDGetTokenT<edm::Association<reco::GenJetCollection> > CandMCMatchTableProducer::candMapDressedLep_
protected

Definition at line 280 of file CandMCMatchTableProducer.cc.

Referenced by CandMCMatchTableProducer(), and produce().

edm::EDGetTokenT<edm::Association<reco::GenParticleCollection> > CandMCMatchTableProducer::candMapVisTau_
protected

Definition at line 279 of file CandMCMatchTableProducer.cc.

Referenced by CandMCMatchTableProducer(), and produce().

const std::string CandMCMatchTableProducer::doc_
protected

Definition at line 276 of file CandMCMatchTableProducer.cc.

Referenced by produce().

std::string CandMCMatchTableProducer::flavDoc_
protected

Definition at line 284 of file CandMCMatchTableProducer.cc.

Referenced by CandMCMatchTableProducer(), and produce().

edm::EDGetTokenT<reco::GenParticleCollection> CandMCMatchTableProducer::genPartsToken_
protected

Definition at line 282 of file CandMCMatchTableProducer.cc.

Referenced by CandMCMatchTableProducer(), and produce().

edm::EDGetTokenT<edm::ValueMap<bool> > CandMCMatchTableProducer::mapTauAnc_
protected

Definition at line 281 of file CandMCMatchTableProducer.cc.

Referenced by CandMCMatchTableProducer(), and produce().

const std::string CandMCMatchTableProducer::objName_
protected

Definition at line 276 of file CandMCMatchTableProducer.cc.

Referenced by produce().

const edm::EDGetTokenT<reco::CandidateView> CandMCMatchTableProducer::src_
protected

Definition at line 277 of file CandMCMatchTableProducer.cc.

Referenced by produce().

enum CandMCMatchTableProducer::MatchType CandMCMatchTableProducer::type_
protected