CLASS  1.1
include/CLASS.hxx
Aller à la documentation de ce fichier.
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
 Tout Classes Fichiers Fonctions Variables Macros