CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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)
 
 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
std::vector< ConsumesInfoconsumesInfo () const
 
 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
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
bool registeredToConsume (ProductHolderIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void updateLookup (BranchType iBranchType, ProductHolderIndexHelper const &)
 
virtual ~EDConsumerBase ()
 

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::MuonCollection
token_
 

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, 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 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 
)
privatevirtual

Implements edm::stream::EDProducerBase.

Definition at line 21 of file MuonMETcorrInputProducer.cc.

References edm::Event::getByToken(), metsig::muon, muonCorrectionMapToken_, patZpeak::muons, reco::MuonMETCorrectionData::NotUsed, patZpeak::numMuons, reco::LeafCandidate::pt(), edm::Event::put(), reco::LeafCandidate::px(), reco::LeafCandidate::py(), token_, and reco::MuonMETCorrectionData::type().

22 {
23  std::auto_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(unclEnergySum);
54 }
edm::EDGetTokenT< reco::MuonCollection > token_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:457
virtual double pt() const
transverse momentum
tuple numMuons
Definition: patZpeak.py:40
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
Definition: Event.h:115
edm::EDGetTokenT< edm::ValueMap< reco::MuonMETCorrectionData > > muonCorrectionMapToken_
virtual double px() const
x coordinate of momentum vector
a MET correction term
Definition: CorrMETData.h:14
tuple muons
Definition: patZpeak.py:38
virtual double py() const
y coordinate of momentum vector

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().