CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Private Member Functions | Private Attributes
MuonProducer Class Reference

#include <MuonProducer.h>

Inheritance diagram for MuonProducer:
edm::stream::EDProducer<>

Public Types

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

Public Member Functions

 MuonProducer (const edm::ParameterSet &)
 Constructor. More...
 
void produce (edm::Event &, const edm::EventSetup &) override
 reconstruct muons More...
 
 ~MuonProducer () override
 Destructor. More...
 
- Public Member Functions inherited from edm::stream::EDProducer<>
 EDProducer ()=default
 
 EDProducer (const EDProducer &)=delete
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
const EDProduceroperator= (const EDProducer &)=delete
 

Private Member Functions

template<typename TYPE >
void fillMuonMap (edm::Event &event, const edm::OrphanHandle< reco::MuonCollection > &muonHandle, const std::vector< TYPE > &muonExtra, const std::string &label)
 
std::string labelOrInstance (const edm::InputTag &) const
 
void setAlias (std::string alias)
 

Private Attributes

bool computeStandardSelectors_
 
bool debug_
 
bool fastLabelling_
 
bool fillCosmicsIdMap_
 
bool fillDetectorBasedIsolation_
 
bool fillIsolation_
 
bool fillPFIsolation_
 
bool fillPFMomentum_
 
bool fillSelectors_
 
bool fillShoweringInfo_
 
bool fillTimingInfo_
 
std::vector< std::map< std::string, edm::InputTag > > pfIsoMapNames
 
std::vector< std::map< std::string, edm::EDGetTokenT< edm::ValueMap< double > > > > pfIsoMapTokens_
 
std::string theAlias
 
edm::InputTag theCosmicCompMapName
 
edm::EDGetTokenT< edm::ValueMap< reco::MuonCosmicCompatibility > > theCosmicCompMapToken_
 
edm::EDGetTokenT< edm::ValueMap< unsigned int > > theCosmicIdMapToken_
 
edm::InputTag theEcalDepositName
 
edm::EDGetTokenT< reco::IsoDepositMaptheEcalDepositToken_
 
edm::InputTag theHcalDepositName
 
edm::EDGetTokenT< reco::IsoDepositMaptheHcalDepositToken_
 
edm::InputTag theHoDepositName
 
edm::EDGetTokenT< reco::IsoDepositMaptheHoDepositToken_
 
edm::InputTag theJetDepositName
 
edm::EDGetTokenT< reco::IsoDepositMaptheJetDepositToken_
 
edm::InputTag theMuonsCollectionLabel
 
edm::EDGetTokenT< reco::MuonCollectiontheMuonsCollectionToken_
 
std::string theMuToMuMapName
 
edm::InputTag thePFCandLabel
 
edm::EDGetTokenT< reco::PFCandidateCollectionthePFCandToken_
 
MuPFIsoHelperthePFIsoHelper
 
InputTags theSelectorMapNames
 
std::vector< edm::EDGetTokenT< edm::ValueMap< bool > > > theSelectorMapTokens_
 
edm::InputTag theShowerMapName
 
edm::EDGetTokenT< edm::ValueMap< reco::MuonShower > > theShowerMapToken_
 
edm::InputTag theTrackDepositName
 
edm::EDGetTokenT< reco::IsoDepositMaptheTrackDepositToken_
 
edm::EDGetTokenT< reco::MuonTimeExtraMaptimeMapCmbToken_
 
edm::EDGetTokenT< reco::MuonTimeExtraMaptimeMapCSCToken_
 
edm::EDGetTokenT< reco::MuonTimeExtraMaptimeMapDTToken_
 
edm::EDGetTokenT< reco::VertexCollectionvertexes_
 
bool writeIsoDeposits_
 

Detailed Description

See header file.

Author
R. Bellan - UCSB ricca.nosp@m.rdo..nosp@m.bella.nosp@m.n@ce.nosp@m.rn.ch

Producer meant for the Post PF reconstruction.

This class takes the muon collection produced before the PF is run (muons1Step) and the information calculated after that the entire event has been reconstructed. The collections produced here are meant to be used for the final analysis (or as PAT input). The previous muon collection is meant to be transient.

Author
R. Bellan - UCSB ricca.nosp@m.rdo..nosp@m.bella.nosp@m.n@ce.nosp@m.rn.ch

Definition at line 48 of file MuonProducer.h.

Member Typedef Documentation

◆ InputTags

typedef std::vector<edm::InputTag> MuonProducer::InputTags

Definition at line 59 of file MuonProducer.h.

Constructor & Destructor Documentation

◆ MuonProducer()

MuonProducer::MuonProducer ( const edm::ParameterSet pSet)

Constructor.

Definition at line 29 of file MuonProducer.cc.

References computeStandardSelectors_, fastLabelling_, fillCosmicsIdMap_, fillDetectorBasedIsolation_, fillPFIsolation_, fillPFMomentum_, fillSelectors_, fillShoweringInfo_, fillTimingInfo_, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), HLT_2022v12_cff::InputTag, edm::InputTag::instance(), dqmiolumiharvest::j, label, edm::InputTag::label(), labelOrInstance(), genParticles_cff::map, pfIsoMapNames, pfIsoMapTokens_, setAlias(), AlCaHLTBitMon_QueryRunRegistry::string, makeGlobalPositionRcd_cfg::tag, theAlias, theCosmicCompMapName, theCosmicCompMapToken_, theCosmicIdMapToken_, theEcalDepositName, theEcalDepositToken_, theHcalDepositName, theHcalDepositToken_, theHoDepositName, theHoDepositToken_, theJetDepositName, theJetDepositToken_, theMuonsCollectionLabel, theMuonsCollectionToken_, theMuToMuMapName, thePFCandLabel, thePFCandToken_, thePFIsoHelper, theSelectorMapNames, theSelectorMapTokens_, theShowerMapName, theShowerMapToken_, theTrackDepositName, theTrackDepositToken_, timeMapCmbToken_, timeMapCSCToken_, timeMapDTToken_, and vertexes_.

