MURE
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros
NucleiTree.hxx
Go to the documentation of this file.
1 #ifndef _NucleiTree_
2 #define _NucleiTree_
3 
9 #include <math.h>
10 #include <iostream>
11 #include <fstream>
12 #include <vector>
13 #include <map>
14 #include <string>
15 //#include "MureHeaders.hxx"
16 #include "StringLine.hxx"
17 #include "FPDistribution.hxx"
18 using namespace std;
19 
21 
45 {
46  public:
48 
54  NucleiTree(string DecayDataFile="../data/chart.JEF3T", string MassDataFile="../data/Mass.dat", bool WithReactions=true,bool WithSpontaneousFis=true);
55  ~NucleiTree();
56 
58 
67  void ExtractZAI(ZAI* &zai, double MinHalfLife=0, int MaxRecursionDepth=10000, bool FromDecay=true);
68  void ExtractWantedZAI(ZAI* &zai, bool FromDecay=true);
69  void ClearUnUsed();
70  string LongestTree();
71  void DumpTree();
72  void WriteAsciiTree(string FileName="asciitree.dat");
73  string PrintTreeStats();
74  int TreeLength(ZAI* zai,int &nb);
75  void CheckConsistency(ZAI* &zai);
76  void BuildTrees();
77  void SetZAIMass(ZAI* zai);
78  bool IsTreesBuilt(){return fTreesBuilt;}
79  void FissionProductSelection(ZAI *zai, double yield=0);
80  bool IsWantedNuclei(){return fIsWantedNuclei;}
81 
82  private:
83  void FindReactions();
84  void FindDecay();
85  void SetZAIFissionEnergy(ZAI* zai);
86  void FillZAI(string line,ZAI* zai);
87 
92  void RenormalizeBRS(ZAI* zai, double ought_to_be);
94 
100  string GetDecay(string DecayModes, double &BR,int &Iso, int &StartPos);
101 
102  string fDecayDataFile;
103  vector<ZAI*> fNuclei;
104  bool fDelete;
105  map<int ,map<int ,map<int,ZAI*> > > fChart;
108  bool fTreesBuilt;
110  bool fWithSF;
111 
112  map<int ,map<int ,bool> > fWantedNuclei;
114 
115 
116 };
117 
118 #endif
map< int,map< int,bool > > fWantedNuclei
The wanted Nuclei defined in MURE::SetListOfWantedNucleiFN.
Definition: NucleiTree.hxx:112
int fReactionRecursionDepth
A measure of how far into the tree in reaction recursive calls.
Definition: NucleiTree.hxx:107
Header file for FPRecord and FPDistribution classes.
bool IsTreesBuilt()
whether or not Trees are built
Definition: NucleiTree.hxx:78
bool fTreesBuilt
whether or not Trees are built
Definition: NucleiTree.hxx:108
bool fWithSF
whether or not the Spontaneous Fission is included (default yes)
Definition: NucleiTree.hxx:110
string fDecayDataFile
File name of the chart of nuclide file.
Definition: NucleiTree.hxx:102
A NucleiTree defines the whole tree of nuclei in case of evolution for a single ZAI.
Definition: NucleiTree.hxx:44
bool fDelete
flag to know that a ZAI has been deleted from the chart
Definition: NucleiTree.hxx:104
int fDecayRecursionDepth
A measure of how far into the tree in decay recursive calls.
Definition: NucleiTree.hxx:106
A ZAI defined a (Z,A,Isomere) for a Nucleus.
Definition: ZAI.hxx:62
bool fWithReactions
whether or not reactions links should be included (default yes)
Definition: NucleiTree.hxx:109
bool IsWantedNuclei()
True when wanted nuclei file is given.
Definition: NucleiTree.hxx:80
map< int,map< int,map< int, ZAI * > > > fChart
The whole Nuclei Chart from the fDecayDataFile.
Definition: NucleiTree.hxx:105
bool fIsWantedNuclei
True when wanted nuclei file is given.
Definition: NucleiTree.hxx:113
vector< ZAI * > fNuclei
a vector of the whole chart (simplify fChart access)
Definition: NucleiTree.hxx:103
Header file for StingLine class.

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