A NucleiTree defines the whole tree of nuclei in case of evolution for a single ZAI. More...
#include <NucleiTree.hxx>
Public Member Functions | |
NucleiTree (string DecayDataFile="../data/chart.JEF3T", string MassDataFile="../data/Mass.dat", bool WithReactions=true, bool WithSpontaneousFis=true) | |
Normal constructor of a NucleiTree. More... | |
~NucleiTree () | |
Destructor. More... | |
void | ExtractZAI (ZAI *&zai, double MinHalfLife=0, int MaxRecursionDepth=10000, bool FromDecay=true) |
Extract all decay & reaction tree for a ZAI. More... | |
void | ExtractWantedZAI (ZAI *&zai, bool FromDecay=true) |
void | ClearUnUsed () |
free memory when finished More... | |
string | LongestTree () |
find the longest chain More... | |
void | DumpTree () |
Make a nuclear chart of the tree & write it to disk. More... | |
void | WriteAsciiTree (string FileName="asciitree.dat") |
Write out the tree info in ascii format. More... | |
string | PrintTreeStats () |
Write out the tree information. More... | |
int | TreeLength (ZAI *zai, int &nb) |
returns the chain length of a ZAI More... | |
void | CheckConsistency (ZAI *&zai) |
Checks for self-consistency in the tree and complains if problems exist. More... | |
void | BuildTrees () |
Build Decay & Reaction trees for evolution. More... | |
void | SetZAIMass (ZAI *zai) |
Set the Mass for zai (not evolving case) More... | |
bool | IsTreesBuilt () |
whether or not Trees are built More... | |
void | FissionProductSelection (ZAI *zai, double yield=0) |
Use for selected FP. More... | |
bool | IsWantedNuclei () |
True when wanted nuclei file is given. More... | |
Private Member Functions | |
void | FindReactions () |
find the possible nuclear reactions using ReactionList More... | |
void | FindDecay () |
find the possible decays using fDecayDataFile file More... | |
void | SetZAIFissionEnergy (ZAI *zai) |
Set the fission energy released for fissile isotopes. More... | |
void | FillZAI (string line, ZAI *zai) |
void | RenormalizeBRS (ZAI *zai, double ought_to_be) |
Renormalizes the branching ratios of the given ZAI. More... | |
string | GetDecay (string DecayModes, double &BR, int &Iso, int &StartPos) |
Returns a particular decay mode. More... | |
Private Attributes | |
string | fDecayDataFile |
File name of the chart of nuclide file. More... | |
vector< ZAI * > | fNuclei |
a vector of the whole chart (simplify fChart access) More... | |
bool | fDelete |
flag to know that a ZAI has been deleted from the chart More... | |
map< int,map< int,map< int, ZAI * > > > | fChart |
The whole Nuclei Chart from the fDecayDataFile. More... | |
int | fDecayRecursionDepth |
A measure of how far into the tree in decay recursive calls. More... | |
int | fReactionRecursionDepth |
A measure of how far into the tree in reaction recursive calls. More... | |
bool | fTreesBuilt |
whether or not Trees are built More... | |
bool | fWithReactions |
whether or not reactions links should be included (default yes) More... | |
bool | fWithSF |
whether or not the Spontaneous Fission is included (default yes) More... | |
map< int,map< int,bool > > | fWantedNuclei |
The wanted Nuclei defined in MURE::SetListOfWantedNucleiFN. More... | |
bool | fIsWantedNuclei |
True when wanted nuclei file is given. More... | |
A NucleiTree defines the whole tree of nuclei in case of evolution for a single ZAI.
The aim of this class is to construct the trees of decay and reaction daughters if evolution is needed. For Decays: An ascii file is read(written by A. Billebaud, modified by D. Heuer according to JEF3T library). Then a kind of matrix (a map) of all chart of nuclei is filled with ZAI* of each nucleus. This matrix allows decay daughters to be found immediately (i.e. without searching). For Reactions: Allowed reactions for each nucleus are read using the ReactionList class.
Note that each useful nucleus (i.e. of a real evolving composition) must call the ExtractZAI method to find its specfic nuclear tree.
TO BE NOTICE: the constructor of NucleiTree read 3 files: -one to know all possible decays for the whole chart (chart.JEF3T). -one to know if reactions are availlable (BaseSummary.dat) -one to know the mass of each ZAI (Mass.dat) This file has been made from "The 2003 Atomic Mass Evaluation" of the National Nuclear Data CenterNucDat (BNL)
NucleiTree::NucleiTree | ( | string | DecayDataFile = "../data/chart.JEF3T" , |
string | MassDataFile = "../data/Mass.dat" , |
||
bool | WithReactions = true , |
||
bool | WithSpontaneousFis = true |
||
) |
Normal constructor of a NucleiTree.
DecayDataFile | : the asscii file containing information one decay |
MassDataFile | : the asscii file containing Mass data |
WithReactions | : Include reactions into the tree |
WithSpontaneousFis | : Include Spontaneous Fission into the tree |
NucleiTree::~NucleiTree | ( | ) |
Destructor.
void NucleiTree::BuildTrees | ( | ) |
Build Decay & Reaction trees for evolution.
void NucleiTree::CheckConsistency | ( | ZAI *& | zai | ) |
Checks for self-consistency in the tree and complains if problems exist.
void NucleiTree::ClearUnUsed | ( | ) |
free memory when finished
void NucleiTree::DumpTree | ( | ) |
Make a nuclear chart of the tree & write it to disk.
void NucleiTree::ExtractWantedZAI | ( | ZAI *& | zai, |
bool | FromDecay = true |
||
) |
void NucleiTree::ExtractZAI | ( | ZAI *& | zai, |
double | MinHalfLife = 0 , |
||
int | MaxRecursionDepth = 10000 , |
||
bool | FromDecay = true |
||
) |
Extract all decay & reaction tree for a ZAI.
For a true ZAI (i.e., present in a material), only daughters with half life > MinHalfLife are considered ; if a daughter has a shorter half life, it is replaced by its daughters. Reaction tree is considered while its depth is shorter than MaxRecursionDepth.
zai | : the true ZAI (i.e., present in a material) of which the tree is wanted |
MinHalfLife | : the shortest half life to keep a daughter |
MaxRecursionDepth | : the maximum number of consecutive reactions allowed for a zai. |
FromDecay | : true if it is called from a decay branch and false from reaction branch(internal used only). |
|
private |
uses values of line to fill zai
|
private |
find the possible decays using fDecayDataFile file
|
private |
find the possible nuclear reactions using ReactionList
void NucleiTree::FissionProductSelection | ( | ZAI * | zai, |
double | yield = 0 |
||
) |
Use for selected FP.
|
private |
Returns a particular decay mode.
DecayModes | : a list of decay modes with their branching ratios and isomeric state of the Daughters. |
BR | : branching ratio of the current decay mode |
Iso | : isomeric state of the Daughter of the current decay mode. |
StartPos | : the current decay mode to extract. |
|
inline |
whether or not Trees are built
|
inline |
True when wanted nuclei file is given.
string NucleiTree::LongestTree | ( | ) |
find the longest chain
string NucleiTree::PrintTreeStats | ( | ) |
Write out the tree information.
|
private |
|
private |
Set the fission energy released for fissile isotopes.
void NucleiTree::SetZAIMass | ( | ZAI * | zai | ) |
Set the Mass for zai (not evolving case)
void NucleiTree::WriteAsciiTree | ( | string | FileName = "asciitree.dat" | ) |
Write out the tree info in ascii format.
|
private |
The whole Nuclei Chart from the fDecayDataFile.
|
private |
File name of the chart of nuclide file.
|
private |
A measure of how far into the tree in decay recursive calls.
|
private |
flag to know that a ZAI has been deleted from the chart
|
private |
True when wanted nuclei file is given.
|
private |
a vector of the whole chart (simplify fChart access)
|
private |
A measure of how far into the tree in reaction recursive calls.
|
private |
whether or not Trees are built
|
private |
The wanted Nuclei defined in MURE::SetListOfWantedNucleiFN.
|
private |
whether or not reactions links should be included (default yes)
|
private |
whether or not the Spontaneous Fission is included (default yes)