CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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<> edm::stream::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Types

typedef std::vector
< edm::InputTag
InputTags
 
- 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, GlobalCache
LuminosityBlockContext
 
typedef
CacheTypes::LuminosityBlockSummaryCache 
LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache,
GlobalCache
RunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 
- Public Types inherited from edm::stream::EDProducerBase
typedef EDProducerAdaptorBase ModuleType
 
- Public Types inherited from edm::ProducerBase
typedef
ProductRegistryHelper::TypeLabelList 
TypeLabelList
 

Public Member Functions

 MuonProducer (const edm::ParameterSet &)
 Constructor. More...
 
virtual void produce (edm::Event &, const edm::EventSetup &)
 reconstruct muons More...
 
virtual ~MuonProducer ()
 Destructor. More...
 
- Public Member Functions inherited from edm::stream::EDProducer<>
 EDProducer ()=default
 
- Public Member Functions inherited from edm::stream::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
virtual ~EDProducerBase ()
 
- Public Member Functions inherited from edm::ProducerBase
 ProducerBase ()
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription
const &)> 
registrationCallback () const
 used by the fwk to register list of products More...
 
virtual ~ProducerBase ()
 
- Public Member Functions inherited from edm::EDConsumerBase
 EDConsumerBase ()
 
ProductHolderIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
std::vector
< ProductHolderIndexAndSkipBit >
const & 
itemsToGetFromEvent () const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesDependentUpon (const std::string &iProcessName, std::vector< const char * > &oModuleLabels) const
 
