CMS 3D CMS Logo

Public Member Functions | Private Member Functions | Private Attributes

MultiplicityProducer< T > Class Template Reference

#include <DPGAnalysis/SiStripTools/plugins/MultiplicityProducer.cc>

Inheritance diagram for MultiplicityProducer< T >:
edm::EDProducer edm::ProducerBase edm::ProductRegistryHelper

List of all members.

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

Detailed Description

template<class T>
class MultiplicityProducer< T >

Description: EDProducer of multiplicity maps Implementation:

Definition at line 47 of file MultiplicityProducer.cc.


Constructor & Destructor Documentation

template<class T >
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");
  }
}
template<class T >
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.)

}

Member Function Documentation

template<class T >
void MultiplicityProducer< T >::beginJob ( void  ) [private, virtual]

Reimplemented from edm::EDProducer.

Definition at line 150 of file MultiplicityProducer.cc.

{
}
template<class T >
void MultiplicityProducer< T >::endJob ( void  ) [private, virtual]

Reimplemented from edm::EDProducer.

Definition at line 157 of file MultiplicityProducer.cc.

                                {
}
template<class T >
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);
  
}

Member Data Documentation

template<class T >
edm::InputTag MultiplicityProducer< T >::_collection [private]

Definition at line 59 of file MultiplicityProducer.cc.

template<class T >
std::map<unsigned int, std::string> MultiplicityProducer< T >::_subdets [private]