30  : debug_(pSet.getUntrackedParameter<bool>("ActivateDebug", false)) {
31  setAlias(pSet.getParameter<std::string>("@module_label"));
32 
33  fastLabelling_ = pSet.getUntrackedParameter<bool>("FastLabelling", true);
34 
36  theMuonsCollectionToken_ = consumes<reco::MuonCollection>(theMuonsCollectionLabel);
37 
38  thePFCandLabel = pSet.getParameter<edm::InputTag>("PFCandidates");
39  thePFCandToken_ = consumes<reco::PFCandidateCollection>(thePFCandLabel);
40 
41  // Variables to switch on-off the differnt parts
42  fillSelectors_ = pSet.getParameter<bool>("FillSelectorMaps");
43  fillCosmicsIdMap_ = pSet.getParameter<bool>("FillCosmicsIdMap");
44  fillPFMomentum_ = pSet.getParameter<bool>("FillPFMomentumAndAssociation");
45  fillPFIsolation_ = pSet.getParameter<bool>("FillPFIsolation");
46  fillDetectorBasedIsolation_ = pSet.getParameter<bool>("FillDetectorBasedIsolation");
47  fillShoweringInfo_ = pSet.getParameter<bool>("FillShoweringInfo");
48  fillTimingInfo_ = pSet.getParameter<bool>("FillTimingInfo");
49  computeStandardSelectors_ = pSet.getParameter<bool>("ComputeStandardSelectors");
50 
51  produces<reco::MuonCollection>();
52 
53  if (fillTimingInfo_) {
54  timeMapCmbToken_ = consumes<reco::MuonTimeExtraMap>(edm::InputTag(theMuonsCollectionLabel.label(), "combined"));
55  timeMapDTToken_ = consumes<reco::MuonTimeExtraMap>(edm::InputTag(theMuonsCollectionLabel.label(), "dt"));
56  timeMapCSCToken_ = consumes<reco::MuonTimeExtraMap>(edm::InputTag(theMuonsCollectionLabel.label(), "csc"));
57 
58  produces<reco::MuonTimeExtraMap>("combined");
59  produces<reco::MuonTimeExtraMap>("dt");
60  produces<reco::MuonTimeExtraMap>("csc");
61  }
62 
64  theTrackDepositName = pSet.getParameter<edm::InputTag>("TrackIsoDeposits");
65  theTrackDepositToken_ = consumes<reco::IsoDepositMap>(theTrackDepositName);
66  produces<reco::IsoDepositMap>(labelOrInstance(theTrackDepositName));
67 
68  theJetDepositName = pSet.getParameter<edm::InputTag>("JetIsoDeposits");
69  theJetDepositToken_ = consumes<reco::IsoDepositMap>(theJetDepositName);
70  produces<reco::IsoDepositMap>(labelOrInstance(theJetDepositName));
71 
72  theEcalDepositName = pSet.getParameter<edm::InputTag>("EcalIsoDeposits");
73  theEcalDepositToken_ = consumes<reco::IsoDepositMap>(theEcalDepositName);
74  produces<reco::IsoDepositMap>(theEcalDepositName.instance());
75 
76  theHcalDepositName = pSet.getParameter<edm::InputTag>("HcalIsoDeposits");
77  theHcalDepositToken_ = consumes<reco::IsoDepositMap>(theHcalDepositName);
78  produces<reco::IsoDepositMap>(theHcalDepositName.instance());
79 
80  theHoDepositName = pSet.getParameter<edm::InputTag>("HoIsoDeposits");
81  theHoDepositToken_ = consumes<reco::IsoDepositMap>(theHoDepositName);
82 
83  produces<reco::IsoDepositMap>(theHoDepositName.instance());
84  }
85 
86  if (fillSelectors_) {
87  theSelectorMapNames = pSet.getParameter<InputTags>("SelectorMaps");
88 
89  for (InputTags::const_iterator tag = theSelectorMapNames.begin(); tag != theSelectorMapNames.end(); ++tag) {
90  theSelectorMapTokens_.push_back(consumes<edm::ValueMap<bool>>(*tag));
91  produces<edm::ValueMap<bool>>(labelOrInstance(*tag));
92  }
93  }
94 
95  if (fillShoweringInfo_) {
96  theShowerMapName = pSet.getParameter<edm::InputTag>("ShowerInfoMap");
97  theShowerMapToken_ = consumes<reco::MuonShowerMap>(theShowerMapName);
98  produces<edm::ValueMap<reco::MuonShower>>(labelOrInstance(theShowerMapName));
99  }
100 
101  if (fillCosmicsIdMap_) {
102  theCosmicCompMapName = pSet.getParameter<edm::InputTag>("CosmicIdMap");
103  theCosmicIdMapToken_ = consumes<edm::ValueMap<unsigned int>>(theCosmicCompMapName);
104  theCosmicCompMapToken_ = consumes<edm::ValueMap<reco::MuonCosmicCompatibility>>(theCosmicCompMapName);
105 
106  produces<edm::ValueMap<reco::MuonCosmicCompatibility>>(labelOrInstance(theCosmicCompMapName));
107  produces<edm::ValueMap<unsigned int>>(labelOrInstance(theCosmicCompMapName));
108  }
109 
111  produces<edm::ValueMap<reco::MuonRef>>(theMuToMuMapName);
112 
113  if (fillPFIsolation_) {
114  edm::ParameterSet pfIsoPSet = pSet.getParameter<edm::ParameterSet>("PFIsolation");
115 
116  //Define a map between the isolation and the PSet for the PFHelper
117  std::map<std::string, edm::ParameterSet> psetMap;
118 
119  //First declare what isolation you are going to read
120  std::vector<std::string> isolationLabels;
121  isolationLabels.push_back("pfIsolationR03");
122  isolationLabels.push_back("pfIsoMeanDRProfileR03");
123  isolationLabels.push_back("pfIsoSumDRProfileR03");
124  isolationLabels.push_back("pfIsolationR04");
125  isolationLabels.push_back("pfIsoMeanDRProfileR04");
126  isolationLabels.push_back("pfIsoSumDRProfileR04");
127 
128  //Fill the label,pet map and initialize MuPFIsoHelper
129  for (std::vector<std::string>::const_iterator label = isolationLabels.begin(); label != isolationLabels.end();
130  ++label)
131  psetMap[*label] = pfIsoPSet.getParameter<edm::ParameterSet>(*label);
132 
133  thePFIsoHelper = new MuPFIsoHelper(psetMap, consumesCollector());
134 
135  //Now loop on the mass read for each PSet the parameters and save them to the mapNames for later
136 
137  for (std::map<std::string, edm::ParameterSet>::const_iterator map = psetMap.begin(); map != psetMap.end(); ++map) {
138  std::map<std::string, edm::InputTag> isoMap;
139  isoMap["chargedParticle"] = map->second.getParameter<edm::InputTag>("chargedParticle");
140  isoMap["chargedHadron"] = map->second.getParameter<edm::InputTag>("chargedHadron");
141  isoMap["neutralHadron"] = map->second.getParameter<edm::InputTag>("neutralHadron");
142  isoMap["neutralHadronHighThreshold"] = map->second.getParameter<edm::InputTag>("neutralHadronHighThreshold");
143  isoMap["photon"] = map->second.getParameter<edm::InputTag>("photon");
144  isoMap["photonHighThreshold"] = map->second.getParameter<edm::InputTag>("photonHighThreshold");
145  isoMap["pu"] = map->second.getParameter<edm::InputTag>("pu");
146 
147  std::map<std::string, edm::EDGetTokenT<edm::ValueMap<double>>> isoMapToken;
148  isoMapToken["chargedParticle"] = consumes<edm::ValueMap<double>>(isoMap["chargedParticle"]);
149  isoMapToken["chargedHadron"] = consumes<edm::ValueMap<double>>(isoMap["chargedHadron"]);
150  isoMapToken["neutralHadron"] = consumes<edm::ValueMap<double>>(isoMap["neutralHadron"]);
151  isoMapToken["neutralHadronHighThreshold"] = consumes<edm::ValueMap<double>>(isoMap["neutralHadronHighThreshold"]);
152  isoMapToken["photon"] = consumes<edm::ValueMap<double>>(isoMap["photon"]);
153  isoMapToken["photonHighThreshold"] = consumes<edm::ValueMap<double>>(isoMap["photonHighThreshold"]);
154  isoMapToken["pu"] = consumes<edm::ValueMap<double>>(isoMap["pu"]);
155 
156  pfIsoMapNames.push_back(isoMap);
157  pfIsoMapTokens_.push_back(isoMapToken);
158  }
159 
160  for (unsigned int j = 0; j < pfIsoMapNames.size(); ++j) {
161  for (std::map<std::string, edm::InputTag>::const_iterator map = pfIsoMapNames.at(j).begin();
162  map != pfIsoMapNames.at(j).end();
163  ++map)
164  produces<edm::ValueMap<double>>(labelOrInstance(map->second));
165  }
166  }
167 
169  vertexes_ = consumes<reco::VertexCollection>(pSet.getParameter<edm::InputTag>("vertices"));
170  }
171 }
std::string labelOrInstance(const edm::InputTag &) const
edm::EDGetTokenT< reco::MuonTimeExtraMap > timeMapCSCToken_
Definition: MuonProducer.h:126
edm::InputTag theTrackDepositName
Definition: MuonProducer.h:99
T getParameter(std::string const &) const
Definition: ParameterSet.h:307
edm::EDGetTokenT< edm::ValueMap< unsigned int > > theCosmicIdMapToken_
Definition: MuonProducer.h:118
edm::EDGetTokenT< reco::MuonTimeExtraMap > timeMapDTToken_
Definition: MuonProducer.h:125
std::string const & instance() const
Definition: InputTag.h:37
std::vector< std::map< std::string, edm::EDGetTokenT< edm::ValueMap< double > > > > pfIsoMapTokens_
Definition: MuonProducer.h:129
bool fillSelectors_
Definition: MuonProducer.h:90
std::string theAlias
Definition: MuonProducer.h:69
edm::EDGetTokenT< edm::ValueMap< reco::MuonShower > > theShowerMapToken_
Definition: MuonProducer.h:115
std::string const & label() const
Definition: InputTag.h:36
edm::InputTag theEcalDepositName
Definition: MuonProducer.h:100
std::vector< edm::EDGetTokenT< edm::ValueMap< bool > > > theSelectorMapTokens_
Definition: MuonProducer.h:112
edm::EDGetTokenT< reco::IsoDepositMap > theJetDepositToken_
Definition: MuonProducer.h:109
bool fillCosmicsIdMap_
Definition: MuonProducer.h:91
edm::EDGetTokenT< reco::IsoDepositMap > theHoDepositToken_
Definition: MuonProducer.h:108
edm::InputTag thePFCandLabel
Definition: MuonProducer.h:85
T getUntrackedParameter(std::string const &, T const &) const
edm::EDGetTokenT< reco::PFCandidateCollection > thePFCandToken_
Definition: MuonProducer.h:86
char const * label
edm::EDGetTokenT< reco::IsoDepositMap > theTrackDepositToken_
Definition: MuonProducer.h:105
bool fillDetectorBasedIsolation_
Definition: MuonProducer.h:94
void setAlias(std::string alias)
Definition: MuonProducer.h:71
edm::InputTag theMuonsCollectionLabel
Definition: MuonProducer.h:82
edm::InputTag theShowerMapName
Definition: MuonProducer.h:114
edm::EDGetTokenT< reco::MuonTimeExtraMap > timeMapCmbToken_
Definition: MuonProducer.h:124
edm::InputTag theHoDepositName
Definition: MuonProducer.h:102
bool fillTimingInfo_
Definition: MuonProducer.h:96
edm::EDGetTokenT< reco::VertexCollection > vertexes_
Definition: MuonProducer.h:131
bool computeStandardSelectors_
Definition: MuonProducer.h:97
std::vector< edm::InputTag > InputTags
Definition: MuonProducer.h:59
bool fillPFIsolation_
Definition: MuonProducer.h:93
InputTags theSelectorMapNames
Definition: MuonProducer.h:111
edm::EDGetTokenT< reco::MuonCollection > theMuonsCollectionToken_
Definition: MuonProducer.h:83
std::string theMuToMuMapName
Definition: MuonProducer.h:120
bool fillShoweringInfo_
Definition: MuonProducer.h:95
edm::EDGetTokenT< reco::IsoDepositMap > theEcalDepositToken_
Definition: MuonProducer.h:106
edm::EDGetTokenT< edm::ValueMap< reco::MuonCosmicCompatibility > > theCosmicCompMapToken_
Definition: MuonProducer.h:119
MuPFIsoHelper * thePFIsoHelper
Definition: MuonProducer.h:122
std::vector< std::map< std::string, edm::InputTag > > pfIsoMapNames
Definition: MuonProducer.h:128
edm::EDGetTokenT< reco::IsoDepositMap > theHcalDepositToken_
Definition: MuonProducer.h:107
edm::InputTag theCosmicCompMapName
Definition: MuonProducer.h:117
bool fastLabelling_
Definition: MuonProducer.h:80
edm::InputTag theHcalDepositName
Definition: MuonProducer.h:101
bool fillPFMomentum_
Definition: MuonProducer.h:92
edm::InputTag theJetDepositName
Definition: MuonProducer.h:103

