MQinoDataReader.hh
Go to the documentation of this file.00001
00041 #ifndef _Q_QINODATAREADER_HH
00042 #define _Q_QINODATAREADER_HH
00043
00044 #include "QReader.hh"
00045
00046 #include "QCuore.hh"
00047 #include <string>
00048 #include <vector>
00049 #include "zlib.h"
00050
00051
00052
00053 struct QFile_t {
00054 std::string filename;
00055 bool isDiff;
00056 };
00057
00058 class MQinoDataReader : public QReader {
00059
00060 public:
00061 MQinoDataReader(QSequence* s);
00062
00063 virtual ~MQinoDataReader();
00064
00065
00066 void Init();
00067
00068
00069 QEvent* Do( QEvent* ev);
00070
00071
00072 void Done();
00073
00074
00075
00076 const QError& JumpToEvent(unsigned int event);
00077
00078 private:
00079
00081 void NewRun();
00082
00083 int fMinAdcRange, fMaxAdcRange;
00084 int fNumSamples;
00085 float fSamplingFrequency;
00086 Int_t frecord_size;
00087 std::string fRunNumber;
00088 std::vector<QFile_t> files;
00089
00091 std::vector<QFile_t>::iterator filesIter;
00092
00094 std::vector<QFile_t>::iterator filesEnd;
00095
00097 std::vector<std::string>::iterator fIter;
00098
00101 std::string fFileUName;
00102
00104 gzFile fCurrentFile;
00105
00107 int fRunEventNumber;
00108
00109
00110 struct QFile_t f;
00111
00112
00113 std::string fName;
00114
00115
00116 std::string fDate;
00117
00118
00119 size_t fPreTriggerSamples;
00120
00121
00122 size_t fIsNoise;
00123
00125 bool fSaveInAuxData;
00126
00128 QDbDetector::DetectorName fDetector;
00129
00131 char *fTimeZone;
00132
00133
00134
00135 int fPartialToJump;
00136
00137 friend class MQinoCompleteDataReader;
00138 friend class MQinoMiCompleteDataReader;
00139
00140
00141 };
00142
00144 struct QBinRecStruct_t {
00145 char cHeader[8];
00146 short chan;
00147 unsigned short pulseTime1;
00148 unsigned short pulseTime2;
00149 short first_sampl;
00150 short sampl[1023];
00151 };
00152
00153 #endif