00001
00012 #ifndef RadiationProcess_H
00013 #define RadiationProcess_H 1
00014
00015 #include "SpectObj.h"
00016 #include"GRBConstants.h"
00017
00018 class RadiationProcess
00019 {
00020
00021 public:
00022 RadiationProcess(){;}
00023 RadiationProcess(SpectObj);
00024 virtual ~RadiationProcess(){;}
00038 virtual double processFlux(double E,
00039 double ec,
00040 double em);
00041
00042
00054 virtual double electronNumber(double gi,
00055 double gamma_min,
00056 double gamma_max,
00057 double dr,
00058 double ComovingTime,
00059 double CoolingTime,
00060 double N0);
00074 double timeShiftForDispersion(const double time,
00075 const double E,
00076 const double distance_to_source);
00077
00091 double comovingTime(const double time,
00092 const double gamma,
00093 const double E,
00094 const double distance_to_source);
00095
00097 inline SpectObj getSpectrumObj() {return m_spectrumObj;}
00098 inline SpectObj setSpectrumObj(SpectObj spectrum_IN){m_spectrumObj=spectrum_IN;}
00099
00101 inline virtual double Umag(const double B)
00102 {
00103 return pow(B/1.0e+4,2.)/(200.0*M_PI*cst::mu0);
00104 }
00105
00106 protected:
00107 SpectObj m_spectrumObj;
00108
00109 };
00110
00111 #endif;