00001 #ifndef EventFilter_SiStripRawToDigi_SiStripRawToClusters_H 00002 #define EventFilter_SiStripRawToDigi_SiStripRawToClusters_H 00003 00004 #include "FWCore/Framework/interface/EDProducer.h" 00005 #include "DataFormats/Common/interface/LazyGetter.h" 00006 #include "DataFormats/Common/interface/RefGetter.h" 00007 #include "EventFilter/SiStripRawToDigi/interface/SiStripRawToClustersLazyUnpacker.h" 00008 #include <string> 00009 #include <memory> 00010 #include "boost/bind.hpp" 00011 00012 class SiStripClusterizerFactory; 00013 class SiStripRegionCabling; 00014 00020 class SiStripRawToClusters : public edm::EDProducer { 00021 00022 public: 00023 00024 typedef edm::LazyGetter<SiStripCluster> LazyGetter; 00025 typedef edm::RefGetter<SiStripCluster> RefGetter; 00026 typedef SiStripRawToClustersLazyUnpacker LazyUnpacker; 00027 typedef SiStripRegionCabling::SubDet SubDet; 00028 00029 SiStripRawToClusters( const edm::ParameterSet& ); 00030 ~SiStripRawToClusters(); 00031 00032 virtual void beginJob( const edm::EventSetup& ); 00033 virtual void beginRun( edm::Run&, const edm::EventSetup& ); 00034 virtual void produce( edm::Event&, const edm::EventSetup& ); 00035 00036 private: 00037 00038 void updateCabling( const edm::EventSetup& setup ); 00039 00040 std::string productLabel_; 00041 std::string productInstance_; 00042 00043 const SiStripRegionCabling* cabling_; 00044 00045 uint32_t cacheId_; 00046 00047 SiStripClusterizerFactory* clusterizer_; 00048 00049 }; 00050 00051 #endif // EventFilter_SiStripRawToDigi_SiStripRawToClusters_H 00052