◆ ~MuonProducer()

MuonProducer::~MuonProducer ( )
override

Destructor.

Definition at line 174 of file MuonProducer.cc.

References fillPFIsolation_, and thePFIsoHelper.

174  {
176  delete thePFIsoHelper;
177 }
bool fillPFIsolation_
Definition: MuonProducer.h:93
MuPFIsoHelper * thePFIsoHelper
Definition: MuonProducer.h:122

Member Function Documentation

◆ fillMuonMap()

template<typename TYPE >
void MuonProducer::fillMuonMap ( edm::Event event,
const edm::OrphanHandle< reco::MuonCollection > &  muonHandle,
const std::vector< TYPE > &  muonExtra,
const std::string &  label 
)
private

Definition at line 483 of file MuonProducer.cc.

References trigObjTnPSource_cfi::filler, label, and eostools::move().

486  {
487  typedef typename edm::ValueMap<TYPE>::Filler FILLER;
488 
489  auto muonMap = std::make_unique<edm::ValueMap<TYPE>>();
490  if (!muonExtra.empty()) {
491  FILLER filler(*muonMap);
492  filler.insert(muonHandle, muonExtra.begin(), muonExtra.end());
493  filler.fill();
494  }
495  event.put(std::move(muonMap), label);
496 }
char const * label
def move(src, dest)
Definition: eostools.py:511

