MURE
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
Spectrum Class Reference

Base class to define spectra. More...

#include <Spectrum.hxx>

Inheritance diagram for Spectrum:
AlphaSpectrum BetaSpectrum GammaSpectrum NeutronSpectrum

Public Member Functions

 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...
 
SpectrumNewSpectrumNormalized (Spectrum *UnNormalized, double Norm)
 multiply a UnNormalized spectrum by Norm and put it in a new NeutronSpectrum More...
 
SpectrumNewSpectrumNormalized2 (Spectrum *UnNormalized, double Norm)
 presque pareil mais pas tout a fait (BBBBBUUUUUG) More...
 
SpectrumConvertRayToGaussian (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...
 

Protected Member Functions

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

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...
 

Detailed Description

Base class to define spectra.

Spectra available are Gamma spectrum, alpha spectrum , Neutron Spectrum and Beta Spectrum

See Also
GammaSpectrum
AlphaSpectrum
BetaSpectrum
NeutronSpectrum
Author
BLG
Version
1.0

Constructor & Destructor Documentation

Spectrum::Spectrum ( double  Emin,
double  Emax,
int  NumberOfbins,
bool  log = false 
)

Standard Constructor of a Spectrum.

Parameters
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 binsNormal Constructor.

Spectrum::Spectrum ( vector< double >  LowerEnergy,
bool  check = true 
)

User input bining Constructor of a Spectrum.

Parameters
LowerEnergy: Lower energy bounds of each bin vector + upper energy bound of the last bin.
check: if true verify that bins are ordered

Usefull for non constant binning. Energy range of bin number i is :fLowerEnergy[i] <= Energy < fLowerEnergy[i+1]

Spectrum::Spectrum ( double *  LowerEnergy,
int  NumberOfBins,
bool  check = true 
)

User input bining Constructor of a Spectrum.

Parameters
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
check: if true verify that bins are ordered

Usefull for non constant binning. Energy range of bin number i is :fLowerEnergy[i] <= Energy < fLowerEnergy[i+1]Make your own binning.

Spectrum::Spectrum ( string  BinningFileName,
bool  check = true 
)

File User input bining Constructor of a Spectrum.

Parameters
BinningFileName: The binning file name containing the lower eenrgy bounds of bins.
check: if true verify that bins are ordered

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.

Spectrum::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.

Parameters
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)
check: if true verify that bins are ordered

Usefull for experimental spectra

Spectrum::Spectrum ( const Spectrum spect)

Copy constructor.

Spectrum::~Spectrum ( )

destructor

Member Function Documentation

void Spectrum::AddEnergy ( double  Energy,
double  Intensity 
)

Add Intensity at the bin corresponding to Energy.

void Spectrum::AddSpectrum ( Spectrum aSpectrum)

Add aSpectrum to the current one.

void Spectrum::CheckBin ( )

Check if Energy definition is correct (monotically increasing)

void Spectrum::Contract ( int  ContractionFactor)

Contract the Spectrum 's binning by a factor Contractionfactor.

Spectrum * 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)

void Spectrum::CreateBins ( double  EnergyMin,
double  EnergyMax,
int  NumberOfbins 
)
protected

generates the bins

void Spectrum::CreateBins ( vector< double >  LowerEnergy)
protected

generates the bins

void Spectrum::CreateBins ( double *  LowerEnergy)
protected

generates the bins

void Spectrum::Dump ( string  filename = "Spectrum.dat",
bool  WithEnergies = false 
)

Dump the Neutron Spectrum histogram.

void Spectrum::ElementSymbol ( int  Zd,
char &  Z1,
char &  Z2 
)
protected

Convert the Z of a nucleus in its symbol.

void Spectrum::Fill ( Material material,
double  volume 
)

Fill a Spectrum for a material.

Parameters
material: the Material used to fill the Spectrum.
volume: the volume of the sample containing the material
void Spectrum::FillFromFile ( string  filename)
bool Spectrum::FindFirstLinesOfDecayModeCard ( vector< string > const &  Buffer,
char  Z1,
char  Z2,
vector< int > &  BeginRecordLine,
string  DecayMode,
string  DecayModeBis = "" 
)
protected
int Spectrum::GetA ( )
inline

Return the A of the mother of the nuclei which emit Neutron.

double Spectrum::GetBin ( int  i)
inline

