NeutronSpectrum contains a histogram of Neutron intensities. More...
#include <NeutronSpectrum.hxx>
Public Member Functions | |
NeutronSpectrum (double Emin, double Emax, int NumberOfBins, bool log=false) | |
Standard Constructor of a NeutronSpectum. More... | |
NeutronSpectrum (vector< double > LowerEnergy) | |
User input bining Constructor of a NeutronSpectum. More... | |
NeutronSpectrum (double *LowerEnergy, int NumberOfBins) | |
User input bining Constructor of a NeutronSpectum. More... | |
NeutronSpectrum (string BinningFileName) | |
File User input bining Constructor of a NeutronSpectum. More... | |
NeutronSpectrum (int NumberOfBins, double a, double b, double c) | |
Constructor of a Spectrum with binning build with this calibration law : E(Lowerbin)=a*Lowerbin*Lowerbin + b*Lowerbin + c. More... | |
NeutronSpectrum (const NeutronSpectrum &spect) | |
Copy constructor. More... | |
NeutronSpectrum * | ReadENSDF (int Z, int A, int I, double NAtoms=1) |
Read Spontaneous Fission Data and fill the Neutron Spectrum. More... | |
NeutronSpectrum * | ReadSFDATA (int Z, int A, int I, double NAtoms=1) |
NeutronSpectrum * | AddAlphaNSpectra (Material *Waste, double WasteVolume, double UO2Density=-1) |
NeutronSpectrum * | AddAlphaNSpectra (int Z, int A, int I, double NAtoms, double UO2Density=10.4) |
NeutronSpectrum * | AddAlphaNSpectra (int Z, int A, int I, double NAtoms, double *OxygenDensity, double UO2Density=10.4) |
set number of bin for (alpha,n) reactions. More... | |
void | SetAlphaNumberOfBins (int nbins) |
set number of bin for (alpha,n) reactions. More... | |
void | SetAlpha_eVPerBin (double eV_bin) |
double | CalculateSFSpectra (double Param_a, double Param_b, double Energy) |
With a Watt fission spectrum. More... | |
NeutronSpectrum * | BuildAlphaNSpectra (AlphaSpectrum *AS, double *OxygenDensity, double UO2Density) |
Public Member Functions inherited from Spectrum | |
Spectrum (double Emin, double Emax, int NumberOfbins, bool log=false) | |
Standard Constructor of a Spectrum. More... | |
Spectrum (vector< double > LowerEnergy, bool check=true) | |
User input bining Constructor of a Spectrum. More... | |
Spectrum (double *LowerEnergy, int NumberOfBins, bool check=true) | |
User input bining Constructor of a Spectrum. More... | |
Spectrum (string BinningFileName, bool check=true) | |
File User input bining Constructor of a Spectrum. More... | |
Spectrum (int NumberOfBins, double a, double b, double c, bool check=true) | |
Constructor of a Spectrum with binning build with this calibration law : E(Lowerbin)=a*Lowerbin*Lowerbin + b*Lowerbin + c. More... | |
Spectrum (const Spectrum &spect) | |
Copy constructor. More... | |
~Spectrum () | |
destructor More... | |
void | SetZ (int Z) |
Set Z of the mother nucleus. More... | |
void | SetA (int A) |
Set A of the mother nucleus. More... | |
void | SetName (string Name) |
Set the NeutronSpectrum name. More... | |
void | SetNumberOfbins (int nbins) |
Set the number of bins. More... | |
void | SetBin (int i, double intensity) |
Set the intensity value of bin i. More... | |
int | GetZ () |
Return the Z of the mother of the nuclei which emit Neutron. More... | |
int | GetA () |
Return the A of the mother of the nuclei which emit Neutron. More... | |
string | GetName () |
Return the NeutronSpectrum's isotope name. More... | |
double | GetBin (int i) |
Return the Intensity at bin i. More... | |
double * | GetBin () |
Get the Intensity vector. More... | |
double * | GetLowerEnergy () |
Get the Energy vector. More... | |
double | GetLowerEnergy (int i) |
Return the lower energy bound of the bin i. More... | |
double | GetEnergyBinWidth (int i) |
Return the energy width of the bin i ie fLowerEnergy[i+1]-fLowerEnergy[i]. More... | |
double | GetMiddleEnergy (int i) |
Return the centered energy of the bin i. More... | |
int | GetBinNumber (double Energy) |
Return the Bin number corresponding on the Energy. More... | |
int | GetNumberOfbins () |
Return the number of bins. More... | |
bool | IsLog () |
True if the binning is logaritmic. More... | |
bool | IsAlpha () |
True if the spectrum is an AlphaSpectrum. More... | |
bool | IsNeutron () |
True if the spectrum is a NeutronSpectrum. More... | |
bool | IsGamma () |
True if the spectrum is a GammaSpectrum. More... | |
bool | IsBeta () |
True if the spectrum is a BetaSpectrum. More... | |
int | GetParticleType () |
get the particle type of this spectrum 1=n 2=g 3=e- More... | |
bool | GotTheSameBinning (Spectrum *aSpectrum) |
True if this and aSpectrum have the same energy binning. More... | |
bool | IsEmpty () |
True if all intensities are 0. More... | |
bool | IsTheSameSpectrum (Spectrum *SameOrNot) |
True if two spectra are completly identical. More... | |
void | Initialize () |
Set all Intensities to 0. More... | |
void | CheckBin () |
Check if Energy definition is correct (monotically increasing) More... | |
void | AddEnergy (double Energy, double Intensity) |
Add Intensity at the bin corresponding to Energy. More... | |
void | Contract (int ContractionFactor) |
Contract the Spectrum 's binning by a factor Contractionfactor. More... | |
double | TotalActivity () |
void | Fill (Material *material, double volume) |
Fill a Spectrum for a material. More... | |
void | FillFromFile (string filename) |
void | Dump (string filename="Spectrum.dat", bool WithEnergies=false) |
Dump the Neutron Spectrum histogram. More... | |
void | Normalize (double Multiplicateur) |
multiply Intensity by Multiplicateur More... | |
void | AddSpectrum (Spectrum *aSpectrum) |
Add aSpectrum to the current one. More... | |
void | RemoveSpectrum (Spectrum *aSpectrum) |
Remove aSpectrum to the current one. More... | |
Spectrum * | NewSpectrumNormalized (Spectrum *UnNormalized, double Norm) |
multiply a UnNormalized spectrum by Norm and put it in a new NeutronSpectrum More... | |
Spectrum * | NewSpectrumNormalized2 (Spectrum *UnNormalized, double Norm) |
presque pareil mais pas tout a fait (BBBBBUUUUUG) More... | |
Spectrum * | ConvertRayToGaussian (Spectrum *Spect_Raie, double FWHM) |
Convert a spectrum of discret rays in to several gaussian of the same Full width at half maximum (FWHM) More... | |
Private Member Functions | |
double | CalculateNeutronEnergy (string MinOrMax, int level, int TargetNumber, double EnergyAlpha) |
double | CalculateStoppingPower (double Energy, double UO2Density) |
Calculates alpha stopping power @ Energy in UOx. More... | |
double | FindSigmaAlphaN (int level, int TargetNumber, double Energy) |
double | ProductNuclideLevelBranchingFraction (int level, int TargetNumber, double Energy) |
double | LevelBranchingFraction (int level, int TargetNumber, double Energy) |
Find XS (alpha,n) file. More... | |
string | FindXSFile (int level, int TargetNumber) |
Retrun the fraction of (NeutronEmax-NeutronEmin) for a energy bin. More... | |
double | EnergyRangeFraction (double NeutronEmin, double NeutronEmax, double LowerBinEnergyBound, double UpperBinEnergyBound) |
void | ExtractDataFromLine (string Line, Material *TheParent, double NAtoms) |
Extract Energy and Intensity from ENSDF file. More... | |
Private Attributes | |
bool | fAllowToAdd |
Allow a given Neutron from B-N to be included in the spectrum. More... | |
double | fDecayConst |
Decay constant. More... | |
double | fRelativeIntensity |
Relative Intensity of beta. More... | |
double | fBranchingRatio |
Branching Ratio. More... | |
double | fEofDecayLevel |
double | fEnergy |
Neutron Energy. More... | |
double | fIntensity |
Intensity. More... | |
bool | fIsomStateIsOk |
Static Private Attributes | |
static AlphaNTabs * | fTabs =0 |
Array for (alpha,n) reactions: the same for all NeutronSpectrum. More... | |
static int | fAlphaNumberOfBins =8000 |
bin number of the fTabs More... | |
static double | fAlpha_eVPerBin =1e3 |
calibration for the fTabs More... | |
Additional Inherited Members | |
Protected Member Functions inherited from Spectrum | |
void | ElementSymbol (int Zd, char &Z1, char &Z2) |
Convert the Z of a nucleus in its symbol. More... | |
void | CreateBins (double EnergyMin, double EnergyMax, int NumberOfbins) |
generates the bins More... | |
void | CreateBins (vector< double > LowerEnergy) |
generates the bins More... | |
void | CreateBins (double *LowerEnergy) |
generates the bins More... | |
bool | IsDouble (const std::string &s) |
true is a string can be converted in a double More... | |
void | ReadENDSFFile (int Adaughter, vector< string > &Buffer, int &NumOfLine) |
Read each line of the file and store them in buffer. More... | |
bool | FindFirstLinesOfDecayModeCard (vector< string > const &Buffer, char Z1, char Z2, vector< int > &BeginRecordLine, string DecayMode, string DecayModeBis="") |
Protected Attributes inherited from Spectrum | |
bool | fIsLog |
true for Log bining More... | |
int | fNumberOfbins |
Total number of bins. More... | |
double * | fHistogram |
The histogram. More... | |
double * | fLowerEnergy |
array of lower bounds of each bin (except the last value) More... | |
int | fZ |
Z of the mother nucleus. More... | |
int | fA |
A of the mother nucleus. More... | |
string | fName |
isotope Name of the neutron spectrum More... | |
bool | fIsAlpha |
true for Alpha Spectrum More... | |
bool | fIsBeta |
true for Beta Spectrum More... | |
bool | fIsGamma |
true for Gamma Spectrum More... | |
bool | fIsNeutron |
true for neutron Spectrum More... | |
NeutronSpectrum contains a histogram of Neutron intensities.
The aim of this class is to provide a Neutron spectrum object that is linked to the Spontaneous Fission, the (alpha,n) process & the Beta-N decay. For (alpha,n), only oxygen O-17 and O-18 are taken into account
NeutronSpectrum::NeutronSpectrum | ( | double | Emin, |
double | Emax, | ||
int | NumberOfBins, | ||
bool | log = false |
||
) |
Standard Constructor of a NeutronSpectum.
Emin | : Lower Energy bound of the Spectrum |
Emax | : Upper Energy bound of the Spectrum |
NumberOfBins | : Number of bins |
log | : true if logaritmic binning is wanted (default=false) |
This constructor creates the Energy binnig automatically. The binning is constant for linear bins and with constant log step for log bins
NeutronSpectrum::NeutronSpectrum | ( | vector< double > | LowerEnergy | ) |
User input bining Constructor of a NeutronSpectum.
LowerEnergy | : Lower energy bounds of each bin vector + upper energy bound of the last bin. |
Usefull for non constant binning. Energy range of bin number i is :fLowerEnergy[i] <= Energy < fLowerEnergy[i+1]
NeutronSpectrum::NeutronSpectrum | ( | double * | LowerEnergy, |
int | NumberOfBins | ||
) |
User input bining Constructor of a NeutronSpectum.
LowerEnergy | : Lower energy bounds of each bin array + upper energy bound of the last bin. |
NumberOfBins | : Number of Lower energy bounds of each bin (the LowerEnergy array dim is thus NumberOfBins+1 |
Usefull for non constant binning. Energy range of bin number i is :fLowerEnergy[i] <= Energy < fLowerEnergy[i+1]
NeutronSpectrum::NeutronSpectrum | ( | string | BinningFileName | ) |
File User input bining Constructor of a NeutronSpectum.
BinningFileName | : The binning file name containing the lower eenrgy bounds of bins. |
Usefull for non constant binning. The file must start with N, the number of bins. Then, follow the lower bounds of each bins (N real values) and then the upper bound of the last energy bin (the (N+1) value). Thus the file must contains N+2 line for N lower bin bounds.
NeutronSpectrum::NeutronSpectrum | ( | int | NumberOfBins, |
double | a, | ||
double | b, | ||
double | c | ||
) |
Constructor of a Spectrum with binning build with this calibration law : E(Lowerbin)=a*Lowerbin*Lowerbin + b*Lowerbin + c.
NumberOfBins | : Number of Lower energy bounds of each bin (the LowerEnergy array dim is thus NumberOfBins+1 |
a | : first coefficient of the calibration law (eV) |
b | : second coefficient of the calibration law (eV) |
c | : third coefficient of the calibration law (eV) |
Usefull for experimental spectra
NeutronSpectrum::NeutronSpectrum | ( | const NeutronSpectrum & | spect | ) |
Copy constructor.
Read ENSDF Data and fill the Neutron Spectrum.
NeutronSpectrum * NeutronSpectrum::AddAlphaNSpectra | ( | Material * | Waste, |
double | WasteVolume, | ||
double | UO2Density = -1 |
||
) |
NeutronSpectrum * NeutronSpectrum::AddAlphaNSpectra | ( | int | Z, |
int | A, | ||
int | I, | ||
double | NAtoms, | ||
double | UO2Density = 10.4 |
||
) |
NeutronSpectrum * NeutronSpectrum::AddAlphaNSpectra | ( | int | Z, |
int | A, | ||
int | I, | ||
double | NAtoms, | ||
double * | OxygenDensity, | ||
double | UO2Density = 10.4 |
||
) |
set number of bin for (alpha,n) reactions.
NeutronSpectrum * NeutronSpectrum::BuildAlphaNSpectra | ( | AlphaSpectrum * | AS, |
double * | OxygenDensity, | ||
double | UO2Density | ||
) |
Only alpha rays with an intensity > 0.1% are taken into account
AS | : an (alpha,n) spectrum |
OxygenDensity | : array of oxygen densities (O-17 & O-18) |
UO2Density | : density of UOx slowingdown media |
|
private |
double NeutronSpectrum::CalculateSFSpectra | ( | double | Param_a, |
double | Param_b, | ||
double | Energy | ||
) |
With a Watt fission spectrum.
Build (alpha,n) Spectra.
|
private |
Calculates alpha stopping power @ Energy in UOx.
|
private |
NeutronEmin | : min energy of the neutron for a given alpha, target and level |
NeutronEmax | : max energy of the neutron for a given alpha, target and level |
LowerBinEnergyBound | : lower energy bound of a given neutron spectrum bin |
UpperBinEnergyBound | : upper energy bound of a given neutron spectrum bin |
|
private |
Extract Energy and Intensity from ENSDF file.
|
private |
|
private |
Retrun the fraction of (NeutronEmax-NeutronEmin) for a energy bin.
Find for Target(alpha,n)X reaction the total XS file for a given target leading to X in an excited state "level"
level | : the state level of X |
TargetNumber | : 0 for O-17 and 1 for O-18 |
|
private |
Find XS (alpha,n) file.
|
private |
NeutronSpectrum * NeutronSpectrum::ReadENSDF | ( | int | Z, |
int | A, | ||
int | I, | ||
double | NAtoms = 1 |
||
) |
Read Spontaneous Fission Data and fill the Neutron Spectrum.
Z | : Z of the mother nucleus |
A | : A of the mother nucleus |
I | : isomeric state of the mother nucleus |
NAtoms | : the number of atoms of the mother nucleus Search for Neutron from B-N decay (only 6 nuclei in ENSDF in 2012) If you want to know more about the ENSDF format have a look @ |
NeutronSpectrum * NeutronSpectrum::ReadSFDATA | ( | int | Z, |
int | A, | ||
int | I, | ||
double | NAtoms = 1 |
||
) |
Ref: "A code for calculating (alpha,n), spontaneous fission, and delayed neutron sources and spectra." W.B. WILSON,R.T. Perry,W.S.Charlton,T.A.Parish, Los Alamos.
Z | : Z of the mother nucleus |
A | : A of the mother nucleus |
I | : isomeric state of the mother nucleus |
NAtoms | : the number of atoms of the mother nucleus |
Fill the Histogram
|
inline |
This method must be called before any call to NeutronSpectrum::AddAlphaNSpectra because (alpha,n) reactions information are stored statically (1 objet for all NeutronSpectrum)
eV_bin | : bin calibration (i.e. eV per bin) for (alpha,n) Spectra (fTabs array) [default=40keV/bin] |
|
inline |
set number of bin for (alpha,n) reactions.
This method must be called before any call to NeutronSpectrum::AddAlphaNSpectra because (alpha,n) reactions information are stored statically (1 objet for all NeutronSpectrum)
nbins | : number of bins for (alpha,n) Spectra (fTabs array)[default=200 bins] |
|
private |
Allow a given Neutron from B-N to be included in the spectrum.
|
staticprivate |
calibration for the fTabs
|
staticprivate |
bin number of the fTabs
|
private |
Branching Ratio.
|
private |
Decay constant.
|
private |
Neutron Energy.
|
private |
|
private |
Intensity.
|
private |
|
private |
Relative Intensity of beta.
|
staticprivate |
Array for (alpha,n) reactions: the same for all NeutronSpectrum.