◆ labelOrInstance()

std::string MuonProducer::labelOrInstance ( const edm::InputTag input) const
private

Definition at line 498 of file MuonProducer.cc.

References fastLabelling_, input, edm::InputTag::label(), and theMuonsCollectionLabel.

Referenced by MuonProducer(), and produce().

498  {
499  if (fastLabelling_)
500  return input.label();
501 
502  return input.label() != theMuonsCollectionLabel.label() ? input.label() : input.instance();
503 }
std::string const & label() const
Definition: InputTag.h:36
static std::string const input
Definition: EdmProvDump.cc:47
edm::InputTag theMuonsCollectionLabel
Definition: MuonProducer.h:82
bool fastLabelling_
Definition: MuonProducer.h:80

◆ produce()

void MuonProducer::produce ( edm::Event event,
const edm::EventSetup eventSetup 
)
override

reconstruct muons

Definition at line 180 of file MuonProducer.cc.

References funct::abs(), MuPFIsoHelper::beginEvent(), computeStandardSelectors_, dout, MuPFIsoHelper::embedPFIsolation(), edmPickEvents::event, fillCosmicsIdMap_, fillDetectorBasedIsolation_, fillPFIsolation_, fillPFMomentum_, fillSelectors_, fillShoweringInfo_, fillTimingInfo_, mps_fire::i, edm::Ref< C, T, F >::id(), calomuons_cfi::inputMuons, edm::InputTag::instance(), reco::Muon::isGlobalMuon(), reco::Muon::isPFMuon(), reco::Muon::isStandAloneMuon(), reco::Muon::isTrackerMuon(), dqmiolumiharvest::j, edm::Ref< C, T, F >::key(), labelOrInstance(), muon::makeSelectorBitset(), genParticles_cff::map, metname, eostools::move(), custom_jme_cff::nMuons, reco::LeafCandidate::p4(), zmumugammaAnalyzer_cfi::pfCandidates, pfIsoMapNames, pfIsoMapTokens_, reco::Muon::pfP4(), HLT_2022v12_cff::primaryVertices, alignCSCRings::s, reco::Muon::setBestTrack(), reco::LeafCandidate::setCharge(), reco::LeafCandidate::setP4(), reco::LeafCandidate::setPdgId(), reco::Muon::setPFP4(), reco::Muon::setSelectors(), AlCaHLTBitMon_QueryRunRegistry::string, makeGlobalPositionRcd_cfg::tag, theCosmicCompMapName, theCosmicCompMapToken_, theCosmicIdMapToken_, theEcalDepositName, theEcalDepositToken_, theHcalDepositName, theHcalDepositToken_, theHoDepositName, theHoDepositToken_, theJetDepositName, theJetDepositToken_, theMuonsCollectionToken_, theMuToMuMapName, thePFCandToken_, thePFIsoHelper, theSelectorMapNames, theSelectorMapTokens_, theShowerMapName, theShowerMapToken_, theTrackDepositName, theTrackDepositToken_, timeMapCmbToken_, timeMapCSCToken_, timeMapDTToken_, bphysicsOniaDQM_cfi::vertex, and vertexes_.

