CLASS
1.1
|
00001 #ifndef _CLASS_HXX_ 00002 #define _CLASS_HXX_ 00003 00014 #include "IsotopicVector.hxx" 00015 #include <TFile.h> 00016 #include <TTree.h> 00017 #include <vector> 00018 #include <string> 00019 #include <map> 00020 #include <iostream> 00021 00022 00023 using namespace std; 00024 00025 class EvolutionDataBase; 00026 class Reactor; 00027 class TreatmentFactory; 00028 class LogFile; 00029 00030 00031 class CLASS 00032 { 00033 public : 00035 CLASS(); 00036 CLASS(long int abstime); 00037 CLASS(string name); 00038 CLASS(string name, long int abstime); 00039 00041 ~CLASS(); 00042 00043 00044 //********* Get Method *********// 00045 long int GetAbsoluteTime() {return fAbsoluteTime;} 00046 map<long int, int> GetTimeStep() {return fTimeStep;} 00047 vector<TreatmentFactory*> GetTreatmentFactory() {return fTreatmentFactory;} 00048 vector<Reactor*> GetReactor() {return fReactor;} 00049 long int GetPrintSet() {return fPrintStep;} 00050 bool GetStockManagement() {return fStockManagement;} 00051 string GetOutputName() {return fOutputName;} 00052 LogFile* GetLog() {return fLog;} 00053 //********* Set Method *********// 00054 void SetTimeStep(int timestep) {fPrintStep = timestep;} 00055 void SetStockManagement(bool val) {fStockManagement = val;} 00056 void SetBuildingMethod(int val) {fStockManagement = true; fBuildingMethod = val;} 00057 void SetOutpurName(string name) {fOutputName =name;} 00058 00059 //********* Add Method *********// 00060 void AddTreatmentFactory(TreatmentFactory* treatmentfactory); 00061 void AddReactor(Reactor* reactor); 00062 00063 00064 //********* IV Creation Method *********// 00065 IsotopicVector BuildIsotopicVector(IsotopicVector isotopicvector ); 00066 IsotopicVector MonteCarloBuild(IsotopicVector isotopicvector ); 00067 // IsotopicVector MinimizationBuild(IsotopicVector isotopicvector ); ///< Build the needed IV with the Minimization Method 00068 00069 void UpdateParcStock(); 00070 void DumpParcStock(); 00071 00072 00073 00074 00075 00076 00077 //********* Evolution Method *********// 00078 void BuildTimeVector(long int t); 00079 void Evolution(long int t); 00080 void TreatmentEvolution(); 00081 void ReactorEvolution(); 00082 void RemoveReactor(); 00083 00084 00085 void AddTotalWaste(IsotopicVector IV) {fIVTotal +=IV; fTotalWaste +=IV;} 00086 void AddTotalStock(IsotopicVector IV) {fIVTotal +=IV; fIVInCycleTotal +=IV; fTotalStock +=IV;} 00087 void RemoveTotalStock(IsotopicVector IV) {fIVTotal -=IV; fIVInCycleTotal -=IV; fTotalStock -=IV;} 00088 void AddTotalCooling(IsotopicVector IV) {fIVTotal +=IV; fIVInCycleTotal +=IV; fTotalCooling +=IV;} 00089 void RemoveTotalCooling(IsotopicVector IV) {fIVTotal -=IV; fIVInCycleTotal -=IV; fTotalCooling -=IV;} 00090 void AddTotalSeparating(IsotopicVector IV) {fIVTotal +=IV; fIVInCycleTotal +=IV; fTotalSeparating +=IV;} 00091 void RemoveTotalSeparating(IsotopicVector IV) {fIVTotal -=IV; fIVInCycleTotal -=IV; fTotalSeparating -=IV;} 00092 void AddTotalInReactor(IsotopicVector IV) {fIVTotal +=IV; fIVInCycleTotal +=IV; fTotalInReactor +=IV;} 00093 void RemoveTotalInReactor(IsotopicVector IV) {fIVTotal -=IV; fIVInCycleTotal -=IV; fTotalInReactor -=IV;} 00094 void AddIVInCycleTotal(IsotopicVector IV) {fIVTotal +=IV; fIVInCycleTotal +=IV;} 00095 void AddIVTotal(IsotopicVector IV) {fIVTotal +=IV;} 00096 void AddTotalGodIncome(IsotopicVector IV) {fTotalGodIncome +=IV;} 00097 00098 //********* In/Out related Method *********// 00099 void ProgressPrintout(int starttime, long int t); 00100 00101 void Print(); 00102 void Write(); 00103 00104 void OpenOutputTree(); 00105 void CloseOutputTree(); 00106 void OutAttach(); 00107 void ResetQuantity(); 00108 00109 00110 00111 00112 protected : 00113 long int fPrintStep; 00114 long int fAbsoluteTime; 00115 map<long int, int> fTimeStep; 00116 00117 00118 00119 vector<TreatmentFactory*> fTreatmentFactory; 00120 vector<int> fTreatmentFactoryIndex; 00121 int fTreatmentFactoryLastIndex; 00122 vector<Reactor*> fReactor; 00123 vector<int> fReactorIndex; 00124 int fReactorLastIndex; 00125 00126 bool fStockManagement; 00127 int fBuildingMethod; 00128 00129 00130 LogFile* fLog; 00131 00132 string fOutputName; 00133 TFile* fOutTree; 00134 TTree* fOutT; 00135 00136 IsotopicVector fTotalWaste; 00137 IsotopicVector fTotalStock; 00138 IsotopicVector fTotalGodIncome; 00139 IsotopicVector fTotalCooling; 00140 IsotopicVector fTotalSeparating; 00141 00142 IsotopicVector fTotalInReactor; 00143 00144 IsotopicVector fIVInCycleTotal; 00145 IsotopicVector fIVTotal; 00146 00147 map< pair<int,int>, IsotopicVector > fParcStock; 00148 00149 00150 }; 00151 00152 00153 #endif