MURE
Loading...
Searching...
No Matches
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 (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)
 
ZAIGetZAIInTree (ZAI *zai)
 
ZAIGetZAIInTree (int Z, int A, int I)
 
ZAIProvideZAI (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.
 

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

Author
J. Wilson
PTO
Version
1.0

Constructor & Destructor Documentation

◆ NucleiTree()

NucleiTree::NucleiTree ( 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::~NucleiTree ( )

Destructor.

Member Function Documentation

◆ AddFissionProductsToZAI()

void NucleiTree::AddFissionProductsToZAI ( FPDistribution FP,
ZAI zai,
double  E,
bool  replace = false 
)
private

◆ BuildTrees()

void NucleiTree::BuildTrees ( )

Build Decay & Reaction trees for evolution.

◆ CheckConsistency()

void NucleiTree::CheckConsistency ( ZAI *&  zai)

Checks for self-consistency in the tree and complains if problems exist.

◆ ClearUnUsed()

void NucleiTree::ClearUnUsed ( )

free memory when finished

◆ DumpTree()

void NucleiTree::DumpTree ( )

Make a nuclear chart of the tree & write it to disk.

◆ ExtractWantedZAI()

void NucleiTree::ExtractWantedZAI ( ZAI zai,
bool  FromDecay = true 
)

◆ ExtractZAI()

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

◆ FillZAI()

void NucleiTree::FillZAI ( string  line,
ZAI zai 
)
private

uses values of line to fill zai

◆ FindDecay()

void NucleiTree::FindDecay ( )
private

find the possible decays using fDecayDataFile file

◆ FindReactions()

void NucleiTree::FindReactions ( )
private

find the possible nuclear reactions using ReactionList

◆ FissionProductSelection()

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

Use for selected FP.

◆ GetDecay()

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.

◆ GetZAIInTree() [1/2]

ZAI * NucleiTree::GetZAIInTree ( int  Z,
int  A,
int  I 
)

◆ GetZAIInTree() [2/2]

ZAI * NucleiTree::GetZAIInTree ( ZAI zai)

◆ IsTreesBuilt()

bool NucleiTree::IsTreesBuilt ( )
inline

< whether or not Trees are built

◆ IsWantedNuclei()

bool NucleiTree::IsWantedNuclei ( )
inline

< True when wanted nuclei file is given

◆ IsZAIInTree() [1/2]

bool NucleiTree::IsZAIInTree ( int  Z,
int  A,
int  I 
)

◆ IsZAIInTree() [2/2]

bool NucleiTree::IsZAIInTree ( ZAI zai)

◆ LongestTree()

string NucleiTree::LongestTree ( )

find the longest chain

◆ PrintTreeStats()

string NucleiTree::PrintTreeStats ( )

Write out the tree information.

◆ ProvideZAI()

ZAI * NucleiTree::ProvideZAI ( int  Z,
int  A,
int  I 
)

return an existing ZAI* from the tree (or build it if not existing)¨

◆ RenormalizeBRS()

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

◆ SetZAIFissionEnergy()

void NucleiTree::SetZAIFissionEnergy ( ZAI zai)
private

Set the fission energy released for fissile isotopes.

◆ SetZAIMass()

void NucleiTree::SetZAIMass ( ZAI zai)

Set the Mass for zai (not evolving case)

◆ TreeLength()

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

returns the chain length of a ZAI

◆ WriteAsciiTree()

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

Write out the tree info in ascii format.

Member Data Documentation

◆ fChart

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

The whole Nuclei Chart from the fDecayDataFile.

◆ fDecayDataFile

string NucleiTree::fDecayDataFile
private

File name of the chart of nuclide file.

◆ fDecayRecursionDepth

int NucleiTree::fDecayRecursionDepth
private

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

◆ fDelete

bool NucleiTree::fDelete
private

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

◆ fIsWantedNuclei

bool NucleiTree::fIsWantedNuclei
private

True when wanted nuclei file is given.

◆ fReactionRecursionDepth

int NucleiTree::fReactionRecursionDepth
private

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

◆ fTreesBuilt

bool NucleiTree::fTreesBuilt
private

whether or not Trees are built

◆ fWantedNuclei

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

The wanted Nuclei defined in MURE::SetListOfWantedNucleiFN.

◆ fWithReactions

bool NucleiTree::fWithReactions
private

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

◆ fWithSF

bool NucleiTree::fWithSF
private

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

◆ fZaiVector

vector<ZAI *> NucleiTree::fZaiVector
private

a vector of the whole chart (simplify fChart access)


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

MURE Project, documentation generated by Doxygen 1.9.7 - Fri Jan 19 2024