51 :iortDetector(detector)
55 changeThePhantomDir -> SetGuidance(
"Command to change the Phantom Size/position");
57 changeThePhantomSizeCmd -> SetGuidance(
"Insert sizes X Y and Z"
58 "\n 0 or negative values mean <<Don't change it!>>");
59 changeThePhantomSizeCmd -> SetParameterName(
"PhantomSizeAlongX",
61 "PhantomSizeAlongZ",
false);
62 changeThePhantomSizeCmd -> SetDefaultUnit(
"mm");
63 changeThePhantomSizeCmd -> SetUnitCandidates(
"nm um mm cm");
64 changeThePhantomSizeCmd -> AvailableForStates(
G4State_Idle);
69 changeThePhantomMaterialCmd -> SetGuidance(
"Change the Phantom and the detector material");
70 changeThePhantomMaterialCmd -> SetParameterName(
"PhantomMaterial",
false);
71 changeThePhantomMaterialCmd -> SetDefaultValue(
"G4_WATER");
72 changeThePhantomMaterialCmd -> AvailableForStates(
G4State_Idle);
76 changeThePhantomPositionCmd -> SetGuidance(
"Insert X Y and Z dimensions for the position of the center of the Phantom"
77 " respect to that of the \"World\"");
78 changeThePhantomPositionCmd -> SetParameterName(
"PositionAlongX",
80 "PositionAlongZ",
false);
81 changeThePhantomPositionCmd -> SetDefaultUnit(
"mm");
82 changeThePhantomPositionCmd -> SetUnitCandidates(
"um mm cm m");
83 changeThePhantomPositionCmd -> AvailableForStates(
G4State_Idle);
87 updateCmd->
SetGuidance(
"Update Phantom/Detector geometry.");
88 updateCmd->
SetGuidance(
"This command MUST be applied before \"beamOn\" ");
89 updateCmd->
SetGuidance(
"if you changed geometrical value(s).");
94 changeTheDetectorDir -> SetGuidance(
"Command to change the Detector's Size/position/Voxels");
97 changeTheDetectorSizeCmd -> SetGuidance(
"Insert sizes for X Y and Z dimensions of the Detector"
98 "\n 0 or negative values mean <<Don't change it>>");
99 changeTheDetectorSizeCmd -> SetParameterName(
"DetectorSizeAlongX",
"DetectorSizeAlongY",
"DetectorSizeAlongZ",
false);
100 changeTheDetectorSizeCmd -> SetDefaultUnit(
"mm");
101 changeTheDetectorSizeCmd -> SetUnitCandidates(
"nm um mm cm");
102 changeTheDetectorSizeCmd -> AvailableForStates(
G4State_Idle);
106 changeTheDetectorToPhantomPositionCmd -> SetGuidance(
"Insert X Y and Z displacements between Detector and Phantom"
107 "\nNegative values mean <<Don't change it!>>");
108 changeTheDetectorToPhantomPositionCmd -> SetParameterName(
"DisplacementAlongX",
109 "DisplacementAlongY",
110 "DisplacementAlongZ",
false);
111 changeTheDetectorToPhantomPositionCmd -> SetDefaultUnit(
"mm");
112 changeTheDetectorToPhantomPositionCmd -> SetUnitCandidates(
"nm um mm cm");
113 changeTheDetectorToPhantomPositionCmd -> AvailableForStates(
G4State_Idle);
117 changeTheDetectorVoxelCmd -> SetGuidance(
"Insert Voxel sizes for X Y and Z dimensions"
118 "\n 0 or negative values mean <<Don't change it!>>");
119 changeTheDetectorVoxelCmd -> SetParameterName(
"VoxelSizeAlongX",
"VoxelSizeAlongY",
"VoxelSizeAlongZ",
false);
120 changeTheDetectorVoxelCmd -> SetDefaultUnit(
"mm");
121 changeTheDetectorVoxelCmd -> SetUnitCandidates(
"nm um mm cm");
122 changeTheDetectorVoxelCmd -> AvailableForStates(
G4State_Idle);
127 changeTheDisc1Dir -> SetGuidance(
"Command to change the Disc1");
130 changeOuterRadiusDiscoIORTCmd -> SetGuidance(
"Set size of outer radius");
131 changeOuterRadiusDiscoIORTCmd -> SetParameterName(
"Size",
false);
132 changeOuterRadiusDiscoIORTCmd -> SetDefaultUnit(
"mm");
133 changeOuterRadiusDiscoIORTCmd -> SetUnitCandidates(
"mm cm m");
134 changeOuterRadiusDiscoIORTCmd -> AvailableForStates(
G4State_Idle);
137 changeinnerRadiusDiscoIORTCmd -> SetGuidance(
"Set size of inner radius");
138 changeinnerRadiusDiscoIORTCmd -> SetParameterName(
"Size",
false);
139 changeinnerRadiusDiscoIORTCmd -> SetDefaultUnit(
"mm");
140 changeinnerRadiusDiscoIORTCmd -> SetUnitCandidates(
"mm cm m");
141 changeinnerRadiusDiscoIORTCmd -> AvailableForStates(
G4State_Idle);
145 changeheightDiscoIORTCmd -> SetGuidance(
"Set size of higth");
146 changeheightDiscoIORTCmd -> SetParameterName(
"Size",
false);
147 changeheightDiscoIORTCmd -> SetDefaultUnit(
"mm");
148 changeheightDiscoIORTCmd -> SetUnitCandidates(
"mm cm m");
149 changeheightDiscoIORTCmd -> AvailableForStates(
G4State_Idle);
152 changeDiscoXPositionIORTCmd -> SetGuidance(
"Set the X position");
153 changeDiscoXPositionIORTCmd -> SetParameterName(
"Size",
false);
154 changeDiscoXPositionIORTCmd -> SetDefaultUnit(
"mm");
155 changeDiscoXPositionIORTCmd -> SetUnitCandidates(
"mm cm m");
156 changeDiscoXPositionIORTCmd -> AvailableForStates(
G4State_Idle);
159 changeDiscoYPositionIORTCmd -> SetGuidance(
"Set the Y position");
160 changeDiscoYPositionIORTCmd -> SetParameterName(
"Size",
false);
161 changeDiscoYPositionIORTCmd -> SetDefaultUnit(
"mm");
162 changeDiscoYPositionIORTCmd -> SetUnitCandidates(
"mm cm m");
163 changeDiscoYPositionIORTCmd -> AvailableForStates(
G4State_Idle);
166 changeDiscoZPositionIORTCmd -> SetGuidance(
"Set the Z position");
167 changeDiscoZPositionIORTCmd -> SetParameterName(
"Size",
false);
168 changeDiscoZPositionIORTCmd -> SetDefaultUnit(
"mm");
169 changeDiscoZPositionIORTCmd -> SetUnitCandidates(
"mm cm m");
170 changeDiscoZPositionIORTCmd -> AvailableForStates(
G4State_Idle);
172 changeTheDisc1MaterialCmd =
new G4UIcmdWithAString(
"/ProtectionDisc1/material",
this);
173 changeTheDisc1MaterialCmd -> SetGuidance(
"Change the Disc1 material");
174 changeTheDisc1MaterialCmd -> SetParameterName(
"Disc1Material",
false);
175 changeTheDisc1MaterialCmd -> SetDefaultValue(
"G4_WATER");
176 changeTheDisc1MaterialCmd -> AvailableForStates(
G4State_Idle);
182 changeTheDisc2Dir -> SetGuidance(
"Command to change the Disc2");
185 changeOuterRadiusDisco1IORTCmd -> SetGuidance(
"Set size of outer radius");
186 changeOuterRadiusDisco1IORTCmd -> SetParameterName(
"Size",
false);
187 changeOuterRadiusDisco1IORTCmd -> SetDefaultUnit(
"mm");
188 changeOuterRadiusDisco1IORTCmd -> SetUnitCandidates(
"mm cm m");
189 changeOuterRadiusDisco1IORTCmd -> AvailableForStates(
G4State_Idle);
192 changeinnerRadiusDisco1IORTCmd -> SetGuidance(
"Set size of inner radius");
193 changeinnerRadiusDisco1IORTCmd -> SetParameterName(
"Size",
false);
194 changeinnerRadiusDisco1IORTCmd -> SetDefaultUnit(
"mm");
195 changeinnerRadiusDisco1IORTCmd -> SetUnitCandidates(
"mm cm m");
196 changeinnerRadiusDisco1IORTCmd -> AvailableForStates(
G4State_Idle);
200 changeheightDisco1IORTCmd -> SetGuidance(
"Set size of higth");
201 changeheightDisco1IORTCmd -> SetParameterName(
"Size",
false);
202 changeheightDisco1IORTCmd -> SetDefaultUnit(
"mm");
203 changeheightDisco1IORTCmd -> SetUnitCandidates(
"mm cm m");
204 changeheightDisco1IORTCmd -> AvailableForStates(
G4State_Idle);
207 changeDisco1XPositionIORTCmd -> SetGuidance(
"Set the X position");
208 changeDisco1XPositionIORTCmd -> SetParameterName(
"Size",
false);
209 changeDisco1XPositionIORTCmd -> SetDefaultUnit(
"mm");
210 changeDisco1XPositionIORTCmd -> SetUnitCandidates(
"mm cm m");
211 changeDisco1XPositionIORTCmd -> AvailableForStates(
G4State_Idle);
213 changeTheDisc2MaterialCmd =
new G4UIcmdWithAString(
"/ProtectionDisc2/material",
this);
214 changeTheDisc2MaterialCmd -> SetGuidance(
"Change the Disc2 material");
215 changeTheDisc2MaterialCmd -> SetParameterName(
"Disc1Material",
false);
216 changeTheDisc2MaterialCmd -> SetDefaultValue(
"G4_WATER");
217 changeTheDisc2MaterialCmd -> AvailableForStates(
G4State_Idle);
220 deleteTheDiscDir =
new G4UIdirectory(
"/DeleteProtectionDisc/");
221 deleteTheDiscDir -> SetGuidance(
"Command to delete the 1-2 Discs ");
224 deletediscCmd->
SetGuidance(
"Delete the 1-2 Discs geometry.");
225 deletediscCmd->
SetGuidance(
"This command MUST be applied before \"beamOn\" ");
229 insertTheDiscDir =
new G4UIdirectory(
"/InsertProtectionDisc/");
230 insertTheDiscDir -> SetGuidance(
"Command to insert the 1-2 Discs ");
233 insertdiscCmd->
SetGuidance(
"Insert the 1-2 Discs geometry.");
234 insertdiscCmd->
SetGuidance(
"This command MUST be applied before \"beamOn\" ");
235 insertdiscCmd->
SetGuidance(
"After this command MUST be applied update command \"beamOn\" ");
239 changeTheAnglediscDir =
new G4UIdirectory(
"/ChangeTiltAngleDisc1-2/");
240 changeTheAnglediscDir -> SetGuidance(
"Set tilt angle of the 1-2 Discs");
243 changeTheAnglediscCmd -> SetParameterName(
"Angle",
false);
244 changeTheAnglediscCmd -> SetDefaultUnit(
"deg");
245 changeTheAnglediscCmd -> SetUnitCandidates(
"deg rad");
246 changeTheAnglediscCmd -> AvailableForStates(
G4State_Idle);
252 delete changeThePhantomDir;
253 delete changeThePhantomSizeCmd;
254 delete changeThePhantomPositionCmd;
255 delete changeThePhantomMaterialCmd;
257 delete changeTheDetectorDir;
258 delete changeTheDetectorSizeCmd;
259 delete changeTheDetectorToPhantomPositionCmd;
260 delete changeTheDetectorVoxelCmd;
262 delete changeTheDisc1Dir;
263 delete changeOuterRadiusDiscoIORTCmd;
264 delete changeinnerRadiusDiscoIORTCmd;
265 delete changeheightDiscoIORTCmd;
266 delete changeDiscoXPositionIORTCmd;
267 delete changeDiscoYPositionIORTCmd;
268 delete changeDiscoZPositionIORTCmd;
269 delete changeTheDisc1MaterialCmd;
271 delete changeTheDisc2Dir;
272 delete changeOuterRadiusDisco1IORTCmd;
273 delete changeinnerRadiusDisco1IORTCmd;
274 delete changeheightDisco1IORTCmd;
275 delete changeDisco1XPositionIORTCmd;
276 delete changeTheDisc2MaterialCmd;
278 delete deletediscCmd;
279 delete insertdiscCmd;
281 delete changeTheAnglediscDir;
282 delete changeTheAnglediscCmd;
289 if( command == changeThePhantomSizeCmd)
291 G4ThreeVector size = changeThePhantomSizeCmd -> GetNew3VectorValue(newValue);
292 iortDetector -> SetPhantomSize(size.
getX(),size.
getY(),size.
getZ());
294 else if (command == changeThePhantomPositionCmd )
296 G4ThreeVector size = changeThePhantomPositionCmd -> GetNew3VectorValue(newValue);
297 iortDetector -> SetPhantomPosition(size);
299 else if (command == changeThePhantomMaterialCmd)
301 iortDetector -> SetPhantomMaterial(newValue);
303 else if (command == changeTheDetectorSizeCmd)
305 G4ThreeVector size = changeTheDetectorSizeCmd -> GetNew3VectorValue(newValue);
306 iortDetector -> SetDetectorSize(size.
getX(),size.
getY(),size.
getZ());
308 else if (command == changeTheDetectorToPhantomPositionCmd)
310 G4ThreeVector size = changeTheDetectorToPhantomPositionCmd-> GetNew3VectorValue(newValue);
311 iortDetector -> SetDetectorToPhantomPosition(size);
313 else if (command == changeTheDetectorVoxelCmd)
315 G4ThreeVector size = changeTheDetectorVoxelCmd -> GetNew3VectorValue(newValue);
316 iortDetector -> SetVoxelSize(size.
getX(),size.
getY(),size.
getZ());
320 else if( command == changeOuterRadiusDiscoIORTCmd )
322 iortDetector -> SetOuterRadiusDiscoIORT
323 (changeOuterRadiusDiscoIORTCmd -> GetNewDoubleValue(newValue));
325 else if( command == changeinnerRadiusDiscoIORTCmd )
326 { iortDetector -> SetinnerRadiusDiscoIORT
327 (changeinnerRadiusDiscoIORTCmd -> GetNewDoubleValue(newValue));
329 else if( command == changeheightDiscoIORTCmd )
330 { iortDetector -> SetheightDiscoIORT
331 (changeheightDiscoIORTCmd -> GetNewDoubleValue(newValue));
333 else if( command == changeDiscoXPositionIORTCmd )
334 { iortDetector -> SetDiscoXPositionIORT
335 (changeDiscoXPositionIORTCmd -> GetNewDoubleValue(newValue));
337 else if( command == changeDiscoYPositionIORTCmd )
338 { iortDetector -> SetDiscoYPositionIORT
339 (changeDiscoYPositionIORTCmd -> GetNewDoubleValue(newValue));
341 else if( command == changeDiscoZPositionIORTCmd )
342 { iortDetector -> SetDiscoZPositionIORT
343 (changeDiscoZPositionIORTCmd -> GetNewDoubleValue(newValue));
345 else if (command == changeTheDisc1MaterialCmd)
347 iortDetector -> SetDiscoMaterialIORT(newValue);
350 else if( command == changeOuterRadiusDisco1IORTCmd )
351 { iortDetector -> SetOuterRadiusDiscoIORT1
352 (changeOuterRadiusDisco1IORTCmd -> GetNewDoubleValue(newValue));
354 else if( command == changeinnerRadiusDisco1IORTCmd )
355 { iortDetector -> SetinnerRadiusDiscoIORT1
356 (changeinnerRadiusDisco1IORTCmd -> GetNewDoubleValue(newValue));
358 else if( command == changeheightDisco1IORTCmd )
359 { iortDetector -> SetheightDiscoIORT1
360 (changeheightDisco1IORTCmd -> GetNewDoubleValue(newValue));
362 else if( command == changeDisco1XPositionIORTCmd )
363 { iortDetector -> SetDiscoXPositionIORT1
364 (changeDisco1XPositionIORTCmd -> GetNewDoubleValue(newValue));
366 else if (command == changeTheDisc2MaterialCmd)
368 iortDetector -> SetDiscoMaterialIORT1(newValue);
370 else if (command == changeTheAnglediscCmd)
372 iortDetector -> SetAngleDiscoIORT0
373 (changeTheAnglediscCmd -> GetNewDoubleValue(newValue));
378 else if (command == updateCmd)
380 iortDetector -> UpdateGeometry();
383 else if (command == deletediscCmd)
385 iortDetector -> DeleteDisc();
388 else if (command == insertdiscCmd)
390 iortDetector -> ConstructDisc();
void SetNewValue(G4UIcommand *, G4String)
void SetGuidance(const char *aGuidance)
void AvailableForStates(G4ApplicationState s1)
IORTDetectorMessenger(IORTDetectorConstruction *)