bool registeredToConsume (ProductHolderIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void updateLookup (BranchType iBranchType, ProductHolderIndexHelper const &)
 
virtual ~EDConsumerBase ()
 

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 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::IsoDepositMap
theEcalDepositToken_
 
edm::InputTag theHcalDepositName
 
edm::EDGetTokenT
< reco::IsoDepositMap
theHcalDepositToken_
 
edm::InputTag theHoDepositName
 
edm::EDGetTokenT
< reco::IsoDepositMap
theHoDepositToken_
 
edm::InputTag theJetDepositName
 
edm::EDGetTokenT
< reco::IsoDepositMap
theJetDepositToken_
 
edm::InputTag theMuonsCollectionLabel
 
edm::EDGetTokenT
< reco::MuonCollection
theMuonsCollectionToken_
 
std::string theMuToMuMapName
 
edm::InputTag thePFCandLabel
 
edm::EDGetTokenT
< reco::PFCandidateCollection
thePFCandToken_
 
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::IsoDepositMap
theTrackDepositToken_
 
edm::EDGetTokenT
< reco::MuonTimeExtraMap
timeMapCmbToken_
 
edm::EDGetTokenT
< reco::MuonTimeExtraMap
timeMapCSCToken_
 
edm::EDGetTokenT
< reco::MuonTimeExtraMap
timeMapDTToken_
 
bool writeIsoDeposits_
 

Additional Inherited Members

- Static Public Member Functions inherited from edm::stream::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

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 47 of file MuonProducer.h.

Member Typedef Documentation

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

Definition at line 60 of file MuonProducer.h.

Constructor & Destructor Documentation

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

Constructor.

Definition at line 30 of file MuonProducer.cc.

References edm::EDConsumerBase::consumes(), edm::EDConsumerBase::consumesCollector(), fastLabelling_, fillCosmicsIdMap_, fillDetectorBasedIsolation_, fillPFIsolation_, fillPFMomentum_, fillSelectors_, fillShoweringInfo_, fillTimingInfo_, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), j, diffTwoXMLs::label, labelOrInstance(), python.multivaluedict::map(), pfIsoMapNames, pfIsoMapTokens_, edm::ProductRegistryHelper::produces(), 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_, and timeMapDTToken_.

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 
52  produces<reco::MuonCollection>();
53 
54  if(fillTimingInfo_){
55 
56  timeMapCmbToken_= consumes<reco::MuonTimeExtraMap>(edm::InputTag(theMuonsCollectionLabel.label(),"combined")) ;
57  timeMapDTToken_ = consumes<reco::MuonTimeExtraMap>(edm::InputTag(theMuonsCollectionLabel.label(),"dt")) ;
58  timeMapCSCToken_= consumes<reco::MuonTimeExtraMap>(edm::InputTag(theMuonsCollectionLabel.label(),"csc")) ;
59 
60  produces<reco::MuonTimeExtraMap>("combined");
61  produces<reco::MuonTimeExtraMap>("dt");
62  produces<reco::MuonTimeExtraMap>("csc");
63  }
64 
65  if (fillDetectorBasedIsolation_){
66  theTrackDepositName = pSet.getParameter<edm::InputTag>("TrackIsoDeposits");
67  theTrackDepositToken_ = consumes<reco::IsoDepositMap>(theTrackDepositName);
68  produces<reco::IsoDepositMap>(labelOrInstance(theTrackDepositName));
69 
70  theJetDepositName = pSet.getParameter<edm::InputTag>("JetIsoDeposits");
71  theJetDepositToken_ = consumes<reco::IsoDepositMap>(theJetDepositName);
72  produces<reco::IsoDepositMap>(labelOrInstance(theJetDepositName));
73 
74  theEcalDepositName = pSet.getParameter<edm::InputTag>("EcalIsoDeposits");
75  theEcalDepositToken_ = consumes<reco::IsoDepositMap>(theEcalDepositName);
76  produces<reco::IsoDepositMap>(theEcalDepositName.instance());
77 
78  theHcalDepositName = pSet.getParameter<edm::InputTag>("HcalIsoDeposits");
79  theHcalDepositToken_ = consumes<reco::IsoDepositMap>(theHcalDepositName);
80  produces<reco::IsoDepositMap>(theHcalDepositName.instance());
81 
82  theHoDepositName = pSet.getParameter<edm::InputTag>("HoIsoDeposits");
83  theHoDepositToken_ = consumes<reco::IsoDepositMap>(theHoDepositName);
84 
85  produces<reco::IsoDepositMap>(theHoDepositName.instance());
86  }
87 
88  if(fillSelectors_){
89  theSelectorMapNames = pSet.getParameter<InputTags>("SelectorMaps");
90 
91  for(InputTags::const_iterator tag = theSelectorMapNames.begin(); tag != theSelectorMapNames.end(); ++tag) {
93  produces<edm::ValueMap<bool> >(labelOrInstance(*tag));
94  }
95 
96  }
97 
98  if(fillShoweringInfo_){
99  theShowerMapName = pSet.getParameter<edm::InputTag>("ShowerInfoMap");
100  theShowerMapToken_ = consumes<reco::MuonShowerMap>(theShowerMapName);
101  produces<edm::ValueMap<reco::MuonShower> >(labelOrInstance(theShowerMapName));
102  }
103 
104  if(fillCosmicsIdMap_){
105  theCosmicCompMapName = pSet.getParameter<edm::InputTag>("CosmicIdMap");
106  theCosmicIdMapToken_ = consumes<edm::ValueMap<unsigned int> >(theCosmicCompMapName);
107  theCosmicCompMapToken_ = consumes<edm::ValueMap<reco::MuonCosmicCompatibility> >(theCosmicCompMapName);
108 
109  produces<edm::ValueMap<reco::MuonCosmicCompatibility> >(labelOrInstance(theCosmicCompMapName));
110  produces<edm::ValueMap<unsigned int> >(labelOrInstance(theCosmicCompMapName));
111  }
112 
113  theMuToMuMapName = theMuonsCollectionLabel.label()+"2"+theAlias+"sMap";
114  produces<edm::ValueMap<reco::MuonRef> >(theMuToMuMapName);
115 
116 
117 
118 
119  if(fillPFIsolation_){
120 
121  edm::ParameterSet pfIsoPSet = pSet.getParameter<edm::ParameterSet >("PFIsolation");
122 
123  //Define a map between the isolation and the PSet for the PFHelper
124  std::map<std::string,edm::ParameterSet> psetMap;
125 
126  //First declare what isolation you are going to read
127  std::vector<std::string> isolationLabels;
128  isolationLabels.push_back("pfIsolationR03");
129  isolationLabels.push_back("pfIsoMeanDRProfileR03");
130  isolationLabels.push_back("pfIsoSumDRProfileR03");
131  isolationLabels.push_back("pfIsolationR04");
132  isolationLabels.push_back("pfIsoMeanDRProfileR04");
133  isolationLabels.push_back("pfIsoSumDRProfileR04");
134 
135  //Fill the label,pet map and initialize MuPFIsoHelper
136  for( std::vector<std::string>::const_iterator label = isolationLabels.begin();label != isolationLabels.end();++label)
137  psetMap[*label] =pfIsoPSet.getParameter<edm::ParameterSet >(*label);
138 
140 
141  //Now loop on the mass read for each PSet the parameters and save them to the mapNames for later
142 
143  for(std::map<std::string,edm::ParameterSet>::const_iterator map = psetMap.begin();map!= psetMap.end();++map) {
144  std::map<std::string,edm::InputTag> isoMap;
145  isoMap["chargedParticle"] = map->second.getParameter<edm::InputTag>("chargedParticle");
146  isoMap["chargedHadron"] = map->second.getParameter<edm::InputTag>("chargedHadron");
147  isoMap["neutralHadron"] = map->second.getParameter<edm::InputTag>("neutralHadron");
148  isoMap["neutralHadronHighThreshold"] = map->second.getParameter<edm::InputTag>("neutralHadronHighThreshold");
149  isoMap["photon"] = map->second.getParameter<edm::InputTag>("photon");
150  isoMap["photonHighThreshold"] = map->second.getParameter<edm::InputTag>("photonHighThreshold");
151  isoMap["pu"] = map->second.getParameter<edm::InputTag>("pu");
152 
153  std::map<std::string,edm::EDGetTokenT<edm::ValueMap<double> > > isoMapToken;
154  isoMapToken["chargedParticle"] = consumes<edm::ValueMap<double> >(isoMap["chargedParticle"]);
155  isoMapToken["chargedHadron"] = consumes<edm::ValueMap<double> >(isoMap["chargedHadron"]);
156  isoMapToken["neutralHadron"] = consumes<edm::ValueMap<double> >(isoMap["neutralHadron"]);
157  isoMapToken["neutralHadronHighThreshold"] = consumes<edm::ValueMap<double> >(isoMap["neutralHadronHighThreshold"]);
158  isoMapToken["photon"] = consumes<edm::ValueMap<double> >(isoMap["photon"]);
159  isoMapToken["photonHighThreshold"] = consumes<edm::ValueMap<double> >(isoMap["photonHighThreshold"]);
160  isoMapToken["pu"] = consumes<edm::ValueMap<double> >(isoMap["pu"]);
161 
162 
163  pfIsoMapNames.push_back(isoMap);
164  pfIsoMapTokens_.push_back(isoMapToken);
165  }
166 
167 
168  for(unsigned int j=0;j<pfIsoMapNames.size();++j) {
169  for(std::map<std::string,edm::InputTag>::const_iterator map = pfIsoMapNames.at(j).begin(); map != pfIsoMapNames.at(j).end(); ++map)
171 
172  }
173 
174  }
175 }
T getParameter(std::string const &) const
edm::EDGetTokenT< reco::MuonTimeExtraMap > timeMapCSCToken_
Definition: MuonProducer.h:131
T getUntrackedParameter(std::string const &, T const &) const
edm::InputTag theTrackDepositName
Definition: MuonProducer.h:102
edm::EDGetTokenT< edm::ValueMap< unsigned int > > theCosmicIdMapToken_
Definition: MuonProducer.h:123
edm::EDGetTokenT< reco::MuonTimeExtraMap > timeMapDTToken_
Definition: MuonProducer.h:130
bool fillSelectors_
Definition: MuonProducer.h:94
std::string theAlias
Definition: MuonProducer.h:71
edm::EDGetTokenT< edm::ValueMap< reco::MuonShower > > theShowerMapToken_
Definition: MuonProducer.h:120
edm::InputTag theEcalDepositName
Definition: MuonProducer.h:103
std::vector< edm::EDGetTokenT< edm::ValueMap< bool > > > theSelectorMapTokens_
Definition: MuonProducer.h:116
edm::EDGetTokenT< reco::IsoDepositMap > theJetDepositToken_
Definition: MuonProducer.h:112
bool fillCosmicsIdMap_
Definition: MuonProducer.h:95
edm::EDGetTokenT< reco::IsoDepositMap > theHoDepositToken_
Definition: MuonProducer.h:111
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
edm::InputTag thePFCandLabel
Definition: MuonProducer.h:87
edm::EDGetTokenT< reco::PFCandidateCollection > thePFCandToken_
Definition: MuonProducer.h:88
std::vector< std::map< std::string, edm::InputTag > > pfIsoMapNames
Definition: MuonProducer.h:136
edm::EDGetTokenT< reco::IsoDepositMap > theTrackDepositToken_
Definition: MuonProducer.h:108
ConsumesCollector consumesCollector()
Use a ConsumesCollector to gather consumes information from helper functions.
bool fillDetectorBasedIsolation_
Definition: MuonProducer.h:98
std::vector< std::map< std::string, edm::EDGetTokenT< edm::ValueMap< double > > > > pfIsoMapTokens_
Definition: MuonProducer.h:137
void setAlias(std::string alias)
Definition: MuonProducer.h:73
TypeLabelItem const & produces()
declare what type of product will make and with which optional label
edm::InputTag theMuonsCollectionLabel
Definition: MuonProducer.h:84
int j
Definition: DBlmapReader.cc:9
std::string labelOrInstance(const edm::InputTag &) const
edm::InputTag theShowerMapName
Definition: MuonProducer.h:119
edm::EDGetTokenT< reco::MuonTimeExtraMap > timeMapCmbToken_
Definition: MuonProducer.h:129
edm::InputTag theHoDepositName
Definition: MuonProducer.h:105
bool fillTimingInfo_
Definition: MuonProducer.h:100
std::vector< edm::InputTag > InputTags
Definition: MuonProducer.h:60
bool fillPFIsolation_
Definition: MuonProducer.h:97
InputTags theSelectorMapNames
Definition: MuonProducer.h:115
edm::EDGetTokenT< reco::MuonCollection > theMuonsCollectionToken_
Definition: MuonProducer.h:85
std::string theMuToMuMapName
Definition: MuonProducer.h:125
bool fillShoweringInfo_
Definition: MuonProducer.h:99
edm::EDGetTokenT< reco::IsoDepositMap > theEcalDepositToken_
Definition: MuonProducer.h:109
edm::EDGetTokenT< edm::ValueMap< reco::MuonCosmicCompatibility > > theCosmicCompMapToken_
Definition: MuonProducer.h:124
MuPFIsoHelper * thePFIsoHelper
Definition: MuonProducer.h:127
edm::EDGetTokenT< reco::IsoDepositMap > theHcalDepositToken_
Definition: MuonProducer.h:110
edm::InputTag theCosmicCompMapName
Definition: MuonProducer.h:122
bool fastLabelling_
Definition: MuonProducer.h:82
edm::InputTag theHcalDepositName
Definition: MuonProducer.h:104
bool fillPFMomentum_
Definition: MuonProducer.h:96
edm::InputTag theJetDepositName
Definition: MuonProducer.h:106
MuonProducer::~MuonProducer ( )
virtual

