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

Detector messenger. More...

#include <Doxymodules_parameterisations.h>

Inheritance diagram for Par03DetectorMessenger:
G4UImessenger

Public Member Functions

 Par03DetectorMessenger (Par03DetectorConstruction *)
 
 ~Par03DetectorMessenger ()
 
virtual void SetNewValue (G4UIcommand *, G4String) final
 Invokes appropriate methods based on the typed command.
 
virtual G4String GetCurrentValue (G4UIcommand *) final
 Retrieves the current settings.
 

Private Attributes

Par03DetectorConstructionfDetector = nullptr
 Detector construction to setup.
 
G4UIdirectoryfExampleDir = nullptr
 Command to set the directory common to all messengers in this example /Par03.
 
G4UIdirectoryfDetectorDir = nullptr
 Command to set the directory for detector settings /Par03/detector.
 
G4UIcmdWithoutParameterfPrintCmd
 Command printing current settings.
 
G4UIcmdWithADoubleAndUnitfDetectorRadiusCmd = nullptr
 Command to set the detector radius.
 
G4UIcmdWithADoubleAndUnitfDetectorLengthCmd = nullptr
 Command to set the detector length.
 
G4UIcmdWithAStringfDetectorMaterialCmd = nullptr
 Command to set the detector material.
 
G4UIcmdWithAnIntegerfNbLayersCmd = nullptr
 Command to set the number of layers.
 
G4UIcmdWithAnIntegerfNbRhoCellsCmd = nullptr
 Command to set the number of radial cells.
 
G4UIcmdWithAnIntegerfNbPhiCellsCmd = nullptr
 Command to set the number of cells in azimuthal angle.
 

Detailed Description

Detector messenger.

Provides UI commands to setup detector and readout geometry (prior to initialization). Radius, length, and material of the detector, as well as segmentation of the readout geometry can be changed.

Definition at line 61 of file Doxymodules_parameterisations.h.

Constructor & Destructor Documentation

◆ Par03DetectorMessenger()

Par03DetectorMessenger::Par03DetectorMessenger ( Par03DetectorConstruction aDetector)

Definition at line 37 of file Par03DetectorMessenger.cc.

