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                 // MARIA
00075                 // Jump to Event . Partial to jump is stored in fPartialToJump
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                 /*@brief used to fill the run list*/ 
00110                 struct QFile_t f;
00111 
00112                 /*@brief identifier of the current run, as listed in the file list*/
00113                 std::string fName;
00114 
00115                 /*@brief date of the current run */ 
00116                 std::string fDate;
00117 
00118                 /*@brief number of pre trigger samples */ 
00119         size_t fPreTriggerSamples;
00120 
00121         /*@brief true if the input file is a noise one */ 
00122         size_t fIsNoise;
00123 
00125         bool fSaveInAuxData;
00126 
00128         QDbDetector::DetectorName fDetector;
00129 
00131         char *fTimeZone;
00132 
00133 
00134         // MARIA
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

Generated on Tue Nov 16 10:49:59 2010 for CUORE Software by  doxygen 1.5.6