00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef _eoEsMutationInit_h
00028 #define _eoEsMutationInit_h
00029
00030 #include <utils/eoParser.h>
00031
00047 class eoEsMutationInit
00048 {
00049 public :
00050
00056 eoEsMutationInit(eoParser& _parser,
00057 std::string _section="ES mutation parameters" ) :
00058 parser(_parser), repSection(_section),
00059 TauLclParam(0), TauGlbParam(0), TauBetaParam(0) {}
00060
00062 virtual ~eoEsMutationInit() {}
00063
00065 double TauLcl(void)
00066 {
00067 if (TauLclParam == 0)
00068 {
00069 TauLclParam = &parser.getORcreateParam(1.0, TauLclName(),
00070 "Local Tau (before normalization)",
00071 TauLclShort(), section());
00072 }
00073 return TauLclParam->value();
00074 }
00075
00077 double TauGlb(void)
00078 {
00079 if (TauGlbParam == 0)
00080 {
00081 TauGlbParam = &parser.getORcreateParam(1.0, TauGlbName(),
00082 "Global Tau (before normalization)",
00083 TauGlbShort(), section());
00084 }
00085 return TauGlbParam->value();
00086 }
00087
00089 double TauBeta(void)
00090 {
00091 if (TauBetaParam == 0)
00092 {
00093 TauBetaParam = &parser.getORcreateParam(0.0873, TauBetaName(),
00094 "Beta", TauBetaShort(), section());
00095 }
00096 return TauBetaParam->value();
00097 }
00098
00099 protected :
00100
00101 virtual std::string section(void) { return repSection; }
00102
00103 virtual std::string TauLclName(void) const { return "TauLoc"; }
00104 virtual char TauLclShort(void) const { return 'l'; }
00105
00106 virtual std::string TauGlbName(void) const { return "TauGlob"; }
00107 virtual char TauGlbShort(void) const { return 'g'; }
00108
00109 virtual std::string TauBetaName(void) const { return "Beta"; }
00110 virtual char TauBetaShort(void) const { return 'b'; }
00111
00112 private:
00113
00114 eoParser& parser;
00115 std::string repSection;
00116 eoValueParam<double>* TauLclParam;
00117 eoValueParam<double>* TauGlbParam;
00118 eoValueParam<double>* TauBetaParam;
00119 };
00120
00121 #endif