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

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

Detailed Description

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)

Author
J. Wilson
PTO
Version
1.0

Constructor & Destructor Documentation

NucleiTree::NucleiTree ( string  DecayDataFile = "../data/chart.JEF3T",
string  MassDataFile = "../data/Mass.dat",
bool  WithReactions = true,
bool  WithSpontaneousFis = true 
)

Normal constructor of a NucleiTree.

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

Member Function Documentation

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.

Parameters
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).
void NucleiTree::FillZAI ( string  line,
ZAI zai 
)
private

uses values of line to fill zai

void NucleiTree::FindDecay ( )
private

find the possible decays using fDecayDataFile file

void NucleiTree::FindReactions ( )
private

find the possible nuclear reactions using ReactionList

void NucleiTree::FissionProductSelection ( ZAI zai,
double  yield = 0 
)

Use for selected FP.

string NucleiTree::GetDecay ( string  DecayModes,
double &  BR,
int &  Iso,
int &  StartPos 
)
private

Returns a particular decay mode.

Parameters
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.
bool NucleiTree::IsTreesBuilt ( )
inline

whether or not Trees are built

bool NucleiTree::IsWantedNuclei ( )
inline

True when wanted nuclei file is given.

string NucleiTree::LongestTree ( )

find the longest chain

string NucleiTree::PrintTreeStats ( )

Write out the tree information.

void NucleiTree::RenormalizeBRS ( ZAI zai,
double  ought_to_be 
)
private

Renormalizes the branching ratios of the given ZAI.

Parameters
zai: The ZAI to be renormalized
ought_to_be: The value to which the branching ratios must be normalized
void NucleiTree::SetZAIFissionEnergy ( ZAI zai)
private

Set the fission energy released for fissile isotopes.

void NucleiTree::SetZAIMass ( ZAI zai)

Set the Mass for zai (not evolving case)

int NucleiTree::TreeLength ( ZAI zai,
int &  nb 
)

returns the chain length of a ZAI

void NucleiTree::WriteAsciiTree ( string  FileName = "asciitree.dat")

Write out the tree info in ascii format.

Member Data Documentation

map<int ,map<int ,map<int,ZAI*> > > NucleiTree::fChart
private

The whole Nuclei Chart from the fDecayDataFile.

string NucleiTree::fDecayDataFile
private

File name of the chart of nuclide file.

int NucleiTree::fDecayRecursionDepth
private

A measure of how far into the tree in decay recursive calls.

bool NucleiTree::fDelete
private

flag to know that a ZAI has been deleted from the chart

bool NucleiTree::fIsWantedNuclei
private

True when wanted nuclei file is given.

vector<ZAI*> NucleiTree::fNuclei
private

a vector of the whole chart (simplify fChart access)

int NucleiTree::fReactionRecursionDepth
private

A measure of how far into the tree in reaction recursive calls.

bool NucleiTree::fTreesBuilt
private

whether or not Trees are built

map<int ,map<int ,bool> > NucleiTree::fWantedNuclei
private

The wanted Nuclei defined in MURE::SetListOfWantedNucleiFN.

bool NucleiTree::fWithReactions
private

whether or not reactions links should be included (default yes)

bool NucleiTree::fWithSF
private

whether or not the Spontaneous Fission is included (default yes)


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

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