61 : params(opticalParameters)
62
63{
64 G4bool toBeBroadcasted =
false;
65 fDir =
new G4UIdirectory(
"/process/optical/defaults/",toBeBroadcasted);
66 fDir->
SetGuidance(
"DEPRECATED Commands related to the optical physics simulation engine.");
67 fDir2 =
new G4UIdirectory(
"/process/optical/",toBeBroadcasted);
68 fDir2->
SetGuidance(
"Commands related to the optical physics simulation engine.");
69
70 CreateDirectory(
"/process/optical/defaults/cerenkov/",
"DEPRECATED Cerenkov process commands");
71 CreateDirectory(
"/process/optical/defaults/scintillation/",
"DEPRECATED Scintillation process commands");
72 CreateDirectory(
"/process/optical/defaults/wls/",
"DEPRECATED Wave length shifting process commands");
73 CreateDirectory(
"/process/optical/defaults/boundary/",
"DEPRECATED Boundary scattering commands");
74
75 CreateDirectory(
"/process/optical/cerenkov/",
"Cerenkov process commands");
76 CreateDirectory(
"/process/optical/scintillation/",
"Scintillation process commands");
77 CreateDirectory(
"/process/optical/wls/",
"Wave length shifting process commands");
78 CreateDirectory(
"/process/optical/wls2/",
"Second Wave length shifting process commands");
79 CreateDirectory(
"/process/optical/boundary/",
"Boundary scattering commands");
80 CreateDirectory(
"/process/optical/mie/",
"Mie scattering process commands");
81 CreateDirectory(
"/process/optical/absorption/",
"absorption process commands");
82 CreateDirectory(
"/process/optical/rayleigh/",
"Rayleigh scattering commands");
83
84
85 fActivateProcessCmd=
new G4UIcommand(
"/process/optical/processActivation",
this);
86 fActivateProcessCmd->
SetGuidance(
"Activate/deactivate the specified optical process");
92 }
101
102
103 fTrackSecondariesFirstCmd =
new G4UIcommand(
"/process/optical/setTrackSecondariesFirst",
this);
104 fTrackSecondariesFirstCmd->
SetGuidance(
"Activate/deactivate tracking of secondaries before finishing their parent track");
105 fTrackSecondariesFirstCmd->
SetGuidance(
"DEPRECATED: Use /process/optical/cerenkov/setTrackSecondariesFirst and");
106 fTrackSecondariesFirstCmd->
SetGuidance(
"/process/optical/scintillation/setTrackSecondariesFirst and instead.");
114
116 fVerboseCmd->
SetGuidance(
"Set default verbose level for optical processes");
121
122 fDumpCmd =
new G4UIcommand(
"/process/optical/printParameters",
this);
123 fDumpCmd->
SetGuidance(
"Print all optical parameters.");
124
125
126 fCerenkovMaxPhotons1Cmd =
new G4UIcmdWithAnInteger(
"/process/optical/defaults/cerenkov/setMaxPhotons",
this);
127 fCerenkovMaxPhotons1Cmd->
SetGuidance(
"Set maximum number of photons per step");
128 fCerenkovMaxPhotons1Cmd->
SetGuidance(
"DEPRECATED: use /process/optical/cerenkov/setMaxPhotons instead.");
130 fCerenkovMaxPhotons1Cmd->
SetRange(
"CerenkovMaxPhotons>=0");
132
133 fCerenkovMaxPhotonsCmd =
new G4UIcmdWithAnInteger(
"/process/optical/cerenkov/setMaxPhotons",
this);
134 fCerenkovMaxPhotonsCmd->
SetGuidance(
"Set maximum number of photons per step");
136 fCerenkovMaxPhotonsCmd->
SetRange(
"CerenkovMaxPhotons>=0");
138
139 fCerenkovMaxBetaChange1Cmd =
new G4UIcmdWithADouble(
"/process/optical/defaults/cerenkov/setMaxBetaChange",
this);
140 fCerenkovMaxBetaChange1Cmd->
SetGuidance(
"Set maximum change of beta of parent particle per step");
141 fCerenkovMaxBetaChange1Cmd->
SetGuidance(
"DEPRECATED: use /process/optical/cerenkov/setMaxBetaChange instead.");
142 fCerenkovMaxBetaChange1Cmd->
SetParameterName(
"CerenkovMaxBetaChange",
false);
143 fCerenkovMaxBetaChange1Cmd->
SetRange(
"CerenkovMaxBetaChange>=0");
145
146 fCerenkovMaxBetaChangeCmd =
new G4UIcmdWithADouble(
"/process/optical/cerenkov/setMaxBetaChange",
this);
147 fCerenkovMaxBetaChangeCmd->
SetGuidance(
"Set maximum change of beta of parent particle per step");
148 fCerenkovMaxBetaChangeCmd->
SetParameterName(
"CerenkovMaxBetaChange",
false);
149 fCerenkovMaxBetaChangeCmd->
SetRange(
"CerenkovMaxBetaChange>=0");
151
152 fCerenkovStackPhotons1Cmd =
new G4UIcmdWithABool(
"/process/optical/defaults/cerenkov/setStackPhotons",
this);
153 fCerenkovStackPhotons1Cmd->
SetGuidance(
"Set whether or not to stack secondary Cerenkov photons");
154 fCerenkovStackPhotons1Cmd->
SetGuidance(
"DEPRECATED: use /process/optical/cerenkov/setStackPhotons instead.");
158
159 fCerenkovStackPhotonsCmd =
new G4UIcmdWithABool(
"/process/optical/cerenkov/setStackPhotons",
this);
160 fCerenkovStackPhotonsCmd->
SetGuidance(
"Set whether or not to stack secondary Cerenkov photons");
162
163 fCerenkovTrackSecondariesFirstCmd =
new G4UIcmdWithABool(
"/process/optical/cerenkov/setTrackSecondariesFirst",
this);
164 fCerenkovTrackSecondariesFirstCmd->
SetGuidance(
"Whether to track secondary Cerenkov photons before the primary.");
166
168 fCerenkovVerboseLevelCmd->
SetGuidance(
"Verbose level for Cerenkov process.");
170 fCerenkovVerboseLevelCmd->
SetRange(
"verbose >= 0 && verbose <= 2");
173
174
175 fScintYieldFactor1Cmd =
new G4UIcmdWithADouble(
"/process/optical/defaults/scintillation/setYieldFactor",
this);
176 fScintYieldFactor1Cmd->
SetGuidance(
"Set scintillation yield factor");
177 fScintYieldFactor1Cmd->
SetGuidance(
"DEPRECATED: use /process/optical/scintillation/setYieldFactorinstead.");
179 fScintYieldFactor1Cmd->
SetRange(
"ScintillationYieldFactor>=0");
181
182 fScintYieldFactorCmd =
new G4UIcmdWithADouble(
"/process/optical/scintillation/setYieldFactor",
this);
183 fScintYieldFactorCmd->
SetGuidance(
"Set scintillation yield factor");
185 fScintYieldFactorCmd->
SetRange(
"ScintillationYieldFactor>=0");
187
188 fScintExcitationRatioCmd =
new G4UIcmdWithADouble(
"/process/optical/scintillation/setExcitationRatio",
this);
189 fScintExcitationRatioCmd->
SetGuidance(
"Set scintillation excitation ratio");
191 fScintExcitationRatioCmd->
SetRange(
"ExcitationRatio >= 0 && ExcitationRatio <=1");
193
194 fScintByParticleType1Cmd =
new G4UIcmdWithABool(
"/process/optical/defaults/scintillation/setByParticleType",
this);
195 fScintByParticleType1Cmd->
SetGuidance(
"Activate/Inactivate scintillation process by particle type");
196 fScintByParticleType1Cmd->
SetGuidance(
"DEPRECATED: use /process/optical/scintillation/setByParticleType instead.");
197 fScintByParticleType1Cmd->
SetParameterName(
"ScintillationByParticleTypeActivation",
false);
199
200 fScintByParticleTypeCmd =
new G4UIcmdWithABool(
"/process/optical/scintillation/setByParticleType",
this);
201 fScintByParticleTypeCmd->
SetGuidance(
"Activate/Inactivate scintillation process by particle type");
202 fScintByParticleTypeCmd->
SetParameterName(
"ScintillationByParticleTypeActivation",
false);
204
205 fScintEnhancedTimeConstantsCmd =
new G4UIcmdWithABool(
"/process/optical/scintillation/setEnhancedTimeConstants",
this);
206 fScintEnhancedTimeConstantsCmd->
SetGuidance(
"Activate/Inactivate enhanced time constants for scintillation.");
207 fScintEnhancedTimeConstantsCmd->
SetGuidance(
"This will be the default in the next major release.");
209
210 fScintTrackInfo1Cmd =
new G4UIcmdWithABool(
"/process/optical/defaults/scintillation/setTrackInfo",
this);
211 fScintTrackInfo1Cmd->
SetGuidance(
"Activate/Inactivate scintillation TrackInformation");
212 fScintTrackInfo1Cmd->
SetGuidance(
"DEPRECATED: use /process/optical/scintillation/setTrackInfo instead.");
215
216 fScintTrackInfoCmd =
new G4UIcmdWithABool(
"/process/optical/scintillation/setTrackInfo",
this);
217 fScintTrackInfoCmd->
SetGuidance(
"Activate/Inactivate scintillation TrackInformation");
220
221 fScintFiniteRiseTime1Cmd =
new G4UIcmdWithABool(
"/process/optical/defaults/scintillation/setFiniteRiseTime",
this);
222 fScintFiniteRiseTime1Cmd->
SetGuidance(
"Set option of a finite rise-time for G4Scintillation");
223 fScintFiniteRiseTime1Cmd->
SetGuidance(
"If set, the G4Scintillation process expects the user to have set the");
224 fScintFiniteRiseTime1Cmd->
SetGuidance(
"constant material property FAST/SLOWSCINTILLATIONRISETIME");
225 fScintFiniteRiseTime1Cmd->
SetGuidance(
"DEPRECATED: use /process/optical/scintillation/setFiniteRiseTime instead.");
228
229 fScintFiniteRiseTimeCmd =
new G4UIcmdWithABool(
"/process/optical/scintillation/setFiniteRiseTime",
this);
230 fScintFiniteRiseTimeCmd->
SetGuidance(
"Set option of a finite rise-time for G4Scintillation");
231 fScintFiniteRiseTimeCmd->
SetGuidance(
"If set, the G4Scintillation process expects the user to have set the");
232 fScintFiniteRiseTimeCmd->
SetGuidance(
"constant material property FAST/SLOWSCINTILLATIONRISETIME");
235
236 fScintStackPhotons1Cmd =
new G4UIcmdWithABool(
"/process/optical/defaults/scintillation/setStackPhotons",
this);
237 fScintStackPhotons1Cmd->
SetGuidance(
"Set whether or not to stack secondary Scintillation photons");
238 fScintStackPhotons1Cmd->
SetGuidance(
"DEPRECATED: use /process/optical/scintillation/setStackPhotons instead.");
239 fScintStackPhotons1Cmd->
SetParameterName(
"ScintillationStackPhotons",
true);
242
243 fScintStackPhotonsCmd =
new G4UIcmdWithABool(
"/process/optical/scintillation/setStackPhotons",
this);
244 fScintStackPhotonsCmd->
SetGuidance(
"Set whether or not to stack secondary Scintillation photons");
248
249 fScintTrackSecondariesFirstCmd =
new G4UIcmdWithABool(
"/process/optical/scintillation/setTrackSecondariesFirst",
this);
250 fScintTrackSecondariesFirstCmd->
SetGuidance(
"Whether to track scintillation secondaries before primary.");
252
253 fScintVerboseLevelCmd =
new G4UIcmdWithAnInteger(
"/process/optical/scintillation/verbose",
this);
254 fScintVerboseLevelCmd->
SetGuidance(
"Verbose level for scintillation process.");
256 fScintVerboseLevelCmd->
SetRange(
"verbose >= 0 && verbose <= 2");
258
259
260 fWLSTimeProfile1Cmd =
new G4UIcmdWithAString(
"/process/optical/defaults/wls/setTimeProfile",
this);
261 fWLSTimeProfile1Cmd->
SetGuidance(
"Set the WLS time profile (delta or exponential)");
262 fWLSTimeProfile1Cmd->
SetGuidance(
"DEPRECATED: use /process/optical/wls/setTimeProfile instead.");
266
267 fWLSTimeProfileCmd =
new G4UIcmdWithAString(
"/process/optical/wls/setTimeProfile",
this);
268 fWLSTimeProfileCmd->
SetGuidance(
"Set the WLS time profile (delta or exponential)");
272
274 fWLSVerboseLevelCmd->
SetGuidance(
"Verbose level for WLS process.");
276 fWLSVerboseLevelCmd->
SetRange(
"verbose >= 0 && verbose <= 2");
279
280
281 fWLS2TimeProfileCmd =
new G4UIcmdWithAString(
"/process/optical/wls2/setTimeProfile",
this);
282 fWLS2TimeProfileCmd->
SetGuidance(
"Set the WLS2 time profile (delta or exponential)");
286
288 fWLS2VerboseLevelCmd->
SetGuidance(
"Verbose level for WLS2 process.");
290 fWLS2VerboseLevelCmd->
SetRange(
"verbose >= 0 && verbose <= 2");
293
294
295 fBoundaryInvokeSD1Cmd =
new G4UIcmdWithABool(
"/process/optical/defaults/boundary/setInvokeSD",
this);
296 fBoundaryInvokeSD1Cmd->
SetGuidance(
"Set option for calling InvokeSD in G4OpBoundaryProcess");
297 fBoundaryInvokeSD1Cmd->
SetGuidance(
"DEPRECATED: use /process/optical/boundary/setInvokeSD instead.");
300
301 fBoundaryInvokeSDCmd =
new G4UIcmdWithABool(
"/process/optical/boundary/setInvokeSD",
this);
302 fBoundaryInvokeSDCmd->
SetGuidance(
"Set option for calling InvokeSD in G4OpBoundaryProcess");
305
307 fBoundaryVerboseLevelCmd->
SetGuidance(
"Verbose level for boundary process.");
309 fBoundaryVerboseLevelCmd->
SetRange(
"verbose >= 0 && verbose <= 2");
312
313
314 fBoundaryInvokeSD1Cmd =
new G4UIcmdWithABool(
"/process/optical/defaults/boundary/setInvokeSD",
this);
315 fAbsorptionVerboseLevelCmd =
new G4UIcmdWithAnInteger(
"/process/optical/absorption/verbose",
this);
316 fAbsorptionVerboseLevelCmd->
SetGuidance(
"Verbose level for absorption process.");
318 fAbsorptionVerboseLevelCmd->
SetRange(
"verbose >= 0 && verbose <= 2");
321
322
323 fBoundaryInvokeSD1Cmd =
new G4UIcmdWithABool(
"/process/optical/defaults/boundary/setInvokeSD",
this);
325 fRayleighVerboseLevelCmd->
SetGuidance(
"Verbose level for Rayleigh process.");
327 fRayleighVerboseLevelCmd->
SetRange(
"verbose >= 0 && verbose <= 2");
330
331
333 fMieVerboseLevelCmd->
SetGuidance(
"Verbose level for Mie process.");
335 fMieVerboseLevelCmd->
SetRange(
"verbose >= 0 && verbose <= 2");
338}
@ kNoProcess
Number of processes, no selected process.
G4String G4OpticalProcessName(G4int)
Return the name for a given optical process index.
void SetParameterName(const char *theName, G4bool omittable, G4bool currentAsDefault=false)
void SetDefaultValue(G4bool defVal)
void SetParameterName(const char *theName, G4bool omittable, G4bool currentAsDefault=false)
void SetCandidates(const char *candidateList)
void SetParameterName(const char *theName, G4bool omittable, G4bool currentAsDefault=false)
void SetParameterName(const char *theName, G4bool omittable, G4bool currentAsDefault=false)
void SetDefaultValue(G4int defVal)
void SetParameter(G4UIparameter *const newParameter)
void SetGuidance(const char *aGuidance)
void SetRange(const char *rs)
void AvailableForStates(G4ApplicationState s1)
void CreateDirectory(const G4String &path, const G4String &dsc, G4bool commandsToBeBroadcasted=true)
void SetDefaultValue(const char *theDefaultValue)
void SetGuidance(const char *theGuidance)
void SetParameterCandidates(const char *theString)