40 , fDetector(aDetector)
41{
42 fExampleDir = new G4UIdirectory("/Par03/");
43 fExampleDir->SetGuidance("UI commands specific to this example");
44
45 fDetectorDir = new G4UIdirectory("/Par03/detector/");
46 fDetectorDir->SetGuidance("Detector construction UI commands");
47
48 fPrintCmd = new G4UIcmdWithoutParameter("/Par03/detector/print", this);
49 fPrintCmd->SetGuidance("Print current settings.");
50
52 new G4UIcmdWithADoubleAndUnit("/Par03/detector/setDetectorRadius", this);
53 fDetectorRadiusCmd->SetGuidance(
54 "Set tranverse size of the detector (cylinder radius)");
55 fDetectorRadiusCmd->SetParameterName("Size", false);
56 fDetectorRadiusCmd->SetRange("Size>0.");
57 fDetectorRadiusCmd->SetUnitCategory("Length");
58 fDetectorRadiusCmd->AvailableForStates(G4State_PreInit);
59 fDetectorRadiusCmd->SetToBeBroadcasted(false);
60
62 new G4UIcmdWithADoubleAndUnit("/Par03/detector/setDetectorLength", this);
63 fDetectorLengthCmd->SetGuidance(
64 "Set length of the detector (cylinder length)");
65 fDetectorLengthCmd->SetParameterName("Size", false);
66 fDetectorLengthCmd->SetRange("Size>0.");
67 fDetectorLengthCmd->SetUnitCategory("Length");
68 fDetectorLengthCmd->AvailableForStates(G4State_PreInit);
69 fDetectorLengthCmd->SetToBeBroadcasted(false);
70
72 new G4UIcmdWithAString("/Par03/detector/setDetectorMaterial", this);
73 fDetectorMaterialCmd->SetGuidance("Material of the detector.");
74 fDetectorMaterialCmd->SetParameterName("Name", false);
75 fDetectorMaterialCmd->AvailableForStates(G4State_PreInit);
76 fDetectorMaterialCmd->SetToBeBroadcasted(false);
77
79 new G4UIcmdWithAnInteger("/Par03/detector/setNbOfLayers", this);
80 fNbLayersCmd->SetGuidance("Set number of layers.");
81 fNbLayersCmd->SetParameterName("NbLayers", false);
82 fNbLayersCmd->SetRange("NbLayers>0");
83 fNbLayersCmd->AvailableForStates(G4State_PreInit);
84 fNbLayersCmd->SetToBeBroadcasted(false);
85
87 new G4UIcmdWithAnInteger("/Par03/detector/setNbOfRhoCells", this);
88 fNbRhoCellsCmd->SetGuidance("Set number of cells along radius.");
89 fNbRhoCellsCmd->SetParameterName("NbRhoCells", false);
90 fNbRhoCellsCmd->SetRange("NbRhoCells>0");
91 fNbRhoCellsCmd->AvailableForStates(G4State_PreInit);
92 fNbRhoCellsCmd->SetToBeBroadcasted(false);
93
95 new G4UIcmdWithAnInteger("/Par03/detector/setNbOfPhiCells", this);
96 fNbPhiCellsCmd->SetGuidance("Set number of cells in azimuthal angle.");
97 fNbPhiCellsCmd->SetParameterName("NbPhiCells", false);
98 fNbPhiCellsCmd->SetRange("NbPhiCells>0");
99 fNbPhiCellsCmd->AvailableForStates(G4State_PreInit);
100 fNbPhiCellsCmd->SetToBeBroadcasted(false);
101}
G4UIdirectory * fDetectorDir
Command to set the directory for detector settings /Par03/detector.
G4UIcmdWithADoubleAndUnit * fDetectorRadiusCmd
Command to set the detector radius.
G4UIcmdWithAnInteger * fNbLayersCmd
Command to set the number of layers.
G4UIcmdWithAString * fDetectorMaterialCmd
Command to set the detector material.
G4UIcmdWithAnInteger * fNbPhiCellsCmd
Command to set the number of cells in azimuthal angle.
G4UIdirectory * fExampleDir
Command to set the directory common to all messengers in this example /Par03.
G4UIcmdWithADoubleAndUnit * fDetectorLengthCmd
Command to set the detector length.
Par03DetectorConstruction * fDetector
Detector construction to setup.
G4UIcmdWithoutParameter * fPrintCmd
Command printing current settings.
G4UIcmdWithAnInteger * fNbRhoCellsCmd
Command to set the number of radial cells.

◆ ~Par03DetectorMessenger()

Par03DetectorMessenger::~Par03DetectorMessenger ( )

Definition at line 105 of file Par03DetectorMessenger.cc.

106{
107 delete fPrintCmd;
108 delete fDetectorRadiusCmd;
109 delete fDetectorLengthCmd;
111 delete fNbLayersCmd;
112 delete fNbRhoCellsCmd;
113 delete fNbPhiCellsCmd;
114 delete fDetectorDir;
115 delete fExampleDir;
116}

Member Function Documentation

◆ SetNewValue()

void Par03DetectorMessenger::SetNewValue ( G4UIcommand aCommand,
G4String  aNewValue 
)
finalvirtual

Invokes appropriate methods based on the typed command.

Definition at line 120 of file Par03DetectorMessenger.cc.

122{
123 if(aCommand == fPrintCmd)
124 {
125 fDetector->Print();
126 }
127 else if(aCommand == fDetectorRadiusCmd)
128 {
129 fDetector->SetRadius(fDetectorRadiusCmd->GetNewDoubleValue(aNewValue));
130 }
131 else if(aCommand == fDetectorLengthCmd)
132 {
133 fDetector->SetLength(fDetectorRadiusCmd->GetNewDoubleValue(aNewValue));
134 }
135 else if(aCommand == fDetectorMaterialCmd)
136 {
137 fDetector->SetMaterial(aNewValue);
138 }
139 else if(aCommand == fNbLayersCmd)
140 {
141 fDetector->SetNbOfLayers(fNbLayersCmd->GetNewIntValue(aNewValue));
142 }
143 else if(aCommand == fNbRhoCellsCmd)
144 {
145 fDetector->SetNbOfRhoCells(fNbRhoCellsCmd->GetNewIntValue(aNewValue));
146 }
147 else if(aCommand == fNbPhiCellsCmd)
148 {
149 fDetector->SetNbOfPhiCells(fNbPhiCellsCmd->GetNewIntValue(aNewValue));
150 }
151}
void SetMaterial(const G4String &aMaterial)

