source: trunk/source/intercoms/include/G4UIcmdWithADoubleAndUnit.hh @ 821

Last change on this file since 821 was 821, checked in by garnier, 16 years ago

import all except CVS

File size: 5.6 KB
Line 
1//
2// ********************************************************************
3// * License and Disclaimer                                           *
4// *                                                                  *
5// * The  Geant4 software  is  copyright of the Copyright Holders  of *
6// * the Geant4 Collaboration.  It is provided  under  the terms  and *
7// * conditions of the Geant4 Software License,  included in the file *
8// * LICENSE and available at  http://cern.ch/geant4/license .  These *
9// * include a list of copyright holders.                             *
10// *                                                                  *
11// * Neither the authors of this software system, nor their employing *
12// * institutes,nor the agencies providing financial support for this *
13// * work  make  any representation or  warranty, express or implied, *
14// * regarding  this  software system or assume any liability for its *
15// * use.  Please see the license in the file  LICENSE  and URL above *
16// * for the full disclaimer and the limitation of liability.         *
17// *                                                                  *
18// * This  code  implementation is the result of  the  scientific and *
19// * technical work of the GEANT4 collaboration.                      *
20// * By using,  copying,  modifying or  distributing the software (or *
21// * any work based  on the software)  you  agree  to acknowledge its *
22// * use  in  resulting  scientific  publications,  and indicate your *
23// * acceptance of all terms of the Geant4 Software license.          *
24// ********************************************************************
25//
26//
27// $Id: G4UIcmdWithADoubleAndUnit.hh,v 1.8 2006/06/29 19:07:57 gunter Exp $
28// GEANT4 tag $Name:  $
29//
30//
31
32#ifndef G4UIcmdWithADoubleAndUnit_H
33#define G4UIcmdWithADoubleAndUnit_H 1
34
35#include "G4UIcommand.hh"
36
37// class description:
38//  A concrete class of G4UIcommand. The command defined by this class
39// takes a double value and a unit string.
40//  General information of G4UIcommand is given in G4UIcommand.hh.
41
42class G4UIcmdWithADoubleAndUnit : public G4UIcommand
43{
44  public: // with description
45    G4UIcmdWithADoubleAndUnit
46    (const char * theCommandPath,G4UImessenger * theMessenger);
47    //  Constructor. The command string with full path directory
48    // and the pointer to the messenger must be given.   
49    static G4double GetNewDoubleValue(const char* paramString);
50    //  Convert string which represents a double value and a unit to
51    // double. Value is converted to the Geant4 internal unit.
52    static G4double GetNewDoubleRawValue(const char* paramString);
53    //  Convert string which represents a double value and a unit to
54    // double. Value is NOT converted to the Geant4 internal unit
55    // but just as the given string.
56    static G4double GetNewUnitValue(const char* paramString);
57    //  Convert the unit string to the value of the unit. "paramString"
58    // must contain a double value AND a unit string.
59    G4String ConvertToStringWithBestUnit(G4double val);
60    //  Convert a double value to a string of digits and unit. Best unit is
61    // chosen from the unit category of default unit (in case SetDefaultUnit()
62    //  is defined) or category defined by SetUnitCategory().
63    G4String ConvertToStringWithDefaultUnit(G4double val);
64    //  Convert a double value to a string of digits and unit. Best unit is
65    // chosen from the category defined by SetUnitCategory() in case default
66    // unit is not defined.
67    void SetParameterName(const char * theName,G4bool omittable,
68                          G4bool currentAsDefault=false);
69    //  Set the parameter name for double parameterxs. Name is used by
70    // the range checking routine.
71    //  If "omittable" is set as true, the user of this command can ommit
72    // the value when he/she applies the command. If "omittable" is false,
73    // the user must supply a value.
74    //  "currentAsDefault" flag is valid only if "omittable" is true. If this
75    // flag is true, the current value is used as the default value when the
76    // user ommit the double parameter. If this flag is false, the value
77    // given by the next SetDefaultValue() method is used.
78    void SetDefaultValue(G4double defVal);
79    //  Set the default value of the parameter. This default value is used
80    // when the user of this command ommits the parameter value, and
81    // "ommitable" is true and "curreutAsDefault" is false.
82    void SetUnitCategory(const char * unitCategory);
83    void SetUnitCandidates(const char * candidateList);
84    void SetDefaultUnit(const char * defUnit);
85    //  These three methods must be used alternatively.
86    //  The user cannot ommit the unit as the second parameter of the command if
87    // SetUnitCategory() or SetUnitCandidates() is used, while the unit defined
88    // by SetDefaultUnit() method is used as the default unit so that the user can
89    // ommits the second parameter.
90    //  SetUnitCategory() defines the category of the units which will be accepted.
91    // The available categories can be found in G4SystemOfUnits.hh in global category.
92    // Only the units categorized in the given category are accepted as the second
93    // parameter of the command.
94    //  SetUnitCandidates() defines the candidates of units. Units listed in the
95    // argument of this method must be separated by space(s). Only the units listed
96    // in the candidate list are accepted as the second parameter of the command.
97    //  SetDefaultUnit() defines the default unit and also it defines the category
98    // of the allowed units. Thus only the units categorized as the given default
99    // unit will be accepted.
100};
101
102#endif
Note: See TracBrowser for help on using the repository browser.