MURE
|
A NucleiTree defines the whole tree of nuclei in case of evolution for a single ZAI. More...
#include <NucleiTree.hxx>
Public Member Functions | |
NucleiTree (bool WithReactions=true, bool WithSpontaneousFis=true) | |
Normal constructor of a NucleiTree. | |
~NucleiTree () | |
Destructor. | |
void | ExtractZAI (ZAI *&zai, double MinHalfLife=0, int MaxRecursionDepth=10000, bool FromDecay=true) |
Extract all decay & reaction tree for a ZAI. | |
void | ExtractWantedZAI (ZAI *zai, bool FromDecay=true) |
bool | IsZAIInTree (ZAI *zai) |
bool | IsZAIInTree (int Z, int A, int I) |
ZAI * | GetZAIInTree (ZAI *zai) |
ZAI * | GetZAIInTree (int Z, int A, int I) |
ZAI * | ProvideZAI (int Z, int A, int I) |
return an existing ZAI* from the tree (or build it if not existing)¨ | |
void | ClearUnUsed () |
free memory when finished | |
string | LongestTree () |
find the longest chain | |
void | DumpTree () |
Make a nuclear chart of the tree & write it to disk. | |
void | WriteAsciiTree (string FileName="asciitree.dat") |
Write out the tree info in ascii format. | |
string | PrintTreeStats () |
Write out the tree information. | |
int | TreeLength (ZAI *zai, int &nb) |
returns the chain length of a ZAI | |
void | CheckConsistency (ZAI *&zai) |
Checks for self-consistency in the tree and complains if problems exist. | |
void | BuildTrees () |
Build Decay & Reaction trees for evolution. | |
void | SetZAIMass (ZAI *zai) |
Set the Mass for zai (not evolving case) | |
bool | IsTreesBuilt () |
void | FissionProductSelection (ZAI *zai, double yield=0) |
Use for selected FP. | |
bool | IsWantedNuclei () |
Private Member Functions | |
void | FindReactions () |
find the possible nuclear reactions using ReactionList | |
void | FindDecay () |
find the possible decays using fDecayDataFile file | |
void | SetZAIFissionEnergy (ZAI *zai) |
Set the fission energy released for fissile isotopes. | |
void | FillZAI (string line, ZAI *zai) |
uses values of line to fill zai | |
void | AddFissionProductsToZAI (FPDistribution *FP, ZAI *zai, double E, bool replace=false) |
void | RenormalizeBRS (ZAI *zai, double ought_to_be) |
Renormalizes the branching ratios of the given ZAI. | |
string | GetDecay (string DecayModes, double &BR, int &Iso, int &StartPos) |
Returns a particular decay mode. | |
Private Attributes | |
string | fDecayDataFile |
File name of the chart of nuclide file. | |
vector< ZAI * > | fZaiVector |
a vector of the whole chart (simplify fChart access) | |
bool | fDelete |
flag to know that a ZAI has been deleted from the chart | |
map< int, map< int, map< int, ZAI * > > > | fChart |
The whole Nuclei Chart from the fDecayDataFile. | |
int | fDecayRecursionDepth |
A measure of how far into the tree in decay recursive calls. | |
int | fReactionRecursionDepth |
A measure of how far into the tree in reaction recursive calls. | |
bool | fTreesBuilt |
whether or not Trees are built | |
bool | fWithReactions |
whether or not reactions links should be included (default yes) | |
bool | fWithSF |
whether or not the Spontaneous Fission is included (default yes) | |
map< int, map< int, bool > > | fWantedNuclei |
The wanted Nuclei defined in MURE::SetListOfWantedNucleiFN. | |
bool | fIsWantedNuclei |
True when wanted nuclei file is given. | |
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.jeff3.1.1). -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 2012 Atomic Mass Evaluation" of the National Nuclear Data CenterNucDat (BNL)
NucleiTree::NucleiTree | ( | 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.
|
private |
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. |
ZAI * NucleiTree::GetZAIInTree | ( | int | Z, |
int | A, | ||
int | I | ||
) |
|
inline |
< whether or not Trees are built
|
inline |
< True when wanted nuclei file is given
bool NucleiTree::IsZAIInTree | ( | int | Z, |
int | A, | ||
int | I | ||
) |
bool NucleiTree::IsZAIInTree | ( | ZAI * | zai | ) |
string NucleiTree::LongestTree | ( | ) |
find the longest chain
string NucleiTree::PrintTreeStats | ( | ) |
Write out the tree information.
ZAI * NucleiTree::ProvideZAI | ( | int | Z, |
int | A, | ||
int | I | ||
) |
return an existing ZAI* from the tree (or build it if not existing)¨
|
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 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)
|
private |
a vector of the whole chart (simplify fChart access)