00001 #if !defined(AFX_ISPECTRUM_H__9D00078B_7121_473C_813A_827B2F4126A5__INCLUDED_)
00002 #define AFX_ISPECTRUM_H__9D00078B_7121_473C_813A_827B2F4126A5__INCLUDED_
00003
00045 #include <string>
00046 #include <utility>
00047
00048
00049 class ISpectrum
00050 {
00051
00052 public:
00053
00055 virtual const char * particleName()const=0;
00056
00060 virtual double flux (double time ) const=0;
00061
00068 virtual double solidAngle()const{return 1.0;}
00069
00071 virtual std::string title()const=0;
00072
00079 virtual double interval (double time)=0;
00080
00082 virtual double energy( double time=0)=0;
00083
00089 virtual std::pair<double,double> dir(double energy)=0;
00090
00091 };
00092
00093
00094 #endif // !defined(AFX_ISPECTRUM_H__9D00078B_7121_473C_813A_827B2F4126A5__INCLUDED_)