Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members  

GRBConstants.h

00001 
00012 #ifndef GRBCONSTANTS_HH
00013 #define GRBCONSTANTS_HH 1
00014 #include <string>
00015 #include <cmath>
00016 #include "CLHEP/Random/RandomEngine.h"
00017 
00026 namespace cst
00027 {
00028   // Universal constants :
00030   const double mpc2      = 938.2; 
00032   const double mec2      = 0.510999;       //MeV
00034   const double erg2MeV   = 624151.0;
00036   const double mpc2cm    = 3.0857e+24;
00037   // Conversion fron \e Gauss to \e MeV
00038   //  const double G2MeV     = 815.78;
00039   
00041   const double st        = 6.65225e-25;
00043   const double mu0       = 4.0*M_PI*1.0e-7; 
00045   const double   BQ        = 4.413e+13; 
00047   const double c         = 2.98e+10;
00049   const double c2        = c*c;
00051   const double hplanck   = 4.13567e-15;
00053   const double pi        = 3.1415926535897932385;
00055   const double Hubble    = 6.5e+1; 
00057   const double wzel      = 0.0;
00059   const double csi       = 1.0; 
00061   const double alphae    = .5;
00063   const double alphab    = .1;
00066   const double p         = 2.5;
00068   const double viscosity = 0.0;
00070   const int    nstep        = 300; 
00072   const int    enstep       =  50;
00074   const double enmin     = 1.0e+3;
00076   const double enmax     =1.0e+12;
00077   // Minimal Temporal separation between 2 photons
00078   // const double DeadTime  = 1.0e-5; //sec
00079   
00088   const float flagIC     = 1;
00096   const bool  flagQG     = false;
00102   const bool savef=false;
00104   const std::string paramFile= "GRBdata.txt";
00121   const std::string pulse_shape="agauss"; 
00122 }
00123 
00124 class GRBConstants 
00125 { 
00126  public:
00127 
00128   GRBConstants();
00129 
00130   ~GRBConstants() { }
00131 
00133   static void InitializeRandom(long seed = 0);
00134   
00135   static HepRandomEngine* GetTheRandomEngine(long seed = 0);
00136   
00138   int ReadParam();
00139   
00141   void Print();
00142   
00144   void Save(bool flag=false);
00145 
00146 
00160   inline void setEngineType(int value){m_engineType = value;}
00161   
00163   inline int EngineType(){return m_engineType;}
00164     
00166 
00167   //  inline int Nshell() {return m_nshell;}
00168 
00169   //  inline void setNshell(int value=10){m_nshell = value;}
00170     
00172 
00173   inline int Nshock() {return m_nshock;}
00174 
00175   inline void setNshock(int value=10){m_nshock = value;}
00176 
00177   inline double Duration(){return m_duration;}
00178 
00179   inline void setDuration(double value=0.4){m_duration = value;}
00180 
00181   inline double RiseTime(){return m_rt;}
00182 
00183   inline void setRiseTime(double value=0.4){m_rt = value;}
00184  
00185   inline double DecayTime(){return m_dt;}
00186  
00187   inline void setDecayTime(double value=0.4){m_dt = value;}
00188  
00189   inline double PeakEnergy(){return m_peak;}
00190  
00191   inline void setPeakEnergy(double value=0.4){m_peak = value;}
00199   inline void setShellType(int value){m_shellType = value;}
00200   
00202   inline int ShellType(){return m_shellType;}
00203   
00205 
00206   inline double ShellRadius(){return m_d0;}
00207   
00208   inline void setShellRadius(double value){m_d0 = value;}
00209 
00211  
00212   inline double JetRadius(){return m_r0;}
00213   
00214   inline void setJetRadius(double value){m_r0 = value;}
00215   
00216   inline double JetAngle(){return m_angle;}
00217   
00218   inline void setJetAngle(double value){m_angle = M_PI/180. * value;}
00219   
00221  
00222   inline double Thickness(){return m_t0;}
00223 
00224   inline void setThickness(double value){m_t0 = value;}
00225    
00226   inline double Etot(){return m_etot;}
00227 
00228   inline void setEtot(double value){m_etot = value;}
00229 
00230   inline double GammaMin(){return m_g0;}
00231 
00232   inline void setGammaMin(double value=100.0){m_g0 = value;}
00233 
00234   inline double GammaMax(){return m_g1;}
00235 
00236   inline void setGammaMax(double value=1000.0){m_g1 = value;}
00237 
00238   inline double Redshift() {return m_redshift;}
00239 
00240   inline void setRedshift(double value=1.0){m_redshift = value;}
00245   inline void setEnergyPh(double value=25.0e+3){m_enph = value;}
00246   
00247   inline double EnergyPh(){return m_enph;}
00248   
00249   double Distance();
00250   
00251   inline std::string GetParamFile() {return  m_paramFile;}
00252  
00253  private:
00254   char* m_burst_type;
00255   //  int m_nshell;
00256   double m_d0;
00257   int m_nshock;
00258   double m_r0;
00259   double m_angle;
00260   double m_redshift;
00261   double m_etot;
00262   double m_g0,m_g1;
00263   double m_t0;
00264   double m_duration;
00265   double m_rt,m_dt,m_peak;
00266   double m_enph;
00267   std::string m_paramFile;
00268   int m_engineType;
00269   int m_shellType;
00270 };
00271 
00272 #endif
00273 
00274 

Generated on Mon Jan 27 11:43:32 2003 by doxygen1.2.13.1 written by Dimitri van Heesch, © 1997-2001