180  {
181  const std::string metname = "Muon|RecoMuon|MuonIdentification|MuonProducer";
182 
183  // the muon collection, it will be loaded in the event
184  auto outputMuons = std::make_unique<reco::MuonCollection>();
185  reco::MuonRefProd outputMuonsRefProd = event.getRefBeforePut<reco::MuonCollection>();
186 
188  event.getByToken(theMuonsCollectionToken_, inputMuons);
189  edm::OrphanHandle<reco::MuonCollection> inputMuonsOH(inputMuons.product(), inputMuons.id());
190 
192  event.getByToken(thePFCandToken_, pfCandidates);
193 
195  const reco::Vertex* vertex(nullptr);
197  event.getByToken(vertexes_, primaryVertices);
198  if (!primaryVertices->empty())
199  vertex = &(primaryVertices->front());
200  }
201 
202  // fetch collections for PFIso
203  if (fillPFIsolation_)
205 
206  // Fill timing information
210 
211  int nMuons = inputMuons->size();
212 
213  std::vector<reco::MuonTimeExtra> dtTimeColl(nMuons);
214  std::vector<reco::MuonTimeExtra> cscTimeColl(nMuons);
215  std::vector<reco::MuonTimeExtra> combinedTimeColl(nMuons);
216 
217  if (fillTimingInfo_) {
218  event.getByToken(timeMapCmbToken_, timeMapCmb);
219  event.getByToken(timeMapDTToken_, timeMapDT);
220  event.getByToken(timeMapCSCToken_, timeMapCSC);
221  }
222 
223  std::vector<reco::IsoDeposit> trackDepColl(nMuons);
224  std::vector<reco::IsoDeposit> ecalDepColl(nMuons);
225  std::vector<reco::IsoDeposit> hcalDepColl(nMuons);
226  std::vector<reco::IsoDeposit> hoDepColl(nMuons);
227  std::vector<reco::IsoDeposit> jetDepColl(nMuons);
228 
229  edm::Handle<reco::IsoDepositMap> trackIsoDepMap;
230  edm::Handle<reco::IsoDepositMap> ecalIsoDepMap;
231  edm::Handle<reco::IsoDepositMap> hcalIsoDepMap;
234 
236  event.getByToken(theTrackDepositToken_, trackIsoDepMap);
237  event.getByToken(theEcalDepositToken_, ecalIsoDepMap);
238  event.getByToken(theHcalDepositToken_, hcalIsoDepMap);
239  event.getByToken(theHoDepositToken_, hoIsoDepMap);
240  event.getByToken(theJetDepositToken_, jetIsoDepMap);
241  }
242 
243  std::vector<std::map<std::string, edm::Handle<edm::ValueMap<double>>>> pfIsoMaps;
244  std::vector<std::map<std::string, std::vector<double>>> pfIsoMapVals;
245 
246  if (fillPFIsolation_) {
247  for (unsigned int j = 0; j < pfIsoMapNames.size(); ++j) {
248  std::map<std::string, std::vector<double>> mapVals;
249  std::map<std::string, edm::Handle<edm::ValueMap<double>>> maps;
250  for (std::map<std::string, edm::InputTag>::const_iterator map = pfIsoMapNames.at(j).begin();
251  map != pfIsoMapNames.at(j).end();
252  ++map) {
254  event.getByToken(pfIsoMapTokens_.at(j)[map->first], handleTmp);
255  maps[map->first] = handleTmp;
256  mapVals[map->first].resize(nMuons);
257  }
258  pfIsoMapVals.push_back(mapVals);
259  pfIsoMaps.push_back(maps);
260  }
261  }
262 
263  std::vector<edm::Handle<edm::ValueMap<bool>>> selectorMaps(fillSelectors_ ? theSelectorMapNames.size() : 0);
264  std::vector<std::vector<bool>> selectorMapResults(fillSelectors_ ? theSelectorMapNames.size() : 0);
265  if (fillSelectors_) {
266  unsigned int s = 0;
267  for (InputTags::const_iterator tag = theSelectorMapNames.begin(); tag != theSelectorMapNames.end(); ++tag, ++s) {
268  event.getByToken(theSelectorMapTokens_.at(s), selectorMaps[s]);
269  selectorMapResults[s].resize(nMuons);
270  }
271  }
272 
273  edm::Handle<reco::MuonShowerMap> showerInfoMap;
274  if (fillShoweringInfo_)
275  event.getByToken(theShowerMapToken_, showerInfoMap);
276 
277  std::vector<reco::MuonShower> showerInfoColl(nMuons);
278 
280  if (fillCosmicsIdMap_)
281  event.getByToken(theCosmicIdMapToken_, cosmicIdMap);
282  std::vector<unsigned int> cosmicIdColl(fillCosmicsIdMap_ ? nMuons : 0);
283 
285  if (fillCosmicsIdMap_)
286  event.getByToken(theCosmicCompMapToken_, cosmicCompMap);
287  std::vector<reco::MuonCosmicCompatibility> cosmicCompColl(fillCosmicsIdMap_ ? nMuons : 0);
288 
289  std::vector<reco::MuonRef> muonRefColl(nMuons);
290 
291  if (inputMuons->empty()) {
292  edm::OrphanHandle<reco::MuonCollection> muonHandle = event.put(std::move(outputMuons));
293 
294  if (fillTimingInfo_) {
295  fillMuonMap<reco::MuonTimeExtra>(event, muonHandle, combinedTimeColl, "combined");
296  fillMuonMap<reco::MuonTimeExtra>(event, muonHandle, dtTimeColl, "dt");
297  fillMuonMap<reco::MuonTimeExtra>(event, muonHandle, cscTimeColl, "csc");
298  }
299 
301  fillMuonMap<reco::IsoDeposit>(event, muonHandle, trackDepColl, labelOrInstance(theTrackDepositName));
302  fillMuonMap<reco::IsoDeposit>(event, muonHandle, jetDepColl, labelOrInstance(theJetDepositName));
303  fillMuonMap<reco::IsoDeposit>(event, muonHandle, ecalDepColl, theEcalDepositName.instance());
304  fillMuonMap<reco::IsoDeposit>(event, muonHandle, hcalDepColl, theHcalDepositName.instance());
305  fillMuonMap<reco::IsoDeposit>(event, muonHandle, hoDepColl, theHoDepositName.instance());
306  }
307 
308  if (fillSelectors_) {
309  unsigned int s = 0;
310  for (InputTags::const_iterator tag = theSelectorMapNames.begin(); tag != theSelectorMapNames.end(); ++tag, ++s) {
311  fillMuonMap<bool>(event, muonHandle, selectorMapResults[s], labelOrInstance(*tag));
312  }
313  }
314 
315  if (fillShoweringInfo_)
316  fillMuonMap<reco::MuonShower>(event, muonHandle, showerInfoColl, labelOrInstance(theShowerMapName));
317 
318  if (fillCosmicsIdMap_) {
319  fillMuonMap<unsigned int>(event, muonHandle, cosmicIdColl, labelOrInstance(theCosmicCompMapName));
320  fillMuonMap<reco::MuonCosmicCompatibility>(
321  event, muonHandle, cosmicCompColl, labelOrInstance(theCosmicCompMapName));
322  }
323 
324  fillMuonMap<reco::MuonRef>(event, inputMuonsOH, muonRefColl, theMuToMuMapName);
325 
326  if (fillPFIsolation_) {
327  for (unsigned int j = 0; j < pfIsoMapNames.size(); ++j)
328  for (std::map<std::string, edm::InputTag>::const_iterator map = pfIsoMapNames.at(j).begin();
329  map != pfIsoMapNames.at(j).end();
330  ++map) {
331  fillMuonMap<double>(event, muonHandle, pfIsoMapVals.at(j)[map->first], labelOrInstance(map->second));
332  }
333  }
334  return;
335  }
336 
337  // FIXME: add the option to swith off the Muon-PF "info association".
338 
339  MuToPFMap muToPFMap;
340 
341  if (fillPFMomentum_) {
342  dout << "Number of PFCandidates: " << pfCandidates->size() << endl;
343  for (unsigned int i = 0; i < pfCandidates->size(); ++i)
344  if (abs(pfCandidates->at(i).pdgId()) == 13) {
345  muToPFMap[pfCandidates->at(i).muonRef()] = i;
346  dout << "MuonRef: " << pfCandidates->at(i).muonRef().id() << " " << pfCandidates->at(i).muonRef().key()
347  << " PF p4: " << pfCandidates->at(i).p4() << endl;
348  }
349  dout << "Number of PFMuons: " << muToPFMap.size() << endl;
350  dout << "Number of Muons in the original collection: " << inputMuons->size() << endl;
351  }
352 
353  reco::MuonRef::key_type muIndex = 0;
354  unsigned int i = 0;
355  for (auto const& inMuon : *inputMuons) {
356  reco::MuonRef muRef(inputMuons, muIndex);
357  muonRefColl[i] = reco::MuonRef(outputMuonsRefProd, muIndex++);
358 
359  // Copy the muon
360  reco::Muon outMuon = inMuon;
361 
362  if (fillPFMomentum_) {
363  // search for the corresponding pf candidate
364  MuToPFMap::iterator iter = muToPFMap.find(muRef);
365  if (iter != muToPFMap.end()) {
366  const auto& pfMu = pfCandidates->at(iter->second);
367  outMuon.setPFP4(pfMu.p4());
368  outMuon.setP4(pfMu.p4()); //PF is the default
369  outMuon.setCharge(pfMu.charge()); //PF is the default
370  outMuon.setPdgId(-13 * pfMu.charge());
371  outMuon.setBestTrack(pfMu.bestMuonTrackType());
372  muToPFMap.erase(iter);
373  dout << "MuonRef: " << muRef.id() << " " << muRef.key() << " Is it PF? " << outMuon.isPFMuon()
374  << " PF p4: " << outMuon.pfP4() << endl;
375  }
376 
377  dout << "MuonRef: " << muRef.id() << " " << muRef.key() << " Is it PF? " << outMuon.isPFMuon() << endl;
378 
379  dout << "GLB " << outMuon.isGlobalMuon() << " TM " << outMuon.isTrackerMuon() << " STA "
380  << outMuon.isStandAloneMuon() << " p4 " << outMuon.p4() << endl;
381  }
382 
383  // Add PF isolation info
384  if (fillPFIsolation_) {
385  thePFIsoHelper->embedPFIsolation(outMuon, muRef);
386 
387  for (unsigned int j = 0; j < pfIsoMapNames.size(); ++j) {
388  for (std::map<std::string, edm::InputTag>::const_iterator map = pfIsoMapNames[j].begin();
389  map != pfIsoMapNames[j].end();
390  ++map) {
391  (pfIsoMapVals[j])[map->first][i] = (*pfIsoMaps[j][map->first])[muRef];
392  }
393  }
394  }
395 
396  // Fill timing information
397  if (fillTimingInfo_) {
398  combinedTimeColl[i] = (*timeMapCmb)[muRef];
399  dtTimeColl[i] = (*timeMapDT)[muRef];
400  cscTimeColl[i] = (*timeMapCSC)[muRef];
401  }
402 
404  trackDepColl[i] = (*trackIsoDepMap)[muRef];
405  ecalDepColl[i] = (*ecalIsoDepMap)[muRef];
406  hcalDepColl[i] = (*hcalIsoDepMap)[muRef];
407  hoDepColl[i] = (*hoIsoDepMap)[muRef];
408  jetDepColl[i] = (*jetIsoDepMap)[muRef];
409  ;
410  }
411 
412  if (fillSelectors_) {
413  unsigned int s = 0;
414  for (InputTags::const_iterator tag = theSelectorMapNames.begin(); tag != theSelectorMapNames.end(); ++tag, ++s)
415  selectorMapResults[s][i] = (*selectorMaps[s])[muRef];
416  }
417 
418  // Fill the Showering Info
419  if (fillShoweringInfo_)
420  showerInfoColl[i] = (*showerInfoMap)[muRef];
421 
422  if (fillCosmicsIdMap_) {
423  cosmicIdColl[i] = (*cosmicIdMap)[muRef];
424  cosmicCompColl[i] = (*cosmicCompMap)[muRef];
425  }
426 
427  // Standard Selectors - keep it at the end so that all inputs are available
429  outMuon.setSelectors(0); // reset flags
430  bool isRun2016BCDEF = (272728 <= event.run() && event.run() <= 278808);
431  outMuon.setSelectors(muon::makeSelectorBitset(outMuon, vertex, isRun2016BCDEF));
432  }
433 
434  outputMuons->push_back(outMuon);
435  ++i;
436  }
437 
438  dout << "Number of Muons in the new muon collection: " << outputMuons->size() << endl;
439  edm::OrphanHandle<reco::MuonCollection> muonHandle = event.put(std::move(outputMuons));
440 
441  if (fillTimingInfo_) {
442  fillMuonMap<reco::MuonTimeExtra>(event, muonHandle, combinedTimeColl, "combined");
443  fillMuonMap<reco::MuonTimeExtra>(event, muonHandle, dtTimeColl, "dt");
444  fillMuonMap<reco::MuonTimeExtra>(event, muonHandle, cscTimeColl, "csc");
445  }
446 
448  fillMuonMap<reco::IsoDeposit>(event, muonHandle, trackDepColl, labelOrInstance(theTrackDepositName));
449  fillMuonMap<reco::IsoDeposit>(event, muonHandle, jetDepColl, labelOrInstance(theJetDepositName));
450  fillMuonMap<reco::IsoDeposit>(event, muonHandle, ecalDepColl, theEcalDepositName.instance());
451  fillMuonMap<reco::IsoDeposit>(event, muonHandle, hcalDepColl, theHcalDepositName.instance());
452  fillMuonMap<reco::IsoDeposit>(event, muonHandle, hoDepColl, theHoDepositName.instance());
453  }
454 
455  if (fillPFIsolation_) {
456  for (unsigned int j = 0; j < pfIsoMapNames.size(); ++j) {
457  for (std::map<std::string, edm::InputTag>::const_iterator map = pfIsoMapNames[j].begin();
458  map != pfIsoMapNames[j].end();
459  ++map)
460  fillMuonMap<double>(event, muonHandle, pfIsoMapVals[j][map->first], labelOrInstance(map->second));
461  }
462  }
463 
464  if (fillSelectors_) {
465  unsigned int s = 0;
466  for (InputTags::const_iterator tag = theSelectorMapNames.begin(); tag != theSelectorMapNames.end(); ++tag, ++s)
467  fillMuonMap<bool>(event, muonHandle, selectorMapResults[s], labelOrInstance(*tag));
468  }
469 
470  if (fillShoweringInfo_)
471  fillMuonMap<reco::MuonShower>(event, muonHandle, showerInfoColl, labelOrInstance(theShowerMapName));
472 
473  if (fillCosmicsIdMap_) {
474  fillMuonMap<unsigned int>(event, muonHandle, cosmicIdColl, labelOrInstance(theCosmicCompMapName));
475  fillMuonMap<reco::MuonCosmicCompatibility>(
476  event, muonHandle, cosmicCompColl, labelOrInstance(theCosmicCompMapName));
477  }
478 
479  fillMuonMap<reco::MuonRef>(event, inputMuonsOH, muonRefColl, theMuToMuMapName);
480 }
std::string labelOrInstance(const edm::InputTag &) const
edm::EDGetTokenT< reco::MuonTimeExtraMap > timeMapCSCToken_
Definition: MuonProducer.h:126
edm::InputTag theTrackDepositName
Definition: MuonProducer.h:99
std::remove_cv< typename std::remove_reference< argument_type >::type >::type key_type
Definition: Ref.h:164
edm::EDGetTokenT< edm::ValueMap< unsigned int > > theCosmicIdMapToken_
Definition: MuonProducer.h:118
edm::EDGetTokenT< reco::MuonTimeExtraMap > timeMapDTToken_
Definition: MuonProducer.h:125
const std::string metname
std::string const & instance() const
Definition: InputTag.h:37
std::vector< std::map< std::string, edm::EDGetTokenT< edm::ValueMap< double > > > > pfIsoMapTokens_
Definition: MuonProducer.h:129
bool fillSelectors_
Definition: MuonProducer.h:90
#define dout
Definition: MuonProducer.cc:15
edm::EDGetTokenT< edm::ValueMap< reco::MuonShower > > theShowerMapToken_
Definition: MuonProducer.h:115
edm::InputTag theEcalDepositName
Definition: MuonProducer.h:100
reco::Muon::Selector makeSelectorBitset(reco::Muon const &muon, reco::Vertex const *vertex=nullptr, bool run2016_hip_mitigation=false)
std::vector< edm::EDGetTokenT< edm::ValueMap< bool > > > theSelectorMapTokens_
Definition: MuonProducer.h:112
edm::EDGetTokenT< reco::IsoDepositMap > theJetDepositToken_
Definition: MuonProducer.h:109
const LorentzVector & p4() const final
four-momentum Lorentz vector
std::map< reco::MuonRef, unsigned int > MuToPFMap
Definition: MuonProducer.cc:22
bool isTrackerMuon() const override
Definition: Muon.h:303
std::vector< Muon > MuonCollection
collection of Muon objects
Definition: MuonFwd.h:9
bool fillCosmicsIdMap_
Definition: MuonProducer.h:91
edm::EDGetTokenT< reco::IsoDepositMap > theHoDepositToken_
Definition: MuonProducer.h:108
void setCharge(Charge q) final
set electric charge
edm::EDGetTokenT< reco::PFCandidateCollection > thePFCandToken_
Definition: MuonProducer.h:86
reco::Candidate::LorentzVector pfP4() const
Definition: Muon.h:97
void setSelectors(uint64_t selectors)
Definition: Muon.h:243
edm::EDGetTokenT< reco::IsoDepositMap > theTrackDepositToken_
Definition: MuonProducer.h:105
bool fillDetectorBasedIsolation_
Definition: MuonProducer.h:94
bool isPFMuon() const
Definition: Muon.h:306
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
edm::Ref< MuonCollection > MuonRef
presistent reference to a Muon
Definition: MuonFwd.h:13
edm::InputTag theShowerMapName
Definition: MuonProducer.h:114
edm::EDGetTokenT< reco::MuonTimeExtraMap > timeMapCmbToken_
Definition: MuonProducer.h:124
edm::InputTag theHoDepositName
Definition: MuonProducer.h:102
bool fillTimingInfo_
Definition: MuonProducer.h:96
edm::EDGetTokenT< reco::VertexCollection > vertexes_
Definition: MuonProducer.h:131
bool computeStandardSelectors_
Definition: MuonProducer.h:97
bool fillPFIsolation_
Definition: MuonProducer.h:93
InputTags theSelectorMapNames
Definition: MuonProducer.h:111
edm::EDGetTokenT< reco::MuonCollection > theMuonsCollectionToken_
Definition: MuonProducer.h:83
std::string theMuToMuMapName
Definition: MuonProducer.h:120
bool fillShoweringInfo_
Definition: MuonProducer.h:95
edm::EDGetTokenT< reco::IsoDepositMap > theEcalDepositToken_
Definition: MuonProducer.h:106
int embedPFIsolation(reco::Muon &, reco::MuonRef &)
edm::EDGetTokenT< edm::ValueMap< reco::MuonCosmicCompatibility > > theCosmicCompMapToken_
Definition: MuonProducer.h:119
MuPFIsoHelper * thePFIsoHelper
Definition: MuonProducer.h:122
void beginEvent(const edm::Event &iEvent)
std::vector< std::map< std::string, edm::InputTag > > pfIsoMapNames
Definition: MuonProducer.h:128
virtual void setBestTrack(MuonTrackType muonType)
Definition: Muon.h:86
edm::EDGetTokenT< reco::IsoDepositMap > theHcalDepositToken_
Definition: MuonProducer.h:107
edm::InputTag theCosmicCompMapName
Definition: MuonProducer.h:117
virtual void setPFP4(const reco::Candidate::LorentzVector &p4_)
edm::InputTag theHcalDepositName
Definition: MuonProducer.h:101
bool fillPFMomentum_
Definition: MuonProducer.h:92
void setPdgId(int pdgId) final
edm::InputTag theJetDepositName
Definition: MuonProducer.h:103
bool isGlobalMuon() const override
Definition: Muon.h:302
void setP4(const LorentzVector &p4) final
set 4-momentum
def move(src, dest)
Definition: eostools.py:511
Definition: event.py:1
bool isStandAloneMuon() const override
Definition: Muon.h:304

