Geant4
9.6.p02
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
geant4_9_6_p02
source
intercoms
include
G4UIcmdWith3VectorAndUnit.hh
Go to the documentation of this file.
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$
28
//
29
//
30
31
#ifndef G4UIcmdWith3VectorAndUnit_H
32
#define G4UIcmdWith3VectorAndUnit_H 1
33
34
#include "
G4UIcommand.hh
"
35
#include "
G4ThreeVector.hh
"
36
37
// class description:
38
// A concrete class of G4UIcommand. The command defined by this class
39
// takes three double values and a unit.
40
// General information of G4UIcommand is given in G4UIcommand.hh.
41
42
class
G4UIcmdWith3VectorAndUnit
:
public
G4UIcommand
43
{
44
public
:
// with description
45
G4UIcmdWith3VectorAndUnit
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
virtual
G4int
DoIt
(
G4String
parameterList);
50
static
G4ThreeVector
GetNew3VectorValue
(
const
char
* paramString);
51
// Convert string which represents three double values and a unit to
52
// G4ThreeVector. Values are converted to the Geant4 internal unit.
53
static
G4ThreeVector
GetNew3VectorRawValue
(
const
char
* paramString);
54
// Convert string which represents three double values and a unit to
55
// G4ThreeVector. Values are NOT converted to the Geant4 internal unit
56
// but just as the given string.
57
static
G4double
GetNewUnitValue
(
const
char
* paramString);
58
// Convert the unit string to the value of the unit. "paramString"
59
// must contain three double values AND a unit string.
60
G4String
ConvertToStringWithBestUnit
(
G4ThreeVector
vec);
61
// Convert a 3 vector value to a string of digits and unit. Best unit is
62
// chosen from the unit category of default unit (in case SetDefaultUnit()
63
// is defined) or category defined by SetUnitCategory().
64
G4String
ConvertToStringWithDefaultUnit
(
G4ThreeVector
vec);
65
// Convert a 3 vector value to a string of digits and unit. Best unit is
66
// chosen from the category defined by SetUnitCategory() in case default
67
// unit is not defined.
68
void
SetParameterName
(
const
char
* theNameX,
const
char
* theNameY,
69
const
char
* theNameZ,
G4bool
omittable,
G4bool
currentAsDefault=
false
);
70
// Set the parameter names for three parameters. Names are used by
71
// the range checking routine.
72
// If "omittable" is set as true, the user of this command can ommit
73
// the value(s) when he/she applies the command. If "omittable" is false,
74
// the user must supply all three values.
75
// "currentAsDefault" flag is valid only if "omittable" is true. If this
76
// flag is true, the current values are used as the default values when the
77
// user ommit some of the parameters. If this flag is false, the values
78
// given by the next SetDefaultValue() method are used.
79
void
SetDefaultValue
(
G4ThreeVector
defVal);
80
// Set the default values of the parameters. These default values are used
81
// when the user of this command ommits some of the parameter values, and
82
// "ommitable" is true and "currentAsDefault" is false.
83
void
SetUnitCategory
(
const
char
* unitCategory);
84
void
SetUnitCandidates
(
const
char
* candidateList);
85
void
SetDefaultUnit
(
const
char
* defUnit);
86
// These three methods must be used alternatively.
87
// The user cannot ommit the unit as the fourth parameter of the command if
88
// SetUnitCategory() or SetUnitCandidates() is used, while the unit defined
89
// by SetDefaultUnit() method is used as the default unit so that the user can
90
// ommits the fourth parameter.
91
// SetUnitCategory() defines the category of the units which will be accepted.
92
// The available categories can be found in G4SystemOfUnits.hh in global category.
93
// Only the units categorized in the given category are accepted as the fourth
94
// parameter of the command.
95
// SetUnitCandidates() defines the candidates of units. Units listed in the
96
// argument of this method must be separated by space(s). Only the units listed
97
// in the candidate list are accepted as the fourth parameter of the command.
98
// SetDefaultUnit() defines the default unit and also it defines the category
99
// of the allowed units. Thus only the units categorized as the given default
100
// unit will be accepted.
101
};
102
103
#endif
Generated on Sat May 25 2013 14:33:19 for Geant4 by
1.8.4