00001 #ifndef DTROS25Unpacker_h 00002 #define DTROS25Unpacker_h 00003 00014 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00015 00016 #include <EventFilter/DTRawToDigi/plugins/DTUnpacker.h> 00017 00018 class DTDataMonitorInterface; 00019 class DTROS25Data; 00020 00021 class DTROS25Unpacker : public DTUnpacker { 00022 00023 public: 00024 00026 DTROS25Unpacker(const edm::ParameterSet& ps); 00027 00029 virtual ~DTROS25Unpacker(); 00030 00031 // Unpacking method 00032 virtual void interpretRawData(const unsigned int* index, int datasize, 00033 int dduID, 00034 edm::ESHandle<DTReadOutMapping>& mapping, 00035 std::auto_ptr<DTDigiCollection>& product, 00036 std::auto_ptr<DTLocalTriggerCollection>& product2, 00037 uint16_t rosList = 0); 00038 00039 inline const std::vector<DTROS25Data> & getROSsControlData() const { 00040 return controlDataFromAllROS; 00041 } 00042 00043 private: 00044 00045 int swap(int x); 00046 00048 bool localDAQ; 00049 00051 bool readingDDU; 00052 00054 bool readDDUIDfromDDU; 00056 int hardcodedDDUID; 00057 00059 bool writeSC; 00060 00062 bool performDataIntegrityMonitor; 00063 00064 bool debug; 00065 00066 DTDataMonitorInterface * dataMonitor; 00067 00068 std::vector<DTROS25Data> controlDataFromAllROS; 00069 00070 }; 00071 00072 #endif