diff --git a/source/branches/BaM_Dev/Model/Equivalence/EQM_FBR_MLP_Keff.cxx b/source/branches/BaM_Dev/Model/Equivalence/EQM_FBR_MLP_Keff.cxx index 34ffa048a0ddbe98ea83d199363f22bf32a0fecd..f582893011bd36602cd9ebd8584e5c5ca42b2756 100644 --- a/source/branches/BaM_Dev/Model/Equivalence/EQM_FBR_MLP_Keff.cxx +++ b/source/branches/BaM_Dev/Model/Equivalence/EQM_FBR_MLP_Keff.cxx @@ -36,60 +36,75 @@ //________________________________________________________________________ EQM_FBR_MLP_Keff::EQM_FBR_MLP_Keff(string TMVAWeightPath, double keff_target, string InformationFile):EquivalenceModel(new CLASSLogger("EQM_FBR_MLP_Keff.log")) { - fIsAverageKeff = false; + DBGL /**The tmva weight*/ fTMVAWeightPath = TMVAWeightPath; - fTargetKeff = keff_target; + /* INFORMATION FILE HANDLING */ + if(InformationFile=="") InformationFile = StringLine::ReplaceAll(TMVAWeightPath,".xml",".nfo"); fInformationFile = InformationFile; - GetModelInformation(); //Getting information from fMLPInformationFile + LoadKeyword(); + ReadNFO();//Getting information from fMLPInformationFile + + fTargetKeff = keff_target; + SetPCMprecision(10); SetBuildFuelFirstGuess(0.15); //First fissile content guess for the EquivalenceModel::BuildFuel algorithm fActualFissileContent = fFirstGuessFissilContent ; - INFO << "__An equivalence model has been define__"<<endl; - INFO << "\tThis model is based on the prediction of keff at a specific time"<<endl; - INFO << "\tThe TMVA (weight | information) files are :"<<endl; - INFO << "\t"<<"( "<<fTMVAWeightPath[0]<<" | "<<fMLPInformationFile<<" )"<<endl; + INFO << "__An equivalence model has been define__" << endl; + INFO << "\tThis model is based on the prediction of keff at a specific time" << endl; + INFO << "\tThe TMVA (weight | information) files are :" << endl; + INFO << "\t"<<"( "<<fTMVAWeightPath[0]<<" | "<<fMLPInformationFile<<" )" << endl; + DBGL } //________________________________________________________________________ EQM_FBR_MLP_Keff::EQM_FBR_MLP_Keff(CLASSLogger* log, string TMVAWeightPath, double keff_target, string InformationFile):EquivalenceModel(log) { - fIsAverageKeff = false; + DBGL /**The tmva weight*/ fTMVAWeightPath = TMVAWeightPath; - fTargetKeff = keff_target; + /* INFORMATION FILE HANDLING */ + if(InformationFile=="") InformationFile = StringLine::ReplaceAll(TMVAWeightPath,".xml",".nfo"); fInformationFile = InformationFile; - GetModelInformation(); //Getting information from fMLPInformationFile + LoadKeyword(); + ReadNFO();//Getting information from fMLPInformationFile + + fTargetKeff = keff_target; + + SetPCMprecision(10); SetBuildFuelFirstGuess(0.15); //First fissile content guess for the EquivalenceModel::BuildFuel algorithm fActualFissileContent = fFirstGuessFissilContent ; - INFO << "__An equivalence model has been define__"<<endl; - INFO << "\tThis model is based on the prediction of keff at a specific time"<<endl; - INFO << "\tThe TMVA (weight | information) files are :"<<endl; - INFO << "\t"<<"( "<<fTMVAWeightPath[0]<<" | "<<fMLPInformationFile<<" )"<<endl; + INFO << "__An equivalence model has been define__" << endl; + INFO << "\tThis model is based on the prediction of keff at a specific time" << endl; + INFO << "\tThe TMVA (weight | information) files are :" << endl; + INFO << "\t"<<"( "<<fTMVAWeightPath[0]<<" | "<<fMLPInformationFile<<" )" << endl; + DBGL } //________________________________________________________________________ TTree* EQM_FBR_MLP_Keff::CreateTMVAInputTree(IsotopicVector TheFreshfuel, double ThisTime) { + DBGL + /******Create Input data tree to be interpreted by TMVA::Reader***/ TTree* InputTree = new TTree("InTMPKef", "InTMPKef"); @@ -97,7 +112,7 @@ TTree* EQM_FBR_MLP_Keff::CreateTMVAInputTree(IsotopicVector TheFreshfuel, double for(int i = 0 ; i< (int)fMapOfTMVAVariableNames.size() ; i++) InputTMVA.push_back(0); - float Time=0; + float Time = 0; IsotopicVector IVInputTMVA; map<ZAI ,string >::iterator it; @@ -132,12 +147,14 @@ TTree* EQM_FBR_MLP_Keff::CreateTMVAInputTree(IsotopicVector TheFreshfuel, double InputTree->Fill(); + DBGL return InputTree; } //________________________________________________________________________ double EQM_FBR_MLP_Keff::ExecuteTMVA(TTree* InputTree, bool IsTimeDependent) { + DBGL // --- Create the Reader object TMVA::Reader *reader = new TMVA::Reader( "Silent" ); @@ -147,10 +164,14 @@ double EQM_FBR_MLP_Keff::ExecuteTMVA(TTree* InputTree, bool IsTimeDependent) vector<float> InputTMVA; for(int i = 0 ; i< (int)fMapOfTMVAVariableNames.size() ; i++) InputTMVA.push_back(0); - Float_t Time; + + Float_t Time = 0; + map<ZAI ,string >::iterator it; - int j=0; + int j = 0; + + for( it = fMapOfTMVAVariableNames.begin() ; it!=fMapOfTMVAVariableNames.end() ; it++) { reader->AddVariable( ( (*it).second ).c_str(),&InputTMVA[j]); j++; @@ -159,6 +180,8 @@ double EQM_FBR_MLP_Keff::ExecuteTMVA(TTree* InputTree, bool IsTimeDependent) if(IsTimeDependent) reader->AddVariable( "Time" ,&Time); + + // --- Book the MVA methods // Book method MLP @@ -177,29 +200,28 @@ double EQM_FBR_MLP_Keff::ExecuteTMVA(TTree* InputTree, bool IsTimeDependent) InputTree->SetBranchAddress( "Time" ,&Time ); InputTree->GetEntry(0); + Float_t val = (reader->EvaluateRegression( methodName ))[0]; delete reader; + DBGL return (double)val; //return k_{eff}(t=Time) } -//________________________________________________________________________ -void EQM_FBR_MLP_Keff::GetModelInformation() -{ -DBGL -} //________________________________________________________________________ void EQM_FBR_MLP_Keff::LoadKeyword() { DBGL + fDKeyword.insert( pair<string, MLP_FBR_Keff_DMthPtr>( "k_timestep", & EQM_FBR_MLP_Keff::ReadTimeSteps)); fDKeyword.insert( pair<string, MLP_FBR_Keff_DMthPtr>( "k_specpower", & EQM_FBR_MLP_Keff::ReadSpecificPower)); fDKeyword.insert( pair<string, MLP_FBR_Keff_DMthPtr>( "k_contentmax", & EQM_FBR_MLP_Keff::ReadMaximalContent)); fDKeyword.insert( pair<string, MLP_FBR_Keff_DMthPtr>( "k_zainame", & EQM_FBR_MLP_Keff::ReadZAIName) ); fDKeyword.insert( pair<string, MLP_FBR_Keff_DMthPtr>( "k_fissil", & EQM_FBR_MLP_Keff::ReadFissil) ); fDKeyword.insert( pair<string, MLP_FBR_Keff_DMthPtr>( "k_fertil", & EQM_FBR_MLP_Keff::ReadFertil) ); + DBGL } @@ -345,6 +367,8 @@ void EQM_FBR_MLP_Keff::ReadLine(string line) //________________________________________________________________________ double EQM_FBR_MLP_Keff::GetFissileMolarFraction(IsotopicVector Fissile,IsotopicVector Fertile,double TargetBU) { + DBGL + if(TargetBU != 0) WARNING<<"The third arguement : Burnup has no effect here."; @@ -365,7 +389,7 @@ double EQM_FBR_MLP_Keff::GetFissileMolarFraction(IsotopicVector Fissile,Isotopic { if(count > MaximumLoopCount ) { - ERROR << "CRITICAL ! Can't manage to predict fissile content\nHint : Try to decrease the precision on keff using :\nYourEQM_FBR_MLP_Keff->SetPCMPrecision(prop); with prop the precision (default 0.5percent : 0.005) INCREASE IT \n If this message still appear mail to leniau@subatech.in2p3.fr\nor nicolas.thiolliere@subatech.in2p3.fr "<<endl; + ERROR << "CRITICAL ! Can't manage to predict fissile content\nHint : Try to decrease the precision on keff using :\nYourEQM_FBR_MLP_Keff->SetPCMPrecision(prop); with prop the precision (default 0.5percent : 0.005) INCREASE IT \n If this message still appear mail to leniau@subatech.in2p3.fr\nor nicolas.thiolliere@subatech.in2p3.fr " << endl; exit(1); } @@ -389,7 +413,7 @@ double EQM_FBR_MLP_Keff::GetFissileMolarFraction(IsotopicVector Fissile,Isotopic }while(fabs(fTargetKeff-PredictedKeff)>Precision); - DBGV( "Predicted keff "<<PredictedKeff<<" FissileContent "<<FissileContent<<endl); + DBGV( "Predicted keff "<<PredictedKeff<<" FissileContent "<<FissileContent << endl); return FissileContent; } diff --git a/source/branches/BaM_Dev/Model/Equivalence/EQM_FBR_MLP_Keff.hxx b/source/branches/BaM_Dev/Model/Equivalence/EQM_FBR_MLP_Keff.hxx index 019e483eb7a642f123fdda76c8f0ea873772a736..98c7cd471e49bd7a7af8a987f02a8df65694ed27 100644 --- a/source/branches/BaM_Dev/Model/Equivalence/EQM_FBR_MLP_Keff.hxx +++ b/source/branches/BaM_Dev/Model/Equivalence/EQM_FBR_MLP_Keff.hxx @@ -16,6 +16,7 @@ @author BLG + @author BaM @version 1.0 */ @@ -36,10 +37,6 @@ The Pu content is set such as it has to verify contain in the .xml file. Indeed this method suppose you have trained your MLP to predict the keffective either at BOC or EOC (or any other time) - \warning - With method 1, it is not guaranted that there is a solution for Pu content verifying : - @f$<k_{\infty}>^{batch}(t) = \frac{1}{N}\sum_{i}^{N}k_{\infty}(t+\frac{iT}{N} )@f$ - @author BLG @author BaM @version 1.0 @@ -201,8 +198,7 @@ class EQM_FBR_MLP_Keff : public EquivalenceModel map<string, MLP_FBR_Keff_DMthPtr> fDKeyword; #endif - void GetModelInformation();//!<Read the fMLPInformationFile and fill containers and variables - + map<ZAI,string> fMapOfTMVAVariableNames;//!< List of TMVA input variable names (read from fMLPInformationFile ) , name depends on the training step vector<double> fMLP_Time; //!< Time (in seconds) when the MLP(t)=keff(t) has been trained. @@ -211,23 +207,15 @@ class EQM_FBR_MLP_Keff : public EquivalenceModel - - int fNumberOfBatch; //!< The number of batches for the loading plan double fKThreshold; //!< The @f$k_{Threshold}@f$ double fPCMprecision; //!< precision on <k> prediction [pcm] - bool fIsAverageKeff; //!< True if using the first contructor (fissile content prediction with average keff (over batches)) - double fKmin; //!< Lower edge of kedd Used by second constructor (fissile content prediction using keff at BOC (or other time) - double fKmax; //!< Upper edge of kedd Used by second constructor (fissile content prediction using keff at BOC (or other time) double fTargetKeff; //!< Use for Varying Fissile content to reach fTargetKeff at time used in the MLP Training - - - double GetKeffAtFixedTime(IsotopicVector FreshFuel){return ExecuteTMVA( CreateTMVAInputTree(FreshFuel,-1), false );} //!<time independant since the MLP is trained for 1 time TGraph* BuildKeffGraph(IsotopicVector FreshFuel); diff --git a/source/branches/BaM_Dev/Model/Equivalence/EQM_FBR_MLP_Keff_BOUND.cxx b/source/branches/BaM_Dev/Model/Equivalence/EQM_FBR_MLP_Keff_BOUND.cxx index 639dd8fb58ce4cba01d85aa98696f19e73f98f8b..9bf83ba7ad6a031423d273e02d53cdad19d46177 100644 --- a/source/branches/BaM_Dev/Model/Equivalence/EQM_FBR_MLP_Keff_BOUND.cxx +++ b/source/branches/BaM_Dev/Model/Equivalence/EQM_FBR_MLP_Keff_BOUND.cxx @@ -1,4 +1,5 @@ #include "EQM_FBR_MLP_Keff_BOUND.hxx" +#include "CLASSMethod.hxx" #include "CLASSLogger.hxx" #include "StringLine.hxx" @@ -35,54 +36,78 @@ //________________________________________________________________________ EQM_FBR_MLP_Keff_BOUND::EQM_FBR_MLP_Keff_BOUND(string TMVAWeightPath, int NumOfBatch, double LowerKeffective, double UpperKeffective, string InformationFile):EquivalenceModel(new CLASSLogger("EQM_FBR_MLP_Keff_BOUND.log")) { - fIsAverageKeff = true; + DBGL + + /** The tmva weight **/ - /**The tmva weight*/ fTMVAWeightPath = TMVAWeightPath; - /*INFORMATION FILE HANDLING*/ + + /* INFORMATION FILE HANDLING */ + if(InformationFile=="") InformationFile = StringLine::ReplaceAll(TMVAWeightPath,".xml",".nfo"); fInformationFile = InformationFile; - GetModelInformation();//Getting information from fMLPInformationFile + LoadKeyword(); + ReadNFO();//Getting information from fMLPInformationFile + + + /* OTHER MODEL PARAMETERS */ - /*OTHER MODEL PARAMETERS*/ fNumberOfBatch = NumOfBatch; fKmin = LowerKeffective ; fKmax = UpperKeffective ; - /*MODEL PARAMETERS INITIALIZATION */ + + /* MODEL PARAMETERS INITIALIZATION */ + SetPCMprecision(10); SetBuildFuelFirstGuess(0.15);//First fissile content guess for the EquivalenceModel::BuildFuel algorithm fActualFissileContent = fFirstGuessFissilContent ; + + /* INFO */ + INFO << "__An equivalence model has been define__"<<endl; INFO << "\tThis model is based on the prediction of keff averaged over the number of batch"<<endl; INFO << "\tThe TMVA (weight | information) files are :"<<endl; INFO << "\t"<<"( "<<fTMVAWeightPath[0]<<" | "<<fMLPInformationFile<<" )"<<endl; + + + DBGL } //________________________________________________________________________ EQM_FBR_MLP_Keff_BOUND::EQM_FBR_MLP_Keff_BOUND(CLASSLogger* log, string TMVAWeightPath, int NumOfBatch, double LowerKeffective, double UpperKeffective, string InformationFile):EquivalenceModel(log) { - fIsAverageKeff = true; - /**The tmva weight*/ + DBGL + + /** The tmva weight **/ + fTMVAWeightPath = TMVAWeightPath; - /*INFORMATION FILE HANDLING*/ + + /* INFORMATION FILE HANDLING */ + if(InformationFile=="") InformationFile = StringLine::ReplaceAll(TMVAWeightPath,".xml",".nfo"); fInformationFile = InformationFile; - GetModelInformation();//Getting information from fMLPInformationFile + LoadKeyword(); + ReadNFO();//Getting information from fMLPInformationFile + + + + /* OTHER MODEL PARAMETERS */ - /*OTHER MODEL PARAMETERS*/ fNumberOfBatch = NumOfBatch; fKmin = LowerKeffective ; fKmax = UpperKeffective ; - /*MODEL PARAMETERS INITIALIZATION */ + + /* INFO */ + SetPCMprecision(10); SetBuildFuelFirstGuess(0.15);//First fissile content guess for the EquivalenceModel::BuildFuel algorithm fActualFissileContent = fFirstGuessFissilContent ; @@ -91,15 +116,16 @@ EQM_FBR_MLP_Keff_BOUND::EQM_FBR_MLP_Keff_BOUND(CLASSLogger* log, string TMVAWeig INFO << "\tThis model is based on the prediction of keff averaged over the number of batch" << endl; INFO << "\tThe TMVA (weight | information) files are :" << endl; INFO << "\t" << "( " << fTMVAWeightPath[0] << " | " << fMLPInformationFile << " )" << endl; + + + DBGL } + + //________________________________________________________________________ TGraph* EQM_FBR_MLP_Keff_BOUND::BuildKeffGraph(IsotopicVector FreshFuel) { - if(!fIsAverageKeff) - { - ERROR << " Can't be used with EQM_FBR_MLP_Keff_BOUND(string TMVAWeightPath, double keff_target, string InformationFile) constructor"; - exit(1); - } + DBGL TGraph * keffGraph = new TGraph(); for(int i = 0 ; i < (int) fMLP_Time.size() ; i++) @@ -108,16 +134,13 @@ TGraph* EQM_FBR_MLP_Keff_BOUND::BuildKeffGraph(IsotopicVector FreshFuel) keffGraph->SetPoint(i, (double)fMLP_Time[i], keff_t ); } + DBGL return keffGraph; } //________________________________________________________________________ TGraph* EQM_FBR_MLP_Keff_BOUND::BuildAverageKeffGraph(TGraph* GRAPH_KEFF) { - if(!fIsAverageKeff) - { - ERROR << " Can't be used with EQM_FBR_MLP_Keff_BOUND(string TMVAWeightPath, double keff_target, string InformationFile) constructor"; - exit(1); - } + DBGL TGraph * AveragekeffGraph = new TGraph(); int NumberOfPoint = 50; @@ -146,20 +169,19 @@ TGraph* EQM_FBR_MLP_Keff_BOUND::BuildAverageKeffGraph(TGraph* GRAPH_KEFF) AveragekeffGraph->SetPoint(n, step*n, k_av); } + DBGL return AveragekeffGraph; } //________________________________________________________________________ double EQM_FBR_MLP_Keff_BOUND::GetKeffAt(TGraph* GRAPH_KEFF, int Step) { - if(!fIsAverageKeff) - { - ERROR << " Can't be used with EQM_FBR_MLP_Keff_BOUND(string TMVAWeightPath, double keff_target, string InformationFile) constructor"; exit(1); - } + DBGL double Time = 0; double Keff=0; GRAPH_KEFF->GetPoint(Step, Time, Keff); + DBGL return Keff; } @@ -167,6 +189,8 @@ double EQM_FBR_MLP_Keff_BOUND::GetKeffAt(TGraph* GRAPH_KEFF, int Step) //________________________________________________________________________ TTree* EQM_FBR_MLP_Keff_BOUND::CreateTMVAInputTree(IsotopicVector TheFreshfuel, double ThisTime) { + DBGL + /******Create Input data tree to be interpreted by TMVA::Reader***/ TTree* InputTree = new TTree("InTMPKef", "InTMPKef"); @@ -209,13 +233,15 @@ TTree* EQM_FBR_MLP_Keff_BOUND::CreateTMVAInputTree(IsotopicVector TheFreshfuel, InputTree->Fill(); + DBGL return InputTree; } //________________________________________________________________________ double EQM_FBR_MLP_Keff_BOUND::ExecuteTMVA(TTree* InputTree, bool IsTimeDependent) { - + DBGL + // --- Create the Reader object TMVA::Reader *reader = new TMVA::Reader( "Silent" ); @@ -243,7 +269,7 @@ double EQM_FBR_MLP_Keff_BOUND::ExecuteTMVA(TTree* InputTree, bool IsTimeDependen reader->BookMVA( methodName, fTMVAWeightPath ); map<ZAI ,string >::iterator it2; - j=0; + j = 0; for( it2 = fMapOfTMVAVariableNames.begin() ; it2!=fMapOfTMVAVariableNames.end() ; it2++) { InputTree->SetBranchAddress(( (*it2).second ).c_str(),&InputTMVA[j]); @@ -258,19 +284,22 @@ double EQM_FBR_MLP_Keff_BOUND::ExecuteTMVA(TTree* InputTree, bool IsTimeDependen delete reader; + DBGL return (double)val; //return k_{eff}(t=Time) } //________________________________________________________________________ -void XSM_MLP::LoadKeyword() +void EQM_FBR_MLP_Keff_BOUND::LoadKeyword() { DBGL - fDKeyword.insert( pair<string, MLP_FBR_Keff_DMthPtr>( "k_timestep", & EQM_FBR_MLP_Keff_BOUND::ReadTimeSteps)); - fDKeyword.insert( pair<string, MLP_FBR_Keff_DMthPtr>( "k_specpower", & EQM_FBR_MLP_Keff_BOUND::ReadSpecificPower)); - fDKeyword.insert( pair<string, MLP_FBR_Keff_DMthPtr>( "k_contentmax", & EQM_FBR_MLP_Keff_BOUND::ReadMaximalContent)); - fDKeyword.insert( pair<string, MLP_FBR_Keff_DMthPtr>( "k_zainame", & EQM_FBR_MLP_Keff_BOUND::ReadZAIName) ); - fDKeyword.insert( pair<string, MLP_FBR_Keff_DMthPtr>( "k_fissil", & EQM_FBR_MLP_Keff_BOUND::ReadFissil) ); - fDKeyword.insert( pair<string, MLP_FBR_Keff_DMthPtr>( "k_fertil", & EQM_FBR_MLP_Keff_BOUND::ReadFertil) ); + + fDKeyword.insert( pair<string, MLP_FBR_Keff_BOUND_DMthPtr>( "k_timestep", & EQM_FBR_MLP_Keff_BOUND::ReadTimeSteps)); + fDKeyword.insert( pair<string, MLP_FBR_Keff_BOUND_DMthPtr>( "k_specpower", & EQM_FBR_MLP_Keff_BOUND::ReadSpecificPower)); + fDKeyword.insert( pair<string, MLP_FBR_Keff_BOUND_DMthPtr>( "k_contentmax", & EQM_FBR_MLP_Keff_BOUND::ReadMaximalContent)); + fDKeyword.insert( pair<string, MLP_FBR_Keff_BOUND_DMthPtr>( "k_zainame", & EQM_FBR_MLP_Keff_BOUND::ReadZAIName) ); + fDKeyword.insert( pair<string, MLP_FBR_Keff_BOUND_DMthPtr>( "k_fissil", & EQM_FBR_MLP_Keff_BOUND::ReadFissil) ); + fDKeyword.insert( pair<string, MLP_FBR_Keff_BOUND_DMthPtr>( "k_fertil", & EQM_FBR_MLP_Keff_BOUND::ReadFertil) ); + DBGL } @@ -305,11 +334,11 @@ void EQM_FBR_MLP_Keff_BOUND::ReadSpecificPower(const string &line) string keyword = tlc(StringLine::NextWord(line, pos, ' ')); if( keyword != "k_specpower") // Check the keyword { - ERROR << " Bad keyword : \â€k_specpower\" Not found !" << endl; + ERROR << " Bad keyword : \"k_specpower\" Not found !" << endl; exit(1); } - fSpecificPower = atof(StringLine::NextWord(line, pos, ' ')); + fSpecificPower = atof(StringLine::NextWord(line, pos, ' ').c_str()); DBGL } @@ -319,14 +348,14 @@ void EQM_FBR_MLP_Keff_BOUND::ReadMaximalContent(const string &line) { DBGL int pos = 0; - string keyword = tlc(StringLine::NextWord(line, pos, ' ')); + string keyword = tlc(StringLine::NextWord(line, pos, ' ').c_str()); if( keyword != "k_contentmax") // Check the keyword { - ERROR << " Bad keyword : \â€k_contentmax\" Not found !" << endl; + ERROR << " Bad keyword : \"k_contentmax\" Not found !" << endl; exit(1); } - fMaximalContent = atof(StringLine::NextWord(line, pos, ' ')); + fMaximalContent = atof(StringLine::NextWord(line, pos, ' ').c_str()); DBGL } @@ -402,7 +431,7 @@ void EQM_FBR_MLP_Keff_BOUND::ReadLine(string line) int pos = 0; string keyword = tlc(StringLine::NextWord(line, pos, ' ')); - map<string, XS_MLP_DMthPtr>::iterator it = fDKeyword.find(keyword); + map<string, MLP_FBR_Keff_BOUND_DMthPtr>::iterator it = fDKeyword.find(keyword); if(it != fDKeyword.end()) (this->*(it->second))( line ); @@ -414,8 +443,9 @@ void EQM_FBR_MLP_Keff_BOUND::ReadLine(string line) //________________________________________________________________________ double EQM_FBR_MLP_Keff_BOUND::GetFissileMolarFraction(IsotopicVector Fissile, IsotopicVector Fertile, double TargetBU) { + DBGL if(TargetBU != 0) - WARNING<<"The third arguement : Burnup has no effect here."; + WARNING << "The third arguement : Burnup has no effect here."; /**Algorithm not so clever ...**/ /**need improvements to make it faster*/ @@ -453,14 +483,14 @@ double EQM_FBR_MLP_Keff_BOUND::GetFissileMolarFraction(IsotopicVector Fissile, I if( test_Keff_beg > 1.30 ) { - cout << "This plutonium can not satisfy the criticality condition imposed" << endl; + ERROR << "This plutonium can not satisfy the criticality condition imposed" << endl; FissileContent = -1; break; } } + DBGL return FissileContent; - } //________________________________________________________________________ diff --git a/source/branches/BaM_Dev/Model/Equivalence/EQM_FBR_MLP_Keff_BOUND.hxx b/source/branches/BaM_Dev/Model/Equivalence/EQM_FBR_MLP_Keff_BOUND.hxx index 11ad0078d929bf63a5bb8df50a10cd8cdd08ab39..74f01dd8829c45ac770ad6b3d0828340572e51cb 100644 --- a/source/branches/BaM_Dev/Model/Equivalence/EQM_FBR_MLP_Keff_BOUND.hxx +++ b/source/branches/BaM_Dev/Model/Equivalence/EQM_FBR_MLP_Keff_BOUND.hxx @@ -1,5 +1,5 @@ -#ifndef _EQM_FBR_MLP_Keff_BOUND_HXX -#define _EQM_FBR_MLP_Keff_BOUND_HXX +#ifndef _EQM_FBR_MLP_Keff_BOUND_HXX_ +#define _EQM_FBR_MLP_Keff_BOUND_HXX_ #include "EquivalenceModel.hxx" #include "TTree.h" @@ -46,7 +46,7 @@ using namespace std; class EQM_FBR_MLP_Keff_BOUND; #ifndef __CINT__ -typedef void (EQM_FBR_MLP_Keff_BOUND::*MLP_FBR_Keff_DMthPtr)( const string & ) ; +typedef void (EQM_FBR_MLP_Keff_BOUND::*MLP_FBR_Keff_BOUND_DMthPtr)( const string & ) ; #endif @@ -200,11 +200,9 @@ class EQM_FBR_MLP_Keff_BOUND : public EquivalenceModel string fMLPInformationFile; //!<The path to the informations necessary to execute the MLP #ifndef __CINT__ - map<string, MLP_FBR_Keff_DMthPtr> fDKeyword; + map<string, MLP_FBR_Keff_BOUND_DMthPtr> fDKeyword; #endif - void GetModelInformation();//!<Read the fMLPInformationFile and fill containers and variables - map<ZAI,string> fMapOfTMVAVariableNames;//!< List of TMVA input variable names (read from fMLPInformationFile ) , name depends on the training step vector<double> fMLP_Time; //!< Time (in seconds) when the MLP(t)=keff(t) has been trained. @@ -251,16 +249,3 @@ class EQM_FBR_MLP_Keff_BOUND : public EquivalenceModel - - - - -#endif /* defined(__CLASSSource__EQM_FBR_MLP_Keff_BOUND_BOUND__) */ - - - - - - - -