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 hasAbilityToProduceInLumis () const final
 
bool hasAbilityToProduceInRuns () 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

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

Definition at line 61 of file MuonProducer.h.

Constructor & Destructor Documentation

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

Constructor.

Definition at line 33 of file MuonProducer.cc.

References computeStandardSelectors_, fastLabelling_, fillCosmicsIdMap_, fillDetectorBasedIsolation_, fillPFIsolation_, fillPFMomentum_, fillSelectors_, fillShoweringInfo_, fillTimingInfo_, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), diffTwoXMLs::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_.

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

Destructor.

Definition at line 187 of file MuonProducer.cc.

References fillPFIsolation_, and thePFIsoHelper.

187  {
189 }
bool fillPFIsolation_
Definition: MuonProducer.h:98
MuPFIsoHelper * thePFIsoHelper
Definition: MuonProducer.h:129

Member Function Documentation

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 504 of file MuonProducer.cc.

References objects.autophobj::filler, and eostools::move().

507  {
508 
509  typedef typename edm::ValueMap<TYPE>::Filler FILLER;
510 
511  auto muonMap = std::make_unique<edm::ValueMap<TYPE>>();
512  if(!muonExtra.empty()){
513  FILLER filler(*muonMap);
514  filler.insert(muonHandle, muonExtra.begin(), muonExtra.end());
515  filler.fill();
516  }
517  event.put(std::move(muonMap),label);
518 }
def move(src, dest)
Definition: eostools.py:510
std::string MuonProducer::labelOrInstance ( const edm::InputTag input) const
private

Definition at line 521 of file MuonProducer.cc.

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

Referenced by MuonProducer(), and produce().

521  {
522  if(fastLabelling_) return input.label();
523 
524  return input.label() != theMuonsCollectionLabel.label() ? input.label() : input.instance();
525 }
edm::InputTag theMuonsCollectionLabel
Definition: MuonProducer.h:85
std::string const & label() const
Definition: InputTag.h:36
bool fastLabelling_
Definition: MuonProducer.h:83
std::string const & instance() const
Definition: InputTag.h:37
void MuonProducer::produce ( edm::Event event,
const edm::EventSetup eventSetup 
)
override

reconstruct muons

Definition at line 193 of file MuonProducer.cc.

References funct::abs(), begin, MuPFIsoHelper::beginEvent(), computeStandardSelectors_, dout, MuPFIsoHelper::embedPFIsolation(), event(), fillCosmicsIdMap_, fillDetectorBasedIsolation_, fillPFIsolation_, fillPFMomentum_, fillSelectors_, fillShoweringInfo_, fillTimingInfo_, mps_fire::i, edm::OrphanHandleBase::id(), edm::Ref< C, T, F >::id(), calomuons_cfi::inputMuons, edm::InputTag::instance(), reco::Muon::isGlobalMuon(), reco::Muon::isPFMuon(), reco::Muon::isStandAloneMuon(), reco::Muon::isTrackerMuon(), edm::Ref< C, T, F >::key(), labelOrInstance(), genParticles_cff::map, metname, eostools::move(), jets_cff::nMuons, reco::LeafCandidate::p4(), slimmedMuons_cfi::pfCandidates, pfIsoMapNames, pfIsoMapTokens_, reco::Muon::pfP4(), jets_cff::primaryVertices, alignCSCRings::s, reco::Muon::setBestTrack(), reco::LeafCandidate::setCharge(), muon::setCutBasedSelectorFlags(), 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_, and vertexes_.

