00001
00002
00003 #ifndef CrSpectrum_H
00004 #define CrSpectrum_H
00005
00006 #ifndef BALLOONSIM
00007 #define BALLOONSIM
00008 #endif
00009
00010
00014
00015
00016 #include <utility>
00017 #include "flux/Spectrum.h"
00018 class HepRandomEngine;
00019
00020 class CrSpectrum : public Spectrum
00021 {
00022 public:
00023 CrSpectrum();
00024 ~CrSpectrum();
00025
00027 void setTime(double time);
00029 void setPosition(double latitude, double longitude, double time);
00030 void setPosition(double latitude, double longitude);
00032 double longitude() const;
00034 double latitude() const;
00036 double geomagneticLongitude() const;
00038 double geomagneticLatitude() const;
00040 double cutOffRigidity() const;
00042 double solarWindPotential() const;
00043
00044
00045 #ifdef BALLOONSIM
00046 virtual double energySrc(HepRandomEngine* engine) const = 0;
00047 virtual std::pair<double,double> dir(double energy, HepRandomEngine* engine)const = 0;
00048 #endif // BALLOONSIM
00049
00050 protected:
00052 double m_time;
00054 double m_geomagneticLatitude;
00056 double m_geomagneticLongitude;
00058 double m_cutOffRigidity;
00060 double m_solarWindPotential;
00061 };
00062
00063 #endif // CrSpectrum_H