Loading...
Searching...
No Matches
Public Member Functions | Private Attributes | List of all members
F03FieldMessenger Class Reference

#include <Doxymodules_field.h>

Inheritance diagram for F03FieldMessenger:
G4UImessenger

Public Member Functions

 F03FieldMessenger (F03FieldSetup *)
 
 ~F03FieldMessenger () override
 
void SetNewValue (G4UIcommand *, G4String) override
 

Private Attributes

F03FieldSetupfEMfieldSetup = nullptr
 
G4UIdirectoryfFieldDir = nullptr
 
G4UIcmdWithAnIntegerfStepperCmd = nullptr
 
G4UIcmdWithADoubleAndUnitfMagFieldZCmd = nullptr
 
G4UIcmdWith3VectorAndUnitfMagFieldCmd = nullptr
 
G4UIcmdWith3VectorAndUnitfLocalMagFieldCmd = nullptr
 
G4UIcmdWithADoubleAndUnitfMinStepCmd = nullptr
 
G4UIcmdWithoutParameterfUpdateCmd = nullptr
 

Detailed Description

Definition at line 83 of file Doxymodules_field.h.

Constructor & Destructor Documentation

◆ F03FieldMessenger()

F03FieldMessenger::F03FieldMessenger ( F03FieldSetup fieldSetup)

Definition at line 47 of file F03FieldMessenger.cc.

48 : fEMfieldSetup(fieldSetup)
49{
50 fFieldDir = new G4UIdirectory("/field/");
51 fFieldDir->SetGuidance("F03 field tracking control.");
52
53 fStepperCmd = new G4UIcmdWithAnInteger("/field/setStepperType",this);
54 fStepperCmd->SetGuidance("Select stepper type for magnetic field");
55 fStepperCmd->SetParameterName("choice",true);
56 fStepperCmd->SetDefaultValue(4);
57 fStepperCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
58
59 fUpdateCmd = new G4UIcmdWithoutParameter("/field/update",this);
60 fUpdateCmd->SetGuidance("Update calorimeter geometry.");
61 fUpdateCmd->SetGuidance("This command MUST be applied before \"beamOn\" ");
62 fUpdateCmd->SetGuidance("if you changed geometrical value(s).");
63 fUpdateCmd->AvailableForStates(G4State_Idle);
64
65 fMagFieldZCmd = new G4UIcmdWithADoubleAndUnit("/field/setFieldZ",this);
66 fMagFieldZCmd->SetGuidance("Define global magnetic field.");
67 fMagFieldZCmd->SetGuidance("Global magnetic field will be in Z direction.");
68 fMagFieldZCmd->SetParameterName("Bz",false,false);
69 fMagFieldZCmd->SetDefaultUnit("tesla");
70 fMagFieldZCmd->AvailableForStates(G4State_Idle);
71
72 fMagFieldCmd = new G4UIcmdWith3VectorAndUnit("/field/setField",this);
73 fMagFieldCmd->SetGuidance("Define global magnetic field.");
74 fMagFieldCmd->SetParameterName("Bx","By","Bz",false,false);
75 fMagFieldCmd->SetDefaultUnit("tesla");
76 fMagFieldCmd->AvailableForStates(G4State_Idle);
77
78 fLocalMagFieldCmd = new G4UIcmdWith3VectorAndUnit("/field/setLocalField",this);
79 fLocalMagFieldCmd->SetGuidance("Define local magnetic field.");
80 fLocalMagFieldCmd->SetParameterName("Blx","Bly","Blz",false,false);
81 fLocalMagFieldCmd->SetDefaultUnit("tesla");
82 fLocalMagFieldCmd->AvailableForStates(G4State_Idle);
83
84 fMinStepCmd = new G4UIcmdWithADoubleAndUnit("/field/setMinStep",this);
85 fMinStepCmd->SetGuidance("Define minimal step");
86 fMinStepCmd->SetGuidance("Magnetic field will be in Z direction.");
87 fMinStepCmd->SetParameterName("min step",false,false);
88 fMinStepCmd->SetDefaultUnit("mm");
89 fMinStepCmd->AvailableForStates(G4State_Idle);
90}
G4UIcmdWithAnInteger * fStepperCmd
G4UIdirectory * fFieldDir
G4UIcmdWith3VectorAndUnit * fLocalMagFieldCmd
G4UIcmdWithoutParameter * fUpdateCmd
G4UIcmdWith3VectorAndUnit * fMagFieldCmd
G4UIcmdWithADoubleAndUnit * fMagFieldZCmd
G4UIcmdWithADoubleAndUnit * fMinStepCmd
F03FieldSetup * fEMfieldSetup