193  {
194 
195  const std::string metname = "Muon|RecoMuon|MuonIdentification|MuonProducer";
196 
197  // the muon collection, it will be loaded in the event
198  auto outputMuons = std::make_unique<reco::MuonCollection>();
199  reco::MuonRefProd outputMuonsRefProd = event.getRefBeforePut<reco::MuonCollection>();
200 
202  event.getByToken(theMuonsCollectionToken_, inputMuons);
203  edm::OrphanHandle<reco::MuonCollection> inputMuonsOH(inputMuons.product(), inputMuons.id());
204 
206  event.getByToken(thePFCandToken_, pfCandidates);
207 
209  const reco::Vertex* vertex(nullptr);
211  event.getByToken(vertexes_, primaryVertices);
212  if (!primaryVertices->empty())
213  vertex = &(primaryVertices->front());
214  }
215 
216  // fetch collections for PFIso
218 
219 
220  // Fill timing information
224 
225  int nMuons=inputMuons->size();
226 
227  std::vector<reco::MuonTimeExtra> dtTimeColl(nMuons);
228  std::vector<reco::MuonTimeExtra> cscTimeColl(nMuons);
229  std::vector<reco::MuonTimeExtra> combinedTimeColl(nMuons);
230 
231  if(fillTimingInfo_){
232  event.getByToken(timeMapCmbToken_,timeMapCmb);
233  event.getByToken(timeMapDTToken_,timeMapDT);
234  event.getByToken(timeMapCSCToken_,timeMapCSC);
235  }
236 
237  std::vector<reco::IsoDeposit> trackDepColl(nMuons);
238  std::vector<reco::IsoDeposit> ecalDepColl(nMuons);
239  std::vector<reco::IsoDeposit> hcalDepColl(nMuons);
240  std::vector<reco::IsoDeposit> hoDepColl(nMuons);
241  std::vector<reco::IsoDeposit> jetDepColl(nMuons);
242 
243 
244  edm::Handle<reco::IsoDepositMap> trackIsoDepMap;
245  edm::Handle<reco::IsoDepositMap> ecalIsoDepMap;
246  edm::Handle<reco::IsoDepositMap> hcalIsoDepMap;
249 
250 
252  event.getByToken(theTrackDepositToken_,trackIsoDepMap);
253  event.getByToken(theEcalDepositToken_,ecalIsoDepMap);
254  event.getByToken(theHcalDepositToken_,hcalIsoDepMap);
255  event.getByToken(theHoDepositToken_,hoIsoDepMap);
256  event.getByToken(theJetDepositToken_,jetIsoDepMap);
257  }
258 
259 
260 
261  std::vector<std::map<std::string,edm::Handle<edm::ValueMap<double> > > > pfIsoMaps;
262  std::vector<std::map<std::string,std::vector<double> > > pfIsoMapVals;
263 
264  if(fillPFIsolation_){
265  for(unsigned int j=0;j<pfIsoMapNames.size();++j) {
266  std::map<std::string,std::vector<double> > mapVals;
267  std::map<std::string,edm::Handle<edm::ValueMap<double> > > maps;
268  for(std::map<std::string,edm::InputTag>::const_iterator map = pfIsoMapNames.at(j).begin(); map != pfIsoMapNames.at(j).end(); ++map) {
270  event.getByToken(pfIsoMapTokens_.at(j)[map->first],handleTmp);
271  maps[map->first]=handleTmp;
272  mapVals[map->first].resize(nMuons);
273  }
274  pfIsoMapVals.push_back(mapVals);
275  pfIsoMaps.push_back(maps);
276 
277  }
278  }
279 
280 
281 
282  std::vector<edm::Handle<edm::ValueMap<bool> > > selectorMaps(fillSelectors_ ? theSelectorMapNames.size() : 0);
283  std::vector<std::vector<bool> > selectorMapResults(fillSelectors_ ? theSelectorMapNames.size() : 0);
284  if(fillSelectors_){
285  unsigned int s=0;
286  for(InputTags::const_iterator tag = theSelectorMapNames.begin(); tag != theSelectorMapNames.end(); ++tag, ++s){
287  event.getByToken(theSelectorMapTokens_.at(s),selectorMaps[s]);
288  selectorMapResults[s].resize(nMuons);
289  }
290  }
291 
292  edm::Handle<reco::MuonShowerMap> showerInfoMap;
293  if(fillShoweringInfo_) event.getByToken(theShowerMapToken_,showerInfoMap);
294 
295  std::vector<reco::MuonShower> showerInfoColl(nMuons);
296 
298  if(fillCosmicsIdMap_) event.getByToken(theCosmicIdMapToken_,cosmicIdMap);
299  std::vector<unsigned int> cosmicIdColl(fillCosmicsIdMap_ ? nMuons : 0);
300 
302  if(fillCosmicsIdMap_) event.getByToken(theCosmicCompMapToken_,cosmicCompMap);
303  std::vector<reco::MuonCosmicCompatibility> cosmicCompColl(fillCosmicsIdMap_ ? nMuons : 0);
304 
305 
306  std::vector<reco::MuonRef> muonRefColl(nMuons);
307 
308 
309 
310  if(inputMuons->empty()) {
311  edm::OrphanHandle<reco::MuonCollection> muonHandle = event.put(std::move(outputMuons));
312 
313  if(fillTimingInfo_){
314  fillMuonMap<reco::MuonTimeExtra>(event, muonHandle, combinedTimeColl,"combined");
315  fillMuonMap<reco::MuonTimeExtra>(event, muonHandle, dtTimeColl,"dt");
316  fillMuonMap<reco::MuonTimeExtra>(event, muonHandle, cscTimeColl,"csc");
317  }
318 
320  fillMuonMap<reco::IsoDeposit>(event, muonHandle, trackDepColl, labelOrInstance(theTrackDepositName));
321  fillMuonMap<reco::IsoDeposit>(event, muonHandle, jetDepColl, labelOrInstance(theJetDepositName));
322  fillMuonMap<reco::IsoDeposit>(event, muonHandle, ecalDepColl, theEcalDepositName.instance());
323  fillMuonMap<reco::IsoDeposit>(event, muonHandle, hcalDepColl, theHcalDepositName.instance());
324  fillMuonMap<reco::IsoDeposit>(event, muonHandle, hoDepColl, theHoDepositName.instance());
325  }
326 
327  if(fillSelectors_){
328  unsigned int s = 0;
329  for(InputTags::const_iterator tag = theSelectorMapNames.begin();
330  tag != theSelectorMapNames.end(); ++tag, ++s){
331  fillMuonMap<bool>(event, muonHandle, selectorMapResults[s], labelOrInstance(*tag));
332  }
333  }
334 
335  if(fillShoweringInfo_) fillMuonMap<reco::MuonShower>(event, muonHandle, showerInfoColl, labelOrInstance(theShowerMapName));
336 
337  if(fillCosmicsIdMap_){
338  fillMuonMap<unsigned int>(event, muonHandle, cosmicIdColl, labelOrInstance(theCosmicCompMapName));
339  fillMuonMap<reco::MuonCosmicCompatibility>(event, muonHandle, cosmicCompColl, labelOrInstance(theCosmicCompMapName));
340  }
341 
342  fillMuonMap<reco::MuonRef>(event,inputMuonsOH, muonRefColl, theMuToMuMapName);
343 
344  if(fillPFIsolation_){
345  for(unsigned int j=0;j<pfIsoMapNames.size();++j)
346  for(std::map<std::string,edm::InputTag>::const_iterator map = pfIsoMapNames.at(j).begin(); map != pfIsoMapNames.at(j).end(); ++map) {
347  fillMuonMap<double>(event, muonHandle, pfIsoMapVals.at(j)[map->first], labelOrInstance(map->second));
348  }
349  }
350  return;
351  }
352 
353  // FIXME: add the option to swith off the Muon-PF "info association".
354 
355 
356  MuToPFMap muToPFMap;
357 
358  if(fillPFMomentum_){
359  dout << "Number of PFCandidates: " << pfCandidates->size() << endl;
360  for(unsigned int i=0;i< pfCandidates->size();++i)
361  if(abs(pfCandidates->at(i).pdgId()) == 13){
362  muToPFMap[pfCandidates->at(i).muonRef()] = i;
363  dout << "MuonRef: " << pfCandidates->at(i).muonRef().id() << " " << pfCandidates->at(i).muonRef().key() << " PF p4: " << pfCandidates->at(i).p4() << endl;
364  }
365  dout << "Number of PFMuons: " << muToPFMap.size() << endl;
366  dout << "Number of Muons in the original collection: " << inputMuons->size() << endl;
367  }
368 
369  reco::MuonRef::key_type muIndex = 0;
370  unsigned int i = 0;
371  foreach(const reco::Muon &inMuon, *inputMuons){
372 
373  reco::MuonRef muRef(inputMuons, muIndex);
374  muonRefColl[i] = reco::MuonRef(outputMuonsRefProd, muIndex++);
375 
376  // Copy the muon
377  reco::Muon outMuon = inMuon;
378 
379  if(fillPFMomentum_){
380  // search for the corresponding pf candidate
381  MuToPFMap::iterator iter = muToPFMap.find(muRef);
382  if(iter != muToPFMap.end()){
383  const auto& pfMu = pfCandidates->at(iter->second);
384  outMuon.setPFP4(pfMu.p4());
385  outMuon.setP4(pfMu.p4());//PF is the default
386  outMuon.setCharge(pfMu.charge());//PF is the default
387  outMuon.setPdgId(-13*pfMu.charge());
388  outMuon.setBestTrack(pfMu.bestMuonTrackType());
389  muToPFMap.erase(iter);
390  dout << "MuonRef: " << muRef.id() << " " << muRef.key()
391  << " Is it PF? " << outMuon.isPFMuon()
392  << " PF p4: " << outMuon.pfP4() << endl;
393  }
394 
395 
396  dout << "MuonRef: " << muRef.id() << " " << muRef.key()
397  << " Is it PF? " << outMuon.isPFMuon() << endl;
398 
399  dout << "GLB " << outMuon.isGlobalMuon()
400  << " TM " << outMuon.isTrackerMuon()
401  << " STA " << outMuon.isStandAloneMuon()
402  << " p4 " << outMuon.p4() << endl;
403  }
404 
405  // Add PF isolation info
406  if(fillPFIsolation_){
407  thePFIsoHelper->embedPFIsolation(outMuon,muRef);
408 
409  for(unsigned int j=0;j<pfIsoMapNames.size();++j) {
410  for(std::map<std::string,edm::InputTag>::const_iterator map = pfIsoMapNames[j].begin(); map != pfIsoMapNames[j].end(); ++map){
411  (pfIsoMapVals[j])[map->first][i] = (*pfIsoMaps[j][map->first])[muRef];
412  }
413  }
414  }
415 
416  // Fill timing information
417  if(fillTimingInfo_){
418  combinedTimeColl[i] = (*timeMapCmb)[muRef];
419  dtTimeColl[i] = (*timeMapDT)[muRef];
420  cscTimeColl[i] = (*timeMapCSC)[muRef];
421  }
422 
424  trackDepColl[i] = (*trackIsoDepMap)[muRef];
425  ecalDepColl[i] = (*ecalIsoDepMap)[muRef];
426  hcalDepColl[i] = (*hcalIsoDepMap)[muRef];
427  hoDepColl[i] = (*hoIsoDepMap)[muRef];
428  jetDepColl[i] = (*jetIsoDepMap)[muRef];;
429  }
430 
431  if(fillSelectors_){
432  unsigned int s = 0;
433  for(InputTags::const_iterator tag = theSelectorMapNames.begin();
434  tag != theSelectorMapNames.end(); ++tag, ++s)
435  selectorMapResults[s][i] = (*selectorMaps[s])[muRef];
436  }
437 
438  // Fill the Showering Info
439  if(fillShoweringInfo_) showerInfoColl[i] = (*showerInfoMap)[muRef];
440 
441  if(fillCosmicsIdMap_){
442  cosmicIdColl[i] = (*cosmicIdMap)[muRef];
443  cosmicCompColl[i] = (*cosmicCompMap)[muRef];
444  }
445 
446  // Standard Selectors - keep it at the end so that all inputs are available
448  outMuon.setSelectors(0); // reset flags
449  bool isRun2016BCDEF = (272728 <= event.run() && event.run() <= 278808);
450  muon::setCutBasedSelectorFlags(outMuon, vertex, isRun2016BCDEF);
451  }
452 
453  outputMuons->push_back(outMuon);
454  ++i;
455  }
456 
457  dout << "Number of Muons in the new muon collection: " << outputMuons->size() << endl;
458  edm::OrphanHandle<reco::MuonCollection> muonHandle = event.put(std::move(outputMuons));
459 
460  if(fillTimingInfo_){
461  fillMuonMap<reco::MuonTimeExtra>(event, muonHandle, combinedTimeColl,"combined");
462  fillMuonMap<reco::MuonTimeExtra>(event, muonHandle, dtTimeColl,"dt");
463  fillMuonMap<reco::MuonTimeExtra>(event, muonHandle, cscTimeColl,"csc");
464  }
465 
467  fillMuonMap<reco::IsoDeposit>(event, muonHandle, trackDepColl, labelOrInstance(theTrackDepositName));
468  fillMuonMap<reco::IsoDeposit>(event, muonHandle, jetDepColl, labelOrInstance(theJetDepositName));
469  fillMuonMap<reco::IsoDeposit>(event, muonHandle, ecalDepColl, theEcalDepositName.instance());
470  fillMuonMap<reco::IsoDeposit>(event, muonHandle, hcalDepColl, theHcalDepositName.instance());
471  fillMuonMap<reco::IsoDeposit>(event, muonHandle, hoDepColl, theHoDepositName.instance());
472  }
473 
474  if(fillPFIsolation_){
475 
476  for(unsigned int j=0;j<pfIsoMapNames.size();++j) {
477  for(std::map<std::string,edm::InputTag>::const_iterator map = pfIsoMapNames[j].begin(); map != pfIsoMapNames[j].end(); ++map)
478  fillMuonMap<double>(event, muonHandle, pfIsoMapVals[j][map->first], labelOrInstance(map->second));
479  }
480  }
481 
482  if(fillSelectors_){
483  unsigned int s = 0;
484  for(InputTags::const_iterator tag = theSelectorMapNames.begin();
485  tag != theSelectorMapNames.end(); ++tag, ++s)
486  fillMuonMap<bool>(event, muonHandle, selectorMapResults[s], labelOrInstance(*tag));
487  }
488 
489  if(fillShoweringInfo_) fillMuonMap<reco::MuonShower>(event, muonHandle, showerInfoColl, labelOrInstance(theShowerMapName));
490 
491  if(fillCosmicsIdMap_){
492  fillMuonMap<unsigned int>(event, muonHandle, cosmicIdColl, labelOrInstance(theCosmicCompMapName));
493  fillMuonMap<reco::MuonCosmicCompatibility>(event, muonHandle, cosmicCompColl, labelOrInstance(theCosmicCompMapName));
494  }
495 
496  fillMuonMap<reco::MuonRef>(event,inputMuonsOH, muonRefColl, theMuToMuMapName);
497 
498 
499 }
edm::EDGetTokenT< reco::MuonTimeExtraMap > timeMapCSCToken_
Definition: MuonProducer.h:133
edm::InputTag theTrackDepositName
Definition: MuonProducer.h:104
std::remove_cv< typename std::remove_reference< argument_type >::type >::type key_type
Definition: Ref.h:169
edm::EDGetTokenT< edm::ValueMap< unsigned int > > theCosmicIdMapToken_
Definition: MuonProducer.h:125
bool isStandAloneMuon() const override
Definition: Muon.h:278
edm::EDGetTokenT< reco::MuonTimeExtraMap > timeMapDTToken_
Definition: MuonProducer.h:132
const std::string metname
bool fillSelectors_
Definition: MuonProducer.h:95
#define dout
Definition: MuonProducer.cc:19
edm::EDGetTokenT< edm::ValueMap< reco::MuonShower > > theShowerMapToken_
Definition: MuonProducer.h:122
void setCutBasedSelectorFlags(reco::Muon &muon, const reco::Vertex *vertex=0, bool run2016_hip_mitigation=false)
edm::InputTag theEcalDepositName
Definition: MuonProducer.h:105
reco::Candidate::LorentzVector pfP4() const
Definition: Muon.h:102
std::vector< edm::EDGetTokenT< edm::ValueMap< bool > > > theSelectorMapTokens_
Definition: MuonProducer.h:118
edm::EDGetTokenT< reco::IsoDepositMap > theJetDepositToken_
Definition: MuonProducer.h:114
std::map< reco::MuonRef, unsigned int > MuToPFMap
Definition: MuonProducer.cc:24
std::vector< Muon > MuonCollection
collection of Muon objects
Definition: MuonFwd.h:9
bool fillCosmicsIdMap_
Definition: MuonProducer.h:96
edm::EDGetTokenT< reco::IsoDepositMap > theHoDepositToken_
Definition: MuonProducer.h:113
bool isTrackerMuon() const override
Definition: Muon.h:277
ProductID id() const
void setCharge(Charge q) final
set electric charge
Definition: LeafCandidate.h:93
edm::EDGetTokenT< reco::PFCandidateCollection > thePFCandToken_
Definition: MuonProducer.h:89
std::vector< std::map< std::string, edm::InputTag > > pfIsoMapNames
Definition: MuonProducer.h:138
bool isGlobalMuon() const override
Definition: Muon.h:276
edm::EDGetTokenT< reco::IsoDepositMap > theTrackDepositToken_
Definition: MuonProducer.h:110
bool fillDetectorBasedIsolation_
Definition: MuonProducer.h:99
std::vector< std::map< std::string, edm::EDGetTokenT< edm::ValueMap< double > > > > pfIsoMapTokens_
Definition: MuonProducer.h:139
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
std::string labelOrInstance(const edm::InputTag &) const
edm::Ref< MuonCollection > MuonRef
presistent reference to a Muon
Definition: MuonFwd.h:13
const LorentzVector & p4() const final
four-momentum Lorentz vector
Definition: LeafCandidate.h:99
edm::InputTag theShowerMapName
Definition: MuonProducer.h:121
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger but the state exists so we define the behavior If all triggers are the negative crieriion will lead to accepting the event(this again matches the behavior of"!*"before the partial wildcard feature was incorporated).The per-event"cost"of each negative criterion with multiple relevant triggers is about the same as!*was in the past
edm::EDGetTokenT< reco::MuonTimeExtraMap > timeMapCmbToken_
Definition: MuonProducer.h:131
edm::InputTag theHoDepositName
Definition: MuonProducer.h:107
bool fillTimingInfo_
Definition: MuonProducer.h:101
edm::EDGetTokenT< reco::VertexCollection > vertexes_
Definition: MuonProducer.h:141
bool computeStandardSelectors_
Definition: MuonProducer.h:102
bool fillPFIsolation_
Definition: MuonProducer.h:98
InputTags theSelectorMapNames
Definition: MuonProducer.h:117
edm::EDGetTokenT< reco::MuonCollection > theMuonsCollectionToken_
Definition: MuonProducer.h:86
std::string theMuToMuMapName
Definition: MuonProducer.h:127
bool fillShoweringInfo_
Definition: MuonProducer.h:100
edm::EDGetTokenT< reco::IsoDepositMap > theEcalDepositToken_
Definition: MuonProducer.h:111
primaryVertices
Definition: jets_cff.py:135
void setSelectors(unsigned int selectors)
Definition: Muon.h:225
int embedPFIsolation(reco::Muon &, reco::MuonRef &)
edm::EDGetTokenT< edm::ValueMap< reco::MuonCosmicCompatibility > > theCosmicCompMapToken_
Definition: MuonProducer.h:126
MuPFIsoHelper * thePFIsoHelper
Definition: MuonProducer.h:129
void beginEvent(const edm::Event &iEvent)
virtual void setBestTrack(MuonTrackType muonType)
Definition: Muon.h:91
#define begin
Definition: vmac.h:32
edm::EDGetTokenT< reco::IsoDepositMap > theHcalDepositToken_
Definition: MuonProducer.h:112
edm::InputTag theCosmicCompMapName
Definition: MuonProducer.h:124
bool isPFMuon() const
Definition: Muon.h:280
virtual void setPFP4(const reco::Candidate::LorentzVector &p4_)
edm::InputTag theHcalDepositName
Definition: MuonProducer.h:106
bool fillPFMomentum_
Definition: MuonProducer.h:97
void setPdgId(int pdgId) final
std::string const & instance() const
Definition: InputTag.h:37
edm::InputTag theJetDepositName
Definition: MuonProducer.h:108
void setP4(const LorentzVector &p4) final
set 4-momentum
def move(src, dest)
Definition: eostools.py:510
void MuonProducer::setAlias ( std::string  alias)
inlineprivate

