00001
00002
00003
00004
00008
00030 #ifndef TRAPPED_PROTON_SPECTRUM_H
00031 #define TRAPPED_PROTON_SPECTRUM_H
00032
00033 #include "flux/Spectrum.h"
00034
00035 #include "flux/Orbit.h"
00036
00037 #include <utility>
00038
00039
00040 class TrappedProtonSpectrum : public Spectrum
00041 {
00042 public:
00043 TrappedProtonSpectrum(float lat=0., float lon=0.);
00044 TrappedProtonSpectrum( const std::vector<float>& params);
00045 private:
00046 void init(float lat, float lon);
00047
00048 public:
00049 virtual double calculate_rate (double old_rate);
00050 virtual double flux() const;
00051 virtual float flux(float lat, float lon) const;
00052 virtual float flux(std::pair<double, double> coords) const;
00053 virtual float operator() (float)const;
00054 virtual const char * particleName() const;
00055 virtual std::string title() const;
00056 void setPosition ( float lat, float lon ){}
00057
00058
00059
00060 private:
00062 float m_fluxTbl[73][13];
00063 };
00064
00065 #endif // TRAPPED_PROTON_SPECTRUM_H
00066