◆ setAlias()

void MuonProducer::setAlias ( std::string  alias)
inlineprivate

Definition at line 71 of file MuonProducer.h.

References SiStripOfflineCRack_cfg::alias, and theAlias.

Referenced by MuonProducer().

71  {
72  alias.erase(alias.size() - 1, alias.size());
73  theAlias = alias;
74  }
std::string theAlias
Definition: MuonProducer.h:69

Member Data Documentation

◆ computeStandardSelectors_

bool MuonProducer::computeStandardSelectors_
private

Definition at line 97 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

◆ debug_

bool MuonProducer::debug_
private

Definition at line 79 of file MuonProducer.h.

◆ fastLabelling_

bool MuonProducer::fastLabelling_
private

Definition at line 80 of file MuonProducer.h.

Referenced by labelOrInstance(), and MuonProducer().

◆ fillCosmicsIdMap_

bool MuonProducer::fillCosmicsIdMap_
private

Definition at line 91 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

◆ fillDetectorBasedIsolation_

bool MuonProducer::fillDetectorBasedIsolation_
private

Definition at line 94 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

◆ fillIsolation_

bool MuonProducer::fillIsolation_
private

Definition at line 88 of file MuonProducer.h.

◆ fillPFIsolation_

bool MuonProducer::fillPFIsolation_
private

