CLASS  5.1
Fuel Cycle Simulator
EQM_FBR_MLP_Keff.hxx
Go to the documentation of this file.
1 #ifndef _EQM_FBR_MLP_Keff_HXX
2 #define _EQM_FBR_MLP_Keff_HXX
3 
4 #include "EquivalenceModel.hxx"
5 #include "TTree.h"
6 #include "TGraph.h"
7 #include <string>
8 #include <fstream>
9 #include <iostream>
10 #include <map>
11 #include <vector>
12 
13 using namespace std;
14 
15 class EQM_FBR_MLP_Keff;
16 #ifndef __CINT__
17 typedef void (EQM_FBR_MLP_Keff::*FBR_MLP_Keff_DMthPtr)( const string & ) ;
18 #endif
19 
20 //-----------------------------------------------------------------------------//
22 
37 //________________________________________________________________________
38 
40 {
41  public:
46 
47 
48 
49  //{
52 
58  EQM_FBR_MLP_Keff(string TMVAWeightPath, double keff_target = 1.00, string InformationFile = "");
59  //}
60 
61  //{
64 
71  EQM_FBR_MLP_Keff(CLASSLogger* log, string TMVAWeightPath, double keff_target = 1.00, string InformationFile = "");
72  //}
73 
75 
76  //{
78 
83  map < string , double> GetMolarFraction(map < string , IsotopicVector> IVStream, double BurnUp=0);
84  //}
85 
90  void SetPCMprecision(double pcm){fPCMprecision = pcm;}
91  double GetPCMprecision(){return fPCMprecision/1e5;}
92 
93  double GetActualFissileContent(){return fActualFissileContent;}
94 
96 
97 
98 
99 
100 
105  TTree* CreateTMVAInputTree(IsotopicVector FreshFuel, double ThisTime);
106 
107  double ExecuteTMVA(TTree* theTree, bool IsTimeDependant);
108 
109 
110 
111 
116 
117  //{
119  void LoadKeyword();
120  //}
121 
122  //{
124 
127  void ReadZAIName(const string &line);
128  //}
129 
130  //{
132 
135  void ReadMaxFisContent(const string &line);
136  //}
137 
138  //{
140 
143  void ReadLine(string line);
144  //}
145 
147 
148 
149 
150  private :
151 
152  string fTMVAWeightPath;
153 
154 #ifndef __CINT__
155  map<string, FBR_MLP_Keff_DMthPtr> fDKeyword;
156 #endif
157 
158 
159  map<ZAI,string> fMapOfTMVAVariableNames;
160 
161  vector<double> fMLP_Time;
162  double fSpecificPower;
163  double fMaximalContent;
164  double fActualFissileContent;
165 
166 
167  int fNumberOfBatch;
168 
169  double fKThreshold;
170  double fPCMprecision;
171 
172  double fTargetKeff;
173 
174 
175 
176  double GetKeffAtFixedTime(IsotopicVector FreshFuel);
177 
178  TGraph* BuildKeffGraph(IsotopicVector FreshFuel);
179  TGraph* BuildAverageKeffGraph(TGraph* GRAPH_KEFF);
180 
181  double GetKeffAt(TGraph* GRAPH_KEFF, int Step);
182 
183 
184 
185 
186 };
187 
188 #endif
189 
Determines how to build a fresh fuel.
Definition: EquivalenceModel.hxx:59
Allows to store & operate on radioactive sample.
Definition: IsotopicVector.hxx:37
Definition: CLASSBackEndDict.cxx:37
void SetPCMprecision(double pcm)
Set the precision on prediction [pcm]. Neural network predictor constructors.
Definition: EQM_FBR_MLP_Keff.hxx:90
void(EQM_FBR_MLP_Keff::* FBR_MLP_Keff_DMthPtr)(const string &)
Definition: EQM_FBR_MLP_Keff.hxx:17
double GetPCMprecision()
Get the precision on prediction []. Neural network predictor constructors.
Definition: EQM_FBR_MLP_Keff.hxx:91
Header file for EquivalenceModel class.
double GetActualFissileContent()
return Fissile content at iteration i
Definition: EQM_FBR_MLP_Keff.hxx:93
Object to handle output messages.
Definition: CLASSLogger.hxx:144
Defines an EquivalenceModel based on neural network to predict .
Definition: EQM_FBR_MLP_Keff.hxx:39