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
 
 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 const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
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
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void selectInputProcessBlocks (ProductRegistry const &productRegistry, ProcessBlockHelperBase const &processBlockHelperBase)
 
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
}
 

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
template<typename T >
using BranchAliasSetterT = ProductRegistryHelper::BranchAliasSetterT< T >
 
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<Transition Tr = Transition::Event>
auto produces (std::string instanceName) noexcept
 declare what type of product will make and with which optional label More...
 
template<Transition B>
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)
 
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 ()
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces ()
 
template<class ProductType >
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces ()
 
template<Transition Tr = Transition::Event>
auto produces () noexcept
 
ProducesCollector producesCollector ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
template<BranchType B = InEvent>
EDConsumerBaseAdaptor< Bconsumes (edm::InputTag tag) noexcept
 
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<Transition Tr = Transition::Event>
constexpr auto esConsumes ()
 
template<Transition Tr = Transition::Event>
auto esConsumes (ESInputTag tag)
 
template<Transition Tr = Transition::Event>
ESGetTokenGeneric esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey)
 Used with EventSetupRecord::doGet. More...
 
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)
 
void resetItemsToGetFrom (BranchType iType)
 

Detailed Description

Definition at line 16 of file CandMCMatchTableProducer.cc.

Member Enumeration Documentation

◆ MatchType

Constructor & Destructor Documentation

◆ CandMCMatchTableProducer()

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

Definition at line 18 of file CandMCMatchTableProducer.cc.

References candMapDressedLep_, candMapVisTau_, Exception, flavDoc_, genPartsToken_, mapTauAnc_, MElectron, MMuon, MOther, MPhoton, MTau, submitPVValidationJobs::params, 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 == "Tau")
31  type_ = MTau;
32  else if (type == "Photon")
33  type_ = MPhoton;
34  else if (type == "Other")
35  type_ = MOther;
36  else
37  throw cms::Exception("Configuration", "Unsupported objType '" + type + "'\n");
38 
39  switch (type_) {
40  case MMuon:
41  flavDoc_ =
42  "1 = prompt muon (including gamma*->mu mu), 15 = muon from prompt tau, " // continues below
43  "5 = muon from b, 4 = muon from c, 3 = muon from light or unknown, 0 = unmatched";
44  break;
45  case MElectron:
46  flavDoc_ =
47  "1 = prompt electron (including gamma*->mu mu), 15 = electron from prompt tau, 22 = prompt photon (likely "
48  "conversion), " // continues below
49  "5 = electron from b, 4 = electron from c, 3 = electron from light or unknown, 0 = unmatched";
50  break;
51  case MPhoton:
52  flavDoc_ = "1 = prompt photon, 11 = prompt electron, 0 = unknown or unmatched";
53  break;
54  case MTau:
55  flavDoc_ =
56  "1 = prompt electron, 2 = prompt muon, 3 = tau->e decay, 4 = tau->mu decay, 5 = hadronic tau decay, 0 = "
57  "unknown or unmatched";
58  break;
59  case MOther:
60  flavDoc_ = "1 = from hard scatter, 0 = unknown or unmatched";
61  break;
62  }
63 
64  if (type_ == MTau) {
66  consumes<edm::Association<reco::GenParticleCollection>>(params.getParameter<edm::InputTag>("mcMapVisTau"));
67  }
68 
69  if (type_ == MElectron) {
71  consumes<edm::Association<reco::GenJetCollection>>(params.getParameter<edm::InputTag>("mcMapDressedLep"));
72  mapTauAnc_ = consumes<edm::ValueMap<bool>>(params.getParameter<edm::InputTag>("mapTauAnc"));
73  genPartsToken_ = consumes<reco::GenParticleCollection>(params.getParameter<edm::InputTag>("genparticles"));
74  }
75  }
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::~CandMCMatchTableProducer ( )
inlineoverride

Definition at line 77 of file CandMCMatchTableProducer.cc.

77 {}

Member Function Documentation

◆ fillDescriptions()

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