Destructor.

Definition at line 178 of file MuonProducer.cc.

References fillPFIsolation_, and thePFIsoHelper.

178  {
180 }
bool fillPFIsolation_
Definition: MuonProducer.h:97
MuPFIsoHelper * thePFIsoHelper
Definition: MuonProducer.h:127

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

482  {
483 
484  typedef typename edm::ValueMap<TYPE>::Filler FILLER;
485 
486  std::auto_ptr<edm::ValueMap<TYPE> > muonMap(new edm::ValueMap<TYPE>());
487  if(!muonExtra.empty()){
488  FILLER filler(*muonMap);
489  filler.insert(muonHandle, muonExtra.begin(), muonExtra.end());
490  filler.fill();
491  }
492  event.put(muonMap,label);
493 }
std::string MuonProducer::labelOrInstance ( const edm::InputTag input) const
private

Definition at line 496 of file MuonProducer.cc.

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

Referenced by MuonProducer(), and produce().

496  {
497  if(fastLabelling_) return input.label();
498 
499  return input.label() != theMuonsCollectionLabel.label() ? input.label() : input.instance();
500 }
edm::InputTag theMuonsCollectionLabel
Definition: MuonProducer.h:84
std::string const & label() const
Definition: InputTag.h:42
bool fastLabelling_
Definition: MuonProducer.h:82
std::string const & instance() const
Definition: InputTag.h:43
void MuonProducer::produce ( edm::Event event,
const edm::EventSetup eventSetup 
)
virtual

