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=k.Isotope, 00038 int newRmaxgen=k.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 static ReactorConstants k; 00106 00107 int Isotope; 00108 int Rmaxgen; 00109 00110 static const int Sdim = 1121; // entries in cf252_neutron_spectrum.txt 00111 float neutronEnergy[Sdim]; 00112 float neutronProb[Sdim]; 00113 00116 int Nsources; 00117 00118 double R[k.Ndim],zR[k.Ndim],phiR[k.Ndim]; 00119 00120 static const int maxNeutron = 8; 00121 static const int maxGamma = 25; 00122 int Nneutron[k.Ndim], Ngamma[k.Ndim]; 00123 00128 float neutronE[k.Ndim][maxNeutron]; 00129 float Tneutron[k.Ndim][maxNeutron]; 00130 00135 float gammaE[k.Ndim][maxGamma]; 00136 float Tgamma[k.Ndim][maxGamma]; 00137 }; 00138 #endif