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

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

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

References fillPFIsolation_, and thePFIsoHelper.

184  {
186 }
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 501 of file MuonProducer.cc.

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

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

Definition at line 518 of file MuonProducer.cc.

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

Referenced by MuonProducer(), and produce().

518  {
519  if(fastLabelling_) return input.label();
520 
521  return input.label() != theMuonsCollectionLabel.label() ? input.label() : input.instance();
522 }
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 190 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(), muon::makeSelectorBitset(), genParticles_cff::map, metname, eostools::move(), custom_jme_cff::nMuons, reco::LeafCandidate::p4(), patMuonMerger_cfi::pfCandidates, pfIsoMapNames, pfIsoMapTokens_, reco::Muon::pfP4(), jets_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, 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_.

190  {
191 
192  const std::string metname = "Muon|RecoMuon|MuonIdentification|MuonProducer";
193 
194  // the muon collection, it will be loaded in the event
195  auto outputMuons = std::make_unique<reco::MuonCollection>();
196  reco::MuonRefProd outputMuonsRefProd = event.getRefBeforePut<reco::MuonCollection>();
197 
199  event.getByToken(theMuonsCollectionToken_, inputMuons);
200  edm::OrphanHandle<reco::MuonCollection> inputMuonsOH(inputMuons.product(), inputMuons.id());
201 
203  event.getByToken(thePFCandToken_, pfCandidates);
204 
206  const reco::Vertex* vertex(nullptr);
208  event.getByToken(vertexes_, primaryVertices);
209  if (!primaryVertices->empty())
210  vertex = &(primaryVertices->front());
211  }
212 
213  // fetch collections for PFIso
215 
216 
217  // Fill timing information
221 
222  int nMuons=inputMuons->size();
223 
224  std::vector<reco::MuonTimeExtra> dtTimeColl(nMuons);
225  std::vector<reco::MuonTimeExtra> cscTimeColl(nMuons);
226  std::vector<reco::MuonTimeExtra> combinedTimeColl(nMuons);
227 
228  if(fillTimingInfo_){
229  event.getByToken(timeMapCmbToken_,timeMapCmb);
230  event.getByToken(timeMapDTToken_,timeMapDT);
231  event.getByToken(timeMapCSCToken_,timeMapCSC);
232  }
233 
234  std::vector<reco::IsoDeposit> trackDepColl(nMuons);
235  std::vector<reco::IsoDeposit> ecalDepColl(nMuons);
236  std::vector<reco::IsoDeposit> hcalDepColl(nMuons);
237  std::vector<reco::IsoDeposit> hoDepColl(nMuons);
238  std::vector<reco::IsoDeposit> jetDepColl(nMuons);
239 
240 
241  edm::Handle<reco::IsoDepositMap> trackIsoDepMap;
242  edm::Handle<reco::IsoDepositMap> ecalIsoDepMap;
243  edm::Handle<reco::IsoDepositMap> hcalIsoDepMap;
246 
247 
249  event.getByToken(theTrackDepositToken_,trackIsoDepMap);
250  event.getByToken(theEcalDepositToken_,ecalIsoDepMap);
251  event.getByToken(theHcalDepositToken_,hcalIsoDepMap);
252  event.getByToken(theHoDepositToken_,hoIsoDepMap);
253  event.getByToken(theJetDepositToken_,jetIsoDepMap);
254  }
255 
256 
257 
258  std::vector<std::map<std::string,edm::Handle<edm::ValueMap<double> > > > pfIsoMaps;
259  std::vector<std::map<std::string,std::vector<double> > > pfIsoMapVals;
260 
261  if(fillPFIsolation_){
262  for(unsigned int j=0;j<pfIsoMapNames.size();++j) {
263  std::map<std::string,std::vector<double> > mapVals;
264  std::map<std::string,edm::Handle<edm::ValueMap<double> > > maps;
265  for(std::map<std::string,edm::InputTag>::const_iterator map = pfIsoMapNames.at(j).begin(); map != pfIsoMapNames.at(j).end(); ++map) {
267  event.getByToken(pfIsoMapTokens_.at(j)[map->first],handleTmp);
268  maps[map->first]=handleTmp;
269  mapVals[map->first].resize(nMuons);
270  }
271  pfIsoMapVals.push_back(mapVals);
272  pfIsoMaps.push_back(maps);
273 
274  }
275  }
276 
277 
278 
279  std::vector<edm::Handle<edm::ValueMap<bool> > > selectorMaps(fillSelectors_ ? theSelectorMapNames.size() : 0);
280  std::vector<std::vector<bool> > selectorMapResults(fillSelectors_ ? theSelectorMapNames.size() : 0);
281  if(fillSelectors_){
282  unsigned int s=0;
283  for(InputTags::const_iterator tag = theSelectorMapNames.begin(); tag != theSelectorMapNames.end(); ++tag, ++s){
284  event.getByToken(theSelectorMapTokens_.at(s),selectorMaps[s]);
285  selectorMapResults[s].resize(nMuons);
286  }
287  }
288 
289  edm::Handle<reco::MuonShowerMap> showerInfoMap;
290  if(fillShoweringInfo_) event.getByToken(theShowerMapToken_,showerInfoMap);
291 
292  std::vector<reco::MuonShower> showerInfoColl(nMuons);
293 
295  if(fillCosmicsIdMap_) event.getByToken(theCosmicIdMapToken_,cosmicIdMap);
296  std::vector<unsigned int> cosmicIdColl(fillCosmicsIdMap_ ? nMuons : 0);
297 
299  if(fillCosmicsIdMap_) event.getByToken(theCosmicCompMapToken_,cosmicCompMap);
300  std::vector<reco::MuonCosmicCompatibility> cosmicCompColl(fillCosmicsIdMap_ ? nMuons : 0);
301 
302 
303  std::vector<reco::MuonRef> muonRefColl(nMuons);
304 
305 
306 
307  if(inputMuons->empty()) {
308  edm::OrphanHandle<reco::MuonCollection> muonHandle = event.put(std::move(outputMuons));
309 
310  if(fillTimingInfo_){
311  fillMuonMap<reco::MuonTimeExtra>(event, muonHandle, combinedTimeColl,"combined");
312  fillMuonMap<reco::MuonTimeExtra>(event, muonHandle, dtTimeColl,"dt");
313  fillMuonMap<reco::MuonTimeExtra>(event, muonHandle, cscTimeColl,"csc");
314  }
315 
317  fillMuonMap<reco::IsoDeposit>(event, muonHandle, trackDepColl, labelOrInstance(theTrackDepositName));
318  fillMuonMap<reco::IsoDeposit>(event, muonHandle, jetDepColl, labelOrInstance(theJetDepositName));
319  fillMuonMap<reco::IsoDeposit>(event, muonHandle, ecalDepColl, theEcalDepositName.instance());
320  fillMuonMap<reco::IsoDeposit>(event, muonHandle, hcalDepColl, theHcalDepositName.instance());
321  fillMuonMap<reco::IsoDeposit>(event, muonHandle, hoDepColl, theHoDepositName.instance());
322  }
323 
324  if(fillSelectors_){
325  unsigned int s = 0;
326  for(InputTags::const_iterator tag = theSelectorMapNames.begin();
327  tag != theSelectorMapNames.end(); ++tag, ++s){
328  fillMuonMap<bool>(event, muonHandle, selectorMapResults[s], labelOrInstance(*tag));
329  }
330  }
331 
332  if(fillShoweringInfo_) fillMuonMap<reco::MuonShower>(event, muonHandle, showerInfoColl, labelOrInstance(theShowerMapName));
333 
334  if(fillCosmicsIdMap_){
335  fillMuonMap<unsigned int>(event, muonHandle, cosmicIdColl, labelOrInstance(theCosmicCompMapName));
336  fillMuonMap<reco::MuonCosmicCompatibility>(event, muonHandle, cosmicCompColl, labelOrInstance(theCosmicCompMapName));
337  }
338 
339  fillMuonMap<reco::MuonRef>(event,inputMuonsOH, muonRefColl, theMuToMuMapName);
340 
341  if(fillPFIsolation_){
342  for(unsigned int j=0;j<pfIsoMapNames.size();++j)
343  for(std::map<std::string,edm::InputTag>::const_iterator map = pfIsoMapNames.at(j).begin(); map != pfIsoMapNames.at(j).end(); ++map) {
344  fillMuonMap<double>(event, muonHandle, pfIsoMapVals.at(j)[map->first], labelOrInstance(map->second));
345  }
346  }
347  return;
348  }
349 
350  // FIXME: add the option to swith off the Muon-PF "info association".
351 
352 
353  MuToPFMap muToPFMap;
354 
355  if(fillPFMomentum_){
356  dout << "Number of PFCandidates: " << pfCandidates->size() << endl;
357  for(unsigned int i=0;i< pfCandidates->size();++i)
358  if(abs(pfCandidates->at(i).pdgId()) == 13){
359  muToPFMap[pfCandidates->at(i).muonRef()] = i;
360  dout << "MuonRef: " << pfCandidates->at(i).muonRef().id() << " " << pfCandidates->at(i).muonRef().key() << " PF p4: " << pfCandidates->at(i).p4() << endl;
361  }
362  dout << "Number of PFMuons: " << muToPFMap.size() << endl;
363  dout << "Number of Muons in the original collection: " << inputMuons->size() << endl;
364  }
365 
366  reco::MuonRef::key_type muIndex = 0;
367  unsigned int i = 0;
368  for(auto const& inMuon : *inputMuons){
369 
370  reco::MuonRef muRef(inputMuons, muIndex);
371  muonRefColl[i] = reco::MuonRef(outputMuonsRefProd, muIndex++);
372 
373  // Copy the muon
374  reco::Muon outMuon = inMuon;
375 
376  if(fillPFMomentum_){
377  // search for the corresponding pf candidate
378  MuToPFMap::iterator iter = muToPFMap.find(muRef);
379  if(iter != muToPFMap.end()){
380  const auto& pfMu = pfCandidates->at(iter->second);
381  outMuon.setPFP4(pfMu.p4());
382  outMuon.setP4(pfMu.p4());//PF is the default
383  outMuon.setCharge(pfMu.charge());//PF is the default
384  outMuon.setPdgId(-13*pfMu.charge());
385  outMuon.setBestTrack(pfMu.bestMuonTrackType());
386  muToPFMap.erase(iter);
387  dout << "MuonRef: " << muRef.id() << " " << muRef.key()
388  << " Is it PF? " << outMuon.isPFMuon()
389  << " PF p4: " << outMuon.pfP4() << endl;
390  }
391 
392 
393  dout << "MuonRef: " << muRef.id() << " " << muRef.key()
394  << " Is it PF? " << outMuon.isPFMuon() << endl;
395 
396  dout << "GLB " << outMuon.isGlobalMuon()
397  << " TM " << outMuon.isTrackerMuon()
398  << " STA " << outMuon.isStandAloneMuon()
399  << " p4 " << outMuon.p4() << endl;
400  }
401 
402  // Add PF isolation info
403  if(fillPFIsolation_){
404  thePFIsoHelper->embedPFIsolation(outMuon,muRef);
405 
406  for(unsigned int j=0;j<pfIsoMapNames.size();++j) {
407  for(std::map<std::string,edm::InputTag>::const_iterator map = pfIsoMapNames[j].begin(); map != pfIsoMapNames[j].end(); ++map){
408  (pfIsoMapVals[j])[map->first][i] = (*pfIsoMaps[j][map->first])[muRef];
409  }
410  }
411  }
412 
413  // Fill timing information
414  if(fillTimingInfo_){
415  combinedTimeColl[i] = (*timeMapCmb)[muRef];
416  dtTimeColl[i] = (*timeMapDT)[muRef];
417  cscTimeColl[i] = (*timeMapCSC)[muRef];
418  }
419 
421  trackDepColl[i] = (*trackIsoDepMap)[muRef];
422  ecalDepColl[i] = (*ecalIsoDepMap)[muRef];
423  hcalDepColl[i] = (*hcalIsoDepMap)[muRef];
424  hoDepColl[i] = (*hoIsoDepMap)[muRef];
425  jetDepColl[i] = (*jetIsoDepMap)[muRef];;
426  }
427 
428  if(fillSelectors_){
429  unsigned int s = 0;
430  for(InputTags::const_iterator tag = theSelectorMapNames.begin();
431  tag != theSelectorMapNames.end(); ++tag, ++s)
432  selectorMapResults[s][i] = (*selectorMaps[s])[muRef];
433  }
434 
435  // Fill the Showering Info
436  if(fillShoweringInfo_) showerInfoColl[i] = (*showerInfoMap)[muRef];
437 
438  if(fillCosmicsIdMap_){
439  cosmicIdColl[i] = (*cosmicIdMap)[muRef];
440  cosmicCompColl[i] = (*cosmicCompMap)[muRef];
441  }
442 
443  // Standard Selectors - keep it at the end so that all inputs are available
445  outMuon.setSelectors(0); // reset flags
446  bool isRun2016BCDEF = (272728 <= event.run() && event.run() <= 278808);
447  outMuon.setSelectors(muon::makeSelectorBitset(outMuon, vertex, isRun2016BCDEF));
448  }
449 
450  outputMuons->push_back(outMuon);
451  ++i;
452  }
453 
454  dout << "Number of Muons in the new muon collection: " << outputMuons->size() << endl;
455  edm::OrphanHandle<reco::MuonCollection> muonHandle = event.put(std::move(outputMuons));
456 
457  if(fillTimingInfo_){
458  fillMuonMap<reco::MuonTimeExtra>(event, muonHandle, combinedTimeColl,"combined");
459  fillMuonMap<reco::MuonTimeExtra>(event, muonHandle, dtTimeColl,"dt");
460  fillMuonMap<reco::MuonTimeExtra>(event, muonHandle, cscTimeColl,"csc");
461  }
462 
464  fillMuonMap<reco::IsoDeposit>(event, muonHandle, trackDepColl, labelOrInstance(theTrackDepositName));
465  fillMuonMap<reco::IsoDeposit>(event, muonHandle, jetDepColl, labelOrInstance(theJetDepositName));
466  fillMuonMap<reco::IsoDeposit>(event, muonHandle, ecalDepColl, theEcalDepositName.instance());
467  fillMuonMap<reco::IsoDeposit>(event, muonHandle, hcalDepColl, theHcalDepositName.instance());
468  fillMuonMap<reco::IsoDeposit>(event, muonHandle, hoDepColl, theHoDepositName.instance());
469  }
470 
471  if(fillPFIsolation_){
472 
473  for(unsigned int j=0;j<pfIsoMapNames.size();++j) {
474  for(std::map<std::string,edm::InputTag>::const_iterator map = pfIsoMapNames[j].begin(); map != pfIsoMapNames[j].end(); ++map)
475  fillMuonMap<double>(event, muonHandle, pfIsoMapVals[j][map->first], labelOrInstance(map->second));
476  }
477  }
478 
479  if(fillSelectors_){
480  unsigned int s = 0;
481  for(InputTags::const_iterator tag = theSelectorMapNames.begin();
482  tag != theSelectorMapNames.end(); ++tag, ++s)
483  fillMuonMap<bool>(event, muonHandle, selectorMapResults[s], labelOrInstance(*tag));
484  }
485 
486  if(fillShoweringInfo_) fillMuonMap<reco::MuonShower>(event, muonHandle, showerInfoColl, labelOrInstance(theShowerMapName));
487 
488  if(fillCosmicsIdMap_){
489  fillMuonMap<unsigned int>(event, muonHandle, cosmicIdColl, labelOrInstance(theCosmicCompMapName));
490  fillMuonMap<reco::MuonCosmicCompatibility>(event, muonHandle, cosmicCompColl, labelOrInstance(theCosmicCompMapName));
491  }
492 
493  fillMuonMap<reco::MuonRef>(event,inputMuonsOH, muonRefColl, theMuToMuMapName);
494 
495 
496 }
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:167
edm::EDGetTokenT< edm::ValueMap< unsigned int > > theCosmicIdMapToken_
Definition: MuonProducer.h:125
bool isStandAloneMuon() const override
Definition: Muon.h:293
edm::EDGetTokenT< reco::MuonTimeExtraMap > timeMapDTToken_
Definition: MuonProducer.h:132
const std::string metname
bool fillSelectors_
Definition: MuonProducer.h:95
#define dout
Definition: MuonProducer.cc:16
edm::EDGetTokenT< edm::ValueMap< reco::MuonShower > > theShowerMapToken_
Definition: MuonProducer.h:122
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:21
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:292
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
void setSelectors(uint64_t selectors)
Definition: Muon.h:232
bool isGlobalMuon() const override
Definition: Muon.h:291
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
reco::Muon::Selector makeSelectorBitset(reco::Muon const &muon, reco::Vertex const *vertex=0, bool run2016_hip_mitigation=false)
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:24
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:295
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:511
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.