00001
00006 #ifndef MYCFSOURCE_HH
00007 #define MYCFSOURCE_HH
00008 #include <math.h>
00009 #include <iostream.h>
00010 #include "ReactorConstants.hh"
00011
00026 class MyCfSource{
00027
00028 public:
00029
00037 MyCfSource(int newIsotope=ISOTOPE,
00038 double newRmaxgen=RMAXGEN);
00039
00041 ~MyCfSource();
00042
00044 MyCfSource(const MyCfSource& CfSource);
00045
00047 MyCfSource& operator=(const MyCfSource& rhs);
00048
00051 static float Cf252NeutronSpectrum(const float& x);
00052
00055 static float Cf252GammaMultiplicity(const int& x);
00056
00059 static float Cf252GammaMultiplicityFit(const float& x);
00060
00063 static float Cf252GammaSpectrum(const float& x);
00064
00066 int GetNumCfSources() const {return Nsources;}
00067
00069 int GetNumNeutron(int& n) const {return Nneutron[n];}
00070
00072 int GetNumGamma(int& n) const {return Ngamma[n];}
00073
00078 double GetCfNeutronEnergy(int& n,int& nn) const {return neutronE[n][nn];}
00079 double GetCfNeutronTime(int& n,int& nn) const {return Tneutron[n][nn];}
00080
00085 double GetCfGammaEnergy(int& n,int& nn) const {return gammaE[n][nn];}
00086 double GetCfGammaTime(int& n,int& nn) const {return Tgamma[n][nn];}
00087
00091 double GetCfVertexR(int& n) const {return R[n];}
00092
00096 double GetCfVertexCosTheta(int& n) const {return zR[n];}
00097
00101 double GetCfVertexPhi(int& n) const {return phiR[n];}
00102
00103 private:
00104
00105 int Isotope;
00106 double Rmaxgen;
00107
00108 static const int Sdim = 1121;
00109 float neutronEnergy[Sdim];
00110 float neutronProb[Sdim];
00111
00114 int Nsources;
00115
00116 double R[Ndim],zR[Ndim],phiR[Ndim];
00117
00118 static const int maxNeutron = 8;
00119 static const int maxGamma = 25;
00120 int Nneutron[Ndim], Ngamma[Ndim];
00121
00126 float neutronE[Ndim][maxNeutron];
00127 float Tneutron[Ndim][maxNeutron];
00128
00133 float gammaE[Ndim][maxGamma];
00134 float Tgamma[Ndim][maxGamma];
00135 };
00136 #endif