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 //structure for file name and characteristics needed for appropriate 
00052 // reading
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                 // Init method is called before event loop
00066                 void Init();
00067 
00068                 // Doit method is called for each event, getting the event as argument
00069                 QEvent* Do( QEvent* ev);
00070 
00071                 // Done method is called after event loop
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                 /*@brief used to fill the run list*/ 
00106                 struct QFile_t f;
00107 
00108                 /*@brief identifier of the current run, as listed in the file list*/
00109                 std::string fName;
00110 
00111                 /*@brief date of the current run */ 
00112                 std::string fDate;
00113 
00114                 /*@brief number of pre trigger samples */ 
00115         size_t fPreTriggerSamples;
00116 
00117         /*@brief true if the input file is a noise one */ 
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

Generated on Fri Mar 6 13:40:40 2009 for CUORE Software by  doxygen 1.5.1