Definition at line 93 of file MuonProducer.h.

Referenced by MuonProducer(), produce(), and ~MuonProducer().

◆ fillPFMomentum_

bool MuonProducer::fillPFMomentum_
private

Definition at line 92 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

◆ fillSelectors_

bool MuonProducer::fillSelectors_
private

Definition at line 90 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

◆ fillShoweringInfo_

bool MuonProducer::fillShoweringInfo_
private

Definition at line 95 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

◆ fillTimingInfo_

bool MuonProducer::fillTimingInfo_
private

Definition at line 96 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

◆ pfIsoMapNames

std::vector<std::map<std::string, edm::InputTag> > MuonProducer::pfIsoMapNames
private

Definition at line 128 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

◆ pfIsoMapTokens_

std::vector<std::map<std::string, edm::EDGetTokenT<edm::ValueMap<double> > > > MuonProducer::pfIsoMapTokens_
private

Definition at line 129 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

◆ theAlias

std::string MuonProducer::theAlias
private

Definition at line 69 of file MuonProducer.h.

Referenced by MuonProducer(), and setAlias().

◆ theCosmicCompMapName

edm::InputTag MuonProducer::theCosmicCompMapName
private

Definition at line 117 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

◆ theCosmicCompMapToken_

edm::EDGetTokenT<edm::ValueMap<reco::MuonCosmicCompatibility> > MuonProducer::theCosmicCompMapToken_
private

