Go to the documentation of this file.00001
00002
00003 #ifndef EventFilter_SiStripRawToDigi_SiStripDigiToRaw_H
00004 #define EventFilter_SiStripRawToDigi_SiStripDigiToRaw_H
00005
00006 #include "DataFormats/Common/interface/Handle.h"
00007 #include "DataFormats/Common/interface/DetSetVector.h"
00008 #include "FWCore/Framework/interface/ESHandle.h"
00009 #include "FWCore/Framework/interface/Event.h"
00010 #include "boost/cstdint.hpp"
00011 #include <string>
00012
00013 #include "EventFilter/SiStripRawToDigi/interface/SiStripFEDBufferGenerator.h"
00014
00015 class SiStripFedCabling;
00016 class FEDRawDataCollection;
00017 class SiStripDigi;
00018 class SiStripRawDigi;
00019
00020 namespace sistrip {
00021
00029 class DigiToRaw {
00030
00031 public:
00032
00033 DigiToRaw( FEDReadoutMode, bool use_fed_key );
00034 ~DigiToRaw();
00035
00036 void createFedBuffers( edm::Event&,
00037 edm::ESHandle<SiStripFedCabling>& cabling,
00038 edm::Handle< edm::DetSetVector<SiStripDigi> >& digis,
00039 std::auto_ptr<FEDRawDataCollection>& buffers );
00040 void createFedBuffers( edm::Event&,
00041 edm::ESHandle<SiStripFedCabling>& cabling,
00042 edm::Handle< edm::DetSetVector<SiStripRawDigi> >& digis,
00043 std::auto_ptr<FEDRawDataCollection>& buffers);
00044
00045 inline void fedReadoutMode( FEDReadoutMode mode ) { mode_ = mode; }
00046
00047 private:
00048
00049 template<class Digi_t>
00050 void createFedBuffers_( edm::Event&,
00051 edm::ESHandle<SiStripFedCabling>& cabling,
00052 edm::Handle< edm::DetSetVector<Digi_t> >& digis,
00053 std::auto_ptr<FEDRawDataCollection>& buffers,
00054 bool zeroSuppressed);
00055 uint16_t STRIP(const edm::DetSet<SiStripDigi>::const_iterator& it, const edm::DetSet<SiStripDigi>::const_iterator& begin) const;
00056 uint16_t STRIP(const edm::DetSet<SiStripRawDigi>::const_iterator& it, const edm::DetSet<SiStripRawDigi>::const_iterator& begin) const;
00057
00058 FEDReadoutMode mode_;
00059 bool useFedKey_;
00060 FEDBufferGenerator bufferGenerator_;
00061
00062 };
00063
00064 }
00065
00066
00067 #endif // EventFilter_SiStripRawToDigi_SiStripDigiToRaw_H
00068