![]() |
![]() |
00001 #ifndef CSCFileReader_h 00002 #define CSCFileReader_h 00003 00004 #include <IORawData/DaqSource/interface/DaqBaseReader.h> 00005 #include <DataFormats/Provenance/interface/EventID.h> 00006 00007 #include <vector> 00008 #include <string> 00009 #include <list> 00010 #include <map> 00011 00012 #include "FileReaderDDU.h" 00013 #include "FileReaderDCC.h" 00014 00015 class CSCFileReader : public DaqBaseReader { 00016 private: 00017 std::vector<std::string> fileNames[40]; 00018 std::vector<std::string>::const_iterator currentFile[40]; 00019 00020 int firstEvent, nEvents, tfDDUnumber; 00021 int expectedNextL1A, currentL1A[40]; 00022 int nActiveRUIs, nActiveFUs; 00023 00024 unsigned short *tmpBuf; 00025 const unsigned short *fuEvent[4]; 00026 size_t fuEventSize[4]; 00027 00028 FileReaderDDU RUI[40]; 00029 FileReaderDCC FU [4]; 00030 00031 std::map<unsigned int,std::list<unsigned int> > FED; 00032 00033 int readRUI(int rui, const unsigned short* &buf, size_t &length); 00034 int buildEventFromRUIs(FEDRawDataCollection *data); 00035 00036 int readFU (int fu, const unsigned short* &buf, size_t &length); 00037 int nextEventFromFUs (FEDRawDataCollection *data); 00038 00039 public: 00040 bool fillRawData(edm::EventID& eID, edm::Timestamp& tstamp, FEDRawDataCollection *& data); 00041 00042 CSCFileReader(const edm::ParameterSet& pset); 00043 virtual ~CSCFileReader(void); 00044 }; 00045 00046 #endif