![]() |
![]() |
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 namespace sistrip { 00021 00022 class RawToClusters : public edm::EDProducer { 00023 00024 public: 00025 00026 typedef edm::LazyGetter<SiStripCluster> LazyGetter; 00027 typedef edm::RefGetter<SiStripCluster> RefGetter; 00028 typedef RawToClustersLazyUnpacker LazyUnpacker; 00029 typedef SiStripRegionCabling::SubDet SubDet; 00030 00031 RawToClusters( const edm::ParameterSet& ); 00032 ~RawToClusters(); 00033 00034 virtual void beginRun( edm::Run&, const edm::EventSetup& ); 00035 virtual void produce( edm::Event&, const edm::EventSetup& ); 00036 00037 private: 00038 00039 void updateCabling( const edm::EventSetup& setup ); 00040 00041 edm::InputTag productLabel_; 00042 const SiStripRegionCabling* cabling_; 00043 uint32_t cacheId_; 00044 std::auto_ptr<StripClusterizerAlgorithm> clusterizer_; 00045 std::auto_ptr<SiStripRawProcessingAlgorithms> rawAlgos_; 00046 00047 // March 2012: add flag for disabling APVe check in configuration 00048 bool doAPVEmulatorCheck_; 00049 00050 }; 00051 00052 } 00053 00054 #endif // EventFilter_SiStripRawToDigi_SiStripRawToClusters_H