00001
00015 #ifndef GBM_GRB_H
00016 #define GBM_GRB_H
00017
00018 #include <vector>
00019 #include <string>
00020
00021 #include "GRBurst.h"
00022
00023 class HepRandomEngine;
00024
00025
00026
00027 class GbmGrb : public GRBurst
00028 {
00029 public:
00033 GbmGrb(HepRandomEngine *engine, const std::string &prefix,
00034 const std::vector<double> &specnorm, const std::string &dir=0);
00035
00039 GbmGrb(HepRandomEngine *engine, const double duration, const int npuls,
00040 const double flux, const double fraction, const double alpha,
00041 const double beta, const double epeak, const double specnorm,
00042 const bool flag);
00043
00047 virtual ~GbmGrb() {};
00048
00049
00050
00051
00052 static const double emax() { return s_emax; }
00053
00054
00055
00056
00060 virtual long calcNphoton(HepRandomEngine *engine);
00061
00062 private:
00067 void makeEnergies(HepRandomEngine *engine);
00068
00072 virtual void makeGRB(HepRandomEngine *engine);
00073
00074
00075
00076
00077 static const double s_emax;
00078 double m_cjoin;
00079 double m_norm;
00080 };
00081
00082 #endif // GBM_GRB_H