00001
00015 #ifndef LAT_GRB_H
00016 #define LAT_GRB_H
00017
00018 #include <vector>
00019 #include <string>
00020
00021 #include "GRBurst.h"
00022
00023 class HepRandomEngine;
00024
00025
00026
00027 class LatGrb : public GRBurst
00028 {
00029 public:
00033 LatGrb(HepRandomEngine *engine, const std::string &prefix,
00034 const std::string &dir=0);
00035
00039 LatGrb(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 ~LatGrb() {};
00048
00049
00050
00051
00052 static double emax() { return s_emax; }
00053
00054 private:
00080 void calcSpecnorm(HepRandomEngine *engine);
00081
00085 virtual long calcNphoton(HepRandomEngine *engine);
00086
00090 void makeEnergies(HepRandomEngine *engine);
00091
00095 virtual void makeGRB(HepRandomEngine *engine);
00096
00097
00098
00099
00100 static const double s_emax;
00101 };
00102
00103 #endif // LAT_GRB_H