CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_6_1_1/src/EventFilter/SiStripRawToDigi/interface/SiStripRawToClustersLazyUnpacker.h

Go to the documentation of this file.
00001 #ifndef EventFilter_SiStripRawToDigi_SiStripRawToClustersLazyUnpacker_H
00002 #define EventFilter_SiStripRawToDigi_SiStripRawToClustersLazyUnpacker_H
00003 
00004 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00005 #include "DataFormats/Common/interface/LazyGetter.h"
00006 #include "DataFormats/SiStripCluster/interface/SiStripCluster.h"
00007 #include "DataFormats/FEDRawData/interface/FEDRawDataCollection.h"
00008 #include "DataFormats/SiStripCommon/interface/SiStripConstants.h"
00009 #include "CalibFormats/SiStripObjects/interface/SiStripRegionCabling.h"
00010 #include "RecoLocalTracker/SiStripClusterizer/interface/StripClusterizerAlgorithm.h"
00011 #include "RecoLocalTracker/SiStripZeroSuppression/interface/SiStripRawProcessingAlgorithms.h"
00012 #include "EventFilter/SiStripRawToDigi/interface/SiStripRawToDigiUnpacker.h"
00013 #include "EventFilter/SiStripRawToDigi/interface/SiStripFEDBuffer.h"
00014 #include <vector>
00015 #include <list>
00016 
00017 
00018 namespace sistrip {
00019  
00020   class RawToClustersLazyUnpacker : public edm::LazyUnpacker<SiStripCluster> {
00021     
00022   public:
00023     
00024     typedef edm::DetSet<SiStripCluster> DetSet;
00025     
00026     RawToClustersLazyUnpacker(const SiStripRegionCabling&, StripClusterizerAlgorithm&, SiStripRawProcessingAlgorithms&, const FEDRawDataCollection&, bool = false); 
00027     
00028     virtual ~RawToClustersLazyUnpacker();
00029     
00030     virtual void fill(const uint32_t&, record_type&);
00031 
00032     inline void doAPVEmulatorCheck( bool do_APVEmulator_check) { 
00033       doAPVEmulatorCheck_ = do_APVEmulator_check; 
00034     };
00035 
00036   private:
00037     
00039     RawToClustersLazyUnpacker();
00040     
00042     const FEDRawDataCollection* raw_;
00043     
00045     const SiStripRegionCabling::Cabling* regions_;
00046     
00048     StripClusterizerAlgorithm* const clusterizer_;
00049     
00051     SiStripRawProcessingAlgorithms* const rawAlgos_;
00052     
00054     std::vector< sistrip::FEDBuffer* > buffers_;
00055     
00057     RawToDigiUnpacker rawToDigi_;
00058     
00060     bool dump_;
00061 
00062     //check that APVemulator address is the same as FEMajaddress.
00063     bool doAPVEmulatorCheck_;
00064 
00065   };
00066   
00067 }
00068 
00069 #endif ///  EventFilter_SiStripRawToDigi_SiStripRawToClustersLazyUnpacker_H