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

#include <Doxymodules_field.h>

Inheritance diagram for F02FieldMessenger:
G4UImessenger

Public Member Functions

 F02FieldMessenger (F02ElectricFieldSetup *)
 
 ~F02FieldMessenger () override
 
void SetNewValue (G4UIcommand *, G4String) override
 

Private Attributes

F02ElectricFieldSetupfElFieldSetup = nullptr
 
G4UIdirectoryfFieldDir = nullptr
 
G4UIcmdWithAnIntegerfStepperCmd = nullptr
 
G4UIcmdWithADoubleAndUnitfElFieldZCmd = nullptr
 
G4UIcmdWith3VectorAndUnitfElFieldCmd = nullptr
 
G4UIcmdWithADoubleAndUnitfMinStepCmd = nullptr
 
G4UIcmdWithoutParameterfUpdateCmd = nullptr
 

Detailed Description

Definition at line 62 of file Doxymodules_field.h.

Constructor & Destructor Documentation

◆ F02FieldMessenger()

F02FieldMessenger::F02FieldMessenger ( F02ElectricFieldSetup fieldSetup)

Definition at line 45 of file F02FieldMessenger.cc.

46 : fElFieldSetup(fieldSetup)
47{
48 fFieldDir = new G4UIdirectory("/field/");
49 fFieldDir->SetGuidance("F02 field tracking control.");
50
51 fStepperCmd = new G4UIcmdWithAnInteger("/field/setStepperType",this);
52 fStepperCmd->SetGuidance("Select stepper type for electric field");
53 fStepperCmd->SetParameterName("choice",true);
54 fStepperCmd->SetDefaultValue(4);
55 fStepperCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
56
57 fUpdateCmd = new G4UIcmdWithoutParameter("/field/update",this);
58 fUpdateCmd->SetGuidance("Update calorimeter geometry.");
59 fUpdateCmd->SetGuidance("This command MUST be applied before \"beamOn\" ");
60 fUpdateCmd->SetGuidance("if you changed geometrical value(s).");
61 fUpdateCmd->AvailableForStates(G4State_Idle);
62
63 fElFieldZCmd = new G4UIcmdWithADoubleAndUnit("/field/setFieldZ",this);
64 fElFieldZCmd->SetGuidance("Define uniform Electric field.");
65 fElFieldZCmd->SetGuidance("Electric field will be in Z direction.");
66 fElFieldZCmd->SetGuidance("Value of Electric field has to be given in volt/m");
67 fElFieldZCmd->SetParameterName("Ez",false,false);
68 fElFieldZCmd->SetDefaultUnit("megavolt/m");
69 fElFieldZCmd->AvailableForStates(G4State_Idle);
70
71 fElFieldCmd = new G4UIcmdWith3VectorAndUnit("/field/setField",this);
72 fElFieldCmd->SetGuidance("Define uniform Electric field.");
73 fElFieldCmd->SetGuidance("Value of Electric field has to be given in volt/m");
74 fElFieldCmd->SetParameterName("Ex","Ey","Ez",false,false);
75 fElFieldCmd->SetDefaultUnit("megavolt/m");
76 fElFieldCmd->AvailableForStates(G4State_Idle);
77
78 fMinStepCmd = new G4UIcmdWithADoubleAndUnit("/field/setMinStep",this);
79 fMinStepCmd->SetGuidance("Define minimal step");
80 fMinStepCmd->SetParameterName("min step",false,false);
81 fMinStepCmd->SetDefaultUnit("mm");
82 fMinStepCmd->AvailableForStates(G4State_Idle);
83}
G4UIcmdWithoutParameter * fUpdateCmd
G4UIcmdWithADoubleAndUnit * fElFieldZCmd
G4UIcmdWithADoubleAndUnit * fMinStepCmd
G4UIcmdWith3VectorAndUnit * fElFieldCmd
F02ElectricFieldSetup * fElFieldSetup
G4UIdirectory * fFieldDir
G4UIcmdWithAnInteger * fStepperCmd

◆ ~F02FieldMessenger()

F02FieldMessenger::~F02FieldMessenger ( )
override

Definition at line 87 of file F02FieldMessenger.cc.

88{
89 delete fStepperCmd;
90 delete fElFieldZCmd;
91 delete fElFieldCmd;
92 delete fMinStepCmd;
93 delete fFieldDir;
94 delete fUpdateCmd;
95}

Member Function Documentation

◆ SetNewValue()

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

Definition at line 99 of file F02FieldMessenger.cc.

100{
101 if( command == fStepperCmd )
102 fElFieldSetup->SetStepperType(fStepperCmd->GetNewIntValue(newValue));
103 if( command == fUpdateCmd )
105 if( command == fElFieldZCmd )
106 fElFieldSetup->SetFieldZValue(fElFieldZCmd->GetNewDoubleValue(newValue));
107 if( command == fElFieldCmd )
108 fElFieldSetup->SetFieldValue(fElFieldCmd->GetNew3VectorValue(newValue));
109 if( command == fMinStepCmd )
110 fElFieldSetup->SetMinStep(fMinStepCmd->GetNewDoubleValue(newValue));
111}
void SetFieldValue(G4ThreeVector fieldVector)
void SetFieldZValue(G4double fieldValue)

Member Data Documentation

◆ fElFieldSetup

F02ElectricFieldSetup* F02FieldMessenger::fElFieldSetup = nullptr
private

Definition at line 59 of file F02FieldMessenger.hh.

◆ fFieldDir

G4UIdirectory* F02FieldMessenger::fFieldDir = nullptr
private

Definition at line 61 of file F02FieldMessenger.hh.

◆ fStepperCmd

G4UIcmdWithAnInteger* F02FieldMessenger::fStepperCmd = nullptr
private

Definition at line 62 of file F02FieldMessenger.hh.

◆ fElFieldZCmd

G4UIcmdWithADoubleAndUnit* F02FieldMessenger::fElFieldZCmd = nullptr
private

Definition at line 63 of file F02FieldMessenger.hh.

◆ fElFieldCmd

G4UIcmdWith3VectorAndUnit* F02FieldMessenger::fElFieldCmd = nullptr
private

Definition at line 64 of file F02FieldMessenger.hh.

◆ fMinStepCmd

G4UIcmdWithADoubleAndUnit* F02FieldMessenger::fMinStepCmd = nullptr
private

Definition at line 65 of file F02FieldMessenger.hh.

◆ fUpdateCmd

G4UIcmdWithoutParameter* F02FieldMessenger::fUpdateCmd = nullptr
private

Definition at line 66 of file F02FieldMessenger.hh.


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

Applications | User Support | Publications | Collaboration