Go to the documentation of this file.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 const unsigned short *ruBuf[40];
00028 size_t ruBufSize[40];
00029
00030 FileReaderDDU RUI[40];
00031 FileReaderDCC FU [4];
00032
00033 std::map<unsigned int,std::list<unsigned int> > FED;
00034
00035 int readRUI(int rui, const unsigned short* &buf, size_t &length);
00036 int buildEventFromRUIs(FEDRawDataCollection *data);
00037
00038 int readFU (int fu, const unsigned short* &buf, size_t &length);
00039 int nextEventFromFUs (FEDRawDataCollection *data);
00040
00041 public:
00042 int fillRawData(edm::EventID& eID, edm::Timestamp& tstamp, FEDRawDataCollection *& data);
00043
00044 CSCFileReader(const edm::ParameterSet& pset);
00045 virtual ~CSCFileReader(void);
00046 };
00047
00048 #endif