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 private:
00075
00077 void NewRun();
00078
00079 int fMinAdcRange, fMaxAdcRange;
00080 int fNumSamples;
00081 float fSamplingFrequency;
00082 Int_t frecord_size;
00083 std::string fRunNumber;
00084 std::vector<QFile_t> files;
00085
00087 std::vector<QFile_t>::iterator filesIter;
00088
00090 std::vector<QFile_t>::iterator filesEnd;
00091
00093 std::vector<std::string>::iterator fIter;
00094
00097 std::string fFileUName;
00098
00100 gzFile fCurrentFile;
00101
00103 int fRunEventNumber;
00104
00105
00106 struct QFile_t f;
00107
00108
00109 std::string fName;
00110
00111
00112 std::string fDate;
00113
00114
00115 size_t fPreTriggerSamples;
00116
00117
00118 size_t fIsNoise;
00119
00121 bool fSaveInAuxData;
00122
00124 QDbDetector::DetectorName fDetector;
00125
00127 char *fTimeZone;
00128
00129 friend class MQinoCompleteDataReader;
00130 friend class MQinoMiCompleteDataReader;
00131
00132
00133 };
00134
00136 struct QBinRecStruct_t {
00137 char cHeader[8];
00138 short chan;
00139 unsigned short pulseTime1;
00140 unsigned short pulseTime2;
00141 short first_sampl;
00142 short sampl[1023];
00143 };
00144
00145 #endif