00001 #ifndef _Q_AMPLITUDE_GENERATOR_HH_ 00002 #define _Q_AMPLITUDE_GENERATOR_HH_ 00003 00004 #include "QCuore.hh" 00005 #include <gsl/gsl_rng.h> 00006 #include <TH1D.h> 00007 00008 class QAmplitudeGenerator { 00009 public: 00010 enum Type { 00011 NONE = 0, 00012 Uniform = 1, 00013 Exponential = 2, 00014 Fixed = 3, 00015 InputHisto = 4, 00016 }; 00017 00018 QAmplitudeGenerator(Type type, double p1, double p2, const gsl_rng* randGen, const TH1D* histo = NULL); 00019 00020 double GetAmplitude(); 00021 00022 private: 00023 00024 double SampleFromHisto(); 00025 Type fType; 00026 double fAMin; 00027 double fAMax; 00028 const gsl_rng* fRandomGen; 00029 00030 TH1D* fAmplitudeHistogram; 00031 00032 }; 00033 00034 #endif