Definition at line 74 of file MuonProducer.h.

References egammaCTFFinalFitWithMaterial_cff::alias, and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by MuonProducer().

74  {
75  alias.erase( alias.size() - 1, alias.size() );
77  }
std::string theAlias
Definition: MuonProducer.h:72

Member Data Documentation

bool MuonProducer::computeStandardSelectors_
private

Definition at line 102 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

bool MuonProducer::debug_
private

Definition at line 82 of file MuonProducer.h.

bool MuonProducer::fastLabelling_
private

Definition at line 83 of file MuonProducer.h.

Referenced by labelOrInstance(), and MuonProducer().

bool MuonProducer::fillCosmicsIdMap_
private

Definition at line 96 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

bool MuonProducer::fillDetectorBasedIsolation_
private

Definition at line 99 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

bool MuonProducer::fillIsolation_
private

Definition at line 93 of file MuonProducer.h.

bool MuonProducer::fillPFIsolation_
private

Definition at line 98 of file MuonProducer.h.

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

bool MuonProducer::fillPFMomentum_
private

Definition at line 97 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

bool MuonProducer::fillSelectors_
private

Definition at line 95 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

bool MuonProducer::fillShoweringInfo_
private

Definition at line 100 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

bool MuonProducer::fillTimingInfo_
private

