#include <G4UIcmdWithADoubleAndUnit.hh>
Inheritance diagram for G4UIcmdWithADoubleAndUnit:
Public Member Functions | |
G4UIcmdWithADoubleAndUnit (const char *theCommandPath, G4UImessenger *theMessenger) | |
virtual G4int | DoIt (G4String parameterList) |
G4String | ConvertToStringWithBestUnit (G4double val) |
G4String | ConvertToStringWithDefaultUnit (G4double val) |
void | SetParameterName (const char *theName, G4bool omittable, G4bool currentAsDefault=false) |
void | SetDefaultValue (G4double defVal) |
void | SetUnitCategory (const char *unitCategory) |
void | SetUnitCandidates (const char *candidateList) |
void | SetDefaultUnit (const char *defUnit) |
Static Public Member Functions | |
static G4double | GetNewDoubleValue (const char *paramString) |
static G4double | GetNewDoubleRawValue (const char *paramString) |
static G4double | GetNewUnitValue (const char *paramString) |
Definition at line 41 of file G4UIcmdWithADoubleAndUnit.hh.
G4UIcmdWithADoubleAndUnit::G4UIcmdWithADoubleAndUnit | ( | const char * | theCommandPath, | |
G4UImessenger * | theMessenger | |||
) |
Definition at line 38 of file G4UIcmdWithADoubleAndUnit.cc.
References G4UIparameter::SetParameterName().
00039 :G4UIcommand(theCommandPath,theMessenger) 00040 { 00041 G4UIparameter * dblParam = new G4UIparameter('d'); 00042 SetParameter(dblParam); 00043 G4UIparameter * untParam = new G4UIparameter('s'); 00044 SetParameter(untParam); 00045 untParam->SetParameterName("Unit"); 00046 }
Definition at line 108 of file G4UIcmdWithADoubleAndUnit.cc.
References G4UIcommand::CategoryOf(), G4BestUnit, G4UIcommand::GetParameter(), and G4UIparameter::GetParameterCandidates().
Referenced by ConvertToStringWithDefaultUnit().
00109 { 00110 G4UIparameter* unitParam = GetParameter(1); 00111 G4String canList = unitParam->GetParameterCandidates(); 00112 G4Tokenizer candidateTokenizer(canList); 00113 G4String aToken = candidateTokenizer(); 00114 std::ostringstream os; 00115 os << G4BestUnit(val,CategoryOf(aToken)); 00116 00117 G4String st = os.str(); 00118 return st; 00119 }
Definition at line 121 of file G4UIcmdWithADoubleAndUnit.cc.
References G4UIcommand::ConvertToString(), ConvertToStringWithBestUnit(), G4UIparameter::GetDefaultValue(), G4UIcommand::GetParameter(), and G4UIparameter::IsOmittable().
00122 { 00123 G4UIparameter* unitParam = GetParameter(1); 00124 G4String st; 00125 if(unitParam->IsOmittable()) 00126 { st = ConvertToString(val,unitParam->GetDefaultValue()); } 00127 else 00128 { st = ConvertToStringWithBestUnit(val); } 00129 return st; 00130 }
Reimplemented from G4UIcommand.
Definition at line 48 of file G4UIcmdWithADoubleAndUnit.cc.
References G4UIcommand::ConvertToDouble(), G4UIcommand::ConvertToString(), G4UIcommand::DoIt(), G4UIcommand::GetParameter(), and G4UIcommand::ValueOf().
00049 { 00050 std::vector<G4String> token_vector; 00051 G4Tokenizer tkn(parameterList); 00052 G4String str; 00053 while( (str = tkn()) != "" ) { 00054 token_vector.push_back(str); 00055 } 00056 00057 // convert a value in default unit 00058 G4String converted_parameter; 00059 G4String default_unit = GetParameter(1)-> GetDefaultValue(); 00060 if (default_unit != "" && token_vector.size() >= 2) { 00061 G4double value_given = ValueOf(token_vector[1]); 00062 G4double value_default = ValueOf(default_unit); 00063 G4double value = ConvertToDouble(token_vector[0]) 00064 * value_given / value_default; 00065 // reconstruct parameter list 00066 converted_parameter += ConvertToString(value); 00067 converted_parameter += " "; 00068 converted_parameter += default_unit; 00069 for ( size_t i=2 ; i< token_vector.size(); i++) { 00070 converted_parameter += " "; 00071 converted_parameter += token_vector[i]; 00072 } 00073 } else { 00074 converted_parameter = parameterList; 00075 } 00076 00077 return G4UIcommand::DoIt(converted_parameter); 00078 }
G4double G4UIcmdWithADoubleAndUnit::GetNewDoubleRawValue | ( | const char * | paramString | ) | [static] |
Definition at line 85 of file G4UIcmdWithADoubleAndUnit.cc.
00086 { 00087 G4double vl; 00088 char unts[30]; 00089 00090 std::istringstream is(paramString); 00091 is >> vl >> unts; 00092 00093 return vl; 00094 }
G4double G4UIcmdWithADoubleAndUnit::GetNewDoubleValue | ( | const char * | paramString | ) | [static] |
Definition at line 80 of file G4UIcmdWithADoubleAndUnit.cc.
References G4UIcommand::ConvertToDimensionedDouble().
Referenced by G4ModelCmdSetStepPtsSize< M >::Apply(), G4ModelCmdSetAuxPtsSize< M >::Apply(), GFlashShowerModelMessenger::SetNewValue(), G4VisCommandViewerDolly::SetNewValue(), G4UserPhysicsListMessenger::SetNewValue(), G4ScoringMessenger::SetNewValue(), G4RTMessenger::SetNewValue(), G4RadioactiveDecaymessenger::SetNewValue(), G4ProductionCutsTableMessenger::SetNewValue(), G4ParticlePropertyMessenger::SetNewValue(), G4ParticleGunMessenger::SetNewValue(), G4NeutronKillerMessenger::SetNewValue(), G4ModelCmdApplyDoubleAndUnit< M >::SetNewValue(), G4HadronicEPTestMessenger::SetNewValue(), G4GeometryMessenger::SetNewValue(), G4GeneralParticleSourceMessenger::SetNewValue(), G4ErrorMessenger::SetNewValue(), G4EnergyLossMessenger::SetNewValue(), and G4AdjointSimMessenger::SetNewValue().
00081 { 00082 return ConvertToDimensionedDouble(paramString); 00083 }
G4double G4UIcmdWithADoubleAndUnit::GetNewUnitValue | ( | const char * | paramString | ) | [static] |
Definition at line 96 of file G4UIcmdWithADoubleAndUnit.cc.
References G4UIcommand::ValueOf().
00097 { 00098 G4double vl; 00099 char unts[30]; 00100 00101 std::istringstream is(paramString); 00102 is >> vl >> unts; 00103 G4String unt = unts; 00104 00105 return ValueOf(unt); 00106 }
void G4UIcmdWithADoubleAndUnit::SetDefaultUnit | ( | const char * | defUnit | ) |
Definition at line 159 of file G4UIcmdWithADoubleAndUnit.cc.
References G4UIcommand::CategoryOf(), G4UIcommand::GetParameter(), G4UIparameter::SetDefaultValue(), G4UIparameter::SetOmittable(), and SetUnitCategory().
Referenced by G4ErrorMessenger::G4ErrorMessenger(), G4GeometryMessenger::G4GeometryMessenger(), G4ParticleGunMessenger::G4ParticleGunMessenger(), G4ParticlePropertyMessenger::G4ParticlePropertyMessenger(), G4ProductionCutsTableMessenger::G4ProductionCutsTableMessenger(), G4ScoringMessenger::G4ScoringMessenger(), G4UserPhysicsListMessenger::G4UserPhysicsListMessenger(), GFlashShowerModelMessenger::GFlashShowerModelMessenger(), and G4GenericMessenger::Command::SetUnit().
00160 { 00161 G4UIparameter * untParam = GetParameter(1); 00162 untParam->SetOmittable(true); 00163 untParam->SetDefaultValue(defUnit); 00164 SetUnitCategory(CategoryOf(defUnit)); 00165 }
void G4UIcmdWithADoubleAndUnit::SetDefaultValue | ( | G4double | defVal | ) |
Definition at line 141 of file G4UIcmdWithADoubleAndUnit.cc.
References G4UIcommand::GetParameter(), and G4UIparameter::SetDefaultValue().
Referenced by G4GeometryMessenger::G4GeometryMessenger(), G4HadronicEPTestMessenger::G4HadronicEPTestMessenger(), G4ParticlePropertyMessenger::G4ParticlePropertyMessenger(), G4ProductionCutsTableMessenger::G4ProductionCutsTableMessenger(), and G4UserPhysicsListMessenger::G4UserPhysicsListMessenger().
00142 { 00143 G4UIparameter * theParam = GetParameter(0); 00144 theParam->SetDefaultValue(defVal); 00145 }
void G4UIcmdWithADoubleAndUnit::SetParameterName | ( | const char * | theName, | |
G4bool | omittable, | |||
G4bool | currentAsDefault = false | |||
) |
Definition at line 133 of file G4UIcmdWithADoubleAndUnit.cc.
References G4UIparameter::SetCurrentAsDefault(), G4UIparameter::SetOmittable(), and G4UIparameter::SetParameterName().
Referenced by G4AdjointSimMessenger::G4AdjointSimMessenger(), G4EnergyLossMessenger::G4EnergyLossMessenger(), G4GeometryMessenger::G4GeometryMessenger(), G4HadronicEPTestMessenger::G4HadronicEPTestMessenger(), G4ModelCmdApplyDoubleAndUnit< M >::G4ModelCmdApplyDoubleAndUnit(), G4NeutronKillerMessenger::G4NeutronKillerMessenger(), G4ParticleGunMessenger::G4ParticleGunMessenger(), G4ParticlePropertyMessenger::G4ParticlePropertyMessenger(), G4ProductionCutsTableMessenger::G4ProductionCutsTableMessenger(), G4ScoringMessenger::G4ScoringMessenger(), G4UserPhysicsListMessenger::G4UserPhysicsListMessenger(), and GFlashShowerModelMessenger::GFlashShowerModelMessenger().
00134 { 00135 G4UIparameter * theParam = GetParameter(0); 00136 theParam->SetParameterName(theName); 00137 theParam->SetOmittable(omittable); 00138 theParam->SetCurrentAsDefault(currentAsDefault); 00139 }
void G4UIcmdWithADoubleAndUnit::SetUnitCandidates | ( | const char * | candidateList | ) |
Definition at line 152 of file G4UIcmdWithADoubleAndUnit.cc.
References G4UIcommand::GetParameter(), and G4UIparameter::SetParameterCandidates().
Referenced by SetUnitCategory().
00153 { 00154 G4UIparameter * untParam = GetParameter(1); 00155 G4String canList = candidateList; 00156 untParam->SetParameterCandidates(canList); 00157 }
void G4UIcmdWithADoubleAndUnit::SetUnitCategory | ( | const char * | unitCategory | ) |
Definition at line 147 of file G4UIcmdWithADoubleAndUnit.cc.
References SetUnitCandidates(), and G4UIcommand::UnitsList().
Referenced by G4AdjointSimMessenger::G4AdjointSimMessenger(), G4EnergyLossMessenger::G4EnergyLossMessenger(), G4GeometryMessenger::G4GeometryMessenger(), G4HadronicEPTestMessenger::G4HadronicEPTestMessenger(), G4ModelCmdSetTimeSliceInterval< M >::G4ModelCmdSetTimeSliceInterval(), G4NeutronKillerMessenger::G4NeutronKillerMessenger(), GFlashShowerModelMessenger::GFlashShowerModelMessenger(), SetDefaultUnit(), and G4GenericMessenger::Command::SetUnit().
00148 { 00149 SetUnitCandidates(UnitsList(unitCategory)); 00150 }