Definition at line 226 of file CandMCMatchTableProducer.cc.

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

226  {
228  desc.add<std::string>("objName")->setComment("name of the nanoaod::FlatTable to extend with this table");
229  desc.add<std::string>("branchName")
230  ->setComment(
231  "name of the column to write (the final branch in the nanoaod will be <objName>_<branchName>Idx and "
232  "<objName>_<branchName>Flav");
233  desc.add<std::string>("docString")->setComment("documentation to forward to the output");
234  desc.add<edm::InputTag>("src")->setComment(
235  "physics object collection for the reconstructed objects (e.g. leptons)");
236  desc.add<edm::InputTag>("mcMap")->setComment(
237  "tag to an edm::Association<GenParticleCollection> mapping src to gen, such as the one produced by MCMatcher");
238  desc.add<std::string>("objType")->setComment(
239  "type of object to match (Muon, Electron, Tau, Photon, Other), taylors what's in t Flav branch");
240  desc.addOptional<edm::InputTag>("mcMapVisTau")
241  ->setComment("as mcMap, but pointing to the visible gen taus (only if objType == Tau)");
242  desc.addOptional<edm::InputTag>("mcMapDressedLep")
243  ->setComment("as mcMap, but pointing to gen dressed leptons (only if objType == Electrons)");
244  desc.addOptional<edm::InputTag>("mapTauAnc")
245  ->setComment("Value map of matched gen electrons containing info on the tau ancestry");
246  desc.addOptional<edm::InputTag>("genparticles")->setComment("Collection of genParticles to be stored.");
247  descriptions.add("candMcMatchTable", desc);
248  }
void add(std::string const &label, ParameterSetDescription const &psetDescription)

◆ getParentHadronFlag()

static int CandMCMatchTableProducer::getParentHadronFlag ( const reco::GenParticleRef  match)
inlinestatic

Definition at line 203 of file CandMCMatchTableProducer.cc.

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

Referenced by produce().

203  {
204  bool has4 = false;
205  for (unsigned int im = 0, nm = match->numberOfMothers(); im < nm; ++im) {
206  reco::GenParticleRef mom = match->motherRef(im);
207  assert(mom.isNonnull() && mom.isAvailable()); // sanity
208  if (mom.key() >= match.key())
209  continue; // prevent circular refs
210  int id = std::abs(mom->pdgId());
211  if (id / 1000 == 5 || id / 100 == 5 || id == 5)
212  return 5;
213  if (id / 1000 == 4 || id / 100 == 4 || id == 4)
214  has4 = true;
215  if (mom->status() == 2) {
216  id = getParentHadronFlag(mom);
217  if (id == 5)
218  return 5;
219  else if (id == 4)
220  has4 = true;
221  }
222  }
223  return has4 ? 4 : 3;
224  }
bool isNonnull() const
Checks for non-null.
Definition: Ref.h:238
assert(be >=bs)
key_type key() const
Accessor for product key.
Definition: Ref.h:250
bool isAvailable() const
Definition: Ref.h:537
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
static int getParentHadronFlag(const reco::GenParticleRef match)
std::pair< typename Association::data_type::first_type, double > match(Reference key, Association association, bool bestMatchByMaxValue)
Generic matching function.
Definition: Utils.h:10

◆ produce()

void CandMCMatchTableProducer::produce ( edm::StreamID  id,
edm::Event iEvent,
const edm::EventSetup iSetup 
) const
inlineoverridevirtual

Implements edm::global::EDProducerBase.

Definition at line 79 of file CandMCMatchTableProducer.cc.

References funct::abs(), branchName_, candMap_, candMapDressedLep_, candMapVisTau_, PbPb_ZMuSkimMuonDPG_cff::deltaR, doc_, flavDoc_, EgammaValidation_cff::genp, genPartsToken_, getParentHadronFlag(), electrons_cff::hasTauAnc, mps_fire::i, iEvent, edm::Ref< C, T, F >::isNonnull(), crabWrapper::key, edm::Ref< C, T, F >::key(), electrons_cff::mapTauAnc, mapTauAnc_, match(), MElectron, HiEvtPlane_cfi::minpt, MMuon, eostools::move(), MPhoton, MTau, objName_, reco::LeafCandidate::pt(), src_, and type_.

