Geant4 11.4.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4GlobalMagFieldMessenger Class Reference

G4GlobalMagFieldMessenger, a global uniform magnetic field messenger class. It creates/deletes the global uniform magnetic field and activates/inactivates it according to the set field value. The field value can be changed either interactively via the UI command or via the SetFieldValue() function. More...

#include <G4GlobalMagFieldMessenger.hh>

Inheritance diagram for G4GlobalMagFieldMessenger:

Public Member Functions

 G4GlobalMagFieldMessenger (const G4ThreeVector &value=G4ThreeVector())
 ~G4GlobalMagFieldMessenger () override
void SetNewValue (G4UIcommand *, G4String) override
void SetFieldValue (const G4ThreeVector &value)
G4ThreeVector GetFieldValue () const
void SetVerboseLevel (G4int verboseLevel)
G4int GetVerboseLevel () const
Public Member Functions inherited from G4UImessenger
 G4UImessenger ()=default
 G4UImessenger (const G4String &path, const G4String &dsc, G4bool commandsToBeBroadcasted=true)
virtual ~G4UImessenger ()
virtual G4String GetCurrentValue (G4UIcommand *command)
G4bool CommandsShouldBeInMaster () const

Additional Inherited Members

Protected Member Functions inherited from G4UImessenger
G4String ItoS (G4int i)
G4String LtoS (G4long l)
G4String DtoS (G4double a)
G4String BtoS (G4bool b)
G4int StoI (const G4String &s)
G4long StoL (const G4String &s)
G4double StoD (const G4String &s)
G4bool StoB (const G4String &s)
void AddUIcommand (G4UIcommand *newCommand)
void CreateDirectory (const G4String &path, const G4String &dsc, G4bool commandsToBeBroadcasted=true)
template<typename T>
T * CreateCommand (const G4String &cname, const G4String &dsc)
Protected Attributes inherited from G4UImessenger
G4UIdirectorybaseDir = nullptr
G4String baseDirName = ""
G4bool commandsShouldBeInMaster = false

Detailed Description

G4GlobalMagFieldMessenger, a global uniform magnetic field messenger class. It creates/deletes the global uniform magnetic field and activates/inactivates it according to the set field value. The field value can be changed either interactively via the UI command or via the SetFieldValue() function.

Definition at line 62 of file G4GlobalMagFieldMessenger.hh.

Constructor & Destructor Documentation

◆ G4GlobalMagFieldMessenger()

G4GlobalMagFieldMessenger::G4GlobalMagFieldMessenger ( const G4ThreeVector & value = G4ThreeVector())

Constructor and Destructor.

Definition at line 43 of file G4GlobalMagFieldMessenger.cc.

44{
45 fDirectory = new G4UIdirectory("/globalField/");
46 fDirectory->SetGuidance("Global uniform magnetic field UI commands");
47
48 fSetValueCmd = new G4UIcmdWith3VectorAndUnit("/globalField/setValue",this);
49 fSetValueCmd->SetGuidance("Set uniform magnetic field value.");
50 fSetValueCmd->SetParameterName("Bx", "By", "By", false);
51 fSetValueCmd->SetUnitCategory("Magnetic flux density");
52 fSetValueCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
53
54 fSetVerboseCmd = new G4UIcmdWithAnInteger("/globalField/verbose",this);
55 fSetVerboseCmd->SetGuidance("Set verbose level: ");
56 fSetVerboseCmd->SetGuidance(" 0: no output");
57 fSetVerboseCmd->SetGuidance(" 1: printing new field value");
58 fSetVerboseCmd->SetParameterName("globalFieldVerbose", false);
59 fSetVerboseCmd->SetRange("globalFieldVerbose>=0");
60 fSetVerboseCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
61
62 // Create field
63 fMagField = new G4UniformMagField(value);
64
65 // Set field value (the field is not activated if value is zero)
66 SetField(value, "G4GlobalMagFieldMessenger::G4GlobalMagFieldMessenger");
67}
@ G4State_Idle
@ G4State_PreInit

◆ ~G4GlobalMagFieldMessenger()

G4GlobalMagFieldMessenger::~G4GlobalMagFieldMessenger ( )
override

Definition at line 71 of file G4GlobalMagFieldMessenger.cc.

72{
73 delete fMagField;
74 delete fSetValueCmd;
75 delete fSetVerboseCmd;
76 delete fDirectory;
77}

Member Function Documentation

◆ GetFieldValue()

G4ThreeVector G4GlobalMagFieldMessenger::GetFieldValue ( ) const

Definition at line 138 of file G4GlobalMagFieldMessenger.cc.

139{
140 if ( fMagField != nullptr ) { return fMagField->GetConstantFieldValue(); }
141
142 return {};
143}

◆ GetVerboseLevel()

G4int G4GlobalMagFieldMessenger::GetVerboseLevel ( ) const
inline

Definition at line 110 of file G4GlobalMagFieldMessenger.hh.

111{
112 return fVerboseLevel;
113}

◆ SetFieldValue()

void G4GlobalMagFieldMessenger::SetFieldValue ( const G4ThreeVector & value)

Setter and accessor for the field value.

Definition at line 131 of file G4GlobalMagFieldMessenger.cc.

132{
133 SetField(value, "G4GlobalMagFieldMessenger::SetFieldValue");
134}

◆ SetNewValue()

void G4GlobalMagFieldMessenger::SetNewValue ( G4UIcommand * command,
G4String newValue )
overridevirtual

Setter for UI command.

Reimplemented from G4UImessenger.

Definition at line 116 of file G4GlobalMagFieldMessenger.cc.

117{
118 if ( command == fSetValueCmd )
119 {
120 SetField(fSetValueCmd->GetNew3VectorValue(newValue),
121 "G4GlobalMagFieldMessenger::SetNewValue");
122 }
123 else if ( command == fSetVerboseCmd )
124 {
125 SetVerboseLevel(fSetVerboseCmd->GetNewIntValue(newValue));
126 }
127}
void SetVerboseLevel(G4int verboseLevel)

◆ SetVerboseLevel()

void G4GlobalMagFieldMessenger::SetVerboseLevel ( G4int verboseLevel)
inline

Verbosity control.

Definition at line 105 of file G4GlobalMagFieldMessenger.hh.

106{
107 fVerboseLevel = verboseLevel;
108}

Referenced by SetNewValue().


The documentation for this class was generated from the following files: