MQinoMiCompleteDataReaderFast.hh
Go to the documentation of this file.00001
00053 #ifndef _Q_QINOMICOMPLETEDATAREADERFAST_HH
00054 #define _Q_QINOMICOMPLETEDATAREADERFAST_HH
00055
00056 #include "QReader.hh"
00057 #include "MQinoMiNtpReader.hh"
00058 #include "QCuore.hh"
00059 #include <string>
00060 #include <vector>
00061 #include "zlib.h"
00062
00063
00064
00065 struct QFile_t {
00066 std::string filename;
00067 bool isDiff;
00068 };
00069
00071 struct QBinRecStruct_t {
00072 char cHeader[8];
00073 short chan;
00074 unsigned short pulseTime1;
00075 unsigned short pulseTime2;
00076 short first_sampl;
00077 short sampl[1023];
00078 };
00079
00080 class MQinoMiCompleteDataReaderFast : public QReader {
00081
00082 public:
00083 MQinoMiCompleteDataReaderFast(QSequence* s);
00084
00085 virtual ~MQinoMiCompleteDataReaderFast();
00086
00087
00088 void Init();
00089
00090
00091 QEvent* Do( QEvent* ev);
00092
00093
00094 void Done();
00095
00096
00097 const QError& ReadEvent(int event);
00098 const QError& ReadFile();
00099 QEvent* FillEvent( QEvent* ev);
00100
00101
00102 private:
00103
00105 void NewRun();
00106
00107
00108
00109 float fMinAdcRange, fMaxAdcRange;
00110 int fNumSamples;
00111 float fSamplingFrequency;
00112 Int_t frecord_size;
00113 std::string fRunNumber;
00114 std::vector<QFile_t> files;
00115
00117 std::vector<QFile_t>::iterator filesIter;
00118
00120 std::vector<QFile_t>::iterator filesEnd;
00121
00123 std::vector<std::string>::iterator fIter;
00124
00127 std::string fFileUName;
00128
00130 gzFile fCurrentFile;
00131
00133 int fRunEventNumber;
00134
00135
00136 struct QFile_t f;
00137
00138
00139 std::string fName;
00140
00141
00142 std::string fDate;
00143
00144
00145 size_t fPreTriggerSamples;
00146
00147
00148 size_t fIsNoise;
00149
00151 bool fSaveInAuxData;
00152
00154 QDbDetector::DetectorName fDetector;
00155
00157 char *fTimeZone;
00158
00159
00160
00161 int fPartialToJump;
00162 int fRunToJump;
00163 MQinoMiNtpReader* fNtpReader;
00164 char * fBuffer;
00165 int fEventsInFile;
00166 int fEventsRead;
00167
00168
00169 };
00170
00171
00172 #endif