79  {
80  const auto& candProd = iEvent.get(src_);
81  auto ncand = candProd.size();
82 
83  auto tab = std::make_unique<nanoaod::FlatTable>(ncand, objName_, false, true);
84 
85  const auto& mapProd = iEvent.get(candMap_);
86 
88  if (type_ == MTau) {
89  iEvent.getByToken(candMapVisTau_, mapVisTau);
90  }
91 
95  if (type_ == MElectron) {
96  iEvent.getByToken(candMapDressedLep_, mapDressedLep);
97  iEvent.getByToken(mapTauAnc_, mapTauAnc);
98  iEvent.getByToken(genPartsToken_, genParts);
99  }
100 
101  std::vector<int> key(ncand, -1), flav(ncand, 0);
102  for (unsigned int i = 0; i < ncand; ++i) {
103  //std::cout << "cand #" << i << ": pT = " << cands->ptrAt(i)->pt() << ", eta = " << cands->ptrAt(i)->eta() << ", phi = " << cands->ptrAt(i)->phi() << std::endl;
104  const auto& cand = candProd.ptrAt(i);
105  reco::GenParticleRef match = mapProd[cand];
106  reco::GenParticleRef matchVisTau;
107  reco::GenJetRef matchDressedLep;
108  bool hasTauAnc = false;
109  if (type_ == MTau) {
110  matchVisTau = (*mapVisTau)[cand];
111  }
112  if (type_ == MElectron) {
113  matchDressedLep = (*mapDressedLep)[cand];
114  if (matchDressedLep.isNonnull()) {
115  hasTauAnc = (*mapTauAnc)[matchDressedLep];
116  }
117  }
118  if (match.isNonnull())
119  key[i] = match.key();
120  else if (matchVisTau.isNonnull())
121  key[i] = matchVisTau.key();
122  else if (type_ != MElectron)
123  continue; // go ahead with electrons, as those may be matched to a dressed lepton
124 
125  switch (type_) {
126  case MMuon:
127  if (match->isPromptFinalState())
128  flav[i] = 1; // prompt
129  else if (match->isDirectPromptTauDecayProductFinalState())
130  flav[i] = 15; // tau
131  else
132  flav[i] = getParentHadronFlag(match); // 3 = light, 4 = charm, 5 = b
133  break;
134  case MElectron:
135  if (matchDressedLep.isNonnull()) {
136  if (matchDressedLep->pdgId() == 22)
137  flav[i] = 22;
138  else
139  flav[i] = (hasTauAnc) ? 15 : 1;
140 
141  float minpt = 0;
142  const reco::GenParticle* highestPtConstituent = nullptr;
143  for (auto& consti : matchDressedLep->getGenConstituents()) {
144  if (abs(consti->pdgId()) != 11)
145  continue;
146  if (consti->pt() < minpt)
147  continue;
148  minpt = consti->pt();
149  highestPtConstituent = consti;
150  }
151  if (highestPtConstituent) {
152  auto iter =
153  std::find_if(genParts->begin(), genParts->end(), [highestPtConstituent](reco::GenParticle genp) {
154  return (abs(genp.pdgId()) == 11) && (deltaR(genp, *highestPtConstituent) < 0.01) &&
155  (abs(genp.pt() - highestPtConstituent->pt()) / highestPtConstituent->pt() < 0.01);
156  });
157  if (iter != genParts->end()) {
158  key[i] = iter - genParts->begin();
159  }
160  }
161  } else if (!match.isNonnull())
162  flav[i] = 0;
163  else if (match->isPromptFinalState())
164  flav[i] = (match->pdgId() == 22 ? 22 : 1); // prompt electron or photon
165  else if (match->isDirectPromptTauDecayProductFinalState())
166  flav[i] = 15; // tau
167  else
168  flav[i] = getParentHadronFlag(match); // 3 = light, 4 = charm, 5 = b
169  break;
170  case MPhoton:
171  if (match->isPromptFinalState() && match->pdgId() == 22)
172  flav[i] = 1; // prompt photon
173  else if ((match->isPromptFinalState() || match->isDirectPromptTauDecayProductFinalState()) &&
174  abs(match->pdgId()) == 11)
175  flav[i] = 11; // prompt electron
176  break;
177  case MTau:
178  // CV: assignment of status codes according to https://twiki.cern.ch/twiki/bin/viewauth/CMS/HiggsToTauTauWorking2016#MC_Matching
179  if (match.isNonnull() && match->statusFlags().isPrompt() && abs(match->pdgId()) == 11)
180  flav[i] = 1;
181  else if (match.isNonnull() && match->statusFlags().isPrompt() && abs(match->pdgId()) == 13)
182  flav[i] = 2;
183  else if (match.isNonnull() && match->isDirectPromptTauDecayProductFinalState() && abs(match->pdgId()) == 11)
184  flav[i] = 3;
185  else if (match.isNonnull() && match->isDirectPromptTauDecayProductFinalState() && abs(match->pdgId()) == 13)
186  flav[i] = 4;
187  else if (matchVisTau.isNonnull())
188  flav[i] = 5;
189  break;
190  default:
191  flav[i] = match->statusFlags().fromHardProcess();
192  };
193  }
194 
195  tab->addColumn<int>(branchName_ + "Idx", key, "Index into genParticle list for " + doc_);
196  tab->addColumn<uint8_t>(branchName_ + "Flav",
197  flav,
198  "Flavour of genParticle (DressedLeptons for electrons) for " + doc_ + ": " + flavDoc_);
199 
200  iEvent.put(std::move(tab));
201  }
genp
produce generated paricles in acceptance #
double pt() const final
transverse momentum
enum CandMCMatchTableProducer::MatchType type_
bool isNonnull() const
Checks for non-null.
Definition: Ref.h:238
edm::EDGetTokenT< edm::Association< reco::GenParticleCollection > > candMapVisTau_
key_type key() const
Accessor for product key.
Definition: Ref.h:250
edm::EDGetTokenT< reco::GenParticleCollection > genPartsToken_
int iEvent
Definition: GenABIO.cc:224
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

