![]() |
![]() |
#include <DPGAnalysis/SiStripTools/plugins/MultiplicityProducer.cc>
Public Member Functions | |
MultiplicityProducer (const edm::ParameterSet &) | |
~MultiplicityProducer () | |
Private Member Functions | |
virtual void | beginJob () |
virtual void | endJob () |
virtual void | produce (edm::Event &, const edm::EventSetup &) |
Private Attributes | |
edm::InputTag | _collection |
std::map< unsigned int, std::string > | _subdets |
Description: EDProducer of multiplicity maps Implementation:
Definition at line 47 of file MultiplicityProducer.cc.
MultiplicityProducer< T >::MultiplicityProducer | ( | const edm::ParameterSet & | iConfig | ) | [explicit] |
Definition at line 77 of file MultiplicityProducer.cc.
References MultiplicityProducer< T >::_subdets, and edm::ParameterSet::getParameter().
: _collection(iConfig.getParameter<edm::InputTag>("clusterdigiCollection")), _subdets() { produces<std::map<unsigned int,int> >(); //now do what ever other initialization is needed std::vector<edm::ParameterSet> wantedsubds(iConfig.getParameter<std::vector<edm::ParameterSet> >("wantedSubDets")); for(std::vector<edm::ParameterSet>::iterator ps=wantedsubds.begin();ps!=wantedsubds.end();++ps) { _subdets[ps->getParameter<unsigned int>("detSelection")] = ps->getParameter<std::string>("detLabel"); } }
MultiplicityProducer< T >::~MultiplicityProducer | ( | ) |
Definition at line 94 of file MultiplicityProducer.cc.
{ // do anything here that needs to be done at desctruction time // (e.g. close files, deallocate resources etc.) }
void MultiplicityProducer< T >::beginJob | ( | void | ) | [private, virtual] |
void MultiplicityProducer< T >::endJob | ( | void | ) | [private, virtual] |
void MultiplicityProducer< T >::produce | ( | edm::Event & | iEvent, |
const edm::EventSetup & | iSetup | ||
) | [private, virtual] |
Implements edm::EDProducer.
Definition at line 110 of file MultiplicityProducer.cc.
References cond::rpcobgas::detid, edm::Event::getByLabel(), LogDebug, and edm::Event::put().
{ LogDebug("Multiplicity") << " Ready to loop"; using namespace edm; std::auto_ptr<std::map<unsigned int,int> > mults(new std::map<unsigned int,int> ); Handle<T> digis; iEvent.getByLabel(_collection,digis); for(std::map<unsigned int,std::string>::const_iterator sdet=_subdets.begin();sdet!=_subdets.end();++sdet) { (*mults)[sdet->first]=0; } for(typename T::const_iterator det = digis->begin();det!=digis->end();++det) { if(_subdets.find(0)!=_subdets.end()) (*mults)[0]+= det->size(); DetId detid(det->detId()); unsigned int subdet = detid.subdetId(); if(_subdets.find(subdet)!=_subdets.end()) (*mults)[subdet] += det->size(); } for(std::map<unsigned int,int>::const_iterator it=mults->begin();it!=mults->end();++it) { LogDebug("Multiplicity") << " Found " << it->second << " digis/clusters in " << it->first << " " << _subdets[it->first]; } iEvent.put(mults); }
edm::InputTag MultiplicityProducer< T >::_collection [private] |
Definition at line 59 of file MultiplicityProducer.cc.
std::map<unsigned int, std::string> MultiplicityProducer< T >::_subdets [private] |
Definition at line 60 of file MultiplicityProducer.cc.
Referenced by MultiplicityProducer< T >::MultiplicityProducer().