GEMC  2.3
Geant4 Monte-Carlo Framework
gemc_options.cc
Go to the documentation of this file.
1 // gemc headers
2 #include "options.h"
3 
5 {
6  // Initialize all the options in the map<string, aopt>
7  //
8  // The "string" of the pair in the map is the argument name: -"name"=
9  // args = the string type argument
10  // arg = the numeric type argument
11  // help = Long explanation.
12  // name = Short description.
13  // type = 1 for argumenst that are strings, 0 for numbers.
14 
15  // Generator
16  optMap["BEAM_P"].args = "e-, 11*GeV, 0*deg, 0*deg";
17  optMap["BEAM_P"].help = "Beam particle, momentum, angles (in respect of z-axis). \n";
18  optMap["BEAM_P"].help += " Example: -BEAM_P=\"e-, 6*GeV, 15*deg, 20*deg\" sets 6 GeV electrons 15 degrees in theta, 20 degrees in phi. \n";
19  optMap["BEAM_P"].help += " Use -BEAM_P=\"show_all\" to print the list of G4 supported particles.\n";
20  optMap["BEAM_P"].name = "Primary particle, Energy, Theta, Phi";
21  optMap["BEAM_P"].type = 1;
22  optMap["BEAM_P"].ctgr = "generator";
23 
24  optMap["SPREAD_P"].args = "0*GeV, 0*deg, 0*deg";
25  optMap["SPREAD_P"].help = "Spread Primary Particle energy and angles (in respect of z-axis). \n";
26  optMap["SPREAD_P"].help += " Example: -SPREAD_P=\"0*GeV, 10*deg, 20*deg\" spreads 10 degrees in theta, 20 degrees in phi. \n";
27  optMap["SPREAD_P"].help += " If the word flat is added to the option, theta is flat instead of cos(theta). \n";
28  optMap["SPREAD_P"].name = "delta_Energy, delta_Theta, delta_phi";
29  optMap["SPREAD_P"].type = 1;
30  optMap["SPREAD_P"].ctgr = "generator";
31 
32  optMap["ALIGN_ZAXIS"].args = "no";
33  optMap["ALIGN_ZAXIS"].help = "Align z axis to a custom direction. Options:\n";
34  optMap["ALIGN_ZAXIS"].help += " - \"beamp\" aligns z axis to the beam directions specified by BEAM_P.\n";
35  optMap["ALIGN_ZAXIS"].help += " - \"custom, theta*unit, phi*unit\" aligns z axis to a custom direction, changes BEAM_P reference frame.";
36  optMap["ALIGN_ZAXIS"].name = "Align z axis to a custom direction.";
37  optMap["ALIGN_ZAXIS"].type = 1;
38  optMap["ALIGN_ZAXIS"].ctgr = "generator";
39 
40  optMap["BEAM_V"].args = "(0, 0, 0)cm";
41  optMap["BEAM_V"].help = "Primary Particle Vertex. Example: -BEAM_V=\"(0, 0, -20)cm\". ";
42  optMap["BEAM_V"].name = "Primary Particle Vertex";
43  optMap["BEAM_V"].type = 1;
44  optMap["BEAM_V"].ctgr = "generator";
45 
46  optMap["SPREAD_V"].args = "(0, 0)cm";
47  optMap["SPREAD_V"].help = "Spread Primary Particle Radius, Z position. Example: -SPREAD_V=\"(0.1, 10)cm\". ";
48  optMap["SPREAD_V"].name = "Primary Particle Vertex Spread";
49  optMap["SPREAD_V"].type = 1;
50  optMap["SPREAD_V"].ctgr = "generator";
51 
52  optMap["POLAR"].args = "100, 0*deg, 0*deg";
53  optMap["POLAR"].help = "Primary Particle polarization percentage and angles (in respect of z-axis). \n";
54  optMap["POLAR"].help += " Example: -POLAR=\"90, 90*deg, 270*deg\" sets 90% polarization 90 degrees in theta, 270 degrees in phi. \n";
55  optMap["POLAR"].help += " Use -POLAR=\"show_all\" to print the list of G4 supported particles.\n";
56  optMap["POLAR"].name = "Primary Particle polarization in %, Theta, Phi";
57  optMap["POLAR"].type = 1;
58  optMap["POLAR"].ctgr = "generator";
59 
60  optMap["N"].arg = 0;
61  optMap["N"].help = "Number of events to be simulated.";
62  optMap["N"].name = "Number of events to be simulated";
63  optMap["N"].type = 0;
64  optMap["N"].ctgr = "generator";
65 
66  optMap["EVTN"].arg = 1;
67  optMap["EVTN"].help = "Starting Event Number";
68  optMap["EVTN"].name = "Starting Event Number";
69  optMap["EVTN"].type = 0;
70  optMap["EVTN"].ctgr = "generator";
71 
72 
73  optMap["INPUT_GEN_FILE"].args = "gemc_internal";
74  optMap["INPUT_GEN_FILE"].help = "Generator Input. Current availables file formats:\n";
75  optMap["INPUT_GEN_FILE"].help += " LUND. \n";
76  optMap["INPUT_GEN_FILE"].help += " example: -INPUT_GEN_FILE=\"LUND, input.dat\" or -INPUT_GEN_FILE=\"StdHEP, darkphoton.stdhep\" \n";
77  optMap["INPUT_GEN_FILE"].name = "Generator Input File";
78  optMap["INPUT_GEN_FILE"].type = 1;
79  optMap["INPUT_GEN_FILE"].ctgr = "generator";
80 
81  optMap["MERGE_LUND_BG"].args = "no";
82  optMap["MERGE_LUND_BG"].help = "LUND Input file to merge background events\n";
83  optMap["MERGE_LUND_BG"].help += " example: -MERGE_LUND_BG=\"background.dat\" \n";
84  optMap["MERGE_LUND_BG"].name = "LUND Input file to merge background events";
85  optMap["MERGE_LUND_BG"].type = 1;
86  optMap["MERGE_LUND_BG"].ctgr = "generator";
87 
88 
89 
90  optMap["NGENP"].arg = 10;
91  optMap["NGENP"].help = "Max Number of Generated Particles to save in the Output.";
92  optMap["NGENP"].name = "Max Number of Generated Particles to save in the Output";
93  optMap["NGENP"].type = 0;
94  optMap["NGENP"].ctgr = "generator";
95 
96  optMap["STEER_BEAM"].arg = 0;
97  optMap["STEER_BEAM"].type = 0;
98  optMap["STEER_BEAM"].ctgr = "generator";
99  optMap["STEER_BEAM"].name = "STEER_BEAM";
100  optMap["STEER_BEAM"].help = "Steer the beam, and translate the vertex, of an StdHep file by the amount specified in Beam_P, Beam_V, Spread_V \n";
101 
102  optMap["COSMICRAYS"].args = "no";
103  optMap["COSMICRAYS"].help = "Cosmic Generator. The model has a (cos(theta), p) probability function:\n\n";
104  optMap["COSMICRAYS"].help += " a^(b*cos(theta))/(c*p^2). \n\n";
105  optMap["COSMICRAYS"].help += " The COSMICRAYS option sets the parameters and the momentum range in the last two numbers. \n";
106  optMap["COSMICRAYS"].help += " By default the parameters are: \n";
107  optMap["COSMICRAYS"].help += " a = 55.6: \n";
108  optMap["COSMICRAYS"].help += " b = 1.04: \n";
109  optMap["COSMICRAYS"].help += " c = 64: \n";
110  optMap["COSMICRAYS"].help += " One can use the defaults or set the pars with the options: \n";
111  optMap["COSMICRAYS"].help += " example 1: -COSMICRAYS=\"default, 1, 10\" will use the default parameterization, and momentum range [1-10] GeV \n";
112  optMap["COSMICRAYS"].help += " example 2: -COSMICRAYS=\"55, 2, 66, 3, 4\" will set the parameterization, and momentum range [3-4] GeV \n";
113  optMap["COSMICRAYS"].name = "Cosmic Generator";
114  optMap["COSMICRAYS"].type = 1;
115  optMap["COSMICRAYS"].ctgr = "generator";
116 
117  optMap["COSMICAREA"].args = "0*cm, 0*cm, 0*cm, 50*cm";
118  optMap["COSMICAREA"].help = "Target (x,y,z) location and radius of area of interest";
119  optMap["COSMICAREA"].name = "Target (x,y,z) location and radius of area of interest";
120  optMap["COSMICAREA"].type = 1;
121  optMap["COSMICAREA"].ctgr = "generator";
122 
123 
124 
125  // Luminosity Beam
126  optMap["LUMI_P"].args = "e-, 11*GeV, 0*deg, 0*deg";
127  optMap["LUMI_P"].help = "Luminosity Particle, momentum, angles (in respect of z-axis). \n";
128  optMap["LUMI_P"].help += " Example: -LUMI_P=\"proton, 1*GeV, 25*deg, 2*deg\" sets 1 GeV protons, 25 degrees in theta, 2 degrees in phi. \n";
129  optMap["LUMI_P"].help += " Use -LUMI_P=\"show_all\" to print the list of G4 supported particles.\n";
130  optMap["LUMI_P"].name = "Luminosity Particle, Energy, Theta, Phi";
131  optMap["LUMI_P"].type = 1;
132  optMap["LUMI_P"].ctgr = "luminosity";
133 
134  optMap["LUMI_SPREAD_P"].args = "0*GeV, 0*deg, 0*deg";
135  optMap["LUMI_SPREAD_P"].help = "Spread Luminosity Particle energy and angles (in respect of z-axis). \n";
136  optMap["LUMI_SPREAD_P"].help += " Example: -LUMI_SPREAD_P=\"0*GeV, 10*deg, 20*deg\" spreads 10 degrees in theta, 20 degrees in phi. \n";
137  optMap["LUMI_SPREAD_P"].help += " If the word flat is added to the option, theta is flat instead of cos(theta). \n";
138  optMap["LUMI_SPREAD_P"].name = "delta_Energy, delta_Theta, delta_phi";
139  optMap["LUMI_SPREAD_P"].type = 1;
140  optMap["LUMI_SPREAD_P"].ctgr = "generator";
141 
142  optMap["LUMI_V"].args = "(0, 0, -20)cm";
143  optMap["LUMI_V"].help = "Luminosity Particle Vertex. Example: -LUMI_V=\"(0, 0, -20)cm\". ";
144  optMap["LUMI_V"].name = "Luminosity Particle Vertex";
145  optMap["LUMI_V"].type = 1;
146  optMap["LUMI_V"].ctgr = "luminosity";
147 
148  optMap["LUMI_SPREAD_V"].args = "(0, 0)cm";
149  optMap["LUMI_SPREAD_V"].help = "Spread Luminosity Particle Radius, Z position. Example: -SPREAD_V=\"(0.1, 10)cm\". ";
150  optMap["LUMI_SPREAD_V"].name = "Luminosity Particle Vertex Spread";
151  optMap["LUMI_SPREAD_V"].type = 1;
152  optMap["LUMI_SPREAD_V"].ctgr = "luminosity";
153 
154  optMap["LUMI_EVENT"].args = "0, 0*ns, 2*ns";
155  optMap["LUMI_EVENT"].help = "Luminosity Particle Parameters: number of Particles/Event, Time Window, Time Between Bunches\n";
156  optMap["LUMI_EVENT"].help += " Example: -LUMI_EVENT=\"10000, 120*ns, 2*ns\" simulate 10K particles per event distributed over 120 ns, at 2ns intervals. \n";
157  optMap["LUMI_EVENT"].name = "Luminosity Particle Parameters";
158  optMap["LUMI_EVENT"].type = 1;
159  optMap["LUMI_EVENT"].ctgr = "luminosity";
160 
161  optMap["LUMI2_P"].args = "proton, 50*GeV, 175*deg, 180*deg";
162  optMap["LUMI2_P"].help = "Luminosity Particle 2, momentum, angles (in respect of z-axis). \n";
163  optMap["LUMI2_P"].help += " Example: -LUMI2_P=\"proton, 1*GeV, 25*deg, 2*deg\" sets 1 GeV protons, 25 degrees in theta, 2 degrees in phi. \n";
164  optMap["LUMI2_P"].help += " Use -LUMI2_P=\"show_all\" to print the list of G4 supported particles.\n";
165  optMap["LUMI2_P"].name = "Luminosity Particle 2, Energy, Theta, Phi";
166  optMap["LUMI2_P"].type = 1;
167  optMap["LUMI2_P"].ctgr = "luminosity";
168 
169  optMap["LUMI2_SPREAD_P"].args = "0*GeV, 0*deg, 0*deg";
170  optMap["LUMI2_SPREAD_P"].help = "Spread Luminosity Particle 2 energy and angles (in respect of z-axis). \n";
171  optMap["LUMI2_SPREAD_P"].help += " Example: -LUMI2_SPREAD_P=\"0*GeV, 10*deg, 20*deg\" spreads 10 degrees in theta, 20 degrees in phi. \n";
172  optMap["LUMI2_SPREAD_P"].help += " If the word flat is added to the option, theta is flat instead of cos(theta). \n";
173  optMap["LUMI2_SPREAD_P"].name = "delta_Energy, delta_Theta, delta_phi";
174  optMap["LUMI2_SPREAD_P"].type = 1;
175  optMap["LUMI2_SPREAD_P"].ctgr = "generator";
176 
177  optMap["LUMI2_V"].args = "(4, 0, 50)cm";
178  optMap["LUMI2_V"].help = "Luminosity Particle 2 Vertex. Example: -LUMI2_V=\"(0, 0, -20)cm\". ";
179  optMap["LUMI2_V"].name = "Luminosity Particle 2 Vertex";
180  optMap["LUMI2_V"].type = 1;
181  optMap["LUMI2_V"].ctgr = "luminosity";
182 
183  optMap["LUMI2_SPREAD_V"].args = "(0, 0)cm";
184  optMap["LUMI2_SPREAD_V"].help = "Spread Luminosity Particle 2 Radius, Z position. Example: -SPREAD_V=\"(0.1, 10)cm\". ";
185  optMap["LUMI2_SPREAD_V"].name = "Luminosity Particle Vertex 2 Spread";
186  optMap["LUMI2_SPREAD_V"].type = 1;
187  optMap["LUMI2_SPREAD_V"].ctgr = "luminosity";
188 
189  optMap["LUMI2_EVENT"].args = "0, 2*ns";
190  optMap["LUMI2_EVENT"].help = "Luminosity Particle 2 Parameters: number of Particles/Event, Time Between Bunches. The Time Window is specified with the LUMI_EVENT flag\n";
191  optMap["LUMI2_EVENT"].help += " Example: -LUMI2_EVENT=\"10000, 2*ns\" simulate 10K particles per event at 2ns intervals. \n";
192  optMap["LUMI2_EVENT"].name = "Luminosity Particle 2 Parameters";
193  optMap["LUMI2_EVENT"].type = 1;
194  optMap["LUMI2_EVENT"].ctgr = "luminosity";
195 
196 
197 
198  // MySQL Database
199  optMap["DBHOST"].args = "no";
200  optMap["DBHOST"].help = "Selects mysql server host name.";
201  optMap["DBHOST"].name = "mysql server host name";
202  optMap["DBHOST"].type = 1;
203  optMap["DBHOST"].ctgr = "mysql";
204 
205  optMap["DATABASE"].args = "no";
206  optMap["DATABASE"].help = "Selects mysql Database.";
207  optMap["DATABASE"].name = "mysql Database";
208  optMap["DATABASE"].type = 1;
209  optMap["DATABASE"].ctgr = "mysql";
210 
211  optMap["DBUSER"].args = "gemc";
212  optMap["DBUSER"].help = "Select mysql user name";
213  optMap["DBUSER"].name = "Select mysql user name";
214  optMap["DBUSER"].type = 1;
215  optMap["DBUSER"].ctgr = "mysql";
216 
217  optMap["DBPSWD"].args = "no";
218  optMap["DBPSWD"].help = "mysql password";
219  optMap["DBPSWD"].name = "Select mysql password";
220  optMap["DBPSWD"].type = 1;
221  optMap["DBPSWD"].ctgr = "mysql";
222 
223  optMap["DBPORT"].arg = 0;
224  optMap["DBPORT"].help = "Select mysql server port.";
225  optMap["DBPORT"].name = "Select mysql server port";
226  optMap["DBPORT"].type = 0;
227  optMap["DBPORT"].ctgr = "mysql";
228 
229 
230 
231 
232 
233 
234  // Verbosity
235  optMap["G4P_VERBOSITY"].arg = 1;
236  optMap["G4P_VERBOSITY"].help = "Controls Physical Volumes Construction Log Output.";
237  optMap["G4P_VERBOSITY"].name = "Logical Volume Verbosity";
238  optMap["G4P_VERBOSITY"].type = 0;
239  optMap["G4P_VERBOSITY"].ctgr = "verbosity";
240 
241  optMap["GEO_VERBOSITY"].arg = 1;
242  optMap["GEO_VERBOSITY"].help = "Controls Geometry Construction Log Output.";
243  optMap["GEO_VERBOSITY"].name = "Geometry Verbosity";
244  optMap["GEO_VERBOSITY"].type = 0;
245  optMap["GEO_VERBOSITY"].ctgr = "verbosity";
246 
247  optMap["GUI_VERBOSITY"].arg = 1;
248  optMap["GUI_VERBOSITY"].help = "Controls GUI Construction Log Output.";
249  optMap["GUI_VERBOSITY"].name = "GUI Verbosity";
250  optMap["GUI_VERBOSITY"].type = 0;
251  optMap["GUI_VERBOSITY"].ctgr = "verbosity";
252 
253  optMap["HIT_VERBOSITY"].arg = 1;
254  optMap["HIT_VERBOSITY"].help = "Controls Hits Log Output. ";
255  optMap["HIT_VERBOSITY"].name = "Hit Verbosity";
256  optMap["HIT_VERBOSITY"].type = 0;
257  optMap["HIT_VERBOSITY"].ctgr = "verbosity";
258 
259  optMap["CATCH"].args = "Maurizio";
260  optMap["CATCH"].help = "Catch volumes matching the given string.";
261  optMap["CATCH"].name = "Volume catcher";
262  optMap["CATCH"].type = 1;
263  optMap["CATCH"].ctgr = "verbosity";
264 
265  optMap["FIELD_VERBOSITY"].arg = 0;
266  optMap["FIELD_VERBOSITY"].help = "Controls Electro-Magnetic Fields Log Output:\n";
267  optMap["FIELD_VERBOSITY"].help += " 0: no log";
268  optMap["FIELD_VERBOSITY"].help += " 1: field definitions log";
269  optMap["FIELD_VERBOSITY"].help += " 2: max field details";
270  optMap["FIELD_VERBOSITY"].name = "Electro-Magnetic Fields Verbosity";
271  optMap["FIELD_VERBOSITY"].type = 0;
272  optMap["FIELD_VERBOSITY"].ctgr = "verbosity";
273 
274  optMap["PRINT_EVENT"].arg = 1000;
275  optMap["PRINT_EVENT"].help = "-PRINT_EVENT=N: Print Event Number every N events.";
276  optMap["PRINT_EVENT"].name = "Print Event Modulus";
277  optMap["PRINT_EVENT"].type = 0;
278  optMap["PRINT_EVENT"].ctgr = "verbosity";
279 
280  optMap["BANK_VERBOSITY"].arg = 1;
281  optMap["BANK_VERBOSITY"].help = "Controls Bank Log Output.";
282  optMap["BANK_VERBOSITY"].name = "Bank Output Verbosity";
283  optMap["BANK_VERBOSITY"].type = 0;
284  optMap["BANK_VERBOSITY"].ctgr = "verbosity";
285 
286  optMap["PHY_VERBOSITY"].arg = 1;
287  optMap["PHY_VERBOSITY"].help = "Controls Physics List Log Output.";
288  optMap["PHY_VERBOSITY"].name = "Physics List Verbosity";
289  optMap["PHY_VERBOSITY"].type = 0;
290  optMap["PHY_VERBOSITY"].ctgr = "verbosity";
291 
292  optMap["GEN_VERBOSITY"].arg = 0;
293  optMap["GEN_VERBOSITY"].help = "Controls Geant4 Generator Verbosity.";
294  optMap["GEN_VERBOSITY"].name = "Geant4 Generator Verbosity";
295  optMap["GEN_VERBOSITY"].type = 0;
296  optMap["GEN_VERBOSITY"].ctgr = "verbosity";
297 
298  optMap["G4TRACK_VERBOSITY"].arg = 0;
299  optMap["G4TRACK_VERBOSITY"].help = "Controls Geant4 Track Verbosity.";
300  optMap["G4TRACK_VERBOSITY"].name = "Geant4 Track Verbosity";
301  optMap["G4TRACK_VERBOSITY"].type = 0;
302  optMap["G4TRACK_VERBOSITY"].ctgr = "verbosity";
303 
304  optMap["MATERIAL_VERBOSITY"].arg = 0;
305  optMap["MATERIAL_VERBOSITY"].help = "Controls Geant4 Material Verbosity.";
306  optMap["MATERIAL_VERBOSITY"].name = "Geant4 Material Verbosity";
307  optMap["MATERIAL_VERBOSITY"].type = 0;
308  optMap["MATERIAL_VERBOSITY"].ctgr = "verbosity";
309 
310  optMap["PARAMETER_VERBOSITY"].arg = 0;
311  optMap["PARAMETER_VERBOSITY"].help = "Controls Parameters Verbosity.";
312  optMap["PARAMETER_VERBOSITY"].name = "Parameters Verbosity";
313  optMap["PARAMETER_VERBOSITY"].type = 0;
314  optMap["PARAMETER_VERBOSITY"].ctgr = "verbosity";
315 
316  optMap["MIRROR_VERBOSITY"].arg = 0;
317  optMap["MIRROR_VERBOSITY"].help = "Controls Mirrors Verbosity.";
318  optMap["MIRROR_VERBOSITY"].name = "Mirrors Verbosity";
319  optMap["MIRROR_VERBOSITY"].type = 0;
320  optMap["MIRROR_VERBOSITY"].ctgr = "verbosity";
321 
322 
323 
324 
325 
326 
327  // Run Control
328  optMap["EXEC_MACRO"].args = "no";
329  optMap["EXEC_MACRO"].help = "Executes commands in macro file.";
330  optMap["EXEC_MACRO"].name = "Executes commands in macro file";
331  optMap["EXEC_MACRO"].type = 1;
332  optMap["EXEC_MACRO"].ctgr = "control";
333  optMap["EXEC_MACRO"].repe = 1;
334 
335  optMap["CHECK_OVERLAPS"].arg = 0;
336  optMap["CHECK_OVERLAPS"].help = "Checks Overlapping Volumes:\n";
337  optMap["CHECK_OVERLAPS"].help += " 1. Check Overlaps at Construction Time\n";
338  optMap["CHECK_OVERLAPS"].help += " 2. Check Overlaps based on standard lines grid setup\n";
339  optMap["CHECK_OVERLAPS"].help += " 3. Check Overlaps by shooting lines according to a cylindrical pattern\n";
340  optMap["CHECK_OVERLAPS"].name = "Checks Overlapping Volumes";
341  optMap["CHECK_OVERLAPS"].type = 0;
342  optMap["CHECK_OVERLAPS"].ctgr = "control";
343 
344  optMap["USE_GUI"].arg = 1;
345  optMap["USE_GUI"].help = " GUI switch\n";
346  optMap["USE_GUI"].help += " 0. Don't use the graphical interface\n";
347  optMap["USE_GUI"].help += " 1. OGLSQt (OGL, OGLS, OGLSQt)\n";
348  optMap["USE_GUI"].help += " 2. OGLIQt (OGLI, OGLIQt) \n";
349  optMap["USE_GUI"].name = "QT Gui";
350  optMap["USE_GUI"].type = 0;
351  optMap["USE_GUI"].ctgr = "control";
352 
353  optMap["geometry"].args="620x620";
354  optMap["geometry"].help = "Specify the size of the QT display window. Default '600x600' ";
355  optMap["geometry"].name="geometry";
356  optMap["geometry"].type=1;
357  optMap["geometry"].ctgr = "control";
358 
359  optMap["GUIPOS"].args="(150, 150)";
360  optMap["GUIPOS"].help = "Specify the position of the QT display window. Default is at 50, 50 ";
361  optMap["GUIPOS"].name="geometry";
362  optMap["GUIPOS"].type=1;
363  optMap["GUIPOS"].ctgr = "control";
364 
365  optMap["QTSTYLE"].args = "no";
366  optMap["QTSTYLE"].name = "Sets the GUI Style";
367  optMap["QTSTYLE"].help = "Sets the GUI Style. Available options: \n";
368  optMap["QTSTYLE"].help += " - QCleanlooksStyle \n";
369  optMap["QTSTYLE"].help += " - QMacStyle \n";
370  optMap["QTSTYLE"].help += " - QPlastiqueStyle \n";
371  optMap["QTSTYLE"].help += " - QWindowsStyle \n";
372  optMap["QTSTYLE"].help += " - QMotifStyle";
373  optMap["QTSTYLE"].type = 1;
374  optMap["QTSTYLE"].ctgr = "control";
375 
376  optMap["RANDOM"].args = "TIME";
377  optMap["RANDOM"].help = "Random Engine Initialization. The argument (seed) can be an integer or the string TIME.";
378  optMap["RANDOM"].name = "Random Engine Initialization";
379  optMap["RANDOM"].type = 1;
380  optMap["RANDOM"].ctgr = "control";
381 
382  optMap["gcard"].args = "no";
383  optMap["gcard"].help = "gemc card file.";
384  optMap["gcard"].name = "gemc card file";
385  optMap["gcard"].type = 1;
386  optMap["gcard"].ctgr = "control";
387 
388  optMap["EVN"].arg = 1;
389  optMap["EVN"].help = "Initial Event Number.";
390  optMap["EVN"].name = "Initial Event Number";
391  optMap["EVN"].type = 0;
392  optMap["EVN"].ctgr = "control";
393 
394  optMap["ENERGY_CUT"].arg = -1.;
395  optMap["ENERGY_CUT"].help = "Set an energy cut in MeV below which no particle will be tracked further. -1. turns this off.";
396  optMap["ENERGY_CUT"].name = "Tracking Energy cut (in MeV)";
397  optMap["ENERGY_CUT"].type = 0;
398  optMap["ENERGY_CUT"].ctgr = "control";
399 
400  optMap["MAX_X_POS"].arg = 20000.;
401  optMap["MAX_X_POS"].help = "Max X Position in millimeters. Beyond this the track will be killed";
402  optMap["MAX_X_POS"].name = "Max X Position in millimeters. Beyond this the track will be killed.";
403  optMap["MAX_X_POS"].type = 0;
404  optMap["MAX_X_POS"].ctgr = "control";
405 
406  optMap["MAX_Y_POS"].arg = 20000.;
407  optMap["MAX_Y_POS"].help = "Max Y Position in millimeters. Beyond this the track will be killed";
408  optMap["MAX_Y_POS"].name = "Max Y Position in millimeters. Beyond this the track will be killed.";
409  optMap["MAX_Y_POS"].type = 0;
410  optMap["MAX_Y_POS"].ctgr = "control";
411 
412  optMap["MAX_Z_POS"].arg = 20000.;
413  optMap["MAX_Z_POS"].help = "Max Z Position in millimeters. Beyond this the track will be killed";
414  optMap["MAX_Z_POS"].name = "Max Z Position in millimeters. Beyond this the track will be killed.";
415  optMap["MAX_Z_POS"].type = 0;
416  optMap["MAX_Z_POS"].ctgr = "control";
417 
418  optMap["DAWN_N"].arg = 0;
419  optMap["DAWN_N"].name = "Number of events to be displayed with the DAWN driver (also activate the DAWN driver)";
420  optMap["DAWN_N"].help = "Number of events to be displayed with the DAWN driver (also activate the DAWN driver).";
421  optMap["DAWN_N"].type = 0;
422  optMap["DAWN_N"].ctgr = "control";
423 
424  optMap["HIT_PROCESS_LIST"].args = "clas12";
425  optMap["HIT_PROCESS_LIST"].name = "Registers Hit Process Routines.";
426  optMap["HIT_PROCESS_LIST"].help = "Registers Hit Process Routines. Can register multiple experiments, separated by space, e.v. \"clas12 aprime\"\n";
427  optMap["HIT_PROCESS_LIST"].help += " clas12. CLAS12 hit process routines (default)\n";
428  optMap["HIT_PROCESS_LIST"].help += " aprime. aprime hit process routines\n";
429  optMap["HIT_PROCESS_LIST"].help += " gluex. GlueX hit process routines\n";
430  optMap["HIT_PROCESS_LIST"].type = 1;
431  optMap["HIT_PROCESS_LIST"].ctgr = "control";
432 
433  optMap["SAVE_ALL_MOTHERS"].arg = 0;
434  optMap["SAVE_ALL_MOTHERS"].name = "Set to 1 to save mother vertex and pid infos in output. High Memory Usage";
435  optMap["SAVE_ALL_MOTHERS"].help = "Set to 1 to save mother vertex and pid infos in output. High Memory Usage. Default is 0.\n";
436  optMap["SAVE_ALL_MOTHERS"].help += "Set to 2 to save in LUND format particles that generate hits (unless mother also generate hits)\n";
437  optMap["SAVE_ALL_MOTHERS"].help += "Set to 3 to save in LUND format particles that generate hits (even if mother also generate hits)\n";
438  optMap["SAVE_ALL_MOTHERS"].type = 0;
439  optMap["SAVE_ALL_MOTHERS"].ctgr = "control";
440 
441  optMap["HIGH_RES"].arg = 1;
442  optMap["HIGH_RES"].name = "Use High Resolution Graphics";
443  optMap["HIGH_RES"].help = "Use High Resolution Graphics\n";
444  optMap["HIGH_RES"].type = 0;
445  optMap["HIGH_RES"].ctgr = "control";
446 
447  optMap["RECORD_PASSBY"].arg = 0;
448  optMap["RECORD_PASSBY"].name = "Set to one if you want to save zero energy hits in the output";
449  optMap["RECORD_PASSBY"].help = "Set to one if you want to save zero energy hits in the output. Default is 0.\n";
450  optMap["RECORD_PASSBY"].type = 0;
451  optMap["RECORD_PASSBY"].ctgr = "control";
452 
453  optMap["RECORD_MIRRORS"].arg = 0;
454  optMap["RECORD_MIRRORS"].name = "Set to one if you want to save mirror hits in the output";
455  optMap["RECORD_MIRRORS"].help = "Set to one if you want to save mirror hits in the output. Default is 0.\n";
456  optMap["RECORD_MIRRORS"].type = 0;
457  optMap["RECORD_MIRRORS"].ctgr = "control";
458 
459  optMap["RUNNO"].arg = 1;
460  optMap["RUNNO"].name = "Run Number. Controls the geometry and calibration parameters";
461  optMap["RUNNO"].help = "Run Number. Controls the geometry and calibration parameters. Default is 1\n";
462  optMap["RUNNO"].type = 0;
463  optMap["RUNNO"].ctgr = "control";
464 
465  optMap["RUN_WEIGHTS"].args = "no";
466  optMap["RUN_WEIGHTS"].name = "Simulate events based on run based conditions table (text file)";
467  optMap["RUN_WEIGHTS"].help = "Simulate events based on run based conditions table (text file)\n";
468  optMap["RUN_WEIGHTS"].help += " The text file must have two columns, run# and weight.\n";
469  optMap["RUN_WEIGHTS"].help += " For example:\n\n";
470  optMap["RUN_WEIGHTS"].help += " 11 0.1\n";
471  optMap["RUN_WEIGHTS"].help += " 12 0.7\n";
472  optMap["RUN_WEIGHTS"].help += " 13 0.2\n\n";
473  optMap["RUN_WEIGHTS"].help += " Will simulate 10% of events with run number 11 conditions, 70% run 12 and 20% run 13.\n";
474  optMap["RUN_WEIGHTS"].type = 1;
475  optMap["RUN_WEIGHTS"].ctgr = "control";
476 
477 
478 
479 
480  // Output
481  optMap["OUTPUT"].args = "no, output";
482  optMap["OUTPUT"].help = "Type of output, output filename. Supported output: evio, txt. Example: -OUTPUT=\"evio, out.ev\"";
483  optMap["OUTPUT"].name = "Type of output, output filename. ";
484  optMap["OUTPUT"].type = 1;
485  optMap["OUTPUT"].ctgr = "output";
486 
487  // disabled by default
488  optMap["INTEGRATEDRAW"].args = "no";
489  optMap["INTEGRATEDRAW"].help = "Activates integrated geant4 raw output for system(s). Example: -INTEGRATEDRAW=\"DC, TOF\"";
490  optMap["INTEGRATEDRAW"].name = "Activates integrated geant4 raw output for system(s)";
491  optMap["INTEGRATEDRAW"].type = 1;
492  optMap["INTEGRATEDRAW"].ctgr = "output";
493 
494  // disabled by default
495  optMap["INTEGRATEDDGT"].args = "yes";
496  optMap["INTEGRATEDDGT"].help = "De-activates integrated digitized output for system(s). Example: -INTEGRATEDDGT=\"DC, TOF\"";
497  optMap["INTEGRATEDDGT"].name = "De-activates integrated digitized output for system(s). ";
498  optMap["INTEGRATEDDGT"].type = 1;
499  optMap["INTEGRATEDRAW"].ctgr = "output";
500 
501  // disabled by default
502  optMap["ALLRAWS"].args = "no";
503  optMap["ALLRAWS"].help = "Activates step-by-step output for system(s). Example: -ALLRAWS=\"DC, TOF\"";
504  optMap["ALLRAWS"].name = "Activates step-by-step output for system(s). ";
505  optMap["ALLRAWS"].type = 1;
506  optMap["ALLRAWS"].ctgr = "output";
507 
508  // disabled by default
509  optMap["SIGNALVT"].args = "no";
510  optMap["SIGNALVT"].help = "Activates voltage (t) output for system(s). Example: -SIGNALVT=\"DC, TOF\"";
511  optMap["SIGNALVT"].name = "Activates voltage (t) output for system(s). ";
512  optMap["SIGNALVT"].type = 1;
513  optMap["SIGNALVT"].ctgr = "output";
514 
515  // voltage versus time resolution, in ns
516  optMap["VTRESOLUTION"].arg = 0.1;
517  optMap["VTRESOLUTION"].help = "Voltage versus time resolution, in ns";
518  optMap["VTRESOLUTION"].name = "Voltage versus time resolution, in ns.";
519  optMap["VTRESOLUTION"].type = 0;
520  optMap["VTRESOLUTION"].ctgr = "output";
521 
522  // sampling time of electronics (typically FADC), electronic event time size
523  // the VT output is sampled every TSAMPLING nanoseconds to produce a ADC
524  // the default for event time size is 2 microsecond, for a total of 500 ADC points / channel
525  optMap["TSAMPLING"].args = "4, 500";
526  optMap["TSAMPLING"].help = "Sampling time of electronics (typically FADC)";
527  optMap["TSAMPLING"].name = "Sampling time of electronics (typically FADC)";
528  optMap["TSAMPLING"].type = 1;
529  optMap["TSAMPLING"].ctgr = "output";
530 
531 
532  // Physics
533  optMap["PHYSICS"].args = "FTFP_BERT";
534  optMap["PHYSICS"].help = " Physics List. The lists are modular and can be added together. \n";
535  optMap["PHYSICS"].help += " For example, a choice could be 'QGSC_BERT + STD + HP + Optical'\n";
536  optMap["PHYSICS"].help += " Possible Choices:\n";
537  optMap["PHYSICS"].help += " Hadronic: \n";
538  optMap["PHYSICS"].help += " - CHIPS\n";
539  optMap["PHYSICS"].help += " - FTFP_BERT\n";
540  optMap["PHYSICS"].help += " - FTFP_BERT_TRV\n";
541  optMap["PHYSICS"].help += " - FTF_BIC\n";
542  optMap["PHYSICS"].help += " - LHEP\n";
543  optMap["PHYSICS"].help += " - QGSC_BERT\n";
544  optMap["PHYSICS"].help += " - QGSP\n";
545  optMap["PHYSICS"].help += " - QGSP_BERT\n";
546  optMap["PHYSICS"].help += " - QGSP_BERT_CHIPS\n";
547  optMap["PHYSICS"].help += " - QGSP_BERT_HP\n";
548  optMap["PHYSICS"].help += " - QGSP_BIC\n";
549  optMap["PHYSICS"].help += " - QGSP_BIC_HP\n";
550  optMap["PHYSICS"].help += " - QGSP_FTFP_BERT\n";
551  optMap["PHYSICS"].help += " - QGS_BIC\n";
552  optMap["PHYSICS"].help += " - QGSP_INCLXX\n";
553  optMap["PHYSICS"].help += " Electromagnetic: \n";
554  optMap["PHYSICS"].help += " - STD\n";
555  optMap["PHYSICS"].help += " - EMV\n";
556  optMap["PHYSICS"].help += " - EMX\n";
557  optMap["PHYSICS"].help += " - EMY\n";
558  optMap["PHYSICS"].help += " - EMZ\n";
559  optMap["PHYSICS"].help += " - LIV\n";
560  optMap["PHYSICS"].help += " - PEN\n";
561  optMap["PHYSICS"].name = "Choice of Physics List";
562  optMap["PHYSICS"].type = 1;
563  optMap["PHYSICS"].ctgr = "physics";
564 
565  optMap["HALL_MATERIAL"].args = "Vacuum";
566  optMap["HALL_MATERIAL"].help = "Composition of the Experimental Hall. \n";
567  optMap["HALL_MATERIAL"].help += " Air normal simulation\n";
568  optMap["HALL_MATERIAL"].help += " Air_Opt Simulation with Optical Physics\n";
569  optMap["HALL_MATERIAL"].help += " Vacuum (default)\n";
570  optMap["HALL_MATERIAL"].name = "Composition of the Experimental Hall";
571  optMap["HALL_MATERIAL"].type = 1;
572  optMap["HALL_MATERIAL"].ctgr = "physics";
573 
574  optMap["DEFAULT_MATERIAL"].args = "none";
575  optMap["DEFAULT_MATERIAL"].help = "Default material for missing material field.\n";
576  optMap["DEFAULT_MATERIAL"].name = "Default material for missing material field";
577  optMap["DEFAULT_MATERIAL"].type = 1;
578  optMap["DEFAULT_MATERIAL"].ctgr = "physics";
579 
580  optMap["HALL_FIELD"].args = "no";
581  optMap["HALL_FIELD"].help = "Magnetic Field of the Hall. \n";
582  optMap["HALL_FIELD"].name = "Magnetic Field of the Hall";
583  optMap["HALL_FIELD"].type = 1;
584  optMap["HALL_FIELD"].ctgr = "physics";
585 
586  optMap["HALL_DIMENSIONS"].args = "20*m, 20*m, 20*m";
587  optMap["HALL_DIMENSIONS"].help = "(x,y,z) semi-dimensions of the experimental Hall.\n";
588  optMap["HALL_DIMENSIONS"].name = "(x,y,z) semi-dimensions of the experimental Hall.";
589  optMap["HALL_DIMENSIONS"].type = 1;
590  optMap["HALL_DIMENSIONS"].ctgr = "physics";
591 
592  optMap["FIELD_DIR"].args = "env";
593  optMap["FIELD_DIR"].help = "Magnetic Field Maps Location. \n";
594  optMap["FIELD_DIR"].name = "Magnetic Field Maps Location";
595  optMap["FIELD_DIR"].type = 1;
596  optMap["FIELD_DIR"].ctgr = "physics";
597 
598  optMap["NO_FIELD"].args = "none";
599  optMap["NO_FIELD"].help = "Sets Magnetic Field of a volume to zero. \"all\" means no magnetic field at all. \n";
600  optMap["NO_FIELD"].name = "Sets Magnetic Field of a volume to zero. \"all\" means no magnetic field at all ";
601  optMap["NO_FIELD"].type = 1;
602  optMap["NO_FIELD"].ctgr = "physics";
603  optMap["NO_FIELD"].repe = 0;
604 
605  optMap["PHYS_VERBOSITY"].arg = 0;
606  optMap["PHYS_VERBOSITY"].help = "Physics List Verbosity";
607  optMap["PHYS_VERBOSITY"].name = "Physics List Verbosity";
608  optMap["PHYS_VERBOSITY"].type = 0;
609  optMap["PHYS_VERBOSITY"].ctgr = "physics";
610 
611 
612  // by default set max field step to 1 cm. Notice: it has to be greater than the min!
613  optMap["MAX_FIELD_STEP"].arg = 0;
614  optMap["MAX_FIELD_STEP"].help = "Sets Maximum Acceptable Step in Magnetic Field (in mm).\n";
615  optMap["MAX_FIELD_STEP"].name = "Sets Maximum Acceptable Step in Magnetic Field (in mm) ";
616  optMap["MAX_FIELD_STEP"].type = 0;
617  optMap["MAX_FIELD_STEP"].ctgr = "physics";
618 
619  optMap["SCALE_FIELD"].args = "no, 1";
620  optMap["SCALE_FIELD"].help = "Scales Magnetic Field by a factor.\n";
621  optMap["SCALE_FIELD"].help += " Usage:\n";
622  optMap["SCALE_FIELD"].help += " -SCALE_FIELD=\"fieldname, scalefactor\"\n";
623  optMap["SCALE_FIELD"].help += " Example: -SCALE_FIELD=\"srr-solenoid, 0.5\"\n";
624  optMap["SCALE_FIELD"].name = "Electro-Magnetic Field scale";
625  optMap["SCALE_FIELD"].type = 1;
626  optMap["SCALE_FIELD"].ctgr = "physics";
627  optMap["SCALE_FIELD"].repe = 1;
628 
629  optMap["ACTIVEFIELDS"].args = "none";
630  optMap["ACTIVEFIELDS"].help = "List of activated fields\n";
631  optMap["ACTIVEFIELDS"].name = "List of activated fields";
632  optMap["ACTIVEFIELDS"].type = 1;
633  optMap["ACTIVEFIELDS"].ctgr = "physics";
634  optMap["ACTIVEFIELDS"].repe = 1;
635 
636  optMap["PRODUCTIONCUT"].arg = 10;
637  optMap["PRODUCTIONCUT"].help = "Production cut for root, in mm\n";
638  optMap["PRODUCTIONCUT"].name = "Production cut for root, in mm";
639  optMap["PRODUCTIONCUT"].type = 0;
640  optMap["PRODUCTIONCUT"].ctgr = "physics";
641 
642 
643 
644  // General
645  optMap["DF"].args = "no";
646  optMap["DF"].help = "Selects Detector System and Factory type. \n";
647  optMap["DF"].help += " Example:\n";
648  optMap["DF"].help += " -DF=\"CTOF, MYSQL\" selects the MYSQL factory for the detector CTOF\n";
649  optMap["DF"].name = "Detector System and Factory type.";
650  optMap["DF"].type = 1;
651  optMap["DF"].ctgr = "general";
652  optMap["DF"].repe = 1;
653 
654 }
655 
656 
virtual void setGoptions()
Function to fill optMap.
Definition: gemc_options.cc:4
map< string, aopt > optMap
Options map.
Definition: options.h:75