| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

KRLReactorFlux.cc

Go to the documentation of this file.
00001 #include "KRLReactorFlux.hh"
00002 
00003 //KRLReactorFlux* gReactorFlux;
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 // answer in units of 10^26/GWatt/year
00056 Double_t KRLReactorFlux::fluxVogelFit(Double_t aEnu) {
00057 
00058   // Petr's flux's are normalized per fission. 
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   // add the weighted sum of the terms.
00070   Double_t answer;
00071   answer = u235*fFraction235U + pu239*fFraction239Pu + u238*fFraction238U + pu241*fFraction241Pu;
00072 
00073 
00074   // there are 3.125E19 fissions/second/GWatt
00075   // see, e.g., http://www.nuc.berkeley.edu/dept/Courses/NE-150/Criticality.pdf
00076   answer *= 3.125;
00077   // there are about 3.156E7 seconds in a year
00078   answer *= 3.156;
00079   
00080   return answer;
00081 }
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Mon Apr 11 21:05:44 2011 for InvBetaDecay by doxygen 1.4.7