CMS 3D CMS Logo

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

#include <MuonMETcorrInputProducer.h>

Inheritance diagram for MuonMETcorrInputProducer:
edm::stream::EDProducer<> edm::stream::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

 MuonMETcorrInputProducer (const edm::ParameterSet &)
 
 ~MuonMETcorrInputProducer ()
 
- 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
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription const &)> registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, std::unordered_multimap< std::string, edm::ProductResolverIndex > const &iIndicies, std::string const &moduleLabel)
 
virtual ~ProducerBase () noexcept(false)
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
virtual ~EDConsumerBase () noexcept(false)
 

Private Member Functions

void produce (edm::Event &, const edm::EventSetup &)
 

Private Attributes

std::string moduleLabel_
 
edm::EDGetTokenT< edm::ValueMap< reco::MuonMETCorrectionData > > muonCorrectionMapToken_
 
edm::EDGetTokenT< reco::MuonCollectiontoken_
 

Additional Inherited Members

- 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 Types inherited from edm::stream::EDProducerBase
typedef EDProducerAdaptorBase ModuleType
 
- Public Types inherited from edm::ProducerBase
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- 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::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

Sum CaloMET muon corrections, needed to compute Type 2 MET corrections in case muon corrected CaloMET is used as input to CorrectedCaloMETProducer

Author
Christian Veelken, LLR

Definition at line 27 of file MuonMETcorrInputProducer.h.

Constructor & Destructor Documentation

MuonMETcorrInputProducer::MuonMETcorrInputProducer ( const edm::ParameterSet cfg)
explicit

Definition at line 7 of file MuonMETcorrInputProducer.cc.

References edm::ParameterSet::getParameter(), muonCorrectionMapToken_, and token_.

8  : moduleLabel_(cfg.getParameter<std::string>("@module_label"))
9 {
10  token_ = consumes<reco::MuonCollection>(cfg.getParameter<edm::InputTag>("src"));
11  muonCorrectionMapToken_ = consumes<edm::ValueMap<reco::MuonMETCorrectionData> >(cfg.getParameter<edm::InputTag>("srcMuonCorrections"));
12 
13  produces<CorrMETData>();
14 }
T getParameter(std::string const &) const
edm::EDGetTokenT< reco::MuonCollection > token_
edm::EDGetTokenT< edm::ValueMap< reco::MuonMETCorrectionData > > muonCorrectionMapToken_
MuonMETcorrInputProducer::~MuonMETcorrInputProducer ( )

Definition at line 16 of file MuonMETcorrInputProducer.cc.

17 {
18 // nothing to be done yet...
19 }

Member Function Documentation

void MuonMETcorrInputProducer::produce ( edm::Event evt,
const edm::EventSetup es 
)
private

Definition at line 21 of file MuonMETcorrInputProducer.cc.

References DEFINE_FWK_MODULE, edm::Event::getByToken(), eostools::move(), muonCorrectionMapToken_, electronCleaner_cfi::muons, reco::MuonMETCorrectionData::NotUsed, reco::LeafCandidate::pt(), edm::Event::put(), reco::LeafCandidate::px(), reco::LeafCandidate::py(), token_, and reco::MuonMETCorrectionData::type().

22 {
23  std::unique_ptr<CorrMETData> unclEnergySum(new CorrMETData());
24 
26  evt.getByToken(token_, muons);
27 
28  typedef edm::ValueMap<reco::MuonMETCorrectionData> MuonMETCorrectionMap;
29  edm::Handle<MuonMETCorrectionMap> muonCorrections;
30  evt.getByToken(muonCorrectionMapToken_, muonCorrections);
31 
32 //--- sum muon corrections.
33 //
34 // NOTE: MET = -(jets + muon corrections + "unclustered energy"),
35 // so "unclustered energy" = -(MET + jets + muons),
36 // i.e. muon corrections enter the sum of "unclustered energy" with negative sign.
37 //
38  int numMuons = muons->size();
39  for ( int muonIndex = 0; muonIndex < numMuons; ++muonIndex ) {
40  const reco::Muon& muon = muons->at(muonIndex);
41 
42  reco::MuonRef muonRef(muons, muonIndex);
43 
44  reco::MuonMETCorrectionData muonCorrection = (*muonCorrections)[muonRef];
45  if ( muonCorrection.type() != reco::MuonMETCorrectionData::NotUsed ) {
46  unclEnergySum->mex -= muon.px();
47  unclEnergySum->mey -= muon.py();
48  unclEnergySum->sumet -= muon.pt();
49  }
50  }
51 
52 //--- add sum of muon corrections to the event
53  evt.put(std::move(unclEnergySum));
54 }
virtual double pt() const final
transverse momentum
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
Definition: Event.h:122
edm::EDGetTokenT< reco::MuonCollection > token_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:460
virtual double px() const final
x coordinate of momentum vector
edm::EDGetTokenT< edm::ValueMap< reco::MuonMETCorrectionData > > muonCorrectionMapToken_
a MET correction term
Definition: CorrMETData.h:14
virtual double py() const final
y coordinate of momentum vector
def move(src, dest)
Definition: eostools.py:510

Member Data Documentation

std::string MuonMETcorrInputProducer::moduleLabel_
private
edm::EDGetTokenT<edm::ValueMap<reco::MuonMETCorrectionData> > MuonMETcorrInputProducer::muonCorrectionMapToken_
private

Definition at line 41 of file MuonMETcorrInputProducer.h.

Referenced by MuonMETcorrInputProducer(), and produce().

edm::EDGetTokenT<reco::MuonCollection> MuonMETcorrInputProducer::token_
private

Definition at line 40 of file MuonMETcorrInputProducer.h.

Referenced by MuonMETcorrInputProducer(), and produce().