00001
00011 #include <vector>
00012 #include"GRBConstants.h"
00013 #include "SpectObj.h"
00014 #include "GRBShock.h"
00015
00016 #include "RadiationProcess.h"
00017
00018 #ifndef GRBSYNCHROTRON_H
00019 #define GRBSYNCHROTRON_H 1
00020
00021 class GRBSynchrotron : virtual public RadiationProcess
00022 {
00023 public:
00024 GRBSynchrotron();
00025 GRBSynchrotron(SpectObj spectrumObj);
00026
00027 ~GRBSynchrotron(){;}
00035 void load(const GRBShock *Shock,
00036 const double time = 0.0,
00037 const double angle = 0.0,
00038 const double distance_to_source = 0.0);
00041 void load(const double time = 0.0,
00042 const double angle = 0.0,
00043 const double distance_to_source = 0.0,
00044 const double GAMMAF = 500.,
00045 const double B = 1.0e+6,
00046 const double N0 = 1.0e+50,
00047 const double gamma_min = 1.,
00048 const double gamma_max = 1.0e+10,
00049 const double Vol = 1.0e+40,
00050 const double dr = 1.0e+10);
00051
00062 double SynchrotronFunction(double esyn, double energy);
00063 private:
00064 };
00065 #endif
00066
00067