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<>
typedef CacheContexts< T... > CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T... > HasAbility
 
typedef CacheTypes::LuminosityBlockCache LuminosityBlockCache
 
typedef LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCacheLuminosityBlockContext
 
typedef CacheTypes::LuminosityBlockSummaryCache LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache, GlobalCacheRunContext
 
typedef CacheTypes::RunSummaryCache 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
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndRuns () const final
 

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.

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 }

References computeStandardSelectors_, fastLabelling_, fillCosmicsIdMap_, fillDetectorBasedIsolation_, fillPFIsolation_, fillPFMomentum_, fillSelectors_, fillShoweringInfo_, fillTimingInfo_, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), edm::InputTag::instance(), dqmiolumiharvest::j, label, edm::InputTag::label(), labelOrInstance(), genParticles_cff::map, pfIsoMapNames, pfIsoMapTokens_, setAlias(), AlCaHLTBitMon_QueryRunRegistry::string, GlobalPosition_Frontier_DevDB_cff::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_.

◆ ~MuonProducer()

MuonProducer::~MuonProducer ( )
override

Destructor.

Definition at line 174 of file MuonProducer.cc.

174  {
176  delete thePFIsoHelper;
177 }

References fillPFIsolation_, and thePFIsoHelper.

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.

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 }

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

◆ labelOrInstance()

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

Definition at line 498 of file MuonProducer.cc.

498  {
499  if (fastLabelling_)
500  return input.label();
501 
502  return input.label() != theMuonsCollectionLabel.label() ? input.label() : input.instance();
503 }

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

Referenced by MuonProducer(), and produce().

◆ produce()

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

reconstruct muons

Definition at line 180 of file MuonProducer.cc.

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 }

References funct::abs(), begin, MuPFIsoHelper::beginEvent(), computeStandardSelectors_, dout, MuPFIsoHelper::embedPFIsolation(), 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(), jets_cff::nMuons, reco::LeafCandidate::p4(), zmumugammaAnalyzer_cfi::pfCandidates, pfIsoMapNames, pfIsoMapTokens_, reco::Muon::pfP4(), zMuMuMuonUserData::primaryVertices, alignCSCRings::s, reco::Muon::setBestTrack(), reco::LeafCandidate::setCharge(), reco::LeafCandidate::setP4(), reco::LeafCandidate::setPdgId(), reco::Muon::setPFP4(), reco::Muon::setSelectors(), AlCaHLTBitMon_QueryRunRegistry::string, GlobalPosition_Frontier_DevDB_cff::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_.

◆ setAlias()

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

Definition at line 71 of file MuonProducer.h.

71  {
72  alias.erase(alias.size() - 1, alias.size());
73  theAlias = alias;
74  }

References SiStripOfflineCRack_cfg::alias, and theAlias.

Referenced by MuonProducer().

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.