Return the Intensity at bin i.

double* Spectrum::GetBin ( )
inline

Get the Intensity vector.

int Spectrum::GetBinNumber ( double  Energy)

Return the Bin number corresponding on the Energy.

double Spectrum::GetEnergyBinWidth ( int  i)

Return the energy width of the bin i ie fLowerEnergy[i+1]-fLowerEnergy[i].

double* Spectrum::GetLowerEnergy ( )
inline

Get the Energy vector.

double Spectrum::GetLowerEnergy ( int  i)
inline

Return the lower energy bound of the bin i.

double Spectrum::GetMiddleEnergy ( int  i)

Return the centered energy of the bin i.

string Spectrum::GetName ( )
inline

Return the NeutronSpectrum's isotope name.

int Spectrum::GetNumberOfbins ( )
inline

Return the number of bins.

int Spectrum::GetParticleType ( )

get the particle type of this spectrum 1=n 2=g 3=e-

int Spectrum::GetZ ( )
inline

Return the Z of the mother of the nuclei which emit Neutron.

bool Spectrum::GotTheSameBinning ( Spectrum aSpectrum)

True if this and aSpectrum have the same energy binning.

void Spectrum::Initialize ( )

Set all Intensities to 0.

bool Spectrum::IsAlpha ( )
inline

True if the spectrum is an AlphaSpectrum.

bool Spectrum::IsBeta ( )
inline

True if the spectrum is a BetaSpectrum.

bool Spectrum::IsDouble ( const std::string &  s)
protected

true is a string can be converted in a double

bool Spectrum::IsEmpty ( )

True if all intensities are 0.

bool Spectrum::IsGamma ( )
inline

True if the spectrum is a GammaSpectrum.

bool Spectrum::IsLog ( )
inline

True if the binning is logaritmic.

bool Spectrum::IsNeutron ( )
inline

True if the spectrum is a NeutronSpectrum.

bool Spectrum::IsTheSameSpectrum ( Spectrum SameOrNot)

True if two spectra are completly identical.

Spectrum * Spectrum::NewSpectrumNormalized ( Spectrum UnNormalized,
double  Norm 
)

multiply a UnNormalized spectrum by Norm and put it in a new NeutronSpectrum

Spectrum * Spectrum::NewSpectrumNormalized2 ( Spectrum UnNormalized,
double  Norm 
)

presque pareil mais pas tout a fait (BBBBBUUUUUG)

void Spectrum::Normalize ( double  Multiplicateur)

multiply Intensity by Multiplicateur

void Spectrum::ReadENDSFFile ( int  Adaughter,
vector< string > &  Buffer,
int &  NumOfLine 
)
protected

Read each line of the file and store them in buffer.

void Spectrum::RemoveSpectrum ( Spectrum aSpectrum)

Remove aSpectrum to the current one.

void Spectrum::SetA ( int  A)
inline

Set A of the mother nucleus.

void Spectrum::SetBin ( int  i,
double  intensity 
)
inline

Set the intensity value of bin i.

void Spectrum::SetName ( string  Name)
inline

Set the NeutronSpectrum name.

void Spectrum::SetNumberOfbins ( int  nbins)
inline

Set the number of bins.

void Spectrum::SetZ ( int  Z)
inline

Set Z of the mother nucleus.

double Spectrum::TotalActivity ( )

Sum of particules emmited at all energies

Member Data Documentation

int Spectrum::fA
protected

A of the mother nucleus.

double* Spectrum::fHistogram
protected

The histogram.

bool Spectrum::fIsAlpha
protected

true for Alpha Spectrum

bool Spectrum::fIsBeta
protected

true for Beta Spectrum

bool Spectrum::fIsGamma
protected

true for Gamma Spectrum

bool Spectrum::fIsLog
protected

true for Log bining

bool Spectrum::fIsNeutron
protected

true for neutron Spectrum

double* Spectrum::fLowerEnergy
protected

array of lower bounds of each bin (except the last value)

string Spectrum::fName
protected

isotope Name of the neutron spectrum

int Spectrum::fNumberOfbins
protected

Total number of bins.

int Spectrum::fZ
protected

Z of the mother nucleus.


The documentation for this class was generated from the following files:

MURE Project, documentation generated by Doxygen 1.8.5 - Mon Nov 17 2014