◆ ~F03FieldMessenger()

F03FieldMessenger::~F03FieldMessenger ( )
override

Definition at line 94 of file F03FieldMessenger.cc.

95{
96 delete fStepperCmd;
97 delete fMagFieldZCmd;
98 delete fMagFieldCmd;
99 delete fLocalMagFieldCmd;
100 delete fMinStepCmd;
101 delete fFieldDir;
102 delete fUpdateCmd;
103}

Member Function Documentation

◆ SetNewValue()

void F03FieldMessenger::SetNewValue ( G4UIcommand command,
G4String  newValue 
)
override

Definition at line 107 of file F03FieldMessenger.cc.

108{
109 if( command == fStepperCmd )
110 fEMfieldSetup->SetStepperType(fStepperCmd->GetNewIntValue(newValue));
111 if( command == fUpdateCmd )
113 if( command == fMagFieldZCmd )
114 {
115 fEMfieldSetup->SetFieldZValue(fMagFieldZCmd->GetNewDoubleValue(newValue));
116 // Check the value
117 G4cout << "Set global field value to " <<
118 fEMfieldSetup->GetGlobalFieldValue() / gauss << " Gauss " << G4endl;
119 }
120 if( command == fMagFieldCmd )
121 {
122 fEMfieldSetup->SetFieldValue(fMagFieldCmd->GetNew3VectorValue(newValue));
123 // Check the value
124 G4cout << "Set global field value to " <<
125 fEMfieldSetup->GetGlobalFieldValue() / gauss << " Gauss " << G4endl;
126 }
127 if( command == fLocalMagFieldCmd )
128 {
129 fEMfieldSetup->SetLocalFieldValue(fLocalMagFieldCmd->GetNew3VectorValue(newValue));
131 // Check the value
132 G4cout << "Set local field value to " <<
133 fEMfieldSetup->GetLocalFieldValue() / gauss << " Gauss " << G4endl;
134 }
135 if( command == fMinStepCmd )
136 fEMfieldSetup->SetMinStep(fMinStepCmd->GetNewDoubleValue(newValue));
137}
G4ThreeVector GetGlobalFieldValue() const
void SetMinStep(G4double s)
void SetFieldValue(G4ThreeVector fieldVector)
void SetLocalFieldValue(G4ThreeVector fieldVector)
void SetStepperType(G4int i)
G4ThreeVector GetLocalFieldValue() const
void SetFieldZValue(G4double fieldValue)

Member Data Documentation

◆ fEMfieldSetup

F03FieldSetup* F03FieldMessenger::fEMfieldSetup = nullptr
private

Definition at line 59 of file F03FieldMessenger.hh.

◆ fFieldDir

G4UIdirectory* F03FieldMessenger::fFieldDir = nullptr
private

Definition at line 61 of file F03FieldMessenger.hh.

◆ fStepperCmd

G4UIcmdWithAnInteger* F03FieldMessenger::fStepperCmd = nullptr
private

Definition at line 63 of file F03FieldMessenger.hh.

◆ fMagFieldZCmd

G4UIcmdWithADoubleAndUnit* F03FieldMessenger::fMagFieldZCmd = nullptr
private

Definition at line 64 of file F03FieldMessenger.hh.

◆ fMagFieldCmd

G4UIcmdWith3VectorAndUnit* F03FieldMessenger::fMagFieldCmd = nullptr
private

Definition at line 65 of file F03FieldMessenger.hh.

◆ fLocalMagFieldCmd

G4UIcmdWith3VectorAndUnit* F03FieldMessenger::fLocalMagFieldCmd = nullptr
private

Definition at line 66 of file F03FieldMessenger.hh.

◆ fMinStepCmd

G4UIcmdWithADoubleAndUnit* F03FieldMessenger::fMinStepCmd = nullptr
private

Definition at line 67 of file F03FieldMessenger.hh.

◆ fUpdateCmd

G4UIcmdWithoutParameter* F03FieldMessenger::fUpdateCmd = nullptr
private

Definition at line 68 of file F03FieldMessenger.hh.


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

Applications | User Support | Publications | Collaboration