edm::RefProd< MuonCollection >
reco::LeafCandidate::setPdgId
void setPdgId(int pdgId) final
Definition: LeafCandidate.h:178
MuPFIsoHelper
Definition: MuPFIsoHelper.h:25
zmumugammaAnalyzer_cfi.pfCandidates
pfCandidates
Definition: zmumugammaAnalyzer_cfi.py:11
MuonProducer::setAlias
void setAlias(std::string alias)
Definition: MuonProducer.h:71
mps_fire.i
i
Definition: mps_fire.py:355
input
static const std::string input
Definition: EdmProvDump.cc:48
MuonProducer::theMuToMuMapName
std::string theMuToMuMapName
Definition: MuonProducer.h:120
MuonProducer::theAlias
std::string theAlias
Definition: MuonProducer.h:69
MuonProducer::theShowerMapName
edm::InputTag theShowerMapName
Definition: MuonProducer.h:114
MuonProducer::theShowerMapToken_
edm::EDGetTokenT< edm::ValueMap< reco::MuonShower > > theShowerMapToken_
Definition: MuonProducer.h:115
MuonProducer::computeStandardSelectors_
bool computeStandardSelectors_
Definition: MuonProducer.h:97
edm::InputTag::instance
std::string const & instance() const
Definition: InputTag.h:37
MuonProducer::fillPFIsolation_
bool fillPFIsolation_
Definition: MuonProducer.h:93
MuonProducer::fillShoweringInfo_
bool fillShoweringInfo_
Definition: MuonProducer.h:95
dout
#define dout
Definition: MuonProducer.cc:15
MuonProducer::fillTimingInfo_
bool fillTimingInfo_
Definition: MuonProducer.h:96
MuonProducer::theMuonsCollectionToken_
edm::EDGetTokenT< reco::MuonCollection > theMuonsCollectionToken_
Definition: MuonProducer.h:83
MuonProducer::theSelectorMapNames
InputTags theSelectorMapNames
Definition: MuonProducer.h:111
MuonProducer::timeMapDTToken_
edm::EDGetTokenT< reco::MuonTimeExtraMap > timeMapDTToken_
Definition: MuonProducer.h:125
edm::ParameterSet::getUntrackedParameter
T getUntrackedParameter(std::string const &, T const &) const
MuonProducer::theJetDepositToken_
edm::EDGetTokenT< reco::IsoDepositMap > theJetDepositToken_
Definition: MuonProducer.h:109
MuonProducer::thePFCandToken_
edm::EDGetTokenT< reco::PFCandidateCollection > thePFCandToken_
Definition: MuonProducer.h:86
edm::Handle< reco::MuonCollection >
reco::Muon::setBestTrack
virtual void setBestTrack(MuonTrackType muonType)
Definition: Muon.h:86
MuonProducer::theHcalDepositName
edm::InputTag theHcalDepositName
Definition: MuonProducer.h:101
reco::Muon
Definition: Muon.h:27
edm::Ref< MuonCollection >
MuonProducer::theCosmicCompMapToken_
edm::EDGetTokenT< edm::ValueMap< reco::MuonCosmicCompatibility > > theCosmicCompMapToken_
Definition: MuonProducer.h:119
MuonProducer::fillPFMomentum_
bool fillPFMomentum_
Definition: MuonProducer.h:92
reco::Muon::setPFP4
virtual void setPFP4(const reco::Candidate::LorentzVector &p4_)
edm::InputTag::label
std::string const & label() const
Definition: InputTag.h:36
MuonProducer::thePFIsoHelper
MuPFIsoHelper * thePFIsoHelper
Definition: MuonProducer.h:122
MuonProducer::theCosmicCompMapName
edm::InputTag theCosmicCompMapName
Definition: MuonProducer.h:117
alignCSCRings.s
s
Definition: alignCSCRings.py:92
MuonProducer::theHcalDepositToken_
edm::EDGetTokenT< reco::IsoDepositMap > theHcalDepositToken_
Definition: MuonProducer.h:107
GlobalPosition_Frontier_DevDB_cff.tag
tag
Definition: GlobalPosition_Frontier_DevDB_cff.py:11
MuonProducer::theEcalDepositName
edm::InputTag theEcalDepositName
Definition: MuonProducer.h:100
jets_cff.nMuons
nMuons
Definition: jets_cff.py:209
MuonProducer::fillCosmicsIdMap_
bool fillCosmicsIdMap_
Definition: MuonProducer.h:91
MuonProducer::fillDetectorBasedIsolation_
bool fillDetectorBasedIsolation_
Definition: MuonProducer.h:94
reco::MuonCollection
std::vector< Muon > MuonCollection
collection of Muon objects
Definition: MuonFwd.h:9
MuPFIsoHelper::beginEvent
void beginEvent(const edm::Event &iEvent)
Definition: MuPFIsoHelper.cc:82
reco::MuonRef
edm::Ref< MuonCollection > MuonRef
presistent reference to a Muon
Definition: MuonFwd.h:13
MuonProducer::theMuonsCollectionLabel
edm::InputTag theMuonsCollectionLabel
Definition: MuonProducer.h:82
MuonProducer::labelOrInstance
std::string labelOrInstance(const edm::InputTag &) const
Definition: MuonProducer.cc:498
MuonProducer::theHoDepositName
edm::InputTag theHoDepositName
Definition: MuonProducer.h:102
MuToPFMap
std::map< reco::MuonRef, unsigned int > MuToPFMap
Definition: MuonProducer.cc:22
MuonProducer::theTrackDepositName
edm::InputTag theTrackDepositName
Definition: MuonProducer.h:99
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
MuonProducer::timeMapCSCToken_
edm::EDGetTokenT< reco::MuonTimeExtraMap > timeMapCSCToken_
Definition: MuonProducer.h:126
MuonProducer::theJetDepositName
edm::InputTag theJetDepositName
Definition: MuonProducer.h:103
reco::Muon::isGlobalMuon
bool isGlobalMuon() const override
Definition: Muon.h:299
MuonProducer::timeMapCmbToken_
edm::EDGetTokenT< reco::MuonTimeExtraMap > timeMapCmbToken_
Definition: MuonProducer.h:124
MuonProducer::theTrackDepositToken_
edm::EDGetTokenT< reco::IsoDepositMap > theTrackDepositToken_
Definition: MuonProducer.h:105
bphysicsOniaDQM_cfi.vertex
vertex
Definition: bphysicsOniaDQM_cfi.py:7
edm::ParameterSet
Definition: ParameterSet.h:36
zMuMuMuonUserData.primaryVertices
primaryVertices
Definition: zMuMuMuonUserData.py:12
trigObjTnPSource_cfi.filler
filler
Definition: trigObjTnPSource_cfi.py:21
reco::Muon::pfP4
reco::Candidate::LorentzVector pfP4() const
Definition: Muon.h:97
MuPFIsoHelper::embedPFIsolation
int embedPFIsolation(reco::Muon &, reco::MuonRef &)
Definition: MuPFIsoHelper.cc:63
reco::LeafCandidate::p4
const LorentzVector & p4() const final
four-momentum Lorentz vector
Definition: LeafCandidate.h:114
MuonProducer::theCosmicIdMapToken_
edm::EDGetTokenT< edm::ValueMap< unsigned int > > theCosmicIdMapToken_
Definition: MuonProducer.h:118
MuonProducer::pfIsoMapTokens_
std::vector< std::map< std::string, edm::EDGetTokenT< edm::ValueMap< double > > > > pfIsoMapTokens_
Definition: MuonProducer.h:129
edm::Ref< MuonCollection >::key_type
std::remove_cv< typename std::remove_reference< argument_type >::type >::type key_type
Definition: Ref.h:164
muon::makeSelectorBitset
reco::Muon::Selector makeSelectorBitset(reco::Muon const &muon, reco::Vertex const *vertex=nullptr, bool run2016_hip_mitigation=false)
Definition: MuonSelectors.cc:1045
MuonProducer::vertexes_
edm::EDGetTokenT< reco::VertexCollection > vertexes_
Definition: MuonProducer.h:131
reco::Muon::isPFMuon
bool isPFMuon() const
Definition: Muon.h:303
MuonProducer::pfIsoMapNames
std::vector< std::map< std::string, edm::InputTag > > pfIsoMapNames
Definition: MuonProducer.h:128
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
MuonProducer::theSelectorMapTokens_
std::vector< edm::EDGetTokenT< edm::ValueMap< bool > > > theSelectorMapTokens_
Definition: MuonProducer.h:112
MuonProducer::InputTags
std::vector< edm::InputTag > InputTags
Definition: MuonProducer.h:59
reco::LeafCandidate::setP4
void setP4(const LorentzVector &p4) final
set 4-momentum
Definition: LeafCandidate.h:158
MuonProducer::theEcalDepositToken_
edm::EDGetTokenT< reco::IsoDepositMap > theEcalDepositToken_
Definition: MuonProducer.h:106
eostools.move
def move(src, dest)
Definition: eostools.py:511
edm::OrphanHandle
Definition: EDProductfwd.h:39
reco::Muon::isTrackerMuon
bool isTrackerMuon() const override
Definition: Muon.h:300
MuonProducer::fillSelectors_
bool fillSelectors_
Definition: MuonProducer.h:90
MuonProducer::debug_
bool debug_
Definition: MuonProducer.h:79
edm::ValueMap
Definition: ValueMap.h:107
SiStripOfflineCRack_cfg.alias
alias
Definition: SiStripOfflineCRack_cfg.py:129
reco::LeafCandidate::setCharge
void setCharge(Charge q) final
set electric charge
Definition: LeafCandidate.h:108
MuonProducer::theHoDepositToken_
edm::EDGetTokenT< reco::IsoDepositMap > theHoDepositToken_
Definition: MuonProducer.h:108
reco::Muon::isStandAloneMuon
bool isStandAloneMuon() const override
Definition: Muon.h:301
MuonProducer::thePFCandLabel
edm::InputTag thePFCandLabel
Definition: MuonProducer.h:85
edm::helper::Filler
Definition: ValueMap.h:22
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
genParticles_cff.map
map
Definition: genParticles_cff.py:11
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
event
Definition: event.py:1
calomuons_cfi.inputMuons
inputMuons
Definition: calomuons_cfi.py:12
edm::InputTag
Definition: InputTag.h:15
begin
#define begin
Definition: vmac.h:32
label
const char * label
Definition: PFTauDecayModeTools.cc:11
reco::Muon::setSelectors
void setSelectors(uint64_t selectors)
Definition: Muon.h:241
reco::Vertex
Definition: Vertex.h:35
MuonProducer::fastLabelling_
bool fastLabelling_
Definition: MuonProducer.h:80
metname
const std::string metname
Definition: MuonSeedOrcaPatternRecognition.cc:43