G4UIcmdWithADoubleAndUnit Class Reference

#include <G4UIcmdWithADoubleAndUnit.hh>

Inheritance diagram for G4UIcmdWithADoubleAndUnit:

G4UIcommand

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)

Detailed Description

Definition at line 41 of file G4UIcmdWithADoubleAndUnit.hh.


Constructor & Destructor Documentation

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 }


Member Function Documentation

G4String G4UIcmdWithADoubleAndUnit::ConvertToStringWithBestUnit ( G4double  val  ) 

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 }

G4String G4UIcmdWithADoubleAndUnit::ConvertToStringWithDefaultUnit ( G4double  val  ) 

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 }

G4int G4UIcmdWithADoubleAndUnit::DoIt ( G4String  parameterList  )  [virtual]

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 }


The documentation for this class was generated from the following files:
Generated on Mon May 27 17:53:36 2013 for Geant4 by  doxygen 1.4.7