00001
00002 #ifndef CrProtonPrimary_H
00003 #define CrProtonPrimary_H
00004
00005 #include <utility>
00006 #include <string>
00007 #include "CrSpectrum.h"
00008
00009
00010 class HepRandomEngine;
00011
00012
00015
00016
00017 class CrProtonPrimary : public CrSpectrum
00018 {
00019 public:
00020 CrProtonPrimary();
00021 ~CrProtonPrimary();
00022
00023 std::pair<double,double> dir(double energy, HepRandomEngine* engine) const;
00024 double energySrc(HepRandomEngine* engine) const;
00027 double flux() const;
00028 double solidAngle() const;
00029 const char* particleName() const;
00030
00031
00032
00033
00035
00036 double calculate_rate(double old_rate);
00037 float flux(float latitude, float longitude) const;
00038 float flux(std::pair<double,double> coords) const;
00039 std::string title() const;
00041 float fraction(float energy);
00042 std::pair<float,float> dir(float energy) const;
00043 };
00044 #endif // CrProtonPrimary_H
00045