00001
00007
00008
00009
00010
00011 #if !defined(LAMBDMGR_HPP)
00012 #define LAMBDMGR_HPP
00013
00014 const int kLambdaNumToStart = 16;
00015 const int kLambdaMultiplier = 4;
00016
00017
00018 class ALambdaManager {
00019 private:
00020 ALambdaControl* m_pPmfBlocks;
00021 int m_NumObjects;
00022 int m_MaxNum;
00023
00024 int m_ActiveIndex;
00025 ALambdaControl m_Dummy;
00026
00027 public:
00028 ALambdaManager();
00029 ~ALambdaManager();
00030 ALambdaControl& operator[] (int index);
00031 void Clear();
00032 int Add(ALambdaControl& PmfBlock);
00033 int GetNumObjects() {return(m_NumObjects);}
00034 Bool_t GetLambdas(double& LambdaKf, double& LambdaRef);
00035 Bool_t IsTimeToPrint();
00036 Bool_t IsFirstStep();
00037 Bool_t IsTimeToPrint_dU_dLambda();
00038 Bool_t IsTimeToClearAccumulator();
00039 Bool_t IsEndOf_MCTI_Step();
00040 Bool_t IsEndOf_MCTI();
00041 int GetNumStepsSoFar();
00042 int GetNumAccumStepsSoFar();
00043 void PrintHeader(double dT);
00044 void PrintLambdaHeader(double dT);
00045 void Print_dU_dLambda_Summary(double Sum_dU_dLambdas);
00046 void PrintSomeSpaces();
00047 void Print_MCTI_Integration();
00048 void IncCurrStep() {m_Dummy.IncCurrStep();}
00049 int GetTotalNumSteps();
00050 void Integrate_MCTI();
00051 void Accumulate(double dU_dLambda);
00052 double GetAccumulation();
00053 double GetIntegration();
00054 void ZeroAccumulator();
00055 int GetNum_dU_dLambda();
00056 };
00057
00058 #endif
00059