00001 #ifndef _M_PULSEGENERATOR_HH_ 00002 #define _M_PULSEGENERATOR_HH_ 00003 00124 #include "QReader.hh" 00125 #include "QVector.hh" 00126 #include "QTime.hh" 00127 #include "QPulseGenerator.hh" 00128 #include <vector> 00129 #include <gsl/gsl_rng.h> 00130 00131 class QNoiseGenerator; 00132 namespace Cuore {class QMathFunction; class QRunData; } 00133 00134 class MPulseGenerator : public QReader { 00135 00136 public: 00138 MPulseGenerator(QSequence* s); 00139 00141 ~MPulseGenerator(); 00142 00143 void Init(); 00144 00145 QEvent* Do(QEvent* ev); 00146 00147 void Done(); 00148 00149 private: 00150 static bool ComparePulseGenerator(QPulseGenerator* one, QPulseGenerator* two); 00151 std::vector<QPulseGenerator*> fChannelGenerators; 00152 std::string fConfigurationFile; 00153 int fSeed; 00154 time_t fStartTime; 00155 gsl_rng* fRandomGen; 00156 bool fRoundToADC; 00157 bool fGenerateFromEnergy; 00158 int fThisRun; 00159 int fRunNumber; 00160 double fApolloADC2mV; 00161 double fOldDAQADC2mV; 00162 double* fADC2mV; 00163 QRunData* fRunData; 00164 QVector fTimes; 00165 QVector fDeltaTs; 00166 QVector fEnergies; 00167 QVector fAmplitudes; 00168 QVector fMax; 00169 QVector fMaxPos; 00170 }; 00171 00172 #endif