◆ branchName_

const std::string CandMCMatchTableProducer::branchName_
protected

Definition at line 251 of file CandMCMatchTableProducer.cc.

Referenced by produce().

◆ candMap_

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

Definition at line 253 of file CandMCMatchTableProducer.cc.

Referenced by produce().

◆ candMapDressedLep_

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

Definition at line 255 of file CandMCMatchTableProducer.cc.

Referenced by CandMCMatchTableProducer(), and produce().

◆ candMapVisTau_

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

Definition at line 254 of file CandMCMatchTableProducer.cc.

Referenced by CandMCMatchTableProducer(), and produce().

◆ doc_

const std::string CandMCMatchTableProducer::doc_
protected

Definition at line 251 of file CandMCMatchTableProducer.cc.

Referenced by produce().

◆ flavDoc_

std::string CandMCMatchTableProducer::flavDoc_
protected

Definition at line 259 of file CandMCMatchTableProducer.cc.

Referenced by CandMCMatchTableProducer(), and produce().

◆ genPartsToken_

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

Definition at line 257 of file CandMCMatchTableProducer.cc.

Referenced by CandMCMatchTableProducer(), and produce().

◆ mapTauAnc_

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

Definition at line 256 of file CandMCMatchTableProducer.cc.

Referenced by CandMCMatchTableProducer(), and produce().

◆ objName_

const std::string CandMCMatchTableProducer::objName_
protected

Definition at line 251 of file CandMCMatchTableProducer.cc.

Referenced by produce().

◆ src_

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

Definition at line 252 of file CandMCMatchTableProducer.cc.

Referenced by produce().

◆ type_

enum CandMCMatchTableProducer::MatchType CandMCMatchTableProducer::type_
protected