MPulseGenerator.hh
Go to the documentation of this file.00001 #ifndef _M_PULSEGENERATOR_HH_
00002 #define _M_PULSEGENERATOR_HH_
00003
00163 #include "QReader.hh"
00164 #include "QVector.hh"
00165 #include "QTime.hh"
00166 #include "QPulseGenerator.hh"
00167 #include "QDbDetector.hh"
00168 #include <vector>
00169 #include <gsl/gsl_rng.h>
00170
00171 class QNoiseGenerator;
00172 namespace Cuore {class QMathFunction; class QRunData; }
00173
00174 class MPulseGenerator : public QReader {
00175
00176 public:
00178 MPulseGenerator(QSequence* s);
00179
00181 ~MPulseGenerator();
00182
00183 void Init();
00184
00185 QEvent* Do(QEvent* ev);
00186
00187 void Done();
00188
00189 private:
00190 static bool ComparePulseGenerator(QPulseGenerator* one, QPulseGenerator* two);
00191 QMatrix GetConfig(const std::string& bolometersFile, const std::string& configurationFile);
00192 std::vector<QPulseGenerator*> fChannelGenerators;
00193
00194 int fSeed;
00195 time_t fStartTime;
00196 gsl_rng* fRandomGen;
00197 bool fRoundToADC;
00198 bool fGenerateFromEnergy;
00199 bool fUseRK;
00200 int fThisRun;
00201 int fRunNumber;
00202 bool fApolloDAQ;
00203 double fADC2mV;
00204 QRunData* fRunData;
00205 QDbDetector::RunType fMeasurementType;
00206 QVector fTimes;
00207 QVector fDeltaTs;
00208 QVector fEnergies;
00209 QVector fAmplitudes;
00210 QVector fMax;
00211 QVector fMaxPos;
00212 };
00213
00214 #endif