00001
00012 #include "GRBConstants.h"
00013
00014 #ifndef GRBSHELL_H
00015 #define GRBSHELL_H 1
00016
00017 class GRBShell
00018 {
00019 public:
00020
00034 GRBShell(double gamma, double mass,
00035 double thickness, double radius,double distance = 0.0,std::string type = "jet");
00036
00037 ~GRBShell() { }
00039 GRBShell operator+(GRBShell Sh2);
00040
00041 inline double getMass() {return m_mass;}
00042
00043 inline double getGamma() {return m_gamma;}
00044
00045 inline double getThickness() {return m_thickness;}
00046
00047 inline double getRadius() {return m_radius;}
00048
00049 inline double getDistance() {return m_distance;}
00050
00051 inline double getBeta() {return beta(m_gamma);}
00052
00053 inline double getEint() {return m_eint;}
00059 inline double getVolCom()
00060 {
00061 return m_volume;
00062 }
00063
00064
00065
00066 inline void setMass(double value) {m_mass = value;}
00067
00068 inline void setGamma(double value) {m_gamma = value;}
00069
00070 inline void setThickness(double value) {m_thickness = value;}
00071
00072 inline void setRadius(double value) {m_radius = value;}
00073
00074 inline void setDistance(double value) {m_distance = value;}
00075
00076 inline void setEint(double value) {m_eint = value;}
00077
00078
00079
00083 double beta(const double gamma);
00084
00093 void evolve(double time);
00094
00095 private:
00096
00097 double m_gamma;
00098 double m_mass;
00099 double m_thickness;
00100 double m_radius;
00101 double m_distance;
00102 double m_volume;
00103 double m_eint;
00104 };
00105
00106 #endif
00107