reconstruct muons

Implements edm::stream::EDProducerBase.

Definition at line 184 of file MuonProducer.cc.

References funct::abs(), begin, MuPFIsoHelper::beginEvent(), dout, MuPFIsoHelper::embedPFIsolation(), event(), fillCosmicsIdMap_, fillDetectorBasedIsolation_, fillPFIsolation_, fillPFMomentum_, fillSelectors_, fillShoweringInfo_, fillTimingInfo_, i, edm::OrphanHandleBase::id(), edm::Ref< C, T, F >::id(), edm::InputTag::instance(), reco::Muon::isGlobalMuon(), reco::Muon::isPFMuon(), reco::Muon::isStandAloneMuon(), reco::Muon::isTrackerMuon(), getDQMSummary::iter, j, edm::Ref< C, T, F >::key(), labelOrInstance(), python.multivaluedict::map(), metname, reco::LeafCandidate::p4(), reco::tau::pfCandidates(), pfIsoMapNames, pfIsoMapTokens_, reco::Muon::pfP4(), alignCSCRings::s, reco::Muon::setBestTrack(), reco::LeafCandidate::setCharge(), reco::LeafCandidate::setP4(), reco::Muon::setPFP4(), 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_, and timeMapDTToken_.

184  {
185 
186  const std::string metname = "Muon|RecoMuon|MuonIdentification|MuonProducer";
187 
188  // the muon collection, it will be loaded in the event
189  std::auto_ptr<reco::MuonCollection> outputMuons(new reco::MuonCollection());
190  reco::MuonRefProd outputMuonsRefProd = event.getRefBeforePut<reco::MuonCollection>();
191 
193  event.getByToken(theMuonsCollectionToken_, inputMuons);
194  edm::OrphanHandle<reco::MuonCollection> inputMuonsOH(inputMuons.product(), inputMuons.id());
195 
197  event.getByToken(thePFCandToken_, pfCandidates);
198 
199 
200  // fetch collections for PFIso
202 
203 
204  // Fill timing information
208 
209  int nMuons=inputMuons->size();
210 
211  std::vector<reco::MuonTimeExtra> dtTimeColl(nMuons);
212  std::vector<reco::MuonTimeExtra> cscTimeColl(nMuons);
213  std::vector<reco::MuonTimeExtra> combinedTimeColl(nMuons);
214 
215  if(fillTimingInfo_){
216  event.getByToken(timeMapCmbToken_,timeMapCmb);
217  event.getByToken(timeMapDTToken_,timeMapDT);
218  event.getByToken(timeMapCSCToken_,timeMapCSC);
219  }
220 
221  std::vector<reco::IsoDeposit> trackDepColl(nMuons);
222  std::vector<reco::IsoDeposit> ecalDepColl(nMuons);
223  std::vector<reco::IsoDeposit> hcalDepColl(nMuons);
224  std::vector<reco::IsoDeposit> hoDepColl(nMuons);
225  std::vector<reco::IsoDeposit> jetDepColl(nMuons);
226 
227 
228  edm::Handle<reco::IsoDepositMap> trackIsoDepMap;
229  edm::Handle<reco::IsoDepositMap> ecalIsoDepMap;
230  edm::Handle<reco::IsoDepositMap> hcalIsoDepMap;
233 
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 
244 
245  std::vector<std::map<std::string,edm::Handle<edm::ValueMap<double> > > > pfIsoMaps;
246  std::vector<std::map<std::string,std::vector<double> > > pfIsoMapVals;
247 
248  if(fillPFIsolation_){
249  for(unsigned int j=0;j<pfIsoMapNames.size();++j) {
250  std::map<std::string,std::vector<double> > mapVals;
251  std::map<std::string,edm::Handle<edm::ValueMap<double> > > maps;
252  for(std::map<std::string,edm::InputTag>::const_iterator map = pfIsoMapNames.at(j).begin(); map != pfIsoMapNames.at(j).end(); ++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 
264 
265 
266  std::vector<edm::Handle<edm::ValueMap<bool> > > selectorMaps(fillSelectors_ ? theSelectorMapNames.size() : 0);
267  std::vector<std::vector<bool> > selectorMapResults(fillSelectors_ ? theSelectorMapNames.size() : 0);
268  if(fillSelectors_){
269  unsigned int s=0;
270  for(InputTags::const_iterator tag = theSelectorMapNames.begin(); tag != theSelectorMapNames.end(); ++tag, ++s){
271  event.getByToken(theSelectorMapTokens_.at(s),selectorMaps[s]);
272  selectorMapResults[s].resize(nMuons);
273  }
274  }
275 
276  edm::Handle<reco::MuonShowerMap> showerInfoMap;
277  if(fillShoweringInfo_) event.getByToken(theShowerMapToken_,showerInfoMap);
278 
279  std::vector<reco::MuonShower> showerInfoColl(nMuons);
280 
282  if(fillCosmicsIdMap_) event.getByToken(theCosmicIdMapToken_,cosmicIdMap);
283  std::vector<unsigned int> cosmicIdColl(fillCosmicsIdMap_ ? nMuons : 0);
284 
286  if(fillCosmicsIdMap_) event.getByToken(theCosmicCompMapToken_,cosmicCompMap);
287  std::vector<reco::MuonCosmicCompatibility> cosmicCompColl(fillCosmicsIdMap_ ? nMuons : 0);
288 
289 
290  std::vector<reco::MuonRef> muonRefColl(nMuons);
291 
292 
293 
294  if(inputMuons->empty()) {
295  edm::OrphanHandle<reco::MuonCollection> muonHandle = event.put(outputMuons);
296 
297  if(fillTimingInfo_){
298  fillMuonMap<reco::MuonTimeExtra>(event, muonHandle, combinedTimeColl,"combined");
299  fillMuonMap<reco::MuonTimeExtra>(event, muonHandle, dtTimeColl,"dt");
300  fillMuonMap<reco::MuonTimeExtra>(event, muonHandle, cscTimeColl,"csc");
301  }
302 
304  fillMuonMap<reco::IsoDeposit>(event, muonHandle, trackDepColl, labelOrInstance(theTrackDepositName));
305  fillMuonMap<reco::IsoDeposit>(event, muonHandle, jetDepColl, labelOrInstance(theJetDepositName));
306  fillMuonMap<reco::IsoDeposit>(event, muonHandle, ecalDepColl, theEcalDepositName.instance());
307  fillMuonMap<reco::IsoDeposit>(event, muonHandle, hcalDepColl, theHcalDepositName.instance());
308  fillMuonMap<reco::IsoDeposit>(event, muonHandle, hoDepColl, theHoDepositName.instance());
309  }
310 
311  if(fillSelectors_){
312  unsigned int s = 0;
313  for(InputTags::const_iterator tag = theSelectorMapNames.begin();
314  tag != theSelectorMapNames.end(); ++tag, ++s){
315  fillMuonMap<bool>(event, muonHandle, selectorMapResults[s], labelOrInstance(*tag));
316  }
317  }
318 
319  if(fillShoweringInfo_) fillMuonMap<reco::MuonShower>(event, muonHandle, showerInfoColl, labelOrInstance(theShowerMapName));
320 
321  if(fillCosmicsIdMap_){
322  fillMuonMap<unsigned int>(event, muonHandle, cosmicIdColl, labelOrInstance(theCosmicCompMapName));
323  fillMuonMap<reco::MuonCosmicCompatibility>(event, muonHandle, cosmicCompColl, labelOrInstance(theCosmicCompMapName));
324  }
325 
326  fillMuonMap<reco::MuonRef>(event,inputMuonsOH, muonRefColl, theMuToMuMapName);
327 
328  if(fillPFIsolation_){
329  for(unsigned int j=0;j<pfIsoMapNames.size();++j)
330  for(std::map<std::string,edm::InputTag>::const_iterator map = pfIsoMapNames.at(j).begin(); map != pfIsoMapNames.at(j).end(); ++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 
340  MuToPFMap muToPFMap;
341 
342  if(fillPFMomentum_){
343  dout << "Number of PFCandidates: " << pfCandidates->size() << endl;
344  for(unsigned int i=0;i< pfCandidates->size();++i)
345  if(abs(pfCandidates->at(i).pdgId()) == 13){
346  muToPFMap[pfCandidates->at(i).muonRef()] = i;
347  dout << "MuonRef: " << pfCandidates->at(i).muonRef().id() << " " << pfCandidates->at(i).muonRef().key() << " 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  foreach(const reco::Muon &inMuon, *inputMuons){
356 
357  reco::MuonRef muRef(inputMuons, muIndex);
358  muonRefColl[i] = reco::MuonRef(outputMuonsRefProd, muIndex++);
359 
360  // Copy the muon
361  reco::Muon outMuon = inMuon;
362 
363  if(fillPFMomentum_){
364  // search for the corresponding pf candidate
365  MuToPFMap::iterator iter = muToPFMap.find(muRef);
366  if(iter != muToPFMap.end()){
367  outMuon.setPFP4(pfCandidates->at(iter->second).p4());
368  outMuon.setP4(pfCandidates->at(iter->second).p4());//PF is the default
369  outMuon.setCharge(pfCandidates->at(iter->second).charge());//PF is the default
370  outMuon.setBestTrack(pfCandidates->at(iter->second).bestMuonTrackType());
371  muToPFMap.erase(iter);
372  dout << "MuonRef: " << muRef.id() << " " << muRef.key()
373  << " Is it PF? " << outMuon.isPFMuon()
374  << " PF p4: " << outMuon.pfP4() << endl;
375  }
376 
377 
378  dout << "MuonRef: " << muRef.id() << " " << muRef.key()
379  << " Is it PF? " << outMuon.isPFMuon() << endl;
380 
381  dout << "GLB " << outMuon.isGlobalMuon()
382  << " TM " << outMuon.isTrackerMuon()
383  << " STA " << outMuon.isStandAloneMuon()
384  << " p4 " << outMuon.p4() << endl;
385  }
386 
387  // Add PF isolation info
388  if(fillPFIsolation_){
389  thePFIsoHelper->embedPFIsolation(outMuon,muRef);
390 
391  for(unsigned int j=0;j<pfIsoMapNames.size();++j) {
392  for(std::map<std::string,edm::InputTag>::const_iterator map = pfIsoMapNames[j].begin(); map != pfIsoMapNames[j].end(); ++map){
393  (pfIsoMapVals[j])[map->first][i] = (*pfIsoMaps[j][map->first])[muRef];
394  }
395  }
396  }
397 
398  // Fill timing information
399  if(fillTimingInfo_){
400  combinedTimeColl[i] = (*timeMapCmb)[muRef];
401  dtTimeColl[i] = (*timeMapDT)[muRef];
402  cscTimeColl[i] = (*timeMapCSC)[muRef];
403  }
404 
406  trackDepColl[i] = (*trackIsoDepMap)[muRef];
407  ecalDepColl[i] = (*ecalIsoDepMap)[muRef];
408  hcalDepColl[i] = (*hcalIsoDepMap)[muRef];
409  hoDepColl[i] = (*hoIsoDepMap)[muRef];
410  jetDepColl[i] = (*jetIsoDepMap)[muRef];;
411  }
412 
413  if(fillSelectors_){
414  unsigned int s = 0;
415  for(InputTags::const_iterator tag = theSelectorMapNames.begin();
416  tag != theSelectorMapNames.end(); ++tag, ++s)
417  selectorMapResults[s][i] = (*selectorMaps[s])[muRef];
418  }
419 
420  // Fill the Showering Info
421  if(fillShoweringInfo_) showerInfoColl[i] = (*showerInfoMap)[muRef];
422 
423  if(fillCosmicsIdMap_){
424  cosmicIdColl[i] = (*cosmicIdMap)[muRef];
425  cosmicCompColl[i] = (*cosmicCompMap)[muRef];
426  }
427 
428  outputMuons->push_back(outMuon);
429  ++i;
430  }
431 
432  dout << "Number of Muons in the new muon collection: " << outputMuons->size() << endl;
433  edm::OrphanHandle<reco::MuonCollection> muonHandle = event.put(outputMuons);
434 
435  if(fillTimingInfo_){
436  fillMuonMap<reco::MuonTimeExtra>(event, muonHandle, combinedTimeColl,"combined");
437  fillMuonMap<reco::MuonTimeExtra>(event, muonHandle, dtTimeColl,"dt");
438  fillMuonMap<reco::MuonTimeExtra>(event, muonHandle, cscTimeColl,"csc");
439  }
440 
442  fillMuonMap<reco::IsoDeposit>(event, muonHandle, trackDepColl, labelOrInstance(theTrackDepositName));
443  fillMuonMap<reco::IsoDeposit>(event, muonHandle, jetDepColl, labelOrInstance(theJetDepositName));
444  fillMuonMap<reco::IsoDeposit>(event, muonHandle, ecalDepColl, theEcalDepositName.instance());
445  fillMuonMap<reco::IsoDeposit>(event, muonHandle, hcalDepColl, theHcalDepositName.instance());
446  fillMuonMap<reco::IsoDeposit>(event, muonHandle, hoDepColl, theHoDepositName.instance());
447  }
448 
449  if(fillPFIsolation_){
450 
451  for(unsigned int j=0;j<pfIsoMapNames.size();++j) {
452  for(std::map<std::string,edm::InputTag>::const_iterator map = pfIsoMapNames[j].begin(); map != pfIsoMapNames[j].end(); ++map)
453  fillMuonMap<double>(event, muonHandle, pfIsoMapVals[j][map->first], labelOrInstance(map->second));
454  }
455  }
456 
457  if(fillSelectors_){
458  unsigned int s = 0;
459  for(InputTags::const_iterator tag = theSelectorMapNames.begin();
460  tag != theSelectorMapNames.end(); ++tag, ++s)
461  fillMuonMap<bool>(event, muonHandle, selectorMapResults[s], labelOrInstance(*tag));
462  }
463 
464  if(fillShoweringInfo_) fillMuonMap<reco::MuonShower>(event, muonHandle, showerInfoColl, labelOrInstance(theShowerMapName));
465 
466  if(fillCosmicsIdMap_){
467  fillMuonMap<unsigned int>(event, muonHandle, cosmicIdColl, labelOrInstance(theCosmicCompMapName));
468  fillMuonMap<reco::MuonCosmicCompatibility>(event, muonHandle, cosmicCompColl, labelOrInstance(theCosmicCompMapName));
469  }
470 
471  fillMuonMap<reco::MuonRef>(event,inputMuonsOH, muonRefColl, theMuToMuMapName);
472 
473 
474 }
edm::EDGetTokenT< reco::MuonTimeExtraMap > timeMapCSCToken_
Definition: MuonProducer.h:131
int i
Definition: DBlmapReader.cc:9
edm::InputTag theTrackDepositName
Definition: MuonProducer.h:102
virtual void setCharge(Charge q) GCC11_FINAL
set electric charge
edm::EDGetTokenT< edm::ValueMap< unsigned int > > theCosmicIdMapToken_
Definition: MuonProducer.h:123
virtual const LorentzVector & p4() const GCC11_FINAL
four-momentum Lorentz vector
edm::EDGetTokenT< reco::MuonTimeExtraMap > timeMapDTToken_
Definition: MuonProducer.h:130
const std::string metname
bool isTrackerMuon() const
Definition: Muon.h:219
bool fillSelectors_
Definition: MuonProducer.h:94
#define dout
Definition: MuonProducer.cc:16
edm::EDGetTokenT< edm::ValueMap< reco::MuonShower > > theShowerMapToken_
Definition: MuonProducer.h:120
bool isGlobalMuon() const
Definition: Muon.h:218
edm::InputTag theEcalDepositName
Definition: MuonProducer.h:103
bool isStandAloneMuon() const
Definition: Muon.h:220
reco::Candidate::LorentzVector pfP4() const
Definition: Muon.h:102
std::vector< edm::EDGetTokenT< edm::ValueMap< bool > > > theSelectorMapTokens_
Definition: MuonProducer.h:116
edm::EDGetTokenT< reco::IsoDepositMap > theJetDepositToken_
Definition: MuonProducer.h:112
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:95
edm::EDGetTokenT< reco::IsoDepositMap > theHoDepositToken_
Definition: MuonProducer.h:111
ProductID id() const
std::vector< PFCandidatePtr > pfCandidates(const PFJet &jet, int particleId, bool sort=true)
edm::EDGetTokenT< reco::PFCandidateCollection > thePFCandToken_
Definition: MuonProducer.h:88
std::vector< std::map< std::string, edm::InputTag > > pfIsoMapNames
Definition: MuonProducer.h:136
edm::EDGetTokenT< reco::IsoDepositMap > theTrackDepositToken_
Definition: MuonProducer.h:108
bool fillDetectorBasedIsolation_
Definition: MuonProducer.h:98
std::vector< std::map< std::string, edm::EDGetTokenT< edm::ValueMap< double > > > > pfIsoMapTokens_
Definition: MuonProducer.h:137
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
int j
Definition: DBlmapReader.cc:9
std::string labelOrInstance(const edm::InputTag &) const
edm::Ref< MuonCollection > MuonRef
presistent reference to a Muon
Definition: MuonFwd.h:13
edm::InputTag theShowerMapName
Definition: MuonProducer.h:119
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:129
edm::InputTag theHoDepositName
Definition: MuonProducer.h:105
bool fillTimingInfo_
Definition: MuonProducer.h:100
bool fillPFIsolation_
Definition: MuonProducer.h:97
InputTags theSelectorMapNames
Definition: MuonProducer.h:115
edm::EDGetTokenT< reco::MuonCollection > theMuonsCollectionToken_
Definition: MuonProducer.h:85
std::string theMuToMuMapName
Definition: MuonProducer.h:125
bool fillShoweringInfo_
Definition: MuonProducer.h:99
edm::EDGetTokenT< reco::IsoDepositMap > theEcalDepositToken_
Definition: MuonProducer.h:109
int embedPFIsolation(reco::Muon &, reco::MuonRef &)
edm::EDGetTokenT< edm::ValueMap< reco::MuonCosmicCompatibility > > theCosmicCompMapToken_
Definition: MuonProducer.h:124
MuPFIsoHelper * thePFIsoHelper
Definition: MuonProducer.h:127
void beginEvent(const edm::Event &iEvent)
virtual void setBestTrack(MuonTrackType muonType)
Definition: Muon.h:91
#define begin
Definition: vmac.h:30
virtual void setP4(const LorentzVector &p4) GCC11_FINAL
set 4-momentum
edm::EDGetTokenT< reco::IsoDepositMap > theHcalDepositToken_
Definition: MuonProducer.h:110
edm::InputTag theCosmicCompMapName
Definition: MuonProducer.h:122
bool isPFMuon() const
Definition: Muon.h:222
edm::InputTag theHcalDepositName
Definition: MuonProducer.h:104
virtual void setPFP4(const reco::Candidate::LorentzVector &p4_)
Definition: Muon.cc:837
bool fillPFMomentum_
Definition: MuonProducer.h:96
boost::remove_cv< typename boost::remove_reference< argument_type >::type >::type key_type
Definition: Ref.h:170
std::string const & instance() const
Definition: InputTag.h:43
edm::InputTag theJetDepositName
Definition: MuonProducer.h:106
void MuonProducer::setAlias ( std::string  alias)
inlineprivate

Definition at line 73 of file MuonProducer.h.

References theAlias.

Referenced by MuonProducer().

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

Member Data Documentation

bool MuonProducer::debug_
private

Definition at line 81 of file MuonProducer.h.

bool MuonProducer::fastLabelling_
private

Definition at line 82 of file MuonProducer.h.

Referenced by labelOrInstance(), and MuonProducer().

bool MuonProducer::fillCosmicsIdMap_
private

Definition at line 95 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

bool MuonProducer::fillDetectorBasedIsolation_
private

Definition at line 98 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

bool MuonProducer::fillIsolation_
private

Definition at line 92 of file MuonProducer.h.

bool MuonProducer::fillPFIsolation_
private

Definition at line 97 of file MuonProducer.h.

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

bool MuonProducer::fillPFMomentum_
private

Definition at line 96 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

bool MuonProducer::fillSelectors_
private

Definition at line 94 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

bool MuonProducer::fillShoweringInfo_
private

Definition at line 99 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

bool MuonProducer::fillTimingInfo_
private

Definition at line 100 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

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

Definition at line 136 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 137 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

std::string MuonProducer::theAlias
private

Definition at line 71 of file MuonProducer.h.

Referenced by MuonProducer(), and setAlias().

edm::InputTag MuonProducer::theCosmicCompMapName
private

Definition at line 122 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

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

Definition at line 124 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

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

Definition at line 123 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

edm::InputTag MuonProducer::theEcalDepositName
private

Definition at line 103 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

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

Definition at line 109 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

edm::InputTag MuonProducer::theHcalDepositName
private

Definition at line 104 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

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

Definition at line 110 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

edm::InputTag MuonProducer::theHoDepositName
private

Definition at line 105 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

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

Definition at line 111 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

edm::InputTag MuonProducer::theJetDepositName
private

Definition at line 106 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

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

Definition at line 112 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

edm::InputTag MuonProducer::theMuonsCollectionLabel
private

Definition at line 84 of file MuonProducer.h.

Referenced by labelOrInstance(), and MuonProducer().

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

Definition at line 85 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

std::string MuonProducer::theMuToMuMapName
private

Definition at line 125 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

edm::InputTag MuonProducer::thePFCandLabel
private

Definition at line 87 of file MuonProducer.h.

Referenced by MuonProducer().

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

Definition at line 88 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

MuPFIsoHelper* MuonProducer::thePFIsoHelper
private

Definition at line 127 of file MuonProducer.h.

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

InputTags MuonProducer::theSelectorMapNames
private

Definition at line 115 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

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

Definition at line 116 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

edm::InputTag MuonProducer::theShowerMapName
private

Definition at line 119 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

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

Definition at line 120 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

edm::InputTag MuonProducer::theTrackDepositName
private

Definition at line 102 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

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

Definition at line 108 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

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

Definition at line 129 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

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

Definition at line 131 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

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

Definition at line 130 of file MuonProducer.h.

Referenced by MuonProducer(), and produce().

bool MuonProducer::writeIsoDeposits_
private

Definition at line 93 of file MuonProducer.h.