CMS 3D CMS Logo

Public Types | Public Member Functions | Private Member Functions | Private Attributes

sistrip::RawToClusters Class Reference

#include <SiStripRawToClusters.h>

Inheritance diagram for sistrip::RawToClusters:
edm::EDProducer edm::ProducerBase edm::ProductRegistryHelper

List of all members.

Public Types

typedef edm::LazyGetter
< SiStripCluster
LazyGetter
typedef RawToClustersLazyUnpacker LazyUnpacker
typedef edm::RefGetter
< SiStripCluster
RefGetter
typedef
SiStripRegionCabling::SubDet 
SubDet

Public Member Functions

virtual void beginRun (edm::Run &, const edm::EventSetup &)
virtual void produce (edm::Event &, const edm::EventSetup &)
 RawToClusters (const edm::ParameterSet &)
 ~RawToClusters ()

Private Member Functions

void updateCabling (const edm::EventSetup &setup)

Private Attributes

const SiStripRegionCablingcabling_
uint32_t cacheId_
std::auto_ptr
< StripClusterizerAlgorithm
clusterizer_
bool doAPVEmulatorCheck_
edm::InputTag productLabel_
std::auto_ptr
< SiStripRawProcessingAlgorithms
rawAlgos_

Detailed Description

Definition at line 22 of file SiStripRawToClusters.h.


Member Typedef Documentation

Definition at line 26 of file SiStripRawToClusters.h.

Definition at line 28 of file SiStripRawToClusters.h.

Definition at line 27 of file SiStripRawToClusters.h.

Definition at line 29 of file SiStripRawToClusters.h.


Constructor & Destructor Documentation

sistrip::RawToClusters::RawToClusters ( const edm::ParameterSet conf)

Definition at line 17 of file SiStripRawToClusters.cc.

References edm::isDebugEnabled(), and LogTrace.

                                                          :
  productLabel_(conf.getParameter<edm::InputTag>("ProductLabel")),
  cabling_(0),
  cacheId_(0),
  clusterizer_(StripClusterizerAlgorithmFactory::create(conf.getParameter<edm::ParameterSet>("Clusterizer"))),
  rawAlgos_(SiStripRawProcessingFactory::create(conf.getParameter<edm::ParameterSet>("Algorithms"))),
  doAPVEmulatorCheck_(conf.existsAs<bool>("DoAPVEmulatorCheck") ? conf.getParameter<bool>("DoAPVEmulatorCheck") : true)
{
  if ( edm::isDebugEnabled() ) {
    LogTrace("SiStripRawToCluster")
      << "[RawToClusters::" << __func__ << "]"
      << " Constructing object...";
  }
  produces<LazyGetter>();

}
sistrip::RawToClusters::~RawToClusters ( )

Definition at line 34 of file SiStripRawToClusters.cc.

References edm::isDebugEnabled(), and LogTrace.

                                {
    if ( edm::isDebugEnabled() ) {
      LogTrace("SiStripRawToCluster")
        << "[RawToClusters::" << __func__ << "]"
        << " Destructing object...";
    }
  }

Member Function Documentation

void sistrip::RawToClusters::beginRun ( edm::Run ,
const edm::EventSetup setup 
) [virtual]

Reimplemented from edm::EDProducer.

Definition at line 42 of file SiStripRawToClusters.cc.

References clusterizer_, rawAlgos_, and updateCabling().

                                                                   {
    updateCabling( setup );  
    clusterizer_->initialize(setup);
    rawAlgos_->initialize(setup);
  }
void sistrip::RawToClusters::produce ( edm::Event event,
const edm::EventSetup setup 
) [virtual]

Implements edm::EDProducer.

Definition at line 48 of file SiStripRawToClusters.cc.

References SiStripRegionCabling::ALLLAYERS, SiStripRegionCabling::ALLSUBDETS, cabling_, clusterizer_, runEdmFileComparison::collection, doAPVEmulatorCheck_, SiStripRegionCabling::getRegionCabling(), productLabel_, rawAlgos_, and updateCabling().

                                                                          {
  
    // update cabling
    updateCabling( setup );  
    clusterizer_->initialize( setup );
    rawAlgos_->initialize( setup );
  
    // get raw data
    edm::Handle<FEDRawDataCollection> buffers;
    event.getByLabel( productLabel_, buffers ); 

    // create lazy unpacker
    boost::shared_ptr<LazyUnpacker> unpacker( new LazyUnpacker( *cabling_, *clusterizer_, *rawAlgos_, *buffers ) );

    // propagate the parameter doAPVEmulatorCheck_ to the unpacker.
    unpacker->doAPVEmulatorCheck(doAPVEmulatorCheck_);

    // create lazy getter
    std::auto_ptr<LazyGetter> collection( new LazyGetter( cabling_->getRegionCabling().size() * SiStripRegionCabling::ALLSUBDETS * SiStripRegionCabling::ALLLAYERS, unpacker ) );
  
    // add collection to the event
    event.put( collection );
  
  }
void sistrip::RawToClusters::updateCabling ( const edm::EventSetup setup) [private]

Definition at line 73 of file SiStripRawToClusters.cc.

References trackerHits::c, cabling_, cacheId_, edm::EventSetup::get(), and edm::ESHandle< T >::product().

Referenced by beginRun(), and produce().

                                                                {

    uint32_t cache_id = setup.get<SiStripRegionCablingRcd>().cacheIdentifier();
    if ( cacheId_ != cache_id ) {
      edm::ESHandle<SiStripRegionCabling> c;
      setup.get<SiStripRegionCablingRcd>().get( c );
      cabling_ = c.product();
      cacheId_ = cache_id;
    }
  }

Member Data Documentation

Definition at line 42 of file SiStripRawToClusters.h.

Referenced by produce(), and updateCabling().

Definition at line 43 of file SiStripRawToClusters.h.

Referenced by updateCabling().

Definition at line 44 of file SiStripRawToClusters.h.

Referenced by beginRun(), and produce().

Definition at line 48 of file SiStripRawToClusters.h.

Referenced by produce().

Definition at line 41 of file SiStripRawToClusters.h.

Referenced by produce().

Definition at line 45 of file SiStripRawToClusters.h.

Referenced by beginRun(), and produce().