◆ GetCurrentValue()

G4String Par03DetectorMessenger::GetCurrentValue ( G4UIcommand aCommand)
finalvirtual

Retrieves the current settings.

Definition at line 155 of file Par03DetectorMessenger.cc.

156{
157 G4String cv;
158
159 if(aCommand == fDetectorRadiusCmd)
160 {
161 cv = fDetectorRadiusCmd->ConvertToString(fDetector->GetRadius(), "mm");
162 }
163 else if(aCommand == fDetectorLengthCmd)
164 {
165 cv = fDetectorLengthCmd->ConvertToString(fDetector->GetLength(), "mm");
166 }
167 else if(aCommand == fDetectorMaterialCmd)
168 {
169 cv = fDetector->GetMaterial();
170 }
171 else if(aCommand == fNbLayersCmd)
172 {
173 cv = fNbLayersCmd->ConvertToString(fDetector->GetNbOfLayers());
174 }
175 else if(aCommand == fNbPhiCellsCmd)
176 {
177 cv = fNbPhiCellsCmd->ConvertToString(fDetector->GetNbOfPhiCells());
178 }
179 else if(aCommand == fNbRhoCellsCmd)
180 {
181 cv = fNbRhoCellsCmd->ConvertToString(fDetector->GetNbOfRhoCells());
182 }
183 return cv;
184}

Member Data Documentation

◆ fDetector

Par03DetectorConstruction* Par03DetectorMessenger::fDetector = nullptr
private

Detector construction to setup.

Definition at line 61 of file Par03DetectorMessenger.hh.

◆ fExampleDir

G4UIdirectory* Par03DetectorMessenger::fExampleDir = nullptr
private

Command to set the directory common to all messengers in this example /Par03.

Definition at line 64 of file Par03DetectorMessenger.hh.

◆ fDetectorDir

G4UIdirectory* Par03DetectorMessenger::fDetectorDir = nullptr
private

Command to set the directory for detector settings /Par03/detector.

Definition at line 66 of file Par03DetectorMessenger.hh.

◆ fPrintCmd

G4UIcmdWithoutParameter* Par03DetectorMessenger::fPrintCmd
private

Command printing current settings.

Definition at line 68 of file Par03DetectorMessenger.hh.

◆ fDetectorRadiusCmd

G4UIcmdWithADoubleAndUnit* Par03DetectorMessenger::fDetectorRadiusCmd = nullptr
private

Command to set the detector radius.

Definition at line 70 of file Par03DetectorMessenger.hh.

◆ fDetectorLengthCmd

G4UIcmdWithADoubleAndUnit* Par03DetectorMessenger::fDetectorLengthCmd = nullptr
private

Command to set the detector length.

Definition at line 72 of file Par03DetectorMessenger.hh.

◆ fDetectorMaterialCmd

G4UIcmdWithAString* Par03DetectorMessenger::fDetectorMaterialCmd = nullptr
private

Command to set the detector material.

Definition at line 74 of file Par03DetectorMessenger.hh.

◆ fNbLayersCmd

G4UIcmdWithAnInteger* Par03DetectorMessenger::fNbLayersCmd = nullptr
private

Command to set the number of layers.

Definition at line 76 of file Par03DetectorMessenger.hh.

◆ fNbRhoCellsCmd

G4UIcmdWithAnInteger* Par03DetectorMessenger::fNbRhoCellsCmd = nullptr
private

Command to set the number of radial cells.

Definition at line 78 of file Par03DetectorMessenger.hh.

◆ fNbPhiCellsCmd

G4UIcmdWithAnInteger* Par03DetectorMessenger::fNbPhiCellsCmd = nullptr
private

Command to set the number of cells in azimuthal angle.

Definition at line 80 of file Par03DetectorMessenger.hh.


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

Applications | User Support | Publications | Collaboration