39 :laserDrivenMessengerPointer(laserDriven)
43 laserDrivenDir -> SetGuidance(
"The Laser Driven Beam Line module of Hadrontherapy");
46 energySelectorDir =
new G4UIdirectory(
"/LaserDriven/EnergySelector/");
47 energySelectorDir -> SetGuidance(
"The Energy selector (ESS) module of Hadrontherapy");
49 FcollimatorDir =
new G4UIdirectory(
"/LaserDriven/EnergySelector/FirstCollimator/");
50 FcollimatorDir -> SetGuidance(
"Define geometrical characteristics of the ESS first collimator");
52 ScollimatorDir =
new G4UIdirectory(
"/LaserDriven/EnergySelector/SecondCollimator/");
53 ScollimatorDir -> SetGuidance(
"Define geometrical characteristics of the ESS second collimator");
55 slitDir =
new G4UIdirectory(
"/LaserDriven/EnergySelector/Slit/");
56 slitDir -> SetGuidance(
"Define geometrical characteristics of the ESS slit");
59 quadrupoleDir =
new G4UIdirectory(
"/LaserDriven/Quadrupoles/");
60 quadrupoleDir -> SetGuidance(
"The Quadrupoles module of Hadrontherapy");
62 relativePosDir =
new G4UIdirectory(
"/LaserDriven/Quadrupoles/xRelPosition/");
63 relativePosDir -> SetGuidance(
"Define the x relative positions of the quadrupoles");
67 DisableESSCmd -> SetGuidance(
"Disable the Energy Selector.");
68 DisableESSCmd -> SetGuidance(
"This command MUST be applied before \"beamOn\" ");
75 FcollimatorRadiusCmd -> SetGuidance(
"Set the Radius of the first collimator");
76 FcollimatorRadiusCmd -> SetParameterName(
"Size",
false);
77 FcollimatorRadiusCmd -> SetDefaultUnit(
"mm");
78 FcollimatorRadiusCmd -> SetUnitCandidates(
"mm cm m");
79 FcollimatorRadiusCmd -> AvailableForStates(
G4State_Idle);
83 FcollimatorThicknessCmd -> SetGuidance(
"Set the thickness of the first collimator");
84 FcollimatorThicknessCmd -> SetParameterName(
"Size",
false);
85 FcollimatorThicknessCmd -> SetDefaultUnit(
"mm");
86 FcollimatorThicknessCmd -> SetUnitCandidates(
"mm cm m");
87 FcollimatorThicknessCmd -> AvailableForStates(
G4State_Idle);
91 FcollimatorZpositionCmd -> SetGuidance(
"Set the Z position of the first collimator hole as respect the internal vacuum chamber center axis");
92 FcollimatorZpositionCmd -> SetParameterName(
"Size",
false);
93 FcollimatorZpositionCmd -> SetDefaultUnit(
"mm");
94 FcollimatorZpositionCmd -> SetUnitCandidates(
"mm cm m");
95 FcollimatorZpositionCmd -> AvailableForStates(
G4State_Idle);
101 ScollimatorRadiusCmd -> SetGuidance(
"Set the Radius of the second collimator");
102 ScollimatorRadiusCmd -> SetParameterName(
"Size",
false);
103 ScollimatorRadiusCmd -> SetDefaultUnit(
"mm");
104 ScollimatorRadiusCmd -> SetUnitCandidates(
"mm cm m");
105 ScollimatorRadiusCmd -> AvailableForStates(
G4State_Idle);
109 ScollimatorThicknessCmd -> SetGuidance(
"Set the thickness of the second collimator");
110 ScollimatorThicknessCmd -> SetParameterName(
"Size",
false);
111 ScollimatorThicknessCmd -> SetDefaultUnit(
"mm");
112 ScollimatorThicknessCmd -> SetUnitCandidates(
"mm cm m");
113 ScollimatorThicknessCmd -> AvailableForStates(
G4State_Idle);
117 ScollimatorZpositionCmd -> SetGuidance(
"Set the Z position of the second collimator hole as respect the internal vacuum chamber center axis");
118 ScollimatorZpositionCmd -> SetParameterName(
"Size",
false);
119 ScollimatorZpositionCmd -> SetDefaultUnit(
"mm");
120 ScollimatorZpositionCmd -> SetUnitCandidates(
"mm cm m");
121 ScollimatorZpositionCmd -> AvailableForStates(
G4State_Idle);
127 SlitThicknessCmd -> SetGuidance(
"Set the X dimension of the Slit, the maximum value is 10 mm");
128 SlitThicknessCmd -> SetParameterName(
"Size",
false);
129 SlitThicknessCmd -> SetDefaultUnit(
"mm");
130 SlitThicknessCmd -> SetUnitCandidates(
"mm cm m");
135 holeSlitDimensionYCmd -> SetGuidance(
"Set the Y dimension of the Slit Hole");
136 holeSlitDimensionYCmd -> SetParameterName(
"Size",
false);
137 holeSlitDimensionYCmd -> SetDefaultUnit(
"mm");
138 holeSlitDimensionYCmd -> SetUnitCandidates(
"mm cm m");
139 holeSlitDimensionYCmd -> AvailableForStates(
G4State_Idle);
143 holeSlitDimensionZCmd -> SetGuidance(
"Set the Z dimension of the external part of magnet 4");
144 holeSlitDimensionZCmd -> SetParameterName(
"Size",
false);
145 holeSlitDimensionZCmd -> SetDefaultUnit(
"mm");
146 holeSlitDimensionZCmd -> SetUnitCandidates(
"mm cm m");
147 holeSlitDimensionZCmd -> AvailableForStates(
G4State_Idle);
151 slitHolePositionZCmd -> SetGuidance(
"Set the Slit hole position in the Z direction as respect the Slit body center");
152 slitHolePositionZCmd -> SetParameterName(
"Size",
false);
153 slitHolePositionZCmd -> SetDefaultUnit(
"mm");
154 slitHolePositionZCmd -> SetUnitCandidates(
"mm cm m");
155 slitHolePositionZCmd -> AvailableForStates(
G4State_Idle);
159 DisableQuadsCmd -> SetGuidance(
"Disable the Quadrupole system.");
160 DisableQuadsCmd -> SetGuidance(
"This command MUST be applied before \"beamOn\" ");
168 delete laserDrivenDir;
169 delete energySelectorDir;
170 delete FcollimatorDir;
171 delete ScollimatorDir;
173 delete quadrupoleDir;
174 delete relativePosDir;
175 delete DisableESSCmd;
176 delete FcollimatorRadiusCmd;
177 delete FcollimatorThicknessCmd;
178 delete FcollimatorZpositionCmd;
179 delete ScollimatorRadiusCmd;
180 delete ScollimatorThicknessCmd;
181 delete ScollimatorZpositionCmd;
183 delete SlitThicknessCmd;
184 delete holeSlitDimensionYCmd;
185 delete holeSlitDimensionZCmd;
186 delete slitHolePositionZCmd;
188 delete DisableQuadsCmd;
194 if (command == DisableESSCmd)
196 laserDrivenMessengerPointer -> RemoveESS();
198 if( command == FcollimatorRadiusCmd )
200 laserDrivenMessengerPointer -> SetFirstCollimatorRadius
201 (FcollimatorRadiusCmd -> GetNewDoubleValue(newValue));
203 else if( command == FcollimatorThicknessCmd )
205 laserDrivenMessengerPointer -> SetFirstCollimatorThickness
206 (FcollimatorThicknessCmd -> GetNewDoubleValue(newValue));
208 else if( command == FcollimatorZpositionCmd )
210 laserDrivenMessengerPointer -> SetFirstCollimatorPositionZ
211 (FcollimatorZpositionCmd -> GetNewDoubleValue(newValue));
213 else if( command == ScollimatorRadiusCmd )
215 laserDrivenMessengerPointer -> SetSecondCollimatorRadius
216 (ScollimatorRadiusCmd -> GetNewDoubleValue(newValue));
218 else if( command == ScollimatorThicknessCmd )
220 laserDrivenMessengerPointer -> SetSecondCollimatorThickness
221 (ScollimatorThicknessCmd -> GetNewDoubleValue(newValue));
223 else if( command == ScollimatorZpositionCmd )
225 laserDrivenMessengerPointer -> SetSecondCollimatorPositionZ
226 (ScollimatorZpositionCmd -> GetNewDoubleValue(newValue));
228 else if( command == SlitThicknessCmd )
230 laserDrivenMessengerPointer -> SetThicknessSlit
231 (SlitThicknessCmd -> GetNewDoubleValue(newValue));
233 else if( command == holeSlitDimensionYCmd )
235 laserDrivenMessengerPointer -> SetSlitHoleDimensionY
236 (holeSlitDimensionYCmd -> GetNewDoubleValue(newValue));
238 else if( command == holeSlitDimensionZCmd )
240 laserDrivenMessengerPointer -> SetSlitHoleDimensionZ
241 (holeSlitDimensionZCmd -> GetNewDoubleValue(newValue));
243 else if( command == slitHolePositionZCmd )
245 laserDrivenMessengerPointer -> SetSlitHolePositionZ
246 (slitHolePositionZCmd -> GetNewDoubleValue(newValue));
248 else if (command==DisableQuadsCmd)
250 laserDrivenMessengerPointer -> RemoveQuads();
LaserDrivenBeamLineMessenger(LaserDrivenBeamLine *)
~LaserDrivenBeamLineMessenger()
void SetNewValue(G4UIcommand *, G4String)