56 : params(opticalParameters)
57
58{
59 G4bool toBeBroadcasted =
false;
60 fDir =
new G4UIdirectory(
"/process/optical/", toBeBroadcasted);
62 "Commands related to the optical physics simulation engine.");
63
64 fCerenkovDir =
65 new G4UIdirectory(
"/process/optical/cerenkov/", toBeBroadcasted);
66 fCerenkovDir->
SetGuidance(
"Cerenkov process commands");
67 fScintDir =
68 new G4UIdirectory(
"/process/optical/scintillation/", toBeBroadcasted);
69 fScintDir->
SetGuidance(
"Scintillation process commands");
70 fWlsDir =
new G4UIdirectory(
"/process/optical/wls/", toBeBroadcasted);
71 fWlsDir->
SetGuidance(
"Wave length shifting process commands");
72 fWls2Dir =
new G4UIdirectory(
"/process/optical/wls2/", toBeBroadcasted);
73 fWls2Dir->
SetGuidance(
"Second Wave length shifting process commands");
74 fBoundaryDir =
75 new G4UIdirectory(
"/process/optical/boundary/", toBeBroadcasted);
76 fBoundaryDir->
SetGuidance(
"Boundary scattering commands");
77 fMieDir =
new G4UIdirectory(
"/process/optical/mie/", toBeBroadcasted);
78 fMieDir->
SetGuidance(
"Mie scattering process commands");
79 fAbsDir =
new G4UIdirectory(
"/process/optical/absorption/", toBeBroadcasted);
80 fAbsDir->
SetGuidance(
"absorption process commands");
81 fRaylDir =
new G4UIdirectory(
"/process/optical/rayleigh/", toBeBroadcasted);
82 fRaylDir->
SetGuidance(
"Rayleigh scattering commands");
83
84
85 fActivateProcessCmd =
86 new G4UIcommand(
"/process/optical/processActivation",
this);
88 "Activate/deactivate the specified optical process");
92 {
95 }
96 par->SetParameterCandidates(candidates);
97 par->SetGuidance("the process name");
100 par->SetDefaultValue(true);
101 par->SetGuidance("activation flag");
104
106 fVerboseCmd->
SetGuidance(
"Set default verbose level for optical processes");
111
112 fDumpCmd =
new G4UIcommand(
"/process/optical/printParameters",
this);
113 fDumpCmd->
SetGuidance(
"Print all optical parameters.");
114
115
116 fCerenkovMaxPhotonsCmd =
118 fCerenkovMaxPhotonsCmd->
SetGuidance(
"Set maximum number of photons per step");
120 fCerenkovMaxPhotonsCmd->
SetRange(
"CerenkovMaxPhotons>=0");
122
123 fCerenkovMaxBetaChangeCmd =
126 "Set maximum change of beta of parent particle per step (in percent)");
127 fCerenkovMaxBetaChangeCmd->
SetParameterName(
"CerenkovMaxBetaChange",
false);
128 fCerenkovMaxBetaChangeCmd->
SetRange(
"CerenkovMaxBetaChange>=0");
130
131 fCerenkovStackPhotonsCmd =
134 "Set whether or not to stack secondary Cerenkov photons");
136
138 "/process/optical/cerenkov/setTrackSecondariesFirst", this);
140 "Whether to track secondary Cerenkov photons before the primary.");
143
144 fCerenkovVerboseLevelCmd =
146 fCerenkovVerboseLevelCmd->
SetGuidance(
"Verbose level for Cerenkov process.");
148 fCerenkovVerboseLevelCmd->
SetRange(
"verbose >= 0 && verbose <= 2");
151
152
154 "/process/optical/scintillation/setByParticleType", this);
156 "Activate/Inactivate scintillation process by particle type");
158 "ScintillationByParticleTypeActivation", false);
160
161 fScintTrackInfoCmd =
164 "Activate/Inactivate scintillation TrackInformation");
167
169 "/process/optical/scintillation/setFiniteRiseTime", this);
171 "Set option of a finite rise-time for G4Scintillation");
173 "If set, the G4Scintillation process expects the user to have set the");
175 "constant material property SCINTILLATIONRISETIME{1,2,3}");
178
180 "/process/optical/scintillation/setStackPhotons", this);
182 "Set whether or not to stack secondary Scintillation photons");
186
188 "/process/optical/scintillation/setTrackSecondariesFirst", this);
190 "Whether to track scintillation secondaries before primary.");
193
194 fScintVerboseLevelCmd =
197 "Verbose level for scintillation process.");
199 fScintVerboseLevelCmd->
SetRange(
"verbose >= 0 && verbose <= 2");
201
202
203 fWLSTimeProfileCmd =
206 "Set the WLS time profile (delta or exponential)");
210
211 fWLSVerboseLevelCmd =
213 fWLSVerboseLevelCmd->
SetGuidance(
"Verbose level for WLS process.");
215 fWLSVerboseLevelCmd->
SetRange(
"verbose >= 0 && verbose <= 2");
218
219
220 fWLS2TimeProfileCmd =
223 "Set the WLS2 time profile (delta or exponential)");
227
228 fWLS2VerboseLevelCmd =
230 fWLS2VerboseLevelCmd->
SetGuidance(
"Verbose level for WLS2 process.");
232 fWLS2VerboseLevelCmd->
SetRange(
"verbose >= 0 && verbose <= 2");
235
236
237 fBoundaryInvokeSDCmd =
240 "Set option for calling InvokeSD in G4OpBoundaryProcess");
243
244 fBoundaryVerboseLevelCmd =
246 fBoundaryVerboseLevelCmd->
SetGuidance(
"Verbose level for boundary process.");
248 fBoundaryVerboseLevelCmd->
SetRange(
"verbose >= 0 && verbose <= 2");
251
252
253 fAbsorptionVerboseLevelCmd =
256 "Verbose level for absorption process.");
258 fAbsorptionVerboseLevelCmd->
SetRange(
"verbose >= 0 && verbose <= 2");
261
262
263 fRayleighVerboseLevelCmd =
265 fRayleighVerboseLevelCmd->
SetGuidance(
"Verbose level for Rayleigh process.");
267 fRayleighVerboseLevelCmd->
SetRange(
"verbose >= 0 && verbose <= 2");
270
271
272 fMieVerboseLevelCmd =
274 fMieVerboseLevelCmd->
SetGuidance(
"Verbose level for Mie process.");
276 fMieVerboseLevelCmd->
SetRange(
"verbose >= 0 && verbose <= 2");
279}
@ 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)