CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_7/src/IORawData/CSCCommissioning/src/CSCFileReader.h

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