00001 #include "KRLReactorFlux.hh"
00002
00003
00004
00005 KRLReactorFlux::KRLReactorFlux() {
00006 fMethod = gkVogelFit;
00007 fMethod99Constant = 3;
00008
00009 fVogelCoeff235U[0] = 0.870;
00010 fVogelCoeff235U[1] = -0.160;
00011 fVogelCoeff235U[2] = -0.0910;
00012
00013 fVogelCoeff239Pu[0] = 0.896;
00014 fVogelCoeff239Pu[1] = -0.239;
00015 fVogelCoeff239Pu[2] = -0.0981;
00016
00017 fVogelCoeff238U[0] = 0.976;
00018 fVogelCoeff238U[1] = -0.162;
00019 fVogelCoeff238U[2] = -0.079;
00020
00021 fVogelCoeff241Pu[0] = 0.793;
00022 fVogelCoeff241Pu[1] = -0.080;
00023 fVogelCoeff241Pu[2] = -0.1085;
00024 fFraction235U = 0.6;
00025 fFraction239Pu = 0.3;
00026 fFraction238U = fFraction241Pu = 0.05;
00027
00028
00029 }
00030
00031
00032
00033 Double_t KRLReactorFlux::Flux(Double_t aEnu) {
00034 Double_t answer;
00035 switch (fMethod) {
00036 case -99:
00037 answer = fluxMethod99(aEnu);
00038 break;
00039 case (gkVogelFit):
00040 answer = fluxVogelFit(aEnu);
00041
00042 break;
00043 default:
00044 answer = 0;
00045
00046 }
00047 return answer;
00048 }
00049
00050 Double_t KRLReactorFlux::fluxMethod99(Double_t aEnuMeV) {
00051 Double_t answer = TMath::Exp(-aEnuMeV/fMethod99Constant) / fMethod99Constant;
00052 return answer;
00053 }
00054
00055
00056 Double_t KRLReactorFlux::fluxVogelFit(Double_t aEnu) {
00057
00058
00059 Double_t u235 = fVogelCoeff235U[0] + fVogelCoeff235U[1]* aEnu + fVogelCoeff235U[2]*aEnu*aEnu;
00060 u235 = TMath::Exp(u235);
00061 Double_t pu239 = fVogelCoeff239Pu[0] + fVogelCoeff239Pu[1]* aEnu + fVogelCoeff239Pu[2]*aEnu*aEnu;
00062 pu239 = TMath::Exp(pu239);
00063
00064 Double_t u238 = fVogelCoeff238U[0] + fVogelCoeff238U[1]* aEnu + fVogelCoeff238U[2]*aEnu*aEnu;
00065 u238 = TMath::Exp(u238);
00066 Double_t pu241 = fVogelCoeff241Pu[0] + fVogelCoeff241Pu[1]* aEnu + fVogelCoeff241Pu[2]*aEnu*aEnu;
00067 pu241 = TMath::Exp(pu241);
00068
00069
00070 Double_t answer;
00071 answer = u235*fFraction235U + pu239*fFraction239Pu + u238*fFraction238U + pu241*fFraction241Pu;
00072
00073
00074
00075
00076 answer *= 3.125;
00077
00078 answer *= 3.156;
00079
00080 return answer;
00081 }