Definition at line 119 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

◆ theCosmicIdMapToken_

edm::EDGetTokenT<edm::ValueMap<unsigned int> > MuonProducer::theCosmicIdMapToken_
private

Definition at line 118 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

◆ theEcalDepositName

edm::InputTag MuonProducer::theEcalDepositName
private

Definition at line 100 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

◆ theEcalDepositToken_

edm::EDGetTokenT<reco::IsoDepositMap> MuonProducer::theEcalDepositToken_
private

Definition at line 106 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

◆ theHcalDepositName

edm::InputTag MuonProducer::theHcalDepositName
private

Definition at line 101 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

◆ theHcalDepositToken_

edm::EDGetTokenT<reco::IsoDepositMap> MuonProducer::theHcalDepositToken_
private

Definition at line 107 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

◆ theHoDepositName

edm::InputTag MuonProducer::theHoDepositName
private

Definition at line 102 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

◆ theHoDepositToken_

edm::EDGetTokenT<reco::IsoDepositMap> MuonProducer::theHoDepositToken_
private

Definition at line 108 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

◆ theJetDepositName

edm::InputTag MuonProducer::theJetDepositName
private

Definition at line 103 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

◆ theJetDepositToken_

edm::EDGetTokenT<reco::IsoDepositMap> MuonProducer::theJetDepositToken_
private

Definition at line 109 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

◆ theMuonsCollectionLabel

edm::InputTag MuonProducer::theMuonsCollectionLabel
private

Definition at line 82 of file MuonProducer.h.

Referenced by labelOrInstance(), and MuonProducer().

◆ theMuonsCollectionToken_

edm::EDGetTokenT<reco::MuonCollection> MuonProducer::theMuonsCollectionToken_
private

Definition at line 83 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

◆ theMuToMuMapName

std::string MuonProducer::theMuToMuMapName
private

Definition at line 120 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

◆ thePFCandLabel

edm::InputTag MuonProducer::thePFCandLabel
private

Definition at line 85 of file MuonProducer.h.

Referenced by MuonProducer().

◆ thePFCandToken_

edm::EDGetTokenT<reco::PFCandidateCollection> MuonProducer::thePFCandToken_
private

Definition at line 86 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

◆ thePFIsoHelper

MuPFIsoHelper* MuonProducer::thePFIsoHelper
private

Definition at line 122 of file MuonProducer.h.

Referenced by MuonProducer(), produce(), and ~MuonProducer().

◆ theSelectorMapNames

InputTags MuonProducer::theSelectorMapNames
private

Definition at line 111 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

◆ theSelectorMapTokens_

std::vector<edm::EDGetTokenT<edm::ValueMap<bool> > > MuonProducer::theSelectorMapTokens_
private

Definition at line 112 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

◆ theShowerMapName

edm::InputTag MuonProducer::theShowerMapName
private

Definition at line 114 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

◆ theShowerMapToken_

edm::EDGetTokenT<edm::ValueMap<reco::MuonShower> > MuonProducer::theShowerMapToken_
private

Definition at line 115 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

◆ theTrackDepositName

edm::InputTag MuonProducer::theTrackDepositName
private

Definition at line 99 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

◆ theTrackDepositToken_

edm::EDGetTokenT<reco::IsoDepositMap> MuonProducer::theTrackDepositToken_
private

Definition at line 105 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

◆ timeMapCmbToken_

edm::EDGetTokenT<reco::MuonTimeExtraMap> MuonProducer::timeMapCmbToken_
private

Definition at line 124 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

◆ timeMapCSCToken_

edm::EDGetTokenT<reco::MuonTimeExtraMap> MuonProducer::timeMapCSCToken_
private

Definition at line 126 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

◆ timeMapDTToken_

edm::EDGetTokenT<reco::MuonTimeExtraMap> MuonProducer::timeMapDTToken_
private

Definition at line 125 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

◆ vertexes_

edm::EDGetTokenT<reco::VertexCollection> MuonProducer::vertexes_
private

Definition at line 131 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

◆ writeIsoDeposits_

bool MuonProducer::writeIsoDeposits_
private

Definition at line 89 of file MuonProducer.h.