Definition at line 101 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

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

Definition at line 138 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

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

Definition at line 139 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

std::string MuonProducer::theAlias
private

Definition at line 72 of file MuonProducer.h.

Referenced by MuonProducer().

edm::InputTag MuonProducer::theCosmicCompMapName
private

Definition at line 124 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

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

Definition at line 126 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

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

Definition at line 125 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

edm::InputTag MuonProducer::theEcalDepositName
private

Definition at line 105 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

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

Definition at line 111 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

edm::InputTag MuonProducer::theHcalDepositName
private

Definition at line 106 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

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

Definition at line 112 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

edm::InputTag MuonProducer::theHoDepositName
private

Definition at line 107 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

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

Definition at line 113 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

edm::InputTag MuonProducer::theJetDepositName
private

Definition at line 108 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

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

Definition at line 114 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

edm::InputTag MuonProducer::theMuonsCollectionLabel
private

Definition at line 85 of file MuonProducer.h.

Referenced by labelOrInstance(), and MuonProducer().

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

Definition at line 86 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

std::string MuonProducer::theMuToMuMapName
private

Definition at line 127 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

edm::InputTag MuonProducer::thePFCandLabel
private

Definition at line 88 of file MuonProducer.h.

Referenced by MuonProducer().

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

Definition at line 89 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

MuPFIsoHelper* MuonProducer::thePFIsoHelper
private

Definition at line 129 of file MuonProducer.h.

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

InputTags MuonProducer::theSelectorMapNames
private

Definition at line 117 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

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

Definition at line 118 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

edm::InputTag MuonProducer::theShowerMapName
private

Definition at line 121 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

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

Definition at line 122 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

edm::InputTag MuonProducer::theTrackDepositName
private

Definition at line 104 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

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

Definition at line 110 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

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

Definition at line 131 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

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

Definition at line 133 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

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

Definition at line 132 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

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

Definition at line 141 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

bool MuonProducer::writeIsoDeposits_
private

Definition at line 94 of file MuonProducer.h.