5 * Revision 1.1.1.1 1995/10/24 10:19:37 cernlib
9 /*CMZ : 24/08/95 15.30.04 by S.Ravndal*/
10 #if !defined(CERNLIB_KUIP95A)
14 * This file has been generated by the KUIP compiler. Do NOT change it!
16 * KUIP header: 950303 Generation date: Thu Aug 24 15:18:48 1995
18 * Input file: geant321x.doc
21 #if !defined(F77_LCASE) && !defined(F77_UCASE) && !defined(F77_USCORE)
22 # if defined(__EXTENDED__) && !defined(IBM370) && !defined(_IBMR2)
25 # if defined(CRAY) || defined(IBM370) || defined(vms)
28 # if ( defined(apollo) || defined(__apollo) ) && defined(APOFTN)
36 typedef int IntFunc();
37 typedef char* CharFunc();
38 typedef char** pCharFunc();
39 typedef void SUBROUTINE();
41 # pragma linkage(SUBROUTINE,FORTRAN)
44 extern void klnkmenu();
45 extern void klnkbrcl();
46 extern void klnkkmcl();
47 extern void klnkicon();
48 extern void klnkbutt();
50 typedef unsigned long KmPixmap; /* Pixmap from <X11/X.h> */
51 typedef void *KmWidget; /* Widget from <X11/Intrinsic.h> */
52 typedef void *KmCalldata; /* XmAnyCallbackStruct from <Motif/Xm.h> */
62 BrActUpdate = 0x01, /* browser window has to be updated ('!') */
63 BrActSeparator = 0x02, /* put separator in menu ('/') */
64 BrActToggle = 0x04, /* register as toggle button */
65 BrActToggleOn = 0x08, /* toggle state is on */
66 BrActSensitive = 0x10 /* button is sensitive */
70 typedef struct _BrAction { /* */
71 struct _BrAction *next; /* link to next action binding */
72 BrActFlag flags; /* */
73 char *text; /* text line in menu */
74 char *user_text; /* user text overriding CDF text (malloced)*/
75 char *accel; /* accelerator */
76 char *exec; /* action commands */
77 SUBROUTINE *call_F; /* action routine */
78 IntFunc *call_C; /* action function */
79 BrActTag tag; /* for which window the action is defined */
80 struct _BrClass *class; /* pointer to BrClass in case of open menu */
83 typedef struct _BrClass { /* */
84 struct _BrClass *next; /* link to next browsable class */
85 char *name; /* unique identifier name */
86 char *title; /* title for popup menu (maybe NULL) */
87 SUBROUTINE *scan_km_F; /* user function scanning the directory */
88 pCharFunc *scan_km_C; /* user function scanning the directory */
89 SUBROUTINE *scan_br_F; /* user function scanning for browsables */
90 pCharFunc *scan_br_C; /* user function scanning for browsables */
91 BrAction *root; /* list of actions in root window */
92 BrAction *open; /* list of actions in open menu */
96 typedef struct _KmIcon { /* */
97 struct _KmIcon *next; /* link to next icon */
98 char *name; /* unique identifier name */
99 int width; /* width of the pixmap */
100 int height; /* height of the pixmap */
101 char *bitmap; /* bitmap data */
102 KmPixmap pix; /* filled in Motif part */
103 KmPixmap hi_pix; /* high lighted pixmap */
106 typedef struct _KmClass { /* */
107 struct _KmClass *next; /* link to next object class */
108 int is_dir; /* flag if class has is a directory */
109 char *name; /* unique identifier name */
110 char *title; /* title for popup menu (maybe NULL) */
111 char *big_icon; /* name of the big icon */
112 KmIcon *bicon; /* pointer to the big icon structure */
113 char *sm_icon; /* name of the small icon */
114 KmIcon *sicon; /* pointer to the small icon structure */
115 SUBROUTINE *user_icon_F; /* user function to return icon bitmap */
116 IntFunc *user_icon_C; /* user function to return icon bitmap */
117 BrAction *cont; /* list of actions in content window */
118 BrAction *graf; /* list of actions in graphics window */
119 int obj_count; /* number of objects in content window */
124 KmButtSensitive = 0x00, /* sensitive button */
125 KmButtNonSensitive = 0x01, /* non-sensitive button ('NS') */
126 KmButtToggleSensitive = 0x02, /* toggle-sensitive button ('TS') */
127 KmButtSensitivityMask = 0x03, /* mask for sensitivity type */
128 KmButtSeparator = 0x04, /* put separator in menu ('/') */
129 KmButtBrowser = 0x08 /* button is in main browser ('BR') */
132 typedef struct _KmButton { /* */
133 struct _KmButton *next; /* button label or menu item */
134 char *menu; /* menu name or NULL for buttons */
135 char *label; /* button label or menu item */
136 SUBROUTINE *call_F; /* callback routine (FORTRAN) */
137 IntFunc *call_C; /* callback routine (C) */
138 char *action; /* name of callback routine */
139 char *mnemo; /* button mnemonic */
140 char *accel; /* button accelerator */
141 char *accel_text; /* button accelerator text */
142 KmButtFlag flags; /* sensitivity type etc. */
143 KmWidget widget; /* Motif widget ID */
148 */ /* indirect calls to avoid linking HIGZ
149 */ IntFunc *graf_info_C; /* pass display, open and close
150 (ixmotif) */ SUBROUTINE *graf_size_F; /* resize window (IGRSIZ)
151 */ SUBROUTINE *graf_pick_F; /* identifying graphics objects
152 (IGOBJ) */ SUBROUTINE *graf_attr_F; /* set attributes (IGSET)
153 */ SUBROUTINE *graf_close_F; /* close workstation (ICLWK)
154 */ /* optional routines for Motif customization
155 */ pCharFunc *user_FallBk_C; /* get application fallbacks
156 */ IntFunc *user_TopWid_C; /* pass toplevel widget
157 identifiers */ } klnkaddr; /*
161 KmFLAG_FORGET = 0x01, /* last value is not kept for Motif panels */
162 KmFLAG_MINUS = 0x02, /* -VALUE is not an abbrev for CHOPT=VALUE */
163 KmFLAG_QUOTE = 0x04, /* do not remove quotes */
164 KmFLAG_VARARG = 0x08, /* append additional args to this param. */
165 KmFLAG_CONST = 0x10, /* do not allow to assign a value */
166 KmFLAG_HIDDEN = 0x20, /* do not show in menus */
167 KmFLAG_SEPARATE = 0x40 /* treat arguments as separate tokens */
171 KmTYPE_CHAR = 'C', /* character string */
172 KmTYPE_FILE = 'F', /* file name */
173 KmTYPE_INT = 'I', /* integer */
174 KmTYPE_OPTION = 'O', /* option */
175 KmTYPE_REAL = 'R' /* real */
179 typedef struct { /* file name */
180 char *filter_default; /* filter wildcard */
181 char *filter_current; /* current filter */
184 typedef struct { /* */
185 char *range_lower; /* lower value of range */
186 char *range_upper; /* upper value of range */
187 char *slider_lower; /* lower limit for slider */
188 char *slider_upper; /* upper limit for slider */
189 int decimals; /* number of decimals used for slider */
192 typedef struct { /* option */
193 char **text; /* explanations (parallel to range_value) */
194 int *mutex; /* mutex group to which text belongs */
195 int *radio; /* radio group to which text belongs */
199 typedef KmParInt KmParReal; /* real and int have the same fields */
201 typedef struct { /* */
202 char *name; /* parameter name */
203 int abbrev; /* minimum length that name is recognized */
204 char *prompt; /* prompt string */
205 char *dfault; /* default value */
206 char *last; /* last value for Motif panel (malloced) */
207 int width; /* width of input field */
208 int range_count; /* number of items in range_value */
209 char **range_value; /* list of allowed values */
210 int select_count; /* number of items in select_count */
211 char **select_value; /* list of values for selection box */
212 KmParFlag flags; /* special flags */
213 KmParType type; /* parameter type */
214 void *ptype; /* structure pointer selected by type */
218 typedef struct _KmCommand { /* */
219 struct _KmCommand *next; /* link to next command */
220 char *path; /* command path */
221 char *name; /* command name */
222 int hidden; /* flag if command is invisible */
223 int level; /* depth of submenus */
224 int total; /* total number of parameters */
225 int mandatory; /* number of mandatory parameters */
226 KmParameter **par; /* list of total parameter descriptions */
227 int list_par; /* index+1 of parameter taking a list */
228 int xcount; /* count number of action calls */
229 SUBROUTINE *action_F; /* action routine */
230 IntFunc *action_C; /* action routine */
231 SUBROUTINE *user_help_F; /* user help routine */
232 pCharFunc *user_help_C; /* user help routine */
233 int nguidance; /* number of lines in guidance text */
234 char **guidance; /* help text */
235 int nkeyword; /* number of lines for keywords */
236 char **keyword; /* list of keywords */
237 int nhlink; /* number of lines for links */
238 char **hlink; /* list of links */
239 int argc; /* number of arguments entered */
240 char **argv; /* argc argument values */
241 char *argline; /* argument line as entered */
242 int *argoffs; /* argc offsets into argline for KUGETE */
246 typedef struct _KmMenu { /* */
247 struct _KmMenu *next; /* link to next menu */
248 struct _KmMenu *down; /* link to submenu */
249 char *path; /* path of parent menu */
250 char *name; /* menu name */
251 int level; /* depth of submenus */
252 KmCommand *cmds; /* link to first command */
253 int nguidance; /* number of lines in guidance text */
254 char **guidance; /* help text */
255 int nkeyword; /* number of lines for keywords */
256 char **keyword; /* list of keywords */
257 int nhlink; /* number of lines for links */
258 char **hlink; /* list of links */
261 extern void klnkbrcl(); /* */
262 extern void klnkicon(); /* */
263 extern void klnkkmcl(); /* */
264 extern void klnkmenu(); /* */
268 # define gkdraw_ gkdraw
269 # define gxdraw_ gxdraw
270 # define gxpick_ gxpick
274 # define gkdraw_ GKDRAW
275 # define gxdraw_ GXDRAW
276 # define gxpick_ GXPICK
280 # pragma linkage(GKDRAW,FORTRAN)
281 # pragma linkage(GXDRAW,FORTRAN)
282 # pragma linkage(GXPICK,FORTRAN)
285 extern void gkdraw_();
286 extern void gxdraw_();
287 extern void gxpick_();
292 static KmParReal _GEANT_CVOL_VALCUT_XCUT_type = { (char*)0, (char*)0,
293 (char*)0, (char*)0, 0 };
294 static KmParameter _GEANT_CVOL_VALCUT_XCUT = { "XCUT", 4,
295 "x coordinate of cutted value", "0.", (char*)0, 12, 0, (char**)0, 0,
296 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CVOL_VALCUT_XCUT_type };
297 static KmParReal _GEANT_CVOL_VALCUT_YCUT_type = { (char*)0, (char*)0,
298 (char*)0, (char*)0, 0 };
299 static KmParameter _GEANT_CVOL_VALCUT_YCUT = { "YCUT", 4,
300 "y coordinate of cutted value", "0.", (char*)0, 12, 0, (char**)0, 0,
301 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CVOL_VALCUT_YCUT_type };
302 static KmParReal _GEANT_CVOL_VALCUT_ZCUT_type = { (char*)0, (char*)0,
303 (char*)0, (char*)0, 0 };
304 static KmParameter _GEANT_CVOL_VALCUT_ZCUT = { "ZCUT", 4,
305 "z coordinate of cutted value", "0.", (char*)0, 12, 0, (char**)0, 0,
306 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CVOL_VALCUT_ZCUT_type };
307 static KmParameter *_GEANT_CVOL_VALCUT_parameters[] = {
308 &_GEANT_CVOL_VALCUT_XCUT, &_GEANT_CVOL_VALCUT_YCUT, &_GEANT_CVOL_VALCUT_ZCUT
310 static char *_GEANT_CVOL_VALCUT_guidance[] = {
311 "It allows the cutting in the ray-tracing. All the volumes are cutted",
312 "from XCUT to +BIG along the x axis, from YCUT to +BIG along the y axis",
313 "and from ZCUT to +BIG along the z axis." };
314 static KmCommand _GEANT_CVOL_VALCUT = { (KmCommand*)0, "/GEANT/CVOL/VALCUT",
315 "VALCUT", 0, 2, 3, 3, _GEANT_CVOL_VALCUT_parameters, 0, 0, gxdraw_,
316 (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_CVOL_VALCUT_guidance,
317 0, (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
319 static KmParameter _GEANT_CVOL_SPHE_CNVV = { "CNVV", 4,
320 " Name of volume to be clipped ", "* ", (char*)0, 20, 0,
321 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
322 static KmParReal _GEANT_CVOL_SPHE_RMAX_type = { (char*)0, (char*)0,
323 (char*)0, (char*)0, 0 };
324 static KmParameter _GEANT_CVOL_SPHE_RMAX = { "RMAX", 4,
325 " External radius of sphere ", "0.1", (char*)0, 12, 0, (char**)0,
326 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CVOL_SPHE_RMAX_type };
327 static KmParReal _GEANT_CVOL_SPHE_XMED_type = { (char*)0, (char*)0,
328 (char*)0, (char*)0, 0 };
329 static KmParameter _GEANT_CVOL_SPHE_XMED = { "XMED", 4,
330 " Center X coordinate ", "-10000.", (char*)0, 12, 0,
331 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
332 &_GEANT_CVOL_SPHE_XMED_type };
333 static KmParReal _GEANT_CVOL_SPHE_YMED_type = { (char*)0, (char*)0,
334 (char*)0, (char*)0, 0 };
335 static KmParameter _GEANT_CVOL_SPHE_YMED = { "YMED", 4,
336 " Center Y coordinate ", "-10000.", (char*)0, 12, 0,
337 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
338 &_GEANT_CVOL_SPHE_YMED_type };
339 static KmParReal _GEANT_CVOL_SPHE_ZMED_type = { (char*)0, (char*)0,
340 (char*)0, (char*)0, 0 };
341 static KmParameter _GEANT_CVOL_SPHE_ZMED = { "ZMED", 4,
342 " Center Z coordinate ", "-10000.", (char*)0, 12, 0,
343 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
344 &_GEANT_CVOL_SPHE_ZMED_type };
345 static KmParameter *_GEANT_CVOL_SPHE_parameters[] = { &_GEANT_CVOL_SPHE_CNVV,
346 &_GEANT_CVOL_SPHE_RMAX, &_GEANT_CVOL_SPHE_XMED, &_GEANT_CVOL_SPHE_YMED,
347 &_GEANT_CVOL_SPHE_ZMED };
348 static char *_GEANT_CVOL_SPHE_guidance[] = {
349 "This command performs a boolean subtraction between the volume",
350 "CNVV and a sphere; the sphere has the given parameters and is placed in",
351 "the MARS according to the given coordinates of its center.",
352 "See also CVOL. The following commands clip by a sphere,",
353 "positioned according to the given parameters, the volume specified",
354 "by NAME (a valid string for the NAME of the volume",
355 "can be found using the DTREE command).", "EXAMPLE -", " dopt hide on",
356 " satt * seen -2", " draw NAME 40 40 0 10 10 .01 .01", " next",
357 " sphe * 500 0 0 500", " draw NAME 40 40 0 10 10 .01 .01", " box ." };
358 static KmCommand _GEANT_CVOL_SPHE = { &_GEANT_CVOL_VALCUT, "/GEANT/CVOL/SPHE",
359 "SPHE", 0, 2, 5, 1, _GEANT_CVOL_SPHE_parameters, 0, 0, gxdraw_, (IntFunc*)0,
360 (SUBROUTINE*)0, (pCharFunc*)0, 15, _GEANT_CVOL_SPHE_guidance, 0, (char**)0,
361 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
363 static KmParameter _GEANT_CVOL_CONE_CNVV = { "CNVV", 4,
364 " Name of volume to be clipped ", "* ", (char*)0, 20, 0,
365 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
366 static KmParReal _GEANT_CVOL_CONE_RMAX1_type = { (char*)0, (char*)0,
367 (char*)0, (char*)0, 0 };
368 static KmParameter _GEANT_CVOL_CONE_RMAX1 = { "RMAX1", 5,
369 " Min external radius ", "0.1", (char*)0, 12, 0, (char**)0,
370 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CVOL_CONE_RMAX1_type };
371 static KmParReal _GEANT_CVOL_CONE_RMAX2_type = { (char*)0, (char*)0,
372 (char*)0, (char*)0, 0 };
373 static KmParameter _GEANT_CVOL_CONE_RMAX2 = { "RMAX2", 5,
374 " Max external radius ", "0.1", (char*)0, 12, 0, (char**)0,
375 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CVOL_CONE_RMAX2_type };
376 static KmParReal _GEANT_CVOL_CONE_ZDEM_type = { (char*)0, (char*)0,
377 (char*)0, (char*)0, 0 };
378 static KmParameter _GEANT_CVOL_CONE_ZDEM = { "ZDEM", 4,
379 " Half length of cone axis ", "0.1", (char*)0, 12, 0, (char**)0,
380 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CVOL_CONE_ZDEM_type };
381 static KmParReal _GEANT_CVOL_CONE_XMED_type = { (char*)0, (char*)0,
382 (char*)0, (char*)0, 0 };
383 static KmParameter _GEANT_CVOL_CONE_XMED = { "XMED", 4,
384 " Center X coordinate ", "-10000.", (char*)0, 12, 0,
385 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
386 &_GEANT_CVOL_CONE_XMED_type };
387 static KmParReal _GEANT_CVOL_CONE_YMED_type = { (char*)0, (char*)0,
388 (char*)0, (char*)0, 0 };
389 static KmParameter _GEANT_CVOL_CONE_YMED = { "YMED", 4,
390 " Center Y coordinate ", "-10000.", (char*)0, 12, 0,
391 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
392 &_GEANT_CVOL_CONE_YMED_type };
393 static KmParReal _GEANT_CVOL_CONE_ZMED_type = { (char*)0, (char*)0,
394 (char*)0, (char*)0, 0 };
395 static KmParameter _GEANT_CVOL_CONE_ZMED = { "ZMED", 4,
396 " Center Z coordinate ", "-10000.", (char*)0, 12, 0,
397 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
398 &_GEANT_CVOL_CONE_ZMED_type };
399 static KmParameter *_GEANT_CVOL_CONE_parameters[] = { &_GEANT_CVOL_CONE_CNVV,
400 &_GEANT_CVOL_CONE_RMAX1, &_GEANT_CVOL_CONE_RMAX2, &_GEANT_CVOL_CONE_ZDEM,
401 &_GEANT_CVOL_CONE_XMED, &_GEANT_CVOL_CONE_YMED, &_GEANT_CVOL_CONE_ZMED };
402 static char *_GEANT_CVOL_CONE_guidance[] = {
403 "This command performs a boolean subtraction between the volume",
404 "CNVV and a cone; the cone has the given parameters and is placed in",
405 "the MARS according to the given coordinates of its center.",
406 "See also CVOL.", "The following commands will clip by a cone,",
407 "positioned according the given parameters, the volume specified",
408 "by NAME (a valid string for the NAME of the volume",
409 "can be found using the DTREE command).", " EXAMPLE -", " dopt hide on",
410 " satt * seen -2", " draw NAME 40 40 0 10 10 .01 .01", " next",
411 " cone * 1 750 1000 0 0 1000", " draw NAME 40 40 0 10 10 .01 .01", " box ." };
412 static KmCommand _GEANT_CVOL_CONE = { &_GEANT_CVOL_SPHE, "/GEANT/CVOL/CONE",
413 "CONE", 0, 2, 7, 1, _GEANT_CVOL_CONE_parameters, 0, 0, gxdraw_, (IntFunc*)0,
414 (SUBROUTINE*)0, (pCharFunc*)0, 16, _GEANT_CVOL_CONE_guidance, 0, (char**)0,
415 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
417 static KmParameter _GEANT_CVOL_TUBE_CNVV = { "CNVV", 4,
418 " Name of volume to be clipped ", "* ", (char*)0, 20, 0,
419 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
420 static KmParReal _GEANT_CVOL_TUBE_RMAX_type = { (char*)0, (char*)0,
421 (char*)0, (char*)0, 0 };
422 static KmParameter _GEANT_CVOL_TUBE_RMAX = { "RMAX", 4,
423 " External radius of tube ", "0.1", (char*)0, 12, 0, (char**)0,
424 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CVOL_TUBE_RMAX_type };
425 static KmParReal _GEANT_CVOL_TUBE_ZDEM_type = { (char*)0, (char*)0,
426 (char*)0, (char*)0, 0 };
427 static KmParameter _GEANT_CVOL_TUBE_ZDEM = { "ZDEM", 4,
428 " Half length of tube axis ", "0.1", (char*)0, 12, 0, (char**)0,
429 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CVOL_TUBE_ZDEM_type };
430 static KmParReal _GEANT_CVOL_TUBE_XMED_type = { (char*)0, (char*)0,
431 (char*)0, (char*)0, 0 };
432 static KmParameter _GEANT_CVOL_TUBE_XMED = { "XMED", 4,
433 " Center X coordinate ", "-10000.", (char*)0, 12, 0,
434 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
435 &_GEANT_CVOL_TUBE_XMED_type };
436 static KmParReal _GEANT_CVOL_TUBE_YMED_type = { (char*)0, (char*)0,
437 (char*)0, (char*)0, 0 };
438 static KmParameter _GEANT_CVOL_TUBE_YMED = { "YMED", 4,
439 " Center Y coordinate ", "-10000.", (char*)0, 12, 0,
440 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
441 &_GEANT_CVOL_TUBE_YMED_type };
442 static KmParReal _GEANT_CVOL_TUBE_ZMED_type = { (char*)0, (char*)0,
443 (char*)0, (char*)0, 0 };
444 static KmParameter _GEANT_CVOL_TUBE_ZMED = { "ZMED", 4,
445 " Center Z coordinate ", "-10000.", (char*)0, 12, 0,
446 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
447 &_GEANT_CVOL_TUBE_ZMED_type };
448 static KmParameter *_GEANT_CVOL_TUBE_parameters[] = { &_GEANT_CVOL_TUBE_CNVV,
449 &_GEANT_CVOL_TUBE_RMAX, &_GEANT_CVOL_TUBE_ZDEM, &_GEANT_CVOL_TUBE_XMED,
450 &_GEANT_CVOL_TUBE_YMED, &_GEANT_CVOL_TUBE_ZMED };
451 static char *_GEANT_CVOL_TUBE_guidance[] = {
452 "This command performs a boolean subtraction between the volume",
453 "CNVV and a tube; the tube has the given parameters and is placed in",
454 "the MARS according the given coordinates of its center.", "See also CVOL.",
455 "The following commands will clip, by a tube,",
456 "positioned according to the given parameters, the volume specified",
457 "by NAME (a valid string for the NAME of the volume",
458 "can be found using the DTREE command).", " EXAMPLE -", " dopt hide on",
459 " satt * seen -2", " draw NAME 40 40 0 10 10 .01 .01", " next",
460 " tube * 500 1000 500 0 0", " draw NAME 40 40 0 10 10 .01 .01", " box ." };
461 static KmCommand _GEANT_CVOL_TUBE = { &_GEANT_CVOL_CONE, "/GEANT/CVOL/TUBE",
462 "TUBE", 0, 2, 6, 1, _GEANT_CVOL_TUBE_parameters, 0, 0, gxdraw_, (IntFunc*)0,
463 (SUBROUTINE*)0, (pCharFunc*)0, 16, _GEANT_CVOL_TUBE_guidance, 0, (char**)0,
464 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
466 static KmParameter _GEANT_CVOL_BOX_CNNV = { "CNNV", 4,
467 " Name of volume to be clipped ", "* ", (char*)0, 20, 0,
468 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
469 static KmParReal _GEANT_CVOL_BOX_XMIN_type = { (char*)0, (char*)0, (char*)0,
471 static KmParameter _GEANT_CVOL_BOX_XMIN = { "XMIN", 4,
472 " Lower limit of the Shape X coordinate ", "-10000.", (char*)0, 12, 0,
473 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
474 &_GEANT_CVOL_BOX_XMIN_type };
475 static KmParReal _GEANT_CVOL_BOX_XMAX_type = { (char*)0, (char*)0, (char*)0,
477 static KmParameter _GEANT_CVOL_BOX_XMAX = { "XMAX", 4,
478 " Upper limit of the Shape X coordinate ", "-9999.", (char*)0, 12, 0,
479 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
480 &_GEANT_CVOL_BOX_XMAX_type };
481 static KmParReal _GEANT_CVOL_BOX_YMIN_type = { (char*)0, (char*)0, (char*)0,
483 static KmParameter _GEANT_CVOL_BOX_YMIN = { "YMIN", 4,
484 " Lower limit of the Shape Y coordinate ", "-10000.", (char*)0, 12, 0,
485 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
486 &_GEANT_CVOL_BOX_YMIN_type };
487 static KmParReal _GEANT_CVOL_BOX_YMAX_type = { (char*)0, (char*)0, (char*)0,
489 static KmParameter _GEANT_CVOL_BOX_YMAX = { "YMAX", 4,
490 " Upper limit of the Shape Y coordinate ", "-9999.", (char*)0, 12, 0,
491 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
492 &_GEANT_CVOL_BOX_YMAX_type };
493 static KmParReal _GEANT_CVOL_BOX_ZMIN_type = { (char*)0, (char*)0, (char*)0,
495 static KmParameter _GEANT_CVOL_BOX_ZMIN = { "ZMIN", 4,
496 " Lower limit of the Shape Z coordinate ", "-10000.", (char*)0, 12, 0,
497 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
498 &_GEANT_CVOL_BOX_ZMIN_type };
499 static KmParReal _GEANT_CVOL_BOX_ZMAX_type = { (char*)0, (char*)0, (char*)0,
501 static KmParameter _GEANT_CVOL_BOX_ZMAX = { "ZMAX", 4,
502 " Upper limit of the Shape Z coordinate ", "-9999.", (char*)0, 12, 0,
503 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
504 &_GEANT_CVOL_BOX_ZMAX_type };
505 static KmParameter *_GEANT_CVOL_BOX_parameters[] = { &_GEANT_CVOL_BOX_CNNV,
506 &_GEANT_CVOL_BOX_XMIN, &_GEANT_CVOL_BOX_XMAX, &_GEANT_CVOL_BOX_YMIN,
507 &_GEANT_CVOL_BOX_YMAX, &_GEANT_CVOL_BOX_ZMIN, &_GEANT_CVOL_BOX_ZMAX };
508 static char *_GEANT_CVOL_BOX_guidance[] = {
509 "This command performs a boolean subtraction between the volume",
510 "CNVV and a box placed in the MARS according the values of the given",
511 "coordinates. See also CVOL.", "The following commands will clip by a box,",
512 "with a vertex at the origin, the volume specified by NAME (a valid",
513 "string for the NAME of the volume can be found using the DTREE command).",
514 " EXAMPLE -", " dopt hide on", " satt * seen -2",
515 " draw NAME 40 40 0 10 10 .01 .01", " next",
516 " box NAME 0 1000 0 1000 0 1000", " draw NAME 40 40 0 10 10 .01 .01",
518 static KmCommand _GEANT_CVOL_BOX = { &_GEANT_CVOL_TUBE, "/GEANT/CVOL/BOX",
519 "BOX", 0, 2, 7, 1, _GEANT_CVOL_BOX_parameters, 0, 0, gxdraw_, (IntFunc*)0,
520 (SUBROUTINE*)0, (pCharFunc*)0, 14, _GEANT_CVOL_BOX_guidance, 0, (char**)0, 0,
521 (char**)0, 0, (char**)0, (char*)0, (int*)0 };
523 static KmParameter _GEANT_DRAWING_DUVIEW_NAME = { "NAME", 4, "Detector name",
524 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
525 KmTYPE_CHAR, (void*)0 };
526 static KmParameter _GEANT_DRAWING_DUVIEW_TYPE = { "TYPE", 4, "View name",
527 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
528 KmTYPE_CHAR, (void*)0 };
529 static KmParameter _GEANT_DRAWING_DUVIEW_CPXTYP = { "CPXTYP", 6,
530 "Complexity name", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
531 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
532 static KmParInt _GEANT_DRAWING_DUVIEW_IVIEW_type = { (char*)0, (char*)0,
533 (char*)0, (char*)0, 0 };
534 static KmParameter _GEANT_DRAWING_DUVIEW_IVIEW = { "IVIEW", 5,
535 "View number where picture is stored", "0", (char*)0, 8, 0, (char**)0, 0,
536 (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_DRAWING_DUVIEW_IVIEW_type };
537 static KmParameter *_GEANT_DRAWING_DUVIEW_parameters[] = {
538 &_GEANT_DRAWING_DUVIEW_NAME, &_GEANT_DRAWING_DUVIEW_TYPE,
539 &_GEANT_DRAWING_DUVIEW_CPXTYP, &_GEANT_DRAWING_DUVIEW_IVIEW };
540 static char *_GEANT_DRAWING_DUVIEW_guidance[] = {
541 " CALL GUVIEW(name,type,cpxtyp,iview)" };
542 static KmCommand _GEANT_DRAWING_DUVIEW = { (KmCommand*)0,
543 "/GEANT/DRAWING/DUVIEW", "DUVIEW", 0, 2, 4, 3,
544 _GEANT_DRAWING_DUVIEW_parameters, 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0,
545 (pCharFunc*)0, 1, _GEANT_DRAWING_DUVIEW_guidance, 0, (char**)0, 0, (char**)0,
546 0, (char**)0, (char*)0, (int*)0 };
548 static KmParameter _GEANT_DRAWING_DCHIT_CHUSET = { "CHUSET", 6,
549 "User set identifier", "*", (char*)0, 20, 0, (char**)0, 0, (char**)0,
550 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
551 static KmParameter _GEANT_DRAWING_DCHIT_CHUDET = { "CHUDET", 6,
552 "User detector identifier", "*", (char*)0, 20, 0, (char**)0, 0, (char**)0,
553 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
554 static KmParInt _GEANT_DRAWING_DCHIT_ITRA_type = { (char*)0, (char*)0,
555 (char*)0, (char*)0, 0 };
556 static KmParameter _GEANT_DRAWING_DCHIT_ITRA = { "ITRA", 4,
557 "Number of the selected track", "0", (char*)0, 8, 0, (char**)0, 0, (char**)0,
558 (KmParFlag)0, KmTYPE_INT, &_GEANT_DRAWING_DCHIT_ITRA_type };
559 static KmParInt _GEANT_DRAWING_DCHIT_ISYMB_type = { (char*)0, (char*)0,
560 (char*)0, (char*)0, 0 };
561 static KmParameter _GEANT_DRAWING_DCHIT_ISYMB = { "ISYMB", 5,
562 "Character selection number", "0", (char*)0, 8, 0, (char**)0, 0, (char**)0,
563 (KmParFlag)0, KmTYPE_INT, &_GEANT_DRAWING_DCHIT_ISYMB_type };
564 static KmParReal _GEANT_DRAWING_DCHIT_SIZMAX_type = { (char*)0, (char*)0,
565 (char*)0, (char*)0, 0 };
566 static KmParameter _GEANT_DRAWING_DCHIT_SIZMAX = { "SIZMAX", 6,
567 "Maximum character size (cm)", "1", (char*)0, 12, 0, (char**)0, 0, (char**)0,
568 (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DCHIT_SIZMAX_type };
569 static KmParInt _GEANT_DRAWING_DCHIT_IHIT_type = { (char*)0, (char*)0,
570 (char*)0, (char*)0, 0 };
571 static KmParameter _GEANT_DRAWING_DCHIT_IHIT = { "IHIT", 4,
572 "Index of array HITS", "4", (char*)0, 8, 0, (char**)0, 0, (char**)0,
573 (KmParFlag)0, KmTYPE_INT, &_GEANT_DRAWING_DCHIT_IHIT_type };
574 static KmParReal _GEANT_DRAWING_DCHIT_HITMIN_type = { (char*)0, (char*)0,
575 (char*)0, (char*)0, 0 };
576 static KmParameter _GEANT_DRAWING_DCHIT_HITMIN = { "HITMIN", 6,
577 "Lower boundary of HITS(IHIT)", "0", (char*)0, 12, 0, (char**)0, 0,
578 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DCHIT_HITMIN_type };
579 static KmParReal _GEANT_DRAWING_DCHIT_HITMAX_type = { (char*)0, (char*)0,
580 (char*)0, (char*)0, 0 };
581 static KmParameter _GEANT_DRAWING_DCHIT_HITMAX = { "HITMAX", 6,
582 "Upper boundary of HITS(IHIT)", "0", (char*)0, 12, 0, (char**)0, 0,
583 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DCHIT_HITMAX_type };
584 static KmParameter *_GEANT_DRAWING_DCHIT_parameters[] = {
585 &_GEANT_DRAWING_DCHIT_CHUSET, &_GEANT_DRAWING_DCHIT_CHUDET,
586 &_GEANT_DRAWING_DCHIT_ITRA, &_GEANT_DRAWING_DCHIT_ISYMB,
587 &_GEANT_DRAWING_DCHIT_SIZMAX, &_GEANT_DRAWING_DCHIT_IHIT,
588 &_GEANT_DRAWING_DCHIT_HITMIN, &_GEANT_DRAWING_DCHIT_HITMAX };
589 static char *_GEANT_DRAWING_DCHIT_guidance[] = {
590 " CALL GDCHIT(chuset,chudet,itra,isymb,sizmax,ihit,hitmin,hitmax)",
591 "The character plotted at each hit point may be chosen via",
592 "CSYMB; isymb is composed as:",
593 " -1 (small) hardware points (fast)",
594 " 0 software crosses (default)",
595 " 840,850 empty/full circles (slow)",
596 " 841,851 empty/full squares (slow)",
597 " 842,852 empty/full triangles (up) (slow)",
598 " 843,853 empty diamond/full triangle (down) (slow)",
599 " 844,854 empty/full stars (slow)",
600 "Except for isymb=-1 the SIZE of the character on the screen",
601 "is a function of HITS(IHIT), the array containing the calorimeter",
602 "quantity, with HITMIN and HITMAX defining its range.",
603 "The maximum character size (used in overflow) is SIZMAX.",
604 " SIZE = SIZMAX * ( HITS(IHIT) - HITMIN ) / HITMAX" };
605 static KmCommand _GEANT_DRAWING_DCHIT = { &_GEANT_DRAWING_DUVIEW,
606 "/GEANT/DRAWING/DCHIT", "DCHIT", 0, 2, 8, 0, _GEANT_DRAWING_DCHIT_parameters,
607 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 15,
608 _GEANT_DRAWING_DCHIT_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
611 static KmParameter _GEANT_DRAWING_KHITS_CHUSET = { "CHUSET", 6,
612 "User set identifier", "*", (char*)0, 20, 0, (char**)0, 0, (char**)0,
613 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
614 static KmParameter _GEANT_DRAWING_KHITS_CHUDET = { "CHUDET", 6,
615 "User detector identifier", "*", (char*)0, 20, 0, (char**)0, 0, (char**)0,
616 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
617 static KmParReal _GEANT_DRAWING_KHITS_EPSILO_type = { (char*)0, (char*)0,
618 (char*)0, (char*)0, 0 };
619 static KmParameter _GEANT_DRAWING_KHITS_EPSILO = { "EPSILO", 6,
620 "Pick aperture", "0.1", (char*)0, 12, 0, (char**)0, 0, (char**)0,
621 (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_KHITS_EPSILO_type };
622 static KmParameter *_GEANT_DRAWING_KHITS_parameters[] = {
623 &_GEANT_DRAWING_KHITS_CHUSET, &_GEANT_DRAWING_KHITS_CHUDET,
624 &_GEANT_DRAWING_KHITS_EPSILO };
625 static char *_GEANT_DRAWING_KHITS_guidance[] = {
626 " CALL GKHITS(chuset,chudet,epsilo)",
627 "The picking of hit points requires the appropriate JSET data structure",
629 "and is repeated until the character typed is 'Q' or 'q' (GKS) or the",
630 "right button of the mouse is clicked (X11).",
631 "If the character typed to pick is 'K' or 'k' then the",
632 "kinematics of the corresponding track is also printed.",
633 "The search is made of all the hits of all tracks in",
634 "detector CHUDET of set CHUSET.",
635 "EPSILO is the pick aperture; if EPSILO<0 its absolute value is taken",
636 "and in addition the pick aperture is drawn; if EPSILO=0",
637 "there is an infinite pick aperture and",
638 "over all the hits the one nearest to the pick point is taken." };
639 static KmCommand _GEANT_DRAWING_KHITS = { &_GEANT_DRAWING_DCHIT,
640 "/GEANT/DRAWING/KHITS", "KHITS", 0, 2, 3, 0, _GEANT_DRAWING_KHITS_parameters,
641 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 13,
642 _GEANT_DRAWING_KHITS_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
645 static KmParameter _GEANT_DRAWING_DHITS_CHUSET = { "CHUSET", 6,
646 "User set identifier", "*", (char*)0, 20, 0, (char**)0, 0, (char**)0,
647 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
648 static KmParameter _GEANT_DRAWING_DHITS_CHUDET = { "CHUDET", 6,
649 "User detector identifier", "*", (char*)0, 20, 0, (char**)0, 0, (char**)0,
650 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
651 static KmParInt _GEANT_DRAWING_DHITS_ITRA_type = { (char*)0, (char*)0,
652 (char*)0, (char*)0, 0 };
653 static KmParameter _GEANT_DRAWING_DHITS_ITRA = { "ITRA", 4,
654 "Number of the selected track", "0", (char*)0, 8, 0, (char**)0, 0, (char**)0,
655 (KmParFlag)0, KmTYPE_INT, &_GEANT_DRAWING_DHITS_ITRA_type };
656 static KmParInt _GEANT_DRAWING_DHITS_ISYMB_type = { (char*)0, (char*)0,
657 (char*)0, (char*)0, 0 };
658 static KmParameter _GEANT_DRAWING_DHITS_ISYMB = { "ISYMB", 5,
659 "Character selection number", "0", (char*)0, 8, 0, (char**)0, 0, (char**)0,
660 (KmParFlag)0, KmTYPE_INT, &_GEANT_DRAWING_DHITS_ISYMB_type };
661 static KmParReal _GEANT_DRAWING_DHITS_SSYMB_type = { (char*)0, (char*)0,
662 (char*)0, (char*)0, 0 };
663 static KmParameter _GEANT_DRAWING_DHITS_SSYMB = { "SSYMB", 5,
664 "Size of characters (cm)", "0.1", (char*)0, 12, 0, (char**)0, 0, (char**)0,
665 (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DHITS_SSYMB_type };
666 static KmParameter *_GEANT_DRAWING_DHITS_parameters[] = {
667 &_GEANT_DRAWING_DHITS_CHUSET, &_GEANT_DRAWING_DHITS_CHUDET,
668 &_GEANT_DRAWING_DHITS_ITRA, &_GEANT_DRAWING_DHITS_ISYMB,
669 &_GEANT_DRAWING_DHITS_SSYMB };
670 static char *_GEANT_DRAWING_DHITS_guidance[] = {
671 "CALL GDHITS(chuset,chudet,itra,isymb,ssymb).",
672 "The character plotted at each hit point may be chosen by isymb :",
673 " -1 (small) hardware points (fast)",
674 " 0 software crosses (default)",
675 " 840,850 empty/full circles (slow)",
676 " 841,851 empty/full squares (slow)",
677 " 842,852 empty/full triangles (up) (slow)",
678 " 843,853 empty diamond/full triangle (down) (slow)",
679 " 844,854 empty/full stars (slow)",
680 "Except for isymb=-1, the size of the character on the screen can be",
681 "chosen by SSYMB cm. The hit colour will follow the value of TXCI (text",
682 "colour) for isymb>0, the value of PMCI (polymarkers colour) for isymb<0,",
683 "the value of PLCI (polyline colour) for isymb=0." };
684 static KmCommand _GEANT_DRAWING_DHITS = { &_GEANT_DRAWING_KHITS,
685 "/GEANT/DRAWING/DHITS", "DHITS", 0, 2, 5, 0, _GEANT_DRAWING_DHITS_parameters,
686 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 13,
687 _GEANT_DRAWING_DHITS_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
690 static KmParInt _GEANT_DRAWING_DPART_ITRA_type = { (char*)0, (char*)0,
691 (char*)0, (char*)0, 0 };
692 static KmParameter _GEANT_DRAWING_DPART_ITRA = { "ITRA", 4, "Track number",
693 "0", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
694 &_GEANT_DRAWING_DPART_ITRA_type };
695 static KmParInt _GEANT_DRAWING_DPART_ISEL_type = { (char*)0, (char*)0,
696 (char*)0, (char*)0, 0 };
697 static KmParameter _GEANT_DRAWING_DPART_ISEL = { "ISEL", 4, "Option flag",
698 "11", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
699 &_GEANT_DRAWING_DPART_ISEL_type };
700 static KmParReal _GEANT_DRAWING_DPART_SIZE_type = { (char*)0, (char*)0,
701 (char*)0, (char*)0, 0 };
702 static KmParameter _GEANT_DRAWING_DPART_SIZE = { "SIZE", 4,
703 "Character size (cm) for particle names", "0.25", (char*)0, 12, 0, (char**)0,
704 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DPART_SIZE_type };
705 static KmParameter *_GEANT_DRAWING_DPART_parameters[] = {
706 &_GEANT_DRAWING_DPART_ITRA, &_GEANT_DRAWING_DPART_ISEL,
707 &_GEANT_DRAWING_DPART_SIZE };
708 static char *_GEANT_DRAWING_DPART_guidance[] = {
709 " CALL GDPART(itra,isel,size)", " isel=x1 to draw the track number",
710 " isel=1x to draw the particle name" };
711 static KmCommand _GEANT_DRAWING_DPART = { &_GEANT_DRAWING_DHITS,
712 "/GEANT/DRAWING/DPART", "DPART", 0, 2, 3, 0, _GEANT_DRAWING_DPART_parameters,
713 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
714 _GEANT_DRAWING_DPART_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
717 static KmParReal _GEANT_DRAWING_KXYZ_EPSILO_type = { (char*)0, (char*)0,
718 (char*)0, (char*)0, 0 };
719 static KmParameter _GEANT_DRAWING_KXYZ_EPSILO = { "EPSILO", 6, "Delta angle",
720 "0.25", (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
721 &_GEANT_DRAWING_KXYZ_EPSILO_type };
722 static KmParameter *_GEANT_DRAWING_KXYZ_parameters[] = {
723 &_GEANT_DRAWING_KXYZ_EPSILO };
724 static char *_GEANT_DRAWING_KXYZ_guidance[] = { " CALL GKXYZ(epsilo)",
725 "The picking of track points requires the JXYZ data structure",
726 "and is repeated until the character typed is 'Q' or 'q' (GKS)",
727 "or the right button of the mouse is clicked (X11).",
728 "EPSILO is the delta angle used for picking; if EPSILO=0",
729 "there is no optimization performed and",
730 "over all the track points the one nearest to the pick", "point is taken." };
731 static KmCommand _GEANT_DRAWING_KXYZ = { &_GEANT_DRAWING_DPART,
732 "/GEANT/DRAWING/KXYZ", "KXYZ", 0, 2, 1, 0, _GEANT_DRAWING_KXYZ_parameters, 0,
733 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 8,
734 _GEANT_DRAWING_KXYZ_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
737 static KmParInt _GEANT_DRAWING_DXYZ_ITRA_type = { (char*)0, (char*)0,
738 (char*)0, (char*)0, 0 };
739 static KmParameter _GEANT_DRAWING_DXYZ_ITRA = { "ITRA", 4, "Track number",
740 "0", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
741 &_GEANT_DRAWING_DXYZ_ITRA_type };
742 static KmParameter *_GEANT_DRAWING_DXYZ_parameters[] = {
743 &_GEANT_DRAWING_DXYZ_ITRA };
744 static char *_GEANT_DRAWING_DXYZ_guidance[] = { " CALL GDXYZ(itra)",
745 "Draw tracks previously stored via GSXYZ." };
746 static KmCommand _GEANT_DRAWING_DXYZ = { &_GEANT_DRAWING_KXYZ,
747 "/GEANT/DRAWING/DXYZ", "DXYZ", 0, 2, 1, 0, _GEANT_DRAWING_DXYZ_parameters, 0,
748 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 2,
749 _GEANT_DRAWING_DXYZ_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
752 static KmParReal _GEANT_DRAWING_ZOOM_ZFU_type = { (char*)0, (char*)0,
753 (char*)0, (char*)0, 0 };
754 static KmParameter _GEANT_DRAWING_ZOOM_ZFU = { "ZFU", 3,
755 "Zoom factor for U-coord. (horizontal)", "2.", (char*)0, 12, 0, (char**)0, 0,
756 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_ZOOM_ZFU_type };
757 static KmParReal _GEANT_DRAWING_ZOOM_ZFV_type = { (char*)0, (char*)0,
758 (char*)0, (char*)0, 0 };
759 static KmParameter _GEANT_DRAWING_ZOOM_ZFV = { "ZFV", 3,
760 "Zoom factor for V-coord. (vertical)", "2.", (char*)0, 12, 0, (char**)0, 0,
761 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_ZOOM_ZFV_type };
762 static KmParInt _GEANT_DRAWING_ZOOM_ISEL_type = { (char*)0, (char*)0,
763 (char*)0, (char*)0, 0 };
764 static KmParameter _GEANT_DRAWING_ZOOM_ISEL = { "ISEL", 4, "Options", "1",
765 (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
766 &_GEANT_DRAWING_ZOOM_ISEL_type };
767 static KmParReal _GEANT_DRAWING_ZOOM_UZ0_type = { "0.", "20.", "0.", "20.",
769 static KmParameter _GEANT_DRAWING_ZOOM_UZ0 = { "UZ0", 3,
770 "U-coord. of the centre of zoom rectangle", "10.", (char*)0, 12, 0,
771 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
772 &_GEANT_DRAWING_ZOOM_UZ0_type };
773 static KmParReal _GEANT_DRAWING_ZOOM_VZ0_type = { "0.", "20.", "0.", "20.",
775 static KmParameter _GEANT_DRAWING_ZOOM_VZ0 = { "VZ0", 3,
776 "V-coord. of the centre of zoom rectangle", "10.", (char*)0, 12, 0,
777 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
778 &_GEANT_DRAWING_ZOOM_VZ0_type };
779 static KmParReal _GEANT_DRAWING_ZOOM_U0_type = { "0.", "20.", "0.", "20.", 0
781 static KmParameter _GEANT_DRAWING_ZOOM_U0 = { "U0", 2,
782 "U-coord. of the centre of resulting zoomed rectangle", "10.", (char*)0, 12,
783 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
784 &_GEANT_DRAWING_ZOOM_U0_type };
785 static KmParReal _GEANT_DRAWING_ZOOM_V0_type = { "0.", "20.", "0.", "20.", 0
787 static KmParameter _GEANT_DRAWING_ZOOM_V0 = { "V0", 2,
788 "V-coord. of the centre of resulting zoomed rectangle", "10.", (char*)0, 12,
789 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
790 &_GEANT_DRAWING_ZOOM_V0_type };
791 static KmParameter *_GEANT_DRAWING_ZOOM_parameters[] = {
792 &_GEANT_DRAWING_ZOOM_ZFU, &_GEANT_DRAWING_ZOOM_ZFV,
793 &_GEANT_DRAWING_ZOOM_ISEL, &_GEANT_DRAWING_ZOOM_UZ0,
794 &_GEANT_DRAWING_ZOOM_VZ0, &_GEANT_DRAWING_ZOOM_U0, &_GEANT_DRAWING_ZOOM_V0 };
795 static char *_GEANT_DRAWING_ZOOM_guidance[] = {
796 " CALL GDZOOM(zfu,zfv,uz0,vz0,u0,v0)",
797 "This command sets the zoom parameters that will be used by",
798 "subsequent calls to the drawing routines. Each zoom operation is always",
799 "relative to the status of the current zoom parameters.",
800 "The scale factors in u,v are respectively zfu,zfv.",
801 "zfu=0 (or zfv=0) will act as a reset (i.e. unzoomed viewing).",
802 "The zoom is computed around uz0,vz0 (user coordinates),",
803 "and the resulting picture will be centered at u0,v0.",
804 "The use of the space bar is replaced by the left button of the mouse",
805 "running with X11:", "If isel=0 :", " 1. position the cursor at (uz0,vz0)",
806 " 2. type the space bar (GKS)", "(u0,v0 are chosen at centre of screen)",
807 "If isel=1 :", " 1. position the cursor at first corner of zoom rectangle",
808 " 2. type the space bar (GKS)",
809 " 3. position the cursor at second corner of zoom rectangle",
810 " 4. type the space bar (GKS)",
811 "(zfu,zfv are chosen according to the zoom rectangle;",
812 "uz0,vz0 are chosen at the centre of the zoom rectangle;",
813 "u0,v0 are chosen at centre of screen)", "If isel=2 :",
814 " 1. position the cursor at (uz0,vz0)", " 2. type the space bar (GKS)",
815 " 3. position the cursor at (u0,v0)", " 4. type the space bar (GKS)",
816 "If isel=1000+n and running with X-windows:",
817 " 1. n must be the identifier of an active view bank",
818 " 2. clicking on the left button of the mouse will display",
819 " a zoomed view (computed around the cursor position) of",
820 " the previous drawing in a new window",
821 " 3. it is now possible to iterate the zooming from the new window",
822 " 4. clicking on the right button will return the control to the",
824 " 5. clicking on the left button it is possible to open new windows",
825 " zooming in other points of the detector",
826 " 6. clicking on the right button when the main window is active",
827 " will return the control to the 'command mode'." };
828 static KmCommand _GEANT_DRAWING_ZOOM = { &_GEANT_DRAWING_DXYZ,
829 "/GEANT/DRAWING/ZOOM", "ZOOM", 0, 2, 7, 0, _GEANT_DRAWING_ZOOM_parameters, 0,
830 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 39,
831 _GEANT_DRAWING_ZOOM_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
834 static KmParInt _GEANT_DRAWING_LENS_KNUM_type = { (char*)0, (char*)0,
835 (char*)0, (char*)0, 0 };
836 static KmParameter _GEANT_DRAWING_LENS_KNUM = { "KNUM", 4,
837 "View bank identifier", "1", (char*)0, 8, 0, (char**)0, 0, (char**)0,
838 (KmParFlag)0, KmTYPE_INT, &_GEANT_DRAWING_LENS_KNUM_type };
839 static KmParameter _GEANT_DRAWING_LENS_KSAM = { "KSAM", 4,
840 "Sample mode ", "OFF ", (char*)0, 20, 0, (char**)0, 0, (char**)0,
841 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
842 static KmParameter *_GEANT_DRAWING_LENS_parameters[] = {
843 &_GEANT_DRAWING_LENS_KNUM, &_GEANT_DRAWING_LENS_KSAM };
844 static char *_GEANT_DRAWING_LENS_guidance[] = {
845 "Interactive zooming for detectors and events when running",
846 "with X-windows. Using this command, when showing the contents of a",
847 "view bank, it is possible to click (left button) in two points of the",
848 "drawing (which will represent the left upper corner and the right",
849 "bottom corner of the part to be zoomed). After the second click",
850 "a new 'window' will appear to fit the frame defined",
851 "by the two clicks and it will show a zoomed view as seen from a",
852 "lens with those dimensions. Clicking now the central button will",
853 "translate the lens over the drawing, while clicking the right button",
854 "will stop it. Moreover, clicking the left button of the",
855 "mouse, the lens will increase (or decrease) its magnification",
856 "power according to the backward-to-forward movement of the mouse.",
857 "A click on the right button will stop this action and it is possible",
858 "to restart the translation of the lens or, clicking",
859 "on the right button again, to make the lens disappear. It is then possible",
860 "to open another 'window-lens' with different dimensions. Thus,",
861 "this command can be useful to scan detailed parts of a detector or",
862 "to scan hits and showers for events. Clicking the right",
863 "button when no lens is displayed will return the control to the",
864 "'command mode'. The LENS is also available in sample mode when KSAM is",
865 "'ON'.", "The following commands will fill a view bank and will",
866 "allow to scan the detector and an event previously stored",
867 "via the use of LENS (when running", "with X-windows):", " EXAMPLE -",
868 " satt * seen 1", " dopen 1", " draw NAME 40 40 0 10 10 .01 .01", " dxyz 0",
869 " dhits * * 0 0 .2", " dclose", " dsh 1", " lens 1 on" };
870 static KmCommand _GEANT_DRAWING_LENS = { &_GEANT_DRAWING_ZOOM,
871 "/GEANT/DRAWING/LENS", "LENS", 0, 2, 2, 1, _GEANT_DRAWING_LENS_parameters, 0,
872 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 34,
873 _GEANT_DRAWING_LENS_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
876 static KmParameter _GEANT_DRAWING_PERSP_NAME = { "NAME", 4, "Volume name",
877 " ", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
879 static KmParReal _GEANT_DRAWING_PERSP_DISTT_type = { (char*)0, (char*)0,
880 (char*)0, (char*)0, 0 };
881 static KmParameter _GEANT_DRAWING_PERSP_DISTT = { "DISTT", 5,
882 "Volume distance from observer", "1000.", (char*)0, 12, 0, (char**)0, 0,
883 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_PERSP_DISTT_type };
884 static KmParameter _GEANT_DRAWING_PERSP_SAMP = { "SAMP", 4,
885 "Control to the mouse", "OFF ", (char*)0, 20, 0, (char**)0, 0, (char**)0,
886 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
887 static KmParameter *_GEANT_DRAWING_PERSP_parameters[] = {
888 &_GEANT_DRAWING_PERSP_NAME, &_GEANT_DRAWING_PERSP_DISTT,
889 &_GEANT_DRAWING_PERSP_SAMP };
890 static char *_GEANT_DRAWING_PERSP_guidance[] = {
891 "To control the perspective according to the variation of the distance",
892 "between the observer and the object (if PROJ has the value PERS).",
893 "If SAMP is ON the control of the distance is given via the mouse." };
894 static KmCommand _GEANT_DRAWING_PERSP = { &_GEANT_DRAWING_LENS,
895 "/GEANT/DRAWING/PERSP", "PERSP", 0, 2, 3, 2, _GEANT_DRAWING_PERSP_parameters,
896 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
897 _GEANT_DRAWING_PERSP_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
900 static KmParameter _GEANT_DRAWING_MOVE3D_NAME = { "NAME", 4, "Volume name",
901 " ", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
903 static KmParReal _GEANT_DRAWING_MOVE3D_THETA_type = { "0.", "180.", "0.",
905 static KmParameter _GEANT_DRAWING_MOVE3D_THETA = { "THETA", 5,
906 "Viewing angle theta (for 3D projection)", "40.", (char*)0, 12, 0, (char**)0,
907 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_MOVE3D_THETA_type };
908 static KmParReal _GEANT_DRAWING_MOVE3D_PHI_type = { "0.", "360.", "0.",
910 static KmParameter _GEANT_DRAWING_MOVE3D_PHI = { "PHI", 3,
911 "Viewing angle phi (for 3D projection)", "40.", (char*)0, 12, 0, (char**)0,
912 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_MOVE3D_PHI_type };
913 static KmParReal _GEANT_DRAWING_MOVE3D_PSI_type = { "0.", "180.", "0.",
915 static KmParameter _GEANT_DRAWING_MOVE3D_PSI = { "PSI", 3,
916 "Viewing angle psi (for 2D rotation)", "0.", (char*)0, 12, 0, (char**)0, 0,
917 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_MOVE3D_PSI_type };
918 static KmParReal _GEANT_DRAWING_MOVE3D_U0_type = { "0.", "20.", "0.", "20.",
920 static KmParameter _GEANT_DRAWING_MOVE3D_U0 = { "U0", 2,
921 "U-coord. (horizontal) of volume origin", "10.", (char*)0, 12, 0, (char**)0,
922 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_MOVE3D_U0_type };
923 static KmParReal _GEANT_DRAWING_MOVE3D_V0_type = { "0.", "20.", "0.", "20.",
925 static KmParameter _GEANT_DRAWING_MOVE3D_V0 = { "V0", 2,
926 "V-coord. (vertical) of volume origin", "10.", (char*)0, 12, 0, (char**)0, 0,
927 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_MOVE3D_V0_type };
928 static KmParReal _GEANT_DRAWING_MOVE3D_SU_type = { (char*)0, (char*)0,
929 (char*)0, (char*)0, 0 };
930 static KmParameter _GEANT_DRAWING_MOVE3D_SU = { "SU", 2,
931 "Scale factor for U-coord.", "0.01", (char*)0, 12, 0, (char**)0, 0,
932 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_MOVE3D_SU_type };
933 static KmParReal _GEANT_DRAWING_MOVE3D_SV_type = { (char*)0, (char*)0,
934 (char*)0, (char*)0, 0 };
935 static KmParameter _GEANT_DRAWING_MOVE3D_SV = { "SV", 2,
936 "Scale factor for V-coord.", "0.01", (char*)0, 12, 0, (char**)0, 0,
937 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_MOVE3D_SV_type };
938 static KmParReal _GEANT_DRAWING_MOVE3D_SZ_type = { "0.1", "10.", "0.1",
940 static KmParameter _GEANT_DRAWING_MOVE3D_SZ = { "SZ", 2, "Scale zoom factor",
941 "1.", (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
942 &_GEANT_DRAWING_MOVE3D_SZ_type };
943 static char *_GEANT_DRAWING_MOVE3D_NOPT_range[] = { "T", "H" };
944 static char *_GEANT_DRAWING_MOVE3D_NOPT_text[] = { (char*)0, (char*)0 };
945 static KmParOption _GEANT_DRAWING_MOVE3D_NOPT_type = {
946 _GEANT_DRAWING_MOVE3D_NOPT_text, (int*)0, (int*)0 };
947 static KmParameter _GEANT_DRAWING_MOVE3D_NOPT = { "NOPT", 4,
948 "T=tracks,H=hits", " ", (char*)0, 8, 2, _GEANT_DRAWING_MOVE3D_NOPT_range,
949 2, _GEANT_DRAWING_MOVE3D_NOPT_range, (KmParFlag)0, KmTYPE_OPTION,
950 &_GEANT_DRAWING_MOVE3D_NOPT_type };
951 static KmParameter *_GEANT_DRAWING_MOVE3D_parameters[] = {
952 &_GEANT_DRAWING_MOVE3D_NAME, &_GEANT_DRAWING_MOVE3D_THETA,
953 &_GEANT_DRAWING_MOVE3D_PHI, &_GEANT_DRAWING_MOVE3D_PSI,
954 &_GEANT_DRAWING_MOVE3D_U0, &_GEANT_DRAWING_MOVE3D_V0,
955 &_GEANT_DRAWING_MOVE3D_SU, &_GEANT_DRAWING_MOVE3D_SV,
956 &_GEANT_DRAWING_MOVE3D_SZ, &_GEANT_DRAWING_MOVE3D_NOPT };
957 static char *_GEANT_DRAWING_MOVE3D_guidance[] = {
958 "Same functionality of the command MOVE interfaced with MOTIF." };
959 static KmCommand _GEANT_DRAWING_MOVE3D = { &_GEANT_DRAWING_PERSP,
960 "/GEANT/DRAWING/MOVE3D", "MOVE3D", 0, 2, 10, 1,
961 _GEANT_DRAWING_MOVE3D_parameters, 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0,
962 (pCharFunc*)0, 1, _GEANT_DRAWING_MOVE3D_guidance, 0, (char**)0, 0, (char**)0,
963 0, (char**)0, (char*)0, (int*)0 };
965 static KmParameter _GEANT_DRAWING_MOVE_NAME = { "NAME", 4, "Volume name",
966 " ", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
968 static KmParameter _GEANT_DRAWING_MOVE_NOPT = { "NOPT", 4,
969 "S=sample mode,T=tracks,H=hits", " ", (char*)0, 20, 0, (char**)0, 0,
970 (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
971 static KmParameter *_GEANT_DRAWING_MOVE_parameters[] = {
972 &_GEANT_DRAWING_MOVE_NAME, &_GEANT_DRAWING_MOVE_NOPT };
973 static char *_GEANT_DRAWING_MOVE_guidance[] = {
974 "Positioning some daughter volumes inside a 'mother', it can be",
975 "important to check if overlaps between such volumes have occurred.",
976 "Instead of putting the drawing in a view bank, zooming, and iterating",
977 "the process for different viewing angles of the same detector, the",
978 "MOVE facility has been developed (for machines running with X11):",
979 "it is sufficient to draw a view of the volumes to be analysed (after",
980 "setting the proper SEEN, COLO, etc. attributes) and then to enter",
981 "'MOVE' followed by the same 'NAME' used for the last command DRAW.",
982 "The detector will appear in a panel with five buttons at the",
983 "bottom: THETA, PHI, TRASL, ZOOM, OFF. Clicking on the left button",
984 "of the mouse, when the cursor is inside the THETA area, will rotate the",
985 "detector along the polar angle theta according to the",
986 "backward-to-forward movement of the mouse",
987 "(clicking up and down the left button if",
988 "not in sample mode); clicking on the right button of",
989 "the mouse will stop the rotation; clicking now on the",
990 "left button of the mouse when inside the PHI area will activate a",
991 "rotation along the polar angle phi. In the same way, activating the",
992 "TRASL button, the detector can be translated in the u,v plane",
993 "of the screen according to the 2D-movement of the mouse. Finally,",
994 "activating the ZOOM button, the detector will be zoomed (or unzoomed)",
995 "according to the backward-to-forward movement of the mouse. Clicking on\
996 the", "OFF button will return the control to the 'command mode'. The MOVE",
997 "command will work also with hidden line removal and shading options",
998 "(when SHAD is on the background will be black);",
999 "moreover, if the volumes are clipped, exploded, shifted, etc., they",
1000 "will be 'MOVED' with these features as well.",
1001 "Tracks and hits of a previously stored physical event can be moved",
1002 "together with the detector, allowing a dynamical 3-D analysis of the",
1003 "simulated events. Clicking the central button of the mouse when a good",
1004 "view of the event is found, will stop any movement and the mouse will",
1005 "allow the normal picking capabilities first for the tracks and then for",
1006 "the hits. After clicking of the right button, the normal",
1007 "movement will restart to find another interesting view of the event",
1008 "and to iterate the process.", "The MOVE is also available in sample mode.",
1009 "The following commands will produce a drawing of a volume",
1010 "and then will give the control to the MOVE panel; try the following",
1011 "possibilities:", " EXAMPLE 1 -", " dopt hide off", " satt * seen -2",
1012 " draw NAME 40 40 0 10 10 .01 .01", " move NAME", " EXAMPLE 2 -",
1013 " dopt hide on", " satt * seen -2", " draw NAME 40 40 0 10 10 .01 .01",
1014 " move NAME", " EXAMPLE 3 -", " dopt shad on", " satt * colo 3",
1015 " satt * fill 2", " dopt edge off", " draw NAME 40 40 0 10 10 .01 .01",
1017 static KmCommand _GEANT_DRAWING_MOVE = { &_GEANT_DRAWING_MOVE3D,
1018 "/GEANT/DRAWING/MOVE", "MOVE", 0, 2, 2, 1, _GEANT_DRAWING_MOVE_parameters, 0,
1019 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 56,
1020 _GEANT_DRAWING_MOVE_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
1021 (char*)0, (int*)0 };
1023 static char *_GEANT_DRAWING_PICK_guidance[] = {
1024 "Activates graphic input to identify detector elements",
1025 "in a cut view. Clicking on the left button of the mouse when",
1026 "the cursor is in a given point of the drawing and clicking again",
1027 "(outside the detector) will produce the following effect:",
1028 "a line joininig the two points will be drawn together with",
1029 "the name and the medium number of the volume picked",
1030 "with the first clicking close to the second point." };
1031 static KmCommand _GEANT_DRAWING_PICK = { &_GEANT_DRAWING_MOVE,
1032 "/GEANT/DRAWING/PICK", "PICK", 0, 2, 0, 0, (KmParameter**)0, 0, 0, gxpick_,
1033 (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 7, _GEANT_DRAWING_PICK_guidance,
1034 0, (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
1036 static char *_GEANT_DRAWING_MEASURE_guidance[] = {
1037 "Position the cursor on the first point (u1,v1) and hit the space bar(GKS).",
1038 "Position the cursor on the second point (u2,v2) and hit the space\
1040 "Clicking the left button of the mouse (X11) will have the same effect as",
1041 "hiting the space bar (GKS).",
1042 "The command will compute and print the distance in space separating",
1043 "the two points on the projection view. It can be useful to measure",
1044 "distances either between volumes or between tracks or hits." };
1045 static KmCommand _GEANT_DRAWING_MEASURE = { &_GEANT_DRAWING_PICK,
1046 "/GEANT/DRAWING/MEASURE", "MEASURE", 0, 2, 0, 0, (KmParameter**)0, 0, 0,
1047 gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 7,
1048 _GEANT_DRAWING_MEASURE_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
1049 (char*)0, (int*)0 };
1051 static KmParInt _GEANT_DRAWING_DHEAD_ISEL_type = { (char*)0, (char*)0,
1052 (char*)0, (char*)0, 0 };
1053 static KmParameter _GEANT_DRAWING_DHEAD_ISEL = { "ISEL", 4, "Option flag",
1054 "111110", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
1055 &_GEANT_DRAWING_DHEAD_ISEL_type };
1056 static KmParameter _GEANT_DRAWING_DHEAD_NAME = { "NAME", 4, "Title", " ",
1057 (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
1059 static KmParReal _GEANT_DRAWING_DHEAD_CHRSIZ_type = { (char*)0, (char*)0,
1060 (char*)0, (char*)0, 0 };
1061 static KmParameter _GEANT_DRAWING_DHEAD_CHRSIZ = { "CHRSIZ", 6,
1062 "Character size (cm) of title NAME", "0.6", (char*)0, 12, 0, (char**)0, 0,
1063 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DHEAD_CHRSIZ_type };
1064 static KmParameter *_GEANT_DRAWING_DHEAD_parameters[] = {
1065 &_GEANT_DRAWING_DHEAD_ISEL, &_GEANT_DRAWING_DHEAD_NAME,
1066 &_GEANT_DRAWING_DHEAD_CHRSIZ };
1067 static char *_GEANT_DRAWING_DHEAD_guidance[] = {
1068 " CALL GDHEAD(isel,name,chrsiz)", "ISEL =",
1069 " 0 to have only the header lines",
1070 " xxxxx1 to add the text name centered on top of header",
1071 " xxxx1x to add global detector name (first volume) on left",
1072 " xxx1xx to add date on right",
1073 " xx1xxx to select thick characters for text on top of header",
1074 " x1xxxx to add the text 'EVENT NR x' on top of header",
1075 " 1xxxxx to add the text 'RUN NR x' on top of header",
1076 "NOTE that ISEL=x1xxx1 or ISEL=1xxxx1 are illegal choices,",
1077 "i.e. they generate overwritten text.", "NAME is the title",
1078 "and CHRSIZ the character size in cm of text name." };
1079 static KmCommand _GEANT_DRAWING_DHEAD = { &_GEANT_DRAWING_MEASURE,
1080 "/GEANT/DRAWING/DHEAD", "DHEAD", 0, 2, 3, 0, _GEANT_DRAWING_DHEAD_parameters,
1081 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 13,
1082 _GEANT_DRAWING_DHEAD_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
1083 (char*)0, (int*)0 };
1085 static KmParReal _GEANT_DRAWING_DMAN_U_type = { (char*)0, (char*)0,
1086 (char*)0, (char*)0, 0 };
1087 static KmParameter _GEANT_DRAWING_DMAN_U = { "U", 1,
1088 "U-coord. (horizontal) of the centre of man", (char*)0, (char*)0, 12, 0,
1089 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
1090 &_GEANT_DRAWING_DMAN_U_type };
1091 static KmParReal _GEANT_DRAWING_DMAN_V_type = { (char*)0, (char*)0,
1092 (char*)0, (char*)0, 0 };
1093 static KmParameter _GEANT_DRAWING_DMAN_V = { "V", 1,
1094 "V-coord. (vertical) of the centre of man", (char*)0, (char*)0, 12, 0,
1095 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
1096 &_GEANT_DRAWING_DMAN_V_type };
1097 static char *_GEANT_DRAWING_DMAN_TYPE_range[] = { "MAN", "WM1", "WM2", "WM3" };
1098 static char *_GEANT_DRAWING_DMAN_TYPE_text[] = { (char*)0, (char*)0, (char*)0,
1100 static KmParOption _GEANT_DRAWING_DMAN_TYPE_type = {
1101 _GEANT_DRAWING_DMAN_TYPE_text, (int*)0, (int*)0 };
1102 static KmParameter _GEANT_DRAWING_DMAN_TYPE = { "TYPE", 4,
1103 "Man, Wm1, Wm2, Wm3", "MAN", (char*)0, 8, 4, _GEANT_DRAWING_DMAN_TYPE_range,
1104 4, _GEANT_DRAWING_DMAN_TYPE_range, (KmParFlag)0, KmTYPE_OPTION,
1105 &_GEANT_DRAWING_DMAN_TYPE_type };
1106 static KmParameter *_GEANT_DRAWING_DMAN_parameters[] = {
1107 &_GEANT_DRAWING_DMAN_U, &_GEANT_DRAWING_DMAN_V, &_GEANT_DRAWING_DMAN_TYPE };
1108 static char *_GEANT_DRAWING_DMAN_guidance[] = {
1109 " CALL GDMAN(u,v),CALL GDWMN1(u,v),CALL GDWMN2(u,v),CALL GDWMN2(u,v)",
1110 "It superimposes the picure of a man or of a woman, chosen among",
1111 "three different ones, with the same scale factors as the detector",
1112 "in the current drawing." };
1113 static KmCommand _GEANT_DRAWING_DMAN = { &_GEANT_DRAWING_DHEAD,
1114 "/GEANT/DRAWING/DMAN", "DMAN", 0, 2, 3, 3, _GEANT_DRAWING_DMAN_parameters, 0,
1115 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
1116 _GEANT_DRAWING_DMAN_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
1117 (char*)0, (int*)0 };
1119 static KmParReal _GEANT_DRAWING_DAXIS_X0_type = { (char*)0, (char*)0,
1120 (char*)0, (char*)0, 0 };
1121 static KmParameter _GEANT_DRAWING_DAXIS_X0 = { "X0", 2,
1122 "X-coord. of axis origin", (char*)0, (char*)0, 12, 0, (char**)0, 0,
1123 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DAXIS_X0_type };
1124 static KmParReal _GEANT_DRAWING_DAXIS_Y0_type = { (char*)0, (char*)0,
1125 (char*)0, (char*)0, 0 };
1126 static KmParameter _GEANT_DRAWING_DAXIS_Y0 = { "Y0", 2,
1127 "Y-coord. of axis origin", (char*)0, (char*)0, 12, 0, (char**)0, 0,
1128 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DAXIS_Y0_type };
1129 static KmParReal _GEANT_DRAWING_DAXIS_Z0_type = { (char*)0, (char*)0,
1130 (char*)0, (char*)0, 0 };
1131 static KmParameter _GEANT_DRAWING_DAXIS_Z0 = { "Z0", 2,
1132 "Z-coord. of axis origin", (char*)0, (char*)0, 12, 0, (char**)0, 0,
1133 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DAXIS_Z0_type };
1134 static KmParReal _GEANT_DRAWING_DAXIS_DX_type = { (char*)0, (char*)0,
1135 (char*)0, (char*)0, 0 };
1136 static KmParameter _GEANT_DRAWING_DAXIS_DX = { "DX", 2, "Axis size", (char*)0,
1137 (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
1138 &_GEANT_DRAWING_DAXIS_DX_type };
1139 static KmParameter *_GEANT_DRAWING_DAXIS_parameters[] = {
1140 &_GEANT_DRAWING_DAXIS_X0, &_GEANT_DRAWING_DAXIS_Y0, &_GEANT_DRAWING_DAXIS_Z0,
1141 &_GEANT_DRAWING_DAXIS_DX };
1142 static char *_GEANT_DRAWING_DAXIS_guidance[] = { " CALL GDAXIS(x0,y0,z0,dx)",
1143 "This commmand superimposes the axis of the MARS on the",
1144 "current picture. It is useful for finding immediately the",
1145 "orientation of the current drawing of the detector in the space." };
1146 static KmCommand _GEANT_DRAWING_DAXIS = { &_GEANT_DRAWING_DMAN,
1147 "/GEANT/DRAWING/DAXIS", "DAXIS", 0, 2, 4, 4, _GEANT_DRAWING_DAXIS_parameters,
1148 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
1149 _GEANT_DRAWING_DAXIS_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
1150 (char*)0, (int*)0 };
1152 static KmParReal _GEANT_DRAWING_DSCALE_U_type = { (char*)0, (char*)0,
1153 (char*)0, (char*)0, 0 };
1154 static KmParameter _GEANT_DRAWING_DSCALE_U = { "U", 1,
1155 "U-coord. (horizontal) of the centre of scale", (char*)0, (char*)0, 12, 0,
1156 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
1157 &_GEANT_DRAWING_DSCALE_U_type };
1158 static KmParReal _GEANT_DRAWING_DSCALE_V_type = { (char*)0, (char*)0,
1159 (char*)0, (char*)0, 0 };
1160 static KmParameter _GEANT_DRAWING_DSCALE_V = { "V", 1,
1161 "V-coord. (vertical) of the centre of scale", (char*)0, (char*)0, 12, 0,
1162 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
1163 &_GEANT_DRAWING_DSCALE_V_type };
1164 static KmParameter *_GEANT_DRAWING_DSCALE_parameters[] = {
1165 &_GEANT_DRAWING_DSCALE_U, &_GEANT_DRAWING_DSCALE_V };
1166 static char *_GEANT_DRAWING_DSCALE_guidance[] = { " CALL GDSCAL(u,v)",
1167 "It draws a scale centered in U,V." };
1168 static KmCommand _GEANT_DRAWING_DSCALE = { &_GEANT_DRAWING_DAXIS,
1169 "/GEANT/DRAWING/DSCALE", "DSCALE", 0, 2, 2, 2,
1170 _GEANT_DRAWING_DSCALE_parameters, 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0,
1171 (pCharFunc*)0, 2, _GEANT_DRAWING_DSCALE_guidance, 0, (char**)0, 0, (char**)0,
1172 0, (char**)0, (char*)0, (int*)0 };
1174 static KmParameter _GEANT_DRAWING_DVECTOR_XVECT = { "XVECT", 5,
1175 "Vector containing X-coord. (horizontal)", (char*)0, (char*)0, 20, 0,
1176 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
1177 static KmParameter _GEANT_DRAWING_DVECTOR_YVECT = { "YVECT", 5,
1178 "Vector containing Y-coord. (vertical)", (char*)0, (char*)0, 20, 0,
1179 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
1180 static KmParInt _GEANT_DRAWING_DVECTOR_NPOINT_type = { (char*)0, (char*)0,
1181 (char*)0, (char*)0, 0 };
1182 static KmParameter _GEANT_DRAWING_DVECTOR_NPOINT = { "NPOINT", 6,
1183 "Number of coord.", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
1184 (KmParFlag)0, KmTYPE_INT, &_GEANT_DRAWING_DVECTOR_NPOINT_type };
1185 static KmParameter *_GEANT_DRAWING_DVECTOR_parameters[] = {
1186 &_GEANT_DRAWING_DVECTOR_XVECT, &_GEANT_DRAWING_DVECTOR_YVECT,
1187 &_GEANT_DRAWING_DVECTOR_NPOINT };
1188 static char *_GEANT_DRAWING_DVECTOR_guidance[] = {
1189 "Draw a polyline of 'npoint' point via",
1190 "a call to GDRAWV(xvect,yvect,npoint)",
1191 "where xvect and yvect are two KUIP vectors" };
1192 static KmCommand _GEANT_DRAWING_DVECTOR = { &_GEANT_DRAWING_DSCALE,
1193 "/GEANT/DRAWING/DVECTOR", "DVECTOR", 0, 2, 3, 3,
1194 _GEANT_DRAWING_DVECTOR_parameters, 0, 0, gxdraw_, (IntFunc*)0,
1195 (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_DRAWING_DVECTOR_guidance, 0,
1196 (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
1198 static KmParReal _GEANT_DRAWING_DTEXT_X0_type = { "0.", "20.", "0.", "20.",
1200 static KmParameter _GEANT_DRAWING_DTEXT_X0 = { "X0", 2,
1201 "X-coord. (horizontal) of text string", "10.", (char*)0, 12, 0, (char**)0, 0,
1202 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DTEXT_X0_type };
1203 static KmParReal _GEANT_DRAWING_DTEXT_Y0_type = { "0.", "20.", "0.", "20.",
1205 static KmParameter _GEANT_DRAWING_DTEXT_Y0 = { "Y0", 2,
1206 "Y-coord. (vertical) of text string", "10.", (char*)0, 12, 0, (char**)0, 0,
1207 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DTEXT_Y0_type };
1208 static KmParameter _GEANT_DRAWING_DTEXT_TEXT = { "TEXT", 4, "Text string",
1209 "GEANT", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
1211 static KmParReal _GEANT_DRAWING_DTEXT_SIZE_type = { (char*)0, (char*)0,
1212 (char*)0, (char*)0, 0 };
1213 static KmParameter _GEANT_DRAWING_DTEXT_SIZE = { "SIZE", 4,
1214 "Character size (cm)", ".5", (char*)0, 12, 0, (char**)0, 0, (char**)0,
1215 (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DTEXT_SIZE_type };
1216 static KmParReal _GEANT_DRAWING_DTEXT_ANGLE_type = { "0.", "360.", "0.",
1218 static KmParameter _GEANT_DRAWING_DTEXT_ANGLE = { "ANGLE", 5,
1219 "Rotation angle (deg)", "0.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
1220 (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DTEXT_ANGLE_type };
1221 static KmParInt _GEANT_DRAWING_DTEXT_LWID_type = { (char*)0, (char*)0,
1222 (char*)0, (char*)0, 0 };
1223 static KmParameter _GEANT_DRAWING_DTEXT_LWID = { "LWID", 4, "Line width", "4",
1224 (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
1225 &_GEANT_DRAWING_DTEXT_LWID_type };
1226 static char *_GEANT_DRAWING_DTEXT_CENT_range[] = { "CENT", "LEFT", "RIGH" };
1227 static char *_GEANT_DRAWING_DTEXT_CENT_text[] = { (char*)0, (char*)0, (char*)0
1229 static KmParOption _GEANT_DRAWING_DTEXT_CENT_type = {
1230 _GEANT_DRAWING_DTEXT_CENT_text, (int*)0, (int*)0 };
1231 static KmParameter _GEANT_DRAWING_DTEXT_CENT = { "CENT", 4,
1232 "Centering option", "CENT", (char*)0, 8, 3, _GEANT_DRAWING_DTEXT_CENT_range,
1233 3, _GEANT_DRAWING_DTEXT_CENT_range, (KmParFlag)0, KmTYPE_OPTION,
1234 &_GEANT_DRAWING_DTEXT_CENT_type };
1235 static KmParameter *_GEANT_DRAWING_DTEXT_parameters[] = {
1236 &_GEANT_DRAWING_DTEXT_X0, &_GEANT_DRAWING_DTEXT_Y0,
1237 &_GEANT_DRAWING_DTEXT_TEXT, &_GEANT_DRAWING_DTEXT_SIZE,
1238 &_GEANT_DRAWING_DTEXT_ANGLE, &_GEANT_DRAWING_DTEXT_LWID,
1239 &_GEANT_DRAWING_DTEXT_CENT };
1240 static char *_GEANT_DRAWING_DTEXT_guidance[] = {
1241 " CALL GDRAWT(x0,y0,text,size,angle,lwid,opt)",
1242 "It allows one to draw some text in the current picture.",
1243 "Now more than 160 colours are available. The text colour",
1244 "must be set via the command IGSET. The size of the",
1245 "text will follow the zooming factors in the view banks." };
1246 static KmCommand _GEANT_DRAWING_DTEXT = { &_GEANT_DRAWING_DVECTOR,
1247 "/GEANT/DRAWING/DTEXT", "DTEXT", 0, 2, 7, 7, _GEANT_DRAWING_DTEXT_parameters,
1248 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 5,
1249 _GEANT_DRAWING_DTEXT_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
1250 (char*)0, (int*)0 };
1252 static KmParameter _GEANT_DRAWING_DFSPC_NAME = { "NAME", 4, "Volume name",
1253 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
1254 KmTYPE_CHAR, (void*)0 };
1255 static char *_GEANT_DRAWING_DFSPC_CSORT_range[] = { "Y", "N", "0", "1" };
1256 static char *_GEANT_DRAWING_DFSPC_CSORT_text[] = { (char*)0, (char*)0,
1257 (char*)0, (char*)0 };
1258 static KmParOption _GEANT_DRAWING_DFSPC_CSORT_type = {
1259 _GEANT_DRAWING_DFSPC_CSORT_text, (int*)0, (int*)0 };
1260 static KmParameter _GEANT_DRAWING_DFSPC_CSORT = { "CSORT", 5,
1261 "Alphabetic sorting flag", "N", (char*)0, 8, 4,
1262 _GEANT_DRAWING_DFSPC_CSORT_range, 4, _GEANT_DRAWING_DFSPC_CSORT_range,
1263 (KmParFlag)0, KmTYPE_OPTION, &_GEANT_DRAWING_DFSPC_CSORT_type };
1264 static char *_GEANT_DRAWING_DFSPC_CINTER_range[] = { "I", "B", "0", "1" };
1265 static char *_GEANT_DRAWING_DFSPC_CINTER_text[] = { (char*)0, (char*)0,
1266 (char*)0, (char*)0 };
1267 static KmParOption _GEANT_DRAWING_DFSPC_CINTER_type = {
1268 _GEANT_DRAWING_DFSPC_CINTER_text, (int*)0, (int*)0 };
1269 static KmParameter _GEANT_DRAWING_DFSPC_CINTER = { "CINTER", 6,
1270 "Interactive/Batch version", "I", (char*)0, 8, 4,
1271 _GEANT_DRAWING_DFSPC_CINTER_range, 4, _GEANT_DRAWING_DFSPC_CINTER_range,
1272 (KmParFlag)0, KmTYPE_OPTION, &_GEANT_DRAWING_DFSPC_CINTER_type };
1273 static KmParameter *_GEANT_DRAWING_DFSPC_parameters[] = {
1274 &_GEANT_DRAWING_DFSPC_NAME, &_GEANT_DRAWING_DFSPC_CSORT,
1275 &_GEANT_DRAWING_DFSPC_CINTER };
1276 static char *_GEANT_DRAWING_DFSPC_guidance[] = {
1277 " CALL GDFSPC(name,isort,inter)",
1278 "Same as DSPEC, but it will draw the specifications for all the volumes.",
1279 "If the alphabetic sorting flag is YES, all pictures will be drawn in\
1280 ascending", "alphabetic order; isort is set to 1.",
1281 "If INTERACTIVE, (inter=1), the routine will prompt the user at each plot",
1282 "before doing a clear screen, otherwise it will clear automatically",
1283 "the screen before starting a new frame." };
1284 static KmCommand _GEANT_DRAWING_DFSPC = { &_GEANT_DRAWING_DTEXT,
1285 "/GEANT/DRAWING/DFSPC", "DFSPC", 0, 2, 3, 1, _GEANT_DRAWING_DFSPC_parameters,
1286 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 7,
1287 _GEANT_DRAWING_DFSPC_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
1288 (char*)0, (int*)0 };
1290 static KmParameter _GEANT_DRAWING_D3DSPEC_NAME = { "NAME", 4, "Volume name",
1291 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
1292 KmTYPE_CHAR, (void*)0 };
1293 static KmParReal _GEANT_DRAWING_D3DSPEC_TETA3_type = { "0.", "180.", "0.",
1295 static KmParameter _GEANT_DRAWING_D3DSPEC_TETA3 = { "TETA3", 5, "Theta angle",
1296 "40.", (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
1297 &_GEANT_DRAWING_D3DSPEC_TETA3_type };
1298 static KmParReal _GEANT_DRAWING_D3DSPEC_PHI3_type = { "0.", "360.", "0.",
1300 static KmParameter _GEANT_DRAWING_D3DSPEC_PHI3 = { "PHI3", 4, "Phi angle",
1301 "40.", (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
1302 &_GEANT_DRAWING_D3DSPEC_PHI3_type };
1303 static KmParReal _GEANT_DRAWING_D3DSPEC_PSI3_type = { "0.", "360.", "0.",
1305 static KmParameter _GEANT_DRAWING_D3DSPEC_PSI3 = { "PSI3", 4, "Psi angle",
1306 "0.", (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
1307 &_GEANT_DRAWING_D3DSPEC_PSI3_type };
1308 static KmParReal _GEANT_DRAWING_D3DSPEC_U03_type = { "-40.", "40.", "-40.",
1310 static KmParameter _GEANT_DRAWING_D3DSPEC_U03 = { "U03", 3,
1311 "U-coord. (horizontal) of volume origin", "10.", (char*)0, 12, 0, (char**)0,
1312 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_D3DSPEC_U03_type };
1313 static KmParReal _GEANT_DRAWING_D3DSPEC_V03_type = { "-40.", "40.", "-40.",
1315 static KmParameter _GEANT_DRAWING_D3DSPEC_V03 = { "V03", 3,
1316 "V-coord. (vertical) of volume origin", "10.", (char*)0, 12, 0, (char**)0, 0,
1317 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_D3DSPEC_V03_type };
1318 static KmParReal _GEANT_DRAWING_D3DSPEC_ZM3_type = { "0.00001", "10.",
1319 "0.00001", "10.", 5 };
1320 static KmParameter _GEANT_DRAWING_D3DSPEC_ZM3 = { "ZM3", 3,
1321 "Zoom factor for current size factors", "1.", (char*)0, 12, 0, (char**)0, 0,
1322 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_D3DSPEC_ZM3_type };
1323 static KmParameter *_GEANT_DRAWING_D3DSPEC_parameters[] = {
1324 &_GEANT_DRAWING_D3DSPEC_NAME, &_GEANT_DRAWING_D3DSPEC_TETA3,
1325 &_GEANT_DRAWING_D3DSPEC_PHI3, &_GEANT_DRAWING_D3DSPEC_PSI3,
1326 &_GEANT_DRAWING_D3DSPEC_U03, &_GEANT_DRAWING_D3DSPEC_V03,
1327 &_GEANT_DRAWING_D3DSPEC_ZM3 };
1328 static char *_GEANT_DRAWING_D3DSPEC_guidance[] = {
1329 "Trough a call to GSPE3D, this command allows one to show",
1330 "the volume (3D views in real time), together with",
1331 "its geometrical specifications (if using MOTIF). The 3D drawing will",
1332 "be performed according the current values of the options HIDE and",
1333 "SHAD and according the current CVOL clipping parameters for that", "volume."
1335 static KmCommand _GEANT_DRAWING_D3DSPEC = { &_GEANT_DRAWING_DFSPC,
1336 "/GEANT/DRAWING/D3DSPEC", "D3DSPEC", 0, 2, 7, 1,
1337 _GEANT_DRAWING_D3DSPEC_parameters, 0, 0, gxdraw_, (IntFunc*)0,
1338 (SUBROUTINE*)0, (pCharFunc*)0, 6, _GEANT_DRAWING_D3DSPEC_guidance, 0,
1339 (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
1341 static KmParameter _GEANT_DRAWING_DSPEC_NAME = { "NAME", 4, "Volume name",
1342 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
1343 KmTYPE_CHAR, (void*)0 };
1344 static KmParameter *_GEANT_DRAWING_DSPEC_parameters[] = {
1345 &_GEANT_DRAWING_DSPEC_NAME };
1346 static char *_GEANT_DRAWING_DSPEC_guidance[] = {
1347 "Trough a call to GDSPEC(name), this command allows one to show three",
1348 "views of the volume (two cut-views and a 3D view), together with",
1349 "its geometrical specifications. The 3D drawing will",
1350 "be performed according the current values of the options HIDE and",
1351 "SHAD and according the current CVOL clipping parameters for that", "volume."
1353 static KmCommand _GEANT_DRAWING_DSPEC = { &_GEANT_DRAWING_D3DSPEC,
1354 "/GEANT/DRAWING/DSPEC", "DSPEC", 0, 2, 1, 1, _GEANT_DRAWING_DSPEC_parameters,
1355 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 6,
1356 _GEANT_DRAWING_DSPEC_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
1357 (char*)0, (int*)0 };
1359 static KmParameter _GEANT_DRAWING_DTREE_NAME = { "NAME", 4, "Volume name",
1360 " ", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
1362 static KmParInt _GEANT_DRAWING_DTREE_LEVMAX_type = { "-15", "15", "-15",
1364 static KmParameter _GEANT_DRAWING_DTREE_LEVMAX = { "LEVMAX", 6, "Depth level",
1365 "3", (char*)0, 3, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
1366 &_GEANT_DRAWING_DTREE_LEVMAX_type };
1367 static KmParInt _GEANT_DRAWING_DTREE_ISELT_type = { (char*)0, (char*)0,
1368 (char*)0, (char*)0, 0 };
1369 static KmParameter _GEANT_DRAWING_DTREE_ISELT = { "ISELT", 5, "Options ",
1370 "111", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
1371 &_GEANT_DRAWING_DTREE_ISELT_type };
1372 static KmParameter *_GEANT_DRAWING_DTREE_parameters[] = {
1373 &_GEANT_DRAWING_DTREE_NAME, &_GEANT_DRAWING_DTREE_LEVMAX,
1374 &_GEANT_DRAWING_DTREE_ISELT };
1375 static char *_GEANT_DRAWING_DTREE_guidance[] = {
1376 "This command allows the drawing of the logical tree,",
1377 "displaying the name, the multiplicity and other information about the\
1378 volumes,", "via a call to GDTREE(name,levmax,isel):",
1379 "if the third parameter is not given (default), the command will",
1380 "produce the drawing of the tree displaying, for each volume, the",
1381 "number of the following levels (red arrows) and of the preceeding",
1382 "levels (green arrows); then the control is automatically given to the",
1383 "mouse: clicking on the left button when the cursor is inside a volume's",
1384 "pave will perform a DSPEC for that volume; doing the same when the cursor",
1385 "is on a red arrow, will perform a DTREE for the relative volume (the",
1386 "number of levels displayed depending on the clicked arrow); doing the",
1387 "same for the 'i-th' green arrow of a given volume, will perform a DTREE",
1388 "for its mother-volume staying 'i' levels before.",
1389 "If running with X-windows, the drawing of the specification (DSPEC)",
1391 "in a different window to speed up the scanning of the tree.",
1392 "Iterating this procedure it is possible to analyse very easily and quickly",
1393 "any kind of tree. Clicking the right button of the mouse will return",
1394 "the control to the command mode.", "If the ISELT parameter is given,",
1395 "then the TREE will work as in the",
1396 "previous version, with ISELT up to 10001.",
1397 "The following command will perform a drawing of the tree and give the",
1398 "control to the user via the mouse:", " EXAMPLE -", " dtree NAME 3" };
1399 static KmCommand _GEANT_DRAWING_DTREE = { &_GEANT_DRAWING_DSPEC,
1400 "/GEANT/DRAWING/DTREE", "DTREE", 0, 2, 3, 0, _GEANT_DRAWING_DTREE_parameters,
1401 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 26,
1402 _GEANT_DRAWING_DTREE_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
1403 (char*)0, (int*)0 };
1405 static KmParReal _GEANT_DRAWING_BOMB_BOOM_type = { "-10.", "10.", "-10.",
1407 static KmParameter _GEANT_DRAWING_BOMB_BOOM = { "BOOM", 4,
1408 " Exploding factor for volumes position ", "0.", (char*)0, 12, 0, (char**)0,
1409 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_BOMB_BOOM_type };
1410 static KmParameter *_GEANT_DRAWING_BOMB_parameters[] = {
1411 &_GEANT_DRAWING_BOMB_BOOM };
1412 static char *_GEANT_DRAWING_BOMB_guidance[] = {
1413 "To 'explode' the detector. If BOOM is positive (values smaller",
1414 "than 1. are suggested, but any value is possible)",
1415 "all the volumes are shifted by a distance",
1416 "proportional to BOOM along the direction between their centre",
1417 "and the origin of the MARS; the volumes which are symmetric",
1418 "with respect to this origin are simply not shown.",
1419 "BOOM equal to 0 resets the normal mode.",
1420 "A negative (greater than -1.) value of",
1421 "BOOM will cause an 'implosion'; for even lower values of BOOM",
1422 "the volumes' positions will be reflected respect to the origin.",
1423 "This command can be useful to improve the 3D effect for very",
1424 "complex detectors. The following commands will make explode the",
1425 "detector:", " EXAMPLE -", " dopt hide on", " satt * seen 1",
1426 " draw NAME 40 40 0 10 10 .01 .01", " bomb 1", " next",
1427 " draw NAME 40 40 0 10 10 .01 .01" };
1428 static KmCommand _GEANT_DRAWING_BOMB = { &_GEANT_DRAWING_DTREE,
1429 "/GEANT/DRAWING/BOMB", "BOMB", 0, 2, 1, 1, _GEANT_DRAWING_BOMB_parameters, 0,
1430 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 20,
1431 _GEANT_DRAWING_BOMB_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
1432 (char*)0, (int*)0 };
1434 static KmParameter _GEANT_DRAWING_SHIFT_CNVN = { "CNVN", 4,
1435 " Name of volume to be shifted ", "*", (char*)0, 20, 0, (char**)0, 0,
1436 (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
1437 static KmParReal _GEANT_DRAWING_SHIFT_XXXX_type = { (char*)0, (char*)0,
1438 (char*)0, (char*)0, 0 };
1439 static KmParameter _GEANT_DRAWING_SHIFT_XXXX = { "XXXX", 4,
1440 " Shift along X axis ", "0.", (char*)0, 12, 0, (char**)0, 0,
1441 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_SHIFT_XXXX_type };
1442 static KmParReal _GEANT_DRAWING_SHIFT_YYYY_type = { (char*)0, (char*)0,
1443 (char*)0, (char*)0, 0 };
1444 static KmParameter _GEANT_DRAWING_SHIFT_YYYY = { "YYYY", 4,
1445 " Shift along Y axis ", "0.", (char*)0, 12, 0, (char**)0, 0,
1446 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_SHIFT_YYYY_type };
1447 static KmParReal _GEANT_DRAWING_SHIFT_ZZZZ_type = { (char*)0, (char*)0,
1448 (char*)0, (char*)0, 0 };
1449 static KmParameter _GEANT_DRAWING_SHIFT_ZZZZ = { "ZZZZ", 4,
1450 " Shift along Z axis ", "0.", (char*)0, 12, 0, (char**)0, 0,
1451 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_SHIFT_ZZZZ_type };
1452 static KmParameter *_GEANT_DRAWING_SHIFT_parameters[] = {
1453 &_GEANT_DRAWING_SHIFT_CNVN, &_GEANT_DRAWING_SHIFT_XXXX,
1454 &_GEANT_DRAWING_SHIFT_YYYY, &_GEANT_DRAWING_SHIFT_ZZZZ };
1455 static char *_GEANT_DRAWING_SHIFT_guidance[] = {
1456 "To draw a volume shifted from its initial position when hidden",
1457 "line removal is ON. It can be useful if you want to extract a",
1458 "volume or some volumes from the detector to show them more clearly.",
1459 "The last requested SHIFT for each volume",
1460 "NAME is performed. Moreover, the SHIFT of",
1461 "each volume will be performed starting from where its mother has",
1462 "been shifted, so that it's easier to SHIFT nicely sets",
1463 "of volumes using the mother-daughter relationships.",
1464 "If '.' is given as the name of the volume",
1465 "to be shifted, the shifts for all volumes will be reset.",
1466 "The following commands will produce the translation along",
1467 "the Z-axis of the previously drawn volume:", " EXAMPLE -", " dopt hide on",
1468 " satt * seen -2", " draw NAME 40 40 0 10 10 .01 .01", " shift NAME 0 0 10" };
1469 static KmCommand _GEANT_DRAWING_SHIFT = { &_GEANT_DRAWING_BOMB,
1470 "/GEANT/DRAWING/SHIFT", "SHIFT", 0, 2, 4, 4, _GEANT_DRAWING_SHIFT_parameters,
1471 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 17,
1472 _GEANT_DRAWING_SHIFT_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
1473 (char*)0, (int*)0 };
1475 static KmParameter _GEANT_DRAWING_DXCUT_NAME = { "NAME", 4, "Volume name",
1476 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
1477 KmTYPE_CHAR, (void*)0 };
1478 static KmParReal _GEANT_DRAWING_DXCUT_CUTTHE_type = { "0.", "360.", "0.",
1480 static KmParameter _GEANT_DRAWING_DXCUT_CUTTHE = { "CUTTHE", 6,
1481 "Theta angle of the line normal to cut plane", (char*)0, (char*)0, 12, 0,
1482 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
1483 &_GEANT_DRAWING_DXCUT_CUTTHE_type };
1484 static KmParReal _GEANT_DRAWING_DXCUT_CUTPHI_type = { "0.", "360.", "0.",
1486 static KmParameter _GEANT_DRAWING_DXCUT_CUTPHI = { "CUTPHI", 6,
1487 "Phi angle of the line normal to cut plane", (char*)0, (char*)0, 12, 0,
1488 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
1489 &_GEANT_DRAWING_DXCUT_CUTPHI_type };
1490 static KmParReal _GEANT_DRAWING_DXCUT_CUTVAL_type = { (char*)0, (char*)0,
1491 (char*)0, (char*)0, 0 };
1492 static KmParameter _GEANT_DRAWING_DXCUT_CUTVAL = { "CUTVAL", 6,
1493 "Cut plane distance from the origin along the axis", (char*)0, (char*)0, 12,
1494 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
1495 &_GEANT_DRAWING_DXCUT_CUTVAL_type };
1496 static KmParReal _GEANT_DRAWING_DXCUT_THETA_type = { "0.", "360.", "0.",
1498 static KmParameter _GEANT_DRAWING_DXCUT_THETA = { "THETA", 5,
1499 "Viewing angle theta (for 3D projection)", (char*)0, (char*)0, 12, 0,
1500 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
1501 &_GEANT_DRAWING_DXCUT_THETA_type };
1502 static KmParReal _GEANT_DRAWING_DXCUT_PHI_type = { "0.", "360.", "0.",
1504 static KmParameter _GEANT_DRAWING_DXCUT_PHI = { "PHI", 3,
1505 "Viewing angle phi (for 3D projection)", (char*)0, (char*)0, 12, 0,
1506 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
1507 &_GEANT_DRAWING_DXCUT_PHI_type };
1508 static KmParReal _GEANT_DRAWING_DXCUT_U0_type = { (char*)0, (char*)0,
1509 (char*)0, (char*)0, 0 };
1510 static KmParameter _GEANT_DRAWING_DXCUT_U0 = { "U0", 2,
1511 "U-coord. (horizontal) of volume origin", (char*)0, (char*)0, 12, 0,
1512 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
1513 &_GEANT_DRAWING_DXCUT_U0_type };
1514 static KmParReal _GEANT_DRAWING_DXCUT_V0_type = { (char*)0, (char*)0,
1515 (char*)0, (char*)0, 0 };
1516 static KmParameter _GEANT_DRAWING_DXCUT_V0 = { "V0", 2,
1517 "V-coord. (vertical) of volume origin", (char*)0, (char*)0, 12, 0, (char**)0,
1518 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DXCUT_V0_type };
1519 static KmParReal _GEANT_DRAWING_DXCUT_SU_type = { (char*)0, (char*)0,
1520 (char*)0, (char*)0, 0 };
1521 static KmParameter _GEANT_DRAWING_DXCUT_SU = { "SU", 2,
1522 "Scale factor for U-coord.", (char*)0, (char*)0, 12, 0, (char**)0, 0,
1523 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DXCUT_SU_type };
1524 static KmParReal _GEANT_DRAWING_DXCUT_SV_type = { (char*)0, (char*)0,
1525 (char*)0, (char*)0, 0 };
1526 static KmParameter _GEANT_DRAWING_DXCUT_SV = { "SV", 2,
1527 "Scale factor for V-coord.", (char*)0, (char*)0, 12, 0, (char**)0, 0,
1528 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DXCUT_SV_type };
1529 static KmParameter *_GEANT_DRAWING_DXCUT_parameters[] = {
1530 &_GEANT_DRAWING_DXCUT_NAME, &_GEANT_DRAWING_DXCUT_CUTTHE,
1531 &_GEANT_DRAWING_DXCUT_CUTPHI, &_GEANT_DRAWING_DXCUT_CUTVAL,
1532 &_GEANT_DRAWING_DXCUT_THETA, &_GEANT_DRAWING_DXCUT_PHI,
1533 &_GEANT_DRAWING_DXCUT_U0, &_GEANT_DRAWING_DXCUT_V0, &_GEANT_DRAWING_DXCUT_SU,
1534 &_GEANT_DRAWING_DXCUT_SV };
1535 static char *_GEANT_DRAWING_DXCUT_guidance[] = {
1536 " CALL GDRAWX(name,cutthe,cutphi,cutval,theta,phi,u0,v0,su,sv)",
1537 "The cut plane is normal to the line given by the cut angles",
1538 "cutthe and cutphi and placed at the distance cutval from the origin.",
1539 "The resulting picture is seen from the viewing angles theta,phi.",
1540 "If optional parameters are missing, the current values in /GCDRAW/",
1542 static KmCommand _GEANT_DRAWING_DXCUT = { &_GEANT_DRAWING_SHIFT,
1543 "/GEANT/DRAWING/DXCUT", "DXCUT", 0, 2, 10, 4,
1544 _GEANT_DRAWING_DXCUT_parameters, 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0,
1545 (pCharFunc*)0, 6, _GEANT_DRAWING_DXCUT_guidance, 0, (char**)0, 0, (char**)0,
1546 0, (char**)0, (char*)0, (int*)0 };
1548 static KmParameter _GEANT_DRAWING_DCUT_NAME = { "NAME", 4, "Volume name",
1549 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
1550 KmTYPE_CHAR, (void*)0 };
1551 static char *_GEANT_DRAWING_DCUT_CAXIS_range[] = { "X", "Y", "Z" };
1552 static char *_GEANT_DRAWING_DCUT_CAXIS_text[] = { (char*)0, (char*)0, (char*)0
1554 static KmParOption _GEANT_DRAWING_DCUT_CAXIS_type = {
1555 _GEANT_DRAWING_DCUT_CAXIS_text, (int*)0, (int*)0 };
1556 static KmParameter _GEANT_DRAWING_DCUT_CAXIS = { "CAXIS", 5, "Axis value",
1557 (char*)0, (char*)0, 8, 3, _GEANT_DRAWING_DCUT_CAXIS_range, 3,
1558 _GEANT_DRAWING_DCUT_CAXIS_range, (KmParFlag)0, KmTYPE_OPTION,
1559 &_GEANT_DRAWING_DCUT_CAXIS_type };
1560 static KmParReal _GEANT_DRAWING_DCUT_CUTVAL_type = { (char*)0, (char*)0,
1561 (char*)0, (char*)0, 0 };
1562 static KmParameter _GEANT_DRAWING_DCUT_CUTVAL = { "CUTVAL", 6,
1563 "Cut plane distance from the origin along the axis", (char*)0, (char*)0, 12,
1564 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
1565 &_GEANT_DRAWING_DCUT_CUTVAL_type };
1566 static KmParReal _GEANT_DRAWING_DCUT_U0_type = { (char*)0, (char*)0,
1567 (char*)0, (char*)0, 0 };
1568 static KmParameter _GEANT_DRAWING_DCUT_U0 = { "U0", 2,
1569 "U-coord. (horizontal) of volume origin", (char*)0, (char*)0, 12, 0,
1570 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
1571 &_GEANT_DRAWING_DCUT_U0_type };
1572 static KmParReal _GEANT_DRAWING_DCUT_V0_type = { (char*)0, (char*)0,
1573 (char*)0, (char*)0, 0 };
1574 static KmParameter _GEANT_DRAWING_DCUT_V0 = { "V0", 2,
1575 "V-coord. (vertical) of volume origin", (char*)0, (char*)0, 12, 0, (char**)0,
1576 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DCUT_V0_type };
1577 static KmParReal _GEANT_DRAWING_DCUT_SU_type = { (char*)0, (char*)0,
1578 (char*)0, (char*)0, 0 };
1579 static KmParameter _GEANT_DRAWING_DCUT_SU = { "SU", 2,
1580 "Scale factor for U-coord.", (char*)0, (char*)0, 12, 0, (char**)0, 0,
1581 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DCUT_SU_type };
1582 static KmParReal _GEANT_DRAWING_DCUT_SV_type = { (char*)0, (char*)0,
1583 (char*)0, (char*)0, 0 };
1584 static KmParameter _GEANT_DRAWING_DCUT_SV = { "SV", 2,
1585 "Scale factor for V-coord.", (char*)0, (char*)0, 12, 0, (char**)0, 0,
1586 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DCUT_SV_type };
1587 static KmParameter *_GEANT_DRAWING_DCUT_parameters[] = {
1588 &_GEANT_DRAWING_DCUT_NAME, &_GEANT_DRAWING_DCUT_CAXIS,
1589 &_GEANT_DRAWING_DCUT_CUTVAL, &_GEANT_DRAWING_DCUT_U0,
1590 &_GEANT_DRAWING_DCUT_V0, &_GEANT_DRAWING_DCUT_SU, &_GEANT_DRAWING_DCUT_SV };
1591 static char *_GEANT_DRAWING_DCUT_guidance[] = {
1592 " CALL GDRAWC(name,iaxis,cutval,u0,v0,su,sv)",
1593 "The cut plane is normal to caxis (X,Y,Z), corresponding to iaxis (1,2,3),",
1594 "and placed at the distance cutval from the origin.",
1595 "The resulting picture is seen from the the same axis.",
1596 "If optional parameters are missing, the current values in /GCDRAW/",
1598 "When HIDE Mode is ON, it is possible to get the same effect with",
1599 "the CVOL/BOX command." };
1600 static KmCommand _GEANT_DRAWING_DCUT = { &_GEANT_DRAWING_DXCUT,
1601 "/GEANT/DRAWING/DCUT", "DCUT", 0, 2, 7, 3, _GEANT_DRAWING_DCUT_parameters, 0,
1602 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 8,
1603 _GEANT_DRAWING_DCUT_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
1604 (char*)0, (int*)0 };
1606 static KmParInt _GEANT_DRAWING_DVOLUME_N_type = { (char*)0, (char*)0,
1607 (char*)0, (char*)0, 0 };
1608 static KmParameter _GEANT_DRAWING_DVOLUME_N = { "N", 1,
1609 "Number of elements in arrays LNAMES and LNUMBS", "1", (char*)0, 8, 0,
1610 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
1611 &_GEANT_DRAWING_DVOLUME_N_type };
1612 static KmParameter _GEANT_DRAWING_DVOLUME_NAMNUM = { "NAMNUM", 6,
1613 "Volume names and numbers (ex. \"NAME1,NR1,NAME2,NR2\")", (char*)0, (char*)0,
1614 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
1615 static char *_GEANT_DRAWING_DVOLUME_CHNRS_range[] = { "MARS", "DRS" };
1616 static char *_GEANT_DRAWING_DVOLUME_CHNRS_text[] = { (char*)0, (char*)0 };
1617 static KmParOption _GEANT_DRAWING_DVOLUME_CHNRS_type = {
1618 _GEANT_DRAWING_DVOLUME_CHNRS_text, (int*)0, (int*)0 };
1619 static KmParameter _GEANT_DRAWING_DVOLUME_CHNRS = { "CHNRS", 5,
1620 "Reference system used", "MARS", (char*)0, 8, 2,
1621 _GEANT_DRAWING_DVOLUME_CHNRS_range, 2, _GEANT_DRAWING_DVOLUME_CHNRS_range,
1622 (KmParFlag)0, KmTYPE_OPTION, &_GEANT_DRAWING_DVOLUME_CHNRS_type };
1623 static KmParReal _GEANT_DRAWING_DVOLUME_THETA_type = { "0.", "360.", "0.",
1625 static KmParameter _GEANT_DRAWING_DVOLUME_THETA = { "THETA", 5,
1626 "Viewing angle theta (for 3D projection)", (char*)0, (char*)0, 12, 0,
1627 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
1628 &_GEANT_DRAWING_DVOLUME_THETA_type };
1629 static KmParReal _GEANT_DRAWING_DVOLUME_PHI_type = { "0.", "360.", "0.",
1631 static KmParameter _GEANT_DRAWING_DVOLUME_PHI = { "PHI", 3,
1632 "Viewing angle phi (for 3D projection)", (char*)0, (char*)0, 12, 0,
1633 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
1634 &_GEANT_DRAWING_DVOLUME_PHI_type };
1635 static KmParReal _GEANT_DRAWING_DVOLUME_PSI_type = { "0.", "180.", "0.",
1637 static KmParameter _GEANT_DRAWING_DVOLUME_PSI = { "PSI", 3,
1638 "Viewing angle psi (for 2D rotation)", (char*)0, (char*)0, 12, 0, (char**)0,
1639 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DVOLUME_PSI_type };
1640 static KmParReal _GEANT_DRAWING_DVOLUME_U0_type = { (char*)0, (char*)0,
1641 (char*)0, (char*)0, 0 };
1642 static KmParameter _GEANT_DRAWING_DVOLUME_U0 = { "U0", 2,
1643 "U-coord. (horizontal) of volume origin", (char*)0, (char*)0, 12, 0,
1644 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
1645 &_GEANT_DRAWING_DVOLUME_U0_type };
1646 static KmParReal _GEANT_DRAWING_DVOLUME_V0_type = { (char*)0, (char*)0,
1647 (char*)0, (char*)0, 0 };
1648 static KmParameter _GEANT_DRAWING_DVOLUME_V0 = { "V0", 2,
1649 "V-coord. (vertical) of volume origin", (char*)0, (char*)0, 12, 0, (char**)0,
1650 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DVOLUME_V0_type };
1651 static KmParReal _GEANT_DRAWING_DVOLUME_SU_type = { (char*)0, (char*)0,
1652 (char*)0, (char*)0, 0 };
1653 static KmParameter _GEANT_DRAWING_DVOLUME_SU = { "SU", 2,
1654 "Scale factor for U-coord.", (char*)0, (char*)0, 12, 0, (char**)0, 0,
1655 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DVOLUME_SU_type };
1656 static KmParReal _GEANT_DRAWING_DVOLUME_SV_type = { (char*)0, (char*)0,
1657 (char*)0, (char*)0, 0 };
1658 static KmParameter _GEANT_DRAWING_DVOLUME_SV = { "SV", 2,
1659 "Scale factor for V-coord.", (char*)0, (char*)0, 12, 0, (char**)0, 0,
1660 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DVOLUME_SV_type };
1661 static KmParameter *_GEANT_DRAWING_DVOLUME_parameters[] = {
1662 &_GEANT_DRAWING_DVOLUME_N, &_GEANT_DRAWING_DVOLUME_NAMNUM,
1663 &_GEANT_DRAWING_DVOLUME_CHNRS, &_GEANT_DRAWING_DVOLUME_THETA,
1664 &_GEANT_DRAWING_DVOLUME_PHI, &_GEANT_DRAWING_DVOLUME_PSI,
1665 &_GEANT_DRAWING_DVOLUME_U0, &_GEANT_DRAWING_DVOLUME_V0,
1666 &_GEANT_DRAWING_DVOLUME_SU, &_GEANT_DRAWING_DVOLUME_SV };
1667 static char *_GEANT_DRAWING_DVOLUME_guidance[] = {
1668 " CALL GDRVOL(n,lnames,lnumbs,nrs,theta,phi,psi,u0,v0,su,sv)",
1669 "N is the number of levels from the top of the geometry structure",
1670 "to the volume lnames(n),lnumbs(n) to be drawn.",
1671 "NAMNUM contain the arrays lnames and lnumbs,",
1672 "identifying the path, in pairs and separated by commas; for",
1673 "example (with n=2) :", "'lname(1),lnumbs(1),lname(2),lnumbs(2) '",
1674 "CHNRS is the name of the reference system used: MARS for MAster Reference",
1675 "System or DRS for Daughter Reference System.",
1676 "NRS=0 for MARS or NRS<>0 for DRS",
1677 "If optional parameters are missing, the current values in /GCDRAW/",
1679 static KmCommand _GEANT_DRAWING_DVOLUME = { &_GEANT_DRAWING_DCUT,
1680 "/GEANT/DRAWING/DVOLUME", "DVOLUME", 0, 2, 10, 3,
1681 _GEANT_DRAWING_DVOLUME_parameters, 0, 0, gxdraw_, (IntFunc*)0,
1682 (SUBROUTINE*)0, (pCharFunc*)0, 12, _GEANT_DRAWING_DVOLUME_guidance, 0,
1683 (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
1685 static KmParReal _GEANT_DRAWING_RANG5D_X1MIN_type = { (char*)0, (char*)0,
1686 (char*)0, (char*)0, 0 };
1687 static KmParameter _GEANT_DRAWING_RANG5D_X1MIN = { "X1MIN", 5,
1688 "x coordinate min", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
1689 (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_RANG5D_X1MIN_type };
1690 static KmParReal _GEANT_DRAWING_RANG5D_X1MAX_type = { (char*)0, (char*)0,
1691 (char*)0, (char*)0, 0 };
1692 static KmParameter _GEANT_DRAWING_RANG5D_X1MAX = { "X1MAX", 5,
1693 "x coordinate max", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
1694 (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_RANG5D_X1MAX_type };
1695 static KmParReal _GEANT_DRAWING_RANG5D_Y1MIN_type = { (char*)0, (char*)0,
1696 (char*)0, (char*)0, 0 };
1697 static KmParameter _GEANT_DRAWING_RANG5D_Y1MIN = { "Y1MIN", 5,
1698 "y coordinate min", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
1699 (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_RANG5D_Y1MIN_type };
1700 static KmParReal _GEANT_DRAWING_RANG5D_Y1MAX_type = { (char*)0, (char*)0,
1701 (char*)0, (char*)0, 0 };
1702 static KmParameter _GEANT_DRAWING_RANG5D_Y1MAX = { "Y1MAX", 5,
1703 "y coordinate max", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
1704 (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_RANG5D_Y1MAX_type };
1705 static KmParReal _GEANT_DRAWING_RANG5D_Z1MIN_type = { (char*)0, (char*)0,
1706 (char*)0, (char*)0, 0 };
1707 static KmParameter _GEANT_DRAWING_RANG5D_Z1MIN = { "Z1MIN", 5,
1708 "z coordinate min", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
1709 (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_RANG5D_Z1MIN_type };
1710 static KmParReal _GEANT_DRAWING_RANG5D_Z1MAX_type = { (char*)0, (char*)0,
1711 (char*)0, (char*)0, 0 };
1712 static KmParameter _GEANT_DRAWING_RANG5D_Z1MAX = { "Z1MAX", 5,
1713 "z coordinate max", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
1714 (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_RANG5D_Z1MAX_type };
1715 static KmParameter *_GEANT_DRAWING_RANG5D_parameters[] = {
1716 &_GEANT_DRAWING_RANG5D_X1MIN, &_GEANT_DRAWING_RANG5D_X1MAX,
1717 &_GEANT_DRAWING_RANG5D_Y1MIN, &_GEANT_DRAWING_RANG5D_Y1MAX,
1718 &_GEANT_DRAWING_RANG5D_Z1MIN, &_GEANT_DRAWING_RANG5D_Z1MAX };
1719 static char *_GEANT_DRAWING_RANG5D_guidance[] = {
1720 "It sets the range for the x,y,z variables." };
1721 static KmCommand _GEANT_DRAWING_RANG5D = { &_GEANT_DRAWING_DVOLUME,
1722 "/GEANT/DRAWING/RANG5D", "RANG5D", 0, 2, 6, 6,
1723 _GEANT_DRAWING_RANG5D_parameters, 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0,
1724 (pCharFunc*)0, 1, _GEANT_DRAWING_RANG5D_guidance, 0, (char**)0, 0, (char**)0,
1725 0, (char**)0, (char*)0, (int*)0 };
1727 static KmParReal _GEANT_DRAWING_VAR5D_TSEQTO_type = { (char*)0, (char*)0,
1728 (char*)0, (char*)0, 0 };
1729 static KmParameter _GEANT_DRAWING_VAR5D_TSEQTO = { "TSEQTO", 6,
1730 "total sequential time", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
1731 (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_VAR5D_TSEQTO_type };
1732 static KmParInt _GEANT_DRAWING_VAR5D_NPROC_type = { (char*)0, (char*)0,
1733 (char*)0, (char*)0, 0 };
1734 static KmParameter _GEANT_DRAWING_VAR5D_NPROC = { "NPROC", 5,
1735 "number of processors", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
1736 (KmParFlag)0, KmTYPE_INT, &_GEANT_DRAWING_VAR5D_NPROC_type };
1737 static KmParInt _GEANT_DRAWING_VAR5D_NMPTOT_type = { (char*)0, (char*)0,
1738 (char*)0, (char*)0, 0 };
1739 static KmParameter _GEANT_DRAWING_VAR5D_NMPTOT = { "NMPTOT", 6,
1740 "number of message passing", (char*)0, (char*)0, 8, 0, (char**)0, 0,
1741 (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_DRAWING_VAR5D_NMPTOT_type };
1742 static KmParReal _GEANT_DRAWING_VAR5D_TOTMBY_type = { (char*)0, (char*)0,
1743 (char*)0, (char*)0, 0 };
1744 static KmParameter _GEANT_DRAWING_VAR5D_TOTMBY = { "TOTMBY", 6,
1745 "total megabytes transfert", (char*)0, (char*)0, 12, 0, (char**)0, 0,
1746 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_VAR5D_TOTMBY_type };
1747 static KmParReal _GEANT_DRAWING_VAR5D_TSEQ_type = { (char*)0, (char*)0,
1748 (char*)0, (char*)0, 0 };
1749 static KmParameter _GEANT_DRAWING_VAR5D_TSEQ = { "TSEQ", 4,
1750 "not parallelized code", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
1751 (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_VAR5D_TSEQ_type };
1752 static KmParReal _GEANT_DRAWING_VAR5D_TLAT_type = { (char*)0, (char*)0,
1753 (char*)0, (char*)0, 0 };
1754 static KmParameter _GEANT_DRAWING_VAR5D_TLAT = { "TLAT", 4, "latency time",
1755 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
1756 KmTYPE_REAL, &_GEANT_DRAWING_VAR5D_TLAT_type };
1757 static KmParReal _GEANT_DRAWING_VAR5D_TNET_type = { (char*)0, (char*)0,
1758 (char*)0, (char*)0, 0 };
1759 static KmParameter _GEANT_DRAWING_VAR5D_TNET = { "TNET", 4,
1760 "network speed in Mbytes/sec", (char*)0, (char*)0, 12, 0, (char**)0, 0,
1761 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_VAR5D_TNET_type };
1762 static KmParameter *_GEANT_DRAWING_VAR5D_parameters[] = {
1763 &_GEANT_DRAWING_VAR5D_TSEQTO, &_GEANT_DRAWING_VAR5D_NPROC,
1764 &_GEANT_DRAWING_VAR5D_NMPTOT, &_GEANT_DRAWING_VAR5D_TOTMBY,
1765 &_GEANT_DRAWING_VAR5D_TSEQ, &_GEANT_DRAWING_VAR5D_TLAT,
1766 &_GEANT_DRAWING_VAR5D_TNET };
1767 static char *_GEANT_DRAWING_VAR5D_guidance[] = {
1768 "It sets the values of the parameters expressed in the formula and",
1769 "specify which variables must be assumed as x,y,z (setting their value",
1770 "to 1001,1002,1003, respectively)." };
1771 static KmCommand _GEANT_DRAWING_VAR5D = { &_GEANT_DRAWING_RANG5D,
1772 "/GEANT/DRAWING/VAR5D", "VAR5D", 0, 2, 7, 7, _GEANT_DRAWING_VAR5D_parameters,
1773 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
1774 _GEANT_DRAWING_VAR5D_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
1775 (char*)0, (int*)0 };
1777 static KmParReal _GEANT_DRAWING_SPOT_XLPOS_type = { (char*)0, (char*)0,
1778 (char*)0, (char*)0, 0 };
1779 static KmParameter _GEANT_DRAWING_SPOT_XLPOS = { "XLPOS", 5,
1780 "x coordinate of light source", (char*)0, (char*)0, 12, 0, (char**)0, 0,
1781 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_SPOT_XLPOS_type };
1782 static KmParReal _GEANT_DRAWING_SPOT_YLPOS_type = { (char*)0, (char*)0,
1783 (char*)0, (char*)0, 0 };
1784 static KmParameter _GEANT_DRAWING_SPOT_YLPOS = { "YLPOS", 5,
1785 "y coordinate of light source", (char*)0, (char*)0, 12, 0, (char**)0, 0,
1786 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_SPOT_YLPOS_type };
1787 static KmParReal _GEANT_DRAWING_SPOT_ZLPOS_type = { (char*)0, (char*)0,
1788 (char*)0, (char*)0, 0 };
1789 static KmParameter _GEANT_DRAWING_SPOT_ZLPOS = { "ZLPOS", 5,
1790 "z coordinate of light source", (char*)0, (char*)0, 12, 0, (char**)0, 0,
1791 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_SPOT_ZLPOS_type };
1792 static KmParInt _GEANT_DRAWING_SPOT_INTEN_type = { (char*)0, (char*)0,
1793 (char*)0, (char*)0, 0 };
1794 static KmParameter _GEANT_DRAWING_SPOT_INTEN = { "INTEN", 5,
1795 "intensity of light source", (char*)0, (char*)0, 8, 0, (char**)0, 0,
1796 (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_DRAWING_SPOT_INTEN_type };
1797 static KmParameter *_GEANT_DRAWING_SPOT_parameters[] = {
1798 &_GEANT_DRAWING_SPOT_XLPOS, &_GEANT_DRAWING_SPOT_YLPOS,
1799 &_GEANT_DRAWING_SPOT_ZLPOS, &_GEANT_DRAWING_SPOT_INTEN };
1800 static char *_GEANT_DRAWING_SPOT_guidance[] = {
1801 "This point-like light source can be moved in the space and its intensity",
1802 "can be changed (INTEN going from 0 to 10) relatively to the ambience light."
1804 static KmCommand _GEANT_DRAWING_SPOT = { &_GEANT_DRAWING_VAR5D,
1805 "/GEANT/DRAWING/SPOT", "SPOT", 0, 2, 4, 4, _GEANT_DRAWING_SPOT_parameters, 0,
1806 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 2,
1807 _GEANT_DRAWING_SPOT_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
1808 (char*)0, (int*)0 };
1810 static KmParameter _GEANT_DRAWING_DRAW_NAME = { "NAME", 4, "Volume name",
1811 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
1812 KmTYPE_CHAR, (void*)0 };
1813 static KmParReal _GEANT_DRAWING_DRAW_THETA_type = { "0.", "180.", "0.",
1815 static KmParameter _GEANT_DRAWING_DRAW_THETA = { "THETA", 5,
1816 "Viewing angle theta (for 3D projection)", (char*)0, (char*)0, 12, 0,
1817 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
1818 &_GEANT_DRAWING_DRAW_THETA_type };
1819 static KmParReal _GEANT_DRAWING_DRAW_PHI_type = { "0.", "360.", "0.",
1821 static KmParameter _GEANT_DRAWING_DRAW_PHI = { "PHI", 3,
1822 "Viewing angle phi (for 3D projection)", (char*)0, (char*)0, 12, 0,
1823 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
1824 &_GEANT_DRAWING_DRAW_PHI_type };
1825 static KmParReal _GEANT_DRAWING_DRAW_PSI_type = { "0.", "360.", "0.",
1827 static KmParameter _GEANT_DRAWING_DRAW_PSI = { "PSI", 3,
1828 "Viewing angle psi (for 2D rotation)", (char*)0, (char*)0, 12, 0, (char**)0,
1829 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DRAW_PSI_type };
1830 static KmParReal _GEANT_DRAWING_DRAW_U0_type = { (char*)0, (char*)0,
1831 (char*)0, (char*)0, 0 };
1832 static KmParameter _GEANT_DRAWING_DRAW_U0 = { "U0", 2,
1833 "U-coord. (horizontal) of volume origin", (char*)0, (char*)0, 12, 0,
1834 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
1835 &_GEANT_DRAWING_DRAW_U0_type };
1836 static KmParReal _GEANT_DRAWING_DRAW_V0_type = { (char*)0, (char*)0,
1837 (char*)0, (char*)0, 0 };
1838 static KmParameter _GEANT_DRAWING_DRAW_V0 = { "V0", 2,
1839 "V-coord. (vertical) of volume origin", (char*)0, (char*)0, 12, 0, (char**)0,
1840 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DRAW_V0_type };
1841 static KmParReal _GEANT_DRAWING_DRAW_SU_type = { (char*)0, (char*)0,
1842 (char*)0, (char*)0, 0 };
1843 static KmParameter _GEANT_DRAWING_DRAW_SU = { "SU", 2,
1844 "Scale factor for U-coord.", (char*)0, (char*)0, 12, 0, (char**)0, 0,
1845 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DRAW_SU_type };
1846 static KmParReal _GEANT_DRAWING_DRAW_SV_type = { (char*)0, (char*)0,
1847 (char*)0, (char*)0, 0 };
1848 static KmParameter _GEANT_DRAWING_DRAW_SV = { "SV", 2,
1849 "Scale factor for V-coord.", (char*)0, (char*)0, 12, 0, (char**)0, 0,
1850 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DRAW_SV_type };
1851 static KmParameter *_GEANT_DRAWING_DRAW_parameters[] = {
1852 &_GEANT_DRAWING_DRAW_NAME, &_GEANT_DRAWING_DRAW_THETA,
1853 &_GEANT_DRAWING_DRAW_PHI, &_GEANT_DRAWING_DRAW_PSI, &_GEANT_DRAWING_DRAW_U0,
1854 &_GEANT_DRAWING_DRAW_V0, &_GEANT_DRAWING_DRAW_SU, &_GEANT_DRAWING_DRAW_SV };
1855 static char *_GEANT_DRAWING_DRAW_guidance[] = {
1856 " CALL GDRAW(name,theta,phi,psi,u0,v0,su,sv)",
1857 "If optional parameters are missing, the corresponding values are",
1858 "taken from the common /GCDRAW/. This command will draw the volumes,",
1859 "selected with their graphical attributes, set by the SATT",
1860 "facility. The drawing may be performed with hidden line removal",
1861 "and with shading effects according to the value of the options HIDE",
1862 "and SHAD; if the option SHAD is ON, the contour's edges can be",
1863 "drawn or not. If the option HIDE is ON, the detector can be",
1864 "exploded (BOMB), clipped with different shapes (CVOL), and some",
1865 "of its parts can be shifted from their original",
1866 "position (SHIFT). When HIDE is ON, if",
1867 "the drawing requires more than the available memory, the program",
1868 "will evaluate and display the number of missing words",
1869 "(so that the user can increase the",
1870 "size of its ZEBRA store). Finally, at the end of each drawing (with HIDE\
1871 on),", "the program will print messages about the memory used and",
1872 "statistics on the volumes' visibility.",
1873 "The following commands will produce the drawing of a green",
1874 "volume, specified by NAME, without using the hidden line removal",
1875 "technique, using the hidden line removal technique,",
1876 "with different linewidth and colour (red), with",
1877 "solid colour, with shading of surfaces, and without edges.",
1878 "Finally, some examples are given for the ray-tracing. (A possible",
1879 "string for the NAME of the volume can be found using the command DTREE).",
1880 " EXAMPLE -", " satt * seen -2", " satt NAME colo 3",
1881 " draw NAME 40 40 0 10 10 .01 .01", " next", " dopt hide on",
1882 " draw NAME 40 40 0 10 10 .01 .01", " next", " satt NAME colo 2",
1883 " satt NAME lwid 4", " draw NAME 40 40 0 10 10 .01 .01", " next",
1884 " dopt shad on", " satt * lwid 1", " satt NAME fill 1",
1885 " draw NAME 40 40 0 10 10 .01 .01", " next", " satt NAME fill 3",
1886 " draw NAME 40 40 0 10 10 .01 .01", " next", " dopt edge off",
1887 " draw NAME 40 40 0 10 10 .01 .01", " dopt rayt on", " satt * fill 20",
1888 " dopt mapp 1", " draw NAME 40 40 0 10 10 .01 .01", " dopt proj pers",
1889 " persp NAME 500", " draw NAME 40 40 0 10 10 1 1", " valcut 100 100 100",
1890 " dopt mapp 0", " dopt user on", " satt NAM1 seen 0", " satt NAM2 colo 2",
1891 " draw NAME 40 40 0 10 10 5 5" };
1892 static KmCommand _GEANT_DRAWING_DRAW = { &_GEANT_DRAWING_SPOT,
1893 "/GEANT/DRAWING/DRAW", "DRAW", 0, 2, 8, 1, _GEANT_DRAWING_DRAW_parameters, 0,
1894 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 59,
1895 _GEANT_DRAWING_DRAW_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
1896 (char*)0, (int*)0 };
1898 static char *_GEANT_DRAWING_guidance[] = {
1899 "Drawing commands. These commands allow the visualization in several ways",
1900 "of the volumes defined in the geometrical data structure. It is possible",
1901 "to draw the logical tree of volumes belonging to the detector (DTREE),",
1902 "to show their geometrical specification (DSPEC,DFSPC), to draw them",
1903 "and their cut views (DRAW, DCUT). Moreover, it is possible to execute",
1904 "these commands when the hidden line removal option is activated; in",
1905 "this case, the volumes can be also either translated in the space",
1906 "(SHIFT), or clipped by boolean operation (CVOL). In addition, it is",
1907 "possible to fill the surfaces of the volumes",
1908 "with solid colours when the shading option (SHAD) is activated.",
1909 "Several tools (ZOOM, LENS) have been developed to zoom detailed parts",
1910 "of the detectors or to scan physical events as well.",
1911 "Finally, the command MOVE will allow the rotation, translation and zooming",
1912 "on real time parts of the detectors or tracks and hits of a simulated\
1914 "Ray-tracing commands. In case the command (DOPT RAYT ON) is executed,",
1915 "the drawing is performed by the Geant ray-tracing;",
1916 "automatically, the color is assigned according to the tracking medium of\
1918 "volume and the volumes with a density lower/equal than the air are\
1920 "transparent; if the option (USER) is set (ON) (again via the command\
1922 "the user can set color and visibility for the desired volumes via the\
1924 "(SATT), as usual, relatively to the attributes (COLO) and (SEEN).",
1925 "The resolution can be set via the command (SATT * FILL VALUE), where\
1927 "is the ratio between the number of pixels drawn and 20 (user coordinates).",
1928 "Parallel view and perspective view are possible (DOPT PROJ PARA/PERS); in\
1930 "first case, we assume that the first mother volume of the tree is a box\
1932 "dimensions 10000 X 10000 X 10000 cm and the view point (infinetely far) is",
1933 "5000 cm far from the origin along the Z axis of the user coordinates; in\
1935 "second case, the distance between the observer and the origin of the world",
1936 "reference system is set in cm by the command (PERSP NAME VALUE);\
1938 "or telescopic effects can be achieved changing the scale factors in the\
1939 command", "(DRAW). When the final picture does not occupy the full window,",
1940 "mapping the space before tracing can speed up the drawing, but can also",
1941 "produce less precise results; values from 1 to 4 are allowed in the\
1943 "(DOPT MAPP VALUE), the mapping being more precise for increasing (VALUE);\
1945 "(VALUE = 0) no mapping is performed (therefore max precision and lowest\
1947 "The command (VALCUT) allows the cutting of the detector by three planes",
1948 "ortogonal to the x,y,z axis. The attribute (LSTY) can be set by the\
1950 "SATT for any desired volume and can assume values from 0 to 7; it\
1952 "the different light processing to be performed for different materials:",
1953 "0 = dark-matt, 1 = bright-matt, 2 = plastic, 3 = ceramic, 4 =\
1955 "5 = shiny-metals, 6 = glass, 7 = mirror. The detector is assumed to be in\
1957 "dark, the ambient light luminosity is 0.2 for each basic hue (the\
1959 "is 0.9) and the observer is assumed to have a light source (therefore he\
1961 "produce parallel light in the case of parallel view and point-like-source",
1962 "light in the case of perspective view)." };
1963 static KmMenu _GEANT_DRAWING = { (KmMenu*)0, (KmMenu*)0, "/GEANT/DRAWING",
1964 "DRAWING", 2, &_GEANT_DRAWING_DRAW, 45, _GEANT_DRAWING_guidance, 0,
1965 (char**)0, 0, (char**)0 };
1967 static char *_GEANT_CVOL_guidance[] = { "Clipping commands.",
1968 "The hidden line removal technique is necessary to visualize properly",
1969 "very complex detectors. At the same time, it can be useful to visualize",
1970 "the inner elements of a detector in detail. For this purpose, the",
1971 "commands menu CVOL has been developed: these commands allow",
1972 "subtractions (via boolean operation) of given shapes from any part of",
1973 "the detector, therefore showing its inner contents. It is possible",
1974 "to clip each different volume by means of a different shape (BOX ,",
1975 "TUBE, CONE, SPHE are available). If '*' is given as the name of the",
1976 "volume to be clipped, all volumes are clipped by the given shape.",
1977 "A volume can be clipped at most twice (even by",
1978 "different shapes); if a volume is explicitely clipped",
1979 "twice, the '*' will not act on it anymore. Giving '.' as the name",
1980 "of the volume to be clipped will reset the clipping." };
1981 static KmMenu _GEANT_CVOL = { &_GEANT_DRAWING, (KmMenu*)0, "/GEANT/CVOL",
1982 "CVOL", 2, &_GEANT_CVOL_BOX, 14, _GEANT_CVOL_guidance, 0, (char**)0, 0,
1985 static char *_GEANT_guidance[] = { "GEANT specific commands." };
1986 static KmMenu _GEANT = { (KmMenu*)0, &_GEANT_CVOL, "/GEANT", "GEANT", 1,
1987 (KmCommand*)0, 1, _GEANT_guidance, 0, (char**)0, 0, (char**)0 };
1989 klnkmenu( &_GEANT, 950303 );
1994 # define gkgcon_ gkgcon
1995 # define gxgcon_ gxgcon
1999 # define gkgcon_ GKGCON
2000 # define gxgcon_ GXGCON
2004 # pragma linkage(GKGCON,FORTRAN)
2005 # pragma linkage(GXGCON,FORTRAN)
2008 extern void gkgcon_();
2009 extern void gxgcon_();
2014 static KmParInt _GEANT_GRAPHICS_CONTROL_MAP_COLOR_ICADD_type = { (char*)0,
2015 (char*)0, (char*)0, (char*)0, 0 };
2016 static KmParameter _GEANT_GRAPHICS_CONTROL_MAP_COLOR_ICADD = { "ICADD", 5,
2017 "Colour table index", "0", (char*)0, 8, 0, (char**)0, 0, (char**)0,
2018 (KmParFlag)0, KmTYPE_INT, &_GEANT_GRAPHICS_CONTROL_MAP_COLOR_ICADD_type };
2019 static KmParInt _GEANT_GRAPHICS_CONTROL_MAP_COLOR_ICVAL_type = { (char*)0,
2020 (char*)0, (char*)0, (char*)0, 0 };
2021 static KmParameter _GEANT_GRAPHICS_CONTROL_MAP_COLOR_ICVAL = { "ICVAL", 5,
2022 "Colour table value", "0", (char*)0, 8, 0, (char**)0, 0, (char**)0,
2023 (KmParFlag)0, KmTYPE_INT, &_GEANT_GRAPHICS_CONTROL_MAP_COLOR_ICVAL_type };
2024 static KmParameter *_GEANT_GRAPHICS_CONTROL_MAP_COLOR_parameters[] = {
2025 &_GEANT_GRAPHICS_CONTROL_MAP_COLOR_ICADD,
2026 &_GEANT_GRAPHICS_CONTROL_MAP_COLOR_ICVAL };
2027 static char *_GEANT_GRAPHICS_CONTROL_MAP_COLOR_guidance[] = {
2028 "Sets the color table LOOKTB(ICADD)=ICVAL.",
2029 "If ICADD=0 then LOOKTB(1:16) is taken.",
2030 "If ICVAL is omitted the current value of LOOKTB(ICADD) is shown." };
2031 static KmCommand _GEANT_GRAPHICS_CONTROL_MAP_COLOR = { (KmCommand*)0,
2032 "/GEANT/GRAPHICS_CONTROL/MAP_COLOR", "MAP_COLOR", 0, 2, 2, 0,
2033 _GEANT_GRAPHICS_CONTROL_MAP_COLOR_parameters, 0, 0, gxgcon_, (IntFunc*)0,
2034 (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_GRAPHICS_CONTROL_MAP_COLOR_guidance,
2035 0, (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
2037 static KmParReal _GEANT_GRAPHICS_CONTROL_SPERS_DPERS_type = { (char*)0,
2038 (char*)0, (char*)0, (char*)0, 0 };
2039 static KmParameter _GEANT_GRAPHICS_CONTROL_SPERS_DPERS = { "DPERS", 5,
2040 "Distance from the origin", (char*)0, (char*)0, 12, 0, (char**)0, 0,
2041 (char**)0, (KmParFlag)0, KmTYPE_REAL,
2042 &_GEANT_GRAPHICS_CONTROL_SPERS_DPERS_type };
2043 static KmParameter *_GEANT_GRAPHICS_CONTROL_SPERS_parameters[] = {
2044 &_GEANT_GRAPHICS_CONTROL_SPERS_DPERS };
2045 static char *_GEANT_GRAPHICS_CONTROL_SPERS_guidance[] = {
2046 "Set the variable dpers in /GCDRAW/, representing",
2047 "the distance from the origin when using option PERSpective." };
2048 static KmCommand _GEANT_GRAPHICS_CONTROL_SPERS = {
2049 &_GEANT_GRAPHICS_CONTROL_MAP_COLOR, "/GEANT/GRAPHICS_CONTROL/SPERS", "SPERS",
2050 0, 2, 1, 1, _GEANT_GRAPHICS_CONTROL_SPERS_parameters, 0, 0, gxgcon_,
2051 (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 2,
2052 _GEANT_GRAPHICS_CONTROL_SPERS_guidance, 0, (char**)0, 0, (char**)0, 0,
2053 (char**)0, (char*)0, (int*)0 };
2055 static KmParReal _GEANT_GRAPHICS_CONTROL_SIZE_XSIZE_type = { (char*)0,
2056 (char*)0, (char*)0, (char*)0, 0 };
2057 static KmParameter _GEANT_GRAPHICS_CONTROL_SIZE_XSIZE = { "XSIZE", 5,
2058 "Size along X", "20.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
2059 (KmParFlag)0, KmTYPE_REAL, &_GEANT_GRAPHICS_CONTROL_SIZE_XSIZE_type };
2060 static KmParReal _GEANT_GRAPHICS_CONTROL_SIZE_YSIZE_type = { (char*)0,
2061 (char*)0, (char*)0, (char*)0, 0 };
2062 static KmParameter _GEANT_GRAPHICS_CONTROL_SIZE_YSIZE = { "YSIZE", 5,
2063 "Size along Y", "20.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
2064 (KmParFlag)0, KmTYPE_REAL, &_GEANT_GRAPHICS_CONTROL_SIZE_YSIZE_type };
2065 static KmParameter *_GEANT_GRAPHICS_CONTROL_SIZE_parameters[] = {
2066 &_GEANT_GRAPHICS_CONTROL_SIZE_XSIZE, &_GEANT_GRAPHICS_CONTROL_SIZE_YSIZE };
2067 static char *_GEANT_GRAPHICS_CONTROL_SIZE_guidance[] = {
2068 "Set the size of the picture.",
2069 "On the terminal, the pictures will have the ratio YSIZE/XSIZE, and,",
2070 "if a metafile is produced, pictures will be YSIZE by XSIZE cm.",
2071 "This command sets the parameters for the normalisation transformation",
2072 "number 1 to [0-XSIZE], [0-YSIZE]." };
2073 static KmCommand _GEANT_GRAPHICS_CONTROL_SIZE = {
2074 &_GEANT_GRAPHICS_CONTROL_SPERS, "/GEANT/GRAPHICS_CONTROL/SIZE", "SIZE", 0, 2,
2075 2, 0, _GEANT_GRAPHICS_CONTROL_SIZE_parameters, 0, 0, gxgcon_, (IntFunc*)0,
2076 (SUBROUTINE*)0, (pCharFunc*)0, 5, _GEANT_GRAPHICS_CONTROL_SIZE_guidance, 0,
2077 (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
2079 static KmParameter _GEANT_GRAPHICS_CONTROL_DOPT_IOPT = { "IOPT", 4,
2080 "Option name", "*", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2081 KmTYPE_CHAR, (void*)0 };
2082 static KmParameter _GEANT_GRAPHICS_CONTROL_DOPT_IVAL = { "IVAL", 4,
2083 "Option value", "*", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2084 KmTYPE_CHAR, (void*)0 };
2085 static KmParameter *_GEANT_GRAPHICS_CONTROL_DOPT_parameters[] = {
2086 &_GEANT_GRAPHICS_CONTROL_DOPT_IOPT, &_GEANT_GRAPHICS_CONTROL_DOPT_IVAL };
2087 static char *_GEANT_GRAPHICS_CONTROL_DOPT_guidance[] = {
2088 " CALL GDOPT(iopt,ival)", "To set/modify the drawing options.",
2089 " IOPT IVAL Action", " THRZ ON Draw tracks in R vs Z",
2090 " OFF (D) Draw tracks in X,Y,Z", " 180",
2091 " 360", " PROJ PARA (D) Parallel projection",
2092 " PERS Perspective",
2093 " TRAK LINE (D) Trajectory drawn with lines",
2094 " POIN \" \" with markers",
2095 " HIDE ON Hidden line removal using the CG package",
2096 " OFF (D) No hidden line removal",
2097 " SHAD ON Fill area and shading of surfaces.",
2098 " OFF (D) Normal hidden line removal.",
2099 " RAYT ON Ray-tracing on.",
2100 " OFF (D) Ray-tracing off.",
2101 " EDGE OFF Does not draw contours when shad is on.",
2102 " ON (D) Normal shading.",
2103 " MAPP 1,2,3,4 Mapping before ray-tracing.",
2104 " 0 (D) No mapping.",
2105 " USER ON User graphics options in the raytracing.",
2106 " OFF (D) Automatic graphics options." };
2107 static KmCommand _GEANT_GRAPHICS_CONTROL_DOPT = {
2108 &_GEANT_GRAPHICS_CONTROL_SIZE, "/GEANT/GRAPHICS_CONTROL/DOPT", "DOPT", 0, 2,
2109 2, 0, _GEANT_GRAPHICS_CONTROL_DOPT_parameters, 0, 0, gxgcon_, (IntFunc*)0,
2110 (SUBROUTINE*)0, (pCharFunc*)0, 23, _GEANT_GRAPHICS_CONTROL_DOPT_guidance, 0,
2111 (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
2113 static char *_GEANT_GRAPHICS_CONTROL_NEXT_guidance[] = {
2114 "Clear screen (start a new picture on graphics file, if opened)." };
2115 static KmCommand _GEANT_GRAPHICS_CONTROL_NEXT = {
2116 &_GEANT_GRAPHICS_CONTROL_DOPT, "/GEANT/GRAPHICS_CONTROL/NEXT", "NEXT", 0, 2,
2117 0, 0, (KmParameter**)0, 0, 0, gxgcon_, (IntFunc*)0, (SUBROUTINE*)0,
2118 (pCharFunc*)0, 1, _GEANT_GRAPHICS_CONTROL_NEXT_guidance, 0, (char**)0, 0,
2119 (char**)0, 0, (char**)0, (char*)0, (int*)0 };
2121 static KmParInt _GEANT_GRAPHICS_CONTROL_LWID_LWIDTH_type = { (char*)0,
2122 (char*)0, (char*)0, (char*)0, 0 };
2123 static KmParameter _GEANT_GRAPHICS_CONTROL_LWID_LWIDTH = { "LWIDTH", 6,
2124 "Line width code", "1", (char*)0, 8, 0, (char**)0, 0, (char**)0,
2125 (KmParFlag)0, KmTYPE_INT, &_GEANT_GRAPHICS_CONTROL_LWID_LWIDTH_type };
2126 static KmParameter *_GEANT_GRAPHICS_CONTROL_LWID_parameters[] = {
2127 &_GEANT_GRAPHICS_CONTROL_LWID_LWIDTH };
2128 static char *_GEANT_GRAPHICS_CONTROL_LWID_guidance[] = {
2129 " CALL GDLW(-abs(lwidth))" };
2130 static KmCommand _GEANT_GRAPHICS_CONTROL_LWID = {
2131 &_GEANT_GRAPHICS_CONTROL_NEXT, "/GEANT/GRAPHICS_CONTROL/LWID", "LWID", 0, 2,
2132 1, 1, _GEANT_GRAPHICS_CONTROL_LWID_parameters, 0, 0, gxgcon_, (IntFunc*)0,
2133 (SUBROUTINE*)0, (pCharFunc*)0, 1, _GEANT_GRAPHICS_CONTROL_LWID_guidance, 0,
2134 (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
2136 static KmParInt _GEANT_GRAPHICS_CONTROL_COLOR_ICOL_type = { (char*)0,
2137 (char*)0, (char*)0, (char*)0, 0 };
2138 static KmParameter _GEANT_GRAPHICS_CONTROL_COLOR_ICOL = { "ICOL", 4,
2139 "Colour code", "1", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2140 KmTYPE_INT, &_GEANT_GRAPHICS_CONTROL_COLOR_ICOL_type };
2141 static KmParameter *_GEANT_GRAPHICS_CONTROL_COLOR_parameters[] = {
2142 &_GEANT_GRAPHICS_CONTROL_COLOR_ICOL };
2143 static char *_GEANT_GRAPHICS_CONTROL_COLOR_guidance[] = {
2144 " CALL GDCOL(-abs(icol))" };
2145 static KmCommand _GEANT_GRAPHICS_CONTROL_COLOR = {
2146 &_GEANT_GRAPHICS_CONTROL_LWID, "/GEANT/GRAPHICS_CONTROL/COLOR", "COLOR", 0,
2147 2, 1, 1, _GEANT_GRAPHICS_CONTROL_COLOR_parameters, 0, 0, gxgcon_,
2148 (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
2149 _GEANT_GRAPHICS_CONTROL_COLOR_guidance, 0, (char**)0, 0, (char**)0, 0,
2150 (char**)0, (char*)0, (int*)0 };
2152 static KmParReal _GEANT_GRAPHICS_CONTROL_SCALE_GSCU_type = { (char*)0,
2153 (char*)0, (char*)0, (char*)0, 0 };
2154 static KmParameter _GEANT_GRAPHICS_CONTROL_SCALE_GSCU = { "GSCU", 4,
2155 "Scale factor for U-coord.", (char*)0, (char*)0, 12, 0, (char**)0, 0,
2156 (char**)0, (KmParFlag)0, KmTYPE_REAL,
2157 &_GEANT_GRAPHICS_CONTROL_SCALE_GSCU_type };
2158 static KmParReal _GEANT_GRAPHICS_CONTROL_SCALE_GSCV_type = { (char*)0,
2159 (char*)0, (char*)0, (char*)0, 0 };
2160 static KmParameter _GEANT_GRAPHICS_CONTROL_SCALE_GSCV = { "GSCV", 4,
2161 "Scale factor for V-coord.", (char*)0, (char*)0, 12, 0, (char**)0, 0,
2162 (char**)0, (KmParFlag)0, KmTYPE_REAL,
2163 &_GEANT_GRAPHICS_CONTROL_SCALE_GSCV_type };
2164 static KmParameter *_GEANT_GRAPHICS_CONTROL_SCALE_parameters[] = {
2165 &_GEANT_GRAPHICS_CONTROL_SCALE_GSCU, &_GEANT_GRAPHICS_CONTROL_SCALE_GSCV };
2166 static char *_GEANT_GRAPHICS_CONTROL_SCALE_guidance[] = {
2167 "Change the scale factors GSCU and GSCV in /GCDRAW/." };
2168 static KmCommand _GEANT_GRAPHICS_CONTROL_SCALE = {
2169 &_GEANT_GRAPHICS_CONTROL_COLOR, "/GEANT/GRAPHICS_CONTROL/SCALE", "SCALE", 0,
2170 2, 2, 2, _GEANT_GRAPHICS_CONTROL_SCALE_parameters, 0, 0, gxgcon_,
2171 (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
2172 _GEANT_GRAPHICS_CONTROL_SCALE_guidance, 0, (char**)0, 0, (char**)0, 0,
2173 (char**)0, (char*)0, (int*)0 };
2175 static KmParameter _GEANT_GRAPHICS_CONTROL_SATT_NAME = { "NAME", 4,
2176 "Volume name", "* ", (char*)0, 20, 0, (char**)0, 0, (char**)0,
2177 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
2178 static KmParameter _GEANT_GRAPHICS_CONTROL_SATT_IOPT = { "IOPT", 4,
2179 "Name of the attribute to be set", "DEFA", (char*)0, 20, 0, (char**)0, 0,
2180 (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
2181 static KmParInt _GEANT_GRAPHICS_CONTROL_SATT_IVAL_type = { (char*)0,
2182 (char*)0, (char*)0, (char*)0, 0 };
2183 static KmParameter _GEANT_GRAPHICS_CONTROL_SATT_IVAL = { "IVAL", 4,
2184 "Value to which the attribute is to be set", "10000", (char*)0, 8, 0,
2185 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
2186 &_GEANT_GRAPHICS_CONTROL_SATT_IVAL_type };
2187 static KmParameter *_GEANT_GRAPHICS_CONTROL_SATT_parameters[] = {
2188 &_GEANT_GRAPHICS_CONTROL_SATT_NAME, &_GEANT_GRAPHICS_CONTROL_SATT_IOPT,
2189 &_GEANT_GRAPHICS_CONTROL_SATT_IVAL };
2190 static char *_GEANT_GRAPHICS_CONTROL_SATT_guidance[] = {
2191 " CALL GSATT(name,iopt,ival)", "name='*' stands for all the volumes.",
2192 "iopt can be chosen among the following :",
2193 " 'WORK' 0=volume name is inactive for the tracking",
2194 " 1=volume name is active for the tracking (default)",
2195 " 'SEEN' 0=volume name is invisible",
2196 " 1=volume name is visible (default)",
2197 " -1=volume invisible with all its descendants in the tree",
2198 " -2=volume visible but not its descendants in the tree",
2199 " 'LSTY' line style 1,2,3,... (default=1)",
2200 " LSTY=7 will produce a very precise approximation for",
2201 " revolution bodies.",
2202 " 'LWID' line width -7,...,1,2,3,..7 (default=1)",
2203 " LWID<0 will act as abs(LWID) was set for the volume",
2204 " and for all the levels below it. When SHAD is 'ON', LWID",
2205 " represent the linewidth of the scan lines filling the surfaces",
2206 " (whereas the FILL value represent their number). Therefore",
2207 " tuning this parameter will help to obtain the desired",
2208 " quality/performance ratio.",
2209 " 'COLO' colour code -166,...,1,2,..166 (default=1)",
2211 " n=2=red; n=17+m, m=0,25, increasing luminosity according to\
2213 " n=3=green; n=67+m, m=0,25, increasing luminosity according to\
2215 " n=4=blue; n=117+m, m=0,25, increasing luminosity according to\
2217 " n=5=yellow; n=42+m, m=0,25, increasing luminosity according to\
2219 " n=6=violet; n=142+m, m=0,25, increasing luminosity according to\
2221 " n=7=lightblue; n=92+m, m=0,25, increasing luminosity according to\
2222 'm';", " colour=n*10+m, m=1,2,...9, will produce the same colour",
2223 " as 'n', but with increasing luminosity according to 'm';",
2224 " COLO<0 will act as if abs(COLO) was set for the volume",
2225 " and for all the levels below it.",
2226 " When for a volume the attribute FILL is > 1 (and the",
2227 " option SHAD is on), the ABS of its colour code must be < 8",
2228 " because an automatic shading of its faces will be",
2230 " 'FILL' (1992) fill area -7,...,0,1,...7 (default=0)",
2231 " when option SHAD is 'on' the FILL attribute of any",
2232 " volume can be set different from 0 (normal drawing);",
2233 " if it is set to 1, the faces of such volume will be filled",
2234 " with solid colours; if ABS(FILL) is > 1, then a light",
2235 " source is placed along the observer line, and the faces of",
2236 " such volumes will be painted by colours whose luminosity",
2237 " will depend on the amount of light reflected;",
2238 " if ABS(FILL) = 1, then it is possible to use all the 166",
2239 " colours of the colour table, becouse the automatic shading",
2240 " is not performed;",
2241 " for increasing values of FILL the drawing will be performed",
2242 " with higher and higher resolution improving the quality (the",
2243 " number of scan lines used to fill the faces increases with\
2244 FILL);", " it is possible to set different values of FILL",
2245 " for different volumes, in order to optimize at the same time",
2246 " the performance and the quality of the picture;",
2247 " FILL<0 will act as if abs(FILL) was set for the volume",
2248 " and for all the levels below it.",
2249 " This kind of drawing can be saved in 'picture files'",
2250 " or in view banks.", " 0=drawing without fill area",
2251 " 1=faces filled with solid colours and resolution = 6",
2252 " 2=lowest resolution (very fast)",
2253 " 3=default resolution", " 4=.................",
2254 " 5=.................", " 6=.................",
2255 " 7=max resolution",
2256 " Finally, if a coloured background is desired, the FILL",
2257 " attribute for the first volume of the tree must be set",
2258 " equal to -abs(colo), colo being >0 and <166.",
2259 " 'SET ' set number associated to volume name",
2260 " 'DET ' detector number associated to volume name",
2261 " 'DTYP' detector type (1,2)" };
2262 static KmCommand _GEANT_GRAPHICS_CONTROL_SATT = {
2263 &_GEANT_GRAPHICS_CONTROL_SCALE, "/GEANT/GRAPHICS_CONTROL/SATT", "SATT", 0, 2,
2264 3, 0, _GEANT_GRAPHICS_CONTROL_SATT_parameters, 0, 0, gxgcon_, (IntFunc*)0,
2265 (SUBROUTINE*)0, (pCharFunc*)0, 70, _GEANT_GRAPHICS_CONTROL_SATT_guidance, 0,
2266 (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
2268 static KmParReal _GEANT_GRAPHICS_CONTROL_SSETVA_RVAL_type = { "-10.", "10.",
2270 static KmParameter _GEANT_GRAPHICS_CONTROL_SSETVA_RVAL = { "RVAL", 4,
2271 "Attribute value", "1.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
2272 (KmParFlag)0, KmTYPE_REAL, &_GEANT_GRAPHICS_CONTROL_SSETVA_RVAL_type };
2273 static KmParameter *_GEANT_GRAPHICS_CONTROL_SSETVA_parameters[] = {
2274 &_GEANT_GRAPHICS_CONTROL_SSETVA_RVAL };
2275 static char *_GEANT_GRAPHICS_CONTROL_SSETVA_guidance[] = {
2276 "Set current attribute value." };
2277 static KmCommand _GEANT_GRAPHICS_CONTROL_SSETVA = {
2278 &_GEANT_GRAPHICS_CONTROL_SATT, "/GEANT/GRAPHICS_CONTROL/SSETVA", "SSETVA", 0,
2279 2, 1, 0, _GEANT_GRAPHICS_CONTROL_SSETVA_parameters, 0, 0, gxgcon_,
2280 (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
2281 _GEANT_GRAPHICS_CONTROL_SSETVA_guidance, 0, (char**)0, 0, (char**)0, 0,
2282 (char**)0, (char*)0, (int*)0 };
2284 static KmParameter _GEANT_GRAPHICS_CONTROL_SSETAT_IOPT = { "IOPT", 4,
2285 "Attribute name", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
2286 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
2287 static KmParameter *_GEANT_GRAPHICS_CONTROL_SSETAT_parameters[] = {
2288 &_GEANT_GRAPHICS_CONTROL_SSETAT_IOPT };
2289 static char *_GEANT_GRAPHICS_CONTROL_SSETAT_guidance[] = {
2290 "Set current attribute." };
2291 static KmCommand _GEANT_GRAPHICS_CONTROL_SSETAT = {
2292 &_GEANT_GRAPHICS_CONTROL_SSETVA, "/GEANT/GRAPHICS_CONTROL/SSETAT", "SSETAT",
2293 0, 2, 1, 1, _GEANT_GRAPHICS_CONTROL_SSETAT_parameters, 0, 0, gxgcon_,
2294 (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
2295 _GEANT_GRAPHICS_CONTROL_SSETAT_guidance, 0, (char**)0, 0, (char**)0, 0,
2296 (char**)0, (char*)0, (int*)0 };
2298 static char *_GEANT_GRAPHICS_CONTROL_RESETWK_guidance[] = { "CALL GRESWK",
2299 "It deactivate the previosly activated workstation and reactivate the",
2301 static KmCommand _GEANT_GRAPHICS_CONTROL_RESETWK = {
2302 &_GEANT_GRAPHICS_CONTROL_SSETAT, "/GEANT/GRAPHICS_CONTROL/RESETWK",
2303 "RESETWK", 0, 2, 0, 0, (KmParameter**)0, 0, 0, gxgcon_, (IntFunc*)0,
2304 (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_GRAPHICS_CONTROL_RESETWK_guidance,
2305 0, (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
2307 static char *_GEANT_GRAPHICS_CONTROL_CHANGEWK_guidance[] = { "CALL GCHNWK",
2308 "It open a new workstation (if not already opened) and activate it",
2309 "(deactivating the default one)." };
2310 static KmCommand _GEANT_GRAPHICS_CONTROL_CHANGEWK = {
2311 &_GEANT_GRAPHICS_CONTROL_RESETWK, "/GEANT/GRAPHICS_CONTROL/CHANGEWK",
2312 "CHANGEWK", 0, 2, 0, 0, (KmParameter**)0, 0, 0, gxgcon_, (IntFunc*)0,
2313 (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_GRAPHICS_CONTROL_CHANGEWK_guidance,
2314 0, (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
2316 static char *_GEANT_GRAPHICS_CONTROL_DCLOSE_guidance[] = { " CALL GDCLOS",
2317 "It closes the currently open view bank; it must be called after the",
2318 "end of the drawing to be stored." };
2319 static KmCommand _GEANT_GRAPHICS_CONTROL_DCLOSE = {
2320 &_GEANT_GRAPHICS_CONTROL_CHANGEWK, "/GEANT/GRAPHICS_CONTROL/DCLOSE",
2321 "DCLOSE", 0, 2, 0, 0, (KmParameter**)0, 0, 0, gxgcon_, (IntFunc*)0,
2322 (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_GRAPHICS_CONTROL_DCLOSE_guidance, 0,
2323 (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
2325 static KmParInt _GEANT_GRAPHICS_CONTROL_DELETE_IVIEW_type = { (char*)0,
2326 (char*)0, (char*)0, (char*)0, 0 };
2327 static KmParameter _GEANT_GRAPHICS_CONTROL_DELETE_IVIEW = { "IVIEW", 5,
2328 "View number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
2329 (KmParFlag)0, KmTYPE_INT, &_GEANT_GRAPHICS_CONTROL_DELETE_IVIEW_type };
2330 static KmParameter *_GEANT_GRAPHICS_CONTROL_DELETE_parameters[] = {
2331 &_GEANT_GRAPHICS_CONTROL_DELETE_IVIEW };
2332 static char *_GEANT_GRAPHICS_CONTROL_DELETE_guidance[] = {
2333 " CALL GDELET(iview)", "It deletes a view bank from memory." };
2334 static KmCommand _GEANT_GRAPHICS_CONTROL_DELETE = {
2335 &_GEANT_GRAPHICS_CONTROL_DCLOSE, "/GEANT/GRAPHICS_CONTROL/DELETE", "DELETE",
2336 0, 2, 1, 1, _GEANT_GRAPHICS_CONTROL_DELETE_parameters, 0, 0, gxgcon_,
2337 (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 2,
2338 _GEANT_GRAPHICS_CONTROL_DELETE_guidance, 0, (char**)0, 0, (char**)0, 0,
2339 (char**)0, (char*)0, (int*)0 };
2341 static KmParInt _GEANT_GRAPHICS_CONTROL_DSHOW_IVIEW_type = { (char*)0,
2342 (char*)0, (char*)0, (char*)0, 0 };
2343 static KmParameter _GEANT_GRAPHICS_CONTROL_DSHOW_IVIEW = { "IVIEW", 5,
2344 "View number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
2345 (KmParFlag)0, KmTYPE_INT, &_GEANT_GRAPHICS_CONTROL_DSHOW_IVIEW_type };
2346 static KmParameter *_GEANT_GRAPHICS_CONTROL_DSHOW_parameters[] = {
2347 &_GEANT_GRAPHICS_CONTROL_DSHOW_IVIEW };
2348 static char *_GEANT_GRAPHICS_CONTROL_DSHOW_guidance[] = {
2349 " CALL GDSHOW(iview)",
2350 "It shows on the screen the contents of a view bank. It",
2351 "can be called after a view bank has been closed." };
2352 static KmCommand _GEANT_GRAPHICS_CONTROL_DSHOW = {
2353 &_GEANT_GRAPHICS_CONTROL_DELETE, "/GEANT/GRAPHICS_CONTROL/DSHOW", "DSHOW", 0,
2354 2, 1, 0, _GEANT_GRAPHICS_CONTROL_DSHOW_parameters, 0, 0, gxgcon_,
2355 (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
2356 _GEANT_GRAPHICS_CONTROL_DSHOW_guidance, 0, (char**)0, 0, (char**)0, 0,
2357 (char**)0, (char*)0, (int*)0 };
2359 static KmParInt _GEANT_GRAPHICS_CONTROL_DOPEN_IVIEW_type = { (char*)0,
2360 (char*)0, (char*)0, (char*)0, 0 };
2361 static KmParameter _GEANT_GRAPHICS_CONTROL_DOPEN_IVIEW = { "IVIEW", 5,
2362 "View number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
2363 (KmParFlag)0, KmTYPE_INT, &_GEANT_GRAPHICS_CONTROL_DOPEN_IVIEW_type };
2364 static KmParameter *_GEANT_GRAPHICS_CONTROL_DOPEN_parameters[] = {
2365 &_GEANT_GRAPHICS_CONTROL_DOPEN_IVIEW };
2366 static char *_GEANT_GRAPHICS_CONTROL_DOPEN_guidance[] = {
2367 " CALL GDOPEN(iview)",
2368 "When a drawing is very complex and requires a long time to be",
2369 "executed, it can be useful to store it in a view bank: after a",
2370 "call to DOPEN and the execution of the drawing (nothing will",
2371 "appear on the screen), and after a necessary call to DCLOSE,",
2372 "the contents of the bank can be displayed in a very fast way",
2373 "through a call to DSHOW; therefore, the detector can be easily",
2374 "zoomed many times in different ways. Please note that the pictures",
2375 "with solid colours can now be stored in a view bank or in 'PICTURE FILES'."
2377 static KmCommand _GEANT_GRAPHICS_CONTROL_DOPEN = {
2378 &_GEANT_GRAPHICS_CONTROL_DSHOW, "/GEANT/GRAPHICS_CONTROL/DOPEN", "DOPEN", 0,
2379 2, 1, 1, _GEANT_GRAPHICS_CONTROL_DOPEN_parameters, 0, 0, gxgcon_,
2380 (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 9,
2381 _GEANT_GRAPHICS_CONTROL_DOPEN_guidance, 0, (char**)0, 0, (char**)0, 0,
2382 (char**)0, (char*)0, (int*)0 };
2384 static char *_GEANT_GRAPHICS_CONTROL_guidance[] = {
2385 "Graphics control commands." };
2386 static KmMenu _GEANT_GRAPHICS_CONTROL = { (KmMenu*)0, (KmMenu*)0,
2387 "/GEANT/GRAPHICS_CONTROL", "GRAPHICS_CONTROL", 2,
2388 &_GEANT_GRAPHICS_CONTROL_DOPEN, 1, _GEANT_GRAPHICS_CONTROL_guidance, 0,
2389 (char**)0, 0, (char**)0 };
2391 static KmMenu _GEANT = { (KmMenu*)0, &_GEANT_GRAPHICS_CONTROL, "/GEANT",
2392 "GEANT", 1, (KmCommand*)0, 0, (char**)0, 0, (char**)0, 0, (char**)0 };
2394 klnkmenu( &_GEANT, 950303 );
2399 # define gklist_ gklist
2400 # define gxlist_ gxlist
2404 # define gklist_ GKLIST
2405 # define gxlist_ GXLIST
2409 # pragma linkage(GKLIST,FORTRAN)
2410 # pragma linkage(GXLIST,FORTRAN)
2413 extern void gklist_();
2414 extern void gxlist_();
2419 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_1 = { "LRSAVE_1", 8, "user word",
2420 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2421 KmTYPE_CHAR, (void*)0 };
2422 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_2 = { "LRSAVE_2", 8, "user word",
2423 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2424 KmTYPE_CHAR, (void*)0 };
2425 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_3 = { "LRSAVE_3", 8, "user word",
2426 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2427 KmTYPE_CHAR, (void*)0 };
2428 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_4 = { "LRSAVE_4", 8, "user word",
2429 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2430 KmTYPE_CHAR, (void*)0 };
2431 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_5 = { "LRSAVE_5", 8, "user word",
2432 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2433 KmTYPE_CHAR, (void*)0 };
2434 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_6 = { "LRSAVE_6", 8, "user word",
2435 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2436 KmTYPE_CHAR, (void*)0 };
2437 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_7 = { "LRSAVE_7", 8, "user word",
2438 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2439 KmTYPE_CHAR, (void*)0 };
2440 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_8 = { "LRSAVE_8", 8, "user word",
2441 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2442 KmTYPE_CHAR, (void*)0 };
2443 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_9 = { "LRSAVE_9", 8, "user word",
2444 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2445 KmTYPE_CHAR, (void*)0 };
2446 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_10 = { "LRSAVE_10", 9,
2447 "user word", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
2448 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
2449 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_11 = { "LRSAVE_11", 9,
2450 "user word", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
2451 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
2452 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_12 = { "LRSAVE_12", 9,
2453 "user word", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
2454 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
2455 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_13 = { "LRSAVE_13", 9,
2456 "user word", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
2457 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
2458 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_14 = { "LRSAVE_14", 9,
2459 "user word", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
2460 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
2461 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_15 = { "LRSAVE_15", 9,
2462 "user word", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
2463 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
2464 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_16 = { "LRSAVE_16", 9,
2465 "user word", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
2466 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
2467 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_17 = { "LRSAVE_17", 9,
2468 "user word", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
2469 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
2470 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_18 = { "LRSAVE_18", 9,
2471 "user word", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
2472 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
2473 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_19 = { "LRSAVE_19", 9,
2474 "user word", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
2475 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
2476 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_20 = { "LRSAVE_20", 9,
2477 "user word", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
2478 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
2479 static KmParameter *_GEANT_LISTS_RSAV_parameters[] = {
2480 &_GEANT_LISTS_RSAV_LRSAVE_1, &_GEANT_LISTS_RSAV_LRSAVE_2,
2481 &_GEANT_LISTS_RSAV_LRSAVE_3, &_GEANT_LISTS_RSAV_LRSAVE_4,
2482 &_GEANT_LISTS_RSAV_LRSAVE_5, &_GEANT_LISTS_RSAV_LRSAVE_6,
2483 &_GEANT_LISTS_RSAV_LRSAVE_7, &_GEANT_LISTS_RSAV_LRSAVE_8,
2484 &_GEANT_LISTS_RSAV_LRSAVE_9, &_GEANT_LISTS_RSAV_LRSAVE_10,
2485 &_GEANT_LISTS_RSAV_LRSAVE_11, &_GEANT_LISTS_RSAV_LRSAVE_12,
2486 &_GEANT_LISTS_RSAV_LRSAVE_13, &_GEANT_LISTS_RSAV_LRSAVE_14,
2487 &_GEANT_LISTS_RSAV_LRSAVE_15, &_GEANT_LISTS_RSAV_LRSAVE_16,
2488 &_GEANT_LISTS_RSAV_LRSAVE_17, &_GEANT_LISTS_RSAV_LRSAVE_18,
2489 &_GEANT_LISTS_RSAV_LRSAVE_19, &_GEANT_LISTS_RSAV_LRSAVE_20 };
2490 static char *_GEANT_LISTS_RSAV_guidance[] = {
2491 "The command RSAV is similar to the RSAV data records. It can accept",
2492 "up to 20 4-character words. If the first argument is '.', the number",
2493 "of words is reset to 0 and all the words to four blanks." };
2494 static KmCommand _GEANT_LISTS_RSAV = { (KmCommand*)0, "/GEANT/LISTS/RSAV",
2495 "RSAV", 0, 2, 20, 0, _GEANT_LISTS_RSAV_parameters, 0, 0, gxlist_,
2496 (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_LISTS_RSAV_guidance, 0,
2497 (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
2499 static KmParameter _GEANT_LISTS_RGET_LRGET_1 = { "LRGET_1", 7, "user word",
2500 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2501 KmTYPE_CHAR, (void*)0 };
2502 static KmParameter _GEANT_LISTS_RGET_LRGET_2 = { "LRGET_2", 7, "user word",
2503 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2504 KmTYPE_CHAR, (void*)0 };
2505 static KmParameter _GEANT_LISTS_RGET_LRGET_3 = { "LRGET_3", 7, "user word",
2506 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2507 KmTYPE_CHAR, (void*)0 };
2508 static KmParameter _GEANT_LISTS_RGET_LRGET_4 = { "LRGET_4", 7, "user word",
2509 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2510 KmTYPE_CHAR, (void*)0 };
2511 static KmParameter _GEANT_LISTS_RGET_LRGET_5 = { "LRGET_5", 7, "user word",
2512 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2513 KmTYPE_CHAR, (void*)0 };
2514 static KmParameter _GEANT_LISTS_RGET_LRGET_6 = { "LRGET_6", 7, "user word",
2515 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2516 KmTYPE_CHAR, (void*)0 };
2517 static KmParameter _GEANT_LISTS_RGET_LRGET_7 = { "LRGET_7", 7, "user word",
2518 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2519 KmTYPE_CHAR, (void*)0 };
2520 static KmParameter _GEANT_LISTS_RGET_LRGET_8 = { "LRGET_8", 7, "user word",
2521 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2522 KmTYPE_CHAR, (void*)0 };
2523 static KmParameter _GEANT_LISTS_RGET_LRGET_9 = { "LRGET_9", 7, "user word",
2524 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2525 KmTYPE_CHAR, (void*)0 };
2526 static KmParameter _GEANT_LISTS_RGET_LRGET_10 = { "LRGET_10", 8, "user word",
2527 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2528 KmTYPE_CHAR, (void*)0 };
2529 static KmParameter _GEANT_LISTS_RGET_LRGET_11 = { "LRGET_11", 8, "user word",
2530 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2531 KmTYPE_CHAR, (void*)0 };
2532 static KmParameter _GEANT_LISTS_RGET_LRGET_12 = { "LRGET_12", 8, "user word",
2533 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2534 KmTYPE_CHAR, (void*)0 };
2535 static KmParameter _GEANT_LISTS_RGET_LRGET_13 = { "LRGET_13", 8, "user word",
2536 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2537 KmTYPE_CHAR, (void*)0 };
2538 static KmParameter _GEANT_LISTS_RGET_LRGET_14 = { "LRGET_14", 8, "user word",
2539 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2540 KmTYPE_CHAR, (void*)0 };
2541 static KmParameter _GEANT_LISTS_RGET_LRGET_15 = { "LRGET_15", 8, "user word",
2542 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2543 KmTYPE_CHAR, (void*)0 };
2544 static KmParameter _GEANT_LISTS_RGET_LRGET_16 = { "LRGET_16", 8, "user word",
2545 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2546 KmTYPE_CHAR, (void*)0 };
2547 static KmParameter _GEANT_LISTS_RGET_LRGET_17 = { "LRGET_17", 8, "user word",
2548 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2549 KmTYPE_CHAR, (void*)0 };
2550 static KmParameter _GEANT_LISTS_RGET_LRGET_18 = { "LRGET_18", 8, "user word",
2551 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2552 KmTYPE_CHAR, (void*)0 };
2553 static KmParameter _GEANT_LISTS_RGET_LRGET_19 = { "LRGET_19", 8, "user word",
2554 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2555 KmTYPE_CHAR, (void*)0 };
2556 static KmParameter _GEANT_LISTS_RGET_LRGET_20 = { "LRGET_20", 8, "user word",
2557 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2558 KmTYPE_CHAR, (void*)0 };
2559 static KmParameter *_GEANT_LISTS_RGET_parameters[] = {
2560 &_GEANT_LISTS_RGET_LRGET_1, &_GEANT_LISTS_RGET_LRGET_2,
2561 &_GEANT_LISTS_RGET_LRGET_3, &_GEANT_LISTS_RGET_LRGET_4,
2562 &_GEANT_LISTS_RGET_LRGET_5, &_GEANT_LISTS_RGET_LRGET_6,
2563 &_GEANT_LISTS_RGET_LRGET_7, &_GEANT_LISTS_RGET_LRGET_8,
2564 &_GEANT_LISTS_RGET_LRGET_9, &_GEANT_LISTS_RGET_LRGET_10,
2565 &_GEANT_LISTS_RGET_LRGET_11, &_GEANT_LISTS_RGET_LRGET_12,
2566 &_GEANT_LISTS_RGET_LRGET_13, &_GEANT_LISTS_RGET_LRGET_14,
2567 &_GEANT_LISTS_RGET_LRGET_15, &_GEANT_LISTS_RGET_LRGET_16,
2568 &_GEANT_LISTS_RGET_LRGET_17, &_GEANT_LISTS_RGET_LRGET_18,
2569 &_GEANT_LISTS_RGET_LRGET_19, &_GEANT_LISTS_RGET_LRGET_20 };
2570 static char *_GEANT_LISTS_RGET_guidance[] = {
2571 "The command RGET is similar to the RGET data records. It can accept",
2572 "up to 20 4-character words. If the first argument is '.', the number",
2573 "of words is reset to 0 and all the words to four blanks." };
2574 static KmCommand _GEANT_LISTS_RGET = { &_GEANT_LISTS_RSAV,
2575 "/GEANT/LISTS/RGET", "RGET", 0, 2, 20, 0, _GEANT_LISTS_RGET_parameters, 0, 0,
2576 gxlist_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
2577 _GEANT_LISTS_RGET_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
2578 (char*)0, (int*)0 };
2580 static KmParameter _GEANT_LISTS_STAT_LSTAT_1 = { "LSTAT_1", 7, "user word",
2581 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2582 KmTYPE_CHAR, (void*)0 };
2583 static KmParameter _GEANT_LISTS_STAT_LSTAT_2 = { "LSTAT_2", 7, "user word",
2584 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2585 KmTYPE_CHAR, (void*)0 };
2586 static KmParameter _GEANT_LISTS_STAT_LSTAT_3 = { "LSTAT_3", 7, "user word",
2587 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2588 KmTYPE_CHAR, (void*)0 };
2589 static KmParameter _GEANT_LISTS_STAT_LSTAT_4 = { "LSTAT_4", 7, "user word",
2590 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2591 KmTYPE_CHAR, (void*)0 };
2592 static KmParameter _GEANT_LISTS_STAT_LSTAT_5 = { "LSTAT_5", 7, "user word",
2593 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2594 KmTYPE_CHAR, (void*)0 };
2595 static KmParameter _GEANT_LISTS_STAT_LSTAT_6 = { "LSTAT_6", 7, "user word",
2596 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2597 KmTYPE_CHAR, (void*)0 };
2598 static KmParameter _GEANT_LISTS_STAT_LSTAT_7 = { "LSTAT_7", 7, "user word",
2599 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2600 KmTYPE_CHAR, (void*)0 };
2601 static KmParameter _GEANT_LISTS_STAT_LSTAT_8 = { "LSTAT_8", 7, "user word",
2602 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2603 KmTYPE_CHAR, (void*)0 };
2604 static KmParameter _GEANT_LISTS_STAT_LSTAT_9 = { "LSTAT_9", 7, "user word",
2605 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2606 KmTYPE_CHAR, (void*)0 };
2607 static KmParameter _GEANT_LISTS_STAT_LSTAT_10 = { "LSTAT_10", 8, "user word",
2608 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2609 KmTYPE_CHAR, (void*)0 };
2610 static KmParameter _GEANT_LISTS_STAT_LSTAT_11 = { "LSTAT_11", 8, "user word",
2611 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2612 KmTYPE_CHAR, (void*)0 };
2613 static KmParameter _GEANT_LISTS_STAT_LSTAT_12 = { "LSTAT_12", 8, "user word",
2614 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2615 KmTYPE_CHAR, (void*)0 };
2616 static KmParameter _GEANT_LISTS_STAT_LSTAT_13 = { "LSTAT_13", 8, "user word",
2617 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2618 KmTYPE_CHAR, (void*)0 };
2619 static KmParameter _GEANT_LISTS_STAT_LSTAT_14 = { "LSTAT_14", 8, "user word",
2620 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2621 KmTYPE_CHAR, (void*)0 };
2622 static KmParameter _GEANT_LISTS_STAT_LSTAT_15 = { "LSTAT_15", 8, "user word",
2623 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2624 KmTYPE_CHAR, (void*)0 };
2625 static KmParameter _GEANT_LISTS_STAT_LSTAT_16 = { "LSTAT_16", 8, "user word",
2626 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2627 KmTYPE_CHAR, (void*)0 };
2628 static KmParameter _GEANT_LISTS_STAT_LSTAT_17 = { "LSTAT_17", 8, "user word",
2629 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2630 KmTYPE_CHAR, (void*)0 };
2631 static KmParameter _GEANT_LISTS_STAT_LSTAT_18 = { "LSTAT_18", 8, "user word",
2632 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2633 KmTYPE_CHAR, (void*)0 };
2634 static KmParameter _GEANT_LISTS_STAT_LSTAT_19 = { "LSTAT_19", 8, "user word",
2635 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2636 KmTYPE_CHAR, (void*)0 };
2637 static KmParameter _GEANT_LISTS_STAT_LSTAT_20 = { "LSTAT_20", 8, "user word",
2638 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2639 KmTYPE_CHAR, (void*)0 };
2640 static KmParameter *_GEANT_LISTS_STAT_parameters[] = {
2641 &_GEANT_LISTS_STAT_LSTAT_1, &_GEANT_LISTS_STAT_LSTAT_2,
2642 &_GEANT_LISTS_STAT_LSTAT_3, &_GEANT_LISTS_STAT_LSTAT_4,
2643 &_GEANT_LISTS_STAT_LSTAT_5, &_GEANT_LISTS_STAT_LSTAT_6,
2644 &_GEANT_LISTS_STAT_LSTAT_7, &_GEANT_LISTS_STAT_LSTAT_8,
2645 &_GEANT_LISTS_STAT_LSTAT_9, &_GEANT_LISTS_STAT_LSTAT_10,
2646 &_GEANT_LISTS_STAT_LSTAT_11, &_GEANT_LISTS_STAT_LSTAT_12,
2647 &_GEANT_LISTS_STAT_LSTAT_13, &_GEANT_LISTS_STAT_LSTAT_14,
2648 &_GEANT_LISTS_STAT_LSTAT_15, &_GEANT_LISTS_STAT_LSTAT_16,
2649 &_GEANT_LISTS_STAT_LSTAT_17, &_GEANT_LISTS_STAT_LSTAT_18,
2650 &_GEANT_LISTS_STAT_LSTAT_19, &_GEANT_LISTS_STAT_LSTAT_20 };
2651 static char *_GEANT_LISTS_STAT_guidance[] = {
2652 "The command STAT is similar to the STAT data records. It can accept",
2653 "up to 20 4-character words. If the first argument is '.', the number",
2654 "of words is reset to 0 and all the words to four blanks." };
2655 static KmCommand _GEANT_LISTS_STAT = { &_GEANT_LISTS_RGET,
2656 "/GEANT/LISTS/STAT", "STAT", 0, 2, 20, 0, _GEANT_LISTS_STAT_parameters, 0, 0,
2657 gxlist_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
2658 _GEANT_LISTS_STAT_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
2659 (char*)0, (int*)0 };
2661 static KmParameter _GEANT_LISTS_PLOT_LPLOT_1 = { "LPLOT_1", 7, "user word",
2662 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2663 KmTYPE_CHAR, (void*)0 };
2664 static KmParameter _GEANT_LISTS_PLOT_LPLOT_2 = { "LPLOT_2", 7, "user word",
2665 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2666 KmTYPE_CHAR, (void*)0 };
2667 static KmParameter _GEANT_LISTS_PLOT_LPLOT_3 = { "LPLOT_3", 7, "user word",
2668 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2669 KmTYPE_CHAR, (void*)0 };
2670 static KmParameter _GEANT_LISTS_PLOT_LPLOT_4 = { "LPLOT_4", 7, "user word",
2671 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2672 KmTYPE_CHAR, (void*)0 };
2673 static KmParameter _GEANT_LISTS_PLOT_LPLOT_5 = { "LPLOT_5", 7, "user word",
2674 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2675 KmTYPE_CHAR, (void*)0 };
2676 static KmParameter _GEANT_LISTS_PLOT_LPLOT_6 = { "LPLOT_6", 7, "user word",
2677 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2678 KmTYPE_CHAR, (void*)0 };
2679 static KmParameter _GEANT_LISTS_PLOT_LPLOT_7 = { "LPLOT_7", 7, "user word",
2680 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2681 KmTYPE_CHAR, (void*)0 };
2682 static KmParameter _GEANT_LISTS_PLOT_LPLOT_8 = { "LPLOT_8", 7, "user word",
2683 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2684 KmTYPE_CHAR, (void*)0 };
2685 static KmParameter _GEANT_LISTS_PLOT_LPLOT_9 = { "LPLOT_9", 7, "user word",
2686 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2687 KmTYPE_CHAR, (void*)0 };
2688 static KmParameter _GEANT_LISTS_PLOT_LPLOT_10 = { "LPLOT_10", 8, "user word",
2689 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2690 KmTYPE_CHAR, (void*)0 };
2691 static KmParameter _GEANT_LISTS_PLOT_LPLOT_11 = { "LPLOT_11", 8, "user word",
2692 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2693 KmTYPE_CHAR, (void*)0 };
2694 static KmParameter _GEANT_LISTS_PLOT_LPLOT_12 = { "LPLOT_12", 8, "user word",
2695 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2696 KmTYPE_CHAR, (void*)0 };
2697 static KmParameter _GEANT_LISTS_PLOT_LPLOT_13 = { "LPLOT_13", 8, "user word",
2698 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2699 KmTYPE_CHAR, (void*)0 };
2700 static KmParameter _GEANT_LISTS_PLOT_LPLOT_14 = { "LPLOT_14", 8, "user word",
2701 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2702 KmTYPE_CHAR, (void*)0 };
2703 static KmParameter _GEANT_LISTS_PLOT_LPLOT_15 = { "LPLOT_15", 8, "user word",
2704 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2705 KmTYPE_CHAR, (void*)0 };
2706 static KmParameter _GEANT_LISTS_PLOT_LPLOT_16 = { "LPLOT_16", 8, "user word",
2707 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2708 KmTYPE_CHAR, (void*)0 };
2709 static KmParameter _GEANT_LISTS_PLOT_LPLOT_17 = { "LPLOT_17", 8, "user word",
2710 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2711 KmTYPE_CHAR, (void*)0 };
2712 static KmParameter _GEANT_LISTS_PLOT_LPLOT_18 = { "LPLOT_18", 8, "user word",
2713 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2714 KmTYPE_CHAR, (void*)0 };
2715 static KmParameter _GEANT_LISTS_PLOT_LPLOT_19 = { "LPLOT_19", 8, "user word",
2716 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2717 KmTYPE_CHAR, (void*)0 };
2718 static KmParameter _GEANT_LISTS_PLOT_LPLOT_20 = { "LPLOT_20", 8, "user word",
2719 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2720 KmTYPE_CHAR, (void*)0 };
2721 static KmParameter *_GEANT_LISTS_PLOT_parameters[] = {
2722 &_GEANT_LISTS_PLOT_LPLOT_1, &_GEANT_LISTS_PLOT_LPLOT_2,
2723 &_GEANT_LISTS_PLOT_LPLOT_3, &_GEANT_LISTS_PLOT_LPLOT_4,
2724 &_GEANT_LISTS_PLOT_LPLOT_5, &_GEANT_LISTS_PLOT_LPLOT_6,
2725 &_GEANT_LISTS_PLOT_LPLOT_7, &_GEANT_LISTS_PLOT_LPLOT_8,
2726 &_GEANT_LISTS_PLOT_LPLOT_9, &_GEANT_LISTS_PLOT_LPLOT_10,
2727 &_GEANT_LISTS_PLOT_LPLOT_11, &_GEANT_LISTS_PLOT_LPLOT_12,
2728 &_GEANT_LISTS_PLOT_LPLOT_13, &_GEANT_LISTS_PLOT_LPLOT_14,
2729 &_GEANT_LISTS_PLOT_LPLOT_15, &_GEANT_LISTS_PLOT_LPLOT_16,
2730 &_GEANT_LISTS_PLOT_LPLOT_17, &_GEANT_LISTS_PLOT_LPLOT_18,
2731 &_GEANT_LISTS_PLOT_LPLOT_19, &_GEANT_LISTS_PLOT_LPLOT_20 };
2732 static char *_GEANT_LISTS_PLOT_guidance[] = {
2733 "The command PLOT is similar to the PLOT data records. It can accept",
2734 "up to 20 4-character words. If the first argument is '.', the number",
2735 "of words is reset to 0 and all the words to four blanks." };
2736 static KmCommand _GEANT_LISTS_PLOT = { &_GEANT_LISTS_STAT,
2737 "/GEANT/LISTS/PLOT", "PLOT", 0, 2, 20, 0, _GEANT_LISTS_PLOT_parameters, 0, 0,
2738 gxlist_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
2739 _GEANT_LISTS_PLOT_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
2740 (char*)0, (int*)0 };
2742 static KmParameter _GEANT_LISTS_VIEW_LVIEW_1 = { "LVIEW_1", 7, "user word",
2743 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2744 KmTYPE_CHAR, (void*)0 };
2745 static KmParameter _GEANT_LISTS_VIEW_LVIEW_2 = { "LVIEW_2", 7, "user word",
2746 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2747 KmTYPE_CHAR, (void*)0 };
2748 static KmParameter _GEANT_LISTS_VIEW_LVIEW_3 = { "LVIEW_3", 7, "user word",
2749 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2750 KmTYPE_CHAR, (void*)0 };
2751 static KmParameter _GEANT_LISTS_VIEW_LVIEW_4 = { "LVIEW_4", 7, "user word",
2752 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2753 KmTYPE_CHAR, (void*)0 };
2754 static KmParameter _GEANT_LISTS_VIEW_LVIEW_5 = { "LVIEW_5", 7, "user word",
2755 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2756 KmTYPE_CHAR, (void*)0 };
2757 static KmParameter _GEANT_LISTS_VIEW_LVIEW_6 = { "LVIEW_6", 7, "user word",
2758 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2759 KmTYPE_CHAR, (void*)0 };
2760 static KmParameter _GEANT_LISTS_VIEW_LVIEW_7 = { "LVIEW_7", 7, "user word",
2761 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2762 KmTYPE_CHAR, (void*)0 };
2763 static KmParameter _GEANT_LISTS_VIEW_LVIEW_8 = { "LVIEW_8", 7, "user word",
2764 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2765 KmTYPE_CHAR, (void*)0 };
2766 static KmParameter _GEANT_LISTS_VIEW_LVIEW_9 = { "LVIEW_9", 7, "user word",
2767 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2768 KmTYPE_CHAR, (void*)0 };
2769 static KmParameter _GEANT_LISTS_VIEW_LVIEW_10 = { "LVIEW_10", 8, "user word",
2770 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2771 KmTYPE_CHAR, (void*)0 };
2772 static KmParameter _GEANT_LISTS_VIEW_LVIEW_11 = { "LVIEW_11", 8, "user word",
2773 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2774 KmTYPE_CHAR, (void*)0 };
2775 static KmParameter _GEANT_LISTS_VIEW_LVIEW_12 = { "LVIEW_12", 8, "user word",
2776 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2777 KmTYPE_CHAR, (void*)0 };
2778 static KmParameter _GEANT_LISTS_VIEW_LVIEW_13 = { "LVIEW_13", 8, "user word",
2779 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2780 KmTYPE_CHAR, (void*)0 };
2781 static KmParameter _GEANT_LISTS_VIEW_LVIEW_14 = { "LVIEW_14", 8, "user word",
2782 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2783 KmTYPE_CHAR, (void*)0 };
2784 static KmParameter _GEANT_LISTS_VIEW_LVIEW_15 = { "LVIEW_15", 8, "user word",
2785 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2786 KmTYPE_CHAR, (void*)0 };
2787 static KmParameter _GEANT_LISTS_VIEW_LVIEW_16 = { "LVIEW_16", 8, "user word",
2788 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2789 KmTYPE_CHAR, (void*)0 };
2790 static KmParameter _GEANT_LISTS_VIEW_LVIEW_17 = { "LVIEW_17", 8, "user word",
2791 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2792 KmTYPE_CHAR, (void*)0 };
2793 static KmParameter _GEANT_LISTS_VIEW_LVIEW_18 = { "LVIEW_18", 8, "user word",
2794 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2795 KmTYPE_CHAR, (void*)0 };
2796 static KmParameter _GEANT_LISTS_VIEW_LVIEW_19 = { "LVIEW_19", 8, "user word",
2797 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2798 KmTYPE_CHAR, (void*)0 };
2799 static KmParameter _GEANT_LISTS_VIEW_LVIEW_20 = { "LVIEW_20", 8, "user word",
2800 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2801 KmTYPE_CHAR, (void*)0 };
2802 static KmParameter *_GEANT_LISTS_VIEW_parameters[] = {
2803 &_GEANT_LISTS_VIEW_LVIEW_1, &_GEANT_LISTS_VIEW_LVIEW_2,
2804 &_GEANT_LISTS_VIEW_LVIEW_3, &_GEANT_LISTS_VIEW_LVIEW_4,
2805 &_GEANT_LISTS_VIEW_LVIEW_5, &_GEANT_LISTS_VIEW_LVIEW_6,
2806 &_GEANT_LISTS_VIEW_LVIEW_7, &_GEANT_LISTS_VIEW_LVIEW_8,
2807 &_GEANT_LISTS_VIEW_LVIEW_9, &_GEANT_LISTS_VIEW_LVIEW_10,
2808 &_GEANT_LISTS_VIEW_LVIEW_11, &_GEANT_LISTS_VIEW_LVIEW_12,
2809 &_GEANT_LISTS_VIEW_LVIEW_13, &_GEANT_LISTS_VIEW_LVIEW_14,
2810 &_GEANT_LISTS_VIEW_LVIEW_15, &_GEANT_LISTS_VIEW_LVIEW_16,
2811 &_GEANT_LISTS_VIEW_LVIEW_17, &_GEANT_LISTS_VIEW_LVIEW_18,
2812 &_GEANT_LISTS_VIEW_LVIEW_19, &_GEANT_LISTS_VIEW_LVIEW_20 };
2813 static char *_GEANT_LISTS_VIEW_guidance[] = {
2814 "The command VIEW is similar to the VIEW data records. It can accept",
2815 "up to 20 4-character words. If the first argument is '.', the number",
2816 "of words is reset to 0 and all the words to four blanks." };
2817 static KmCommand _GEANT_LISTS_VIEW = { &_GEANT_LISTS_PLOT,
2818 "/GEANT/LISTS/VIEW", "VIEW", 0, 2, 20, 0, _GEANT_LISTS_VIEW_parameters, 0, 0,
2819 gxlist_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
2820 _GEANT_LISTS_VIEW_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
2821 (char*)0, (int*)0 };
2823 static KmParameter _GEANT_LISTS_GEOM_LGEOM_1 = { "LGEOM_1", 7, "user word",
2824 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2825 KmTYPE_CHAR, (void*)0 };
2826 static KmParameter _GEANT_LISTS_GEOM_LGEOM_2 = { "LGEOM_2", 7, "user word",
2827 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2828 KmTYPE_CHAR, (void*)0 };
2829 static KmParameter _GEANT_LISTS_GEOM_LGEOM_3 = { "LGEOM_3", 7, "user word",
2830 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2831 KmTYPE_CHAR, (void*)0 };
2832 static KmParameter _GEANT_LISTS_GEOM_LGEOM_4 = { "LGEOM_4", 7, "user word",
2833 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2834 KmTYPE_CHAR, (void*)0 };
2835 static KmParameter _GEANT_LISTS_GEOM_LGEOM_5 = { "LGEOM_5", 7, "user word",
2836 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2837 KmTYPE_CHAR, (void*)0 };
2838 static KmParameter _GEANT_LISTS_GEOM_LGEOM_6 = { "LGEOM_6", 7, "user word",
2839 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2840 KmTYPE_CHAR, (void*)0 };
2841 static KmParameter _GEANT_LISTS_GEOM_LGEOM_7 = { "LGEOM_7", 7, "user word",
2842 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2843 KmTYPE_CHAR, (void*)0 };
2844 static KmParameter _GEANT_LISTS_GEOM_LGEOM_8 = { "LGEOM_8", 7, "user word",
2845 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2846 KmTYPE_CHAR, (void*)0 };
2847 static KmParameter _GEANT_LISTS_GEOM_LGEOM_9 = { "LGEOM_9", 7, "user word",
2848 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2849 KmTYPE_CHAR, (void*)0 };
2850 static KmParameter _GEANT_LISTS_GEOM_LGEOM_10 = { "LGEOM_10", 8, "user word",
2851 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2852 KmTYPE_CHAR, (void*)0 };
2853 static KmParameter _GEANT_LISTS_GEOM_LGEOM_11 = { "LGEOM_11", 8, "user word",
2854 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2855 KmTYPE_CHAR, (void*)0 };
2856 static KmParameter _GEANT_LISTS_GEOM_LGEOM_12 = { "LGEOM_12", 8, "user word",
2857 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2858 KmTYPE_CHAR, (void*)0 };
2859 static KmParameter _GEANT_LISTS_GEOM_LGEOM_13 = { "LGEOM_13", 8, "user word",
2860 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2861 KmTYPE_CHAR, (void*)0 };
2862 static KmParameter _GEANT_LISTS_GEOM_LGEOM_14 = { "LGEOM_14", 8, "user word",
2863 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2864 KmTYPE_CHAR, (void*)0 };
2865 static KmParameter _GEANT_LISTS_GEOM_LGEOM_15 = { "LGEOM_15", 8, "user word",
2866 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2867 KmTYPE_CHAR, (void*)0 };
2868 static KmParameter _GEANT_LISTS_GEOM_LGEOM_16 = { "LGEOM_16", 8, "user word",
2869 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2870 KmTYPE_CHAR, (void*)0 };
2871 static KmParameter _GEANT_LISTS_GEOM_LGEOM_17 = { "LGEOM_17", 8, "user word",
2872 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2873 KmTYPE_CHAR, (void*)0 };
2874 static KmParameter _GEANT_LISTS_GEOM_LGEOM_18 = { "LGEOM_18", 8, "user word",
2875 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2876 KmTYPE_CHAR, (void*)0 };
2877 static KmParameter _GEANT_LISTS_GEOM_LGEOM_19 = { "LGEOM_19", 8, "user word",
2878 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2879 KmTYPE_CHAR, (void*)0 };
2880 static KmParameter _GEANT_LISTS_GEOM_LGEOM_20 = { "LGEOM_20", 8, "user word",
2881 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2882 KmTYPE_CHAR, (void*)0 };
2883 static KmParameter *_GEANT_LISTS_GEOM_parameters[] = {
2884 &_GEANT_LISTS_GEOM_LGEOM_1, &_GEANT_LISTS_GEOM_LGEOM_2,
2885 &_GEANT_LISTS_GEOM_LGEOM_3, &_GEANT_LISTS_GEOM_LGEOM_4,
2886 &_GEANT_LISTS_GEOM_LGEOM_5, &_GEANT_LISTS_GEOM_LGEOM_6,
2887 &_GEANT_LISTS_GEOM_LGEOM_7, &_GEANT_LISTS_GEOM_LGEOM_8,
2888 &_GEANT_LISTS_GEOM_LGEOM_9, &_GEANT_LISTS_GEOM_LGEOM_10,
2889 &_GEANT_LISTS_GEOM_LGEOM_11, &_GEANT_LISTS_GEOM_LGEOM_12,
2890 &_GEANT_LISTS_GEOM_LGEOM_13, &_GEANT_LISTS_GEOM_LGEOM_14,
2891 &_GEANT_LISTS_GEOM_LGEOM_15, &_GEANT_LISTS_GEOM_LGEOM_16,
2892 &_GEANT_LISTS_GEOM_LGEOM_17, &_GEANT_LISTS_GEOM_LGEOM_18,
2893 &_GEANT_LISTS_GEOM_LGEOM_19, &_GEANT_LISTS_GEOM_LGEOM_20 };
2894 static char *_GEANT_LISTS_GEOM_guidance[] = {
2895 "The command GEOM is similar to the GEOM data records. It can accept",
2896 "up to 20 4-character words. If the first argument is '.', the number",
2897 "of words is reset to 0 and all the words to four blanks." };
2898 static KmCommand _GEANT_LISTS_GEOM = { &_GEANT_LISTS_VIEW,
2899 "/GEANT/LISTS/GEOM", "GEOM", 0, 2, 20, 0, _GEANT_LISTS_GEOM_parameters, 0, 0,
2900 gxlist_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
2901 _GEANT_LISTS_GEOM_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
2902 (char*)0, (int*)0 };
2904 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_1 = { "LPRIN_1", 7, "user word",
2905 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2906 KmTYPE_CHAR, (void*)0 };
2907 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_2 = { "LPRIN_2", 7, "user word",
2908 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2909 KmTYPE_CHAR, (void*)0 };
2910 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_3 = { "LPRIN_3", 7, "user word",
2911 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2912 KmTYPE_CHAR, (void*)0 };
2913 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_4 = { "LPRIN_4", 7, "user word",
2914 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2915 KmTYPE_CHAR, (void*)0 };
2916 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_5 = { "LPRIN_5", 7, "user word",
2917 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2918 KmTYPE_CHAR, (void*)0 };
2919 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_6 = { "LPRIN_6", 7, "user word",
2920 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2921 KmTYPE_CHAR, (void*)0 };
2922 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_7 = { "LPRIN_7", 7, "user word",
2923 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2924 KmTYPE_CHAR, (void*)0 };
2925 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_8 = { "LPRIN_8", 7, "user word",
2926 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2927 KmTYPE_CHAR, (void*)0 };
2928 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_9 = { "LPRIN_9", 7, "user word",
2929 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2930 KmTYPE_CHAR, (void*)0 };
2931 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_10 = { "LPRIN_10", 8, "user word",
2932 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2933 KmTYPE_CHAR, (void*)0 };
2934 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_11 = { "LPRIN_11", 8, "user word",
2935 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2936 KmTYPE_CHAR, (void*)0 };
2937 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_12 = { "LPRIN_12", 8, "user word",
2938 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2939 KmTYPE_CHAR, (void*)0 };
2940 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_13 = { "LPRIN_13", 8, "user word",
2941 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2942 KmTYPE_CHAR, (void*)0 };
2943 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_14 = { "LPRIN_14", 8, "user word",
2944 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2945 KmTYPE_CHAR, (void*)0 };
2946 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_15 = { "LPRIN_15", 8, "user word",
2947 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2948 KmTYPE_CHAR, (void*)0 };
2949 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_16 = { "LPRIN_16", 8, "user word",
2950 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2951 KmTYPE_CHAR, (void*)0 };
2952 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_17 = { "LPRIN_17", 8, "user word",
2953 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2954 KmTYPE_CHAR, (void*)0 };
2955 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_18 = { "LPRIN_18", 8, "user word",
2956 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2957 KmTYPE_CHAR, (void*)0 };
2958 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_19 = { "LPRIN_19", 8, "user word",
2959 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2960 KmTYPE_CHAR, (void*)0 };
2961 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_20 = { "LPRIN_20", 8, "user word",
2962 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2963 KmTYPE_CHAR, (void*)0 };
2964 static KmParameter *_GEANT_LISTS_LPRIN_parameters[] = {
2965 &_GEANT_LISTS_LPRIN_LPRIN_1, &_GEANT_LISTS_LPRIN_LPRIN_2,
2966 &_GEANT_LISTS_LPRIN_LPRIN_3, &_GEANT_LISTS_LPRIN_LPRIN_4,
2967 &_GEANT_LISTS_LPRIN_LPRIN_5, &_GEANT_LISTS_LPRIN_LPRIN_6,
2968 &_GEANT_LISTS_LPRIN_LPRIN_7, &_GEANT_LISTS_LPRIN_LPRIN_8,
2969 &_GEANT_LISTS_LPRIN_LPRIN_9, &_GEANT_LISTS_LPRIN_LPRIN_10,
2970 &_GEANT_LISTS_LPRIN_LPRIN_11, &_GEANT_LISTS_LPRIN_LPRIN_12,
2971 &_GEANT_LISTS_LPRIN_LPRIN_13, &_GEANT_LISTS_LPRIN_LPRIN_14,
2972 &_GEANT_LISTS_LPRIN_LPRIN_15, &_GEANT_LISTS_LPRIN_LPRIN_16,
2973 &_GEANT_LISTS_LPRIN_LPRIN_17, &_GEANT_LISTS_LPRIN_LPRIN_18,
2974 &_GEANT_LISTS_LPRIN_LPRIN_19, &_GEANT_LISTS_LPRIN_LPRIN_20 };
2975 static char *_GEANT_LISTS_LPRIN_guidance[] = {
2976 "The command PRIN is similar to the PRIN data records. It can accept",
2977 "up to 20 4-character words. If the first argument is '.', the number",
2978 "of words is reset to 0 and all the words to four blanks." };
2979 static KmCommand _GEANT_LISTS_LPRIN = { &_GEANT_LISTS_GEOM,
2980 "/GEANT/LISTS/LPRIN", "LPRIN", 0, 2, 20, 0, _GEANT_LISTS_LPRIN_parameters, 0,
2981 0, gxlist_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
2982 _GEANT_LISTS_LPRIN_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
2983 (char*)0, (int*)0 };
2985 static KmParameter _GEANT_LISTS_SETS_LSETS_1 = { "LSETS_1", 7, "user word",
2986 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2987 KmTYPE_CHAR, (void*)0 };
2988 static KmParameter _GEANT_LISTS_SETS_LSETS_2 = { "LSETS_2", 7, "user word",
2989 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2990 KmTYPE_CHAR, (void*)0 };
2991 static KmParameter _GEANT_LISTS_SETS_LSETS_3 = { "LSETS_3", 7, "user word",
2992 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2993 KmTYPE_CHAR, (void*)0 };
2994 static KmParameter _GEANT_LISTS_SETS_LSETS_4 = { "LSETS_4", 7, "user word",
2995 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2996 KmTYPE_CHAR, (void*)0 };
2997 static KmParameter _GEANT_LISTS_SETS_LSETS_5 = { "LSETS_5", 7, "user word",
2998 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2999 KmTYPE_CHAR, (void*)0 };
3000 static KmParameter _GEANT_LISTS_SETS_LSETS_6 = { "LSETS_6", 7, "user word",
3001 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3002 KmTYPE_CHAR, (void*)0 };
3003 static KmParameter _GEANT_LISTS_SETS_LSETS_7 = { "LSETS_7", 7, "user word",
3004 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3005 KmTYPE_CHAR, (void*)0 };
3006 static KmParameter _GEANT_LISTS_SETS_LSETS_8 = { "LSETS_8", 7, "user word",
3007 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3008 KmTYPE_CHAR, (void*)0 };
3009 static KmParameter _GEANT_LISTS_SETS_LSETS_9 = { "LSETS_9", 7, "user word",
3010 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3011 KmTYPE_CHAR, (void*)0 };
3012 static KmParameter _GEANT_LISTS_SETS_LSETS_10 = { "LSETS_10", 8, "user word",
3013 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3014 KmTYPE_CHAR, (void*)0 };
3015 static KmParameter _GEANT_LISTS_SETS_LSETS_11 = { "LSETS_11", 8, "user word",
3016 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3017 KmTYPE_CHAR, (void*)0 };
3018 static KmParameter _GEANT_LISTS_SETS_LSETS_12 = { "LSETS_12", 8, "user word",
3019 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3020 KmTYPE_CHAR, (void*)0 };
3021 static KmParameter _GEANT_LISTS_SETS_LSETS_13 = { "LSETS_13", 8, "user word",
3022 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3023 KmTYPE_CHAR, (void*)0 };
3024 static KmParameter _GEANT_LISTS_SETS_LSETS_14 = { "LSETS_14", 8, "user word",
3025 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3026 KmTYPE_CHAR, (void*)0 };
3027 static KmParameter _GEANT_LISTS_SETS_LSETS_15 = { "LSETS_15", 8, "user word",
3028 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3029 KmTYPE_CHAR, (void*)0 };
3030 static KmParameter _GEANT_LISTS_SETS_LSETS_16 = { "LSETS_16", 8, "user word",
3031 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3032 KmTYPE_CHAR, (void*)0 };
3033 static KmParameter _GEANT_LISTS_SETS_LSETS_17 = { "LSETS_17", 8, "user word",
3034 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3035 KmTYPE_CHAR, (void*)0 };
3036 static KmParameter _GEANT_LISTS_SETS_LSETS_18 = { "LSETS_18", 8, "user word",
3037 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3038 KmTYPE_CHAR, (void*)0 };
3039 static KmParameter _GEANT_LISTS_SETS_LSETS_19 = { "LSETS_19", 8, "user word",
3040 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3041 KmTYPE_CHAR, (void*)0 };
3042 static KmParameter _GEANT_LISTS_SETS_LSETS_20 = { "LSETS_20", 8, "user word",
3043 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3044 KmTYPE_CHAR, (void*)0 };
3045 static KmParameter *_GEANT_LISTS_SETS_parameters[] = {
3046 &_GEANT_LISTS_SETS_LSETS_1, &_GEANT_LISTS_SETS_LSETS_2,
3047 &_GEANT_LISTS_SETS_LSETS_3, &_GEANT_LISTS_SETS_LSETS_4,
3048 &_GEANT_LISTS_SETS_LSETS_5, &_GEANT_LISTS_SETS_LSETS_6,
3049 &_GEANT_LISTS_SETS_LSETS_7, &_GEANT_LISTS_SETS_LSETS_8,
3050 &_GEANT_LISTS_SETS_LSETS_9, &_GEANT_LISTS_SETS_LSETS_10,
3051 &_GEANT_LISTS_SETS_LSETS_11, &_GEANT_LISTS_SETS_LSETS_12,
3052 &_GEANT_LISTS_SETS_LSETS_13, &_GEANT_LISTS_SETS_LSETS_14,
3053 &_GEANT_LISTS_SETS_LSETS_15, &_GEANT_LISTS_SETS_LSETS_16,
3054 &_GEANT_LISTS_SETS_LSETS_17, &_GEANT_LISTS_SETS_LSETS_18,
3055 &_GEANT_LISTS_SETS_LSETS_19, &_GEANT_LISTS_SETS_LSETS_20 };
3056 static char *_GEANT_LISTS_SETS_guidance[] = {
3057 "The command SETS is similar to the SETS data records. It can accept",
3058 "up to 20 4-character words. If the first argument is '.', the number",
3059 "of words is reset to 0 and all the words to four blanks." };
3060 static KmCommand _GEANT_LISTS_SETS = { &_GEANT_LISTS_LPRIN,
3061 "/GEANT/LISTS/SETS", "SETS", 0, 2, 20, 0, _GEANT_LISTS_SETS_parameters, 0, 0,
3062 gxlist_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
3063 _GEANT_LISTS_SETS_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
3064 (char*)0, (int*)0 };
3066 static KmParameter _GEANT_LISTS_SAVE_LSAVE_1 = { "LSAVE_1", 7, "user word",
3067 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3068 KmTYPE_CHAR, (void*)0 };
3069 static KmParameter _GEANT_LISTS_SAVE_LSAVE_2 = { "LSAVE_2", 7, "user word",
3070 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3071 KmTYPE_CHAR, (void*)0 };
3072 static KmParameter _GEANT_LISTS_SAVE_LSAVE_3 = { "LSAVE_3", 7, "user word",
3073 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3074 KmTYPE_CHAR, (void*)0 };
3075 static KmParameter _GEANT_LISTS_SAVE_LSAVE_4 = { "LSAVE_4", 7, "user word",
3076 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3077 KmTYPE_CHAR, (void*)0 };
3078 static KmParameter _GEANT_LISTS_SAVE_LSAVE_5 = { "LSAVE_5", 7, "user word",
3079 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3080 KmTYPE_CHAR, (void*)0 };
3081 static KmParameter _GEANT_LISTS_SAVE_LSAVE_6 = { "LSAVE_6", 7, "user word",
3082 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3083 KmTYPE_CHAR, (void*)0 };
3084 static KmParameter _GEANT_LISTS_SAVE_LSAVE_7 = { "LSAVE_7", 7, "user word",
3085 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3086 KmTYPE_CHAR, (void*)0 };
3087 static KmParameter _GEANT_LISTS_SAVE_LSAVE_8 = { "LSAVE_8", 7, "user word",
3088 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3089 KmTYPE_CHAR, (void*)0 };
3090 static KmParameter _GEANT_LISTS_SAVE_LSAVE_9 = { "LSAVE_9", 7, "user word",
3091 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3092 KmTYPE_CHAR, (void*)0 };
3093 static KmParameter _GEANT_LISTS_SAVE_LSAVE_10 = { "LSAVE_10", 8, "user word",
3094 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3095 KmTYPE_CHAR, (void*)0 };
3096 static KmParameter _GEANT_LISTS_SAVE_LSAVE_11 = { "LSAVE_11", 8, "user word",
3097 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3098 KmTYPE_CHAR, (void*)0 };
3099 static KmParameter _GEANT_LISTS_SAVE_LSAVE_12 = { "LSAVE_12", 8, "user word",
3100 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3101 KmTYPE_CHAR, (void*)0 };
3102 static KmParameter _GEANT_LISTS_SAVE_LSAVE_13 = { "LSAVE_13", 8, "user word",
3103 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3104 KmTYPE_CHAR, (void*)0 };
3105 static KmParameter _GEANT_LISTS_SAVE_LSAVE_14 = { "LSAVE_14", 8, "user word",
3106 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3107 KmTYPE_CHAR, (void*)0 };
3108 static KmParameter _GEANT_LISTS_SAVE_LSAVE_15 = { "LSAVE_15", 8, "user word",
3109 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3110 KmTYPE_CHAR, (void*)0 };
3111 static KmParameter _GEANT_LISTS_SAVE_LSAVE_16 = { "LSAVE_16", 8, "user word",
3112 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3113 KmTYPE_CHAR, (void*)0 };
3114 static KmParameter _GEANT_LISTS_SAVE_LSAVE_17 = { "LSAVE_17", 8, "user word",
3115 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3116 KmTYPE_CHAR, (void*)0 };
3117 static KmParameter _GEANT_LISTS_SAVE_LSAVE_18 = { "LSAVE_18", 8, "user word",
3118 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3119 KmTYPE_CHAR, (void*)0 };
3120 static KmParameter _GEANT_LISTS_SAVE_LSAVE_19 = { "LSAVE_19", 8, "user word",
3121 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3122 KmTYPE_CHAR, (void*)0 };
3123 static KmParameter _GEANT_LISTS_SAVE_LSAVE_20 = { "LSAVE_20", 8, "user word",
3124 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3125 KmTYPE_CHAR, (void*)0 };
3126 static KmParameter *_GEANT_LISTS_SAVE_parameters[] = {
3127 &_GEANT_LISTS_SAVE_LSAVE_1, &_GEANT_LISTS_SAVE_LSAVE_2,
3128 &_GEANT_LISTS_SAVE_LSAVE_3, &_GEANT_LISTS_SAVE_LSAVE_4,
3129 &_GEANT_LISTS_SAVE_LSAVE_5, &_GEANT_LISTS_SAVE_LSAVE_6,
3130 &_GEANT_LISTS_SAVE_LSAVE_7, &_GEANT_LISTS_SAVE_LSAVE_8,
3131 &_GEANT_LISTS_SAVE_LSAVE_9, &_GEANT_LISTS_SAVE_LSAVE_10,
3132 &_GEANT_LISTS_SAVE_LSAVE_11, &_GEANT_LISTS_SAVE_LSAVE_12,
3133 &_GEANT_LISTS_SAVE_LSAVE_13, &_GEANT_LISTS_SAVE_LSAVE_14,
3134 &_GEANT_LISTS_SAVE_LSAVE_15, &_GEANT_LISTS_SAVE_LSAVE_16,
3135 &_GEANT_LISTS_SAVE_LSAVE_17, &_GEANT_LISTS_SAVE_LSAVE_18,
3136 &_GEANT_LISTS_SAVE_LSAVE_19, &_GEANT_LISTS_SAVE_LSAVE_20 };
3137 static char *_GEANT_LISTS_SAVE_guidance[] = {
3138 "The command SAVE is similar to the SAVE data records. It can accept",
3139 "up to 20 4-character words. If the first argument is '.', the number",
3140 "of words is reset to 0 and all the words to four blanks." };
3141 static KmCommand _GEANT_LISTS_SAVE = { &_GEANT_LISTS_SETS,
3142 "/GEANT/LISTS/SAVE", "SAVE", 0, 2, 20, 0, _GEANT_LISTS_SAVE_parameters, 0, 0,
3143 gxlist_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
3144 _GEANT_LISTS_SAVE_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
3145 (char*)0, (int*)0 };
3147 static KmParameter _GEANT_LISTS_GET_LGET_1 = { "LGET_1", 6, "user word",
3148 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3149 KmTYPE_CHAR, (void*)0 };
3150 static KmParameter _GEANT_LISTS_GET_LGET_2 = { "LGET_2", 6, "user word",
3151 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3152 KmTYPE_CHAR, (void*)0 };
3153 static KmParameter _GEANT_LISTS_GET_LGET_3 = { "LGET_3", 6, "user word",
3154 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3155 KmTYPE_CHAR, (void*)0 };
3156 static KmParameter _GEANT_LISTS_GET_LGET_4 = { "LGET_4", 6, "user word",
3157 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3158 KmTYPE_CHAR, (void*)0 };
3159 static KmParameter _GEANT_LISTS_GET_LGET_5 = { "LGET_5", 6, "user word",
3160 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3161 KmTYPE_CHAR, (void*)0 };
3162 static KmParameter _GEANT_LISTS_GET_LGET_6 = { "LGET_6", 6, "user word",
3163 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3164 KmTYPE_CHAR, (void*)0 };
3165 static KmParameter _GEANT_LISTS_GET_LGET_7 = { "LGET_7", 6, "user word",
3166 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3167 KmTYPE_CHAR, (void*)0 };
3168 static KmParameter _GEANT_LISTS_GET_LGET_8 = { "LGET_8", 6, "user word",
3169 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3170 KmTYPE_CHAR, (void*)0 };
3171 static KmParameter _GEANT_LISTS_GET_LGET_9 = { "LGET_9", 6, "user word",
3172 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3173 KmTYPE_CHAR, (void*)0 };
3174 static KmParameter _GEANT_LISTS_GET_LGET_10 = { "LGET_10", 7, "user word",
3175 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3176 KmTYPE_CHAR, (void*)0 };
3177 static KmParameter _GEANT_LISTS_GET_LGET_11 = { "LGET_11", 7, "user word",
3178 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3179 KmTYPE_CHAR, (void*)0 };
3180 static KmParameter _GEANT_LISTS_GET_LGET_12 = { "LGET_12", 7, "user word",
3181 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3182 KmTYPE_CHAR, (void*)0 };
3183 static KmParameter _GEANT_LISTS_GET_LGET_13 = { "LGET_13", 7, "user word",
3184 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3185 KmTYPE_CHAR, (void*)0 };
3186 static KmParameter _GEANT_LISTS_GET_LGET_14 = { "LGET_14", 7, "user word",
3187 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3188 KmTYPE_CHAR, (void*)0 };
3189 static KmParameter _GEANT_LISTS_GET_LGET_15 = { "LGET_15", 7, "user word",
3190 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3191 KmTYPE_CHAR, (void*)0 };
3192 static KmParameter _GEANT_LISTS_GET_LGET_16 = { "LGET_16", 7, "user word",
3193 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3194 KmTYPE_CHAR, (void*)0 };
3195 static KmParameter _GEANT_LISTS_GET_LGET_17 = { "LGET_17", 7, "user word",
3196 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3197 KmTYPE_CHAR, (void*)0 };
3198 static KmParameter _GEANT_LISTS_GET_LGET_18 = { "LGET_18", 7, "user word",
3199 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3200 KmTYPE_CHAR, (void*)0 };
3201 static KmParameter _GEANT_LISTS_GET_LGET_19 = { "LGET_19", 7, "user word",
3202 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3203 KmTYPE_CHAR, (void*)0 };
3204 static KmParameter _GEANT_LISTS_GET_LGET_20 = { "LGET_20", 7, "user word",
3205 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3206 KmTYPE_CHAR, (void*)0 };
3207 static KmParameter *_GEANT_LISTS_GET_parameters[] = {
3208 &_GEANT_LISTS_GET_LGET_1, &_GEANT_LISTS_GET_LGET_2, &_GEANT_LISTS_GET_LGET_3,
3209 &_GEANT_LISTS_GET_LGET_4, &_GEANT_LISTS_GET_LGET_5, &_GEANT_LISTS_GET_LGET_6,
3210 &_GEANT_LISTS_GET_LGET_7, &_GEANT_LISTS_GET_LGET_8, &_GEANT_LISTS_GET_LGET_9,
3211 &_GEANT_LISTS_GET_LGET_10, &_GEANT_LISTS_GET_LGET_11,
3212 &_GEANT_LISTS_GET_LGET_12, &_GEANT_LISTS_GET_LGET_13,
3213 &_GEANT_LISTS_GET_LGET_14, &_GEANT_LISTS_GET_LGET_15,
3214 &_GEANT_LISTS_GET_LGET_16, &_GEANT_LISTS_GET_LGET_17,
3215 &_GEANT_LISTS_GET_LGET_18, &_GEANT_LISTS_GET_LGET_19,
3216 &_GEANT_LISTS_GET_LGET_20 };
3217 static char *_GEANT_LISTS_GET_guidance[] = {
3218 "The command GET is similar to the GET data records. It can accept",
3219 "up to 20 4-character words. If the first argument is '.', the number",
3220 "of words is reset to 0 and all the words to four blanks." };
3221 static KmCommand _GEANT_LISTS_GET = { &_GEANT_LISTS_SAVE, "/GEANT/LISTS/GET",
3222 "GET", 0, 2, 20, 0, _GEANT_LISTS_GET_parameters, 0, 0, gxlist_, (IntFunc*)0,
3223 (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_LISTS_GET_guidance, 0, (char**)0, 0,
3224 (char**)0, 0, (char**)0, (char*)0, (int*)0 };
3226 static KmParameter _GEANT_LISTS_HSTA_LHSTA_1 = { "LHSTA_1", 7, "user word",
3227 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3228 KmTYPE_CHAR, (void*)0 };
3229 static KmParameter _GEANT_LISTS_HSTA_LHSTA_2 = { "LHSTA_2", 7, "user word",
3230 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3231 KmTYPE_CHAR, (void*)0 };
3232 static KmParameter _GEANT_LISTS_HSTA_LHSTA_3 = { "LHSTA_3", 7, "user word",
3233 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3234 KmTYPE_CHAR, (void*)0 };
3235 static KmParameter _GEANT_LISTS_HSTA_LHSTA_4 = { "LHSTA_4", 7, "user word",
3236 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3237 KmTYPE_CHAR, (void*)0 };
3238 static KmParameter _GEANT_LISTS_HSTA_LHSTA_5 = { "LHSTA_5", 7, "user word",
3239 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3240 KmTYPE_CHAR, (void*)0 };
3241 static KmParameter _GEANT_LISTS_HSTA_LHSTA_6 = { "LHSTA_6", 7, "user word",
3242 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3243 KmTYPE_CHAR, (void*)0 };
3244 static KmParameter _GEANT_LISTS_HSTA_LHSTA_7 = { "LHSTA_7", 7, "user word",
3245 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3246 KmTYPE_CHAR, (void*)0 };
3247 static KmParameter _GEANT_LISTS_HSTA_LHSTA_8 = { "LHSTA_8", 7, "user word",
3248 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3249 KmTYPE_CHAR, (void*)0 };
3250 static KmParameter _GEANT_LISTS_HSTA_LHSTA_9 = { "LHSTA_9", 7, "user word",
3251 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3252 KmTYPE_CHAR, (void*)0 };
3253 static KmParameter _GEANT_LISTS_HSTA_LHSTA_10 = { "LHSTA_10", 8, "user word",
3254 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3255 KmTYPE_CHAR, (void*)0 };
3256 static KmParameter _GEANT_LISTS_HSTA_LHSTA_11 = { "LHSTA_11", 8, "user word",
3257 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3258 KmTYPE_CHAR, (void*)0 };
3259 static KmParameter _GEANT_LISTS_HSTA_LHSTA_12 = { "LHSTA_12", 8, "user word",
3260 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3261 KmTYPE_CHAR, (void*)0 };
3262 static KmParameter _GEANT_LISTS_HSTA_LHSTA_13 = { "LHSTA_13", 8, "user word",
3263 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3264 KmTYPE_CHAR, (void*)0 };
3265 static KmParameter _GEANT_LISTS_HSTA_LHSTA_14 = { "LHSTA_14", 8, "user word",
3266 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3267 KmTYPE_CHAR, (void*)0 };
3268 static KmParameter _GEANT_LISTS_HSTA_LHSTA_15 = { "LHSTA_15", 8, "user word",
3269 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3270 KmTYPE_CHAR, (void*)0 };
3271 static KmParameter _GEANT_LISTS_HSTA_LHSTA_16 = { "LHSTA_16", 8, "user word",
3272 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3273 KmTYPE_CHAR, (void*)0 };
3274 static KmParameter _GEANT_LISTS_HSTA_LHSTA_17 = { "LHSTA_17", 8, "user word",
3275 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3276 KmTYPE_CHAR, (void*)0 };
3277 static KmParameter _GEANT_LISTS_HSTA_LHSTA_18 = { "LHSTA_18", 8, "user word",
3278 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3279 KmTYPE_CHAR, (void*)0 };
3280 static KmParameter _GEANT_LISTS_HSTA_LHSTA_19 = { "LHSTA_19", 8, "user word",
3281 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3282 KmTYPE_CHAR, (void*)0 };
3283 static KmParameter _GEANT_LISTS_HSTA_LHSTA_20 = { "LHSTA_20", 8, "user word",
3284 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3285 KmTYPE_CHAR, (void*)0 };
3286 static KmParameter *_GEANT_LISTS_HSTA_parameters[] = {
3287 &_GEANT_LISTS_HSTA_LHSTA_1, &_GEANT_LISTS_HSTA_LHSTA_2,
3288 &_GEANT_LISTS_HSTA_LHSTA_3, &_GEANT_LISTS_HSTA_LHSTA_4,
3289 &_GEANT_LISTS_HSTA_LHSTA_5, &_GEANT_LISTS_HSTA_LHSTA_6,
3290 &_GEANT_LISTS_HSTA_LHSTA_7, &_GEANT_LISTS_HSTA_LHSTA_8,
3291 &_GEANT_LISTS_HSTA_LHSTA_9, &_GEANT_LISTS_HSTA_LHSTA_10,
3292 &_GEANT_LISTS_HSTA_LHSTA_11, &_GEANT_LISTS_HSTA_LHSTA_12,
3293 &_GEANT_LISTS_HSTA_LHSTA_13, &_GEANT_LISTS_HSTA_LHSTA_14,
3294 &_GEANT_LISTS_HSTA_LHSTA_15, &_GEANT_LISTS_HSTA_LHSTA_16,
3295 &_GEANT_LISTS_HSTA_LHSTA_17, &_GEANT_LISTS_HSTA_LHSTA_18,
3296 &_GEANT_LISTS_HSTA_LHSTA_19, &_GEANT_LISTS_HSTA_LHSTA_20 };
3297 static char *_GEANT_LISTS_HSTA_guidance[] = {
3298 "The command HSTA is similar to the HSTA data records. It can accept",
3299 "up to 20 4-character words. If the first argument is '.', the number",
3300 "of words is reset to 0 and all the words to four blanks." };
3301 static KmCommand _GEANT_LISTS_HSTA = { &_GEANT_LISTS_GET, "/GEANT/LISTS/HSTA",
3302 "HSTA", 0, 2, 20, 0, _GEANT_LISTS_HSTA_parameters, 0, 0, gxlist_,
3303 (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_LISTS_HSTA_guidance, 0,
3304 (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
3306 static KmMenu _GEANT_LISTS = { (KmMenu*)0, (KmMenu*)0, "/GEANT/LISTS",
3307 "LISTS", 2, &_GEANT_LISTS_HSTA, 0, (char**)0, 0, (char**)0, 0, (char**)0 };
3309 static KmMenu _GEANT = { (KmMenu*)0, &_GEANT_LISTS, "/GEANT", "GEANT", 1,
3310 (KmCommand*)0, 0, (char**)0, 0, (char**)0, 0, (char**)0 };
3312 klnkmenu( &_GEANT, 950303 );
3317 # define gkgeom_ gkgeom
3318 # define gxgeom_ gxgeom
3322 # define gkgeom_ GKGEOM
3323 # define gxgeom_ GXGEOM
3327 # pragma linkage(GKGEOM,FORTRAN)
3328 # pragma linkage(GXGEOM,FORTRAN)
3331 extern void gkgeom_();
3332 extern void gxgeom_();
3337 static KmParInt _GEANT_GEOMETRY_WEUCLID_LUN_type = { "1", "100", "1",
3339 static KmParameter _GEANT_GEOMETRY_WEUCLID_LUN = { "LUN", 3,
3340 "Logical unit of the file to be written", (char*)0, (char*)0, 4, 0,
3341 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
3342 &_GEANT_GEOMETRY_WEUCLID_LUN_type };
3343 static KmParameter _GEANT_GEOMETRY_WEUCLID_FNAME = { "FNAME", 5,
3344 "Name of the EUCLID file to be written", (char*)0, (char*)0, 20, 0,
3345 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
3346 static KmParameter _GEANT_GEOMETRY_WEUCLID_TOPVOL = { "TOPVOL", 6,
3347 "Volume name of the starting node", (char*)0, (char*)0, 20, 0, (char**)0, 0,
3348 (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
3349 static KmParInt _GEANT_GEOMETRY_WEUCLID_NUMBER_type = { (char*)0, (char*)0,
3350 (char*)0, (char*)0, 0 };
3351 static KmParameter _GEANT_GEOMETRY_WEUCLID_NUMBER = { "NUMBER", 6,
3352 "Copy number of TOPVOL (relevant for GSPOSP)", "1", (char*)0, 8, 0,
3353 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
3354 &_GEANT_GEOMETRY_WEUCLID_NUMBER_type };
3355 static KmParInt _GEANT_GEOMETRY_WEUCLID_NLEVEL_type = { (char*)0, (char*)0,
3356 (char*)0, (char*)0, 0 };
3357 static KmParameter _GEANT_GEOMETRY_WEUCLID_NLEVEL = { "NLEVEL", 6,
3358 "Number of levels in the tree structure", "15", (char*)0, 8, 0, (char**)0, 0,
3359 (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_WEUCLID_NLEVEL_type };
3360 static KmParameter *_GEANT_GEOMETRY_WEUCLID_parameters[] = {
3361 &_GEANT_GEOMETRY_WEUCLID_LUN, &_GEANT_GEOMETRY_WEUCLID_FNAME,
3362 &_GEANT_GEOMETRY_WEUCLID_TOPVOL, &_GEANT_GEOMETRY_WEUCLID_NUMBER,
3363 &_GEANT_GEOMETRY_WEUCLID_NLEVEL };
3364 static char *_GEANT_GEOMETRY_WEUCLID_guidance[] = {
3365 " CALL GWEUCL(LUN,FNAME)",
3366 "Calls the routine to write the current GEANT geometry into an ASCII file",
3367 "in EUCLID compatible format." };
3368 static KmCommand _GEANT_GEOMETRY_WEUCLID = { (KmCommand*)0,
3369 "/GEANT/GEOMETRY/WEUCLID", "WEUCLID", 0, 2, 5, 3,
3370 _GEANT_GEOMETRY_WEUCLID_parameters, 0, 0, gxgeom_, (IntFunc*)0,
3371 (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_GEOMETRY_WEUCLID_guidance, 0,
3372 (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
3374 static KmParInt _GEANT_GEOMETRY_REUCLID_LUN_type = { "1", "100", "1",
3376 static KmParameter _GEANT_GEOMETRY_REUCLID_LUN = { "LUN", 3,
3377 "Logical unit of the file to be read", (char*)0, (char*)0, 4, 0, (char**)0,
3378 0, (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_REUCLID_LUN_type };
3379 static KmParameter _GEANT_GEOMETRY_REUCLID_FNAME = { "FNAME", 5,
3380 "Name of the EUCLID file to be read", (char*)0, (char*)0, 20, 0, (char**)0,
3381 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
3382 static KmParameter *_GEANT_GEOMETRY_REUCLID_parameters[] = {
3383 &_GEANT_GEOMETRY_REUCLID_LUN, &_GEANT_GEOMETRY_REUCLID_FNAME };
3384 static char *_GEANT_GEOMETRY_REUCLID_guidance[] = {
3385 " CALL GREUCL(LUN,FNAME)",
3386 "Calls the routine to read into GEANT a geometry from an ASCII file",
3387 "written by the EUCLID-GEANT interface." };
3388 static KmCommand _GEANT_GEOMETRY_REUCLID = { &_GEANT_GEOMETRY_WEUCLID,
3389 "/GEANT/GEOMETRY/REUCLID", "REUCLID", 0, 2, 2, 2,
3390 _GEANT_GEOMETRY_REUCLID_parameters, 0, 0, gxgeom_, (IntFunc*)0,
3391 (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_GEOMETRY_REUCLID_guidance, 0,
3392 (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
3394 static KmParameter _GEANT_GEOMETRY_CADINT_FNAME = { "FNAME", 5,
3395 "Name of the SET file", "example.set", (char*)0, 20, 0, (char**)0, 0,
3396 (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
3397 static KmParameter _GEANT_GEOMETRY_CADINT_ANAME = { "ANAME", 5,
3398 "Name of the volume", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
3399 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
3400 static KmParInt _GEANT_GEOMETRY_CADINT_NBINS_type = { (char*)0, (char*)0,
3401 (char*)0, (char*)0, 0 };
3402 static KmParameter _GEANT_GEOMETRY_CADINT_NBINS = { "NBINS", 5,
3403 "Number of the instances", "1", (char*)0, 8, 0, (char**)0, 0, (char**)0,
3404 (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_CADINT_NBINS_type };
3405 static KmParInt _GEANT_GEOMETRY_CADINT_LUNIT_type = { (char*)0, (char*)0,
3406 (char*)0, (char*)0, 0 };
3407 static KmParameter _GEANT_GEOMETRY_CADINT_LUNIT = { "LUNIT", 5,
3408 "Logical unit number for SET file", "66", (char*)0, 8, 0, (char**)0, 0,
3409 (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_CADINT_LUNIT_type };
3410 static KmParInt _GEANT_GEOMETRY_CADINT_LUNIT2_type = { (char*)0, (char*)0,
3411 (char*)0, (char*)0, 0 };
3412 static KmParameter _GEANT_GEOMETRY_CADINT_LUNIT2 = { "LUNIT2", 6,
3413 "Logical unit number for material file", "67", (char*)0, 8, 0, (char**)0, 0,
3414 (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_CADINT_LUNIT2_type };
3415 static KmParameter _GEANT_GEOMETRY_CADINT_INST = { "INST", 4,
3416 "Name of your institute", "CERN", (char*)0, 20, 0, (char**)0, 0, (char**)0,
3417 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
3418 static KmParameter _GEANT_GEOMETRY_CADINT_SITE = { "SITE", 4, "Name of site",
3419 "MEYRIN", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3420 KmTYPE_CHAR, (void*)0 };
3421 static KmParameter _GEANT_GEOMETRY_CADINT_DEPT = { "DEPT", 4,
3422 "Name of departement", "CN", (char*)0, 20, 0, (char**)0, 0, (char**)0,
3423 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
3424 static KmParameter _GEANT_GEOMETRY_CADINT_RESP = { "RESP", 4,
3425 "Name of sender", "god_knows_who", (char*)0, 20, 0, (char**)0, 0, (char**)0,
3426 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
3427 static KmParameter *_GEANT_GEOMETRY_CADINT_parameters[] = {
3428 &_GEANT_GEOMETRY_CADINT_FNAME, &_GEANT_GEOMETRY_CADINT_ANAME,
3429 &_GEANT_GEOMETRY_CADINT_NBINS, &_GEANT_GEOMETRY_CADINT_LUNIT,
3430 &_GEANT_GEOMETRY_CADINT_LUNIT2, &_GEANT_GEOMETRY_CADINT_INST,
3431 &_GEANT_GEOMETRY_CADINT_SITE, &_GEANT_GEOMETRY_CADINT_DEPT,
3432 &_GEANT_GEOMETRY_CADINT_RESP };
3433 static char *_GEANT_GEOMETRY_CADINT_guidance[] = {
3434 " CALL GTXSET(fname,aname,nbins,lunit,lunit2,inst,site,dept,resp)",
3435 "This command produces a SET file describing the given volume with",
3436 "the contents currently set visible. (Use the visibility attribute,",
3437 "see SATT SEEN.) The description is given as a flat assembly",
3438 "related to the global coordinate system.",
3439 "The ouput can be read into CAD systems (EUCLID-IS) trough a SET interface.",
3440 "A list of materials of the volumes in the SET file and the GEANT tree",
3441 "is written into a file with the same filename as the SET file,",
3442 "but with extension .mat." };
3443 static KmCommand _GEANT_GEOMETRY_CADINT = { &_GEANT_GEOMETRY_REUCLID,
3444 "/GEANT/GEOMETRY/CADINT", "CADINT", 0, 2, 9, 9,
3445 _GEANT_GEOMETRY_CADINT_parameters, 0, 0, gxgeom_, (IntFunc*)0,
3446 (SUBROUTINE*)0, (pCharFunc*)0, 9, _GEANT_GEOMETRY_CADINT_guidance, 0,
3447 (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
3449 static KmParInt _GEANT_GEOMETRY_EDITV_ISEL_type = { (char*)0, (char*)0,
3450 (char*)0, (char*)0, 0 };
3451 static KmParameter _GEANT_GEOMETRY_EDITV_ISEL = { "ISEL", 4, "Options", "0",
3452 (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
3453 &_GEANT_GEOMETRY_EDITV_ISEL_type };
3454 static KmParameter _GEANT_GEOMETRY_EDITV_NAME = { "NAME", 4, "Volume name",
3455 " ", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
3457 static KmParameter *_GEANT_GEOMETRY_EDITV_parameters[] = {
3458 &_GEANT_GEOMETRY_EDITV_ISEL, &_GEANT_GEOMETRY_EDITV_NAME };
3459 static char *_GEANT_GEOMETRY_EDITV_guidance[] = { " CALL GEDITV(isel,name)",
3460 "When the routine prompts for input parameters that do not need",
3461 "to be changed, type return.",
3462 "ISEL is used to select the editing operation to be performed:",
3463 " ISEL=0, CALL GGCLOS",
3464 " ISEL=1, to modify shape parameters PAR given by GSVOLU",
3465 " ISEL=2, to modify NAME given by GSVOLU",
3466 " ISEL=3, to delete NAME given by GSVOLU",
3467 " ISEL=4, to unlink NAME,NR given by GSPOS/GSDVN/GSDV..",
3468 " ISEL=5, to modify X0,Y0,Z0 of NAME,NR given by GSPOS",
3469 " ISEL=6, to modify IROT of NAME,NR given by GSPOS",
3470 " ISEL=7, to modify NDIV given by GSDVN",
3471 " ISEL=8, to modify IAXIS given by GSDVN" };
3472 static KmCommand _GEANT_GEOMETRY_EDITV = { &_GEANT_GEOMETRY_CADINT,
3473 "/GEANT/GEOMETRY/EDITV", "EDITV", 0, 2, 2, 0,
3474 _GEANT_GEOMETRY_EDITV_parameters, 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0,
3475 (pCharFunc*)0, 13, _GEANT_GEOMETRY_EDITV_guidance, 0, (char**)0, 0,
3476 (char**)0, 0, (char**)0, (char*)0, (int*)0 };
3478 static KmParInt _GEANT_GEOMETRY_PTMED_NUMB_type = { (char*)0, (char*)0,
3479 (char*)0, (char*)0, 0 };
3480 static KmParameter _GEANT_GEOMETRY_PTMED_NUMB = { "NUMB", 4, "Medium ID",
3481 (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
3482 &_GEANT_GEOMETRY_PTMED_NUMB_type };
3483 static KmParameter *_GEANT_GEOMETRY_PTMED_parameters[] = {
3484 &_GEANT_GEOMETRY_PTMED_NUMB };
3485 static char *_GEANT_GEOMETRY_PTMED_guidance[] = { " CALL GPTMED(numb)",
3486 "Print tracking media's specifications." };
3487 static KmCommand _GEANT_GEOMETRY_PTMED = { &_GEANT_GEOMETRY_EDITV,
3488 "/GEANT/GEOMETRY/PTMED", "PTMED", 0, 2, 1, 1,
3489 _GEANT_GEOMETRY_PTMED_parameters, 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0,
3490 (pCharFunc*)0, 2, _GEANT_GEOMETRY_PTMED_guidance, 0, (char**)0, 0, (char**)0,
3491 0, (char**)0, (char*)0, (int*)0 };
3493 static KmParInt _GEANT_GEOMETRY_STMED_NTMED_type = { (char*)0, (char*)0,
3494 (char*)0, (char*)0, 0 };
3495 static KmParameter _GEANT_GEOMETRY_STMED_NTMED = { "NTMED", 5,
3496 "Tracking medium number", "1", (char*)0, 8, 0, (char**)0, 0, (char**)0,
3497 (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_STMED_NTMED_type };
3498 static KmParameter _GEANT_GEOMETRY_STMED_NAME = { "NAME", 4,
3499 "Tracking medium name", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
3500 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
3501 static KmParInt _GEANT_GEOMETRY_STMED_NMAT_type = { (char*)0, (char*)0,
3502 (char*)0, (char*)0, 0 };
3503 static KmParameter _GEANT_GEOMETRY_STMED_NMAT = { "NMAT", 4,
3504 "Material number", "1", (char*)0, 8, 0, (char**)0, 0, (char**)0,
3505 (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_STMED_NMAT_type };
3506 static KmParInt _GEANT_GEOMETRY_STMED_ISVOL_type = { (char*)0, (char*)0,
3507 (char*)0, (char*)0, 0 };
3508 static KmParameter _GEANT_GEOMETRY_STMED_ISVOL = { "ISVOL", 5,
3509 "Sensitive volume flag", "0", (char*)0, 8, 0, (char**)0, 0, (char**)0,
3510 (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_STMED_ISVOL_type };
3511 static KmParInt _GEANT_GEOMETRY_STMED_IFIELD_type = { (char*)0, (char*)0,
3512 (char*)0, (char*)0, 0 };
3513 static KmParameter _GEANT_GEOMETRY_STMED_IFIELD = { "IFIELD", 6,
3514 "Magnetic field", "0", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3515 KmTYPE_INT, &_GEANT_GEOMETRY_STMED_IFIELD_type };
3516 static KmParReal _GEANT_GEOMETRY_STMED_FIELDM_type = { (char*)0, (char*)0,
3517 (char*)0, (char*)0, 0 };
3518 static KmParameter _GEANT_GEOMETRY_STMED_FIELDM = { "FIELDM", 6,
3519 "Max. field value (Kilogauss)", "0", (char*)0, 12, 0, (char**)0, 0,
3520 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_GEOMETRY_STMED_FIELDM_type };
3521 static KmParReal _GEANT_GEOMETRY_STMED_TMAXFD_type = { (char*)0, (char*)0,
3522 (char*)0, (char*)0, 0 };
3523 static KmParameter _GEANT_GEOMETRY_STMED_TMAXFD = { "TMAXFD", 6,
3524 "Max. angle due to field (deg/step)", "0.01", (char*)0, 12, 0, (char**)0, 0,
3525 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_GEOMETRY_STMED_TMAXFD_type };
3526 static KmParReal _GEANT_GEOMETRY_STMED_STEMAX_type = { (char*)0, (char*)0,
3527 (char*)0, (char*)0, 0 };
3528 static KmParameter _GEANT_GEOMETRY_STMED_STEMAX = { "STEMAX", 6,
3529 "Max. step allowed", "1.E+10", (char*)0, 12, 0, (char**)0, 0, (char**)0,
3530 (KmParFlag)0, KmTYPE_REAL, &_GEANT_GEOMETRY_STMED_STEMAX_type };
3531 static KmParReal _GEANT_GEOMETRY_STMED_DEEMAX_type = { (char*)0, (char*)0,
3532 (char*)0, (char*)0, 0 };
3533 static KmParameter _GEANT_GEOMETRY_STMED_DEEMAX = { "DEEMAX", 6,
3534 "Max. fraction of energy lost in a step", "0.01", (char*)0, 12, 0, (char**)0,
3535 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_GEOMETRY_STMED_DEEMAX_type };
3536 static KmParReal _GEANT_GEOMETRY_STMED_EPSIL_type = { (char*)0, (char*)0,
3537 (char*)0, (char*)0, 0 };
3538 static KmParameter _GEANT_GEOMETRY_STMED_EPSIL = { "EPSIL", 5,
3539 "Tracking precision (cm)", "0.01", (char*)0, 12, 0, (char**)0, 0, (char**)0,
3540 (KmParFlag)0, KmTYPE_REAL, &_GEANT_GEOMETRY_STMED_EPSIL_type };
3541 static KmParReal _GEANT_GEOMETRY_STMED_STMIN_type = { (char*)0, (char*)0,
3542 (char*)0, (char*)0, 0 };
3543 static KmParameter _GEANT_GEOMETRY_STMED_STMIN = { "STMIN", 5,
3544 "Min. step due to continuos processes (cm)", "0.1", (char*)0, 12, 0,
3545 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
3546 &_GEANT_GEOMETRY_STMED_STMIN_type };
3547 static KmParameter *_GEANT_GEOMETRY_STMED_parameters[] = {
3548 &_GEANT_GEOMETRY_STMED_NTMED, &_GEANT_GEOMETRY_STMED_NAME,
3549 &_GEANT_GEOMETRY_STMED_NMAT, &_GEANT_GEOMETRY_STMED_ISVOL,
3550 &_GEANT_GEOMETRY_STMED_IFIELD, &_GEANT_GEOMETRY_STMED_FIELDM,
3551 &_GEANT_GEOMETRY_STMED_TMAXFD, &_GEANT_GEOMETRY_STMED_STEMAX,
3552 &_GEANT_GEOMETRY_STMED_DEEMAX, &_GEANT_GEOMETRY_STMED_EPSIL,
3553 &_GEANT_GEOMETRY_STMED_STMIN };
3554 static char *_GEANT_GEOMETRY_STMED_guidance[] = {
3555 " CALL GSTMED(ntmed,name,nmat,isvol,ifield,fieldm,tmaxfd,",
3556 " + stemax,deemax,epsil,stmin,0,0)",
3557 "IFIELD = 0 if no magnetic field; IFIELD = -1 if user decision in GUSWIM;",
3558 "IFIELD = 1 if tracking performed with GRKUTA; IFIELD = 2 if tracking",
3559 "performed with GHELIX; IFIELD = 3 if tracking performed with GHELX3." };
3560 static KmCommand _GEANT_GEOMETRY_STMED = { &_GEANT_GEOMETRY_PTMED,
3561 "/GEANT/GEOMETRY/STMED", "STMED", 0, 2, 11, 11,
3562 _GEANT_GEOMETRY_STMED_parameters, 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0,
3563 (pCharFunc*)0, 5, _GEANT_GEOMETRY_STMED_guidance, 0, (char**)0, 0, (char**)0,
3564 0, (char**)0, (char*)0, (int*)0 };
3566 static KmParInt _GEANT_GEOMETRY_PROTM_NUMB_type = { (char*)0, (char*)0,
3567 (char*)0, (char*)0, 0 };
3568 static KmParameter _GEANT_GEOMETRY_PROTM_NUMB = { "NUMB", 4, "Matrix ID",
3569 (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
3570 &_GEANT_GEOMETRY_PROTM_NUMB_type };
3571 static KmParameter *_GEANT_GEOMETRY_PROTM_parameters[] = {
3572 &_GEANT_GEOMETRY_PROTM_NUMB };
3573 static char *_GEANT_GEOMETRY_PROTM_guidance[] = { " CALL GPROTM(numb)",
3574 "Print matrixes' specifications." };
3575 static KmCommand _GEANT_GEOMETRY_PROTM = { &_GEANT_GEOMETRY_STMED,
3576 "/GEANT/GEOMETRY/PROTM", "PROTM", 0, 2, 1, 1,
3577 _GEANT_GEOMETRY_PROTM_parameters, 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0,
3578 (pCharFunc*)0, 2, _GEANT_GEOMETRY_PROTM_guidance, 0, (char**)0, 0, (char**)0,
3579 0, (char**)0, (char*)0, (int*)0 };
3581 static KmParInt _GEANT_GEOMETRY_SROTM_IROT_type = { (char*)0, (char*)0,
3582 (char*)0, (char*)0, 0 };
3583 static KmParameter _GEANT_GEOMETRY_SROTM_IROT = { "IROT", 4,
3584 "Rotation matrix number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
3585 (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_SROTM_IROT_type };
3586 static KmParReal _GEANT_GEOMETRY_SROTM_THETA1_type = { "0.", "180.", "0.",
3588 static KmParameter _GEANT_GEOMETRY_SROTM_THETA1 = { "THETA1", 6,
3589 "Polar angle for axis I", "0.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
3590 (KmParFlag)0, KmTYPE_REAL, &_GEANT_GEOMETRY_SROTM_THETA1_type };
3591 static KmParReal _GEANT_GEOMETRY_SROTM_PHI1_type = { "0.", "360.", "0.",
3593 static KmParameter _GEANT_GEOMETRY_SROTM_PHI1 = { "PHI1", 4,
3594 "Azimuthal angle for axis I", "0.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
3595 (KmParFlag)0, KmTYPE_REAL, &_GEANT_GEOMETRY_SROTM_PHI1_type };
3596 static KmParReal _GEANT_GEOMETRY_SROTM_THETA2_type = { "0.", "180.", "0.",
3598 static KmParameter _GEANT_GEOMETRY_SROTM_THETA2 = { "THETA2", 6,
3599 "Polar angle for axis II", "0.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
3600 (KmParFlag)0, KmTYPE_REAL, &_GEANT_GEOMETRY_SROTM_THETA2_type };
3601 static KmParReal _GEANT_GEOMETRY_SROTM_PHI2_type = { "0.", "360.", "0.",
3603 static KmParameter _GEANT_GEOMETRY_SROTM_PHI2 = { "PHI2", 4,
3604 "Azimuthal angle for axis II", "0.", (char*)0, 12, 0, (char**)0, 0,
3605 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_GEOMETRY_SROTM_PHI2_type };
3606 static KmParReal _GEANT_GEOMETRY_SROTM_THETA3_type = { "0.", "180.", "0.",
3608 static KmParameter _GEANT_GEOMETRY_SROTM_THETA3 = { "THETA3", 6,
3609 "Polar angle for axis III", "0.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
3610 (KmParFlag)0, KmTYPE_REAL, &_GEANT_GEOMETRY_SROTM_THETA3_type };
3611 static KmParReal _GEANT_GEOMETRY_SROTM_PHI3_type = { "0.", "360.", "0.",
3613 static KmParameter _GEANT_GEOMETRY_SROTM_PHI3 = { "PHI3", 4,
3614 "Azimuthal angle for axis III", "0.", (char*)0, 12, 0, (char**)0, 0,
3615 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_GEOMETRY_SROTM_PHI3_type };
3616 static KmParameter *_GEANT_GEOMETRY_SROTM_parameters[] = {
3617 &_GEANT_GEOMETRY_SROTM_IROT, &_GEANT_GEOMETRY_SROTM_THETA1,
3618 &_GEANT_GEOMETRY_SROTM_PHI1, &_GEANT_GEOMETRY_SROTM_THETA2,
3619 &_GEANT_GEOMETRY_SROTM_PHI2, &_GEANT_GEOMETRY_SROTM_THETA3,
3620 &_GEANT_GEOMETRY_SROTM_PHI3 };
3621 static char *_GEANT_GEOMETRY_SROTM_guidance[] = {
3622 " CALL GSROTM(irot,theta1,phi1,theta2,phi2,theta3,phi3)",
3623 "It defines the rotation matrix number IROT." };
3624 static KmCommand _GEANT_GEOMETRY_SROTM = { &_GEANT_GEOMETRY_PROTM,
3625 "/GEANT/GEOMETRY/SROTM", "SROTM", 0, 2, 7, 7,
3626 _GEANT_GEOMETRY_SROTM_parameters, 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0,
3627 (pCharFunc*)0, 2, _GEANT_GEOMETRY_SROTM_guidance, 0, (char**)0, 0, (char**)0,
3628 0, (char**)0, (char*)0, (int*)0 };
3630 static KmParInt _GEANT_GEOMETRY_PVOLU_NUMB_type = { (char*)0, (char*)0,
3631 (char*)0, (char*)0, 0 };
3632 static KmParameter _GEANT_GEOMETRY_PVOLU_NUMB = { "NUMB", 4, "Volume ID",
3633 (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
3634 &_GEANT_GEOMETRY_PVOLU_NUMB_type };
3635 static KmParameter *_GEANT_GEOMETRY_PVOLU_parameters[] = {
3636 &_GEANT_GEOMETRY_PVOLU_NUMB };
3637 static char *_GEANT_GEOMETRY_PVOLU_guidance[] = { " CALL GPVOLU(numb)",
3638 "Prints volumes' specifications." };
3639 static KmCommand _GEANT_GEOMETRY_PVOLU = { &_GEANT_GEOMETRY_SROTM,
3640 "/GEANT/GEOMETRY/PVOLU", "PVOLU", 0, 2, 1, 1,
3641 _GEANT_GEOMETRY_PVOLU_parameters, 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0,
3642 (pCharFunc*)0, 2, _GEANT_GEOMETRY_PVOLU_guidance, 0, (char**)0, 0, (char**)0,
3643 0, (char**)0, (char*)0, (int*)0 };
3645 static KmParameter _GEANT_GEOMETRY_SDVN_NAME = { "NAME", 4, "Volume name",
3646 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3647 KmTYPE_CHAR, (void*)0 };
3648 static KmParameter _GEANT_GEOMETRY_SDVN_MOTHER = { "MOTHER", 6,
3649 "Mother volume name", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
3650 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
3651 static KmParInt _GEANT_GEOMETRY_SDVN_NDIV_type = { (char*)0, (char*)0,
3652 (char*)0, (char*)0, 0 };
3653 static KmParameter _GEANT_GEOMETRY_SDVN_NDIV = { "NDIV", 4,
3654 "Number of divisions", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
3655 (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_SDVN_NDIV_type };
3656 static char *_GEANT_GEOMETRY_SDVN_CAXIS_range[] = { "X", "Y", "Z", "1", "2",
3658 static char *_GEANT_GEOMETRY_SDVN_CAXIS_text[] = { (char*)0, (char*)0,
3659 (char*)0, (char*)0, (char*)0, (char*)0 };
3660 static KmParOption _GEANT_GEOMETRY_SDVN_CAXIS_type = {
3661 _GEANT_GEOMETRY_SDVN_CAXIS_text, (int*)0, (int*)0 };
3662 static KmParameter _GEANT_GEOMETRY_SDVN_CAXIS = { "CAXIS", 5, "Axis value",
3663 (char*)0, (char*)0, 8, 6, _GEANT_GEOMETRY_SDVN_CAXIS_range, 6,
3664 _GEANT_GEOMETRY_SDVN_CAXIS_range, (KmParFlag)0, KmTYPE_OPTION,
3665 &_GEANT_GEOMETRY_SDVN_CAXIS_type };
3666 static KmParameter *_GEANT_GEOMETRY_SDVN_parameters[] = {
3667 &_GEANT_GEOMETRY_SDVN_NAME, &_GEANT_GEOMETRY_SDVN_MOTHER,
3668 &_GEANT_GEOMETRY_SDVN_NDIV, &_GEANT_GEOMETRY_SDVN_CAXIS };
3669 static char *_GEANT_GEOMETRY_SDVN_guidance[] = {
3670 " CALL GSDVN(name,mother,ndiv,iaxis)",
3671 "X,Y,Z of CAXIS will be translated to 1,2,3 for IAXIS.",
3672 "It divides a previously defined volume." };
3673 static KmCommand _GEANT_GEOMETRY_SDVN = { &_GEANT_GEOMETRY_PVOLU,
3674 "/GEANT/GEOMETRY/SDVN", "SDVN", 0, 2, 4, 4, _GEANT_GEOMETRY_SDVN_parameters,
3675 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
3676 _GEANT_GEOMETRY_SDVN_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
3677 (char*)0, (int*)0 };
3679 static KmParameter _GEANT_GEOMETRY_SPOS_NAME = { "NAME", 4, "Volume name",
3680 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3681 KmTYPE_CHAR, (void*)0 };
3682 static KmParInt _GEANT_GEOMETRY_SPOS_NUMBER_type = { (char*)0, (char*)0,
3683 (char*)0, (char*)0, 0 };
3684 static KmParameter _GEANT_GEOMETRY_SPOS_NUMBER = { "NUMBER", 6,
3685 "Copy number of the volume", (char*)0, (char*)0, 8, 0, (char**)0, 0,
3686 (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_SPOS_NUMBER_type };
3687 static KmParameter _GEANT_GEOMETRY_SPOS_MOTHER = { "MOTHER", 6,
3688 "Mother volume name", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
3689 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
3690 static KmParReal _GEANT_GEOMETRY_SPOS_X0_type = { (char*)0, (char*)0,
3691 (char*)0, (char*)0, 0 };
3692 static KmParameter _GEANT_GEOMETRY_SPOS_X0 = { "X0", 2,
3693 "X coord. of the volume in mother ref. sys.", (char*)0, (char*)0, 12, 0,
3694 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
3695 &_GEANT_GEOMETRY_SPOS_X0_type };
3696 static KmParReal _GEANT_GEOMETRY_SPOS_Y0_type = { (char*)0, (char*)0,
3697 (char*)0, (char*)0, 0 };
3698 static KmParameter _GEANT_GEOMETRY_SPOS_Y0 = { "Y0", 2,
3699 "Y coord. of the volume in mother ref. sys.", (char*)0, (char*)0, 12, 0,
3700 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
3701 &_GEANT_GEOMETRY_SPOS_Y0_type };
3702 static KmParReal _GEANT_GEOMETRY_SPOS_Z0_type = { (char*)0, (char*)0,
3703 (char*)0, (char*)0, 0 };
3704 static KmParameter _GEANT_GEOMETRY_SPOS_Z0 = { "Z0", 2,
3705 "Z coord. of the volume in mother ref. sys.", (char*)0, (char*)0, 12, 0,
3706 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
3707 &_GEANT_GEOMETRY_SPOS_Z0_type };
3708 static KmParInt _GEANT_GEOMETRY_SPOS_IROT_type = { (char*)0, (char*)0,
3709 (char*)0, (char*)0, 0 };
3710 static KmParameter _GEANT_GEOMETRY_SPOS_IROT = { "IROT", 4,
3711 "Rotation matrix number w.r.t. mother ref. sys.", (char*)0, (char*)0, 8, 0,
3712 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
3713 &_GEANT_GEOMETRY_SPOS_IROT_type };
3714 static KmParameter _GEANT_GEOMETRY_SPOS_ONLY = { "ONLY", 4, "ONLY/MANY flag",
3715 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3716 KmTYPE_CHAR, (void*)0 };
3717 static KmParameter *_GEANT_GEOMETRY_SPOS_parameters[] = {
3718 &_GEANT_GEOMETRY_SPOS_NAME, &_GEANT_GEOMETRY_SPOS_NUMBER,
3719 &_GEANT_GEOMETRY_SPOS_MOTHER, &_GEANT_GEOMETRY_SPOS_X0,
3720 &_GEANT_GEOMETRY_SPOS_Y0, &_GEANT_GEOMETRY_SPOS_Z0,
3721 &_GEANT_GEOMETRY_SPOS_IROT, &_GEANT_GEOMETRY_SPOS_ONLY };
3722 static char *_GEANT_GEOMETRY_SPOS_guidance[] = {
3723 " CALL GSPOS(name,number,mother,x0,y0,z0,irot,only)",
3724 "It positions a previously defined volume in the mother." };
3725 static KmCommand _GEANT_GEOMETRY_SPOS = { &_GEANT_GEOMETRY_SDVN,
3726 "/GEANT/GEOMETRY/SPOS", "SPOS", 0, 2, 8, 8, _GEANT_GEOMETRY_SPOS_parameters,
3727 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 2,
3728 _GEANT_GEOMETRY_SPOS_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
3729 (char*)0, (int*)0 };
3731 static KmParameter _GEANT_GEOMETRY_SVOLU_NAME = { "NAME", 4, "Volume name",
3732 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3733 KmTYPE_CHAR, (void*)0 };
3734 static KmParameter _GEANT_GEOMETRY_SVOLU_SHAPE = { "SHAPE", 5, "Volume type",
3735 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3736 KmTYPE_CHAR, (void*)0 };
3737 static KmParInt _GEANT_GEOMETRY_SVOLU_NUMED_type = { (char*)0, (char*)0,
3738 (char*)0, (char*)0, 0 };
3739 static KmParameter _GEANT_GEOMETRY_SVOLU_NUMED = { "NUMED", 5,
3740 "Tracking medium number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
3741 (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_SVOLU_NUMED_type };
3742 static KmParInt _GEANT_GEOMETRY_SVOLU_NPAR_type = { (char*)0, (char*)0,
3743 (char*)0, (char*)0, 0 };
3744 static KmParameter _GEANT_GEOMETRY_SVOLU_NPAR = { "NPAR", 4,
3745 "Number of shape parameters", (char*)0, (char*)0, 8, 0, (char**)0, 0,
3746 (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_SVOLU_NPAR_type };
3747 static KmParameter _GEANT_GEOMETRY_SVOLU_PAR = { "PAR", 3,
3748 "Vector containing shape parameters", (char*)0, (char*)0, 20, 0, (char**)0,
3749 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
3750 static KmParameter *_GEANT_GEOMETRY_SVOLU_parameters[] = {
3751 &_GEANT_GEOMETRY_SVOLU_NAME, &_GEANT_GEOMETRY_SVOLU_SHAPE,
3752 &_GEANT_GEOMETRY_SVOLU_NUMED, &_GEANT_GEOMETRY_SVOLU_NPAR,
3753 &_GEANT_GEOMETRY_SVOLU_PAR };
3754 static char *_GEANT_GEOMETRY_SVOLU_guidance[] = {
3755 " CALL GSVOLU(name,shape,numed,par,npar,ivolu)",
3756 "where par is a KUIP vector.",
3757 "It creates a new volume in the JVOLUM data structure." };
3758 static KmCommand _GEANT_GEOMETRY_SVOLU = { &_GEANT_GEOMETRY_SPOS,
3759 "/GEANT/GEOMETRY/SVOLU", "SVOLU", 0, 2, 5, 5,
3760 _GEANT_GEOMETRY_SVOLU_parameters, 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0,
3761 (pCharFunc*)0, 3, _GEANT_GEOMETRY_SVOLU_guidance, 0, (char**)0, 0, (char**)0,
3762 0, (char**)0, (char*)0, (int*)0 };
3764 static char *_GEANT_GEOMETRY_OPTI_IOPTI_range[] = { "-1", "2" };
3765 static KmParInt _GEANT_GEOMETRY_OPTI_IOPTI_type = { (char*)0, (char*)0,
3766 (char*)0, (char*)0, 0 };
3767 static KmParameter _GEANT_GEOMETRY_OPTI_IOPTI = { "IOPTI", 5,
3768 "GSORD optimisation level", "0", (char*)0, 8, 2,
3769 _GEANT_GEOMETRY_OPTI_IOPTI_range, 2, _GEANT_GEOMETRY_OPTI_IOPTI_range,
3770 (KmParFlag)2, KmTYPE_INT, &_GEANT_GEOMETRY_OPTI_IOPTI_type };
3771 static KmParameter *_GEANT_GEOMETRY_OPTI_parameters[] = {
3772 &_GEANT_GEOMETRY_OPTI_IOPTI };
3773 static char *_GEANT_GEOMETRY_OPTI_guidance[] = {
3774 "This flag controls the tracking optimisation performed via the",
3775 "GSORD routine:", " 1 no optimisation at all; GSORD calls disabled;",
3776 " 0 no optimisation; only user calls to GSORD kept;",
3777 " 1 all non-GSORDered volumes are ordered along the best axis;",
3778 " 2 all volumes are ordered along the best axis." };
3779 static KmCommand _GEANT_GEOMETRY_OPTI = { &_GEANT_GEOMETRY_SVOLU,
3780 "/GEANT/GEOMETRY/OPTI", "OPTI", 0, 2, 1, 1, _GEANT_GEOMETRY_OPTI_parameters,
3781 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 6,
3782 _GEANT_GEOMETRY_OPTI_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
3783 (char*)0, (int*)0 };
3785 static KmParameter _GEANT_CREATE_SPARA_NAME = { "NAME", 4, "Volume name",
3786 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3787 KmTYPE_CHAR, (void*)0 };
3788 static KmParInt _GEANT_CREATE_SPARA_NUMED_type = { (char*)0, (char*)0,
3789 (char*)0, (char*)0, 0 };
3790 static KmParameter _GEANT_CREATE_SPARA_NUMED = { "NUMED", 5,
3791 "Tracking medium number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
3792 (KmParFlag)0, KmTYPE_INT, &_GEANT_CREATE_SPARA_NUMED_type };
3793 static KmParReal _GEANT_CREATE_SPARA_HALFX_type = { (char*)0, (char*)0,
3794 (char*)0, (char*)0, 0 };
3795 static KmParameter _GEANT_CREATE_SPARA_HALFX = { "HALFX", 5, "Half X length",
3796 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3797 KmTYPE_REAL, &_GEANT_CREATE_SPARA_HALFX_type };
3798 static KmParReal _GEANT_CREATE_SPARA_HALFY_type = { (char*)0, (char*)0,
3799 (char*)0, (char*)0, 0 };
3800 static KmParameter _GEANT_CREATE_SPARA_HALFY = { "HALFY", 5, "Half Y length",
3801 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3802 KmTYPE_REAL, &_GEANT_CREATE_SPARA_HALFY_type };
3803 static KmParReal _GEANT_CREATE_SPARA_HALFZ_type = { (char*)0, (char*)0,
3804 (char*)0, (char*)0, 0 };
3805 static KmParameter _GEANT_CREATE_SPARA_HALFZ = { "HALFZ", 5, "Half Z length",
3806 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3807 KmTYPE_REAL, &_GEANT_CREATE_SPARA_HALFZ_type };
3808 static KmParReal _GEANT_CREATE_SPARA_AXIS_type = { "0.", "360.", "0.",
3810 static KmParameter _GEANT_CREATE_SPARA_AXIS = { "AXIS", 4,
3811 "Angle of Y mid-faces segment to Y axis", (char*)0, (char*)0, 12, 0,
3812 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
3813 &_GEANT_CREATE_SPARA_AXIS_type };
3814 static KmParReal _GEANT_CREATE_SPARA_PHI_type = { "0.", "360.", "0.",
3816 static KmParameter _GEANT_CREATE_SPARA_PHI = { "PHI", 3,
3817 "PHI angle of Low Z mid-face to High Z mid-face segment", (char*)0, (char*)0,
3818 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
3819 &_GEANT_CREATE_SPARA_PHI_type };
3820 static KmParReal _GEANT_CREATE_SPARA_THETA_type = { "0.", "360.", "0.",
3822 static KmParameter _GEANT_CREATE_SPARA_THETA = { "THETA", 5,
3823 "THETA angle of mid-low-Z-face to mid-high-Z-face segment", (char*)0,
3824 (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
3825 &_GEANT_CREATE_SPARA_THETA_type };
3826 static char *_GEANT_CREATE_SPARA_YESNO_range[] = { "YES", "NO" };
3827 static char *_GEANT_CREATE_SPARA_YESNO_text[] = { (char*)0, (char*)0 };
3828 static KmParOption _GEANT_CREATE_SPARA_YESNO_type = {
3829 _GEANT_CREATE_SPARA_YESNO_text, (int*)0, (int*)0 };
3830 static KmParameter _GEANT_CREATE_SPARA_YESNO = { "YESNO", 5, "GSPOSP option",
3831 "NO", (char*)0, 8, 2, _GEANT_CREATE_SPARA_YESNO_range, 2,
3832 _GEANT_CREATE_SPARA_YESNO_range, (KmParFlag)0, KmTYPE_OPTION,
3833 &_GEANT_CREATE_SPARA_YESNO_type };
3834 static KmParameter *_GEANT_CREATE_SPARA_parameters[] = {
3835 &_GEANT_CREATE_SPARA_NAME, &_GEANT_CREATE_SPARA_NUMED,
3836 &_GEANT_CREATE_SPARA_HALFX, &_GEANT_CREATE_SPARA_HALFY,
3837 &_GEANT_CREATE_SPARA_HALFZ, &_GEANT_CREATE_SPARA_AXIS,
3838 &_GEANT_CREATE_SPARA_PHI, &_GEANT_CREATE_SPARA_THETA,
3839 &_GEANT_CREATE_SPARA_YESNO };
3840 static KmCommand _GEANT_CREATE_SPARA = { (KmCommand*)0,
3841 "/GEANT/CREATE/SPARA", "SPARA", 0, 2, 9, 8, _GEANT_CREATE_SPARA_parameters,
3842 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 0, (char**)0, 0,
3843 (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
3845 static KmParameter _GEANT_CREATE_SSPHE_NAME = { "NAME", 4, "Volume name",
3846 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3847 KmTYPE_CHAR, (void*)0 };
3848 static KmParInt _GEANT_CREATE_SSPHE_NUMED_type = { (char*)0, (char*)0,
3849 (char*)0, (char*)0, 0 };
3850 static KmParameter _GEANT_CREATE_SSPHE_NUMED = { "NUMED", 5,
3851 "Tracking medium number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
3852 (KmParFlag)0, KmTYPE_INT, &_GEANT_CREATE_SSPHE_NUMED_type };
3853 static KmParReal _GEANT_CREATE_SSPHE_INRAD_type = { (char*)0, (char*)0,
3854 (char*)0, (char*)0, 0 };
3855 static KmParameter _GEANT_CREATE_SSPHE_INRAD = { "INRAD", 5, "Inside Radius",
3856 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3857 KmTYPE_REAL, &_GEANT_CREATE_SSPHE_INRAD_type };
3858 static KmParReal _GEANT_CREATE_SSPHE_OUTRAD_type = { (char*)0, (char*)0,
3859 (char*)0, (char*)0, 0 };
3860 static KmParameter _GEANT_CREATE_SSPHE_OUTRAD = { "OUTRAD", 6,
3861 "Outside Radius", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
3862 (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SSPHE_OUTRAD_type };
3863 static KmParReal _GEANT_CREATE_SSPHE_SPHI_type = { "0.", "360.", "0.",
3865 static KmParameter _GEANT_CREATE_SSPHE_SPHI = { "SPHI", 4,
3866 "Start of section PHI", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
3867 (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SSPHE_SPHI_type };
3868 static KmParReal _GEANT_CREATE_SSPHE_EPHI_type = { "0.", "360.", "0.",
3870 static KmParameter _GEANT_CREATE_SSPHE_EPHI = { "EPHI", 4,
3871 "End of section PHI", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
3872 (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SSPHE_EPHI_type };
3873 static KmParReal _GEANT_CREATE_SSPHE_STHETA_type = { (char*)0, (char*)0,
3874 (char*)0, (char*)0, 0 };
3875 static KmParameter _GEANT_CREATE_SSPHE_STHETA = { "STHETA", 6,
3876 "Start of section THETA", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
3877 (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SSPHE_STHETA_type };
3878 static KmParReal _GEANT_CREATE_SSPHE_ETHETA_type = { (char*)0, (char*)0,
3879 (char*)0, (char*)0, 0 };
3880 static KmParameter _GEANT_CREATE_SSPHE_ETHETA = { "ETHETA", 6,
3881 "End of section THETA", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
3882 (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SSPHE_ETHETA_type };
3883 static char *_GEANT_CREATE_SSPHE_YESNO_range[] = { "YES", "NO" };
3884 static char *_GEANT_CREATE_SSPHE_YESNO_text[] = { (char*)0, (char*)0 };
3885 static KmParOption _GEANT_CREATE_SSPHE_YESNO_type = {
3886 _GEANT_CREATE_SSPHE_YESNO_text, (int*)0, (int*)0 };
3887 static KmParameter _GEANT_CREATE_SSPHE_YESNO = { "YESNO", 5, "GSPOSP option",
3888 "NO", (char*)0, 8, 2, _GEANT_CREATE_SSPHE_YESNO_range, 2,
3889 _GEANT_CREATE_SSPHE_YESNO_range, (KmParFlag)0, KmTYPE_OPTION,
3890 &_GEANT_CREATE_SSPHE_YESNO_type };
3891 static KmParameter *_GEANT_CREATE_SSPHE_parameters[] = {
3892 &_GEANT_CREATE_SSPHE_NAME, &_GEANT_CREATE_SSPHE_NUMED,
3893 &_GEANT_CREATE_SSPHE_INRAD, &_GEANT_CREATE_SSPHE_OUTRAD,
3894 &_GEANT_CREATE_SSPHE_SPHI, &_GEANT_CREATE_SSPHE_EPHI,
3895 &_GEANT_CREATE_SSPHE_STHETA, &_GEANT_CREATE_SSPHE_ETHETA,
3896 &_GEANT_CREATE_SSPHE_YESNO };
3897 static KmCommand _GEANT_CREATE_SSPHE = { &_GEANT_CREATE_SPARA,
3898 "/GEANT/CREATE/SSPHE", "SSPHE", 0, 2, 9, 8, _GEANT_CREATE_SSPHE_parameters,
3899 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 0, (char**)0, 0,
3900 (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
3902 static KmParameter _GEANT_CREATE_SCONS_NAME = { "NAME", 4, "Volume name",
3903 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3904 KmTYPE_CHAR, (void*)0 };
3905 static KmParInt _GEANT_CREATE_SCONS_NUMED_type = { (char*)0, (char*)0,
3906 (char*)0, (char*)0, 0 };
3907 static KmParameter _GEANT_CREATE_SCONS_NUMED = { "NUMED", 5,
3908 "Tracking medium number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
3909 (KmParFlag)0, KmTYPE_INT, &_GEANT_CREATE_SCONS_NUMED_type };
3910 static KmParReal _GEANT_CREATE_SCONS_INRDW_type = { (char*)0, (char*)0,
3911 (char*)0, (char*)0, 0 };
3912 static KmParameter _GEANT_CREATE_SCONS_INRDW = { "INRDW", 5,
3913 "Inside Radius in Lower Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
3914 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SCONS_INRDW_type };
3915 static KmParReal _GEANT_CREATE_SCONS_OUTRDW_type = { (char*)0, (char*)0,
3916 (char*)0, (char*)0, 0 };
3917 static KmParameter _GEANT_CREATE_SCONS_OUTRDW = { "OUTRDW", 6,
3918 "Outside Radius in Lower Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
3919 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SCONS_OUTRDW_type };
3920 static KmParReal _GEANT_CREATE_SCONS_INRUP_type = { (char*)0, (char*)0,
3921 (char*)0, (char*)0, 0 };
3922 static KmParameter _GEANT_CREATE_SCONS_INRUP = { "INRUP", 5,
3923 "Inside Radius in Upper Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
3924 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SCONS_INRUP_type };
3925 static KmParReal _GEANT_CREATE_SCONS_OUTRUP_type = { (char*)0, (char*)0,
3926 (char*)0, (char*)0, 0 };
3927 static KmParameter _GEANT_CREATE_SCONS_OUTRUP = { "OUTRUP", 6,
3928 "Outside Radius in Upper Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
3929 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SCONS_OUTRUP_type };
3930 static KmParReal _GEANT_CREATE_SCONS_HALFZ_type = { (char*)0, (char*)0,
3931 (char*)0, (char*)0, 0 };
3932 static KmParameter _GEANT_CREATE_SCONS_HALFZ = { "HALFZ", 5, "Half Z length",
3933 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3934 KmTYPE_REAL, &_GEANT_CREATE_SCONS_HALFZ_type };
3935 static KmParReal _GEANT_CREATE_SCONS_SPHI_type = { "0.", "360.", "0.",
3937 static KmParameter _GEANT_CREATE_SCONS_SPHI = { "SPHI", 4,
3938 "Start of section PHI", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
3939 (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SCONS_SPHI_type };
3940 static KmParReal _GEANT_CREATE_SCONS_EPHI_type = { "0.", "360.", "0.",
3942 static KmParameter _GEANT_CREATE_SCONS_EPHI = { "EPHI", 4,
3943 "End of section PHI", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
3944 (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SCONS_EPHI_type };
3945 static char *_GEANT_CREATE_SCONS_YESNO_range[] = { "YES", "NO" };
3946 static char *_GEANT_CREATE_SCONS_YESNO_text[] = { (char*)0, (char*)0 };
3947 static KmParOption _GEANT_CREATE_SCONS_YESNO_type = {
3948 _GEANT_CREATE_SCONS_YESNO_text, (int*)0, (int*)0 };
3949 static KmParameter _GEANT_CREATE_SCONS_YESNO = { "YESNO", 5, "GSPOSP option",
3950 "NO", (char*)0, 8, 2, _GEANT_CREATE_SCONS_YESNO_range, 2,
3951 _GEANT_CREATE_SCONS_YESNO_range, (KmParFlag)0, KmTYPE_OPTION,
3952 &_GEANT_CREATE_SCONS_YESNO_type };
3953 static KmParameter *_GEANT_CREATE_SCONS_parameters[] = {
3954 &_GEANT_CREATE_SCONS_NAME, &_GEANT_CREATE_SCONS_NUMED,
3955 &_GEANT_CREATE_SCONS_INRDW, &_GEANT_CREATE_SCONS_OUTRDW,
3956 &_GEANT_CREATE_SCONS_INRUP, &_GEANT_CREATE_SCONS_OUTRUP,
3957 &_GEANT_CREATE_SCONS_HALFZ, &_GEANT_CREATE_SCONS_SPHI,
3958 &_GEANT_CREATE_SCONS_EPHI, &_GEANT_CREATE_SCONS_YESNO };
3959 static KmCommand _GEANT_CREATE_SCONS = { &_GEANT_CREATE_SSPHE,
3960 "/GEANT/CREATE/SCONS", "SCONS", 0, 2, 10, 9, _GEANT_CREATE_SCONS_parameters,
3961 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 0, (char**)0, 0,
3962 (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
3964 static KmParameter _GEANT_CREATE_SCONE_NAME = { "NAME", 4, "Volume name",
3965 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3966 KmTYPE_CHAR, (void*)0 };
3967 static KmParInt _GEANT_CREATE_SCONE_NUMED_type = { (char*)0, (char*)0,
3968 (char*)0, (char*)0, 0 };
3969 static KmParameter _GEANT_CREATE_SCONE_NUMED = { "NUMED", 5,
3970 "Tracking medium number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
3971 (KmParFlag)0, KmTYPE_INT, &_GEANT_CREATE_SCONE_NUMED_type };
3972 static KmParReal _GEANT_CREATE_SCONE_INRDW_type = { (char*)0, (char*)0,
3973 (char*)0, (char*)0, 0 };
3974 static KmParameter _GEANT_CREATE_SCONE_INRDW = { "INRDW", 5,
3975 "Inside Radius in Lower Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
3976 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SCONE_INRDW_type };
3977 static KmParReal _GEANT_CREATE_SCONE_OUTRDW_type = { (char*)0, (char*)0,
3978 (char*)0, (char*)0, 0 };
3979 static KmParameter _GEANT_CREATE_SCONE_OUTRDW = { "OUTRDW", 6,
3980 "Outside Radius in Lower Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
3981 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SCONE_OUTRDW_type };
3982 static KmParReal _GEANT_CREATE_SCONE_INRUP_type = { (char*)0, (char*)0,
3983 (char*)0, (char*)0, 0 };
3984 static KmParameter _GEANT_CREATE_SCONE_INRUP = { "INRUP", 5,
3985 "Inside Radius in Upper Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
3986 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SCONE_INRUP_type };
3987 static KmParReal _GEANT_CREATE_SCONE_OUTRUP_type = { (char*)0, (char*)0,
3988 (char*)0, (char*)0, 0 };
3989 static KmParameter _GEANT_CREATE_SCONE_OUTRUP = { "OUTRUP", 6,
3990 "Outside Radius in Upper Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
3991 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SCONE_OUTRUP_type };
3992 static KmParReal _GEANT_CREATE_SCONE_HALFZ_type = { (char*)0, (char*)0,
3993 (char*)0, (char*)0, 0 };
3994 static KmParameter _GEANT_CREATE_SCONE_HALFZ = { "HALFZ", 5, "Half Z length",
3995 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3996 KmTYPE_REAL, &_GEANT_CREATE_SCONE_HALFZ_type };
3997 static char *_GEANT_CREATE_SCONE_YESNO_range[] = { "YES", "NO" };
3998 static char *_GEANT_CREATE_SCONE_YESNO_text[] = { (char*)0, (char*)0 };
3999 static KmParOption _GEANT_CREATE_SCONE_YESNO_type = {
4000 _GEANT_CREATE_SCONE_YESNO_text, (int*)0, (int*)0 };
4001 static KmParameter _GEANT_CREATE_SCONE_YESNO = { "YESNO", 5, "GSPOSP option",
4002 "NO", (char*)0, 8, 2, _GEANT_CREATE_SCONE_YESNO_range, 2,
4003 _GEANT_CREATE_SCONE_YESNO_range, (KmParFlag)0, KmTYPE_OPTION,
4004 &_GEANT_CREATE_SCONE_YESNO_type };
4005 static KmParameter *_GEANT_CREATE_SCONE_parameters[] = {
4006 &_GEANT_CREATE_SCONE_NAME, &_GEANT_CREATE_SCONE_NUMED,
4007 &_GEANT_CREATE_SCONE_INRDW, &_GEANT_CREATE_SCONE_OUTRDW,
4008 &_GEANT_CREATE_SCONE_INRUP, &_GEANT_CREATE_SCONE_OUTRUP,
4009 &_GEANT_CREATE_SCONE_HALFZ, &_GEANT_CREATE_SCONE_YESNO };
4010 static KmCommand _GEANT_CREATE_SCONE = { &_GEANT_CREATE_SCONS,
4011 "/GEANT/CREATE/SCONE", "SCONE", 0, 2, 8, 7, _GEANT_CREATE_SCONE_parameters,
4012 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 0, (char**)0, 0,
4013 (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
4015 static KmParameter _GEANT_CREATE_STUBS_NAME = { "NAME", 4, "Volume name",
4016 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4017 KmTYPE_CHAR, (void*)0 };
4018 static KmParInt _GEANT_CREATE_STUBS_NUMED_type = { (char*)0, (char*)0,
4019 (char*)0, (char*)0, 0 };
4020 static KmParameter _GEANT_CREATE_STUBS_NUMED = { "NUMED", 5,
4021 "Tracking medium number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
4022 (KmParFlag)0, KmTYPE_INT, &_GEANT_CREATE_STUBS_NUMED_type };
4023 static KmParReal _GEANT_CREATE_STUBS_INRAD_type = { (char*)0, (char*)0,
4024 (char*)0, (char*)0, 0 };
4025 static KmParameter _GEANT_CREATE_STUBS_INRAD = { "INRAD", 5, "Inside Radius",
4026 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4027 KmTYPE_REAL, &_GEANT_CREATE_STUBS_INRAD_type };
4028 static KmParReal _GEANT_CREATE_STUBS_OUTRAD_type = { (char*)0, (char*)0,
4029 (char*)0, (char*)0, 0 };
4030 static KmParameter _GEANT_CREATE_STUBS_OUTRAD = { "OUTRAD", 6,
4031 "Outside Radius", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
4032 (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_STUBS_OUTRAD_type };
4033 static KmParReal _GEANT_CREATE_STUBS_HALFZ_type = { (char*)0, (char*)0,
4034 (char*)0, (char*)0, 0 };
4035 static KmParameter _GEANT_CREATE_STUBS_HALFZ = { "HALFZ", 5, "Half Z length",
4036 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4037 KmTYPE_REAL, &_GEANT_CREATE_STUBS_HALFZ_type };
4038 static KmParReal _GEANT_CREATE_STUBS_SPHI_type = { "0.", "360.", "0.",
4040 static KmParameter _GEANT_CREATE_STUBS_SPHI = { "SPHI", 4,
4041 "Start of section PHI", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
4042 (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_STUBS_SPHI_type };
4043 static KmParReal _GEANT_CREATE_STUBS_EPHI_type = { "0.", "360.", "0.",
4045 static KmParameter _GEANT_CREATE_STUBS_EPHI = { "EPHI", 4,
4046 "End of section PHI", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
4047 (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_STUBS_EPHI_type };
4048 static char *_GEANT_CREATE_STUBS_YESNO_range[] = { "YES", "NO" };
4049 static char *_GEANT_CREATE_STUBS_YESNO_text[] = { (char*)0, (char*)0 };
4050 static KmParOption _GEANT_CREATE_STUBS_YESNO_type = {
4051 _GEANT_CREATE_STUBS_YESNO_text, (int*)0, (int*)0 };
4052 static KmParameter _GEANT_CREATE_STUBS_YESNO = { "YESNO", 5, "GSPOSP option",
4053 "NO", (char*)0, 8, 2, _GEANT_CREATE_STUBS_YESNO_range, 2,
4054 _GEANT_CREATE_STUBS_YESNO_range, (KmParFlag)0, KmTYPE_OPTION,
4055 &_GEANT_CREATE_STUBS_YESNO_type };
4056 static KmParameter *_GEANT_CREATE_STUBS_parameters[] = {
4057 &_GEANT_CREATE_STUBS_NAME, &_GEANT_CREATE_STUBS_NUMED,
4058 &_GEANT_CREATE_STUBS_INRAD, &_GEANT_CREATE_STUBS_OUTRAD,
4059 &_GEANT_CREATE_STUBS_HALFZ, &_GEANT_CREATE_STUBS_SPHI,
4060 &_GEANT_CREATE_STUBS_EPHI, &_GEANT_CREATE_STUBS_YESNO };
4061 static KmCommand _GEANT_CREATE_STUBS = { &_GEANT_CREATE_SCONE,
4062 "/GEANT/CREATE/STUBS", "STUBS", 0, 2, 8, 7, _GEANT_CREATE_STUBS_parameters,
4063 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 0, (char**)0, 0,
4064 (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
4066 static KmParameter _GEANT_CREATE_STUBE_NAME = { "NAME", 4, "Volume name",
4067 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4068 KmTYPE_CHAR, (void*)0 };
4069 static KmParInt _GEANT_CREATE_STUBE_NUMED_type = { (char*)0, (char*)0,
4070 (char*)0, (char*)0, 0 };
4071 static KmParameter _GEANT_CREATE_STUBE_NUMED = { "NUMED", 5,
4072 "Tracking medium number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
4073 (KmParFlag)0, KmTYPE_INT, &_GEANT_CREATE_STUBE_NUMED_type };
4074 static KmParReal _GEANT_CREATE_STUBE_INRAD_type = { (char*)0, (char*)0,
4075 (char*)0, (char*)0, 0 };
4076 static KmParameter _GEANT_CREATE_STUBE_INRAD = { "INRAD", 5, "Inside Radius",
4077 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4078 KmTYPE_REAL, &_GEANT_CREATE_STUBE_INRAD_type };
4079 static KmParReal _GEANT_CREATE_STUBE_OUTRAD_type = { (char*)0, (char*)0,
4080 (char*)0, (char*)0, 0 };
4081 static KmParameter _GEANT_CREATE_STUBE_OUTRAD = { "OUTRAD", 6,
4082 "Outside Radius", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
4083 (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_STUBE_OUTRAD_type };
4084 static KmParReal _GEANT_CREATE_STUBE_HALFZ_type = { (char*)0, (char*)0,
4085 (char*)0, (char*)0, 0 };
4086 static KmParameter _GEANT_CREATE_STUBE_HALFZ = { "HALFZ", 5, "Half Z length",
4087 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4088 KmTYPE_REAL, &_GEANT_CREATE_STUBE_HALFZ_type };
4089 static char *_GEANT_CREATE_STUBE_YESNO_range[] = { "YES", "NO" };
4090 static char *_GEANT_CREATE_STUBE_YESNO_text[] = { (char*)0, (char*)0 };
4091 static KmParOption _GEANT_CREATE_STUBE_YESNO_type = {
4092 _GEANT_CREATE_STUBE_YESNO_text, (int*)0, (int*)0 };
4093 static KmParameter _GEANT_CREATE_STUBE_YESNO = { "YESNO", 5, "GSPOSP option",
4094 "NO", (char*)0, 8, 2, _GEANT_CREATE_STUBE_YESNO_range, 2,
4095 _GEANT_CREATE_STUBE_YESNO_range, (KmParFlag)0, KmTYPE_OPTION,
4096 &_GEANT_CREATE_STUBE_YESNO_type };
4097 static KmParameter *_GEANT_CREATE_STUBE_parameters[] = {
4098 &_GEANT_CREATE_STUBE_NAME, &_GEANT_CREATE_STUBE_NUMED,
4099 &_GEANT_CREATE_STUBE_INRAD, &_GEANT_CREATE_STUBE_OUTRAD,
4100 &_GEANT_CREATE_STUBE_HALFZ, &_GEANT_CREATE_STUBE_YESNO };
4101 static KmCommand _GEANT_CREATE_STUBE = { &_GEANT_CREATE_STUBS,
4102 "/GEANT/CREATE/STUBE", "STUBE", 0, 2, 6, 5, _GEANT_CREATE_STUBE_parameters,
4103 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 0, (char**)0, 0,
4104 (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
4106 static KmParameter _GEANT_CREATE_STRD2_NAME = { "NAME", 4, "Volume name",
4107 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4108 KmTYPE_CHAR, (void*)0 };
4109 static KmParInt _GEANT_CREATE_STRD2_NUMED_type = { (char*)0, (char*)0,
4110 (char*)0, (char*)0, 0 };
4111 static KmParameter _GEANT_CREATE_STRD2_NUMED = { "NUMED", 5,
4112 "Tracking medium number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
4113 (KmParFlag)0, KmTYPE_INT, &_GEANT_CREATE_STRD2_NUMED_type };
4114 static KmParReal _GEANT_CREATE_STRD2_HLFDWX_type = { (char*)0, (char*)0,
4115 (char*)0, (char*)0, 0 };
4116 static KmParameter _GEANT_CREATE_STRD2_HLFDWX = { "HLFDWX", 6,
4117 "Half X length in Lower Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
4118 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_STRD2_HLFDWX_type };
4119 static KmParReal _GEANT_CREATE_STRD2_HLFUPX_type = { (char*)0, (char*)0,
4120 (char*)0, (char*)0, 0 };
4121 static KmParameter _GEANT_CREATE_STRD2_HLFUPX = { "HLFUPX", 6,
4122 "Half X length in Upper Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
4123 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_STRD2_HLFUPX_type };
4124 static KmParReal _GEANT_CREATE_STRD2_HLFDWY_type = { (char*)0, (char*)0,
4125 (char*)0, (char*)0, 0 };
4126 static KmParameter _GEANT_CREATE_STRD2_HLFDWY = { "HLFDWY", 6,
4127 "Half Y length in Lower Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
4128 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_STRD2_HLFDWY_type };
4129 static KmParReal _GEANT_CREATE_STRD2_HLFUPY_type = { (char*)0, (char*)0,
4130 (char*)0, (char*)0, 0 };
4131 static KmParameter _GEANT_CREATE_STRD2_HLFUPY = { "HLFUPY", 6,
4132 "Half Y length in Upper Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
4133 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_STRD2_HLFUPY_type };
4134 static KmParReal _GEANT_CREATE_STRD2_HALFZ_type = { (char*)0, (char*)0,
4135 (char*)0, (char*)0, 0 };
4136 static KmParameter _GEANT_CREATE_STRD2_HALFZ = { "HALFZ", 5, "Half Z length",
4137 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4138 KmTYPE_REAL, &_GEANT_CREATE_STRD2_HALFZ_type };
4139 static char *_GEANT_CREATE_STRD2_YESNO_range[] = { "YES", "NO" };
4140 static char *_GEANT_CREATE_STRD2_YESNO_text[] = { (char*)0, (char*)0 };
4141 static KmParOption _GEANT_CREATE_STRD2_YESNO_type = {
4142 _GEANT_CREATE_STRD2_YESNO_text, (int*)0, (int*)0 };
4143 static KmParameter _GEANT_CREATE_STRD2_YESNO = { "YESNO", 5, "GSPOSP option",
4144 "NO", (char*)0, 8, 2, _GEANT_CREATE_STRD2_YESNO_range, 2,
4145 _GEANT_CREATE_STRD2_YESNO_range, (KmParFlag)0, KmTYPE_OPTION,
4146 &_GEANT_CREATE_STRD2_YESNO_type };
4147 static KmParameter *_GEANT_CREATE_STRD2_parameters[] = {
4148 &_GEANT_CREATE_STRD2_NAME, &_GEANT_CREATE_STRD2_NUMED,
4149 &_GEANT_CREATE_STRD2_HLFDWX, &_GEANT_CREATE_STRD2_HLFUPX,
4150 &_GEANT_CREATE_STRD2_HLFDWY, &_GEANT_CREATE_STRD2_HLFUPY,
4151 &_GEANT_CREATE_STRD2_HALFZ, &_GEANT_CREATE_STRD2_YESNO };
4152 static KmCommand _GEANT_CREATE_STRD2 = { &_GEANT_CREATE_STUBE,
4153 "/GEANT/CREATE/STRD2", "STRD2", 0, 2, 8, 7, _GEANT_CREATE_STRD2_parameters,
4154 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 0, (char**)0, 0,
4155 (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
4157 static KmParameter _GEANT_CREATE_STRD1_NAME = { "NAME", 4, "Volume name",
4158 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4159 KmTYPE_CHAR, (void*)0 };
4160 static KmParInt _GEANT_CREATE_STRD1_NUMED_type = { (char*)0, (char*)0,
4161 (char*)0, (char*)0, 0 };
4162 static KmParameter _GEANT_CREATE_STRD1_NUMED = { "NUMED", 5,
4163 "Tracking medium number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
4164 (KmParFlag)0, KmTYPE_INT, &_GEANT_CREATE_STRD1_NUMED_type };
4165 static KmParReal _GEANT_CREATE_STRD1_HLFDWX_type = { (char*)0, (char*)0,
4166 (char*)0, (char*)0, 0 };
4167 static KmParameter _GEANT_CREATE_STRD1_HLFDWX = { "HLFDWX", 6,
4168 "Half X length in Lower Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
4169 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_STRD1_HLFDWX_type };
4170 static KmParReal _GEANT_CREATE_STRD1_HLFUPX_type = { (char*)0, (char*)0,
4171 (char*)0, (char*)0, 0 };
4172 static KmParameter _GEANT_CREATE_STRD1_HLFUPX = { "HLFUPX", 6,
4173 "Half X length in Upper Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
4174 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_STRD1_HLFUPX_type };
4175 static KmParReal _GEANT_CREATE_STRD1_HALFY_type = { (char*)0, (char*)0,
4176 (char*)0, (char*)0, 0 };
4177 static KmParameter _GEANT_CREATE_STRD1_HALFY = { "HALFY", 5, "Half Y length",
4178 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4179 KmTYPE_REAL, &_GEANT_CREATE_STRD1_HALFY_type };
4180 static KmParReal _GEANT_CREATE_STRD1_HALFZ_type = { (char*)0, (char*)0,
4181 (char*)0, (char*)0, 0 };
4182 static KmParameter _GEANT_CREATE_STRD1_HALFZ = { "HALFZ", 5, "Half Z length",
4183 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4184 KmTYPE_REAL, &_GEANT_CREATE_STRD1_HALFZ_type };
4185 static char *_GEANT_CREATE_STRD1_YESNO_range[] = { "YES", "NO" };
4186 static char *_GEANT_CREATE_STRD1_YESNO_text[] = { (char*)0, (char*)0 };
4187 static KmParOption _GEANT_CREATE_STRD1_YESNO_type = {
4188 _GEANT_CREATE_STRD1_YESNO_text, (int*)0, (int*)0 };
4189 static KmParameter _GEANT_CREATE_STRD1_YESNO = { "YESNO", 5, "GSPOSP option",
4190 "NO", (char*)0, 8, 2, _GEANT_CREATE_STRD1_YESNO_range, 2,
4191 _GEANT_CREATE_STRD1_YESNO_range, (KmParFlag)0, KmTYPE_OPTION,
4192 &_GEANT_CREATE_STRD1_YESNO_type };
4193 static KmParameter *_GEANT_CREATE_STRD1_parameters[] = {
4194 &_GEANT_CREATE_STRD1_NAME, &_GEANT_CREATE_STRD1_NUMED,
4195 &_GEANT_CREATE_STRD1_HLFDWX, &_GEANT_CREATE_STRD1_HLFUPX,
4196 &_GEANT_CREATE_STRD1_HALFY, &_GEANT_CREATE_STRD1_HALFZ,
4197 &_GEANT_CREATE_STRD1_YESNO };
4198 static KmCommand _GEANT_CREATE_STRD1 = { &_GEANT_CREATE_STRD2,
4199 "/GEANT/CREATE/STRD1", "STRD1", 0, 2, 7, 6, _GEANT_CREATE_STRD1_parameters,
4200 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 0, (char**)0, 0,
4201 (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
4203 static KmParameter _GEANT_CREATE_SBOX_NAME = { "NAME", 4, "Volume name",
4204 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4205 KmTYPE_CHAR, (void*)0 };
4206 static KmParInt _GEANT_CREATE_SBOX_NUMED_type = { (char*)0, (char*)0,
4207 (char*)0, (char*)0, 0 };
4208 static KmParameter _GEANT_CREATE_SBOX_NUMED = { "NUMED", 5,
4209 "Tracking medium number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
4210 (KmParFlag)0, KmTYPE_INT, &_GEANT_CREATE_SBOX_NUMED_type };
4211 static KmParReal _GEANT_CREATE_SBOX_HALFX_type = { (char*)0, (char*)0,
4212 (char*)0, (char*)0, 0 };
4213 static KmParameter _GEANT_CREATE_SBOX_HALFX = { "HALFX", 5, "Half X length",
4214 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4215 KmTYPE_REAL, &_GEANT_CREATE_SBOX_HALFX_type };
4216 static KmParReal _GEANT_CREATE_SBOX_HALFY_type = { (char*)0, (char*)0,
4217 (char*)0, (char*)0, 0 };
4218 static KmParameter _GEANT_CREATE_SBOX_HALFY = { "HALFY", 5, "Half Y length",
4219 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4220 KmTYPE_REAL, &_GEANT_CREATE_SBOX_HALFY_type };
4221 static KmParReal _GEANT_CREATE_SBOX_HALFZ_type = { (char*)0, (char*)0,
4222 (char*)0, (char*)0, 0 };
4223 static KmParameter _GEANT_CREATE_SBOX_HALFZ = { "HALFZ", 5, "Half Z length",
4224 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4225 KmTYPE_REAL, &_GEANT_CREATE_SBOX_HALFZ_type };
4226 static char *_GEANT_CREATE_SBOX_YESNO_range[] = { "YES", "NO" };
4227 static char *_GEANT_CREATE_SBOX_YESNO_text[] = { (char*)0, (char*)0 };
4228 static KmParOption _GEANT_CREATE_SBOX_YESNO_type = {
4229 _GEANT_CREATE_SBOX_YESNO_text, (int*)0, (int*)0 };
4230 static KmParameter _GEANT_CREATE_SBOX_YESNO = { "YESNO", 5, "GSPOSP option",
4231 "NO", (char*)0, 8, 2, _GEANT_CREATE_SBOX_YESNO_range, 2,
4232 _GEANT_CREATE_SBOX_YESNO_range, (KmParFlag)0, KmTYPE_OPTION,
4233 &_GEANT_CREATE_SBOX_YESNO_type };
4234 static KmParameter *_GEANT_CREATE_SBOX_parameters[] = {
4235 &_GEANT_CREATE_SBOX_NAME, &_GEANT_CREATE_SBOX_NUMED,
4236 &_GEANT_CREATE_SBOX_HALFX, &_GEANT_CREATE_SBOX_HALFY,
4237 &_GEANT_CREATE_SBOX_HALFZ, &_GEANT_CREATE_SBOX_YESNO };
4238 static KmCommand _GEANT_CREATE_SBOX = { &_GEANT_CREATE_STRD1,
4239 "/GEANT/CREATE/SBOX", "SBOX", 0, 2, 6, 5, _GEANT_CREATE_SBOX_parameters, 0,
4240 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 0, (char**)0, 0,
4241 (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
4243 static char *_GEANT_CREATE_guidance[] = {
4244 "It creates volumes of the given shape interactively.",
4245 "CALL GSVOLU(name,shape,numed,par,npar,ivolu)", "where par is a KUIP vector"
4247 static KmMenu _GEANT_CREATE = { (KmMenu*)0, (KmMenu*)0, "/GEANT/CREATE",
4248 "CREATE", 2, &_GEANT_CREATE_SBOX, 3, _GEANT_CREATE_guidance, 0, (char**)0, 0,
4251 static char *_GEANT_GEOMETRY_guidance[] = { "Geometry commands." };
4252 static KmMenu _GEANT_GEOMETRY = { &_GEANT_CREATE, (KmMenu*)0,
4253 "/GEANT/GEOMETRY", "GEOMETRY", 2, &_GEANT_GEOMETRY_OPTI, 1,
4254 _GEANT_GEOMETRY_guidance, 0, (char**)0, 0, (char**)0 };
4256 static KmMenu _GEANT = { (KmMenu*)0, &_GEANT_GEOMETRY, "/GEANT", "GEANT", 1,
4257 (KmCommand*)0, 0, (char**)0, 0, (char**)0, 0, (char**)0 };
4259 klnkmenu( &_GEANT, 950303 );
4264 # define gkcont_ gkcont
4265 # define gxcont_ gxcont
4269 # define gkcont_ GKCONT
4270 # define gxcont_ GXCONT
4274 # pragma linkage(GKCONT,FORTRAN)
4275 # pragma linkage(GXCONT,FORTRAN)
4278 extern void gkcont_();
4279 extern void gxcont_();
4284 static char *_GEANT_CONTROL_DEBUG_IDEB_range[] = { "ON", "OFF" };
4285 static char *_GEANT_CONTROL_DEBUG_IDEB_text[] = { (char*)0, (char*)0 };
4286 static KmParOption _GEANT_CONTROL_DEBUG_IDEB_type = {
4287 _GEANT_CONTROL_DEBUG_IDEB_text, (int*)0, (int*)0 };
4288 static KmParameter _GEANT_CONTROL_DEBUG_IDEB = { "IDEB", 4, "Debug option",
4289 "ON", (char*)0, 8, 2, _GEANT_CONTROL_DEBUG_IDEB_range, 2,
4290 _GEANT_CONTROL_DEBUG_IDEB_range, (KmParFlag)0, KmTYPE_OPTION,
4291 &_GEANT_CONTROL_DEBUG_IDEB_type };
4292 static KmParameter *_GEANT_CONTROL_DEBUG_parameters[] = {
4293 &_GEANT_CONTROL_DEBUG_IDEB };
4294 static char *_GEANT_CONTROL_DEBUG_guidance[] = { "If ideb='ON ' then :",
4295 " idebug=1, idemin=1, idemax=1000000, itime=1", "else :",
4296 " idebug=0, idemin=0, idemax=0" };
4297 static KmCommand _GEANT_CONTROL_DEBUG = { (KmCommand*)0,
4298 "/GEANT/CONTROL/DEBUG", "DEBUG", 0, 2, 1, 0, _GEANT_CONTROL_DEBUG_parameters,
4299 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
4300 _GEANT_CONTROL_DEBUG_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
4301 (char*)0, (int*)0 };
4303 static KmParInt _GEANT_CONTROL_PRKINE_NUMB_type = { (char*)0, (char*)0,
4304 (char*)0, (char*)0, 0 };
4305 static KmParameter _GEANT_CONTROL_PRKINE_NUMB = { "NUMB", 4, "Track number",
4306 (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
4307 &_GEANT_CONTROL_PRKINE_NUMB_type };
4308 static KmParameter *_GEANT_CONTROL_PRKINE_parameters[] = {
4309 &_GEANT_CONTROL_PRKINE_NUMB };
4310 static char *_GEANT_CONTROL_PRKINE_guidance[] = { "CALL GPKINE(numb)" };
4311 static KmCommand _GEANT_CONTROL_PRKINE = { &_GEANT_CONTROL_DEBUG,
4312 "/GEANT/CONTROL/PRKINE", "PRKINE", 0, 2, 1, 1,
4313 _GEANT_CONTROL_PRKINE_parameters, 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0,
4314 (pCharFunc*)0, 1, _GEANT_CONTROL_PRKINE_guidance, 0, (char**)0, 0, (char**)0,
4315 0, (char**)0, (char*)0, (int*)0 };
4317 static KmParInt _GEANT_CONTROL_PPART_NUMB_type = { (char*)0, (char*)0,
4318 (char*)0, (char*)0, 0 };
4319 static KmParameter _GEANT_CONTROL_PPART_NUMB = { "NUMB", 4, "Particle number",
4320 (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
4321 &_GEANT_CONTROL_PPART_NUMB_type };
4322 static KmParameter *_GEANT_CONTROL_PPART_parameters[] = {
4323 &_GEANT_CONTROL_PPART_NUMB };
4324 static char *_GEANT_CONTROL_PPART_guidance[] = { "CALL GPPART(numb)" };
4325 static KmCommand _GEANT_CONTROL_PPART = { &_GEANT_CONTROL_PRKINE,
4326 "/GEANT/CONTROL/PPART", "PPART", 0, 2, 1, 1, _GEANT_CONTROL_PPART_parameters,
4327 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
4328 _GEANT_CONTROL_PPART_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
4329 (char*)0, (int*)0 };
4331 static KmParInt _GEANT_CONTROL_SPART_IPART_type = { (char*)0, (char*)0,
4332 (char*)0, (char*)0, 0 };
4333 static KmParameter _GEANT_CONTROL_SPART_IPART = { "IPART", 5,
4334 "Particle number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
4335 (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_SPART_IPART_type };
4336 static KmParameter _GEANT_CONTROL_SPART_NAPART = { "NAPART", 6,
4337 "Particle name", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
4338 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
4339 static KmParInt _GEANT_CONTROL_SPART_ITRTYP_type = { (char*)0, (char*)0,
4340 (char*)0, (char*)0, 0 };
4341 static KmParameter _GEANT_CONTROL_SPART_ITRTYP = { "ITRTYP", 6, " ", (char*)0,
4342 (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
4343 &_GEANT_CONTROL_SPART_ITRTYP_type };
4344 static KmParReal _GEANT_CONTROL_SPART_AMASS_type = { (char*)0, (char*)0,
4345 (char*)0, (char*)0, 0 };
4346 static KmParameter _GEANT_CONTROL_SPART_AMASS = { "AMASS", 5, "Mass",
4347 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4348 KmTYPE_REAL, &_GEANT_CONTROL_SPART_AMASS_type };
4349 static KmParReal _GEANT_CONTROL_SPART_CHARGE_type = { (char*)0, (char*)0,
4350 (char*)0, (char*)0, 0 };
4351 static KmParameter _GEANT_CONTROL_SPART_CHARGE = { "CHARGE", 6, "Charge",
4352 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4353 KmTYPE_REAL, &_GEANT_CONTROL_SPART_CHARGE_type };
4354 static KmParReal _GEANT_CONTROL_SPART_TLIFE_type = { (char*)0, (char*)0,
4355 (char*)0, (char*)0, 0 };
4356 static KmParameter _GEANT_CONTROL_SPART_TLIFE = { "TLIFE", 5, "Lifetime",
4357 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4358 KmTYPE_REAL, &_GEANT_CONTROL_SPART_TLIFE_type };
4359 static KmParReal _GEANT_CONTROL_SPART_UBUF_type = { (char*)0, (char*)0,
4360 (char*)0, (char*)0, 0 };
4361 static KmParameter _GEANT_CONTROL_SPART_UBUF = { "UBUF", 4, " ", (char*)0,
4362 (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
4363 &_GEANT_CONTROL_SPART_UBUF_type };
4364 static KmParInt _GEANT_CONTROL_SPART_NWBUF_type = { (char*)0, (char*)0,
4365 (char*)0, (char*)0, 0 };
4366 static KmParameter _GEANT_CONTROL_SPART_NWBUF = { "NWBUF", 5, " ", (char*)0,
4367 (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
4368 &_GEANT_CONTROL_SPART_NWBUF_type };
4369 static KmParReal _GEANT_CONTROL_SPART_BRATIO_type = { (char*)0, (char*)0,
4370 (char*)0, (char*)0, 0 };
4371 static KmParameter _GEANT_CONTROL_SPART_BRATIO = { "BRATIO", 6,
4372 "Branching ratios", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
4373 (KmParFlag)0, KmTYPE_REAL, &_GEANT_CONTROL_SPART_BRATIO_type };
4374 static KmParInt _GEANT_CONTROL_SPART_MODE_type = { (char*)0, (char*)0,
4375 (char*)0, (char*)0, 0 };
4376 static KmParameter _GEANT_CONTROL_SPART_MODE = { "MODE", 4, "Decay mode",
4377 (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
4378 &_GEANT_CONTROL_SPART_MODE_type };
4379 static KmParameter *_GEANT_CONTROL_SPART_parameters[] = {
4380 &_GEANT_CONTROL_SPART_IPART, &_GEANT_CONTROL_SPART_NAPART,
4381 &_GEANT_CONTROL_SPART_ITRTYP, &_GEANT_CONTROL_SPART_AMASS,
4382 &_GEANT_CONTROL_SPART_CHARGE, &_GEANT_CONTROL_SPART_TLIFE,
4383 &_GEANT_CONTROL_SPART_UBUF, &_GEANT_CONTROL_SPART_NWBUF,
4384 &_GEANT_CONTROL_SPART_BRATIO, &_GEANT_CONTROL_SPART_MODE };
4385 static char *_GEANT_CONTROL_SPART_guidance[] = {
4386 "CALL GSPART(ipart,napart,itrtyp,amass,charge,tlife,ubuf,nwbuf);",
4387 "CALL GSDK(ipart,bratio,mode)" };
4388 static KmCommand _GEANT_CONTROL_SPART = { &_GEANT_CONTROL_PPART,
4389 "/GEANT/CONTROL/SPART", "SPART", 0, 2, 10, 10,
4390 _GEANT_CONTROL_SPART_parameters, 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0,
4391 (pCharFunc*)0, 2, _GEANT_CONTROL_SPART_guidance, 0, (char**)0, 0, (char**)0,
4392 0, (char**)0, (char*)0, (int*)0 };
4394 static KmParInt _GEANT_CONTROL_STPAR_ITMED_type = { (char*)0, (char*)0,
4395 (char*)0, (char*)0, 0 };
4396 static KmParameter _GEANT_CONTROL_STPAR_ITMED = { "ITMED", 5, "Medium number",
4397 (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
4398 &_GEANT_CONTROL_STPAR_ITMED_type };
4399 static KmParameter _GEANT_CONTROL_STPAR_CHPAR = { "CHPAR", 5,
4400 "Cut or mechanism", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
4401 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
4402 static KmParReal _GEANT_CONTROL_STPAR_PARVAL_type = { (char*)0, (char*)0,
4403 (char*)0, (char*)0, 0 };
4404 static KmParameter _GEANT_CONTROL_STPAR_PARVAL = { "PARVAL", 6, "Value",
4405 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4406 KmTYPE_REAL, &_GEANT_CONTROL_STPAR_PARVAL_type };
4407 static KmParameter *_GEANT_CONTROL_STPAR_parameters[] = {
4408 &_GEANT_CONTROL_STPAR_ITMED, &_GEANT_CONTROL_STPAR_CHPAR,
4409 &_GEANT_CONTROL_STPAR_PARVAL };
4410 static char *_GEANT_CONTROL_STPAR_guidance[] = {
4411 "CALL GSTPAR(itmed,chpar,parval)" };
4412 static KmCommand _GEANT_CONTROL_STPAR = { &_GEANT_CONTROL_SPART,
4413 "/GEANT/CONTROL/STPAR", "STPAR", 0, 2, 3, 3, _GEANT_CONTROL_STPAR_parameters,
4414 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
4415 _GEANT_CONTROL_STPAR_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
4416 (char*)0, (int*)0 };
4418 static KmParInt _GEANT_CONTROL_DRMAT_IMATE_type = { (char*)0, (char*)0,
4419 (char*)0, (char*)0, 0 };
4420 static KmParameter _GEANT_CONTROL_DRMAT_IMATE = { "IMATE", 5,
4421 "Material number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
4422 (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_DRMAT_IMATE_type };
4423 static KmParInt _GEANT_CONTROL_DRMAT_IPART_type = { (char*)0, (char*)0,
4424 (char*)0, (char*)0, 0 };
4425 static KmParameter _GEANT_CONTROL_DRMAT_IPART = { "IPART", 5,
4426 "Particle number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
4427 (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_DRMAT_IPART_type };
4428 static KmParameter _GEANT_CONTROL_DRMAT_MECAN = { "MECAN", 5,
4429 "List of mechanism", "ALL", (char*)0, 20, 0, (char**)0, 0, (char**)0,
4430 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
4431 static KmParameter *_GEANT_CONTROL_DRMAT_parameters[] = {
4432 &_GEANT_CONTROL_DRMAT_IMATE, &_GEANT_CONTROL_DRMAT_IPART,
4433 &_GEANT_CONTROL_DRMAT_MECAN };
4434 static char *_GEANT_CONTROL_DRMAT_guidance[] = {
4435 "CALL GDRMAT(imate,ipart,mecan,nmec)",
4436 "If MECAN = 'ALL' all the mechanisms are plotted. If the material number",
4437 "is negative, the cross sections relative to material ABS(IMATE) will",
4438 "be plotted in barns rather than in 1/cm.",
4439 "Note that it is not possible to plot anything if GSTMED has not been\
4440 called", "for the material number IMATE." };
4441 static KmCommand _GEANT_CONTROL_DRMAT = { &_GEANT_CONTROL_STPAR,
4442 "/GEANT/CONTROL/DRMAT", "DRMAT", 0, 2, 3, 2, _GEANT_CONTROL_DRMAT_parameters,
4443 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 6,
4444 _GEANT_CONTROL_DRMAT_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
4445 (char*)0, (int*)0 };
4447 static KmParInt _GEANT_CONTROL_PLMAT_IMATE_type = { (char*)0, (char*)0,
4448 (char*)0, (char*)0, 0 };
4449 static KmParameter _GEANT_CONTROL_PLMAT_IMATE = { "IMATE", 5,
4450 "Material number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
4451 (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_PLMAT_IMATE_type };
4452 static KmParInt _GEANT_CONTROL_PLMAT_IPART_type = { (char*)0, (char*)0,
4453 (char*)0, (char*)0, 0 };
4454 static KmParameter _GEANT_CONTROL_PLMAT_IPART = { "IPART", 5,
4455 "Particle number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
4456 (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_PLMAT_IPART_type };
4457 static KmParameter _GEANT_CONTROL_PLMAT_MECAN = { "MECAN", 5, "Mechanism",
4458 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4459 KmTYPE_CHAR, (void*)0 };
4460 static KmParInt _GEANT_CONTROL_PLMAT_IDM_type = { (char*)0, (char*)0,
4461 (char*)0, (char*)0, 0 };
4462 static KmParameter _GEANT_CONTROL_PLMAT_IDM = { "IDM", 3, "ID mode option",
4463 "0", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
4464 &_GEANT_CONTROL_PLMAT_IDM_type };
4465 static KmParameter *_GEANT_CONTROL_PLMAT_parameters[] = {
4466 &_GEANT_CONTROL_PLMAT_IMATE, &_GEANT_CONTROL_PLMAT_IPART,
4467 &_GEANT_CONTROL_PLMAT_MECAN, &_GEANT_CONTROL_PLMAT_IDM };
4468 static char *_GEANT_CONTROL_PLMAT_guidance[] = {
4469 "CALL GPLMAT(imate,ipart,mecan,nekbin,elow,idm)",
4470 " IDM convention for histogramming mode :",
4471 " IDM.gt.0 fill, print, keep histogram(s)",
4472 " IDM.eq.0 fill, print, delete histogram(s)",
4473 " IDM.lt.0 fill, noprint, keep histogram(s)",
4474 "If MECAN = 'ALL' all the mechanisms are histogrammed. If the material\
4476 "is negative, the cross sections relative to material ABS(IMATE) will",
4477 "be histogrammed in barns rather than in 1/cm." };
4478 static KmCommand _GEANT_CONTROL_PLMAT = { &_GEANT_CONTROL_DRMAT,
4479 "/GEANT/CONTROL/PLMAT", "PLMAT", 0, 2, 4, 3, _GEANT_CONTROL_PLMAT_parameters,
4480 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 8,
4481 _GEANT_CONTROL_PLMAT_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
4482 (char*)0, (int*)0 };
4484 static KmParInt _GEANT_CONTROL_PRMAT_IMATE_type = { (char*)0, (char*)0,
4485 (char*)0, (char*)0, 0 };
4486 static KmParameter _GEANT_CONTROL_PRMAT_IMATE = { "IMATE", 5,
4487 "Material number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
4488 (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_PRMAT_IMATE_type };
4489 static KmParInt _GEANT_CONTROL_PRMAT_IPART_type = { (char*)0, (char*)0,
4490 (char*)0, (char*)0, 0 };
4491 static KmParameter _GEANT_CONTROL_PRMAT_IPART = { "IPART", 5,
4492 "Particle number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
4493 (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_PRMAT_IPART_type };
4494 static KmParameter _GEANT_CONTROL_PRMAT_MECAN = { "MECAN", 5, "Mechanism",
4495 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4496 KmTYPE_CHAR, (void*)0 };
4497 static KmParameter *_GEANT_CONTROL_PRMAT_parameters[] = {
4498 &_GEANT_CONTROL_PRMAT_IMATE, &_GEANT_CONTROL_PRMAT_IPART,
4499 &_GEANT_CONTROL_PRMAT_MECAN };
4500 static char *_GEANT_CONTROL_PRMAT_guidance[] = {
4501 " CALL GPRMAT(imate,ipart,mecan,nekbin,elow)" };
4502 static KmCommand _GEANT_CONTROL_PRMAT = { &_GEANT_CONTROL_PLMAT,
4503 "/GEANT/CONTROL/PRMAT", "PRMAT", 0, 2, 3, 3, _GEANT_CONTROL_PRMAT_parameters,
4504 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
4505 _GEANT_CONTROL_PRMAT_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
4506 (char*)0, (int*)0 };
4508 static KmParInt _GEANT_CONTROL_PMATE_NUMB_type = { (char*)0, (char*)0,
4509 (char*)0, (char*)0, 0 };
4510 static KmParameter _GEANT_CONTROL_PMATE_NUMB = { "NUMB", 4, "Material number",
4511 (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
4512 &_GEANT_CONTROL_PMATE_NUMB_type };
4513 static KmParameter *_GEANT_CONTROL_PMATE_parameters[] = {
4514 &_GEANT_CONTROL_PMATE_NUMB };
4515 static char *_GEANT_CONTROL_PMATE_guidance[] = { " CALL GPMATE(numb)" };
4516 static KmCommand _GEANT_CONTROL_PMATE = { &_GEANT_CONTROL_PRMAT,
4517 "/GEANT/CONTROL/PMATE", "PMATE", 0, 2, 1, 1, _GEANT_CONTROL_PMATE_parameters,
4518 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
4519 _GEANT_CONTROL_PMATE_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
4520 (char*)0, (int*)0 };
4522 static KmParInt _GEANT_CONTROL_SMIXT_IMAT_type = { (char*)0, (char*)0,
4523 (char*)0, (char*)0, 0 };
4524 static KmParameter _GEANT_CONTROL_SMIXT_IMAT = { "IMAT", 4, "Material number",
4525 (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
4526 &_GEANT_CONTROL_SMIXT_IMAT_type };
4527 static KmParameter _GEANT_CONTROL_SMIXT_NAMATE = { "NAMATE", 6,
4528 "Material name", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
4529 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
4530 static KmParReal _GEANT_CONTROL_SMIXT_A_type = { (char*)0, (char*)0,
4531 (char*)0, (char*)0, 0 };
4532 static KmParameter _GEANT_CONTROL_SMIXT_A = { "A", 1, "Atomic weight",
4533 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4534 KmTYPE_REAL, &_GEANT_CONTROL_SMIXT_A_type };
4535 static KmParReal _GEANT_CONTROL_SMIXT_Z_type = { (char*)0, (char*)0,
4536 (char*)0, (char*)0, 0 };
4537 static KmParameter _GEANT_CONTROL_SMIXT_Z = { "Z", 1, "Atomic number",
4538 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4539 KmTYPE_REAL, &_GEANT_CONTROL_SMIXT_Z_type };
4540 static KmParReal _GEANT_CONTROL_SMIXT_DENS_type = { (char*)0, (char*)0,
4541 (char*)0, (char*)0, 0 };
4542 static KmParameter _GEANT_CONTROL_SMIXT_DENS = { "DENS", 4, "Density",
4543 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4544 KmTYPE_REAL, &_GEANT_CONTROL_SMIXT_DENS_type };
4545 static KmParInt _GEANT_CONTROL_SMIXT_NLMAT_type = { (char*)0, (char*)0,
4546 (char*)0, (char*)0, 0 };
4547 static KmParameter _GEANT_CONTROL_SMIXT_NLMAT = { "NLMAT", 5, "Flag for WMAT",
4548 (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
4549 &_GEANT_CONTROL_SMIXT_NLMAT_type };
4550 static KmParReal _GEANT_CONTROL_SMIXT_WMAT_type = { (char*)0, (char*)0,
4551 (char*)0, (char*)0, 0 };
4552 static KmParameter _GEANT_CONTROL_SMIXT_WMAT = { "WMAT", 4,
4553 "Relative weights or n. of atoms in molecule", (char*)0, (char*)0, 12, 0,
4554 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
4555 &_GEANT_CONTROL_SMIXT_WMAT_type };
4556 static KmParameter *_GEANT_CONTROL_SMIXT_parameters[] = {
4557 &_GEANT_CONTROL_SMIXT_IMAT, &_GEANT_CONTROL_SMIXT_NAMATE,
4558 &_GEANT_CONTROL_SMIXT_A, &_GEANT_CONTROL_SMIXT_Z, &_GEANT_CONTROL_SMIXT_DENS,
4559 &_GEANT_CONTROL_SMIXT_NLMAT, &_GEANT_CONTROL_SMIXT_WMAT };
4560 static char *_GEANT_CONTROL_SMIXT_guidance[] = {
4561 " CALL GSMIXT(imat,namate,a,z,dens,nlmat,wmat)" };
4562 static KmCommand _GEANT_CONTROL_SMIXT = { &_GEANT_CONTROL_PMATE,
4563 "/GEANT/CONTROL/SMIXT", "SMIXT", 0, 2, 7, 7, _GEANT_CONTROL_SMIXT_parameters,
4564 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
4565 _GEANT_CONTROL_SMIXT_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
4566 (char*)0, (int*)0 };
4568 static KmParInt _GEANT_CONTROL_SMATE_IMAT_type = { (char*)0, (char*)0,
4569 (char*)0, (char*)0, 0 };
4570 static KmParameter _GEANT_CONTROL_SMATE_IMAT = { "IMAT", 4, "Material number",
4571 (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
4572 &_GEANT_CONTROL_SMATE_IMAT_type };
4573 static KmParameter _GEANT_CONTROL_SMATE_NAMATE = { "NAMATE", 6,
4574 "Material name", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
4575 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
4576 static KmParReal _GEANT_CONTROL_SMATE_A_type = { (char*)0, (char*)0,
4577 (char*)0, (char*)0, 0 };
4578 static KmParameter _GEANT_CONTROL_SMATE_A = { "A", 1, "Atomic weight",
4579 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4580 KmTYPE_REAL, &_GEANT_CONTROL_SMATE_A_type };
4581 static KmParReal _GEANT_CONTROL_SMATE_Z_type = { (char*)0, (char*)0,
4582 (char*)0, (char*)0, 0 };
4583 static KmParameter _GEANT_CONTROL_SMATE_Z = { "Z", 1, "Atomic number",
4584 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4585 KmTYPE_REAL, &_GEANT_CONTROL_SMATE_Z_type };
4586 static KmParReal _GEANT_CONTROL_SMATE_DENS_type = { (char*)0, (char*)0,
4587 (char*)0, (char*)0, 0 };
4588 static KmParameter _GEANT_CONTROL_SMATE_DENS = { "DENS", 4, "Density",
4589 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4590 KmTYPE_REAL, &_GEANT_CONTROL_SMATE_DENS_type };
4591 static KmParReal _GEANT_CONTROL_SMATE_RADL_type = { (char*)0, (char*)0,
4592 (char*)0, (char*)0, 0 };
4593 static KmParameter _GEANT_CONTROL_SMATE_RADL = { "RADL", 4,
4594 "Radiation lenght", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
4595 (KmParFlag)0, KmTYPE_REAL, &_GEANT_CONTROL_SMATE_RADL_type };
4596 static KmParReal _GEANT_CONTROL_SMATE_ABSL_type = { (char*)0, (char*)0,
4597 (char*)0, (char*)0, 0 };
4598 static KmParameter _GEANT_CONTROL_SMATE_ABSL = { "ABSL", 4,
4599 "Absorption lenght", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
4600 (KmParFlag)0, KmTYPE_REAL, &_GEANT_CONTROL_SMATE_ABSL_type };
4601 static KmParReal _GEANT_CONTROL_SMATE_UBUF_type = { (char*)0, (char*)0,
4602 (char*)0, (char*)0, 0 };
4603 static KmParameter _GEANT_CONTROL_SMATE_UBUF = { "UBUF", 4, " ", (char*)0,
4604 (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
4605 &_GEANT_CONTROL_SMATE_UBUF_type };
4606 static KmParInt _GEANT_CONTROL_SMATE_NWBUF_type = { (char*)0, (char*)0,
4607 (char*)0, (char*)0, 0 };
4608 static KmParameter _GEANT_CONTROL_SMATE_NWBUF = { "NWBUF", 5, " ", (char*)0,
4609 (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
4610 &_GEANT_CONTROL_SMATE_NWBUF_type };
4611 static KmParameter *_GEANT_CONTROL_SMATE_parameters[] = {
4612 &_GEANT_CONTROL_SMATE_IMAT, &_GEANT_CONTROL_SMATE_NAMATE,
4613 &_GEANT_CONTROL_SMATE_A, &_GEANT_CONTROL_SMATE_Z, &_GEANT_CONTROL_SMATE_DENS,
4614 &_GEANT_CONTROL_SMATE_RADL, &_GEANT_CONTROL_SMATE_ABSL,
4615 &_GEANT_CONTROL_SMATE_UBUF, &_GEANT_CONTROL_SMATE_NWBUF };
4616 static char *_GEANT_CONTROL_SMATE_guidance[] = {
4617 " CALL GSMATE(imat,namate,a,z,dens,radl,absl,ubuf,nwbuf)" };
4618 static KmCommand _GEANT_CONTROL_SMATE = { &_GEANT_CONTROL_SMIXT,
4619 "/GEANT/CONTROL/SMATE", "SMATE", 0, 2, 9, 9, _GEANT_CONTROL_SMATE_parameters,
4620 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
4621 _GEANT_CONTROL_SMATE_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
4622 (char*)0, (int*)0 };
4624 static KmParameter _GEANT_CONTROL_PDIGI_CHUSET = { "CHUSET", 6, "User set",
4625 "*", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
4627 static KmParameter _GEANT_CONTROL_PDIGI_CHUDET = { "CHUDET", 6,
4628 "User detector", "*", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4629 KmTYPE_CHAR, (void*)0 };
4630 static KmParameter *_GEANT_CONTROL_PDIGI_parameters[] = {
4631 &_GEANT_CONTROL_PDIGI_CHUSET, &_GEANT_CONTROL_PDIGI_CHUDET };
4632 static char *_GEANT_CONTROL_PDIGI_guidance[] = { " CALL GPDIGI(chuset,chudet)"
4634 static KmCommand _GEANT_CONTROL_PDIGI = { &_GEANT_CONTROL_SMATE,
4635 "/GEANT/CONTROL/PDIGI", "PDIGI", 0, 2, 2, 0, _GEANT_CONTROL_PDIGI_parameters,
4636 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
4637 _GEANT_CONTROL_PDIGI_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
4638 (char*)0, (int*)0 };
4640 static KmParameter _GEANT_CONTROL_PHITS_CHUSET = { "CHUSET", 6, "User set",
4641 "*", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
4643 static KmParameter _GEANT_CONTROL_PHITS_CHUDET = { "CHUDET", 6,
4644 "User detector", "*", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4645 KmTYPE_CHAR, (void*)0 };
4646 static KmParInt _GEANT_CONTROL_PHITS_NUMHI_type = { (char*)0, (char*)0,
4647 (char*)0, (char*)0, 0 };
4648 static KmParameter _GEANT_CONTROL_PHITS_NUMHI = { "NUMHI", 5, "Hit number",
4649 "0", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
4650 &_GEANT_CONTROL_PHITS_NUMHI_type };
4651 static KmParameter *_GEANT_CONTROL_PHITS_parameters[] = {
4652 &_GEANT_CONTROL_PHITS_CHUSET, &_GEANT_CONTROL_PHITS_CHUDET,
4653 &_GEANT_CONTROL_PHITS_NUMHI };
4654 static char *_GEANT_CONTROL_PHITS_guidance[] = { " CALL GPHITS(chuset,chudet)"
4656 static KmCommand _GEANT_CONTROL_PHITS = { &_GEANT_CONTROL_PDIGI,
4657 "/GEANT/CONTROL/PHITS", "PHITS", 0, 2, 3, 0, _GEANT_CONTROL_PHITS_parameters,
4658 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
4659 _GEANT_CONTROL_PHITS_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
4660 (char*)0, (int*)0 };
4662 static KmParInt _GEANT_CONTROL_OUTPUT_LP_LOUT_type = { (char*)0, (char*)0,
4663 (char*)0, (char*)0, 0 };
4664 static KmParameter _GEANT_CONTROL_OUTPUT_LP_LOUT = { "LOUT", 4,
4665 "New output unit", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
4666 (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_OUTPUT_LP_LOUT_type };
4667 static KmParameter *_GEANT_CONTROL_OUTPUT_LP_parameters[] = {
4668 &_GEANT_CONTROL_OUTPUT_LP_LOUT };
4669 static char *_GEANT_CONTROL_OUTPUT_LP_guidance[] = {
4670 "To change lout in /GCUNIT/",
4671 "Note: unit numbers 5,11,12,13,14,15 are reserved and cannot be used." };
4672 static KmCommand _GEANT_CONTROL_OUTPUT_LP = { &_GEANT_CONTROL_PHITS,
4673 "/GEANT/CONTROL/OUTPUT_LP", "OUTPUT_LP", 0, 2, 1, 1,
4674 _GEANT_CONTROL_OUTPUT_LP_parameters, 0, 0, gxcont_, (IntFunc*)0,
4675 (SUBROUTINE*)0, (pCharFunc*)0, 2, _GEANT_CONTROL_OUTPUT_LP_guidance, 0,
4676 (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
4678 static KmParameter _GEANT_CONTROL_PRINT_NAME = { "NAME", 4, "Name", (char*)0,
4679 (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
4681 static KmParInt _GEANT_CONTROL_PRINT_NUMBER_type = { (char*)0, (char*)0,
4682 (char*)0, (char*)0, 0 };
4683 static KmParameter _GEANT_CONTROL_PRINT_NUMBER = { "NUMBER", 6, "Number", "0",
4684 (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
4685 &_GEANT_CONTROL_PRINT_NUMBER_type };
4686 static KmParameter *_GEANT_CONTROL_PRINT_parameters[] = {
4687 &_GEANT_CONTROL_PRINT_NAME, &_GEANT_CONTROL_PRINT_NUMBER };
4688 static char *_GEANT_CONTROL_PRINT_guidance[] = { " CALL GPRINT(name,number)" };
4689 static KmCommand _GEANT_CONTROL_PRINT = { &_GEANT_CONTROL_OUTPUT_LP,
4690 "/GEANT/CONTROL/PRINT", "PRINT", 0, 2, 2, 2, _GEANT_CONTROL_PRINT_parameters,
4691 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
4692 _GEANT_CONTROL_PRINT_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
4693 (char*)0, (int*)0 };
4695 static KmParInt _GEANT_CONTROL_MZLOGL_LEVEL_type = { (char*)0, (char*)0,
4696 (char*)0, (char*)0, 0 };
4697 static KmParameter _GEANT_CONTROL_MZLOGL_LEVEL = { "LEVEL", 5, "MZ log level",
4698 "0", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
4699 &_GEANT_CONTROL_MZLOGL_LEVEL_type };
4700 static KmParameter *_GEANT_CONTROL_MZLOGL_parameters[] = {
4701 &_GEANT_CONTROL_MZLOGL_LEVEL };
4702 static char *_GEANT_CONTROL_MZLOGL_guidance[] = {
4703 "Set the log level for the MZ package of ZEBRA: CALL MZLOGL(0,level)",
4704 " LEVEL = -3 no messages at all", " -2 error messages only",
4705 " -1 terse logging", " 0 normal",
4706 " +1 log rare events", " +2 log calls to MZ routines" };
4707 static KmCommand _GEANT_CONTROL_MZLOGL = { &_GEANT_CONTROL_PRINT,
4708 "/GEANT/CONTROL/MZLOGL", "MZLOGL", 0, 2, 1, 1,
4709 _GEANT_CONTROL_MZLOGL_parameters, 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0,
4710 (pCharFunc*)0, 7, _GEANT_CONTROL_MZLOGL_guidance, 0, (char**)0, 0, (char**)0,
4711 0, (char**)0, (char*)0, (int*)0 };
4713 static KmParInt _GEANT_CONTROL_SWITCH_ISWI_type = { (char*)0, (char*)0,
4714 (char*)0, (char*)0, 0 };
4715 static KmParameter _GEANT_CONTROL_SWITCH_ISWI = { "ISWI", 4, "Switch number",
4716 (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
4717 &_GEANT_CONTROL_SWITCH_ISWI_type };
4718 static KmParInt _GEANT_CONTROL_SWITCH_IVAL_type = { (char*)0, (char*)0,
4719 (char*)0, (char*)0, 0 };
4720 static KmParameter _GEANT_CONTROL_SWITCH_IVAL = { "IVAL", 4,
4721 "New switch value", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
4722 (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_SWITCH_IVAL_type };
4723 static KmParameter *_GEANT_CONTROL_SWITCH_parameters[] = {
4724 &_GEANT_CONTROL_SWITCH_ISWI, &_GEANT_CONTROL_SWITCH_IVAL };
4725 static char *_GEANT_CONTROL_SWITCH_guidance[] = {
4726 "Change one element of array ISWIT(10) in /GCFLAG/" };
4727 static KmCommand _GEANT_CONTROL_SWITCH = { &_GEANT_CONTROL_MZLOGL,
4728 "/GEANT/CONTROL/SWITCH", "SWITCH", 0, 2, 2, 2,
4729 _GEANT_CONTROL_SWITCH_parameters, 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0,
4730 (pCharFunc*)0, 1, _GEANT_CONTROL_SWITCH_guidance, 0, (char**)0, 0, (char**)0,
4731 0, (char**)0, (char*)0, (int*)0 };
4733 static KmParInt _GEANT_CONTROL_RNDM_ISEED1_type = { (char*)0, (char*)0,
4734 (char*)0, (char*)0, 0 };
4735 static KmParameter _GEANT_CONTROL_RNDM_ISEED1 = { "ISEED1", 6,
4736 "First seed for the random number generator", (char*)0, (char*)0, 8, 0,
4737 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
4738 &_GEANT_CONTROL_RNDM_ISEED1_type };
4739 static KmParInt _GEANT_CONTROL_RNDM_ISEED2_type = { (char*)0, (char*)0,
4740 (char*)0, (char*)0, 0 };
4741 static KmParameter _GEANT_CONTROL_RNDM_ISEED2 = { "ISEED2", 6,
4742 "Second seed for the random number generator", (char*)0, (char*)0, 8, 0,
4743 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
4744 &_GEANT_CONTROL_RNDM_ISEED2_type };
4745 static KmParameter *_GEANT_CONTROL_RNDM_parameters[] = {
4746 &_GEANT_CONTROL_RNDM_ISEED1, &_GEANT_CONTROL_RNDM_ISEED2 };
4747 static char *_GEANT_CONTROL_RNDM_guidance[] = {
4748 "Set the seeds for the random number generator. If no numbers are",
4749 "given, the currents seeds are printed." };
4750 static KmCommand _GEANT_CONTROL_RNDM = { &_GEANT_CONTROL_SWITCH,
4751 "/GEANT/CONTROL/RNDM", "RNDM", 0, 2, 2, 0, _GEANT_CONTROL_RNDM_parameters, 0,
4752 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 2,
4753 _GEANT_CONTROL_RNDM_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
4754 (char*)0, (int*)0 };
4756 static KmParInt _GEANT_CONTROL_TRIGGER_N_type = { (char*)0, (char*)0,
4757 (char*)0, (char*)0, 0 };
4758 static KmParameter _GEANT_CONTROL_TRIGGER_N = { "N", 1, "Number of events",
4759 "1", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
4760 &_GEANT_CONTROL_TRIGGER_N_type };
4761 static KmParameter *_GEANT_CONTROL_TRIGGER_parameters[] = {
4762 &_GEANT_CONTROL_TRIGGER_N };
4763 static char *_GEANT_CONTROL_TRIGGER_guidance[] = {
4764 "Start one or more new events." };
4765 static KmCommand _GEANT_CONTROL_TRIGGER = { &_GEANT_CONTROL_RNDM,
4766 "/GEANT/CONTROL/TRIGGER", "TRIGGER", 0, 2, 1, 0,
4767 _GEANT_CONTROL_TRIGGER_parameters, 0, 0, gxcont_, (IntFunc*)0,
4768 (SUBROUTINE*)0, (pCharFunc*)0, 1, _GEANT_CONTROL_TRIGGER_guidance, 0,
4769 (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
4771 static char *_GEANT_CONTROL_TRACK_guidance[] = {
4772 "Restart tracking, clearing the track and hit",
4773 "banks, but keeping the kinematics." };
4774 static KmCommand _GEANT_CONTROL_TRACK = { &_GEANT_CONTROL_TRIGGER,
4775 "/GEANT/CONTROL/TRACK", "TRACK", 0, 2, 0, 0, (KmParameter**)0, 0, 0, gxcont_,
4776 (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 2, _GEANT_CONTROL_TRACK_guidance,
4777 0, (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
4779 static KmParReal _GEANT_CONTROL_GTIME_TIMINT_type = { (char*)0, (char*)0,
4780 (char*)0, (char*)0, 0 };
4781 static KmParameter _GEANT_CONTROL_GTIME_TIMINT = { "TIMINT", 6,
4782 "Total time after initialisation", (char*)0, (char*)0, 12, 0, (char**)0, 0,
4783 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CONTROL_GTIME_TIMINT_type };
4784 static KmParReal _GEANT_CONTROL_GTIME_TIMEND_type = { (char*)0, (char*)0,
4785 (char*)0, (char*)0, 0 };
4786 static KmParameter _GEANT_CONTROL_GTIME_TIMEND = { "TIMEND", 6,
4787 "Time reserved for the termination phase", (char*)0, (char*)0, 12, 0,
4788 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
4789 &_GEANT_CONTROL_GTIME_TIMEND_type };
4790 static KmParInt _GEANT_CONTROL_GTIME_ITIME_type = { (char*)0, (char*)0,
4791 (char*)0, (char*)0, 0 };
4792 static KmParameter _GEANT_CONTROL_GTIME_ITIME = { "ITIME", 5,
4793 "Frequency of control printing", (char*)0, (char*)0, 8, 0, (char**)0, 0,
4794 (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_GTIME_ITIME_type };
4795 static KmParameter *_GEANT_CONTROL_GTIME_parameters[] = {
4796 &_GEANT_CONTROL_GTIME_TIMINT, &_GEANT_CONTROL_GTIME_TIMEND,
4797 &_GEANT_CONTROL_GTIME_ITIME };
4798 static char *_GEANT_CONTROL_GTIME_guidance[] = {
4799 "These commands have limited use in the interactive version. In",
4800 "particular the value of TIMINT is disregarded by GEANT." };
4801 static KmCommand _GEANT_CONTROL_GTIME = { &_GEANT_CONTROL_TRACK,
4802 "/GEANT/CONTROL/GTIME", "GTIME", 0, 2, 3, 3, _GEANT_CONTROL_GTIME_parameters,
4803 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 2,
4804 _GEANT_CONTROL_GTIME_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
4805 (char*)0, (int*)0 };
4807 static char *_GEANT_CONTROL_SORD_ISTORD_range[] = { "1", "0" };
4808 static KmParInt _GEANT_CONTROL_SORD_ISTORD_type = { (char*)0, (char*)0,
4809 (char*)0, (char*)0, 0 };
4810 static KmParameter _GEANT_CONTROL_SORD_ISTORD = { "ISTORD", 6,
4811 "Flag to control user ordering of the stack", "1", (char*)0, 8, 2,
4812 _GEANT_CONTROL_SORD_ISTORD_range, 2, _GEANT_CONTROL_SORD_ISTORD_range,
4813 (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_SORD_ISTORD_type };
4814 static KmParameter *_GEANT_CONTROL_SORD_parameters[] = {
4815 &_GEANT_CONTROL_SORD_ISTORD };
4816 static char *_GEANT_CONTROL_SORD_guidance[] = {
4817 "If ISTORD is set to 1, the particle with the highest value of the",
4818 "user weight UPWGHT will be selected to be tracked next." };
4819 static KmCommand _GEANT_CONTROL_SORD = { &_GEANT_CONTROL_GTIME,
4820 "/GEANT/CONTROL/SORD", "SORD", 0, 2, 1, 1, _GEANT_CONTROL_SORD_parameters, 0,
4821 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 2,
4822 _GEANT_CONTROL_SORD_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
4823 (char*)0, (int*)0 };
4825 static KmParInt _GEANT_CONTROL_RUNG_IDRUN_type = { (char*)0, (char*)0,
4826 (char*)0, (char*)0, 0 };
4827 static KmParameter _GEANT_CONTROL_RUNG_IDRUN = { "IDRUN", 5,
4828 "User run number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
4829 (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_RUNG_IDRUN_type };
4830 static KmParInt _GEANT_CONTROL_RUNG_IDEVT_type = { (char*)0, (char*)0,
4831 (char*)0, (char*)0, 0 };
4832 static KmParameter _GEANT_CONTROL_RUNG_IDEVT = { "IDEVT", 5,
4833 "User starting event number", (char*)0, (char*)0, 8, 0, (char**)0, 0,
4834 (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_RUNG_IDEVT_type };
4835 static KmParameter *_GEANT_CONTROL_RUNG_parameters[] = {
4836 &_GEANT_CONTROL_RUNG_IDRUN, &_GEANT_CONTROL_RUNG_IDEVT };
4837 static char *_GEANT_CONTROL_RUNG_guidance[] = {
4838 "Set the run number and the starting value for the user event number." };
4839 static KmCommand _GEANT_CONTROL_RUNG = { &_GEANT_CONTROL_SORD,
4840 "/GEANT/CONTROL/RUNG", "RUNG", 0, 2, 2, 2, _GEANT_CONTROL_RUNG_parameters, 0,
4841 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
4842 _GEANT_CONTROL_RUNG_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
4843 (char*)0, (int*)0 };
4845 static KmParInt _GEANT_CONTROL_KINE_IKINE_type = { (char*)0, (char*)0,
4846 (char*)0, (char*)0, 0 };
4847 static KmParameter _GEANT_CONTROL_KINE_IKINE = { "IKINE", 5, "IKINE", "1",
4848 (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
4849 &_GEANT_CONTROL_KINE_IKINE_type };
4850 static KmParReal _GEANT_CONTROL_KINE_PKINE1_type = { (char*)0, (char*)0,
4851 (char*)0, (char*)0, 0 };
4852 static KmParameter _GEANT_CONTROL_KINE_PKINE1 = { "PKINE1", 6, "PKINE(1)",
4853 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4854 KmTYPE_REAL, &_GEANT_CONTROL_KINE_PKINE1_type };
4855 static KmParReal _GEANT_CONTROL_KINE_PKINE2_type = { (char*)0, (char*)0,
4856 (char*)0, (char*)0, 0 };
4857 static KmParameter _GEANT_CONTROL_KINE_PKINE2 = { "PKINE2", 6, "PKINE(2)",
4858 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4859 KmTYPE_REAL, &_GEANT_CONTROL_KINE_PKINE2_type };
4860 static KmParReal _GEANT_CONTROL_KINE_PKINE3_type = { (char*)0, (char*)0,
4861 (char*)0, (char*)0, 0 };
4862 static KmParameter _GEANT_CONTROL_KINE_PKINE3 = { "PKINE3", 6, "PKINE(3)",
4863 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4864 KmTYPE_REAL, &_GEANT_CONTROL_KINE_PKINE3_type };
4865 static KmParReal _GEANT_CONTROL_KINE_PKINE4_type = { (char*)0, (char*)0,
4866 (char*)0, (char*)0, 0 };
4867 static KmParameter _GEANT_CONTROL_KINE_PKINE4 = { "PKINE4", 6, "PKINE(4)",
4868 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4869 KmTYPE_REAL, &_GEANT_CONTROL_KINE_PKINE4_type };
4870 static KmParReal _GEANT_CONTROL_KINE_PKINE5_type = { (char*)0, (char*)0,
4871 (char*)0, (char*)0, 0 };
4872 static KmParameter _GEANT_CONTROL_KINE_PKINE5 = { "PKINE5", 6, "PKINE(5)",
4873 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4874 KmTYPE_REAL, &_GEANT_CONTROL_KINE_PKINE5_type };
4875 static KmParReal _GEANT_CONTROL_KINE_PKINE6_type = { (char*)0, (char*)0,
4876 (char*)0, (char*)0, 0 };
4877 static KmParameter _GEANT_CONTROL_KINE_PKINE6 = { "PKINE6", 6, "PKINE(6)",
4878 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4879 KmTYPE_REAL, &_GEANT_CONTROL_KINE_PKINE6_type };
4880 static KmParReal _GEANT_CONTROL_KINE_PKINE7_type = { (char*)0, (char*)0,
4881 (char*)0, (char*)0, 0 };
4882 static KmParameter _GEANT_CONTROL_KINE_PKINE7 = { "PKINE7", 6, "PKINE(7)",
4883 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4884 KmTYPE_REAL, &_GEANT_CONTROL_KINE_PKINE7_type };
4885 static KmParReal _GEANT_CONTROL_KINE_PKINE8_type = { (char*)0, (char*)0,
4886 (char*)0, (char*)0, 0 };
4887 static KmParameter _GEANT_CONTROL_KINE_PKINE8 = { "PKINE8", 6, "PKINE(8)",
4888 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4889 KmTYPE_REAL, &_GEANT_CONTROL_KINE_PKINE8_type };
4890 static KmParReal _GEANT_CONTROL_KINE_PKINE9_type = { (char*)0, (char*)0,
4891 (char*)0, (char*)0, 0 };
4892 static KmParameter _GEANT_CONTROL_KINE_PKINE9 = { "PKINE9", 6, "PKINE(9)",
4893 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4894 KmTYPE_REAL, &_GEANT_CONTROL_KINE_PKINE9_type };
4895 static KmParReal _GEANT_CONTROL_KINE_PKINE10_type = { (char*)0, (char*)0,
4896 (char*)0, (char*)0, 0 };
4897 static KmParameter _GEANT_CONTROL_KINE_PKINE10 = { "PKINE10", 7, "PKINE(10)",
4898 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4899 KmTYPE_REAL, &_GEANT_CONTROL_KINE_PKINE10_type };
4900 static KmParameter *_GEANT_CONTROL_KINE_parameters[] = {
4901 &_GEANT_CONTROL_KINE_IKINE, &_GEANT_CONTROL_KINE_PKINE1,
4902 &_GEANT_CONTROL_KINE_PKINE2, &_GEANT_CONTROL_KINE_PKINE3,
4903 &_GEANT_CONTROL_KINE_PKINE4, &_GEANT_CONTROL_KINE_PKINE5,
4904 &_GEANT_CONTROL_KINE_PKINE6, &_GEANT_CONTROL_KINE_PKINE7,
4905 &_GEANT_CONTROL_KINE_PKINE8, &_GEANT_CONTROL_KINE_PKINE9,
4906 &_GEANT_CONTROL_KINE_PKINE10 };
4907 static char *_GEANT_CONTROL_KINE_guidance[] = {
4908 "Set the variables in /GCFLAG/ IKINE, PKINE(10)" };
4909 static KmCommand _GEANT_CONTROL_KINE = { &_GEANT_CONTROL_RUNG,
4910 "/GEANT/CONTROL/KINE", "KINE", 0, 2, 11, 1, _GEANT_CONTROL_KINE_parameters,
4911 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
4912 _GEANT_CONTROL_KINE_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
4913 (char*)0, (int*)0 };
4915 static char *_GEANT_CONTROL_guidance[] = { "Control commands." };
4916 static KmMenu _GEANT_CONTROL = { (KmMenu*)0, (KmMenu*)0, "/GEANT/CONTROL",
4917 "CONTROL", 2, &_GEANT_CONTROL_KINE, 1, _GEANT_CONTROL_guidance, 0, (char**)0,
4920 static KmMenu _GEANT = { (KmMenu*)0, &_GEANT_CONTROL, "/GEANT", "GEANT", 1,
4921 (KmCommand*)0, 0, (char**)0, 0, (char**)0, 0, (char**)0 };
4923 klnkmenu( &_GEANT, 950303 );
4938 # pragma linkage(GKDZ,FORTRAN)
4939 # pragma linkage(GXDZ,FORTRAN)
4942 extern void gkdz_();
4943 extern void gxdz_();
4948 static KmParameter _GEANT_DZ_DIRZ_PATH = { "PATH", 4,
4949 "Name of the RZ directory to analyse", (char*)0, (char*)0, 20, 0, (char**)0,
4950 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
4951 static KmParameter *_GEANT_DZ_DIRZ_parameters[] = { &_GEANT_DZ_DIRZ_PATH };
4952 static char *_GEANT_DZ_DIRZ_guidance[] = {
4953 "Facility to display RZ directory trees.",
4954 " CALL DZDIRZ(0,LDUMMY,0,path,'N',1,0,1)" };
4955 static KmCommand _GEANT_DZ_DIRZ = { (KmCommand*)0, "/GEANT/DZ/DIRZ", "DIRZ",
4956 0, 2, 1, 0, _GEANT_DZ_DIRZ_parameters, 0, 0, gxdz_, (IntFunc*)0,
4957 (SUBROUTINE*)0, (pCharFunc*)0, 2, _GEANT_DZ_DIRZ_guidance, 0, (char**)0, 0,
4958 (char**)0, 0, (char**)0, (char*)0, (int*)0 };
4960 static KmParameter _GEANT_DZ_DISP_BANK = { "BANK", 4, "Name of the bank",
4961 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4962 KmTYPE_CHAR, (void*)0 };
4963 static KmParameter _GEANT_DZ_DISP_PATH = { "PATH", 4, "Name of the doc file",
4964 " ", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
4966 static KmParInt _GEANT_DZ_DISP_NUMBER_type = { (char*)0, (char*)0,
4967 (char*)0, (char*)0, 0 };
4968 static KmParameter _GEANT_DZ_DISP_NUMBER = { "NUMBER", 6,
4969 "Number of the bank", "1", (char*)0, 8, 0, (char**)0, 0, (char**)0,
4970 (KmParFlag)0, KmTYPE_INT, &_GEANT_DZ_DISP_NUMBER_type };
4971 static KmParameter *_GEANT_DZ_DISP_parameters[] = { &_GEANT_DZ_DISP_BANK,
4972 &_GEANT_DZ_DISP_PATH, &_GEANT_DZ_DISP_NUMBER };
4973 static char *_GEANT_DZ_DISP_guidance[] = { "Interactive bank display tool.",
4974 " CALL DZDISP(IXSTOR,LBANK,path,'N',1,0,1,IWTYPE)" };
4975 static KmCommand _GEANT_DZ_DISP = { &_GEANT_DZ_DIRZ, "/GEANT/DZ/DISP", "DISP",
4976 0, 2, 3, 1, _GEANT_DZ_DISP_parameters, 0, 0, gxdz_, (IntFunc*)0,
4977 (SUBROUTINE*)0, (pCharFunc*)0, 2, _GEANT_DZ_DISP_guidance, 0, (char**)0, 0,
4978 (char**)0, 0, (char**)0, (char*)0, (int*)0 };
4980 static KmParInt _GEANT_DZ_DDIV_IDIV_type = { (char*)0, (char*)0, (char*)0,
4982 static KmParameter _GEANT_DZ_DDIV_IDIV = { "IDIV", 4, "Division number", "2",
4983 (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
4984 &_GEANT_DZ_DDIV_IDIV_type };
4985 static KmParameter _GEANT_DZ_DDIV_PATH = { "PATH", 4, "Name of the doc file",
4986 " ", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
4988 static KmParameter *_GEANT_DZ_DDIV_parameters[] = { &_GEANT_DZ_DDIV_IDIV,
4989 &_GEANT_DZ_DDIV_PATH };
4990 static char *_GEANT_DZ_DDIV_guidance[] = {
4991 "Facility to display the layout of stores and divisions.",
4992 " CALL DZDDIV(idiv,LDUMMY,path,'IN',1,0,1,IWTYPE)" };
4993 static KmCommand _GEANT_DZ_DDIV = { &_GEANT_DZ_DISP, "/GEANT/DZ/DDIV", "DDIV",
4994 0, 2, 2, 0, _GEANT_DZ_DDIV_parameters, 0, 0, gxdz_, (IntFunc*)0,
4995 (SUBROUTINE*)0, (pCharFunc*)0, 2, _GEANT_DZ_DDIV_guidance, 0, (char**)0, 0,
4996 (char**)0, 0, (char**)0, (char*)0, (int*)0 };
4998 static KmParInt _GEANT_DZ_STORE_IXSTOR_type = { "0", "24", "0", "24", 0 };
4999 static KmParameter _GEANT_DZ_STORE_IXSTOR = { "IXSTOR", 6, "Store number",
5000 "0", (char*)0, 3, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
5001 &_GEANT_DZ_STORE_IXSTOR_type };
5002 static KmParameter *_GEANT_DZ_STORE_parameters[] = { &_GEANT_DZ_STORE_IXSTOR };
5003 static char *_GEANT_DZ_STORE_guidance[] = {
5004 "Display the structure of the ZEBRA store IXSTOR.",
5005 "Output the parameters characterizing the store, followed by a",
5006 "list of all divisions and all link areas associated with the store in",
5008 static KmCommand _GEANT_DZ_STORE = { &_GEANT_DZ_DDIV, "/GEANT/DZ/STORE",
5009 "STORE", 0, 2, 1, 0, _GEANT_DZ_STORE_parameters, 0, 0, gxdz_, (IntFunc*)0,
5010 (SUBROUTINE*)0, (pCharFunc*)0, 4, _GEANT_DZ_STORE_guidance, 0, (char**)0, 0,
5011 (char**)0, 0, (char**)0, (char*)0, (int*)0 };
5013 static KmParInt _GEANT_DZ_VERIFY_IDIV_type = { "0", "24", "0", "24", 0 };
5014 static KmParameter _GEANT_DZ_VERIFY_IDIV = { "IDIV", 4, "Division number ",
5015 "0", (char*)0, 3, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
5016 &_GEANT_DZ_VERIFY_IDIV_type };
5017 static KmParOption _GEANT_DZ_VERIFY_CHOPT_type = { (char**)0, (int*)0, (int*)0
5019 static KmParameter _GEANT_DZ_VERIFY_CHOPT = { "CHOPT", 5, "Options", "CLSU",
5020 (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_OPTION,
5021 &_GEANT_DZ_VERIFY_CHOPT_type };
5022 static KmParameter *_GEANT_DZ_VERIFY_parameters[] = { &_GEANT_DZ_VERIFY_IDIV,
5023 &_GEANT_DZ_VERIFY_CHOPT };
5024 static char *_GEANT_DZ_VERIFY_guidance[] = {
5025 "Check the structure of one or more ZEBRA divisions.",
5026 "The verification detail depends on the settings in CHOPT.",
5027 " CHOPT='C' Check chaining of banks only",
5028 " CHOPT='L' Check validity of the structural links (implies 'C')",
5029 " CHOPT='S' Check the store parameters",
5030 " CHOPT='U' Check the validity of the up and origin (implies 'C')",
5031 " CHOPT='F' Errors are considered fatal and generate a call to ZFATAL" };
5032 static KmCommand _GEANT_DZ_VERIFY = { &_GEANT_DZ_STORE, "/GEANT/DZ/VERIFY",
5033 "VERIFY", 0, 2, 2, 0, _GEANT_DZ_VERIFY_parameters, 0, 0, gxdz_, (IntFunc*)0,
5034 (SUBROUTINE*)0, (pCharFunc*)0, 7, _GEANT_DZ_VERIFY_guidance, 0, (char**)0, 0,
5035 (char**)0, 0, (char**)0, (char*)0, (int*)0 };
5037 static KmParInt _GEANT_DZ_SNAP_IDIV_type = { "0", "24", "0", "24", 0 };
5038 static KmParameter _GEANT_DZ_SNAP_IDIV = { "IDIV", 4, "Division number ", "2",
5039 (char*)0, 3, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
5040 &_GEANT_DZ_SNAP_IDIV_type };
5041 static KmParOption _GEANT_DZ_SNAP_CHOPT_type = { (char**)0, (int*)0, (int*)0 };
5042 static KmParameter _GEANT_DZ_SNAP_CHOPT = { "CHOPT", 5, "Options", "M",
5043 (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_OPTION,
5044 &_GEANT_DZ_SNAP_CHOPT_type };
5045 static KmParameter *_GEANT_DZ_SNAP_parameters[] = { &_GEANT_DZ_SNAP_IDIV,
5046 &_GEANT_DZ_SNAP_CHOPT };
5047 static char *_GEANT_DZ_SNAP_guidance[] = { "Snap of one or more divisions.",
5048 "Provides a snapshot of one or more divisions in a ZEBRA store.",
5049 "The kind of information provided is controlled by CHOPT.",
5050 " CHOPT='M' Print Map entry for each bank",
5051 " CHOPT='E' Extend map entry to dump all links of each bank",
5052 " (otherwise only as many links as will fit on a line)",
5053 " CHOPT='F' Full. Dump all active banks, links and data",
5054 " CHOPT='K' Kill. Dropped banks to be treated as active",
5055 " (dropped banks are not normally dumped under D or F option)",
5056 " CHOPT='L' Dump all Link areas associated with the store",
5057 " CHOPT='W' Dump the Working space, links and data",
5058 " CHOPT='Z' Dump the information in hexadecimal." };
5059 static KmCommand _GEANT_DZ_SNAP = { &_GEANT_DZ_VERIFY, "/GEANT/DZ/SNAP",
5060 "SNAP", 0, 2, 2, 0, _GEANT_DZ_SNAP_parameters, 0, 0, gxdz_, (IntFunc*)0,
5061 (SUBROUTINE*)0, (pCharFunc*)0, 12, _GEANT_DZ_SNAP_guidance, 0, (char**)0, 0,
5062 (char**)0, 0, (char**)0, (char*)0, (int*)0 };
5064 static KmParameter _GEANT_DZ_SHOW_NAME = { "NAME", 4, "Bank name", (char*)0,
5065 (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
5067 static KmParInt _GEANT_DZ_SHOW_NUMBER_type = { (char*)0, (char*)0,
5068 (char*)0, (char*)0, 0 };
5069 static KmParameter _GEANT_DZ_SHOW_NUMBER = { "NUMBER", 6, "Bank number", "1",
5070 (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
5071 &_GEANT_DZ_SHOW_NUMBER_type };
5072 static KmParOption _GEANT_DZ_SHOW_CHOPT_type = { (char**)0, (int*)0, (int*)0 };
5073 static KmParameter _GEANT_DZ_SHOW_CHOPT = { "CHOPT", 5, "Options", "BSV",
5074 (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_OPTION,
5075 &_GEANT_DZ_SHOW_CHOPT_type };
5076 static KmParameter *_GEANT_DZ_SHOW_parameters[] = { &_GEANT_DZ_SHOW_NAME,
5077 &_GEANT_DZ_SHOW_NUMBER, &_GEANT_DZ_SHOW_CHOPT };
5078 static char *_GEANT_DZ_SHOW_guidance[] = {
5079 "Display the contents of a bank or a data structure",
5080 "identified by its NAME and NUMBER.",
5081 "The output format of the data part is controlled by the internal",
5082 "or external I/O characteristic.", " CHOPT='B' Print the bank.",
5083 " CHOPT='S' Print the bank contents from left to right Sideways",
5084 " with up to ten elements per line.",
5085 " CHOPT='V' Print the vertical (down) structure.",
5086 " CHOPT='D' Print the bank contents from top to bottom Downwards",
5087 " with five elements per line.",
5088 " CHOPT='L' Print the linear structure.",
5089 " CHOPT='Z' Print the data part of each bank in hexadecimal format" };
5090 static KmCommand _GEANT_DZ_SHOW = { &_GEANT_DZ_SNAP, "/GEANT/DZ/SHOW", "SHOW",
5091 0, 2, 3, 1, _GEANT_DZ_SHOW_parameters, 0, 0, gxdz_, (IntFunc*)0,
5092 (SUBROUTINE*)0, (pCharFunc*)0, 12, _GEANT_DZ_SHOW_guidance, 0, (char**)0, 0,
5093 (char**)0, 0, (char**)0, (char*)0, (int*)0 };
5095 static KmParameter _GEANT_DZ_SURV_NAME = { "NAME", 4, "Bank name", (char*)0,
5096 (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
5098 static KmParInt _GEANT_DZ_SURV_NUMBER_type = { (char*)0, (char*)0,
5099 (char*)0, (char*)0, 0 };
5100 static KmParameter _GEANT_DZ_SURV_NUMBER = { "NUMBER", 6, "Bank number", "1",
5101 (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
5102 &_GEANT_DZ_SURV_NUMBER_type };
5103 static KmParameter *_GEANT_DZ_SURV_parameters[] = { &_GEANT_DZ_SURV_NAME,
5104 &_GEANT_DZ_SURV_NUMBER };
5105 static char *_GEANT_DZ_SURV_guidance[] = {
5106 "Print a survey of the structure identified by NAME, NUMBER." };
5107 static KmCommand _GEANT_DZ_SURV = { &_GEANT_DZ_SHOW, "/GEANT/DZ/SURV", "SURV",
5108 0, 2, 2, 1, _GEANT_DZ_SURV_parameters, 0, 0, gxdz_, (IntFunc*)0,
5109 (SUBROUTINE*)0, (pCharFunc*)0, 1, _GEANT_DZ_SURV_guidance, 0, (char**)0, 0,
5110 (char**)0, 0, (char**)0, (char*)0, (int*)0 };
5112 static KmMenu _GEANT_DZ = { (KmMenu*)0, (KmMenu*)0, "/GEANT/DZ", "DZ", 2,
5113 &_GEANT_DZ_SURV, 0, (char**)0, 0, (char**)0, 0, (char**)0 };
5115 static KmMenu _GEANT = { (KmMenu*)0, &_GEANT_DZ, "/GEANT", "GEANT", 1,
5116 (KmCommand*)0, 0, (char**)0, 0, (char**)0, 0, (char**)0 };
5118 klnkmenu( &_GEANT, 950303 );
5133 # pragma linkage(GKFZ,FORTRAN)
5134 # pragma linkage(GXFZ,FORTRAN)
5137 extern void gkfz_();
5138 extern void gxfz_();
5143 static KmParInt _GEANT_FZ_FZCLOSE_LUN_type = { (char*)0, (char*)0,
5144 (char*)0, (char*)0, 0 };
5145 static KmParameter _GEANT_FZ_FZCLOSE_LUN = { "LUN", 3,
5146 "Fortran unit of the FZ to close", (char*)0, (char*)0, 8, 0, (char**)0, 0,
5147 (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_FZ_FZCLOSE_LUN_type };
5148 static KmParameter *_GEANT_FZ_FZCLOSE_parameters[] = { &_GEANT_FZ_FZCLOSE_LUN
5150 static char *_GEANT_FZ_FZCLOSE_guidance[] = { "Equivalent to a call to:",
5151 " CALL GCLOSE(LUN,IER)" };
5152 static KmCommand _GEANT_FZ_FZCLOSE = { (KmCommand*)0, "/GEANT/FZ/FZCLOSE",
5153 "FZCLOSE", 0, 2, 1, 1, _GEANT_FZ_FZCLOSE_parameters, 0, 0, gxfz_,
5154 (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 2, _GEANT_FZ_FZCLOSE_guidance, 0,
5155 (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
5157 static KmParInt _GEANT_FZ_FZOUT_LUN_type = { (char*)0, (char*)0, (char*)0,
5159 static KmParameter _GEANT_FZ_FZOUT_LUN = { "LUN", 3,
5160 "Fortran unit of the FZ file", (char*)0, (char*)0, 8, 0, (char**)0, 0,
5161 (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_FZ_FZOUT_LUN_type };
5162 static KmParameter _GEANT_FZ_FZOUT_KEYSU = { "KEYSU", 5,
5163 "Name of the data structure to be saved", (char*)0, (char*)0, 20, 0,
5164 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
5165 static KmParInt _GEANT_FZ_FZOUT_IDENT_type = { (char*)0, (char*)0,
5166 (char*)0, (char*)0, 0 };
5167 static KmParameter _GEANT_FZ_FZOUT_IDENT = { "IDENT", 5,
5168 "Version of the data structure to be saved", "1", (char*)0, 8, 0, (char**)0,
5169 0, (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_FZ_FZOUT_IDENT_type };
5170 static KmParameter *_GEANT_FZ_FZOUT_parameters[] = { &_GEANT_FZ_FZOUT_LUN,
5171 &_GEANT_FZ_FZOUT_KEYSU, &_GEANT_FZ_FZOUT_IDENT };
5172 static char *_GEANT_FZ_FZOUT_guidance[] = { "Equivalent to a call to:",
5173 " CALL GFOUT(LUN,KEYSU,1,IDENT,' ',IER)" };
5174 static KmCommand _GEANT_FZ_FZOUT = { &_GEANT_FZ_FZCLOSE, "/GEANT/FZ/FZOUT",
5175 "FZOUT", 0, 2, 3, 2, _GEANT_FZ_FZOUT_parameters, 0, 0, gxfz_, (IntFunc*)0,
5176 (SUBROUTINE*)0, (pCharFunc*)0, 2, _GEANT_FZ_FZOUT_guidance, 0, (char**)0, 0,
5177 (char**)0, 0, (char**)0, (char*)0, (int*)0 };
5179 static KmParInt _GEANT_FZ_FZOPEN_LUN_type = { (char*)0, (char*)0, (char*)0,
5181 static KmParameter _GEANT_FZ_FZOPEN_LUN = { "LUN", 3,
5182 "Fortran unit with which to open the file", (char*)0, (char*)0, 8, 0,
5183 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_FZ_FZOPEN_LUN_type
5185 static KmParameter _GEANT_FZ_FZOPEN_FILE = { "FILE", 4,
5186 "Name of the file to be opened", (char*)0, (char*)0, 20, 0, (char**)0, 0,
5187 (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
5188 static KmParameter _GEANT_FZ_FZOPEN_LUNTYP = { "LUNTYP", 6,
5189 "Type of FZ file to be opened by GOPEN", "XI", (char*)0, 20, 0, (char**)0, 0,
5190 (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
5191 static KmParInt _GEANT_FZ_FZOPEN_LEN_type = { (char*)0, (char*)0, (char*)0,
5193 static KmParameter _GEANT_FZ_FZOPEN_LEN = { "LEN", 3,
5194 "Recordlenght of the file", "0", (char*)0, 8, 0, (char**)0, 0, (char**)0,
5195 (KmParFlag)0, KmTYPE_INT, &_GEANT_FZ_FZOPEN_LEN_type };
5196 static KmParOption _GEANT_FZ_FZOPEN_CHOPT_type = { (char**)0, (int*)0, (int*)0
5198 static KmParameter _GEANT_FZ_FZOPEN_CHOPT = { "CHOPT", 5,
5199 "Optional parameter to specify the action", " ", (char*)0, 20, 0, (char**)0,
5200 0, (char**)0, (KmParFlag)0, KmTYPE_OPTION, &_GEANT_FZ_FZOPEN_CHOPT_type };
5201 static KmParameter *_GEANT_FZ_FZOPEN_parameters[] = { &_GEANT_FZ_FZOPEN_LUN,
5202 &_GEANT_FZ_FZOPEN_FILE, &_GEANT_FZ_FZOPEN_LUNTYP, &_GEANT_FZ_FZOPEN_LEN,
5203 &_GEANT_FZ_FZOPEN_CHOPT };
5204 static char *_GEANT_FZ_FZOPEN_guidance[] = { "Equivalent to a call to:",
5205 " CALL GOPEN(LUN,FILE,LUNTYP,LEN,IER)",
5206 "If CHOPT = I then a call to GFIN or GFOUT will be performed in addition",
5207 "according to the value of LUNTYP, with the key INIT to save or retrieve",
5208 "the whole initialization data structure." };
5209 static KmCommand _GEANT_FZ_FZOPEN = { &_GEANT_FZ_FZOUT, "/GEANT/FZ/FZOPEN",
5210 "FZOPEN", 0, 2, 5, 4, _GEANT_FZ_FZOPEN_parameters, 0, 0, gxfz_, (IntFunc*)0,
5211 (SUBROUTINE*)0, (pCharFunc*)0, 5, _GEANT_FZ_FZOPEN_guidance, 0, (char**)0, 0,
5212 (char**)0, 0, (char**)0, (char*)0, (int*)0 };
5214 static KmParInt _GEANT_FZ_FZIN_LUN_type = { (char*)0, (char*)0, (char*)0,
5216 static KmParameter _GEANT_FZ_FZIN_LUN = { "LUN", 3,
5217 "Fortran unit of the FZ file", (char*)0, (char*)0, 8, 0, (char**)0, 0,
5218 (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_FZ_FZIN_LUN_type };
5219 static KmParameter _GEANT_FZ_FZIN_KEYSU = { "KEYSU", 5,
5220 "Name of the data structure to be retrieved", (char*)0, (char*)0, 20, 0,
5221 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
5222 static KmParInt _GEANT_FZ_FZIN_IDENT_type = { (char*)0, (char*)0, (char*)0,
5224 static KmParameter _GEANT_FZ_FZIN_IDENT = { "IDENT", 5,
5225 "Version of the data structure to be retrieved", "0", (char*)0, 8, 0,
5226 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_FZ_FZIN_IDENT_type
5228 static KmParameter *_GEANT_FZ_FZIN_parameters[] = { &_GEANT_FZ_FZIN_LUN,
5229 &_GEANT_FZ_FZIN_KEYSU, &_GEANT_FZ_FZIN_IDENT };
5230 static char *_GEANT_FZ_FZIN_guidance[] = { "Equivalent to a call to:",
5231 " CALL GFIN(LUN,KEYSU,1,IDENT,' ',IER)" };
5232 static KmCommand _GEANT_FZ_FZIN = { &_GEANT_FZ_FZOPEN, "/GEANT/FZ/FZIN",
5233 "FZIN", 0, 2, 3, 2, _GEANT_FZ_FZIN_parameters, 0, 0, gxfz_, (IntFunc*)0,
5234 (SUBROUTINE*)0, (pCharFunc*)0, 2, _GEANT_FZ_FZIN_guidance, 0, (char**)0, 0,
5235 (char**)0, 0, (char**)0, (char*)0, (int*)0 };
5237 static char *_GEANT_FZ_guidance[] = { "ZEBRA/FZ commands" };
5238 static KmMenu _GEANT_FZ = { (KmMenu*)0, (KmMenu*)0, "/GEANT/FZ", "FZ", 2,
5239 &_GEANT_FZ_FZIN, 1, _GEANT_FZ_guidance, 0, (char**)0, 0, (char**)0 };
5241 static KmMenu _GEANT = { (KmMenu*)0, &_GEANT_FZ, "/GEANT", "GEANT", 1,
5242 (KmCommand*)0, 0, (char**)0, 0, (char**)0, 0, (char**)0 };
5244 klnkmenu( &_GEANT, 950303 );
5259 # pragma linkage(GKRZ,FORTRAN)
5260 # pragma linkage(GXRZ,FORTRAN)
5263 extern void gkrz_();
5264 extern void gxrz_();
5269 static KmParameter _GEANT_RZ_FREE_CHDIR = { "CHDIR", 5, "Lock identifier",
5270 "RZFILE", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
5271 KmTYPE_CHAR, (void*)0 };
5272 static KmParameter *_GEANT_RZ_FREE_parameters[] = { &_GEANT_RZ_FREE_CHDIR };
5273 static char *_GEANT_RZ_FREE_guidance[] = { "Free an RZ directory." };
5274 static KmCommand _GEANT_RZ_FREE = { (KmCommand*)0, "/GEANT/RZ/FREE", "FREE",
5275 0, 2, 1, 1, _GEANT_RZ_FREE_parameters, 0, 0, gxrz_, (IntFunc*)0,
5276 (SUBROUTINE*)0, (pCharFunc*)0, 1, _GEANT_RZ_FREE_guidance, 0, (char**)0, 0,
5277 (char**)0, 0, (char**)0, (char*)0, (int*)0 };
5279 static KmParameter _GEANT_RZ_LOCK_CHDIR = { "CHDIR", 5, "Lock identifier",
5280 "RZFILE", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
5281 KmTYPE_CHAR, (void*)0 };
5282 static KmParameter *_GEANT_RZ_LOCK_parameters[] = { &_GEANT_RZ_LOCK_CHDIR };
5283 static char *_GEANT_RZ_LOCK_guidance[] = { "Lock an RZ directory." };
5284 static KmCommand _GEANT_RZ_LOCK = { &_GEANT_RZ_FREE, "/GEANT/RZ/LOCK", "LOCK",
5285 0, 2, 1, 1, _GEANT_RZ_LOCK_parameters, 0, 0, gxrz_, (IntFunc*)0,
5286 (SUBROUTINE*)0, (pCharFunc*)0, 1, _GEANT_RZ_LOCK_guidance, 0, (char**)0, 0,
5287 (char**)0, 0, (char**)0, (char*)0, (int*)0 };
5289 static KmParameter _GEANT_RZ_SCR_OBJECT = { "OBJECT", 6, "Structure name",
5290 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
5291 KmTYPE_CHAR, (void*)0 };
5292 static KmParInt _GEANT_RZ_SCR_IDVERS_type = { (char*)0, (char*)0, (char*)0,
5294 static KmParameter _GEANT_RZ_SCR_IDVERS = { "IDVERS", 6, "Version number",
5295 "1", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
5296 &_GEANT_RZ_SCR_IDVERS_type };
5297 static KmParameter *_GEANT_RZ_SCR_parameters[] = { &_GEANT_RZ_SCR_OBJECT,
5298 &_GEANT_RZ_SCR_IDVERS };
5299 static char *_GEANT_RZ_SCR_guidance[] = {
5300 "Delete entry identified by OBJECT,IDVERS on RZ file.",
5301 "OBJECT may be : MATE,TMED,VOLU,ROTM,SETS,PART,SCAN, *",
5302 "If OBJECT= * delete all entries with IDVERS." };
5303 static KmCommand _GEANT_RZ_SCR = { &_GEANT_RZ_LOCK, "/GEANT/RZ/SCR", "SCR", 0,
5304 2, 2, 1, _GEANT_RZ_SCR_parameters, 0, 0, gxrz_, (IntFunc*)0, (SUBROUTINE*)0,
5305 (pCharFunc*)0, 3, _GEANT_RZ_SCR_guidance, 0, (char**)0, 0, (char**)0, 0,
5306 (char**)0, (char*)0, (int*)0 };
5308 static KmParInt _GEANT_RZ_PURGE_NKEEP_type = { (char*)0, (char*)0,
5309 (char*)0, (char*)0, 0 };
5310 static KmParameter _GEANT_RZ_PURGE_NKEEP = { "NKEEP", 5,
5311 "Number of cycles to keep", "1", (char*)0, 8, 0, (char**)0, 0, (char**)0,
5312 (KmParFlag)0, KmTYPE_INT, &_GEANT_RZ_PURGE_NKEEP_type };
5313 static KmParameter *_GEANT_RZ_PURGE_parameters[] = { &_GEANT_RZ_PURGE_NKEEP };
5314 static char *_GEANT_RZ_PURGE_guidance[] = { "Purge an RZ directory." };
5315 static KmCommand _GEANT_RZ_PURGE = { &_GEANT_RZ_SCR, "/GEANT/RZ/PURGE",
5316 "PURGE", 0, 2, 1, 0, _GEANT_RZ_PURGE_parameters, 0, 0, gxrz_, (IntFunc*)0,
5317 (SUBROUTINE*)0, (pCharFunc*)0, 1, _GEANT_RZ_PURGE_guidance, 0, (char**)0, 0,
5318 (char**)0, 0, (char**)0, (char*)0, (int*)0 };
5320 static KmParameter _GEANT_RZ_LDIR_CHPATH = { "CHPATH", 6, "Path name", " ",
5321 (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
5323 static KmParOption _GEANT_RZ_LDIR_CHOPT_type = { (char**)0, (int*)0, (int*)0 };
5324 static KmParameter _GEANT_RZ_LDIR_CHOPT = { "CHOPT", 5, "CHOPT", " ",
5325 (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_OPTION,
5326 &_GEANT_RZ_LDIR_CHOPT_type };
5327 static KmParameter *_GEANT_RZ_LDIR_parameters[] = { &_GEANT_RZ_LDIR_CHPATH,
5328 &_GEANT_RZ_LDIR_CHOPT };
5329 static char *_GEANT_RZ_LDIR_guidance[] = {
5330 "List the contents of a directory (memory or disk).",
5331 "To list all RZ files currently open, type 'LD //'." };
5332 static KmCommand _GEANT_RZ_LDIR = { &_GEANT_RZ_PURGE, "/GEANT/RZ/LDIR",
5333 "LDIR", 0, 2, 2, 0, _GEANT_RZ_LDIR_parameters, 0, 0, gxrz_, (IntFunc*)0,
5334 (SUBROUTINE*)0, (pCharFunc*)0, 2, _GEANT_RZ_LDIR_guidance, 0, (char**)0, 0,
5335 (char**)0, 0, (char**)0, (char*)0, (int*)0 };
5337 static KmParameter _GEANT_RZ_OUT_OBJECT = { "OBJECT", 6, "Structure name",
5338 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
5339 KmTYPE_CHAR, (void*)0 };
5340 static KmParInt _GEANT_RZ_OUT_IDVERS_type = { (char*)0, (char*)0, (char*)0,
5342 static KmParameter _GEANT_RZ_OUT_IDVERS = { "IDVERS", 6, "Version number",
5343 "1", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
5344 &_GEANT_RZ_OUT_IDVERS_type };
5345 static KmParOption _GEANT_RZ_OUT_CHOPT_type = { (char**)0, (int*)0, (int*)0 };
5346 static KmParameter _GEANT_RZ_OUT_CHOPT = { "CHOPT", 5, "Option", " ",
5347 (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_OPTION,
5348 &_GEANT_RZ_OUT_CHOPT_type };
5349 static KmParameter *_GEANT_RZ_OUT_parameters[] = { &_GEANT_RZ_OUT_OBJECT,
5350 &_GEANT_RZ_OUT_IDVERS, &_GEANT_RZ_OUT_CHOPT };
5351 static char *_GEANT_RZ_OUT_guidance[] = {
5352 "Write data structure identified by OBJECT,IDVERS to RZ file.",
5353 " MATE write JMATE structure", " TMED write JTMED structure",
5354 " VOLU write JVOLUM structure", " ROTM write JROTM structure",
5355 " SETS write JSET structure", " PART write JPART structure",
5356 " SCAN write LSCAN structure", " INIT write all above data structures" };
5357 static KmCommand _GEANT_RZ_OUT = { &_GEANT_RZ_LDIR, "/GEANT/RZ/OUT", "OUT", 0,
5358 2, 3, 1, _GEANT_RZ_OUT_parameters, 0, 0, gxrz_, (IntFunc*)0, (SUBROUTINE*)0,
5359 (pCharFunc*)0, 9, _GEANT_RZ_OUT_guidance, 0, (char**)0, 0, (char**)0, 0,
5360 (char**)0, (char*)0, (int*)0 };
5362 static KmParameter _GEANT_RZ_IN_OBJECT = { "OBJECT", 6, "Structure name",
5363 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
5364 KmTYPE_CHAR, (void*)0 };
5365 static KmParInt _GEANT_RZ_IN_IDVERS_type = { (char*)0, (char*)0, (char*)0,
5367 static KmParameter _GEANT_RZ_IN_IDVERS = { "IDVERS", 6, "Version number", "1",
5368 (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
5369 &_GEANT_RZ_IN_IDVERS_type };
5370 static KmParOption _GEANT_RZ_IN_CHOPT_type = { (char**)0, (int*)0, (int*)0 };
5371 static KmParameter _GEANT_RZ_IN_CHOPT = { "CHOPT", 5, "Option", " ", (char*)0,
5372 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_OPTION,
5373 &_GEANT_RZ_IN_CHOPT_type };
5374 static KmParameter *_GEANT_RZ_IN_parameters[] = { &_GEANT_RZ_IN_OBJECT,
5375 &_GEANT_RZ_IN_IDVERS, &_GEANT_RZ_IN_CHOPT };
5376 static char *_GEANT_RZ_IN_guidance[] = {
5377 "Read data structure identified by OBJECT,IDVERS into memory.",
5378 " MATE read JMATE structure", " TMED read JTMED structure",
5379 " VOLU read JVOLUM structure", " ROTM read JROTM structure",
5380 " SETS read JSET structure", " PART read JPART structure",
5381 " SCAN read LSCAN structure", " INIT read all above data structures" };
5382 static KmCommand _GEANT_RZ_IN = { &_GEANT_RZ_OUT, "/GEANT/RZ/IN", "IN", 0, 2,
5383 3, 1, _GEANT_RZ_IN_parameters, 0, 0, gxrz_, (IntFunc*)0, (SUBROUTINE*)0,
5384 (pCharFunc*)0, 9, _GEANT_RZ_IN_guidance, 0, (char**)0, 0, (char**)0, 0,
5385 (char**)0, (char*)0, (int*)0 };
5387 static KmParameter _GEANT_RZ_CDIR_CHPATH = { "CHPATH", 6, "Path name", " ",
5388 (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
5390 static KmParOption _GEANT_RZ_CDIR_CHOPT_type = { (char**)0, (int*)0, (int*)0 };
5391 static KmParameter _GEANT_RZ_CDIR_CHOPT = { "CHOPT", 5, "CHOPT", " ",
5392 (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_OPTION,
5393 &_GEANT_RZ_CDIR_CHOPT_type };
5394 static KmParameter *_GEANT_RZ_CDIR_parameters[] = { &_GEANT_RZ_CDIR_CHPATH,
5395 &_GEANT_RZ_CDIR_CHOPT };
5396 static char *_GEANT_RZ_CDIR_guidance[] = {
5397 "Change or print the current directory.",
5398 " Ex. CD dir1 ; make DIR1 the new CWD",
5399 " CD //file1/dir2 ; make //FILE1/DIR2 the new CWD",
5400 " CD ; print the name of the CWD" };
5401 static KmCommand _GEANT_RZ_CDIR = { &_GEANT_RZ_IN, "/GEANT/RZ/CDIR", "CDIR",
5402 0, 2, 2, 0, _GEANT_RZ_CDIR_parameters, 0, 0, gxrz_, (IntFunc*)0,
5403 (SUBROUTINE*)0, (pCharFunc*)0, 4, _GEANT_RZ_CDIR_guidance, 0, (char**)0, 0,
5404 (char**)0, 0, (char**)0, (char*)0, (int*)0 };
5406 static KmParameter _GEANT_RZ_MDIR_CHDIR = { "CHDIR", 5, "Directory name",
5407 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
5408 KmTYPE_CHAR, (void*)0 };
5409 static KmParOption _GEANT_RZ_MDIR_CHOPT_type = { (char**)0, (int*)0, (int*)0 };
5410 static KmParameter _GEANT_RZ_MDIR_CHOPT = { "CHOPT", 5, "Options", " ",
5411 (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_OPTION,
5412 &_GEANT_RZ_MDIR_CHOPT_type };
5413 static KmParameter *_GEANT_RZ_MDIR_parameters[] = { &_GEANT_RZ_MDIR_CHDIR,
5414 &_GEANT_RZ_MDIR_CHOPT };
5415 static char *_GEANT_RZ_MDIR_guidance[] = {
5416 "To create a new RZ directory below the current directory.", "with",
5417 " RZTAGS(1)='Object'", " RZTAGS(2)='Idvers-NR '" };
5418 static KmCommand _GEANT_RZ_MDIR = { &_GEANT_RZ_CDIR, "/GEANT/RZ/MDIR", "MDIR",
5419 0, 2, 2, 1, _GEANT_RZ_MDIR_parameters, 0, 0, gxrz_, (IntFunc*)0,
5420 (SUBROUTINE*)0, (pCharFunc*)0, 4, _GEANT_RZ_MDIR_guidance, 0, (char**)0, 0,
5421 (char**)0, 0, (char**)0, (char*)0, (int*)0 };
5423 static KmParInt _GEANT_RZ_REND_LUNRZ_type = { (char*)0, (char*)0, (char*)0,
5425 static KmParameter _GEANT_RZ_REND_LUNRZ = { "LUNRZ", 5, "Logical unit number",
5426 (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
5427 &_GEANT_RZ_REND_LUNRZ_type };
5428 static KmParameter *_GEANT_RZ_REND_parameters[] = { &_GEANT_RZ_REND_LUNRZ };
5429 static char *_GEANT_RZ_REND_guidance[] = {
5430 "Close an RZ file opened by GRFILE on logical unit LUNRZ.",
5431 " CALL GREND(LUNRZ)" };
5432 static KmCommand _GEANT_RZ_REND = { &_GEANT_RZ_MDIR, "/GEANT/RZ/REND", "REND",
5433 0, 2, 1, 1, _GEANT_RZ_REND_parameters, 0, 0, gxrz_, (IntFunc*)0,
5434 (SUBROUTINE*)0, (pCharFunc*)0, 2, _GEANT_RZ_REND_guidance, 0, (char**)0, 0,
5435 (char**)0, 0, (char**)0, (char*)0, (int*)0 };
5437 static KmParInt _GEANT_RZ_FILE_LUN_type = { (char*)0, (char*)0, (char*)0,
5439 static KmParameter _GEANT_RZ_FILE_LUN = { "LUN", 3, "Logical unit number",
5440 (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
5441 &_GEANT_RZ_FILE_LUN_type };
5442 static KmParameter _GEANT_RZ_FILE_FNAME = { "FNAME", 5, "File name", (char*)0,
5443 (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
5445 static char *_GEANT_RZ_FILE_CHOPT_range[] = { " ", "A", "N", "U" };
5446 static char *_GEANT_RZ_FILE_CHOPT_text[] = { (char*)0, (char*)0, (char*)0,
5448 static KmParOption _GEANT_RZ_FILE_CHOPT_type = { _GEANT_RZ_FILE_CHOPT_text,
5450 static KmParameter _GEANT_RZ_FILE_CHOPT = { "CHOPT", 5, "Options", " ",
5451 (char*)0, 8, 4, _GEANT_RZ_FILE_CHOPT_range, 4, _GEANT_RZ_FILE_CHOPT_range,
5452 (KmParFlag)0, KmTYPE_OPTION, &_GEANT_RZ_FILE_CHOPT_type };
5453 static KmParameter *_GEANT_RZ_FILE_parameters[] = { &_GEANT_RZ_FILE_LUN,
5454 &_GEANT_RZ_FILE_FNAME, &_GEANT_RZ_FILE_CHOPT };
5455 static char *_GEANT_RZ_FILE_guidance[] = { "Open a GRZ file.",
5456 " CHOPT=' ' readonly mode", " CHOPT='U' update mode",
5457 " CHOPT='N' create new file",
5458 " CHOPT='I' Read all structures from existing file",
5459 " CHOPT='O' Write all structures on file" };
5460 static KmCommand _GEANT_RZ_FILE = { &_GEANT_RZ_REND, "/GEANT/RZ/FILE", "FILE",
5461 0, 2, 3, 2, _GEANT_RZ_FILE_parameters, 0, 0, gxrz_, (IntFunc*)0,
5462 (SUBROUTINE*)0, (pCharFunc*)0, 6, _GEANT_RZ_FILE_guidance, 0, (char**)0, 0,
5463 (char**)0, 0, (char**)0, (char*)0, (int*)0 };
5465 static KmParInt _GEANT_RZ_PQUEST_IQ1_type = { (char*)0, (char*)0, (char*)0,
5467 static KmParameter _GEANT_RZ_PQUEST_IQ1 = { "IQ1", 3,
5468 "Lower limit for IQ index", "1", (char*)0, 8, 0, (char**)0, 0, (char**)0,
5469 (KmParFlag)0, KmTYPE_INT, &_GEANT_RZ_PQUEST_IQ1_type };
5470 static KmParInt _GEANT_RZ_PQUEST_IQ2_type = { (char*)0, (char*)0, (char*)0,
5472 static KmParameter _GEANT_RZ_PQUEST_IQ2 = { "IQ2", 3,
5473 "Upper limit for IQ index", "20", (char*)0, 8, 0, (char**)0, 0, (char**)0,
5474 (KmParFlag)0, KmTYPE_INT, &_GEANT_RZ_PQUEST_IQ2_type };
5475 static KmParameter *_GEANT_RZ_PQUEST_parameters[] = { &_GEANT_RZ_PQUEST_IQ1,
5476 &_GEANT_RZ_PQUEST_IQ2 };
5477 static char *_GEANT_RZ_PQUEST_guidance[] = {
5478 "Print the array IQUEST in /QUEST/." };
5479 static KmCommand _GEANT_RZ_PQUEST = { &_GEANT_RZ_FILE, "/GEANT/RZ/PQUEST",
5480 "PQUEST", 0, 2, 2, 0, _GEANT_RZ_PQUEST_parameters, 0, 0, gxrz_, (IntFunc*)0,
5481 (SUBROUTINE*)0, (pCharFunc*)0, 1, _GEANT_RZ_PQUEST_guidance, 0, (char**)0, 0,
5482 (char**)0, 0, (char**)0, (char*)0, (int*)0 };
5484 static char *_GEANT_RZ_guidance[] = { "ZEBRA/RZ commands." };
5485 static KmMenu _GEANT_RZ = { (KmMenu*)0, (KmMenu*)0, "/GEANT/RZ", "RZ", 2,
5486 &_GEANT_RZ_PQUEST, 1, _GEANT_RZ_guidance, 0, (char**)0, 0, (char**)0 };
5488 static KmMenu _GEANT = { (KmMenu*)0, &_GEANT_RZ, "/GEANT", "GEANT", 1,
5489 (KmCommand*)0, 0, (char**)0, 0, (char**)0, 0, (char**)0 };
5491 klnkmenu( &_GEANT, 950303 );
5496 # define gkscan_ gkscan
5497 # define gxscan_ gxscan
5501 # define gkscan_ GKSCAN
5502 # define gxscan_ GXSCAN
5506 # pragma linkage(GKSCAN,FORTRAN)
5507 # pragma linkage(GXSCAN,FORTRAN)
5510 extern void gkscan_();
5511 extern void gxscan_();
5516 static KmParInt _GEANT_SCAN_HSCAN_IDPHI_type = { (char*)0, (char*)0,
5517 (char*)0, (char*)0, 0 };
5518 static KmParameter _GEANT_SCAN_HSCAN_IDPHI = { "IDPHI", 5,
5519 "Histogram/phi identifier", "1000", (char*)0, 8, 0, (char**)0, 0, (char**)0,
5520 (KmParFlag)0, KmTYPE_INT, &_GEANT_SCAN_HSCAN_IDPHI_type };
5521 static KmParameter _GEANT_SCAN_HSCAN_VOLUME = { "VOLUME", 6, "Volume name",
5522 "XXXX", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
5524 static char *_GEANT_SCAN_HSCAN_CHOPT_range[] = { " ", "O", "P", "I", "X", "L"
5526 static char *_GEANT_SCAN_HSCAN_CHOPT_text[] = { (char*)0, (char*)0, (char*)0,
5527 (char*)0, (char*)0, (char*)0 };
5528 static KmParOption _GEANT_SCAN_HSCAN_CHOPT_type = {
5529 _GEANT_SCAN_HSCAN_CHOPT_text, (int*)0, (int*)0 };
5530 static KmParameter _GEANT_SCAN_HSCAN_CHOPT = { "CHOPT", 5, "List of options",
5531 "OPX", (char*)0, 8, 6, _GEANT_SCAN_HSCAN_CHOPT_range, 6,
5532 _GEANT_SCAN_HSCAN_CHOPT_range, (KmParFlag)0, KmTYPE_OPTION,
5533 &_GEANT_SCAN_HSCAN_CHOPT_type };
5534 static KmParameter *_GEANT_SCAN_HSCAN_parameters[] = {
5535 &_GEANT_SCAN_HSCAN_IDPHI, &_GEANT_SCAN_HSCAN_VOLUME, &_GEANT_SCAN_HSCAN_CHOPT
5537 static char *_GEANT_SCAN_HSCAN_guidance[] = {
5538 "Generates and plots an histogram of physics quantities such as",
5539 "the total number of radiation lengths or interaction lengths",
5540 "as a function of the SCAN parameter TETA for a given value of PHI.",
5541 " CHOPT='O' histogram is generated at Exit of VOLUME.",
5542 " CHOPT='I' histogram is generated at Entry of VOLUME.",
5543 " CHOPT='X' radiation lengths", " CHOPT='L' Interaction lengths",
5544 " CHOPT='P' Plot the histogram", "If VOLUME='XXXX' Mother volume is used.",
5545 "The histogram identifier IDPHI is used to also identify which",
5546 "PHI division to plot: IPHI=MOD(IDPHI,1000).",
5547 "If IPHI=0, then all PHI divisions are generated (not plotted)",
5548 "with histogram identifiers IDPHI+PHI division number." };
5549 static KmCommand _GEANT_SCAN_HSCAN = { (KmCommand*)0, "/GEANT/SCAN/HSCAN",
5550 "HSCAN", 0, 2, 3, 1, _GEANT_SCAN_HSCAN_parameters, 0, 0, gxscan_,
5551 (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 13, _GEANT_SCAN_HSCAN_guidance,
5552 0, (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
5554 static KmParInt _GEANT_SCAN_LSCAN_ID_type = { (char*)0, (char*)0, (char*)0,
5556 static KmParameter _GEANT_SCAN_LSCAN_ID = { "ID", 2, "Lego plot identifier",
5557 "2000", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
5558 &_GEANT_SCAN_LSCAN_ID_type };
5559 static KmParameter _GEANT_SCAN_LSCAN_VOLUME = { "VOLUME", 6, "Volume name",
5560 "XXXX", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
5562 static char *_GEANT_SCAN_LSCAN_CHOPT_range[] = { " ", "O", "P", "I", "X", "L"
5564 static char *_GEANT_SCAN_LSCAN_CHOPT_text[] = { (char*)0, (char*)0, (char*)0,
5565 (char*)0, (char*)0, (char*)0 };
5566 static KmParOption _GEANT_SCAN_LSCAN_CHOPT_type = {
5567 _GEANT_SCAN_LSCAN_CHOPT_text, (int*)0, (int*)0 };
5568 static KmParameter _GEANT_SCAN_LSCAN_CHOPT = { "CHOPT", 5, "List of options",
5569 "OPX", (char*)0, 8, 6, _GEANT_SCAN_LSCAN_CHOPT_range, 6,
5570 _GEANT_SCAN_LSCAN_CHOPT_range, (KmParFlag)0, KmTYPE_OPTION,
5571 &_GEANT_SCAN_LSCAN_CHOPT_type };
5572 static KmParameter *_GEANT_SCAN_LSCAN_parameters[] = { &_GEANT_SCAN_LSCAN_ID,
5573 &_GEANT_SCAN_LSCAN_VOLUME, &_GEANT_SCAN_LSCAN_CHOPT };
5574 static char *_GEANT_SCAN_LSCAN_guidance[] = {
5575 "Generates and plot a table of physics quantities such as",
5576 "the total number of radiation lengths or interaction lengths",
5577 "in function of the SCAN parameters TETA,PHI.",
5578 " CHOPT='O' table is generated at Exit of VOLUME.",
5579 " CHOPT='I' table is generated at Entry of VOLUME.",
5580 " CHOPT='X' radiation lengths", " CHOPT='L' Interaction lengths",
5581 " CHOPT='P' Plot the table", "If VOLUME='XXXX' Mother volume is used." };
5582 static KmCommand _GEANT_SCAN_LSCAN = { &_GEANT_SCAN_HSCAN,
5583 "/GEANT/SCAN/LSCAN", "LSCAN", 0, 2, 3, 1, _GEANT_SCAN_LSCAN_parameters, 0, 0,
5584 gxscan_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 9,
5585 _GEANT_SCAN_LSCAN_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
5586 (char*)0, (int*)0 };
5588 static KmParInt _GEANT_SCAN_PCUTS_IPARAM_type = { "0", "1", "0", "1", 0 };
5589 static KmParameter _GEANT_SCAN_PCUTS_IPARAM = { "IPARAM", 6,
5590 "Parametrization Flag", (char*)0, (char*)0, 2, 0, (char**)0, 0, (char**)0,
5591 (KmParFlag)0, KmTYPE_INT, &_GEANT_SCAN_PCUTS_IPARAM_type };
5592 static KmParReal _GEANT_SCAN_PCUTS_PCUTGA_type = { (char*)0, (char*)0,
5593 (char*)0, (char*)0, 0 };
5594 static KmParameter _GEANT_SCAN_PCUTS_PCUTGA = { "PCUTGA", 6,
5595 "Parametrization Cut for gammas", (char*)0, (char*)0, 12, 0, (char**)0, 0,
5596 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_SCAN_PCUTS_PCUTGA_type };
5597 static KmParReal _GEANT_SCAN_PCUTS_PCUTEL_type = { (char*)0, (char*)0,
5598 (char*)0, (char*)0, 0 };
5599 static KmParameter _GEANT_SCAN_PCUTS_PCUTEL = { "PCUTEL", 6,
5600 "Parametrization Cut for electrons", (char*)0, (char*)0, 12, 0, (char**)0, 0,
5601 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_SCAN_PCUTS_PCUTEL_type };
5602 static KmParReal _GEANT_SCAN_PCUTS_PCUTHA_type = { (char*)0, (char*)0,
5603 (char*)0, (char*)0, 0 };
5604 static KmParameter _GEANT_SCAN_PCUTS_PCUTHA = { "PCUTHA", 6,
5605 "Parametrization Cut for charged hadrons", (char*)0, (char*)0, 12, 0,
5606 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
5607 &_GEANT_SCAN_PCUTS_PCUTHA_type };
5608 static KmParReal _GEANT_SCAN_PCUTS_PCUTNE_type = { (char*)0, (char*)0,
5609 (char*)0, (char*)0, 0 };
5610 static KmParameter _GEANT_SCAN_PCUTS_PCUTNE = { "PCUTNE", 6,
5611 "Parametrization Cut for neutral hadrons", (char*)0, (char*)0, 12, 0,
5612 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
5613 &_GEANT_SCAN_PCUTS_PCUTNE_type };
5614 static KmParReal _GEANT_SCAN_PCUTS_PCUTMU_type = { (char*)0, (char*)0,
5615 (char*)0, (char*)0, 0 };
5616 static KmParameter _GEANT_SCAN_PCUTS_PCUTMU = { "PCUTMU", 6,
5617 "Parametrization Cut for muons", (char*)0, (char*)0, 12, 0, (char**)0, 0,
5618 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_SCAN_PCUTS_PCUTMU_type };
5619 static KmParameter *_GEANT_SCAN_PCUTS_parameters[] = {
5620 &_GEANT_SCAN_PCUTS_IPARAM, &_GEANT_SCAN_PCUTS_PCUTGA,
5621 &_GEANT_SCAN_PCUTS_PCUTEL, &_GEANT_SCAN_PCUTS_PCUTHA,
5622 &_GEANT_SCAN_PCUTS_PCUTNE, &_GEANT_SCAN_PCUTS_PCUTMU };
5623 static char *_GEANT_SCAN_PCUTS_guidance[] = {
5624 "Control parametrization at tracking time.",
5625 " IPARAM=0 No parametrization is performed",
5626 " IPARAM=1 Parametrization is performed",
5627 "If parametrization is active and a particle falls below its",
5628 "parametrization cut, then the particle will be replaced by",
5629 "a parametrized shower which will be tracked in the SCAN", "geometry." };
5630 static KmCommand _GEANT_SCAN_PCUTS = { &_GEANT_SCAN_LSCAN,
5631 "/GEANT/SCAN/PCUTS", "PCUTS", 0, 2, 6, 0, _GEANT_SCAN_PCUTS_parameters, 0, 0,
5632 gxscan_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 7,
5633 _GEANT_SCAN_PCUTS_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
5634 (char*)0, (int*)0 };
5636 static char *_GEANT_SCAN_STURN_CHOPT_range[] = { "ON", "OFF", "INIT" };
5637 static char *_GEANT_SCAN_STURN_CHOPT_text[] = { (char*)0, (char*)0, (char*)0 };
5638 static KmParOption _GEANT_SCAN_STURN_CHOPT_type = {
5639 _GEANT_SCAN_STURN_CHOPT_text, (int*)0, (int*)0 };
5640 static KmParameter _GEANT_SCAN_STURN_CHOPT = { "CHOPT", 5,
5641 "SCAN mode setting", (char*)0, (char*)0, 8, 3, _GEANT_SCAN_STURN_CHOPT_range,
5642 3, _GEANT_SCAN_STURN_CHOPT_range, (KmParFlag)0, KmTYPE_OPTION,
5643 &_GEANT_SCAN_STURN_CHOPT_type };
5644 static KmParameter *_GEANT_SCAN_STURN_parameters[] = {
5645 &_GEANT_SCAN_STURN_CHOPT };
5646 static char *_GEANT_SCAN_STURN_guidance[] = {
5647 "Switch on/off SCAN mode. If SCAN mode is on, SCAN geantinos",
5648 "are generated and tracked to fill (or complete) the current",
5649 "scan data structure. If SCAN mode is off, normal kinematics",
5650 "generation and tracking will take place. If INIT is given,",
5651 "the current SCAN data structure (if any) will be dropped",
5652 "and SCAN mode will be turned on." };
5653 static KmCommand _GEANT_SCAN_STURN = { &_GEANT_SCAN_PCUTS,
5654 "/GEANT/SCAN/STURN", "STURN", 0, 2, 1, 1, _GEANT_SCAN_STURN_parameters, 0, 0,
5655 gxscan_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 6,
5656 _GEANT_SCAN_STURN_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
5657 (char*)0, (int*)0 };
5659 static KmParReal _GEANT_SCAN_SFACTORS_FACTX0_type = { (char*)0, (char*)0,
5660 (char*)0, (char*)0, 0 };
5661 static KmParameter _GEANT_SCAN_SFACTORS_FACTX0 = { "FACTX0", 6,
5662 "Scale factor for SX0", "100.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
5663 (KmParFlag)0, KmTYPE_REAL, &_GEANT_SCAN_SFACTORS_FACTX0_type };
5664 static KmParReal _GEANT_SCAN_SFACTORS_FACTL_type = { (char*)0, (char*)0,
5665 (char*)0, (char*)0, 0 };
5666 static KmParameter _GEANT_SCAN_SFACTORS_FACTL = { "FACTL", 5,
5667 "Scale factor for SL", "1000.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
5668 (KmParFlag)0, KmTYPE_REAL, &_GEANT_SCAN_SFACTORS_FACTL_type };
5669 static KmParReal _GEANT_SCAN_SFACTORS_FACTR_type = { (char*)0, (char*)0,
5670 (char*)0, (char*)0, 0 };
5671 static KmParameter _GEANT_SCAN_SFACTORS_FACTR = { "FACTR", 5,
5672 "Scale factor for R", "100.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
5673 (KmParFlag)0, KmTYPE_REAL, &_GEANT_SCAN_SFACTORS_FACTR_type };
5674 static KmParameter *_GEANT_SCAN_SFACTORS_parameters[] = {
5675 &_GEANT_SCAN_SFACTORS_FACTX0, &_GEANT_SCAN_SFACTORS_FACTL,
5676 &_GEANT_SCAN_SFACTORS_FACTR };
5677 static char *_GEANT_SCAN_SFACTORS_guidance[] = {
5678 "Set scale factors for SX0,SL and R. The given scale factors must be",
5679 "such that:", " SX0*FACTX0 < 2**15-1 (32767)",
5680 " SL*FACTL < 2**10-1 (1023)", " SR*FACTR < 2**17-1 (131071)" };
5681 static KmCommand _GEANT_SCAN_SFACTORS = { &_GEANT_SCAN_STURN,
5682 "/GEANT/SCAN/SFACTORS", "SFACTORS", 0, 2, 3, 3,
5683 _GEANT_SCAN_SFACTORS_parameters, 0, 0, gxscan_, (IntFunc*)0, (SUBROUTINE*)0,
5684 (pCharFunc*)0, 5, _GEANT_SCAN_SFACTORS_guidance, 0, (char**)0, 0, (char**)0,
5685 0, (char**)0, (char*)0, (int*)0 };
5687 static KmParReal _GEANT_SCAN_VERTEX_VX_type = { (char*)0, (char*)0,
5688 (char*)0, (char*)0, 0 };
5689 static KmParameter _GEANT_SCAN_VERTEX_VX = { "VX", 2, "Scan X-origin", "0.",
5690 (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
5691 &_GEANT_SCAN_VERTEX_VX_type };
5692 static KmParReal _GEANT_SCAN_VERTEX_VY_type = { (char*)0, (char*)0,
5693 (char*)0, (char*)0, 0 };
5694 static KmParameter _GEANT_SCAN_VERTEX_VY = { "VY", 2, "Scan Y-origin", "0.",
5695 (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
5696 &_GEANT_SCAN_VERTEX_VY_type };
5697 static KmParReal _GEANT_SCAN_VERTEX_VZ_type = { (char*)0, (char*)0,
5698 (char*)0, (char*)0, 0 };
5699 static KmParameter _GEANT_SCAN_VERTEX_VZ = { "VZ", 2, "Scan Z-origin", "0.",
5700 (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
5701 &_GEANT_SCAN_VERTEX_VZ_type };
5702 static KmParameter *_GEANT_SCAN_VERTEX_parameters[] = {
5703 &_GEANT_SCAN_VERTEX_VX, &_GEANT_SCAN_VERTEX_VY, &_GEANT_SCAN_VERTEX_VZ };
5704 static char *_GEANT_SCAN_VERTEX_guidance[] = {
5705 "All Geantinos tracked will start from position VX,VY,VZ." };
5706 static KmCommand _GEANT_SCAN_VERTEX = { &_GEANT_SCAN_SFACTORS,
5707 "/GEANT/SCAN/VERTEX", "VERTEX", 0, 2, 3, 3, _GEANT_SCAN_VERTEX_parameters, 0,
5708 0, gxscan_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
5709 _GEANT_SCAN_VERTEX_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
5710 (char*)0, (int*)0 };
5712 static KmParameter _GEANT_SCAN_SLIST_LIST = { "LIST", 4,
5713 "List of master volumes", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
5714 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
5715 static KmParameter *_GEANT_SCAN_SLIST_parameters[] = { &_GEANT_SCAN_SLIST_LIST
5717 static char *_GEANT_SCAN_SLIST_guidance[] = {
5718 "Only boundary crossings of volumes given in LIST will be seen",
5719 "in the SCAN geometry. If no parameters are given, the current",
5720 "SCAN volumes will be listed. If a full stop (.) is given, the list",
5721 "of scan volumes will be erased." };
5722 static KmCommand _GEANT_SCAN_SLIST = { &_GEANT_SCAN_VERTEX,
5723 "/GEANT/SCAN/SLIST", "SLIST", 0, 2, 1, 1, _GEANT_SCAN_SLIST_parameters, 0, 0,
5724 gxscan_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
5725 _GEANT_SCAN_SLIST_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
5726 (char*)0, (int*)0 };
5728 static KmParInt _GEANT_SCAN_TETA_NTETA_type = { (char*)0, (char*)0,
5729 (char*)0, (char*)0, 0 };
5730 static KmParameter _GEANT_SCAN_TETA_NTETA = { "NTETA", 5,
5731 "Number of TETA divisions", "90", (char*)0, 8, 0, (char**)0, 0, (char**)0,
5732 (KmParFlag)0, KmTYPE_INT, &_GEANT_SCAN_TETA_NTETA_type };
5733 static KmParReal _GEANT_SCAN_TETA_TETMIN_type = { (char*)0, (char*)0,
5734 (char*)0, (char*)0, 0 };
5735 static KmParameter _GEANT_SCAN_TETA_TETMIN = { "TETMIN", 6,
5736 "Minimum value of TETA", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
5737 (KmParFlag)0, KmTYPE_REAL, &_GEANT_SCAN_TETA_TETMIN_type };
5738 static KmParReal _GEANT_SCAN_TETA_TETMAX_type = { (char*)0, (char*)0,
5739 (char*)0, (char*)0, 0 };
5740 static KmParameter _GEANT_SCAN_TETA_TETMAX = { "TETMAX", 6,
5741 "Maximum value of TETA", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
5742 (KmParFlag)0, KmTYPE_REAL, &_GEANT_SCAN_TETA_TETMAX_type };
5743 static KmParInt _GEANT_SCAN_TETA_DIVTYP_type = { "1", "3", "1", "3", 0 };
5744 static KmParameter _GEANT_SCAN_TETA_DIVTYP = { "DIVTYP", 6,
5745 "Type of TETA division", (char*)0, (char*)0, 2, 0, (char**)0, 0, (char**)0,
5746 (KmParFlag)0, KmTYPE_INT, &_GEANT_SCAN_TETA_DIVTYP_type };
5747 static KmParameter *_GEANT_SCAN_TETA_parameters[] = { &_GEANT_SCAN_TETA_NTETA,
5748 &_GEANT_SCAN_TETA_TETMIN, &_GEANT_SCAN_TETA_TETMAX, &_GEANT_SCAN_TETA_DIVTYP
5750 static char *_GEANT_SCAN_TETA_guidance[] = {
5751 "To specify number of divisions along TETA.",
5752 "If DIVTYP=1 divisions in pseudo-rapidity ETA.",
5753 "If DIVTYP=2 divisions in degrees following the THETA angle.",
5754 "If DIVTYP=3 divisions in cos(TETA).",
5755 "If no parameter is given, the current values of the parameters",
5757 static KmCommand _GEANT_SCAN_TETA = { &_GEANT_SCAN_SLIST, "/GEANT/SCAN/TETA",
5758 "TETA", 0, 2, 4, 1, _GEANT_SCAN_TETA_parameters, 0, 0, gxscan_, (IntFunc*)0,
5759 (SUBROUTINE*)0, (pCharFunc*)0, 6, _GEANT_SCAN_TETA_guidance, 0, (char**)0, 0,
5760 (char**)0, 0, (char**)0, (char*)0, (int*)0 };
5762 static KmParInt _GEANT_SCAN_PHI_NPHI_type = { (char*)0, (char*)0, (char*)0,
5764 static KmParameter _GEANT_SCAN_PHI_NPHI = { "NPHI", 4,
5765 "Number of PHI divisions", "90", (char*)0, 8, 0, (char**)0, 0, (char**)0,
5766 (KmParFlag)0, KmTYPE_INT, &_GEANT_SCAN_PHI_NPHI_type };
5767 static KmParReal _GEANT_SCAN_PHI_PHIMIN_type = { "0.", "360.", "0.", "360.",
5769 static KmParameter _GEANT_SCAN_PHI_PHIMIN = { "PHIMIN", 6,
5770 "Minimum PHI in degrees", "0.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
5771 (KmParFlag)0, KmTYPE_REAL, &_GEANT_SCAN_PHI_PHIMIN_type };
5772 static KmParReal _GEANT_SCAN_PHI_PHIMAX_type = { "0.", "360.", "0.", "360.",
5774 static KmParameter _GEANT_SCAN_PHI_PHIMAX = { "PHIMAX", 6,
5775 "Maximum PHI in degrees", "360.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
5776 (KmParFlag)0, KmTYPE_REAL, &_GEANT_SCAN_PHI_PHIMAX_type };
5777 static KmParameter *_GEANT_SCAN_PHI_parameters[] = { &_GEANT_SCAN_PHI_NPHI,
5778 &_GEANT_SCAN_PHI_PHIMIN, &_GEANT_SCAN_PHI_PHIMAX };
5779 static char *_GEANT_SCAN_PHI_guidance[] = {
5780 "To specify number of divisions along PHI. If no parameter is",
5781 "given, the current values of the parameters are displayed." };
5782 static KmCommand _GEANT_SCAN_PHI = { &_GEANT_SCAN_TETA, "/GEANT/SCAN/PHI",
5783 "PHI", 0, 2, 3, 1, _GEANT_SCAN_PHI_parameters, 0, 0, gxscan_, (IntFunc*)0,
5784 (SUBROUTINE*)0, (pCharFunc*)0, 2, _GEANT_SCAN_PHI_guidance, 0, (char**)0, 0,
5785 (char**)0, 0, (char**)0, (char*)0, (int*)0 };
5787 static char *_GEANT_SCAN_guidance[] = {
5788 "To define parameters for the SCAN geometry. If the routine GUSTEP",
5789 "and GUKINE are properly instrumented (see examples in GEANX),",
5790 "when the TRI command is entered NTETA Geantinos will be",
5791 "tracked through the real detector starting at the vertex position",
5792 "defined by the command vertex. A simplified version of the geometry",
5793 "is automatically generated in (ETA,PHI) or (THETA,PHI) following",
5794 "the option given in the command TETA. The data structure LSCAN",
5795 "generated may be saved on an RZ file for subsequent processing.",
5796 "This data structure may be used for fast parametrization techniques." };
5797 static KmMenu _GEANT_SCAN = { (KmMenu*)0, (KmMenu*)0, "/GEANT/SCAN", "SCAN",
5798 2, &_GEANT_SCAN_PHI, 9, _GEANT_SCAN_guidance, 0, (char**)0, 0, (char**)0 };
5800 static KmMenu _GEANT = { (KmMenu*)0, &_GEANT_SCAN, "/GEANT", "GEANT", 1,
5801 (KmCommand*)0, 0, (char**)0, 0, (char**)0, 0, (char**)0 };
5803 klnkmenu( &_GEANT, 950303 );
5808 # define gkphys_ gkphys
5809 # define gxphys_ gxphys
5813 # define gkphys_ GKPHYS
5814 # define gxphys_ GXPHYS
5818 # pragma linkage(GKPHYS,FORTRAN)
5819 # pragma linkage(GXPHYS,FORTRAN)
5822 extern void gkphys_();
5823 extern void gxphys_();
5828 static char *_GEANT_PHYSICS_PHYSI_guidance[] = {
5829 "Call the GEANT initialisation routine GPHYSI to recompute",
5830 "the tables of cross-sections and energy loss. This command",
5831 "must be invoked after CUTS, LOSS or ERAN commands." };
5832 static KmCommand _GEANT_PHYSICS_PHYSI = { (KmCommand*)0,
5833 "/GEANT/PHYSICS/PHYSI", "PHYSI", 0, 2, 0, 0, (KmParameter**)0, 0, 0, gxphys_,
5834 (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_PHYSICS_PHYSI_guidance,
5835 0, (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
5837 static KmParInt _GEANT_PHYSICS_DRPRT_IPART_type = { (char*)0, (char*)0,
5838 (char*)0, (char*)0, 0 };
5839 static KmParameter _GEANT_PHYSICS_DRPRT_IPART = { "IPART", 5,
5840 "GEANT particle number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
5841 (KmParFlag)0, KmTYPE_INT, &_GEANT_PHYSICS_DRPRT_IPART_type };
5842 static KmParInt _GEANT_PHYSICS_DRPRT_IMATE_type = { (char*)0, (char*)0,
5843 (char*)0, (char*)0, 0 };
5844 static KmParameter _GEANT_PHYSICS_DRPRT_IMATE = { "IMATE", 5,
5845 "GEANT material number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
5846 (KmParFlag)0, KmTYPE_INT, &_GEANT_PHYSICS_DRPRT_IMATE_type };
5847 static KmParReal _GEANT_PHYSICS_DRPRT_STEP_type = { (char*)0, (char*)0,
5848 (char*)0, (char*)0, 0 };
5849 static KmParameter _GEANT_PHYSICS_DRPRT_STEP = { "STEP", 4,
5850 "step length in centimeters", (char*)0, (char*)0, 12, 0, (char**)0, 0,
5851 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_DRPRT_STEP_type };
5852 static KmParInt _GEANT_PHYSICS_DRPRT_NPOINT_type = { "2", "100", "2",
5854 static KmParameter _GEANT_PHYSICS_DRPRT_NPOINT = { "NPOINT", 6,
5855 "number of logarithmically spaced energy points", "10", (char*)0, 4, 0,
5856 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
5857 &_GEANT_PHYSICS_DRPRT_NPOINT_type };
5858 static KmParameter *_GEANT_PHYSICS_DRPRT_parameters[] = {
5859 &_GEANT_PHYSICS_DRPRT_IPART, &_GEANT_PHYSICS_DRPRT_IMATE,
5860 &_GEANT_PHYSICS_DRPRT_STEP, &_GEANT_PHYSICS_DRPRT_NPOINT };
5861 static char *_GEANT_PHYSICS_DRPRT_guidance[] = {
5862 "This routine prints the relevant parameters linked with the energy loss",
5864 static KmCommand _GEANT_PHYSICS_DRPRT = { &_GEANT_PHYSICS_PHYSI,
5865 "/GEANT/PHYSICS/DRPRT", "DRPRT", 0, 2, 4, 3, _GEANT_PHYSICS_DRPRT_parameters,
5866 0, 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 2,
5867 _GEANT_PHYSICS_DRPRT_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
5868 (char*)0, (int*)0 };
5870 static KmParReal _GEANT_PHYSICS_CUTS_CUTGAM_type = { (char*)0, (char*)0,
5871 (char*)0, (char*)0, 0 };
5872 static KmParameter _GEANT_PHYSICS_CUTS_CUTGAM = { "CUTGAM", 6,
5873 "Cut for gammas", "0.001", (char*)0, 12, 0, (char**)0, 0, (char**)0,
5874 (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_CUTS_CUTGAM_type };
5875 static KmParReal _GEANT_PHYSICS_CUTS_CUTELE_type = { (char*)0, (char*)0,
5876 (char*)0, (char*)0, 0 };
5877 static KmParameter _GEANT_PHYSICS_CUTS_CUTELE = { "CUTELE", 6,
5878 "Cut for electrons", "0.001", (char*)0, 12, 0, (char**)0, 0, (char**)0,
5879 (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_CUTS_CUTELE_type };
5880 static KmParReal _GEANT_PHYSICS_CUTS_CUTHAD_type = { (char*)0, (char*)0,
5881 (char*)0, (char*)0, 0 };
5882 static KmParameter _GEANT_PHYSICS_CUTS_CUTHAD = { "CUTHAD", 6,
5883 "Cut for charged hadrons", "0.01", (char*)0, 12, 0, (char**)0, 0, (char**)0,
5884 (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_CUTS_CUTHAD_type };
5885 static KmParReal _GEANT_PHYSICS_CUTS_CUTNEU_type = { (char*)0, (char*)0,
5886 (char*)0, (char*)0, 0 };
5887 static KmParameter _GEANT_PHYSICS_CUTS_CUTNEU = { "CUTNEU", 6,
5888 "Cut for neutral hadrons", "0.01", (char*)0, 12, 0, (char**)0, 0, (char**)0,
5889 (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_CUTS_CUTNEU_type };
5890 static KmParReal _GEANT_PHYSICS_CUTS_CUTMUO_type = { (char*)0, (char*)0,
5891 (char*)0, (char*)0, 0 };
5892 static KmParameter _GEANT_PHYSICS_CUTS_CUTMUO = { "CUTMUO", 6,
5893 "Cut for muons", "0.01", (char*)0, 12, 0, (char**)0, 0, (char**)0,
5894 (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_CUTS_CUTMUO_type };
5895 static KmParReal _GEANT_PHYSICS_CUTS_BCUTE_type = { (char*)0, (char*)0,
5896 (char*)0, (char*)0, 0 };
5897 static KmParameter _GEANT_PHYSICS_CUTS_BCUTE = { "BCUTE", 5,
5898 "Cut for electron brems.", "-1.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
5899 (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_CUTS_BCUTE_type };
5900 static KmParReal _GEANT_PHYSICS_CUTS_BCUTM_type = { (char*)0, (char*)0,
5901 (char*)0, (char*)0, 0 };
5902 static KmParameter _GEANT_PHYSICS_CUTS_BCUTM = { "BCUTM", 5,
5903 "Cut for muon brems.", "-1.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
5904 (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_CUTS_BCUTM_type };
5905 static KmParReal _GEANT_PHYSICS_CUTS_DCUTE_type = { (char*)0, (char*)0,
5906 (char*)0, (char*)0, 0 };
5907 static KmParameter _GEANT_PHYSICS_CUTS_DCUTE = { "DCUTE", 5,
5908 "Cut for electron delta-rays", "-1.", (char*)0, 12, 0, (char**)0, 0,
5909 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_CUTS_DCUTE_type };
5910 static KmParReal _GEANT_PHYSICS_CUTS_DCUTM_type = { (char*)0, (char*)0,
5911 (char*)0, (char*)0, 0 };
5912 static KmParameter _GEANT_PHYSICS_CUTS_DCUTM = { "DCUTM", 5,
5913 "Cut for muon delta-rays", "-1.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
5914 (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_CUTS_DCUTM_type };
5915 static KmParReal _GEANT_PHYSICS_CUTS_PPCUTM_type = { (char*)0, (char*)0,
5916 (char*)0, (char*)0, 0 };
5917 static KmParameter _GEANT_PHYSICS_CUTS_PPCUTM = { "PPCUTM", 6,
5918 "Cut for e+e- pairs by muons", "0.01", (char*)0, 12, 0, (char**)0, 0,
5919 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_CUTS_PPCUTM_type };
5920 static KmParReal _GEANT_PHYSICS_CUTS_TOFMAX_type = { (char*)0, (char*)0,
5921 (char*)0, (char*)0, 0 };
5922 static KmParameter _GEANT_PHYSICS_CUTS_TOFMAX = { "TOFMAX", 6,
5923 "Time of flight cut", "1.E+10", (char*)0, 12, 0, (char**)0, 0, (char**)0,
5924 (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_CUTS_TOFMAX_type };
5925 static KmParReal _GEANT_PHYSICS_CUTS_GCUTS_type = { (char*)0, (char*)0,
5926 (char*)0, (char*)0, 0 };
5927 static KmParameter _GEANT_PHYSICS_CUTS_GCUTS = { "GCUTS", 5, "5 user words",
5928 "0.", (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
5929 &_GEANT_PHYSICS_CUTS_GCUTS_type };
5930 static KmParameter *_GEANT_PHYSICS_CUTS_parameters[] = {
5931 &_GEANT_PHYSICS_CUTS_CUTGAM, &_GEANT_PHYSICS_CUTS_CUTELE,
5932 &_GEANT_PHYSICS_CUTS_CUTHAD, &_GEANT_PHYSICS_CUTS_CUTNEU,
5933 &_GEANT_PHYSICS_CUTS_CUTMUO, &_GEANT_PHYSICS_CUTS_BCUTE,
5934 &_GEANT_PHYSICS_CUTS_BCUTM, &_GEANT_PHYSICS_CUTS_DCUTE,
5935 &_GEANT_PHYSICS_CUTS_DCUTM, &_GEANT_PHYSICS_CUTS_PPCUTM,
5936 &_GEANT_PHYSICS_CUTS_TOFMAX, &_GEANT_PHYSICS_CUTS_GCUTS };
5937 static char *_GEANT_PHYSICS_CUTS_guidance[] = {
5938 "To change physics cuts. If no parameter is given, the list",
5939 "of the current cuts is printed.",
5940 " If the default values (-1.) for BCUTE ,BCUTM ,DCUTE ,DCUTM",
5941 " are not modified, they will be set to CUTGAM,CUTGAM,CUTELE,CUTELE",
5942 " respectively.", "If one of the parameters from CUTGAM to PPCUTM included",
5943 "is modified, cross-sections and energy loss tables must be",
5944 "recomputed via the command 'PHYSI'." };
5945 static KmCommand _GEANT_PHYSICS_CUTS = { &_GEANT_PHYSICS_DRPRT,
5946 "/GEANT/PHYSICS/CUTS", "CUTS", 0, 2, 12, 0, _GEANT_PHYSICS_CUTS_parameters,
5947 0, 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 8,
5948 _GEANT_PHYSICS_CUTS_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
5949 (char*)0, (int*)0 };
5951 static char *_GEANT_PHYSICS_SYNC_ISYNC_range[] = { "0", "1" };
5952 static KmParInt _GEANT_PHYSICS_SYNC_ISYNC_type = { (char*)0, (char*)0,
5953 (char*)0, (char*)0, 0 };
5954 static KmParameter _GEANT_PHYSICS_SYNC_ISYNC = { "ISYNC", 5, "Flag ISYNC",
5955 "1", (char*)0, 8, 2, _GEANT_PHYSICS_SYNC_ISYNC_range, 2,
5956 _GEANT_PHYSICS_SYNC_ISYNC_range, (KmParFlag)0, KmTYPE_INT,
5957 &_GEANT_PHYSICS_SYNC_ISYNC_type };
5958 static KmParameter *_GEANT_PHYSICS_SYNC_parameters[] = {
5959 &_GEANT_PHYSICS_SYNC_ISYNC };
5960 static char *_GEANT_PHYSICS_SYNC_guidance[] = {
5961 "To control synchrotron radiation:", " ISYNC=0 no synchrotron radiation;",
5962 " =1 synchrotron radiation." };
5963 static KmCommand _GEANT_PHYSICS_SYNC = { &_GEANT_PHYSICS_CUTS,
5964 "/GEANT/PHYSICS/SYNC", "SYNC", 0, 2, 1, 0, _GEANT_PHYSICS_SYNC_parameters, 0,
5965 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
5966 _GEANT_PHYSICS_SYNC_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
5967 (char*)0, (int*)0 };
5969 static char *_GEANT_PHYSICS_STRA_ISTRA_range[] = { "0", "1", "2" };
5970 static KmParInt _GEANT_PHYSICS_STRA_ISTRA_type = { (char*)0, (char*)0,
5971 (char*)0, (char*)0, 0 };
5972 static KmParameter _GEANT_PHYSICS_STRA_ISTRA = { "ISTRA", 5, "Flag ISTRA",
5973 "0", (char*)0, 8, 3, _GEANT_PHYSICS_STRA_ISTRA_range, 3,
5974 _GEANT_PHYSICS_STRA_ISTRA_range, (KmParFlag)0, KmTYPE_INT,
5975 &_GEANT_PHYSICS_STRA_ISTRA_type };
5976 static KmParameter *_GEANT_PHYSICS_STRA_parameters[] = {
5977 &_GEANT_PHYSICS_STRA_ISTRA };
5978 static char *_GEANT_PHYSICS_STRA_guidance[] = {
5979 "To control energy loss fluctuation model:", " ISTRA=0 Urban model;",
5980 " =1 PAI model;", " =2 PAI+ASHO model (not active at the moment)."
5982 static KmCommand _GEANT_PHYSICS_STRA = { &_GEANT_PHYSICS_SYNC,
5983 "/GEANT/PHYSICS/STRA", "STRA", 0, 2, 1, 0, _GEANT_PHYSICS_STRA_parameters, 0,
5984 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
5985 _GEANT_PHYSICS_STRA_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
5986 (char*)0, (int*)0 };
5988 static char *_GEANT_PHYSICS_RAYL_IRAYL_range[] = { "0", "1" };
5989 static KmParInt _GEANT_PHYSICS_RAYL_IRAYL_type = { (char*)0, (char*)0,
5990 (char*)0, (char*)0, 0 };
5991 static KmParameter _GEANT_PHYSICS_RAYL_IRAYL = { "IRAYL", 5, "Flag IRAYL",
5992 "1", (char*)0, 8, 2, _GEANT_PHYSICS_RAYL_IRAYL_range, 2,
5993 _GEANT_PHYSICS_RAYL_IRAYL_range, (KmParFlag)0, KmTYPE_INT,
5994 &_GEANT_PHYSICS_RAYL_IRAYL_type };
5995 static KmParameter *_GEANT_PHYSICS_RAYL_parameters[] = {
5996 &_GEANT_PHYSICS_RAYL_IRAYL };
5997 static char *_GEANT_PHYSICS_RAYL_guidance[] = {
5998 "To control Rayleigh scattering.", " IRAYL=0 no Rayleigh scattering.",
6000 static KmCommand _GEANT_PHYSICS_RAYL = { &_GEANT_PHYSICS_STRA,
6001 "/GEANT/PHYSICS/RAYL", "RAYL", 0, 2, 1, 0, _GEANT_PHYSICS_RAYL_parameters, 0,
6002 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
6003 _GEANT_PHYSICS_RAYL_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
6004 (char*)0, (int*)0 };
6006 static char *_GEANT_PHYSICS_PHOT_IPHOT_range[] = { "0", "1", "2" };
6007 static KmParInt _GEANT_PHYSICS_PHOT_IPHOT_type = { (char*)0, (char*)0,
6008 (char*)0, (char*)0, 0 };
6009 static KmParameter _GEANT_PHYSICS_PHOT_IPHOT = { "IPHOT", 5, "Flag IPHOT",
6010 "1", (char*)0, 8, 3, _GEANT_PHYSICS_PHOT_IPHOT_range, 3,
6011 _GEANT_PHYSICS_PHOT_IPHOT_range, (KmParFlag)0, KmTYPE_INT,
6012 &_GEANT_PHYSICS_PHOT_IPHOT_type };
6013 static KmParameter *_GEANT_PHYSICS_PHOT_parameters[] = {
6014 &_GEANT_PHYSICS_PHOT_IPHOT };
6015 static char *_GEANT_PHYSICS_PHOT_guidance[] = { "To control Photo effect.",
6016 " IPHOT=0 no photo electric effect.",
6017 " =1 Photo effect. Electron processed.",
6018 " =2 Photo effect. No electron stored." };
6019 static KmCommand _GEANT_PHYSICS_PHOT = { &_GEANT_PHYSICS_RAYL,
6020 "/GEANT/PHYSICS/PHOT", "PHOT", 0, 2, 1, 0, _GEANT_PHYSICS_PHOT_parameters, 0,
6021 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
6022 _GEANT_PHYSICS_PHOT_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
6023 (char*)0, (int*)0 };
6025 static char *_GEANT_PHYSICS_PFIS_IPFIS_range[] = { "0", "1", "2" };
6026 static KmParInt _GEANT_PHYSICS_PFIS_IPFIS_type = { (char*)0, (char*)0,
6027 (char*)0, (char*)0, 0 };
6028 static KmParameter _GEANT_PHYSICS_PFIS_IPFIS = { "IPFIS", 5, "Flag IPFIS",
6029 "1", (char*)0, 8, 3, _GEANT_PHYSICS_PFIS_IPFIS_range, 3,
6030 _GEANT_PHYSICS_PFIS_IPFIS_range, (KmParFlag)0, KmTYPE_INT,
6031 &_GEANT_PHYSICS_PFIS_IPFIS_type };
6032 static KmParameter *_GEANT_PHYSICS_PFIS_parameters[] = {
6033 &_GEANT_PHYSICS_PFIS_IPFIS };
6034 static char *_GEANT_PHYSICS_PFIS_guidance[] = {
6035 "To control photo fission mechanism.", " IPFIS=0 no photo fission.",
6036 " =1 Photo fission. secondaries processed.",
6037 " =2 Photo fission. No secondaries stored." };
6038 static KmCommand _GEANT_PHYSICS_PFIS = { &_GEANT_PHYSICS_PHOT,
6039 "/GEANT/PHYSICS/PFIS", "PFIS", 0, 2, 1, 0, _GEANT_PHYSICS_PFIS_parameters, 0,
6040 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
6041 _GEANT_PHYSICS_PFIS_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
6042 (char*)0, (int*)0 };
6044 static char *_GEANT_PHYSICS_PAIR_IPAIR_range[] = { "0", "1", "2" };
6045 static KmParInt _GEANT_PHYSICS_PAIR_IPAIR_type = { (char*)0, (char*)0,
6046 (char*)0, (char*)0, 0 };
6047 static KmParameter _GEANT_PHYSICS_PAIR_IPAIR = { "IPAIR", 5, "Flag IPAIR",
6048 "1", (char*)0, 8, 3, _GEANT_PHYSICS_PAIR_IPAIR_range, 3,
6049 _GEANT_PHYSICS_PAIR_IPAIR_range, (KmParFlag)0, KmTYPE_INT,
6050 &_GEANT_PHYSICS_PAIR_IPAIR_type };
6051 static KmParameter *_GEANT_PHYSICS_PAIR_parameters[] = {
6052 &_GEANT_PHYSICS_PAIR_IPAIR };
6053 static char *_GEANT_PHYSICS_PAIR_guidance[] = {
6054 "To control pair production mechanism.", " IPAIR=0 no pair production.",
6055 " =1 Pair production. secondaries processed.",
6056 " =2 Pair production. No secondaries stored." };
6057 static KmCommand _GEANT_PHYSICS_PAIR = { &_GEANT_PHYSICS_PFIS,
6058 "/GEANT/PHYSICS/PAIR", "PAIR", 0, 2, 1, 0, _GEANT_PHYSICS_PAIR_parameters, 0,
6059 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
6060 _GEANT_PHYSICS_PAIR_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
6061 (char*)0, (int*)0 };
6063 static char *_GEANT_PHYSICS_MUNU_IMUNU_range[] = { "0", "1", "2" };
6064 static KmParInt _GEANT_PHYSICS_MUNU_IMUNU_type = { (char*)0, (char*)0,
6065 (char*)0, (char*)0, 0 };
6066 static KmParameter _GEANT_PHYSICS_MUNU_IMUNU = { "IMUNU", 5, "Flag IMUNU",
6067 "1", (char*)0, 8, 3, _GEANT_PHYSICS_MUNU_IMUNU_range, 3,
6068 _GEANT_PHYSICS_MUNU_IMUNU_range, (KmParFlag)0, KmTYPE_INT,
6069 &_GEANT_PHYSICS_MUNU_IMUNU_type };
6070 static KmParameter *_GEANT_PHYSICS_MUNU_parameters[] = {
6071 &_GEANT_PHYSICS_MUNU_IMUNU };
6072 static char *_GEANT_PHYSICS_MUNU_guidance[] = {
6073 "To control muon nuclear interactions.",
6074 " IMUNU=0 no muon-nuclear interactions.",
6075 " =1 Nuclear interactions. Secondaries processed.",
6076 " =2 Nuclear interactions. Secondaries not processed." };
6077 static KmCommand _GEANT_PHYSICS_MUNU = { &_GEANT_PHYSICS_PAIR,
6078 "/GEANT/PHYSICS/MUNU", "MUNU", 0, 2, 1, 0, _GEANT_PHYSICS_MUNU_parameters, 0,
6079 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
6080 _GEANT_PHYSICS_MUNU_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
6081 (char*)0, (int*)0 };
6083 static char *_GEANT_PHYSICS_MULS_IMULS_range[] = { "0", "1", "2", "3" };
6084 static KmParInt _GEANT_PHYSICS_MULS_IMULS_type = { (char*)0, (char*)0,
6085 (char*)0, (char*)0, 0 };
6086 static KmParameter _GEANT_PHYSICS_MULS_IMULS = { "IMULS", 5, "Flag IMULS",
6087 "1", (char*)0, 8, 4, _GEANT_PHYSICS_MULS_IMULS_range, 4,
6088 _GEANT_PHYSICS_MULS_IMULS_range, (KmParFlag)0, KmTYPE_INT,
6089 &_GEANT_PHYSICS_MULS_IMULS_type };
6090 static KmParameter *_GEANT_PHYSICS_MULS_parameters[] = {
6091 &_GEANT_PHYSICS_MULS_IMULS };
6092 static char *_GEANT_PHYSICS_MULS_guidance[] = {
6093 "To control multiple scattering.", " IMULS=0 no multiple scattering.",
6094 " =1 Moliere or Coulomb scattering.",
6095 " =2 Moliere or Coulomb scattering.", " =3 Gaussian scattering." };
6096 static KmCommand _GEANT_PHYSICS_MULS = { &_GEANT_PHYSICS_MUNU,
6097 "/GEANT/PHYSICS/MULS", "MULS", 0, 2, 1, 0, _GEANT_PHYSICS_MULS_parameters, 0,
6098 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 5,
6099 _GEANT_PHYSICS_MULS_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
6100 (char*)0, (int*)0 };
6102 static char *_GEANT_PHYSICS_LOSS_ILOSS_range[] = { "0", "1", "2", "3", "4" };
6103 static KmParInt _GEANT_PHYSICS_LOSS_ILOSS_type = { (char*)0, (char*)0,
6104 (char*)0, (char*)0, 0 };
6105 static KmParameter _GEANT_PHYSICS_LOSS_ILOSS = { "ILOSS", 5, "Flag ILOSS",
6106 "2", (char*)0, 8, 5, _GEANT_PHYSICS_LOSS_ILOSS_range, 5,
6107 _GEANT_PHYSICS_LOSS_ILOSS_range, (KmParFlag)0, KmTYPE_INT,
6108 &_GEANT_PHYSICS_LOSS_ILOSS_type };
6109 static KmParameter *_GEANT_PHYSICS_LOSS_parameters[] = {
6110 &_GEANT_PHYSICS_LOSS_ILOSS };
6111 static char *_GEANT_PHYSICS_LOSS_guidance[] = { "To control energy loss.",
6112 " ILOSS=0 no energy loss;", " =1 restricted energy loss fluctuations;",
6113 " =2 complete energy loss fluctuations;", " =3 same as 1;",
6114 " =4 no energy loss fluctuations.",
6115 "If the value ILOSS is changed, then cross-sections and energy loss",
6116 "tables must be recomputed via the command 'PHYSI'." };
6117 static KmCommand _GEANT_PHYSICS_LOSS = { &_GEANT_PHYSICS_MULS,
6118 "/GEANT/PHYSICS/LOSS", "LOSS", 0, 2, 1, 0, _GEANT_PHYSICS_LOSS_parameters, 0,
6119 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 8,
6120 _GEANT_PHYSICS_LOSS_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
6121 (char*)0, (int*)0 };
6123 static KmParInt _GEANT_PHYSICS_LABS_LABS_type = { (char*)0, (char*)0,
6124 (char*)0, (char*)0, 0 };
6125 static KmParameter _GEANT_PHYSICS_LABS_LABS = { "LABS", 4, "Flag LABS", "0",
6126 (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
6127 &_GEANT_PHYSICS_LABS_LABS_type };
6128 static KmParameter *_GEANT_PHYSICS_LABS_parameters[] = {
6129 &_GEANT_PHYSICS_LABS_LABS };
6130 static char *_GEANT_PHYSICS_LABS_guidance[] = {
6131 "To control absorbtion of Cerenkov photons:",
6132 " LABS=0 no absorbtion of photons;", " LABS=1 absorbtion of photons;" };
6133 static KmCommand _GEANT_PHYSICS_LABS = { &_GEANT_PHYSICS_LOSS,
6134 "/GEANT/PHYSICS/LABS", "LABS", 0, 2, 1, 0, _GEANT_PHYSICS_LABS_parameters, 0,
6135 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
6136 _GEANT_PHYSICS_LABS_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
6137 (char*)0, (int*)0 };
6139 static KmParInt _GEANT_PHYSICS_HADR_IHADR_type = { (char*)0, (char*)0,
6140 (char*)0, (char*)0, 0 };
6141 static KmParameter _GEANT_PHYSICS_HADR_IHADR = { "IHADR", 5, "Flag IHADR",
6142 "1", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
6143 &_GEANT_PHYSICS_HADR_IHADR_type };
6144 static KmParameter *_GEANT_PHYSICS_HADR_parameters[] = {
6145 &_GEANT_PHYSICS_HADR_IHADR };
6146 static char *_GEANT_PHYSICS_HADR_guidance[] = {
6147 "To control hadronic interactions.", " IHADR=0 no hadronic interactions.",
6148 " =1 Hadronic interactions. secondaries processed.",
6149 " =2 Hadronic interactions. No secondaries stored." };
6150 static KmCommand _GEANT_PHYSICS_HADR = { &_GEANT_PHYSICS_LABS,
6151 "/GEANT/PHYSICS/HADR", "HADR", 0, 2, 1, 0, _GEANT_PHYSICS_HADR_parameters, 0,
6152 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
6153 _GEANT_PHYSICS_HADR_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
6154 (char*)0, (int*)0 };
6156 static KmParReal _GEANT_PHYSICS_ERAN_EKMIN_type = { (char*)0, (char*)0,
6157 (char*)0, (char*)0, 0 };
6158 static KmParameter _GEANT_PHYSICS_ERAN_EKMIN = { "EKMIN", 5,
6159 "Minimum energy of the tables", "1E-5", (char*)0, 12, 0, (char**)0, 0,
6160 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_ERAN_EKMIN_type };
6161 static KmParReal _GEANT_PHYSICS_ERAN_EKMAX_type = { (char*)0, (char*)0,
6162 (char*)0, (char*)0, 0 };
6163 static KmParameter _GEANT_PHYSICS_ERAN_EKMAX = { "EKMAX", 5,
6164 "Maximum energy of the tables", "1E+4", (char*)0, 12, 0, (char**)0, 0,
6165 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_ERAN_EKMAX_type };
6166 static KmParInt _GEANT_PHYSICS_ERAN_NEKBIN_type = { "1", "200", "1", "200",
6168 static KmParameter _GEANT_PHYSICS_ERAN_NEKBIN = { "NEKBIN", 6,
6169 "Number of bins in the tables", "90", (char*)0, 4, 0, (char**)0, 0,
6170 (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_PHYSICS_ERAN_NEKBIN_type };
6171 static KmParameter *_GEANT_PHYSICS_ERAN_parameters[] = {
6172 &_GEANT_PHYSICS_ERAN_EKMIN, &_GEANT_PHYSICS_ERAN_EKMAX,
6173 &_GEANT_PHYSICS_ERAN_NEKBIN };
6174 static char *_GEANT_PHYSICS_ERAN_guidance[] = {
6175 "To define the range and binning of internal tables." };
6176 static KmCommand _GEANT_PHYSICS_ERAN = { &_GEANT_PHYSICS_HADR,
6177 "/GEANT/PHYSICS/ERAN", "ERAN", 0, 2, 3, 0, _GEANT_PHYSICS_ERAN_parameters, 0,
6178 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
6179 _GEANT_PHYSICS_ERAN_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
6180 (char*)0, (int*)0 };
6182 static char *_GEANT_PHYSICS_DRAY_IDRAY_range[] = { "0", "1", "2" };
6183 static KmParInt _GEANT_PHYSICS_DRAY_IDRAY_type = { (char*)0, (char*)0,
6184 (char*)0, (char*)0, 0 };
6185 static KmParameter _GEANT_PHYSICS_DRAY_IDRAY = { "IDRAY", 5, "Flag IDRAY",
6186 "1", (char*)0, 8, 3, _GEANT_PHYSICS_DRAY_IDRAY_range, 3,
6187 _GEANT_PHYSICS_DRAY_IDRAY_range, (KmParFlag)0, KmTYPE_INT,
6188 &_GEANT_PHYSICS_DRAY_IDRAY_type };
6189 static KmParameter *_GEANT_PHYSICS_DRAY_parameters[] = {
6190 &_GEANT_PHYSICS_DRAY_IDRAY };
6191 static char *_GEANT_PHYSICS_DRAY_guidance[] = {
6192 "To control delta rays mechanism.", " IDRAY=0 no delta rays.",
6193 " =1 Delta rays. secondaries processed.",
6194 " =2 Delta rays. No secondaries stored." };
6195 static KmCommand _GEANT_PHYSICS_DRAY = { &_GEANT_PHYSICS_ERAN,
6196 "/GEANT/PHYSICS/DRAY", "DRAY", 0, 2, 1, 0, _GEANT_PHYSICS_DRAY_parameters, 0,
6197 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
6198 _GEANT_PHYSICS_DRAY_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
6199 (char*)0, (int*)0 };
6201 static char *_GEANT_PHYSICS_DCAY_IDCAY_range[] = { "0", "1", "2" };
6202 static KmParInt _GEANT_PHYSICS_DCAY_IDCAY_type = { (char*)0, (char*)0,
6203 (char*)0, (char*)0, 0 };
6204 static KmParameter _GEANT_PHYSICS_DCAY_IDCAY = { "IDCAY", 5, "Flag IDCAY",
6205 "1", (char*)0, 8, 3, _GEANT_PHYSICS_DCAY_IDCAY_range, 3,
6206 _GEANT_PHYSICS_DCAY_IDCAY_range, (KmParFlag)0, KmTYPE_INT,
6207 &_GEANT_PHYSICS_DCAY_IDCAY_type };
6208 static KmParameter *_GEANT_PHYSICS_DCAY_parameters[] = {
6209 &_GEANT_PHYSICS_DCAY_IDCAY };
6210 static char *_GEANT_PHYSICS_DCAY_guidance[] = { "To control Decay mechanism.",
6211 " IDCAY=0 no decays.", " =1 Decays. secondaries processed.",
6212 " =2 Decays. No secondaries stored." };
6213 static KmCommand _GEANT_PHYSICS_DCAY = { &_GEANT_PHYSICS_DRAY,
6214 "/GEANT/PHYSICS/DCAY", "DCAY", 0, 2, 1, 0, _GEANT_PHYSICS_DCAY_parameters, 0,
6215 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
6216 _GEANT_PHYSICS_DCAY_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
6217 (char*)0, (int*)0 };
6219 static char *_GEANT_PHYSICS_COMP_ICOMP_range[] = { "0", "1", "2" };
6220 static KmParInt _GEANT_PHYSICS_COMP_ICOMP_type = { (char*)0, (char*)0,
6221 (char*)0, (char*)0, 0 };
6222 static KmParameter _GEANT_PHYSICS_COMP_ICOMP = { "ICOMP", 5, "Flag ICOMP",
6223 "1", (char*)0, 8, 3, _GEANT_PHYSICS_COMP_ICOMP_range, 3,
6224 _GEANT_PHYSICS_COMP_ICOMP_range, (KmParFlag)0, KmTYPE_INT,
6225 &_GEANT_PHYSICS_COMP_ICOMP_type };
6226 static KmParameter *_GEANT_PHYSICS_COMP_parameters[] = {
6227 &_GEANT_PHYSICS_COMP_ICOMP };
6228 static char *_GEANT_PHYSICS_COMP_guidance[] = {
6229 "To control Compton scattering", " ICOMP=0 no Compton",
6230 " =1 Compton. Electron processed.",
6231 " =2 Compton. No electron stored." };
6232 static KmCommand _GEANT_PHYSICS_COMP = { &_GEANT_PHYSICS_DCAY,
6233 "/GEANT/PHYSICS/COMP", "COMP", 0, 2, 1, 0, _GEANT_PHYSICS_COMP_parameters, 0,
6234 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
6235 _GEANT_PHYSICS_COMP_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
6236 (char*)0, (int*)0 };
6238 static char *_GEANT_PHYSICS_CKOV_ICKOV_range[] = { "0", "1", "2" };
6239 static KmParInt _GEANT_PHYSICS_CKOV_ICKOV_type = { (char*)0, (char*)0,
6240 (char*)0, (char*)0, 0 };
6241 static KmParameter _GEANT_PHYSICS_CKOV_ICKOV = { "ICKOV", 5, "Flag ICKOV",
6242 "0", (char*)0, 8, 3, _GEANT_PHYSICS_CKOV_ICKOV_range, 3,
6243 _GEANT_PHYSICS_CKOV_ICKOV_range, (KmParFlag)0, KmTYPE_INT,
6244 &_GEANT_PHYSICS_CKOV_ICKOV_type };
6245 static KmParameter *_GEANT_PHYSICS_CKOV_parameters[] = {
6246 &_GEANT_PHYSICS_CKOV_ICKOV };
6247 static char *_GEANT_PHYSICS_CKOV_guidance[] = {
6248 "To control Cerenkov production", " ICOMP=0 no Cerenkov;",
6249 " =1 Cerenkov;", " =2 Cerenkov with primary stopped at each step."
6251 static KmCommand _GEANT_PHYSICS_CKOV = { &_GEANT_PHYSICS_COMP,
6252 "/GEANT/PHYSICS/CKOV", "CKOV", 0, 2, 1, 0, _GEANT_PHYSICS_CKOV_parameters, 0,
6253 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
6254 _GEANT_PHYSICS_CKOV_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
6255 (char*)0, (int*)0 };
6257 static char *_GEANT_PHYSICS_BREM_IBREM_range[] = { "0", "1", "2" };
6258 static KmParInt _GEANT_PHYSICS_BREM_IBREM_type = { (char*)0, (char*)0,
6259 (char*)0, (char*)0, 0 };
6260 static KmParameter _GEANT_PHYSICS_BREM_IBREM = { "IBREM", 5, "Flag IBREM",
6261 "1", (char*)0, 8, 3, _GEANT_PHYSICS_BREM_IBREM_range, 3,
6262 _GEANT_PHYSICS_BREM_IBREM_range, (KmParFlag)0, KmTYPE_INT,
6263 &_GEANT_PHYSICS_BREM_IBREM_type };
6264 static KmParameter *_GEANT_PHYSICS_BREM_parameters[] = {
6265 &_GEANT_PHYSICS_BREM_IBREM };
6266 static char *_GEANT_PHYSICS_BREM_guidance[] = { "To control bremstrahlung.",
6267 " IBREM=0 no bremstrahlung", " =1 bremstrahlung. Photon processed.",
6268 " =2 bremstrahlung. No photon stored." };
6269 static KmCommand _GEANT_PHYSICS_BREM = { &_GEANT_PHYSICS_CKOV,
6270 "/GEANT/PHYSICS/BREM", "BREM", 0, 2, 1, 0, _GEANT_PHYSICS_BREM_parameters, 0,
6271 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
6272 _GEANT_PHYSICS_BREM_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
6273 (char*)0, (int*)0 };
6275 static char *_GEANT_PHYSICS_AUTO_IAUTO_range[] = { "0", "1" };
6276 static KmParInt _GEANT_PHYSICS_AUTO_IAUTO_type = { (char*)0, (char*)0,
6277 (char*)0, (char*)0, 0 };
6278 static KmParameter _GEANT_PHYSICS_AUTO_IAUTO = { "IAUTO", 5, "Flag IAUTO",
6279 "1", (char*)0, 8, 2, _GEANT_PHYSICS_AUTO_IAUTO_range, 2,
6280 _GEANT_PHYSICS_AUTO_IAUTO_range, (KmParFlag)0, KmTYPE_INT,
6281 &_GEANT_PHYSICS_AUTO_IAUTO_type };
6282 static KmParameter *_GEANT_PHYSICS_AUTO_parameters[] = {
6283 &_GEANT_PHYSICS_AUTO_IAUTO };
6284 static char *_GEANT_PHYSICS_AUTO_guidance[] = {
6285 "To control automatic calculation of tracking medium parameters:",
6286 " IAUTO=0 no automatic calculation;", " =1 automati calculation." };
6287 static KmCommand _GEANT_PHYSICS_AUTO = { &_GEANT_PHYSICS_BREM,
6288 "/GEANT/PHYSICS/AUTO", "AUTO", 0, 2, 1, 0, _GEANT_PHYSICS_AUTO_parameters, 0,
6289 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
6290 _GEANT_PHYSICS_AUTO_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
6291 (char*)0, (int*)0 };
6293 static char *_GEANT_PHYSICS_ANNI_IANNI_range[] = { "0", "1", "2" };
6294 static KmParInt _GEANT_PHYSICS_ANNI_IANNI_type = { (char*)0, (char*)0,
6295 (char*)0, (char*)0, 0 };
6296 static KmParameter _GEANT_PHYSICS_ANNI_IANNI = { "IANNI", 5, "Flag IANNI",
6297 "1", (char*)0, 8, 3, _GEANT_PHYSICS_ANNI_IANNI_range, 3,
6298 _GEANT_PHYSICS_ANNI_IANNI_range, (KmParFlag)0, KmTYPE_INT,
6299 &_GEANT_PHYSICS_ANNI_IANNI_type };
6300 static KmParameter *_GEANT_PHYSICS_ANNI_parameters[] = {
6301 &_GEANT_PHYSICS_ANNI_IANNI };
6302 static char *_GEANT_PHYSICS_ANNI_guidance[] = {
6303 "To control positron annihilation.", " IANNI=0 no annihilation",
6304 " =1 annihilation. Decays processed.",
6305 " =2 annihilation. No decay products stored." };
6306 static KmCommand _GEANT_PHYSICS_ANNI = { &_GEANT_PHYSICS_AUTO,
6307 "/GEANT/PHYSICS/ANNI", "ANNI", 0, 2, 1, 0, _GEANT_PHYSICS_ANNI_parameters, 0,
6308 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
6309 _GEANT_PHYSICS_ANNI_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
6310 (char*)0, (int*)0 };
6312 static char *_GEANT_PHYSICS_guidance[] = {
6313 "Commands to set physics parameters." };
6314 static KmMenu _GEANT_PHYSICS = { (KmMenu*)0, (KmMenu*)0, "/GEANT/PHYSICS",
6315 "PHYSICS", 2, &_GEANT_PHYSICS_ANNI, 1, _GEANT_PHYSICS_guidance, 0, (char**)0,
6318 static KmMenu _GEANT = { (KmMenu*)0, &_GEANT_PHYSICS, "/GEANT", "GEANT", 1,
6319 (KmCommand*)0, 0, (char**)0, 0, (char**)0, 0, (char**)0 };
6321 klnkmenu( &_GEANT, 950303 );
6326 # define gkfort_ gkfort
6327 # define gxfort_ gxfort
6331 # define gkfort_ GKFORT
6332 # define gxfort_ GXFORT
6336 # pragma linkage(GKFORT,FORTRAN)
6337 # pragma linkage(GXFORT,FORTRAN)
6340 extern void gkfort_();
6341 extern void gxfort_();
6346 static KmParameter _FORTRAN_FORTRAN_FNAME = { "FNAME", 5, "File name",
6347 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
6348 KmTYPE_CHAR, (void*)0 };
6349 static KmParameter *_FORTRAN_FORTRAN_parameters[] = { &_FORTRAN_FORTRAN_FNAME
6351 static char *_FORTRAN_FORTRAN_guidance[] = {
6352 "The routines in the file FNAME will be compiled by COMIS.",
6353 "If routines with names: UGEOM,GUKINE,GUOUT,UGLAST are found,",
6354 "then they will be automatically called by GXINT instead of",
6355 "the routines with the same names compiled with the standard",
6356 "Fortran compiler and linked with the application.",
6357 "The user callable routines from the GEANT library as well as",
6358 "routines from PACKLIB (HBOOK,HPLOT,HIGZ,ZEBRA) may be called",
6359 "from these user routines. All GEANT common blocks may be", "referenced.",
6360 "In case where the routine UGEOM is called several times,",
6361 "it is important to DROP all the initialisation data structures",
6362 "JVOLUM,JMATE,JTMED,etc already in memory by using the routine GIDROP.",
6363 " Example of an interactive session where the routine UGEOM is modified:",
6364 "", " GEANT > Edit ugeom.for", " GEANT > Fortran ugeom.for",
6365 " GEANT > Call GIDROP", " GEANT > Call UGEOM", " GEANT > Dtree",
6366 " GEANT > Edit ugeom.for", " GEANT > Fortran ugeom.for",
6367 " GEANT > Call GIDROP", " GEANT > Call UGEOM", " GEANT > Dtree",
6368 "If FNAME='-', calls to user routines is reset and standard",
6369 "routines called instead." };
6370 static KmCommand _FORTRAN_FORTRAN = { (KmCommand*)0, "/FORTRAN/FORTRAN",
6371 "FORTRAN", 0, 1, 1, 1, _FORTRAN_FORTRAN_parameters, 0, 0, gxfort_,
6372 (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 26, _FORTRAN_FORTRAN_guidance, 0,
6373 (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
6375 static KmMenu _FORTRAN = { (KmMenu*)0, (KmMenu*)0, "/FORTRAN", "FORTRAN", 1,
6376 &_FORTRAN_FORTRAN, 0, (char**)0, 0, (char**)0, 0, (char**)0 };
6378 klnkmenu( &_FORTRAN, 950303 );
6382 #if defined(CERNLIB_KUIP95A)
6384 /*CMZ : 21/03/95 18.51.56 by S.Giani*/
6387 * This file has been generated by the KUIP compiler. Do NOT change it!
6389 * KUIP header: 921023 Generation date: Tue Mar 21 18:51:54 1995
6391 * Input file: g321x.doc
6394 #if !defined(F77_LCASE) && !defined(F77_UCASE) && !defined(F77_USCORE)
6395 # if defined(__EXTENDED__) && !defined(IBM370) && !defined(_IBMR2)
6398 # if defined(CRAY) || defined(IBM370) || defined(vms)
6401 # if ( defined(apollo) || defined(__apollo) ) && defined(APOFTN)
6409 typedef int IntFunc();
6410 typedef char* CharFunc();
6411 typedef char** pCharFunc();
6412 typedef void SUBROUTINE();
6414 # pragma linkage(SUBROUTINE,FORTRAN)
6417 extern void klnkmenu();
6418 extern void klnkbrcl();
6419 extern void klnkkmcl();
6420 extern void klnkicon();
6421 extern void klnkbutt();
6423 typedef unsigned long KmPixmap; /* Pixmap from <X11/X.h> */
6424 typedef void *KmWidget; /* Widget from <X11/Intrinsic.h> */
6425 typedef void *KmCalldata; /* XmAnyCallbackStruct from <Motif/Xm.h> */
6427 typedef enum { /* */
6428 BRACT_OPEN = 0, /* */
6429 BRACT_ROOT = 1, /* */
6430 BRACT_CONT = 2, /* */
6431 BRACT_GRAF = 3 /* */
6434 typedef enum { /* */
6435 BrActUpdate = 0x01, /* browser window has to be updated ('!') */
6436 BrActSeparator = 0x02, /* put separator in menu ('/') */
6437 BrActToggle = 0x04, /* register as toggle button */
6438 BrActToggleOn = 0x08, /* toggle state is on */
6439 BrActSensitive = 0x10 /* button is sensitive */
6443 typedef struct _BrAction { /* */
6444 struct _BrAction *next; /* link to next action binding */
6445 BrActFlag flags; /* */
6446 char *text; /* text line in menu */
6447 char *user_text; /* user text overriding CDF text (malloced)*/
6448 char *accel; /* accelerator */
6449 char *exec; /* action commands */
6450 SUBROUTINE *call_F; /* action routine */
6451 IntFunc *call_C; /* action function */
6452 BrActTag tag; /* for which window the action is defined */
6453 struct _BrClass *class; /* pointer to BrClass in case of open menu */
6456 typedef struct _BrClass { /* */
6457 struct _BrClass *next; /* link to next browsable class */
6458 char *name; /* unique identifier name */
6459 char *title; /* title for popup menu (maybe NULL) */
6460 SUBROUTINE *scan_km_F; /* user function scanning the directory */
6461 pCharFunc *scan_km_C; /* user function scanning the directory */
6462 SUBROUTINE *scan_br_F; /* user function scanning for browsables */
6463 pCharFunc *scan_br_C; /* user function scanning for browsables */
6464 BrAction *root; /* list of actions in root window */
6465 BrAction *open; /* list of actions in open menu */
6469 typedef struct _KmIcon { /* */
6470 struct _KmIcon *next; /* link to next icon */
6471 char *name; /* unique identifier name */
6472 int width; /* width of the pixmap */
6473 int height; /* height of the pixmap */
6474 char *bitmap; /* bitmap data */
6475 KmPixmap pix; /* filled in Motif part */
6476 KmPixmap hi_pix; /* high lighted pixmap */
6479 typedef struct _KmClass { /* */
6480 struct _KmClass *next; /* link to next object class */
6481 int is_dir; /* flag if class has is a directory */
6482 char *name; /* unique identifier name */
6483 char *title; /* title for popup menu (maybe NULL) */
6484 char *big_icon; /* name of the big icon */
6485 KmIcon *bicon; /* pointer to the big icon structure */
6486 char *sm_icon; /* name of the small icon */
6487 KmIcon *sicon; /* pointer to the small icon structure */
6488 SUBROUTINE *user_icon_F; /* user function to return icon bitmap */
6489 IntFunc *user_icon_C; /* user function to return icon bitmap */
6490 BrAction *cont; /* list of actions in content window */
6491 BrAction *graf; /* list of actions in graphics window */
6492 int obj_count; /* number of objects in content window */
6496 typedef enum { /* */
6497 KmButtSensitive = 0x00, /* sensitive button */
6498 KmButtNonSensitive = 0x01, /* non-sensitive button ('NS') */
6499 KmButtToggleSensitive = 0x02, /* toggle-sensitive button ('TS') */
6500 KmButtSensitivityMask = 0x03, /* mask for sensitivity type */
6501 KmButtSeparator = 0x04, /* put separator in menu ('/') */
6502 KmButtBrowser = 0x08 /* button is in main browser ('BR') */
6505 typedef struct _KmButton { /* */
6506 struct _KmButton *next; /* button label or menu item */
6507 char *menu; /* menu name or NULL for buttons */
6508 char *label; /* button label or menu item */
6509 SUBROUTINE *call_F; /* callback routine (FORTRAN) */
6510 IntFunc *call_C; /* callback routine (C) */
6511 char *action; /* name of callback routine */
6512 char *mnemo; /* button mnemonic */
6513 char *accel; /* button accelerator */
6514 char *accel_text; /* button accelerator text */
6515 KmButtFlag flags; /* sensitivity type etc. */
6516 KmWidget widget; /* Motif widget ID */
6521 */ /* indirect calls to avoid linking HIGZ
6522 */ IntFunc *graf_info_C; /* pass display, open and close
6523 (ixmotif) */ SUBROUTINE *graf_size_F; /* resize window (IGRSIZ)
6524 */ SUBROUTINE *graf_pick_F; /* identifying graphics objects
6525 (IGOBJ) */ SUBROUTINE *graf_attr_F; /* set attributes (IGSET)
6526 */ SUBROUTINE *graf_close_F; /* close workstation (ICLWK)
6527 */ /* optional routines for Motif customization
6528 */ pCharFunc *user_FallBk_C; /* get application fallbacks
6529 */ IntFunc *user_TopWid_C; /* pass toplevel widget
6530 identifiers */ } klnkaddr; /*
6533 typedef enum { /* */
6534 KmFLAG_FORGET = 0x01, /* last value is not kept for Motif panels */
6535 KmFLAG_MINUS = 0x02, /* -VALUE is not an abbrev for CHOPT=VALUE */
6536 KmFLAG_QUOTE = 0x04, /* do not remove quotes */
6537 KmFLAG_VARARG = 0x08, /* append additional args to this param. */
6538 KmFLAG_CONST = 0x10, /* do not allow to assign a value */
6539 KmFLAG_HIDDEN = 0x20, /* do not show in menus */
6540 KmFLAG_SEPARATE = 0x40 /* treat arguments as separate tokens */
6543 typedef enum { /* */
6544 KmTYPE_CHAR = 'C', /* character string */
6545 KmTYPE_FILE = 'F', /* file name */
6546 KmTYPE_INT = 'I', /* integer */
6547 KmTYPE_OPTION = 'O', /* option */
6548 KmTYPE_REAL = 'R' /* real */
6552 typedef struct { /* file name */
6553 char *filter_default; /* filter wildcard */
6554 char *filter_current; /* current filter */
6557 typedef struct { /* */
6558 char *range_lower; /* lower value of range */
6559 char *range_upper; /* upper value of range */
6560 char *slider_lower; /* lower limit for slider */
6561 char *slider_upper; /* upper limit for slider */
6562 int decimals; /* number of decimals used for slider */
6565 typedef struct { /* option */
6566 char **text; /* explanations (parallel to range_value) */
6567 int *mutex; /* mutex group to which text belongs */
6568 int *radio; /* radio group to which text belongs */
6569 } KmParOption; /* */
6572 typedef KmParInt KmParReal; /* real and int have the same fields */
6574 typedef struct { /* */
6575 char *name; /* parameter name */
6576 int abbrev; /* minimum length that name is recognized */
6577 char *prompt; /* prompt string */
6578 char *dfault; /* default value */
6579 char *last; /* last value for Motif panel (malloced) */
6580 int width; /* width of input field */
6581 int range_count; /* number of items in range_value */
6582 char **range_value; /* list of allowed values */
6583 int select_count; /* number of items in select_count */
6584 char **select_value; /* list of values for selection box */
6585 KmParFlag flags; /* special flags */
6586 KmParType type; /* parameter type */
6587 void *ptype; /* structure pointer selected by type */
6588 } KmParameter; /* */
6591 typedef struct _KmCommand { /* */
6592 struct _KmCommand *next; /* link to next command */
6593 char *path; /* command path */
6594 char *name; /* command name */
6595 int hidden; /* flag if command is invisible */
6596 int level; /* depth of submenus */
6597 int total; /* total number of parameters */
6598 int mandatory; /* number of mandatory parameters */
6599 KmParameter **par; /* list of total parameter descriptions */
6600 int list_par; /* index+1 of parameter taking a list */
6601 int xcount; /* count number of action calls */
6602 SUBROUTINE *action_F; /* action routine */
6603 IntFunc *action_C; /* action routine */
6604 SUBROUTINE *user_help_F; /* user help routine */
6605 pCharFunc *user_help_C; /* user help routine */
6606 int nguidance; /* number of lines in guidance text */
6607 char **guidance; /* help text */
6608 int argc; /* number of arguments entered */
6609 char **argv; /* argc argument values */
6610 char *argline; /* argument line as entered */
6611 int *argoffs; /* argc offsets into argline for KUGETE */
6615 typedef struct _KmMenu { /* */
6616 struct _KmMenu *next; /* link to next menu */
6617 struct _KmMenu *down; /* link to submenu */
6618 char *path; /* path of parent menu */
6619 char *name; /* menu name */
6620 int level; /* depth of submenus */
6621 KmCommand *cmds; /* link to first command */
6622 int nguidance; /* number of lines in guidance text */
6623 char **guidance; /* help text */
6626 extern void klnkbrcl(); /* */
6627 extern void klnkicon(); /* */
6628 extern void klnkkmcl(); /* */
6629 extern void klnkmenu(); /* */
6633 # define gkdraw_ gkdraw
6634 # define gxdraw_ gxdraw
6635 # define gxpick_ gxpick
6639 # define gkdraw_ GKDRAW
6640 # define gxdraw_ GXDRAW
6641 # define gxpick_ GXPICK
6645 # pragma linkage(GKDRAW,FORTRAN)
6646 # pragma linkage(GXDRAW,FORTRAN)
6647 # pragma linkage(GXPICK,FORTRAN)
6650 extern void gkdraw_();
6651 extern void gxdraw_();
6652 extern void gxpick_();
6657 static KmParReal _GEANT_CVOL_VALCUT_XCUT_type = { (char*)0, (char*)0,
6658 (char*)0, (char*)0, 0 };
6659 static KmParameter _GEANT_CVOL_VALCUT_XCUT = { "XCUT", 4,
6660 "x coordinate of cutted value", "0.", (char*)0, 12, 0, (char**)0, 0,
6661 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CVOL_VALCUT_XCUT_type };
6662 static KmParReal _GEANT_CVOL_VALCUT_YCUT_type = { (char*)0, (char*)0,
6663 (char*)0, (char*)0, 0 };
6664 static KmParameter _GEANT_CVOL_VALCUT_YCUT = { "YCUT", 4,
6665 "y coordinate of cutted value", "0.", (char*)0, 12, 0, (char**)0, 0,
6666 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CVOL_VALCUT_YCUT_type };
6667 static KmParReal _GEANT_CVOL_VALCUT_ZCUT_type = { (char*)0, (char*)0,
6668 (char*)0, (char*)0, 0 };
6669 static KmParameter _GEANT_CVOL_VALCUT_ZCUT = { "ZCUT", 4,
6670 "z coordinate of cutted value", "0.", (char*)0, 12, 0, (char**)0, 0,
6671 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CVOL_VALCUT_ZCUT_type };
6672 static KmParameter *_GEANT_CVOL_VALCUT_parameters[] = {
6673 &_GEANT_CVOL_VALCUT_XCUT, &_GEANT_CVOL_VALCUT_YCUT, &_GEANT_CVOL_VALCUT_ZCUT
6675 static char *_GEANT_CVOL_VALCUT_guidance[] = {
6676 "It allows the cutting in the ray-tracing. All the volumes are cutted",
6677 "from XCUT to +BIG along the x axis, from YCUT to +BIG along the y axis",
6678 "and from ZCUT to +BIG along the z axis." };
6679 static KmCommand _GEANT_CVOL_VALCUT = { (KmCommand*)0, "/GEANT/CVOL/VALCUT",
6680 "VALCUT", 0, 2, 3, 3, _GEANT_CVOL_VALCUT_parameters, 0, 0, gxdraw_,
6681 (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_CVOL_VALCUT_guidance,
6682 0, (char**)0, (char*)0, (int*)0 };
6684 static KmParameter _GEANT_CVOL_SPHE_CNVV = { "CNVV", 4,
6685 " Name of volume to be clipped ", "* ", (char*)0, 20, 0,
6686 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
6687 static KmParReal _GEANT_CVOL_SPHE_RMAX_type = { (char*)0, (char*)0,
6688 (char*)0, (char*)0, 0 };
6689 static KmParameter _GEANT_CVOL_SPHE_RMAX = { "RMAX", 4,
6690 " External radius of sphere ", "0.1", (char*)0, 12, 0, (char**)0,
6691 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CVOL_SPHE_RMAX_type };
6692 static KmParReal _GEANT_CVOL_SPHE_XMED_type = { (char*)0, (char*)0,
6693 (char*)0, (char*)0, 0 };
6694 static KmParameter _GEANT_CVOL_SPHE_XMED = { "XMED", 4,
6695 " Center X coordinate ", "-10000.", (char*)0, 12, 0,
6696 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
6697 &_GEANT_CVOL_SPHE_XMED_type };
6698 static KmParReal _GEANT_CVOL_SPHE_YMED_type = { (char*)0, (char*)0,
6699 (char*)0, (char*)0, 0 };
6700 static KmParameter _GEANT_CVOL_SPHE_YMED = { "YMED", 4,
6701 " Center Y coordinate ", "-10000.", (char*)0, 12, 0,
6702 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
6703 &_GEANT_CVOL_SPHE_YMED_type };
6704 static KmParReal _GEANT_CVOL_SPHE_ZMED_type = { (char*)0, (char*)0,
6705 (char*)0, (char*)0, 0 };
6706 static KmParameter _GEANT_CVOL_SPHE_ZMED = { "ZMED", 4,
6707 " Center Z coordinate ", "-10000.", (char*)0, 12, 0,
6708 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
6709 &_GEANT_CVOL_SPHE_ZMED_type };
6710 static KmParameter *_GEANT_CVOL_SPHE_parameters[] = { &_GEANT_CVOL_SPHE_CNVV,
6711 &_GEANT_CVOL_SPHE_RMAX, &_GEANT_CVOL_SPHE_XMED, &_GEANT_CVOL_SPHE_YMED,
6712 &_GEANT_CVOL_SPHE_ZMED };
6713 static char *_GEANT_CVOL_SPHE_guidance[] = {
6714 "This command performs a boolean subtraction between the volume",
6715 "CNVV and a sphere; the sphere has the given parameters and is placed in",
6716 "the MARS according to the given coordinates of its center.",
6717 "See also CVOL. The following commands clip by a sphere,",
6718 "positioned according to the given parameters, the volume specified",
6719 "by NAME (a valid string for the NAME of the volume",
6720 "can be found using the DTREE command).", "EXAMPLE -", " dopt hide on",
6721 " satt * seen -2", " draw NAME 40 40 0 10 10 .01 .01", " next",
6722 " sphe * 500 0 0 500", " draw NAME 40 40 0 10 10 .01 .01", " box ." };
6723 static KmCommand _GEANT_CVOL_SPHE = { &_GEANT_CVOL_VALCUT, "/GEANT/CVOL/SPHE",
6724 "SPHE", 0, 2, 5, 1, _GEANT_CVOL_SPHE_parameters, 0, 0, gxdraw_, (IntFunc*)0,
6725 (SUBROUTINE*)0, (pCharFunc*)0, 15, _GEANT_CVOL_SPHE_guidance, 0, (char**)0,
6726 (char*)0, (int*)0 };
6728 static KmParameter _GEANT_CVOL_CONE_CNVV = { "CNVV", 4,
6729 " Name of volume to be clipped ", "* ", (char*)0, 20, 0,
6730 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
6731 static KmParReal _GEANT_CVOL_CONE_RMAX1_type = { (char*)0, (char*)0,
6732 (char*)0, (char*)0, 0 };
6733 static KmParameter _GEANT_CVOL_CONE_RMAX1 = { "RMAX1", 5,
6734 " Min external radius ", "0.1", (char*)0, 12, 0, (char**)0,
6735 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CVOL_CONE_RMAX1_type };
6736 static KmParReal _GEANT_CVOL_CONE_RMAX2_type = { (char*)0, (char*)0,
6737 (char*)0, (char*)0, 0 };
6738 static KmParameter _GEANT_CVOL_CONE_RMAX2 = { "RMAX2", 5,
6739 " Max external radius ", "0.1", (char*)0, 12, 0, (char**)0,
6740 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CVOL_CONE_RMAX2_type };
6741 static KmParReal _GEANT_CVOL_CONE_ZDEM_type = { (char*)0, (char*)0,
6742 (char*)0, (char*)0, 0 };
6743 static KmParameter _GEANT_CVOL_CONE_ZDEM = { "ZDEM", 4,
6744 " Half length of cone axis ", "0.1", (char*)0, 12, 0, (char**)0,
6745 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CVOL_CONE_ZDEM_type };
6746 static KmParReal _GEANT_CVOL_CONE_XMED_type = { (char*)0, (char*)0,
6747 (char*)0, (char*)0, 0 };
6748 static KmParameter _GEANT_CVOL_CONE_XMED = { "XMED", 4,
6749 " Center X coordinate ", "-10000.", (char*)0, 12, 0,
6750 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
6751 &_GEANT_CVOL_CONE_XMED_type };
6752 static KmParReal _GEANT_CVOL_CONE_YMED_type = { (char*)0, (char*)0,
6753 (char*)0, (char*)0, 0 };
6754 static KmParameter _GEANT_CVOL_CONE_YMED = { "YMED", 4,
6755 " Center Y coordinate ", "-10000.", (char*)0, 12, 0,
6756 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
6757 &_GEANT_CVOL_CONE_YMED_type };
6758 static KmParReal _GEANT_CVOL_CONE_ZMED_type = { (char*)0, (char*)0,
6759 (char*)0, (char*)0, 0 };
6760 static KmParameter _GEANT_CVOL_CONE_ZMED = { "ZMED", 4,
6761 " Center Z coordinate ", "-10000.", (char*)0, 12, 0,
6762 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
6763 &_GEANT_CVOL_CONE_ZMED_type };
6764 static KmParameter *_GEANT_CVOL_CONE_parameters[] = { &_GEANT_CVOL_CONE_CNVV,
6765 &_GEANT_CVOL_CONE_RMAX1, &_GEANT_CVOL_CONE_RMAX2, &_GEANT_CVOL_CONE_ZDEM,
6766 &_GEANT_CVOL_CONE_XMED, &_GEANT_CVOL_CONE_YMED, &_GEANT_CVOL_CONE_ZMED };
6767 static char *_GEANT_CVOL_CONE_guidance[] = {
6768 "This command performs a boolean subtraction between the volume",
6769 "CNVV and a cone; the cone has the given parameters and is placed in",
6770 "the MARS according to the given coordinates of its center.",
6771 "See also CVOL.", "The following commands will clip by a cone,",
6772 "positioned according the given parameters, the volume specified",
6773 "by NAME (a valid string for the NAME of the volume",
6774 "can be found using the DTREE command).", " EXAMPLE -", " dopt hide on",
6775 " satt * seen -2", " draw NAME 40 40 0 10 10 .01 .01", " next",
6776 " cone * 1 750 1000 0 0 1000", " draw NAME 40 40 0 10 10 .01 .01", " box ." };
6777 static KmCommand _GEANT_CVOL_CONE = { &_GEANT_CVOL_SPHE, "/GEANT/CVOL/CONE",
6778 "CONE", 0, 2, 7, 1, _GEANT_CVOL_CONE_parameters, 0, 0, gxdraw_, (IntFunc*)0,
6779 (SUBROUTINE*)0, (pCharFunc*)0, 16, _GEANT_CVOL_CONE_guidance, 0, (char**)0,
6780 (char*)0, (int*)0 };
6782 static KmParameter _GEANT_CVOL_TUBE_CNVV = { "CNVV", 4,
6783 " Name of volume to be clipped ", "* ", (char*)0, 20, 0,
6784 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
6785 static KmParReal _GEANT_CVOL_TUBE_RMAX_type = { (char*)0, (char*)0,
6786 (char*)0, (char*)0, 0 };
6787 static KmParameter _GEANT_CVOL_TUBE_RMAX = { "RMAX", 4,
6788 " External radius of tube ", "0.1", (char*)0, 12, 0, (char**)0,
6789 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CVOL_TUBE_RMAX_type };
6790 static KmParReal _GEANT_CVOL_TUBE_ZDEM_type = { (char*)0, (char*)0,
6791 (char*)0, (char*)0, 0 };
6792 static KmParameter _GEANT_CVOL_TUBE_ZDEM = { "ZDEM", 4,
6793 " Half length of tube axis ", "0.1", (char*)0, 12, 0, (char**)0,
6794 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CVOL_TUBE_ZDEM_type };
6795 static KmParReal _GEANT_CVOL_TUBE_XMED_type = { (char*)0, (char*)0,
6796 (char*)0, (char*)0, 0 };
6797 static KmParameter _GEANT_CVOL_TUBE_XMED = { "XMED", 4,
6798 " Center X coordinate ", "-10000.", (char*)0, 12, 0,
6799 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
6800 &_GEANT_CVOL_TUBE_XMED_type };
6801 static KmParReal _GEANT_CVOL_TUBE_YMED_type = { (char*)0, (char*)0,
6802 (char*)0, (char*)0, 0 };
6803 static KmParameter _GEANT_CVOL_TUBE_YMED = { "YMED", 4,
6804 " Center Y coordinate ", "-10000.", (char*)0, 12, 0,
6805 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
6806 &_GEANT_CVOL_TUBE_YMED_type };
6807 static KmParReal _GEANT_CVOL_TUBE_ZMED_type = { (char*)0, (char*)0,
6808 (char*)0, (char*)0, 0 };
6809 static KmParameter _GEANT_CVOL_TUBE_ZMED = { "ZMED", 4,
6810 " Center Z coordinate ", "-10000.", (char*)0, 12, 0,
6811 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
6812 &_GEANT_CVOL_TUBE_ZMED_type };
6813 static KmParameter *_GEANT_CVOL_TUBE_parameters[] = { &_GEANT_CVOL_TUBE_CNVV,
6814 &_GEANT_CVOL_TUBE_RMAX, &_GEANT_CVOL_TUBE_ZDEM, &_GEANT_CVOL_TUBE_XMED,
6815 &_GEANT_CVOL_TUBE_YMED, &_GEANT_CVOL_TUBE_ZMED };
6816 static char *_GEANT_CVOL_TUBE_guidance[] = {
6817 "This command performs a boolean subtraction between the volume",
6818 "CNVV and a tube; the tube has the given parameters and is placed in",
6819 "the MARS according the given coordinates of its center.", "See also CVOL.",
6820 "The following commands will clip, by a tube,",
6821 "positioned according to the given parameters, the volume specified",
6822 "by NAME (a valid string for the NAME of the volume",
6823 "can be found using the DTREE command).", " EXAMPLE -", " dopt hide on",
6824 " satt * seen -2", " draw NAME 40 40 0 10 10 .01 .01", " next",
6825 " tube * 500 1000 500 0 0", " draw NAME 40 40 0 10 10 .01 .01", " box ." };
6826 static KmCommand _GEANT_CVOL_TUBE = { &_GEANT_CVOL_CONE, "/GEANT/CVOL/TUBE",
6827 "TUBE", 0, 2, 6, 1, _GEANT_CVOL_TUBE_parameters, 0, 0, gxdraw_, (IntFunc*)0,
6828 (SUBROUTINE*)0, (pCharFunc*)0, 16, _GEANT_CVOL_TUBE_guidance, 0, (char**)0,
6829 (char*)0, (int*)0 };
6831 static KmParameter _GEANT_CVOL_BOX_CNNV = { "CNNV", 4,
6832 " Name of volume to be clipped ", "* ", (char*)0, 20, 0,
6833 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
6834 static KmParReal _GEANT_CVOL_BOX_XMIN_type = { (char*)0, (char*)0, (char*)0,
6836 static KmParameter _GEANT_CVOL_BOX_XMIN = { "XMIN", 4,
6837 " Lower limit of the Shape X coordinate ", "-10000.", (char*)0, 12, 0,
6838 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
6839 &_GEANT_CVOL_BOX_XMIN_type };
6840 static KmParReal _GEANT_CVOL_BOX_XMAX_type = { (char*)0, (char*)0, (char*)0,
6842 static KmParameter _GEANT_CVOL_BOX_XMAX = { "XMAX", 4,
6843 " Upper limit of the Shape X coordinate ", "-9999.", (char*)0, 12, 0,
6844 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
6845 &_GEANT_CVOL_BOX_XMAX_type };
6846 static KmParReal _GEANT_CVOL_BOX_YMIN_type = { (char*)0, (char*)0, (char*)0,
6848 static KmParameter _GEANT_CVOL_BOX_YMIN = { "YMIN", 4,
6849 " Lower limit of the Shape Y coordinate ", "-10000.", (char*)0, 12, 0,
6850 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
6851 &_GEANT_CVOL_BOX_YMIN_type };
6852 static KmParReal _GEANT_CVOL_BOX_YMAX_type = { (char*)0, (char*)0, (char*)0,
6854 static KmParameter _GEANT_CVOL_BOX_YMAX = { "YMAX", 4,
6855 " Upper limit of the Shape Y coordinate ", "-9999.", (char*)0, 12, 0,
6856 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
6857 &_GEANT_CVOL_BOX_YMAX_type };
6858 static KmParReal _GEANT_CVOL_BOX_ZMIN_type = { (char*)0, (char*)0, (char*)0,
6860 static KmParameter _GEANT_CVOL_BOX_ZMIN = { "ZMIN", 4,
6861 " Lower limit of the Shape Z coordinate ", "-10000.", (char*)0, 12, 0,
6862 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
6863 &_GEANT_CVOL_BOX_ZMIN_type };
6864 static KmParReal _GEANT_CVOL_BOX_ZMAX_type = { (char*)0, (char*)0, (char*)0,
6866 static KmParameter _GEANT_CVOL_BOX_ZMAX = { "ZMAX", 4,
6867 " Upper limit of the Shape Z coordinate ", "-9999.", (char*)0, 12, 0,
6868 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
6869 &_GEANT_CVOL_BOX_ZMAX_type };
6870 static KmParameter *_GEANT_CVOL_BOX_parameters[] = { &_GEANT_CVOL_BOX_CNNV,
6871 &_GEANT_CVOL_BOX_XMIN, &_GEANT_CVOL_BOX_XMAX, &_GEANT_CVOL_BOX_YMIN,
6872 &_GEANT_CVOL_BOX_YMAX, &_GEANT_CVOL_BOX_ZMIN, &_GEANT_CVOL_BOX_ZMAX };
6873 static char *_GEANT_CVOL_BOX_guidance[] = {
6874 "This command performs a boolean subtraction between the volume",
6875 "CNVV and a box placed in the MARS according the values of the given",
6876 "coordinates. See also CVOL.", "The following commands will clip by a box,",
6877 "with a vertex at the origin, the volume specified by NAME (a valid",
6878 "string for the NAME of the volume can be found using the DTREE command).",
6879 " EXAMPLE -", " dopt hide on", " satt * seen -2",
6880 " draw NAME 40 40 0 10 10 .01 .01", " next",
6881 " box NAME 0 1000 0 1000 0 1000", " draw NAME 40 40 0 10 10 .01 .01",
6883 static KmCommand _GEANT_CVOL_BOX = { &_GEANT_CVOL_TUBE, "/GEANT/CVOL/BOX",
6884 "BOX", 0, 2, 7, 1, _GEANT_CVOL_BOX_parameters, 0, 0, gxdraw_, (IntFunc*)0,
6885 (SUBROUTINE*)0, (pCharFunc*)0, 14, _GEANT_CVOL_BOX_guidance, 0, (char**)0,
6886 (char*)0, (int*)0 };
6888 static KmParameter _GEANT_DRAWING_DUVIEW_NAME = { "NAME", 4, "Detector name",
6889 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
6890 KmTYPE_CHAR, (void*)0 };
6891 static KmParameter _GEANT_DRAWING_DUVIEW_TYPE = { "TYPE", 4, "View name",
6892 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
6893 KmTYPE_CHAR, (void*)0 };
6894 static KmParameter _GEANT_DRAWING_DUVIEW_CPXTYP = { "CPXTYP", 6,
6895 "Complexity name", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
6896 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
6897 static KmParInt _GEANT_DRAWING_DUVIEW_IVIEW_type = { (char*)0, (char*)0,
6898 (char*)0, (char*)0, 0 };
6899 static KmParameter _GEANT_DRAWING_DUVIEW_IVIEW = { "IVIEW", 5,
6900 "View number where picture is stored", "0", (char*)0, 8, 0, (char**)0, 0,
6901 (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_DRAWING_DUVIEW_IVIEW_type };
6902 static KmParameter *_GEANT_DRAWING_DUVIEW_parameters[] = {
6903 &_GEANT_DRAWING_DUVIEW_NAME, &_GEANT_DRAWING_DUVIEW_TYPE,
6904 &_GEANT_DRAWING_DUVIEW_CPXTYP, &_GEANT_DRAWING_DUVIEW_IVIEW };
6905 static char *_GEANT_DRAWING_DUVIEW_guidance[] = {
6906 " CALL GUVIEW(name,type,cpxtyp,iview)" };
6907 static KmCommand _GEANT_DRAWING_DUVIEW = { (KmCommand*)0,
6908 "/GEANT/DRAWING/DUVIEW", "DUVIEW", 0, 2, 4, 3,
6909 _GEANT_DRAWING_DUVIEW_parameters, 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0,
6910 (pCharFunc*)0, 1, _GEANT_DRAWING_DUVIEW_guidance, 0, (char**)0, (char*)0,
6913 static KmParameter _GEANT_DRAWING_DCHIT_CHUSET = { "CHUSET", 6,
6914 "User set identifier", "*", (char*)0, 20, 0, (char**)0, 0, (char**)0,
6915 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
6916 static KmParameter _GEANT_DRAWING_DCHIT_CHUDET = { "CHUDET", 6,
6917 "User detector identifier", "*", (char*)0, 20, 0, (char**)0, 0, (char**)0,
6918 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
6919 static KmParInt _GEANT_DRAWING_DCHIT_ITRA_type = { (char*)0, (char*)0,
6920 (char*)0, (char*)0, 0 };
6921 static KmParameter _GEANT_DRAWING_DCHIT_ITRA = { "ITRA", 4,
6922 "Number of the selected track", "0", (char*)0, 8, 0, (char**)0, 0, (char**)0,
6923 (KmParFlag)0, KmTYPE_INT, &_GEANT_DRAWING_DCHIT_ITRA_type };
6924 static KmParInt _GEANT_DRAWING_DCHIT_ISYMB_type = { (char*)0, (char*)0,
6925 (char*)0, (char*)0, 0 };
6926 static KmParameter _GEANT_DRAWING_DCHIT_ISYMB = { "ISYMB", 5,
6927 "Character selection number", "0", (char*)0, 8, 0, (char**)0, 0, (char**)0,
6928 (KmParFlag)0, KmTYPE_INT, &_GEANT_DRAWING_DCHIT_ISYMB_type };
6929 static KmParReal _GEANT_DRAWING_DCHIT_SIZMAX_type = { (char*)0, (char*)0,
6930 (char*)0, (char*)0, 0 };
6931 static KmParameter _GEANT_DRAWING_DCHIT_SIZMAX = { "SIZMAX", 6,
6932 "Maximum character size (cm)", "1", (char*)0, 12, 0, (char**)0, 0, (char**)0,
6933 (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DCHIT_SIZMAX_type };
6934 static KmParInt _GEANT_DRAWING_DCHIT_IHIT_type = { (char*)0, (char*)0,
6935 (char*)0, (char*)0, 0 };
6936 static KmParameter _GEANT_DRAWING_DCHIT_IHIT = { "IHIT", 4,
6937 "Index of array HITS", "4", (char*)0, 8, 0, (char**)0, 0, (char**)0,
6938 (KmParFlag)0, KmTYPE_INT, &_GEANT_DRAWING_DCHIT_IHIT_type };
6939 static KmParReal _GEANT_DRAWING_DCHIT_HITMIN_type = { (char*)0, (char*)0,
6940 (char*)0, (char*)0, 0 };
6941 static KmParameter _GEANT_DRAWING_DCHIT_HITMIN = { "HITMIN", 6,
6942 "Lower boundary of HITS(IHIT)", "0", (char*)0, 12, 0, (char**)0, 0,
6943 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DCHIT_HITMIN_type };
6944 static KmParReal _GEANT_DRAWING_DCHIT_HITMAX_type = { (char*)0, (char*)0,
6945 (char*)0, (char*)0, 0 };
6946 static KmParameter _GEANT_DRAWING_DCHIT_HITMAX = { "HITMAX", 6,
6947 "Upper boundary of HITS(IHIT)", "0", (char*)0, 12, 0, (char**)0, 0,
6948 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DCHIT_HITMAX_type };
6949 static KmParameter *_GEANT_DRAWING_DCHIT_parameters[] = {
6950 &_GEANT_DRAWING_DCHIT_CHUSET, &_GEANT_DRAWING_DCHIT_CHUDET,
6951 &_GEANT_DRAWING_DCHIT_ITRA, &_GEANT_DRAWING_DCHIT_ISYMB,
6952 &_GEANT_DRAWING_DCHIT_SIZMAX, &_GEANT_DRAWING_DCHIT_IHIT,
6953 &_GEANT_DRAWING_DCHIT_HITMIN, &_GEANT_DRAWING_DCHIT_HITMAX };
6954 static char *_GEANT_DRAWING_DCHIT_guidance[] = {
6955 " CALL GDCHIT(chuset,chudet,itra,isymb,sizmax,ihit,hitmin,hitmax)",
6956 "The character plotted at each hit point may be chosen via",
6957 "CSYMB; isymb is composed as:",
6958 " -1 (small) hardware points (fast)",
6959 " 0 software crosses (default)",
6960 " 840,850 empty/full circles (slow)",
6961 " 841,851 empty/full squares (slow)",
6962 " 842,852 empty/full triangles (up) (slow)",
6963 " 843,853 empty diamond/full triangle (down) (slow)",
6964 " 844,854 empty/full stars (slow)",
6965 "Except for isymb=-1 the SIZE of the character on the screen",
6966 "is a function of HITS(IHIT), the array containing the calorimeter",
6967 "quantity, with HITMIN and HITMAX defining its range.",
6968 "The maximum character size (used in overflow) is SIZMAX.",
6969 " SIZE = SIZMAX * ( HITS(IHIT) - HITMIN ) / HITMAX" };
6970 static KmCommand _GEANT_DRAWING_DCHIT = { &_GEANT_DRAWING_DUVIEW,
6971 "/GEANT/DRAWING/DCHIT", "DCHIT", 0, 2, 8, 0, _GEANT_DRAWING_DCHIT_parameters,
6972 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 15,
6973 _GEANT_DRAWING_DCHIT_guidance, 0, (char**)0, (char*)0, (int*)0 };
6975 static KmParameter _GEANT_DRAWING_KHITS_CHUSET = { "CHUSET", 6,
6976 "User set identifier", "*", (char*)0, 20, 0, (char**)0, 0, (char**)0,
6977 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
6978 static KmParameter _GEANT_DRAWING_KHITS_CHUDET = { "CHUDET", 6,
6979 "User detector identifier", "*", (char*)0, 20, 0, (char**)0, 0, (char**)0,
6980 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
6981 static KmParReal _GEANT_DRAWING_KHITS_EPSILO_type = { (char*)0, (char*)0,
6982 (char*)0, (char*)0, 0 };
6983 static KmParameter _GEANT_DRAWING_KHITS_EPSILO = { "EPSILO", 6,
6984 "Pick aperture", "0.1", (char*)0, 12, 0, (char**)0, 0, (char**)0,
6985 (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_KHITS_EPSILO_type };
6986 static KmParameter *_GEANT_DRAWING_KHITS_parameters[] = {
6987 &_GEANT_DRAWING_KHITS_CHUSET, &_GEANT_DRAWING_KHITS_CHUDET,
6988 &_GEANT_DRAWING_KHITS_EPSILO };
6989 static char *_GEANT_DRAWING_KHITS_guidance[] = {
6990 " CALL GKHITS(chuset,chudet,epsilo)",
6991 "The picking of hit points requires the appropriate JSET data structure",
6993 "and is repeated until the character typed is 'Q' or 'q' (GKS) or the",
6994 "right button of the mouse is clicked (X11).",
6995 "If the character typed to pick is 'K' or 'k' then the",
6996 "kinematics of the corresponding track is also printed.",
6997 "The search is made of all the hits of all tracks in",
6998 "detector CHUDET of set CHUSET.",
6999 "EPSILO is the pick aperture; if EPSILO<0 its absolute value is taken",
7000 "and in addition the pick aperture is drawn; if EPSILO=0",
7001 "there is an infinite pick aperture and",
7002 "over all the hits the one nearest to the pick point is taken." };
7003 static KmCommand _GEANT_DRAWING_KHITS = { &_GEANT_DRAWING_DCHIT,
7004 "/GEANT/DRAWING/KHITS", "KHITS", 0, 2, 3, 0, _GEANT_DRAWING_KHITS_parameters,
7005 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 13,
7006 _GEANT_DRAWING_KHITS_guidance, 0, (char**)0, (char*)0, (int*)0 };
7008 static KmParameter _GEANT_DRAWING_DHITS_CHUSET = { "CHUSET", 6,
7009 "User set identifier", "*", (char*)0, 20, 0, (char**)0, 0, (char**)0,
7010 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
7011 static KmParameter _GEANT_DRAWING_DHITS_CHUDET = { "CHUDET", 6,
7012 "User detector identifier", "*", (char*)0, 20, 0, (char**)0, 0, (char**)0,
7013 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
7014 static KmParInt _GEANT_DRAWING_DHITS_ITRA_type = { (char*)0, (char*)0,
7015 (char*)0, (char*)0, 0 };
7016 static KmParameter _GEANT_DRAWING_DHITS_ITRA = { "ITRA", 4,
7017 "Number of the selected track", "0", (char*)0, 8, 0, (char**)0, 0, (char**)0,
7018 (KmParFlag)0, KmTYPE_INT, &_GEANT_DRAWING_DHITS_ITRA_type };
7019 static KmParInt _GEANT_DRAWING_DHITS_ISYMB_type = { (char*)0, (char*)0,
7020 (char*)0, (char*)0, 0 };
7021 static KmParameter _GEANT_DRAWING_DHITS_ISYMB = { "ISYMB", 5,
7022 "Character selection number", "0", (char*)0, 8, 0, (char**)0, 0, (char**)0,
7023 (KmParFlag)0, KmTYPE_INT, &_GEANT_DRAWING_DHITS_ISYMB_type };
7024 static KmParReal _GEANT_DRAWING_DHITS_SSYMB_type = { (char*)0, (char*)0,
7025 (char*)0, (char*)0, 0 };
7026 static KmParameter _GEANT_DRAWING_DHITS_SSYMB = { "SSYMB", 5,
7027 "Size of characters (cm)", "0.1", (char*)0, 12, 0, (char**)0, 0, (char**)0,
7028 (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DHITS_SSYMB_type };
7029 static KmParameter *_GEANT_DRAWING_DHITS_parameters[] = {
7030 &_GEANT_DRAWING_DHITS_CHUSET, &_GEANT_DRAWING_DHITS_CHUDET,
7031 &_GEANT_DRAWING_DHITS_ITRA, &_GEANT_DRAWING_DHITS_ISYMB,
7032 &_GEANT_DRAWING_DHITS_SSYMB };
7033 static char *_GEANT_DRAWING_DHITS_guidance[] = {
7034 "CALL GDHITS(chuset,chudet,itra,isymb,ssymb).",
7035 "The character plotted at each hit point may be chosen by isymb :",
7036 " -1 (small) hardware points (fast)",
7037 " 0 software crosses (default)",
7038 " 840,850 empty/full circles (slow)",
7039 " 841,851 empty/full squares (slow)",
7040 " 842,852 empty/full triangles (up) (slow)",
7041 " 843,853 empty diamond/full triangle (down) (slow)",
7042 " 844,854 empty/full stars (slow)",
7043 "Except for isymb=-1, the size of the character on the screen can be",
7044 "chosen by SSYMB cm. The hit colour will follow the value of TXCI (text",
7045 "colour) for isymb>0, the value of PMCI (polymarkers colour) for isymb<0,",
7046 "the value of PLCI (polyline colour) for isymb=0." };
7047 static KmCommand _GEANT_DRAWING_DHITS = { &_GEANT_DRAWING_KHITS,
7048 "/GEANT/DRAWING/DHITS", "DHITS", 0, 2, 5, 0, _GEANT_DRAWING_DHITS_parameters,
7049 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 13,
7050 _GEANT_DRAWING_DHITS_guidance, 0, (char**)0, (char*)0, (int*)0 };
7052 static KmParInt _GEANT_DRAWING_DPART_ITRA_type = { (char*)0, (char*)0,
7053 (char*)0, (char*)0, 0 };
7054 static KmParameter _GEANT_DRAWING_DPART_ITRA = { "ITRA", 4, "Track number",
7055 "0", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
7056 &_GEANT_DRAWING_DPART_ITRA_type };
7057 static KmParInt _GEANT_DRAWING_DPART_ISEL_type = { (char*)0, (char*)0,
7058 (char*)0, (char*)0, 0 };
7059 static KmParameter _GEANT_DRAWING_DPART_ISEL = { "ISEL", 4, "Option flag",
7060 "11", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
7061 &_GEANT_DRAWING_DPART_ISEL_type };
7062 static KmParReal _GEANT_DRAWING_DPART_SIZE_type = { (char*)0, (char*)0,
7063 (char*)0, (char*)0, 0 };
7064 static KmParameter _GEANT_DRAWING_DPART_SIZE = { "SIZE", 4,
7065 "Character size (cm) for particle names", "0.25", (char*)0, 12, 0, (char**)0,
7066 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DPART_SIZE_type };
7067 static KmParameter *_GEANT_DRAWING_DPART_parameters[] = {
7068 &_GEANT_DRAWING_DPART_ITRA, &_GEANT_DRAWING_DPART_ISEL,
7069 &_GEANT_DRAWING_DPART_SIZE };
7070 static char *_GEANT_DRAWING_DPART_guidance[] = {
7071 " CALL GDPART(itra,isel,size)", " isel=x1 to draw the track number",
7072 " isel=1x to draw the particle name" };
7073 static KmCommand _GEANT_DRAWING_DPART = { &_GEANT_DRAWING_DHITS,
7074 "/GEANT/DRAWING/DPART", "DPART", 0, 2, 3, 0, _GEANT_DRAWING_DPART_parameters,
7075 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
7076 _GEANT_DRAWING_DPART_guidance, 0, (char**)0, (char*)0, (int*)0 };
7078 static KmParReal _GEANT_DRAWING_KXYZ_EPSILO_type = { (char*)0, (char*)0,
7079 (char*)0, (char*)0, 0 };
7080 static KmParameter _GEANT_DRAWING_KXYZ_EPSILO = { "EPSILO", 6, "Delta angle",
7081 "0.25", (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
7082 &_GEANT_DRAWING_KXYZ_EPSILO_type };
7083 static KmParameter *_GEANT_DRAWING_KXYZ_parameters[] = {
7084 &_GEANT_DRAWING_KXYZ_EPSILO };
7085 static char *_GEANT_DRAWING_KXYZ_guidance[] = { " CALL GKXYZ(epsilo)",
7086 "The picking of track points requires the JXYZ data structure",
7087 "and is repeated until the character typed is 'Q' or 'q' (GKS)",
7088 "or the right button of the mouse is clicked (X11).",
7089 "EPSILO is the delta angle used for picking; if EPSILO=0",
7090 "there is no optimization performed and",
7091 "over all the track points the one nearest to the pick", "point is taken." };
7092 static KmCommand _GEANT_DRAWING_KXYZ = { &_GEANT_DRAWING_DPART,
7093 "/GEANT/DRAWING/KXYZ", "KXYZ", 0, 2, 1, 0, _GEANT_DRAWING_KXYZ_parameters, 0,
7094 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 8,
7095 _GEANT_DRAWING_KXYZ_guidance, 0, (char**)0, (char*)0, (int*)0 };
7097 static KmParInt _GEANT_DRAWING_DXYZ_ITRA_type = { (char*)0, (char*)0,
7098 (char*)0, (char*)0, 0 };
7099 static KmParameter _GEANT_DRAWING_DXYZ_ITRA = { "ITRA", 4, "Track number",
7100 "0", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
7101 &_GEANT_DRAWING_DXYZ_ITRA_type };
7102 static KmParameter *_GEANT_DRAWING_DXYZ_parameters[] = {
7103 &_GEANT_DRAWING_DXYZ_ITRA };
7104 static char *_GEANT_DRAWING_DXYZ_guidance[] = { " CALL GDXYZ(itra)",
7105 "Draw tracks previously stored via GSXYZ." };
7106 static KmCommand _GEANT_DRAWING_DXYZ = { &_GEANT_DRAWING_KXYZ,
7107 "/GEANT/DRAWING/DXYZ", "DXYZ", 0, 2, 1, 0, _GEANT_DRAWING_DXYZ_parameters, 0,
7108 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 2,
7109 _GEANT_DRAWING_DXYZ_guidance, 0, (char**)0, (char*)0, (int*)0 };
7111 static KmParReal _GEANT_DRAWING_ZOOM_ZFU_type = { (char*)0, (char*)0,
7112 (char*)0, (char*)0, 0 };
7113 static KmParameter _GEANT_DRAWING_ZOOM_ZFU = { "ZFU", 3,
7114 "Zoom factor for U-coord. (horizontal)", "2.", (char*)0, 12, 0, (char**)0, 0,
7115 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_ZOOM_ZFU_type };
7116 static KmParReal _GEANT_DRAWING_ZOOM_ZFV_type = { (char*)0, (char*)0,
7117 (char*)0, (char*)0, 0 };
7118 static KmParameter _GEANT_DRAWING_ZOOM_ZFV = { "ZFV", 3,
7119 "Zoom factor for V-coord. (vertical)", "2.", (char*)0, 12, 0, (char**)0, 0,
7120 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_ZOOM_ZFV_type };
7121 static KmParInt _GEANT_DRAWING_ZOOM_ISEL_type = { (char*)0, (char*)0,
7122 (char*)0, (char*)0, 0 };
7123 static KmParameter _GEANT_DRAWING_ZOOM_ISEL = { "ISEL", 4, "Options", "1",
7124 (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
7125 &_GEANT_DRAWING_ZOOM_ISEL_type };
7126 static KmParReal _GEANT_DRAWING_ZOOM_UZ0_type = { "0.", "20.", "0.", "20.",
7128 static KmParameter _GEANT_DRAWING_ZOOM_UZ0 = { "UZ0", 3,
7129 "U-coord. of the centre of zoom rectangle", "10.", (char*)0, 12, 0,
7130 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
7131 &_GEANT_DRAWING_ZOOM_UZ0_type };
7132 static KmParReal _GEANT_DRAWING_ZOOM_VZ0_type = { "0.", "20.", "0.", "20.",
7134 static KmParameter _GEANT_DRAWING_ZOOM_VZ0 = { "VZ0", 3,
7135 "V-coord. of the centre of zoom rectangle", "10.", (char*)0, 12, 0,
7136 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
7137 &_GEANT_DRAWING_ZOOM_VZ0_type };
7138 static KmParReal _GEANT_DRAWING_ZOOM_U0_type = { "0.", "20.", "0.", "20.", 0
7140 static KmParameter _GEANT_DRAWING_ZOOM_U0 = { "U0", 2,
7141 "U-coord. of the centre of resulting zoomed rectangle", "10.", (char*)0, 12,
7142 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
7143 &_GEANT_DRAWING_ZOOM_U0_type };
7144 static KmParReal _GEANT_DRAWING_ZOOM_V0_type = { "0.", "20.", "0.", "20.", 0
7146 static KmParameter _GEANT_DRAWING_ZOOM_V0 = { "V0", 2,
7147 "V-coord. of the centre of resulting zoomed rectangle", "10.", (char*)0, 12,
7148 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
7149 &_GEANT_DRAWING_ZOOM_V0_type };
7150 static KmParameter *_GEANT_DRAWING_ZOOM_parameters[] = {
7151 &_GEANT_DRAWING_ZOOM_ZFU, &_GEANT_DRAWING_ZOOM_ZFV,
7152 &_GEANT_DRAWING_ZOOM_ISEL, &_GEANT_DRAWING_ZOOM_UZ0,
7153 &_GEANT_DRAWING_ZOOM_VZ0, &_GEANT_DRAWING_ZOOM_U0, &_GEANT_DRAWING_ZOOM_V0 };
7154 static char *_GEANT_DRAWING_ZOOM_guidance[] = {
7155 " CALL GDZOOM(zfu,zfv,uz0,vz0,u0,v0)",
7156 "This command sets the zoom parameters that will be used by",
7157 "subsequent calls to the drawing routines. Each zoom operation is always",
7158 "relative to the status of the current zoom parameters.",
7159 "The scale factors in u,v are respectively zfu,zfv.",
7160 "zfu=0 (or zfv=0) will act as a reset (i.e. unzoomed viewing).",
7161 "The zoom is computed around uz0,vz0 (user coordinates),",
7162 "and the resulting picture will be centered at u0,v0.",
7163 "The use of the space bar is replaced by the left button of the mouse",
7164 "running with X11:", "If isel=0 :", " 1. position the cursor at (uz0,vz0)",
7165 " 2. type the space bar (GKS)", "(u0,v0 are chosen at centre of screen)",
7166 "If isel=1 :", " 1. position the cursor at first corner of zoom rectangle",
7167 " 2. type the space bar (GKS)",
7168 " 3. position the cursor at second corner of zoom rectangle",
7169 " 4. type the space bar (GKS)",
7170 "(zfu,zfv are chosen according to the zoom rectangle;",
7171 "uz0,vz0 are chosen at the centre of the zoom rectangle;",
7172 "u0,v0 are chosen at centre of screen)", "If isel=2 :",
7173 " 1. position the cursor at (uz0,vz0)", " 2. type the space bar (GKS)",
7174 " 3. position the cursor at (u0,v0)", " 4. type the space bar (GKS)",
7175 "If isel=1000+n and running with X-windows:",
7176 " 1. n must be the identifier of an active view bank",
7177 " 2. clicking on the left button of the mouse will display",
7178 " a zoomed view (computed around the cursor position) of",
7179 " the previous drawing in a new window",
7180 " 3. it is now possible to iterate the zooming from the new window",
7181 " 4. clicking on the right button will return the control to the",
7183 " 5. clicking on the left button it is possible to open new windows",
7184 " zooming in other points of the detector",
7185 " 6. clicking on the right button when the main window is active",
7186 " will return the control to the 'command mode'." };
7187 static KmCommand _GEANT_DRAWING_ZOOM = { &_GEANT_DRAWING_DXYZ,
7188 "/GEANT/DRAWING/ZOOM", "ZOOM", 0, 2, 7, 0, _GEANT_DRAWING_ZOOM_parameters, 0,
7189 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 39,
7190 _GEANT_DRAWING_ZOOM_guidance, 0, (char**)0, (char*)0, (int*)0 };
7192 static KmParInt _GEANT_DRAWING_LENS_KNUM_type = { (char*)0, (char*)0,
7193 (char*)0, (char*)0, 0 };
7194 static KmParameter _GEANT_DRAWING_LENS_KNUM = { "KNUM", 4,
7195 "View bank identifier", "1", (char*)0, 8, 0, (char**)0, 0, (char**)0,
7196 (KmParFlag)0, KmTYPE_INT, &_GEANT_DRAWING_LENS_KNUM_type };
7197 static KmParameter _GEANT_DRAWING_LENS_KSAM = { "KSAM", 4,
7198 "Sample mode ", "OFF ", (char*)0, 20, 0, (char**)0, 0, (char**)0,
7199 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
7200 static KmParameter *_GEANT_DRAWING_LENS_parameters[] = {
7201 &_GEANT_DRAWING_LENS_KNUM, &_GEANT_DRAWING_LENS_KSAM };
7202 static char *_GEANT_DRAWING_LENS_guidance[] = {
7203 "Interactive zooming for detectors and events when running",
7204 "with X-windows. Using this command, when showing the contents of a",
7205 "view bank, it is possible to click (left button) in two points of the",
7206 "drawing (which will represent the left upper corner and the right",
7207 "bottom corner of the part to be zoomed). After the second click",
7208 "a new 'window' will appear to fit the frame defined",
7209 "by the two clicks and it will show a zoomed view as seen from a",
7210 "lens with those dimensions. Clicking now the central button will",
7211 "translate the lens over the drawing, while clicking the right button",
7212 "will stop it. Moreover, clicking the left button of the",
7213 "mouse, the lens will increase (or decrease) its magnification",
7214 "power according to the backward-to-forward movement of the mouse.",
7215 "A click on the right button will stop this action and it is possible",
7216 "to restart the translation of the lens or, clicking",
7217 "on the right button again, to make the lens disappear. It is then possible",
7218 "to open another 'window-lens' with different dimensions. Thus,",
7219 "this command can be useful to scan detailed parts of a detector or",
7220 "to scan hits and showers for events. Clicking the right",
7221 "button when no lens is displayed will return the control to the",
7222 "'command mode'. The LENS is also available in sample mode when KSAM is",
7223 "'ON'.", "The following commands will fill a view bank and will",
7224 "allow to scan the detector and an event previously stored",
7225 "via the use of LENS (when running", "with X-windows):", " EXAMPLE -",
7226 " satt * seen 1", " dopen 1", " draw NAME 40 40 0 10 10 .01 .01", " dxyz 0",
7227 " dhits * * 0 0 .2", " dclose", " dsh 1", " lens 1 on" };
7228 static KmCommand _GEANT_DRAWING_LENS = { &_GEANT_DRAWING_ZOOM,
7229 "/GEANT/DRAWING/LENS", "LENS", 0, 2, 2, 1, _GEANT_DRAWING_LENS_parameters, 0,
7230 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 34,
7231 _GEANT_DRAWING_LENS_guidance, 0, (char**)0, (char*)0, (int*)0 };
7233 static KmParameter _GEANT_DRAWING_PERSP_NAME = { "NAME", 4, "Volume name",
7234 " ", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
7236 static KmParReal _GEANT_DRAWING_PERSP_DISTT_type = { (char*)0, (char*)0,
7237 (char*)0, (char*)0, 0 };
7238 static KmParameter _GEANT_DRAWING_PERSP_DISTT = { "DISTT", 5,
7239 "Volume distance from observer", "1000.", (char*)0, 12, 0, (char**)0, 0,
7240 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_PERSP_DISTT_type };
7241 static KmParameter _GEANT_DRAWING_PERSP_SAMP = { "SAMP", 4,
7242 "Control to the mouse", "OFF ", (char*)0, 20, 0, (char**)0, 0, (char**)0,
7243 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
7244 static KmParameter *_GEANT_DRAWING_PERSP_parameters[] = {
7245 &_GEANT_DRAWING_PERSP_NAME, &_GEANT_DRAWING_PERSP_DISTT,
7246 &_GEANT_DRAWING_PERSP_SAMP };
7247 static char *_GEANT_DRAWING_PERSP_guidance[] = {
7248 "To control the perspective according to the variation of the distance",
7249 "between the observer and the object (if PROJ has the value PERS).",
7250 "If SAMP is ON the control of the distance is given via the mouse." };
7251 static KmCommand _GEANT_DRAWING_PERSP = { &_GEANT_DRAWING_LENS,
7252 "/GEANT/DRAWING/PERSP", "PERSP", 0, 2, 3, 2, _GEANT_DRAWING_PERSP_parameters,
7253 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
7254 _GEANT_DRAWING_PERSP_guidance, 0, (char**)0, (char*)0, (int*)0 };
7256 static KmParameter _GEANT_DRAWING_MOVE3D_NAME = { "NAME", 4, "Volume name",
7257 " ", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
7259 static KmParReal _GEANT_DRAWING_MOVE3D_THETA_type = { "0.", "180.", "0.",
7261 static KmParameter _GEANT_DRAWING_MOVE3D_THETA = { "THETA", 5,
7262 "Viewing angle theta (for 3D projection)", "40.", (char*)0, 12, 0, (char**)0,
7263 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_MOVE3D_THETA_type };
7264 static KmParReal _GEANT_DRAWING_MOVE3D_PHI_type = { "0.", "360.", "0.",
7266 static KmParameter _GEANT_DRAWING_MOVE3D_PHI = { "PHI", 3,
7267 "Viewing angle phi (for 3D projection)", "40.", (char*)0, 12, 0, (char**)0,
7268 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_MOVE3D_PHI_type };
7269 static KmParReal _GEANT_DRAWING_MOVE3D_PSI_type = { "0.", "180.", "0.",
7271 static KmParameter _GEANT_DRAWING_MOVE3D_PSI = { "PSI", 3,
7272 "Viewing angle psi (for 2D rotation)", "0.", (char*)0, 12, 0, (char**)0, 0,
7273 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_MOVE3D_PSI_type };
7274 static KmParReal _GEANT_DRAWING_MOVE3D_U0_type = { "0.", "20.", "0.", "20.",
7276 static KmParameter _GEANT_DRAWING_MOVE3D_U0 = { "U0", 2,
7277 "U-coord. (horizontal) of volume origin", "10.", (char*)0, 12, 0, (char**)0,
7278 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_MOVE3D_U0_type };
7279 static KmParReal _GEANT_DRAWING_MOVE3D_V0_type = { "0.", "20.", "0.", "20.",
7281 static KmParameter _GEANT_DRAWING_MOVE3D_V0 = { "V0", 2,
7282 "V-coord. (vertical) of volume origin", "10.", (char*)0, 12, 0, (char**)0, 0,
7283 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_MOVE3D_V0_type };
7284 static KmParReal _GEANT_DRAWING_MOVE3D_SU_type = { (char*)0, (char*)0,
7285 (char*)0, (char*)0, 0 };
7286 static KmParameter _GEANT_DRAWING_MOVE3D_SU = { "SU", 2,
7287 "Scale factor for U-coord.", "0.01", (char*)0, 12, 0, (char**)0, 0,
7288 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_MOVE3D_SU_type };
7289 static KmParReal _GEANT_DRAWING_MOVE3D_SV_type = { (char*)0, (char*)0,
7290 (char*)0, (char*)0, 0 };
7291 static KmParameter _GEANT_DRAWING_MOVE3D_SV = { "SV", 2,
7292 "Scale factor for V-coord.", "0.01", (char*)0, 12, 0, (char**)0, 0,
7293 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_MOVE3D_SV_type };
7294 static KmParReal _GEANT_DRAWING_MOVE3D_SZ_type = { "0.1", "10.", "0.1",
7296 static KmParameter _GEANT_DRAWING_MOVE3D_SZ = { "SZ", 2, "Scale zoom factor",
7297 "1.", (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
7298 &_GEANT_DRAWING_MOVE3D_SZ_type };
7299 static char *_GEANT_DRAWING_MOVE3D_NOPT_range[] = { "T", "H" };
7300 static char *_GEANT_DRAWING_MOVE3D_NOPT_text[] = { (char*)0, (char*)0 };
7301 static KmParOption _GEANT_DRAWING_MOVE3D_NOPT_type = {
7302 _GEANT_DRAWING_MOVE3D_NOPT_text, (int*)0, (int*)0 };
7303 static KmParameter _GEANT_DRAWING_MOVE3D_NOPT = { "NOPT", 4,
7304 "T=tracks,H=hits", " ", (char*)0, 8, 2, _GEANT_DRAWING_MOVE3D_NOPT_range,
7305 2, _GEANT_DRAWING_MOVE3D_NOPT_range, (KmParFlag)0, KmTYPE_OPTION,
7306 &_GEANT_DRAWING_MOVE3D_NOPT_type };
7307 static KmParameter *_GEANT_DRAWING_MOVE3D_parameters[] = {
7308 &_GEANT_DRAWING_MOVE3D_NAME, &_GEANT_DRAWING_MOVE3D_THETA,
7309 &_GEANT_DRAWING_MOVE3D_PHI, &_GEANT_DRAWING_MOVE3D_PSI,
7310 &_GEANT_DRAWING_MOVE3D_U0, &_GEANT_DRAWING_MOVE3D_V0,
7311 &_GEANT_DRAWING_MOVE3D_SU, &_GEANT_DRAWING_MOVE3D_SV,
7312 &_GEANT_DRAWING_MOVE3D_SZ, &_GEANT_DRAWING_MOVE3D_NOPT };
7313 static char *_GEANT_DRAWING_MOVE3D_guidance[] = {
7314 "Same functionality of the command MOVE interfaced with MOTIF." };
7315 static KmCommand _GEANT_DRAWING_MOVE3D = { &_GEANT_DRAWING_PERSP,
7316 "/GEANT/DRAWING/MOVE3D", "MOVE3D", 0, 2, 10, 1,
7317 _GEANT_DRAWING_MOVE3D_parameters, 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0,
7318 (pCharFunc*)0, 1, _GEANT_DRAWING_MOVE3D_guidance, 0, (char**)0, (char*)0,
7321 static KmParameter _GEANT_DRAWING_MOVE_NAME = { "NAME", 4, "Volume name",
7322 " ", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
7324 static KmParameter _GEANT_DRAWING_MOVE_NOPT = { "NOPT", 4,
7325 "S=sample mode,T=tracks,H=hits", " ", (char*)0, 20, 0, (char**)0, 0,
7326 (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
7327 static KmParameter *_GEANT_DRAWING_MOVE_parameters[] = {
7328 &_GEANT_DRAWING_MOVE_NAME, &_GEANT_DRAWING_MOVE_NOPT };
7329 static char *_GEANT_DRAWING_MOVE_guidance[] = {
7330 "Positioning some daughter volumes inside a 'mother', it can be",
7331 "important to check if overlaps between such volumes have occurred.",
7332 "Instead of putting the drawing in a view bank, zooming, and iterating",
7333 "the process for different viewing angles of the same detector, the",
7334 "MOVE facility has been developed (for machines running with X11):",
7335 "it is sufficient to draw a view of the volumes to be analysed (after",
7336 "setting the proper SEEN, COLO, etc. attributes) and then to enter",
7337 "'MOVE' followed by the same 'NAME' used for the last command DRAW.",
7338 "The detector will appear in a panel with five buttons at the",
7339 "bottom: THETA, PHI, TRASL, ZOOM, OFF. Clicking on the left button",
7340 "of the mouse, when the cursor is inside the THETA area, will rotate the",
7341 "detector along the polar angle theta according to the",
7342 "backward-to-forward movement of the mouse",
7343 "(clicking up and down the left button if",
7344 "not in sample mode); clicking on the right button of",
7345 "the mouse will stop the rotation; clicking now on the",
7346 "left button of the mouse when inside the PHI area will activate a",
7347 "rotation along the polar angle phi. In the same way, activating the",
7348 "TRASL button, the detector can be translated in the u,v plane",
7349 "of the screen according to the 2D-movement of the mouse. Finally,",
7350 "activating the ZOOM button, the detector will be zoomed (or unzoomed)",
7351 "according to the backward-to-forward movement of the mouse. Clicking on\
7352 the", "OFF button will return the control to the 'command mode'. The MOVE",
7353 "command will work also with hidden line removal and shading options",
7354 "(when SHAD is on the background will be black);",
7355 "moreover, if the volumes are clipped, exploded, shifted, etc., they",
7356 "will be 'MOVED' with these features as well.",
7357 "Tracks and hits of a previously stored physical event can be moved",
7358 "together with the detector, allowing a dynamical 3-D analysis of the",
7359 "simulated events. Clicking the central button of the mouse when a good",
7360 "view of the event is found, will stop any movement and the mouse will",
7361 "allow the normal picking capabilities first for the tracks and then for",
7362 "the hits. After clicking of the right button, the normal",
7363 "movement will restart to find another interesting view of the event",
7364 "and to iterate the process.", "The MOVE is also available in sample mode.",
7365 "The following commands will produce a drawing of a volume",
7366 "and then will give the control to the MOVE panel; try the following",
7367 "possibilities:", " EXAMPLE 1 -", " dopt hide off", " satt * seen -2",
7368 " draw NAME 40 40 0 10 10 .01 .01", " move NAME", " EXAMPLE 2 -",
7369 " dopt hide on", " satt * seen -2", " draw NAME 40 40 0 10 10 .01 .01",
7370 " move NAME", " EXAMPLE 3 -", " dopt shad on", " satt * colo 3",
7371 " satt * fill 2", " dopt edge off", " draw NAME 40 40 0 10 10 .01 .01",
7373 static KmCommand _GEANT_DRAWING_MOVE = { &_GEANT_DRAWING_MOVE3D,
7374 "/GEANT/DRAWING/MOVE", "MOVE", 0, 2, 2, 1, _GEANT_DRAWING_MOVE_parameters, 0,
7375 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 56,
7376 _GEANT_DRAWING_MOVE_guidance, 0, (char**)0, (char*)0, (int*)0 };
7378 static char *_GEANT_DRAWING_PICK_guidance[] = {
7379 "Activates graphic input to identify detector elements",
7380 "in a cut view. Clicking on the left button of the mouse when",
7381 "the cursor is in a given point of the drawing and clicking again",
7382 "(outside the detector) will produce the following effect:",
7383 "a line joininig the two points will be drawn together with",
7384 "the name and the medium number of the volume picked",
7385 "with the first clicking close to the second point." };
7386 static KmCommand _GEANT_DRAWING_PICK = { &_GEANT_DRAWING_MOVE,
7387 "/GEANT/DRAWING/PICK", "PICK", 0, 2, 0, 0, (KmParameter**)0, 0, 0, gxpick_,
7388 (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 7, _GEANT_DRAWING_PICK_guidance,
7389 0, (char**)0, (char*)0, (int*)0 };
7391 static char *_GEANT_DRAWING_MEASURE_guidance[] = {
7392 "Position the cursor on the first point (u1,v1) and hit the space bar(GKS).",
7393 "Position the cursor on the second point (u2,v2) and hit the space\
7395 "Clicking the left button of the mouse (X11) will have the same effect as",
7396 "hiting the space bar (GKS).",
7397 "The command will compute and print the distance in space separating",
7398 "the two points on the projection view. It can be useful to measure",
7399 "distances either between volumes or between tracks or hits." };
7400 static KmCommand _GEANT_DRAWING_MEASURE = { &_GEANT_DRAWING_PICK,
7401 "/GEANT/DRAWING/MEASURE", "MEASURE", 0, 2, 0, 0, (KmParameter**)0, 0, 0,
7402 gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 7,
7403 _GEANT_DRAWING_MEASURE_guidance, 0, (char**)0, (char*)0, (int*)0 };
7405 static KmParInt _GEANT_DRAWING_DHEAD_ISEL_type = { (char*)0, (char*)0,
7406 (char*)0, (char*)0, 0 };
7407 static KmParameter _GEANT_DRAWING_DHEAD_ISEL = { "ISEL", 4, "Option flag",
7408 "111110", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
7409 &_GEANT_DRAWING_DHEAD_ISEL_type };
7410 static KmParameter _GEANT_DRAWING_DHEAD_NAME = { "NAME", 4, "Title", " ",
7411 (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
7413 static KmParReal _GEANT_DRAWING_DHEAD_CHRSIZ_type = { (char*)0, (char*)0,
7414 (char*)0, (char*)0, 0 };
7415 static KmParameter _GEANT_DRAWING_DHEAD_CHRSIZ = { "CHRSIZ", 6,
7416 "Character size (cm) of title NAME", "0.6", (char*)0, 12, 0, (char**)0, 0,
7417 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DHEAD_CHRSIZ_type };
7418 static KmParameter *_GEANT_DRAWING_DHEAD_parameters[] = {
7419 &_GEANT_DRAWING_DHEAD_ISEL, &_GEANT_DRAWING_DHEAD_NAME,
7420 &_GEANT_DRAWING_DHEAD_CHRSIZ };
7421 static char *_GEANT_DRAWING_DHEAD_guidance[] = {
7422 " CALL GDHEAD(isel,name,chrsiz)", "ISEL =",
7423 " 0 to have only the header lines",
7424 " xxxxx1 to add the text name centered on top of header",
7425 " xxxx1x to add global detector name (first volume) on left",
7426 " xxx1xx to add date on right",
7427 " xx1xxx to select thick characters for text on top of header",
7428 " x1xxxx to add the text 'EVENT NR x' on top of header",
7429 " 1xxxxx to add the text 'RUN NR x' on top of header",
7430 "NOTE that ISEL=x1xxx1 or ISEL=1xxxx1 are illegal choices,",
7431 "i.e. they generate overwritten text.", "NAME is the title",
7432 "and CHRSIZ the character size in cm of text name." };
7433 static KmCommand _GEANT_DRAWING_DHEAD = { &_GEANT_DRAWING_MEASURE,
7434 "/GEANT/DRAWING/DHEAD", "DHEAD", 0, 2, 3, 0, _GEANT_DRAWING_DHEAD_parameters,
7435 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 13,
7436 _GEANT_DRAWING_DHEAD_guidance, 0, (char**)0, (char*)0, (int*)0 };
7438 static KmParReal _GEANT_DRAWING_DMAN_U_type = { (char*)0, (char*)0,
7439 (char*)0, (char*)0, 0 };
7440 static KmParameter _GEANT_DRAWING_DMAN_U = { "U", 1,
7441 "U-coord. (horizontal) of the centre of man", (char*)0, (char*)0, 12, 0,
7442 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
7443 &_GEANT_DRAWING_DMAN_U_type };
7444 static KmParReal _GEANT_DRAWING_DMAN_V_type = { (char*)0, (char*)0,
7445 (char*)0, (char*)0, 0 };
7446 static KmParameter _GEANT_DRAWING_DMAN_V = { "V", 1,
7447 "V-coord. (vertical) of the centre of man", (char*)0, (char*)0, 12, 0,
7448 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
7449 &_GEANT_DRAWING_DMAN_V_type };
7450 static char *_GEANT_DRAWING_DMAN_TYPE_range[] = { "MAN", "WM1", "WM2", "WM3" };
7451 static char *_GEANT_DRAWING_DMAN_TYPE_text[] = { (char*)0, (char*)0, (char*)0,
7453 static KmParOption _GEANT_DRAWING_DMAN_TYPE_type = {
7454 _GEANT_DRAWING_DMAN_TYPE_text, (int*)0, (int*)0 };
7455 static KmParameter _GEANT_DRAWING_DMAN_TYPE = { "TYPE", 4,
7456 "Man, Wm1, Wm2, Wm3", "MAN", (char*)0, 8, 4, _GEANT_DRAWING_DMAN_TYPE_range,
7457 4, _GEANT_DRAWING_DMAN_TYPE_range, (KmParFlag)0, KmTYPE_OPTION,
7458 &_GEANT_DRAWING_DMAN_TYPE_type };
7459 static KmParameter *_GEANT_DRAWING_DMAN_parameters[] = {
7460 &_GEANT_DRAWING_DMAN_U, &_GEANT_DRAWING_DMAN_V, &_GEANT_DRAWING_DMAN_TYPE };
7461 static char *_GEANT_DRAWING_DMAN_guidance[] = {
7462 " CALL GDMAN(u,v),CALL GDWMN1(u,v),CALL GDWMN2(u,v),CALL GDWMN2(u,v)",
7463 "It superimposes the picure of a man or of a woman, chosen among",
7464 "three different ones, with the same scale factors as the detector",
7465 "in the current drawing." };
7466 static KmCommand _GEANT_DRAWING_DMAN = { &_GEANT_DRAWING_DHEAD,
7467 "/GEANT/DRAWING/DMAN", "DMAN", 0, 2, 3, 3, _GEANT_DRAWING_DMAN_parameters, 0,
7468 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
7469 _GEANT_DRAWING_DMAN_guidance, 0, (char**)0, (char*)0, (int*)0 };
7471 static KmParReal _GEANT_DRAWING_DAXIS_X0_type = { (char*)0, (char*)0,
7472 (char*)0, (char*)0, 0 };
7473 static KmParameter _GEANT_DRAWING_DAXIS_X0 = { "X0", 2,
7474 "X-coord. of axis origin", (char*)0, (char*)0, 12, 0, (char**)0, 0,
7475 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DAXIS_X0_type };
7476 static KmParReal _GEANT_DRAWING_DAXIS_Y0_type = { (char*)0, (char*)0,
7477 (char*)0, (char*)0, 0 };
7478 static KmParameter _GEANT_DRAWING_DAXIS_Y0 = { "Y0", 2,
7479 "Y-coord. of axis origin", (char*)0, (char*)0, 12, 0, (char**)0, 0,
7480 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DAXIS_Y0_type };
7481 static KmParReal _GEANT_DRAWING_DAXIS_Z0_type = { (char*)0, (char*)0,
7482 (char*)0, (char*)0, 0 };
7483 static KmParameter _GEANT_DRAWING_DAXIS_Z0 = { "Z0", 2,
7484 "Z-coord. of axis origin", (char*)0, (char*)0, 12, 0, (char**)0, 0,
7485 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DAXIS_Z0_type };
7486 static KmParReal _GEANT_DRAWING_DAXIS_DX_type = { (char*)0, (char*)0,
7487 (char*)0, (char*)0, 0 };
7488 static KmParameter _GEANT_DRAWING_DAXIS_DX = { "DX", 2, "Axis size", (char*)0,
7489 (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
7490 &_GEANT_DRAWING_DAXIS_DX_type };
7491 static KmParameter *_GEANT_DRAWING_DAXIS_parameters[] = {
7492 &_GEANT_DRAWING_DAXIS_X0, &_GEANT_DRAWING_DAXIS_Y0, &_GEANT_DRAWING_DAXIS_Z0,
7493 &_GEANT_DRAWING_DAXIS_DX };
7494 static char *_GEANT_DRAWING_DAXIS_guidance[] = { " CALL GDAXIS(x0,y0,z0,dx)",
7495 "This commmand superimposes the axis of the MARS on the",
7496 "current picture. It is useful for finding immediately the",
7497 "orientation of the current drawing of the detector in the space." };
7498 static KmCommand _GEANT_DRAWING_DAXIS = { &_GEANT_DRAWING_DMAN,
7499 "/GEANT/DRAWING/DAXIS", "DAXIS", 0, 2, 4, 4, _GEANT_DRAWING_DAXIS_parameters,
7500 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
7501 _GEANT_DRAWING_DAXIS_guidance, 0, (char**)0, (char*)0, (int*)0 };
7503 static KmParReal _GEANT_DRAWING_DSCALE_U_type = { (char*)0, (char*)0,
7504 (char*)0, (char*)0, 0 };
7505 static KmParameter _GEANT_DRAWING_DSCALE_U = { "U", 1,
7506 "U-coord. (horizontal) of the centre of scale", (char*)0, (char*)0, 12, 0,
7507 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
7508 &_GEANT_DRAWING_DSCALE_U_type };
7509 static KmParReal _GEANT_DRAWING_DSCALE_V_type = { (char*)0, (char*)0,
7510 (char*)0, (char*)0, 0 };
7511 static KmParameter _GEANT_DRAWING_DSCALE_V = { "V", 1,
7512 "V-coord. (vertical) of the centre of scale", (char*)0, (char*)0, 12, 0,
7513 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
7514 &_GEANT_DRAWING_DSCALE_V_type };
7515 static KmParameter *_GEANT_DRAWING_DSCALE_parameters[] = {
7516 &_GEANT_DRAWING_DSCALE_U, &_GEANT_DRAWING_DSCALE_V };
7517 static char *_GEANT_DRAWING_DSCALE_guidance[] = { " CALL GDSCAL(u,v)",
7518 "It draws a scale centered in U,V." };
7519 static KmCommand _GEANT_DRAWING_DSCALE = { &_GEANT_DRAWING_DAXIS,
7520 "/GEANT/DRAWING/DSCALE", "DSCALE", 0, 2, 2, 2,
7521 _GEANT_DRAWING_DSCALE_parameters, 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0,
7522 (pCharFunc*)0, 2, _GEANT_DRAWING_DSCALE_guidance, 0, (char**)0, (char*)0,
7525 static KmParameter _GEANT_DRAWING_DVECTOR_XVECT = { "XVECT", 5,
7526 "Vector containing X-coord. (horizontal)", (char*)0, (char*)0, 20, 0,
7527 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
7528 static KmParameter _GEANT_DRAWING_DVECTOR_YVECT = { "YVECT", 5,
7529 "Vector containing Y-coord. (vertical)", (char*)0, (char*)0, 20, 0,
7530 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
7531 static KmParInt _GEANT_DRAWING_DVECTOR_NPOINT_type = { (char*)0, (char*)0,
7532 (char*)0, (char*)0, 0 };
7533 static KmParameter _GEANT_DRAWING_DVECTOR_NPOINT = { "NPOINT", 6,
7534 "Number of coord.", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
7535 (KmParFlag)0, KmTYPE_INT, &_GEANT_DRAWING_DVECTOR_NPOINT_type };
7536 static KmParameter *_GEANT_DRAWING_DVECTOR_parameters[] = {
7537 &_GEANT_DRAWING_DVECTOR_XVECT, &_GEANT_DRAWING_DVECTOR_YVECT,
7538 &_GEANT_DRAWING_DVECTOR_NPOINT };
7539 static char *_GEANT_DRAWING_DVECTOR_guidance[] = {
7540 "Draw a polyline of 'npoint' point via",
7541 "a call to GDRAWV(xvect,yvect,npoint)",
7542 "where xvect and yvect are two KUIP vectors" };
7543 static KmCommand _GEANT_DRAWING_DVECTOR = { &_GEANT_DRAWING_DSCALE,
7544 "/GEANT/DRAWING/DVECTOR", "DVECTOR", 0, 2, 3, 3,
7545 _GEANT_DRAWING_DVECTOR_parameters, 0, 0, gxdraw_, (IntFunc*)0,
7546 (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_DRAWING_DVECTOR_guidance, 0,
7547 (char**)0, (char*)0, (int*)0 };
7549 static KmParReal _GEANT_DRAWING_DTEXT_X0_type = { "0.", "20.", "0.", "20.",
7551 static KmParameter _GEANT_DRAWING_DTEXT_X0 = { "X0", 2,
7552 "X-coord. (horizontal) of text string", "10.", (char*)0, 12, 0, (char**)0, 0,
7553 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DTEXT_X0_type };
7554 static KmParReal _GEANT_DRAWING_DTEXT_Y0_type = { "0.", "20.", "0.", "20.",
7556 static KmParameter _GEANT_DRAWING_DTEXT_Y0 = { "Y0", 2,
7557 "Y-coord. (vertical) of text string", "10.", (char*)0, 12, 0, (char**)0, 0,
7558 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DTEXT_Y0_type };
7559 static KmParameter _GEANT_DRAWING_DTEXT_TEXT = { "TEXT", 4, "Text string",
7560 "GEANT", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
7562 static KmParReal _GEANT_DRAWING_DTEXT_SIZE_type = { (char*)0, (char*)0,
7563 (char*)0, (char*)0, 0 };
7564 static KmParameter _GEANT_DRAWING_DTEXT_SIZE = { "SIZE", 4,
7565 "Character size (cm)", ".5", (char*)0, 12, 0, (char**)0, 0, (char**)0,
7566 (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DTEXT_SIZE_type };
7567 static KmParReal _GEANT_DRAWING_DTEXT_ANGLE_type = { "0.", "360.", "0.",
7569 static KmParameter _GEANT_DRAWING_DTEXT_ANGLE = { "ANGLE", 5,
7570 "Rotation angle (deg)", "0.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
7571 (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DTEXT_ANGLE_type };
7572 static KmParInt _GEANT_DRAWING_DTEXT_LWID_type = { (char*)0, (char*)0,
7573 (char*)0, (char*)0, 0 };
7574 static KmParameter _GEANT_DRAWING_DTEXT_LWID = { "LWID", 4, "Line width", "4",
7575 (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
7576 &_GEANT_DRAWING_DTEXT_LWID_type };
7577 static char *_GEANT_DRAWING_DTEXT_CENT_range[] = { "CENT", "LEFT", "RIGH" };
7578 static char *_GEANT_DRAWING_DTEXT_CENT_text[] = { (char*)0, (char*)0, (char*)0
7580 static KmParOption _GEANT_DRAWING_DTEXT_CENT_type = {
7581 _GEANT_DRAWING_DTEXT_CENT_text, (int*)0, (int*)0 };
7582 static KmParameter _GEANT_DRAWING_DTEXT_CENT = { "CENT", 4,
7583 "Centering option", "CENT", (char*)0, 8, 3, _GEANT_DRAWING_DTEXT_CENT_range,
7584 3, _GEANT_DRAWING_DTEXT_CENT_range, (KmParFlag)0, KmTYPE_OPTION,
7585 &_GEANT_DRAWING_DTEXT_CENT_type };
7586 static KmParameter *_GEANT_DRAWING_DTEXT_parameters[] = {
7587 &_GEANT_DRAWING_DTEXT_X0, &_GEANT_DRAWING_DTEXT_Y0,
7588 &_GEANT_DRAWING_DTEXT_TEXT, &_GEANT_DRAWING_DTEXT_SIZE,
7589 &_GEANT_DRAWING_DTEXT_ANGLE, &_GEANT_DRAWING_DTEXT_LWID,
7590 &_GEANT_DRAWING_DTEXT_CENT };
7591 static char *_GEANT_DRAWING_DTEXT_guidance[] = {
7592 " CALL GDRAWT(x0,y0,text,size,angle,lwid,opt)",
7593 "It allows one to draw some text in the current picture.",
7594 "Now more than 160 colours are available. The text colour",
7595 "must be set via the command IGSET. The size of the",
7596 "text will follow the zooming factors in the view banks." };
7597 static KmCommand _GEANT_DRAWING_DTEXT = { &_GEANT_DRAWING_DVECTOR,
7598 "/GEANT/DRAWING/DTEXT", "DTEXT", 0, 2, 7, 7, _GEANT_DRAWING_DTEXT_parameters,
7599 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 5,
7600 _GEANT_DRAWING_DTEXT_guidance, 0, (char**)0, (char*)0, (int*)0 };
7602 static KmParameter _GEANT_DRAWING_DFSPC_NAME = { "NAME", 4, "Volume name",
7603 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
7604 KmTYPE_CHAR, (void*)0 };
7605 static char *_GEANT_DRAWING_DFSPC_CSORT_range[] = { "Y", "N", "0", "1" };
7606 static char *_GEANT_DRAWING_DFSPC_CSORT_text[] = { (char*)0, (char*)0,
7607 (char*)0, (char*)0 };
7608 static KmParOption _GEANT_DRAWING_DFSPC_CSORT_type = {
7609 _GEANT_DRAWING_DFSPC_CSORT_text, (int*)0, (int*)0 };
7610 static KmParameter _GEANT_DRAWING_DFSPC_CSORT = { "CSORT", 5,
7611 "Alphabetic sorting flag", "N", (char*)0, 8, 4,
7612 _GEANT_DRAWING_DFSPC_CSORT_range, 4, _GEANT_DRAWING_DFSPC_CSORT_range,
7613 (KmParFlag)0, KmTYPE_OPTION, &_GEANT_DRAWING_DFSPC_CSORT_type };
7614 static char *_GEANT_DRAWING_DFSPC_CINTER_range[] = { "I", "B", "0", "1" };
7615 static char *_GEANT_DRAWING_DFSPC_CINTER_text[] = { (char*)0, (char*)0,
7616 (char*)0, (char*)0 };
7617 static KmParOption _GEANT_DRAWING_DFSPC_CINTER_type = {
7618 _GEANT_DRAWING_DFSPC_CINTER_text, (int*)0, (int*)0 };
7619 static KmParameter _GEANT_DRAWING_DFSPC_CINTER = { "CINTER", 6,
7620 "Interactive/Batch version", "I", (char*)0, 8, 4,
7621 _GEANT_DRAWING_DFSPC_CINTER_range, 4, _GEANT_DRAWING_DFSPC_CINTER_range,
7622 (KmParFlag)0, KmTYPE_OPTION, &_GEANT_DRAWING_DFSPC_CINTER_type };
7623 static KmParameter *_GEANT_DRAWING_DFSPC_parameters[] = {
7624 &_GEANT_DRAWING_DFSPC_NAME, &_GEANT_DRAWING_DFSPC_CSORT,
7625 &_GEANT_DRAWING_DFSPC_CINTER };
7626 static char *_GEANT_DRAWING_DFSPC_guidance[] = {
7627 " CALL GDFSPC(name,isort,inter)",
7628 "Same as DSPEC, but it will draw the specifications for all the volumes.",
7629 "If the alphabetic sorting flag is YES, all pictures will be drawn in\
7630 ascending", "alphabetic order; isort is set to 1.",
7631 "If INTERACTIVE, (inter=1), the routine will prompt the user at each plot",
7632 "before doing a clear screen, otherwise it will clear automatically",
7633 "the screen before starting a new frame." };
7634 static KmCommand _GEANT_DRAWING_DFSPC = { &_GEANT_DRAWING_DTEXT,
7635 "/GEANT/DRAWING/DFSPC", "DFSPC", 0, 2, 3, 1, _GEANT_DRAWING_DFSPC_parameters,
7636 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 7,
7637 _GEANT_DRAWING_DFSPC_guidance, 0, (char**)0, (char*)0, (int*)0 };
7639 static KmParameter _GEANT_DRAWING_D3DSPEC_NAME = { "NAME", 4, "Volume name",
7640 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
7641 KmTYPE_CHAR, (void*)0 };
7642 static KmParReal _GEANT_DRAWING_D3DSPEC_TETA3_type = { "0.", "180.", "0.",
7644 static KmParameter _GEANT_DRAWING_D3DSPEC_TETA3 = { "TETA3", 5, "Theta angle",
7645 "40.", (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
7646 &_GEANT_DRAWING_D3DSPEC_TETA3_type };
7647 static KmParReal _GEANT_DRAWING_D3DSPEC_PHI3_type = { "0.", "360.", "0.",
7649 static KmParameter _GEANT_DRAWING_D3DSPEC_PHI3 = { "PHI3", 4, "Phi angle",
7650 "40.", (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
7651 &_GEANT_DRAWING_D3DSPEC_PHI3_type };
7652 static KmParReal _GEANT_DRAWING_D3DSPEC_PSI3_type = { "0.", "360.", "0.",
7654 static KmParameter _GEANT_DRAWING_D3DSPEC_PSI3 = { "PSI3", 4, "Psi angle",
7655 "0.", (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
7656 &_GEANT_DRAWING_D3DSPEC_PSI3_type };
7657 static KmParReal _GEANT_DRAWING_D3DSPEC_U03_type = { "-40.", "40.", "-40.",
7659 static KmParameter _GEANT_DRAWING_D3DSPEC_U03 = { "U03", 3,
7660 "U-coord. (horizontal) of volume origin", "10.", (char*)0, 12, 0, (char**)0,
7661 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_D3DSPEC_U03_type };
7662 static KmParReal _GEANT_DRAWING_D3DSPEC_V03_type = { "-40.", "40.", "-40.",
7664 static KmParameter _GEANT_DRAWING_D3DSPEC_V03 = { "V03", 3,
7665 "V-coord. (vertical) of volume origin", "10.", (char*)0, 12, 0, (char**)0, 0,
7666 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_D3DSPEC_V03_type };
7667 static KmParReal _GEANT_DRAWING_D3DSPEC_ZM3_type = { "0.00001", "10.",
7668 "0.00001", "10.", 5 };
7669 static KmParameter _GEANT_DRAWING_D3DSPEC_ZM3 = { "ZM3", 3,
7670 "Zoom factor for current size factors", "1.", (char*)0, 12, 0, (char**)0, 0,
7671 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_D3DSPEC_ZM3_type };
7672 static KmParameter *_GEANT_DRAWING_D3DSPEC_parameters[] = {
7673 &_GEANT_DRAWING_D3DSPEC_NAME, &_GEANT_DRAWING_D3DSPEC_TETA3,
7674 &_GEANT_DRAWING_D3DSPEC_PHI3, &_GEANT_DRAWING_D3DSPEC_PSI3,
7675 &_GEANT_DRAWING_D3DSPEC_U03, &_GEANT_DRAWING_D3DSPEC_V03,
7676 &_GEANT_DRAWING_D3DSPEC_ZM3 };
7677 static char *_GEANT_DRAWING_D3DSPEC_guidance[] = {
7678 "Trough a call to GSPE3D, this command allows one to show",
7679 "the volume (3D views in real time), together with",
7680 "its geometrical specifications (if using MOTIF). The 3D drawing will",
7681 "be performed according the current values of the options HIDE and",
7682 "SHAD and according the current CVOL clipping parameters for that", "volume."
7684 static KmCommand _GEANT_DRAWING_D3DSPEC = { &_GEANT_DRAWING_DFSPC,
7685 "/GEANT/DRAWING/D3DSPEC", "D3DSPEC", 0, 2, 7, 1,
7686 _GEANT_DRAWING_D3DSPEC_parameters, 0, 0, gxdraw_, (IntFunc*)0,
7687 (SUBROUTINE*)0, (pCharFunc*)0, 6, _GEANT_DRAWING_D3DSPEC_guidance, 0,
7688 (char**)0, (char*)0, (int*)0 };
7690 static KmParameter _GEANT_DRAWING_DSPEC_NAME = { "NAME", 4, "Volume name",
7691 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
7692 KmTYPE_CHAR, (void*)0 };
7693 static KmParameter *_GEANT_DRAWING_DSPEC_parameters[] = {
7694 &_GEANT_DRAWING_DSPEC_NAME };
7695 static char *_GEANT_DRAWING_DSPEC_guidance[] = {
7696 "Trough a call to GDSPEC(name), this command allows one to show three",
7697 "views of the volume (two cut-views and a 3D view), together with",
7698 "its geometrical specifications. The 3D drawing will",
7699 "be performed according the current values of the options HIDE and",
7700 "SHAD and according the current CVOL clipping parameters for that", "volume."
7702 static KmCommand _GEANT_DRAWING_DSPEC = { &_GEANT_DRAWING_D3DSPEC,
7703 "/GEANT/DRAWING/DSPEC", "DSPEC", 0, 2, 1, 1, _GEANT_DRAWING_DSPEC_parameters,
7704 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 6,
7705 _GEANT_DRAWING_DSPEC_guidance, 0, (char**)0, (char*)0, (int*)0 };
7707 static KmParameter _GEANT_DRAWING_DTREE_NAME = { "NAME", 4, "Volume name",
7708 " ", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
7710 static KmParInt _GEANT_DRAWING_DTREE_LEVMAX_type = { "-15", "15", "-15",
7712 static KmParameter _GEANT_DRAWING_DTREE_LEVMAX = { "LEVMAX", 6, "Depth level",
7713 "3", (char*)0, 3, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
7714 &_GEANT_DRAWING_DTREE_LEVMAX_type };
7715 static KmParInt _GEANT_DRAWING_DTREE_ISELT_type = { (char*)0, (char*)0,
7716 (char*)0, (char*)0, 0 };
7717 static KmParameter _GEANT_DRAWING_DTREE_ISELT = { "ISELT", 5, "Options ",
7718 "111", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
7719 &_GEANT_DRAWING_DTREE_ISELT_type };
7720 static KmParameter *_GEANT_DRAWING_DTREE_parameters[] = {
7721 &_GEANT_DRAWING_DTREE_NAME, &_GEANT_DRAWING_DTREE_LEVMAX,
7722 &_GEANT_DRAWING_DTREE_ISELT };
7723 static char *_GEANT_DRAWING_DTREE_guidance[] = {
7724 "This command allows the drawing of the logical tree,",
7725 "displaying the name, the multiplicity and other information about the\
7726 volumes,", "via a call to GDTREE(name,levmax,isel):",
7727 "if the third parameter is not given (default), the command will",
7728 "produce the drawing of the tree displaying, for each volume, the",
7729 "number of the following levels (red arrows) and of the preceeding",
7730 "levels (green arrows); then the control is automatically given to the",
7731 "mouse: clicking on the left button when the cursor is inside a volume's",
7732 "pave will perform a DSPEC for that volume; doing the same when the cursor",
7733 "is on a red arrow, will perform a DTREE for the relative volume (the",
7734 "number of levels displayed depending on the clicked arrow); doing the",
7735 "same for the 'i-th' green arrow of a given volume, will perform a DTREE",
7736 "for its mother-volume staying 'i' levels before.",
7737 "If running with X-windows, the drawing of the specification (DSPEC)",
7739 "in a different window to speed up the scanning of the tree.",
7740 "Iterating this procedure it is possible to analyse very easily and quickly",
7741 "any kind of tree. Clicking the right button of the mouse will return",
7742 "the control to the command mode.", "If the ISELT parameter is given,",
7743 "then the TREE will work as in the",
7744 "previous version, with ISELT up to 10001.",
7745 "The following command will perform a drawing of the tree and give the",
7746 "control to the user via the mouse:", " EXAMPLE -", " dtree NAME 3" };
7747 static KmCommand _GEANT_DRAWING_DTREE = { &_GEANT_DRAWING_DSPEC,
7748 "/GEANT/DRAWING/DTREE", "DTREE", 0, 2, 3, 0, _GEANT_DRAWING_DTREE_parameters,
7749 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 26,
7750 _GEANT_DRAWING_DTREE_guidance, 0, (char**)0, (char*)0, (int*)0 };
7752 static KmParReal _GEANT_DRAWING_BOMB_BOOM_type = { "-10.", "10.", "-10.",
7754 static KmParameter _GEANT_DRAWING_BOMB_BOOM = { "BOOM", 4,
7755 " Exploding factor for volumes position ", "0.", (char*)0, 12, 0, (char**)0,
7756 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_BOMB_BOOM_type };
7757 static KmParameter *_GEANT_DRAWING_BOMB_parameters[] = {
7758 &_GEANT_DRAWING_BOMB_BOOM };
7759 static char *_GEANT_DRAWING_BOMB_guidance[] = {
7760 "To 'explode' the detector. If BOOM is positive (values smaller",
7761 "than 1. are suggested, but any value is possible)",
7762 "all the volumes are shifted by a distance",
7763 "proportional to BOOM along the direction between their centre",
7764 "and the origin of the MARS; the volumes which are symmetric",
7765 "with respect to this origin are simply not shown.",
7766 "BOOM equal to 0 resets the normal mode.",
7767 "A negative (greater than -1.) value of",
7768 "BOOM will cause an 'implosion'; for even lower values of BOOM",
7769 "the volumes' positions will be reflected respect to the origin.",
7770 "This command can be useful to improve the 3D effect for very",
7771 "complex detectors. The following commands will make explode the",
7772 "detector:", " EXAMPLE -", " dopt hide on", " satt * seen 1",
7773 " draw NAME 40 40 0 10 10 .01 .01", " bomb 1", " next",
7774 " draw NAME 40 40 0 10 10 .01 .01" };
7775 static KmCommand _GEANT_DRAWING_BOMB = { &_GEANT_DRAWING_DTREE,
7776 "/GEANT/DRAWING/BOMB", "BOMB", 0, 2, 1, 1, _GEANT_DRAWING_BOMB_parameters, 0,
7777 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 20,
7778 _GEANT_DRAWING_BOMB_guidance, 0, (char**)0, (char*)0, (int*)0 };
7780 static KmParameter _GEANT_DRAWING_SHIFT_CNVN = { "CNVN", 4,
7781 " Name of volume to be shifted ", "*", (char*)0, 20, 0, (char**)0, 0,
7782 (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
7783 static KmParReal _GEANT_DRAWING_SHIFT_XXXX_type = { (char*)0, (char*)0,
7784 (char*)0, (char*)0, 0 };
7785 static KmParameter _GEANT_DRAWING_SHIFT_XXXX = { "XXXX", 4,
7786 " Shift along X axis ", "0.", (char*)0, 12, 0, (char**)0, 0,
7787 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_SHIFT_XXXX_type };
7788 static KmParReal _GEANT_DRAWING_SHIFT_YYYY_type = { (char*)0, (char*)0,
7789 (char*)0, (char*)0, 0 };
7790 static KmParameter _GEANT_DRAWING_SHIFT_YYYY = { "YYYY", 4,
7791 " Shift along Y axis ", "0.", (char*)0, 12, 0, (char**)0, 0,
7792 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_SHIFT_YYYY_type };
7793 static KmParReal _GEANT_DRAWING_SHIFT_ZZZZ_type = { (char*)0, (char*)0,
7794 (char*)0, (char*)0, 0 };
7795 static KmParameter _GEANT_DRAWING_SHIFT_ZZZZ = { "ZZZZ", 4,
7796 " Shift along Z axis ", "0.", (char*)0, 12, 0, (char**)0, 0,
7797 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_SHIFT_ZZZZ_type };
7798 static KmParameter *_GEANT_DRAWING_SHIFT_parameters[] = {
7799 &_GEANT_DRAWING_SHIFT_CNVN, &_GEANT_DRAWING_SHIFT_XXXX,
7800 &_GEANT_DRAWING_SHIFT_YYYY, &_GEANT_DRAWING_SHIFT_ZZZZ };
7801 static char *_GEANT_DRAWING_SHIFT_guidance[] = {
7802 "To draw a volume shifted from its initial position when hidden",
7803 "line removal is ON. It can be useful if you want to extract a",
7804 "volume or some volumes from the detector to show them more clearly.",
7805 "The last requested SHIFT for each volume",
7806 "NAME is performed. Moreover, the SHIFT of",
7807 "each volume will be performed starting from where its mother has",
7808 "been shifted, so that it's easier to SHIFT nicely sets",
7809 "of volumes using the mother-daughter relationships.",
7810 "If '.' is given as the name of the volume",
7811 "to be shifted, the shifts for all volumes will be reset.",
7812 "The following commands will produce the translation along",
7813 "the Z-axis of the previously drawn volume:", " EXAMPLE -", " dopt hide on",
7814 " satt * seen -2", " draw NAME 40 40 0 10 10 .01 .01", " shift NAME 0 0 10" };
7815 static KmCommand _GEANT_DRAWING_SHIFT = { &_GEANT_DRAWING_BOMB,
7816 "/GEANT/DRAWING/SHIFT", "SHIFT", 0, 2, 4, 4, _GEANT_DRAWING_SHIFT_parameters,
7817 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 17,
7818 _GEANT_DRAWING_SHIFT_guidance, 0, (char**)0, (char*)0, (int*)0 };
7820 static KmParameter _GEANT_DRAWING_DXCUT_NAME = { "NAME", 4, "Volume name",
7821 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
7822 KmTYPE_CHAR, (void*)0 };
7823 static KmParReal _GEANT_DRAWING_DXCUT_CUTTHE_type = { "0.", "360.", "0.",
7825 static KmParameter _GEANT_DRAWING_DXCUT_CUTTHE = { "CUTTHE", 6,
7826 "Theta angle of the line normal to cut plane", (char*)0, (char*)0, 12, 0,
7827 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
7828 &_GEANT_DRAWING_DXCUT_CUTTHE_type };
7829 static KmParReal _GEANT_DRAWING_DXCUT_CUTPHI_type = { "0.", "360.", "0.",
7831 static KmParameter _GEANT_DRAWING_DXCUT_CUTPHI = { "CUTPHI", 6,
7832 "Phi angle of the line normal to cut plane", (char*)0, (char*)0, 12, 0,
7833 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
7834 &_GEANT_DRAWING_DXCUT_CUTPHI_type };
7835 static KmParReal _GEANT_DRAWING_DXCUT_CUTVAL_type = { (char*)0, (char*)0,
7836 (char*)0, (char*)0, 0 };
7837 static KmParameter _GEANT_DRAWING_DXCUT_CUTVAL = { "CUTVAL", 6,
7838 "Cut plane distance from the origin along the axis", (char*)0, (char*)0, 12,
7839 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
7840 &_GEANT_DRAWING_DXCUT_CUTVAL_type };
7841 static KmParReal _GEANT_DRAWING_DXCUT_THETA_type = { "0.", "360.", "0.",
7843 static KmParameter _GEANT_DRAWING_DXCUT_THETA = { "THETA", 5,
7844 "Viewing angle theta (for 3D projection)", (char*)0, (char*)0, 12, 0,
7845 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
7846 &_GEANT_DRAWING_DXCUT_THETA_type };
7847 static KmParReal _GEANT_DRAWING_DXCUT_PHI_type = { "0.", "360.", "0.",
7849 static KmParameter _GEANT_DRAWING_DXCUT_PHI = { "PHI", 3,
7850 "Viewing angle phi (for 3D projection)", (char*)0, (char*)0, 12, 0,
7851 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
7852 &_GEANT_DRAWING_DXCUT_PHI_type };
7853 static KmParReal _GEANT_DRAWING_DXCUT_U0_type = { (char*)0, (char*)0,
7854 (char*)0, (char*)0, 0 };
7855 static KmParameter _GEANT_DRAWING_DXCUT_U0 = { "U0", 2,
7856 "U-coord. (horizontal) of volume origin", (char*)0, (char*)0, 12, 0,
7857 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
7858 &_GEANT_DRAWING_DXCUT_U0_type };
7859 static KmParReal _GEANT_DRAWING_DXCUT_V0_type = { (char*)0, (char*)0,
7860 (char*)0, (char*)0, 0 };
7861 static KmParameter _GEANT_DRAWING_DXCUT_V0 = { "V0", 2,
7862 "V-coord. (vertical) of volume origin", (char*)0, (char*)0, 12, 0, (char**)0,
7863 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DXCUT_V0_type };
7864 static KmParReal _GEANT_DRAWING_DXCUT_SU_type = { (char*)0, (char*)0,
7865 (char*)0, (char*)0, 0 };
7866 static KmParameter _GEANT_DRAWING_DXCUT_SU = { "SU", 2,
7867 "Scale factor for U-coord.", (char*)0, (char*)0, 12, 0, (char**)0, 0,
7868 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DXCUT_SU_type };
7869 static KmParReal _GEANT_DRAWING_DXCUT_SV_type = { (char*)0, (char*)0,
7870 (char*)0, (char*)0, 0 };
7871 static KmParameter _GEANT_DRAWING_DXCUT_SV = { "SV", 2,
7872 "Scale factor for V-coord.", (char*)0, (char*)0, 12, 0, (char**)0, 0,
7873 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DXCUT_SV_type };
7874 static KmParameter *_GEANT_DRAWING_DXCUT_parameters[] = {
7875 &_GEANT_DRAWING_DXCUT_NAME, &_GEANT_DRAWING_DXCUT_CUTTHE,
7876 &_GEANT_DRAWING_DXCUT_CUTPHI, &_GEANT_DRAWING_DXCUT_CUTVAL,
7877 &_GEANT_DRAWING_DXCUT_THETA, &_GEANT_DRAWING_DXCUT_PHI,
7878 &_GEANT_DRAWING_DXCUT_U0, &_GEANT_DRAWING_DXCUT_V0, &_GEANT_DRAWING_DXCUT_SU,
7879 &_GEANT_DRAWING_DXCUT_SV };
7880 static char *_GEANT_DRAWING_DXCUT_guidance[] = {
7881 " CALL GDRAWX(name,cutthe,cutphi,cutval,theta,phi,u0,v0,su,sv)",
7882 "The cut plane is normal to the line given by the cut angles",
7883 "cutthe and cutphi and placed at the distance cutval from the origin.",
7884 "The resulting picture is seen from the viewing angles theta,phi.",
7885 "If optional parameters are missing, the current values in /GCDRAW/",
7887 static KmCommand _GEANT_DRAWING_DXCUT = { &_GEANT_DRAWING_SHIFT,
7888 "/GEANT/DRAWING/DXCUT", "DXCUT", 0, 2, 10, 4,
7889 _GEANT_DRAWING_DXCUT_parameters, 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0,
7890 (pCharFunc*)0, 6, _GEANT_DRAWING_DXCUT_guidance, 0, (char**)0, (char*)0,
7893 static KmParameter _GEANT_DRAWING_DCUT_NAME = { "NAME", 4, "Volume name",
7894 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
7895 KmTYPE_CHAR, (void*)0 };
7896 static char *_GEANT_DRAWING_DCUT_CAXIS_range[] = { "X", "Y", "Z" };
7897 static char *_GEANT_DRAWING_DCUT_CAXIS_text[] = { (char*)0, (char*)0, (char*)0
7899 static KmParOption _GEANT_DRAWING_DCUT_CAXIS_type = {
7900 _GEANT_DRAWING_DCUT_CAXIS_text, (int*)0, (int*)0 };
7901 static KmParameter _GEANT_DRAWING_DCUT_CAXIS = { "CAXIS", 5, "Axis value",
7902 (char*)0, (char*)0, 8, 3, _GEANT_DRAWING_DCUT_CAXIS_range, 3,
7903 _GEANT_DRAWING_DCUT_CAXIS_range, (KmParFlag)0, KmTYPE_OPTION,
7904 &_GEANT_DRAWING_DCUT_CAXIS_type };
7905 static KmParReal _GEANT_DRAWING_DCUT_CUTVAL_type = { (char*)0, (char*)0,
7906 (char*)0, (char*)0, 0 };
7907 static KmParameter _GEANT_DRAWING_DCUT_CUTVAL = { "CUTVAL", 6,
7908 "Cut plane distance from the origin along the axis", (char*)0, (char*)0, 12,
7909 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
7910 &_GEANT_DRAWING_DCUT_CUTVAL_type };
7911 static KmParReal _GEANT_DRAWING_DCUT_U0_type = { (char*)0, (char*)0,
7912 (char*)0, (char*)0, 0 };
7913 static KmParameter _GEANT_DRAWING_DCUT_U0 = { "U0", 2,
7914 "U-coord. (horizontal) of volume origin", (char*)0, (char*)0, 12, 0,
7915 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
7916 &_GEANT_DRAWING_DCUT_U0_type };
7917 static KmParReal _GEANT_DRAWING_DCUT_V0_type = { (char*)0, (char*)0,
7918 (char*)0, (char*)0, 0 };
7919 static KmParameter _GEANT_DRAWING_DCUT_V0 = { "V0", 2,
7920 "V-coord. (vertical) of volume origin", (char*)0, (char*)0, 12, 0, (char**)0,
7921 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DCUT_V0_type };
7922 static KmParReal _GEANT_DRAWING_DCUT_SU_type = { (char*)0, (char*)0,
7923 (char*)0, (char*)0, 0 };
7924 static KmParameter _GEANT_DRAWING_DCUT_SU = { "SU", 2,
7925 "Scale factor for U-coord.", (char*)0, (char*)0, 12, 0, (char**)0, 0,
7926 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DCUT_SU_type };
7927 static KmParReal _GEANT_DRAWING_DCUT_SV_type = { (char*)0, (char*)0,
7928 (char*)0, (char*)0, 0 };
7929 static KmParameter _GEANT_DRAWING_DCUT_SV = { "SV", 2,
7930 "Scale factor for V-coord.", (char*)0, (char*)0, 12, 0, (char**)0, 0,
7931 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DCUT_SV_type };
7932 static KmParameter *_GEANT_DRAWING_DCUT_parameters[] = {
7933 &_GEANT_DRAWING_DCUT_NAME, &_GEANT_DRAWING_DCUT_CAXIS,
7934 &_GEANT_DRAWING_DCUT_CUTVAL, &_GEANT_DRAWING_DCUT_U0,
7935 &_GEANT_DRAWING_DCUT_V0, &_GEANT_DRAWING_DCUT_SU, &_GEANT_DRAWING_DCUT_SV };
7936 static char *_GEANT_DRAWING_DCUT_guidance[] = {
7937 " CALL GDRAWC(name,iaxis,cutval,u0,v0,su,sv)",
7938 "The cut plane is normal to caxis (X,Y,Z), corresponding to iaxis (1,2,3),",
7939 "and placed at the distance cutval from the origin.",
7940 "The resulting picture is seen from the the same axis.",
7941 "If optional parameters are missing, the current values in /GCDRAW/",
7943 "When HIDE Mode is ON, it is possible to get the same effect with",
7944 "the CVOL/BOX command." };
7945 static KmCommand _GEANT_DRAWING_DCUT = { &_GEANT_DRAWING_DXCUT,
7946 "/GEANT/DRAWING/DCUT", "DCUT", 0, 2, 7, 3, _GEANT_DRAWING_DCUT_parameters, 0,
7947 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 8,
7948 _GEANT_DRAWING_DCUT_guidance, 0, (char**)0, (char*)0, (int*)0 };
7950 static KmParInt _GEANT_DRAWING_DVOLUME_N_type = { (char*)0, (char*)0,
7951 (char*)0, (char*)0, 0 };
7952 static KmParameter _GEANT_DRAWING_DVOLUME_N = { "N", 1,
7953 "Number of elements in arrays LNAMES and LNUMBS", "1", (char*)0, 8, 0,
7954 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
7955 &_GEANT_DRAWING_DVOLUME_N_type };
7956 static KmParameter _GEANT_DRAWING_DVOLUME_NAMNUM = { "NAMNUM", 6,
7957 "Volume names and numbers (ex. \"NAME1,NR1,NAME2,NR2\")", (char*)0, (char*)0,
7958 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
7959 static char *_GEANT_DRAWING_DVOLUME_CHNRS_range[] = { "MARS", "DRS" };
7960 static char *_GEANT_DRAWING_DVOLUME_CHNRS_text[] = { (char*)0, (char*)0 };
7961 static KmParOption _GEANT_DRAWING_DVOLUME_CHNRS_type = {
7962 _GEANT_DRAWING_DVOLUME_CHNRS_text, (int*)0, (int*)0 };
7963 static KmParameter _GEANT_DRAWING_DVOLUME_CHNRS = { "CHNRS", 5,
7964 "Reference system used", "MARS", (char*)0, 8, 2,
7965 _GEANT_DRAWING_DVOLUME_CHNRS_range, 2, _GEANT_DRAWING_DVOLUME_CHNRS_range,
7966 (KmParFlag)0, KmTYPE_OPTION, &_GEANT_DRAWING_DVOLUME_CHNRS_type };
7967 static KmParReal _GEANT_DRAWING_DVOLUME_THETA_type = { "0.", "360.", "0.",
7969 static KmParameter _GEANT_DRAWING_DVOLUME_THETA = { "THETA", 5,
7970 "Viewing angle theta (for 3D projection)", (char*)0, (char*)0, 12, 0,
7971 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
7972 &_GEANT_DRAWING_DVOLUME_THETA_type };
7973 static KmParReal _GEANT_DRAWING_DVOLUME_PHI_type = { "0.", "360.", "0.",
7975 static KmParameter _GEANT_DRAWING_DVOLUME_PHI = { "PHI", 3,
7976 "Viewing angle phi (for 3D projection)", (char*)0, (char*)0, 12, 0,
7977 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
7978 &_GEANT_DRAWING_DVOLUME_PHI_type };
7979 static KmParReal _GEANT_DRAWING_DVOLUME_PSI_type = { "0.", "180.", "0.",
7981 static KmParameter _GEANT_DRAWING_DVOLUME_PSI = { "PSI", 3,
7982 "Viewing angle psi (for 2D rotation)", (char*)0, (char*)0, 12, 0, (char**)0,
7983 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DVOLUME_PSI_type };
7984 static KmParReal _GEANT_DRAWING_DVOLUME_U0_type = { (char*)0, (char*)0,
7985 (char*)0, (char*)0, 0 };
7986 static KmParameter _GEANT_DRAWING_DVOLUME_U0 = { "U0", 2,
7987 "U-coord. (horizontal) of volume origin", (char*)0, (char*)0, 12, 0,
7988 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
7989 &_GEANT_DRAWING_DVOLUME_U0_type };
7990 static KmParReal _GEANT_DRAWING_DVOLUME_V0_type = { (char*)0, (char*)0,
7991 (char*)0, (char*)0, 0 };
7992 static KmParameter _GEANT_DRAWING_DVOLUME_V0 = { "V0", 2,
7993 "V-coord. (vertical) of volume origin", (char*)0, (char*)0, 12, 0, (char**)0,
7994 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DVOLUME_V0_type };
7995 static KmParReal _GEANT_DRAWING_DVOLUME_SU_type = { (char*)0, (char*)0,
7996 (char*)0, (char*)0, 0 };
7997 static KmParameter _GEANT_DRAWING_DVOLUME_SU = { "SU", 2,
7998 "Scale factor for U-coord.", (char*)0, (char*)0, 12, 0, (char**)0, 0,
7999 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DVOLUME_SU_type };
8000 static KmParReal _GEANT_DRAWING_DVOLUME_SV_type = { (char*)0, (char*)0,
8001 (char*)0, (char*)0, 0 };
8002 static KmParameter _GEANT_DRAWING_DVOLUME_SV = { "SV", 2,
8003 "Scale factor for V-coord.", (char*)0, (char*)0, 12, 0, (char**)0, 0,
8004 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DVOLUME_SV_type };
8005 static KmParameter *_GEANT_DRAWING_DVOLUME_parameters[] = {
8006 &_GEANT_DRAWING_DVOLUME_N, &_GEANT_DRAWING_DVOLUME_NAMNUM,
8007 &_GEANT_DRAWING_DVOLUME_CHNRS, &_GEANT_DRAWING_DVOLUME_THETA,
8008 &_GEANT_DRAWING_DVOLUME_PHI, &_GEANT_DRAWING_DVOLUME_PSI,
8009 &_GEANT_DRAWING_DVOLUME_U0, &_GEANT_DRAWING_DVOLUME_V0,
8010 &_GEANT_DRAWING_DVOLUME_SU, &_GEANT_DRAWING_DVOLUME_SV };
8011 static char *_GEANT_DRAWING_DVOLUME_guidance[] = {
8012 " CALL GDRVOL(n,lnames,lnumbs,nrs,theta,phi,psi,u0,v0,su,sv)",
8013 "N is the number of levels from the top of the geometry structure",
8014 "to the volume lnames(n),lnumbs(n) to be drawn.",
8015 "NAMNUM contain the arrays lnames and lnumbs,",
8016 "identifying the path, in pairs and separated by commas; for",
8017 "example (with n=2) :", "'lname(1),lnumbs(1),lname(2),lnumbs(2) '",
8018 "CHNRS is the name of the reference system used: MARS for MAster Reference",
8019 "System or DRS for Daughter Reference System.",
8020 "NRS=0 for MARS or NRS<>0 for DRS",
8021 "If optional parameters are missing, the current values in /GCDRAW/",
8023 static KmCommand _GEANT_DRAWING_DVOLUME = { &_GEANT_DRAWING_DCUT,
8024 "/GEANT/DRAWING/DVOLUME", "DVOLUME", 0, 2, 10, 3,
8025 _GEANT_DRAWING_DVOLUME_parameters, 0, 0, gxdraw_, (IntFunc*)0,
8026 (SUBROUTINE*)0, (pCharFunc*)0, 12, _GEANT_DRAWING_DVOLUME_guidance, 0,
8027 (char**)0, (char*)0, (int*)0 };
8029 static KmParReal _GEANT_DRAWING_RANG5D_X1MIN_type = { (char*)0, (char*)0,
8030 (char*)0, (char*)0, 0 };
8031 static KmParameter _GEANT_DRAWING_RANG5D_X1MIN = { "X1MIN", 5,
8032 "x coordinate min", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
8033 (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_RANG5D_X1MIN_type };
8034 static KmParReal _GEANT_DRAWING_RANG5D_X1MAX_type = { (char*)0, (char*)0,
8035 (char*)0, (char*)0, 0 };
8036 static KmParameter _GEANT_DRAWING_RANG5D_X1MAX = { "X1MAX", 5,
8037 "x coordinate max", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
8038 (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_RANG5D_X1MAX_type };
8039 static KmParReal _GEANT_DRAWING_RANG5D_Y1MIN_type = { (char*)0, (char*)0,
8040 (char*)0, (char*)0, 0 };
8041 static KmParameter _GEANT_DRAWING_RANG5D_Y1MIN = { "Y1MIN", 5,
8042 "y coordinate min", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
8043 (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_RANG5D_Y1MIN_type };
8044 static KmParReal _GEANT_DRAWING_RANG5D_Y1MAX_type = { (char*)0, (char*)0,
8045 (char*)0, (char*)0, 0 };
8046 static KmParameter _GEANT_DRAWING_RANG5D_Y1MAX = { "Y1MAX", 5,
8047 "y coordinate max", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
8048 (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_RANG5D_Y1MAX_type };
8049 static KmParReal _GEANT_DRAWING_RANG5D_Z1MIN_type = { (char*)0, (char*)0,
8050 (char*)0, (char*)0, 0 };
8051 static KmParameter _GEANT_DRAWING_RANG5D_Z1MIN = { "Z1MIN", 5,
8052 "z coordinate min", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
8053 (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_RANG5D_Z1MIN_type };
8054 static KmParReal _GEANT_DRAWING_RANG5D_Z1MAX_type = { (char*)0, (char*)0,
8055 (char*)0, (char*)0, 0 };
8056 static KmParameter _GEANT_DRAWING_RANG5D_Z1MAX = { "Z1MAX", 5,
8057 "z coordinate max", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
8058 (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_RANG5D_Z1MAX_type };
8059 static KmParameter *_GEANT_DRAWING_RANG5D_parameters[] = {
8060 &_GEANT_DRAWING_RANG5D_X1MIN, &_GEANT_DRAWING_RANG5D_X1MAX,
8061 &_GEANT_DRAWING_RANG5D_Y1MIN, &_GEANT_DRAWING_RANG5D_Y1MAX,
8062 &_GEANT_DRAWING_RANG5D_Z1MIN, &_GEANT_DRAWING_RANG5D_Z1MAX };
8063 static char *_GEANT_DRAWING_RANG5D_guidance[] = {
8064 "It sets the range for the x,y,z variables." };
8065 static KmCommand _GEANT_DRAWING_RANG5D = { &_GEANT_DRAWING_DVOLUME,
8066 "/GEANT/DRAWING/RANG5D", "RANG5D", 0, 2, 6, 6,
8067 _GEANT_DRAWING_RANG5D_parameters, 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0,
8068 (pCharFunc*)0, 1, _GEANT_DRAWING_RANG5D_guidance, 0, (char**)0, (char*)0,
8071 static KmParReal _GEANT_DRAWING_VAR5D_TSEQTO_type = { (char*)0, (char*)0,
8072 (char*)0, (char*)0, 0 };
8073 static KmParameter _GEANT_DRAWING_VAR5D_TSEQTO = { "TSEQTO", 6,
8074 "total sequential time", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
8075 (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_VAR5D_TSEQTO_type };
8076 static KmParInt _GEANT_DRAWING_VAR5D_NPROC_type = { (char*)0, (char*)0,
8077 (char*)0, (char*)0, 0 };
8078 static KmParameter _GEANT_DRAWING_VAR5D_NPROC = { "NPROC", 5,
8079 "number of processors", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
8080 (KmParFlag)0, KmTYPE_INT, &_GEANT_DRAWING_VAR5D_NPROC_type };
8081 static KmParInt _GEANT_DRAWING_VAR5D_NMPTOT_type = { (char*)0, (char*)0,
8082 (char*)0, (char*)0, 0 };
8083 static KmParameter _GEANT_DRAWING_VAR5D_NMPTOT = { "NMPTOT", 6,
8084 "number of message passing", (char*)0, (char*)0, 8, 0, (char**)0, 0,
8085 (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_DRAWING_VAR5D_NMPTOT_type };
8086 static KmParReal _GEANT_DRAWING_VAR5D_TOTMBY_type = { (char*)0, (char*)0,
8087 (char*)0, (char*)0, 0 };
8088 static KmParameter _GEANT_DRAWING_VAR5D_TOTMBY = { "TOTMBY", 6,
8089 "total megabytes transfert", (char*)0, (char*)0, 12, 0, (char**)0, 0,
8090 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_VAR5D_TOTMBY_type };
8091 static KmParReal _GEANT_DRAWING_VAR5D_TSEQ_type = { (char*)0, (char*)0,
8092 (char*)0, (char*)0, 0 };
8093 static KmParameter _GEANT_DRAWING_VAR5D_TSEQ = { "TSEQ", 4,
8094 "not parallelized code", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
8095 (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_VAR5D_TSEQ_type };
8096 static KmParReal _GEANT_DRAWING_VAR5D_TLAT_type = { (char*)0, (char*)0,
8097 (char*)0, (char*)0, 0 };
8098 static KmParameter _GEANT_DRAWING_VAR5D_TLAT = { "TLAT", 4, "latency time",
8099 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8100 KmTYPE_REAL, &_GEANT_DRAWING_VAR5D_TLAT_type };
8101 static KmParReal _GEANT_DRAWING_VAR5D_TNET_type = { (char*)0, (char*)0,
8102 (char*)0, (char*)0, 0 };
8103 static KmParameter _GEANT_DRAWING_VAR5D_TNET = { "TNET", 4,
8104 "network speed in Mbytes/sec", (char*)0, (char*)0, 12, 0, (char**)0, 0,
8105 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_VAR5D_TNET_type };
8106 static KmParameter *_GEANT_DRAWING_VAR5D_parameters[] = {
8107 &_GEANT_DRAWING_VAR5D_TSEQTO, &_GEANT_DRAWING_VAR5D_NPROC,
8108 &_GEANT_DRAWING_VAR5D_NMPTOT, &_GEANT_DRAWING_VAR5D_TOTMBY,
8109 &_GEANT_DRAWING_VAR5D_TSEQ, &_GEANT_DRAWING_VAR5D_TLAT,
8110 &_GEANT_DRAWING_VAR5D_TNET };
8111 static char *_GEANT_DRAWING_VAR5D_guidance[] = {
8112 "It sets the values of the parameters expressed in the formula and",
8113 "specify which variables must be assumed as x,y,z (setting their value",
8114 "to 1001,1002,1003, respectively)." };
8115 static KmCommand _GEANT_DRAWING_VAR5D = { &_GEANT_DRAWING_RANG5D,
8116 "/GEANT/DRAWING/VAR5D", "VAR5D", 0, 2, 7, 7, _GEANT_DRAWING_VAR5D_parameters,
8117 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
8118 _GEANT_DRAWING_VAR5D_guidance, 0, (char**)0, (char*)0, (int*)0 };
8120 static KmParReal _GEANT_DRAWING_SPOT_XLPOS_type = { (char*)0, (char*)0,
8121 (char*)0, (char*)0, 0 };
8122 static KmParameter _GEANT_DRAWING_SPOT_XLPOS = { "XLPOS", 5,
8123 "x coordinate of light source", (char*)0, (char*)0, 12, 0, (char**)0, 0,
8124 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_SPOT_XLPOS_type };
8125 static KmParReal _GEANT_DRAWING_SPOT_YLPOS_type = { (char*)0, (char*)0,
8126 (char*)0, (char*)0, 0 };
8127 static KmParameter _GEANT_DRAWING_SPOT_YLPOS = { "YLPOS", 5,
8128 "y coordinate of light source", (char*)0, (char*)0, 12, 0, (char**)0, 0,
8129 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_SPOT_YLPOS_type };
8130 static KmParReal _GEANT_DRAWING_SPOT_ZLPOS_type = { (char*)0, (char*)0,
8131 (char*)0, (char*)0, 0 };
8132 static KmParameter _GEANT_DRAWING_SPOT_ZLPOS = { "ZLPOS", 5,
8133 "z coordinate of light source", (char*)0, (char*)0, 12, 0, (char**)0, 0,
8134 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_SPOT_ZLPOS_type };
8135 static KmParInt _GEANT_DRAWING_SPOT_INTEN_type = { (char*)0, (char*)0,
8136 (char*)0, (char*)0, 0 };
8137 static KmParameter _GEANT_DRAWING_SPOT_INTEN = { "INTEN", 5,
8138 "intensity of light source", (char*)0, (char*)0, 8, 0, (char**)0, 0,
8139 (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_DRAWING_SPOT_INTEN_type };
8140 static KmParameter *_GEANT_DRAWING_SPOT_parameters[] = {
8141 &_GEANT_DRAWING_SPOT_XLPOS, &_GEANT_DRAWING_SPOT_YLPOS,
8142 &_GEANT_DRAWING_SPOT_ZLPOS, &_GEANT_DRAWING_SPOT_INTEN };
8143 static char *_GEANT_DRAWING_SPOT_guidance[] = {
8144 "This point-like light source can be moved in the space and its intensity",
8145 "can be changed (INTEN going from 0 to 10) relatively to the ambience light."
8147 static KmCommand _GEANT_DRAWING_SPOT = { &_GEANT_DRAWING_VAR5D,
8148 "/GEANT/DRAWING/SPOT", "SPOT", 0, 2, 4, 4, _GEANT_DRAWING_SPOT_parameters, 0,
8149 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 2,
8150 _GEANT_DRAWING_SPOT_guidance, 0, (char**)0, (char*)0, (int*)0 };
8152 static KmParameter _GEANT_DRAWING_DRAW_NAME = { "NAME", 4, "Volume name",
8153 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8154 KmTYPE_CHAR, (void*)0 };
8155 static KmParReal _GEANT_DRAWING_DRAW_THETA_type = { "0.", "180.", "0.",
8157 static KmParameter _GEANT_DRAWING_DRAW_THETA = { "THETA", 5,
8158 "Viewing angle theta (for 3D projection)", (char*)0, (char*)0, 12, 0,
8159 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
8160 &_GEANT_DRAWING_DRAW_THETA_type };
8161 static KmParReal _GEANT_DRAWING_DRAW_PHI_type = { "0.", "360.", "0.",
8163 static KmParameter _GEANT_DRAWING_DRAW_PHI = { "PHI", 3,
8164 "Viewing angle phi (for 3D projection)", (char*)0, (char*)0, 12, 0,
8165 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
8166 &_GEANT_DRAWING_DRAW_PHI_type };
8167 static KmParReal _GEANT_DRAWING_DRAW_PSI_type = { "0.", "360.", "0.",
8169 static KmParameter _GEANT_DRAWING_DRAW_PSI = { "PSI", 3,
8170 "Viewing angle psi (for 2D rotation)", (char*)0, (char*)0, 12, 0, (char**)0,
8171 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DRAW_PSI_type };
8172 static KmParReal _GEANT_DRAWING_DRAW_U0_type = { (char*)0, (char*)0,
8173 (char*)0, (char*)0, 0 };
8174 static KmParameter _GEANT_DRAWING_DRAW_U0 = { "U0", 2,
8175 "U-coord. (horizontal) of volume origin", (char*)0, (char*)0, 12, 0,
8176 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
8177 &_GEANT_DRAWING_DRAW_U0_type };
8178 static KmParReal _GEANT_DRAWING_DRAW_V0_type = { (char*)0, (char*)0,
8179 (char*)0, (char*)0, 0 };
8180 static KmParameter _GEANT_DRAWING_DRAW_V0 = { "V0", 2,
8181 "V-coord. (vertical) of volume origin", (char*)0, (char*)0, 12, 0, (char**)0,
8182 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DRAW_V0_type };
8183 static KmParReal _GEANT_DRAWING_DRAW_SU_type = { (char*)0, (char*)0,
8184 (char*)0, (char*)0, 0 };
8185 static KmParameter _GEANT_DRAWING_DRAW_SU = { "SU", 2,
8186 "Scale factor for U-coord.", (char*)0, (char*)0, 12, 0, (char**)0, 0,
8187 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DRAW_SU_type };
8188 static KmParReal _GEANT_DRAWING_DRAW_SV_type = { (char*)0, (char*)0,
8189 (char*)0, (char*)0, 0 };
8190 static KmParameter _GEANT_DRAWING_DRAW_SV = { "SV", 2,
8191 "Scale factor for V-coord.", (char*)0, (char*)0, 12, 0, (char**)0, 0,
8192 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DRAW_SV_type };
8193 static KmParameter *_GEANT_DRAWING_DRAW_parameters[] = {
8194 &_GEANT_DRAWING_DRAW_NAME, &_GEANT_DRAWING_DRAW_THETA,
8195 &_GEANT_DRAWING_DRAW_PHI, &_GEANT_DRAWING_DRAW_PSI, &_GEANT_DRAWING_DRAW_U0,
8196 &_GEANT_DRAWING_DRAW_V0, &_GEANT_DRAWING_DRAW_SU, &_GEANT_DRAWING_DRAW_SV };
8197 static char *_GEANT_DRAWING_DRAW_guidance[] = {
8198 " CALL GDRAW(name,theta,phi,psi,u0,v0,su,sv)",
8199 "If optional parameters are missing, the corresponding values are",
8200 "taken from the common /GCDRAW/. This command will draw the volumes,",
8201 "selected with their graphical attributes, set by the SATT",
8202 "facility. The drawing may be performed with hidden line removal",
8203 "and with shading effects according to the value of the options HIDE",
8204 "and SHAD; if the option SHAD is ON, the contour's edges can be",
8205 "drawn or not. If the option HIDE is ON, the detector can be",
8206 "exploded (BOMB), clipped with different shapes (CVOL), and some",
8207 "of its parts can be shifted from their original",
8208 "position (SHIFT). When HIDE is ON, if",
8209 "the drawing requires more than the available memory, the program",
8210 "will evaluate and display the number of missing words",
8211 "(so that the user can increase the",
8212 "size of its ZEBRA store). Finally, at the end of each drawing (with HIDE\
8213 on),", "the program will print messages about the memory used and",
8214 "statistics on the volumes' visibility.",
8215 "The following commands will produce the drawing of a green",
8216 "volume, specified by NAME, without using the hidden line removal",
8217 "technique, using the hidden line removal technique,",
8218 "with different linewidth and colour (red), with",
8219 "solid colour, with shading of surfaces, and without edges.",
8220 "Finally, some examples are given for the ray-tracing. (A possible",
8221 "string for the NAME of the volume can be found using the command DTREE).",
8222 " EXAMPLE -", " satt * seen -2", " satt NAME colo 3",
8223 " draw NAME 40 40 0 10 10 .01 .01", " next", " dopt hide on",
8224 " draw NAME 40 40 0 10 10 .01 .01", " next", " satt NAME colo 2",
8225 " satt NAME lwid 4", " draw NAME 40 40 0 10 10 .01 .01", " next",
8226 " dopt shad on", " satt * lwid 1", " satt NAME fill 1",
8227 " draw NAME 40 40 0 10 10 .01 .01", " next", " satt NAME fill 3",
8228 " draw NAME 40 40 0 10 10 .01 .01", " next", " dopt edge off",
8229 " draw NAME 40 40 0 10 10 .01 .01", " dopt rayt on", " satt * fill 20",
8230 " dopt mapp 1", " draw NAME 40 40 0 10 10 .01 .01", " dopt proj pers",
8231 " persp NAME 500", " draw NAME 40 40 0 10 10 1 1", " valcut 100 100 100",
8232 " dopt mapp 0", " dopt user on", " satt NAM1 seen 0", " satt NAM2 colo 2",
8233 " draw NAME 40 40 0 10 10 5 5" };
8234 static KmCommand _GEANT_DRAWING_DRAW = { &_GEANT_DRAWING_SPOT,
8235 "/GEANT/DRAWING/DRAW", "DRAW", 0, 2, 8, 1, _GEANT_DRAWING_DRAW_parameters, 0,
8236 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 59,
8237 _GEANT_DRAWING_DRAW_guidance, 0, (char**)0, (char*)0, (int*)0 };
8239 static char *_GEANT_DRAWING_guidance[] = {
8240 "Drawing commands. These commands allow the visualization in several ways",
8241 "of the volumes defined in the geometrical data structure. It is possible",
8242 "to draw the logical tree of volumes belonging to the detector (DTREE),",
8243 "to show their geometrical specification (DSPEC,DFSPC), to draw them",
8244 "and their cut views (DRAW, DCUT). Moreover, it is possible to execute",
8245 "these commands when the hidden line removal option is activated; in",
8246 "this case, the volumes can be also either translated in the space",
8247 "(SHIFT), or clipped by boolean operation (CVOL). In addition, it is",
8248 "possible to fill the surfaces of the volumes",
8249 "with solid colours when the shading option (SHAD) is activated.",
8250 "Several tools (ZOOM, LENS) have been developed to zoom detailed parts",
8251 "of the detectors or to scan physical events as well.",
8252 "Finally, the command MOVE will allow the rotation, translation and zooming",
8253 "on real time parts of the detectors or tracks and hits of a simulated\
8255 "Ray-tracing commands. In case the command (DOPT RAYT ON) is executed,",
8256 "the drawing is performed by the Geant ray-tracing;",
8257 "automatically, the color is assigned according to the tracking medium of\
8259 "volume and the volumes with a density lower/equal than the air are\
8261 "transparent; if the option (USER) is set (ON) (again via the command\
8263 "the user can set color and visibility for the desired volumes via the\
8265 "(SATT), as usual, relatively to the attributes (COLO) and (SEEN).",
8266 "The resolution can be set via the command (SATT * FILL VALUE), where\
8268 "is the ratio between the number of pixels drawn and 20 (user coordinates).",
8269 "Parallel view and perspective view are possible (DOPT PROJ PARA/PERS); in\
8271 "first case, we assume that the first mother volume of the tree is a box\
8273 "dimensions 10000 X 10000 X 10000 cm and the view point (infinetely far) is",
8274 "5000 cm far from the origin along the Z axis of the user coordinates; in\
8276 "second case, the distance between the observer and the origin of the world",
8277 "reference system is set in cm by the command (PERSP NAME VALUE);\
8279 "or telescopic effects can be achieved changing the scale factors in the\
8280 command", "(DRAW). When the final picture does not occupy the full window,",
8281 "mapping the space before tracing can speed up the drawing, but can also",
8282 "produce less precise results; values from 1 to 4 are allowed in the\
8284 "(DOPT MAPP VALUE), the mapping being more precise for increasing (VALUE);\
8286 "(VALUE = 0) no mapping is performed (therefore max precision and lowest\
8288 "The command (VALCUT) allows the cutting of the detector by three planes",
8289 "ortogonal to the x,y,z axis. The attribute (LSTY) can be set by the\
8291 "SATT for any desired volume and can assume values from 0 to 7; it\
8293 "the different light processing to be performed for different materials:",
8294 "0 = dark-matt, 1 = bright-matt, 2 = plastic, 3 = ceramic, 4 =\
8296 "5 = shiny-metals, 6 = glass, 7 = mirror. The detector is assumed to be in\
8298 "dark, the ambient light luminosity is 0.2 for each basic hue (the\
8300 "is 0.9) and the observer is assumed to have a light source (therefore he\
8302 "produce parallel light in the case of parallel view and point-like-source",
8303 "light in the case of perspective view)." };
8304 static KmMenu _GEANT_DRAWING = { (KmMenu*)0, (KmMenu*)0, "/GEANT/DRAWING",
8305 "DRAWING", 2, &_GEANT_DRAWING_DRAW, 45, _GEANT_DRAWING_guidance };
8307 static char *_GEANT_CVOL_guidance[] = { "Clipping commands.",
8308 "The hidden line removal technique is necessary to visualize properly",
8309 "very complex detectors. At the same time, it can be useful to visualize",
8310 "the inner elements of a detector in detail. For this purpose, the",
8311 "commands menu CVOL has been developed: these commands allow",
8312 "subtractions (via boolean operation) of given shapes from any part of",
8313 "the detector, therefore showing its inner contents. It is possible",
8314 "to clip each different volume by means of a different shape (BOX ,",
8315 "TUBE, CONE, SPHE are available). If '*' is given as the name of the",
8316 "volume to be clipped, all volumes are clipped by the given shape.",
8317 "A volume can be clipped at most twice (even by",
8318 "different shapes); if a volume is explicitely clipped",
8319 "twice, the '*' will not act on it anymore. Giving '.' as the name",
8320 "of the volume to be clipped will reset the clipping." };
8321 static KmMenu _GEANT_CVOL = { &_GEANT_DRAWING, (KmMenu*)0, "/GEANT/CVOL",
8322 "CVOL", 2, &_GEANT_CVOL_BOX, 14, _GEANT_CVOL_guidance };
8324 static char *_GEANT_guidance[] = { "GEANT specific commands." };
8325 static KmMenu _GEANT = { (KmMenu*)0, &_GEANT_CVOL, "/GEANT", "GEANT", 1,
8326 (KmCommand*)0, 1, _GEANT_guidance };
8328 klnkmenu( &_GEANT, 921023 );
8333 # define gkgcon_ gkgcon
8334 # define gxgcon_ gxgcon
8338 # define gkgcon_ GKGCON
8339 # define gxgcon_ GXGCON
8343 # pragma linkage(GKGCON,FORTRAN)
8344 # pragma linkage(GXGCON,FORTRAN)
8347 extern void gkgcon_();
8348 extern void gxgcon_();
8353 static KmParInt _GEANT_GRAPHICS_CONTROL_MAP_COLOR_ICADD_type = { (char*)0,
8354 (char*)0, (char*)0, (char*)0, 0 };
8355 static KmParameter _GEANT_GRAPHICS_CONTROL_MAP_COLOR_ICADD = { "ICADD", 5,
8356 "Colour table index", "0", (char*)0, 8, 0, (char**)0, 0, (char**)0,
8357 (KmParFlag)0, KmTYPE_INT, &_GEANT_GRAPHICS_CONTROL_MAP_COLOR_ICADD_type };
8358 static KmParInt _GEANT_GRAPHICS_CONTROL_MAP_COLOR_ICVAL_type = { (char*)0,
8359 (char*)0, (char*)0, (char*)0, 0 };
8360 static KmParameter _GEANT_GRAPHICS_CONTROL_MAP_COLOR_ICVAL = { "ICVAL", 5,
8361 "Colour table value", "0", (char*)0, 8, 0, (char**)0, 0, (char**)0,
8362 (KmParFlag)0, KmTYPE_INT, &_GEANT_GRAPHICS_CONTROL_MAP_COLOR_ICVAL_type };
8363 static KmParameter *_GEANT_GRAPHICS_CONTROL_MAP_COLOR_parameters[] = {
8364 &_GEANT_GRAPHICS_CONTROL_MAP_COLOR_ICADD,
8365 &_GEANT_GRAPHICS_CONTROL_MAP_COLOR_ICVAL };
8366 static char *_GEANT_GRAPHICS_CONTROL_MAP_COLOR_guidance[] = {
8367 "Sets the color table LOOKTB(ICADD)=ICVAL.",
8368 "If ICADD=0 then LOOKTB(1:16) is taken.",
8369 "If ICVAL is omitted the current value of LOOKTB(ICADD) is shown." };
8370 static KmCommand _GEANT_GRAPHICS_CONTROL_MAP_COLOR = { (KmCommand*)0,
8371 "/GEANT/GRAPHICS_CONTROL/MAP_COLOR", "MAP_COLOR", 0, 2, 2, 0,
8372 _GEANT_GRAPHICS_CONTROL_MAP_COLOR_parameters, 0, 0, gxgcon_, (IntFunc*)0,
8373 (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_GRAPHICS_CONTROL_MAP_COLOR_guidance,
8374 0, (char**)0, (char*)0, (int*)0 };
8376 static KmParReal _GEANT_GRAPHICS_CONTROL_SPERS_DPERS_type = { (char*)0,
8377 (char*)0, (char*)0, (char*)0, 0 };
8378 static KmParameter _GEANT_GRAPHICS_CONTROL_SPERS_DPERS = { "DPERS", 5,
8379 "Distance from the origin", (char*)0, (char*)0, 12, 0, (char**)0, 0,
8380 (char**)0, (KmParFlag)0, KmTYPE_REAL,
8381 &_GEANT_GRAPHICS_CONTROL_SPERS_DPERS_type };
8382 static KmParameter *_GEANT_GRAPHICS_CONTROL_SPERS_parameters[] = {
8383 &_GEANT_GRAPHICS_CONTROL_SPERS_DPERS };
8384 static char *_GEANT_GRAPHICS_CONTROL_SPERS_guidance[] = {
8385 "Set the variable dpers in /GCDRAW/, representing",
8386 "the distance from the origin when using option PERSpective." };
8387 static KmCommand _GEANT_GRAPHICS_CONTROL_SPERS = {
8388 &_GEANT_GRAPHICS_CONTROL_MAP_COLOR, "/GEANT/GRAPHICS_CONTROL/SPERS", "SPERS",
8389 0, 2, 1, 1, _GEANT_GRAPHICS_CONTROL_SPERS_parameters, 0, 0, gxgcon_,
8390 (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 2,
8391 _GEANT_GRAPHICS_CONTROL_SPERS_guidance, 0, (char**)0, (char*)0, (int*)0 };
8393 static KmParReal _GEANT_GRAPHICS_CONTROL_SIZE_XSIZE_type = { (char*)0,
8394 (char*)0, (char*)0, (char*)0, 0 };
8395 static KmParameter _GEANT_GRAPHICS_CONTROL_SIZE_XSIZE = { "XSIZE", 5,
8396 "Size along X", "20.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
8397 (KmParFlag)0, KmTYPE_REAL, &_GEANT_GRAPHICS_CONTROL_SIZE_XSIZE_type };
8398 static KmParReal _GEANT_GRAPHICS_CONTROL_SIZE_YSIZE_type = { (char*)0,
8399 (char*)0, (char*)0, (char*)0, 0 };
8400 static KmParameter _GEANT_GRAPHICS_CONTROL_SIZE_YSIZE = { "YSIZE", 5,
8401 "Size along Y", "20.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
8402 (KmParFlag)0, KmTYPE_REAL, &_GEANT_GRAPHICS_CONTROL_SIZE_YSIZE_type };
8403 static KmParameter *_GEANT_GRAPHICS_CONTROL_SIZE_parameters[] = {
8404 &_GEANT_GRAPHICS_CONTROL_SIZE_XSIZE, &_GEANT_GRAPHICS_CONTROL_SIZE_YSIZE };
8405 static char *_GEANT_GRAPHICS_CONTROL_SIZE_guidance[] = {
8406 "Set the size of the picture.",
8407 "On the terminal, the pictures will have the ratio YSIZE/XSIZE, and,",
8408 "if a metafile is produced, pictures will be YSIZE by XSIZE cm.",
8409 "This command sets the parameters for the normalisation transformation",
8410 "number 1 to [0-XSIZE], [0-YSIZE]." };
8411 static KmCommand _GEANT_GRAPHICS_CONTROL_SIZE = {
8412 &_GEANT_GRAPHICS_CONTROL_SPERS, "/GEANT/GRAPHICS_CONTROL/SIZE", "SIZE", 0, 2,
8413 2, 0, _GEANT_GRAPHICS_CONTROL_SIZE_parameters, 0, 0, gxgcon_, (IntFunc*)0,
8414 (SUBROUTINE*)0, (pCharFunc*)0, 5, _GEANT_GRAPHICS_CONTROL_SIZE_guidance, 0,
8415 (char**)0, (char*)0, (int*)0 };
8417 static KmParameter _GEANT_GRAPHICS_CONTROL_DOPT_IOPT = { "IOPT", 4,
8418 "Option name", "*", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8419 KmTYPE_CHAR, (void*)0 };
8420 static KmParameter _GEANT_GRAPHICS_CONTROL_DOPT_IVAL = { "IVAL", 4,
8421 "Option value", "*", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8422 KmTYPE_CHAR, (void*)0 };
8423 static KmParameter *_GEANT_GRAPHICS_CONTROL_DOPT_parameters[] = {
8424 &_GEANT_GRAPHICS_CONTROL_DOPT_IOPT, &_GEANT_GRAPHICS_CONTROL_DOPT_IVAL };
8425 static char *_GEANT_GRAPHICS_CONTROL_DOPT_guidance[] = {
8426 " CALL GDOPT(iopt,ival)", "To set/modify the drawing options.",
8427 " IOPT IVAL Action", " THRZ ON Draw tracks in R vs Z",
8428 " OFF (D) Draw tracks in X,Y,Z", " 180",
8429 " 360", " PROJ PARA (D) Parallel projection",
8430 " PERS Perspective",
8431 " TRAK LINE (D) Trajectory drawn with lines",
8432 " POIN \" \" with markers",
8433 " HIDE ON Hidden line removal using the CG package",
8434 " OFF (D) No hidden line removal",
8435 " SHAD ON Fill area and shading of surfaces.",
8436 " OFF (D) Normal hidden line removal.",
8437 " RAYT ON Ray-tracing on.",
8438 " OFF (D) Ray-tracing off.",
8439 " EDGE OFF Does not draw contours when shad is on.",
8440 " ON (D) Normal shading.",
8441 " MAPP 1,2,3,4 Mapping before ray-tracing.",
8442 " 0 (D) No mapping.",
8443 " USER ON User graphics options in the raytracing.",
8444 " OFF (D) Automatic graphics options." };
8445 static KmCommand _GEANT_GRAPHICS_CONTROL_DOPT = {
8446 &_GEANT_GRAPHICS_CONTROL_SIZE, "/GEANT/GRAPHICS_CONTROL/DOPT", "DOPT", 0, 2,
8447 2, 0, _GEANT_GRAPHICS_CONTROL_DOPT_parameters, 0, 0, gxgcon_, (IntFunc*)0,
8448 (SUBROUTINE*)0, (pCharFunc*)0, 23, _GEANT_GRAPHICS_CONTROL_DOPT_guidance, 0,
8449 (char**)0, (char*)0, (int*)0 };
8451 static char *_GEANT_GRAPHICS_CONTROL_NEXT_guidance[] = {
8452 "Clear screen (start a new picture on graphics file, if opened)." };
8453 static KmCommand _GEANT_GRAPHICS_CONTROL_NEXT = {
8454 &_GEANT_GRAPHICS_CONTROL_DOPT, "/GEANT/GRAPHICS_CONTROL/NEXT", "NEXT", 0, 2,
8455 0, 0, (KmParameter**)0, 0, 0, gxgcon_, (IntFunc*)0, (SUBROUTINE*)0,
8456 (pCharFunc*)0, 1, _GEANT_GRAPHICS_CONTROL_NEXT_guidance, 0, (char**)0,
8457 (char*)0, (int*)0 };
8459 static KmParInt _GEANT_GRAPHICS_CONTROL_LWID_LWIDTH_type = { (char*)0,
8460 (char*)0, (char*)0, (char*)0, 0 };
8461 static KmParameter _GEANT_GRAPHICS_CONTROL_LWID_LWIDTH = { "LWIDTH", 6,
8462 "Line width code", "1", (char*)0, 8, 0, (char**)0, 0, (char**)0,
8463 (KmParFlag)0, KmTYPE_INT, &_GEANT_GRAPHICS_CONTROL_LWID_LWIDTH_type };
8464 static KmParameter *_GEANT_GRAPHICS_CONTROL_LWID_parameters[] = {
8465 &_GEANT_GRAPHICS_CONTROL_LWID_LWIDTH };
8466 static char *_GEANT_GRAPHICS_CONTROL_LWID_guidance[] = {
8467 " CALL GDLW(-abs(lwidth))" };
8468 static KmCommand _GEANT_GRAPHICS_CONTROL_LWID = {
8469 &_GEANT_GRAPHICS_CONTROL_NEXT, "/GEANT/GRAPHICS_CONTROL/LWID", "LWID", 0, 2,
8470 1, 1, _GEANT_GRAPHICS_CONTROL_LWID_parameters, 0, 0, gxgcon_, (IntFunc*)0,
8471 (SUBROUTINE*)0, (pCharFunc*)0, 1, _GEANT_GRAPHICS_CONTROL_LWID_guidance, 0,
8472 (char**)0, (char*)0, (int*)0 };
8474 static KmParInt _GEANT_GRAPHICS_CONTROL_COLOR_ICOL_type = { (char*)0,
8475 (char*)0, (char*)0, (char*)0, 0 };
8476 static KmParameter _GEANT_GRAPHICS_CONTROL_COLOR_ICOL = { "ICOL", 4,
8477 "Colour code", "1", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8478 KmTYPE_INT, &_GEANT_GRAPHICS_CONTROL_COLOR_ICOL_type };
8479 static KmParameter *_GEANT_GRAPHICS_CONTROL_COLOR_parameters[] = {
8480 &_GEANT_GRAPHICS_CONTROL_COLOR_ICOL };
8481 static char *_GEANT_GRAPHICS_CONTROL_COLOR_guidance[] = {
8482 " CALL GDCOL(-abs(icol))" };
8483 static KmCommand _GEANT_GRAPHICS_CONTROL_COLOR = {
8484 &_GEANT_GRAPHICS_CONTROL_LWID, "/GEANT/GRAPHICS_CONTROL/COLOR", "COLOR", 0,
8485 2, 1, 1, _GEANT_GRAPHICS_CONTROL_COLOR_parameters, 0, 0, gxgcon_,
8486 (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
8487 _GEANT_GRAPHICS_CONTROL_COLOR_guidance, 0, (char**)0, (char*)0, (int*)0 };
8489 static KmParReal _GEANT_GRAPHICS_CONTROL_SCALE_GSCU_type = { (char*)0,
8490 (char*)0, (char*)0, (char*)0, 0 };
8491 static KmParameter _GEANT_GRAPHICS_CONTROL_SCALE_GSCU = { "GSCU", 4,
8492 "Scale factor for U-coord.", (char*)0, (char*)0, 12, 0, (char**)0, 0,
8493 (char**)0, (KmParFlag)0, KmTYPE_REAL,
8494 &_GEANT_GRAPHICS_CONTROL_SCALE_GSCU_type };
8495 static KmParReal _GEANT_GRAPHICS_CONTROL_SCALE_GSCV_type = { (char*)0,
8496 (char*)0, (char*)0, (char*)0, 0 };
8497 static KmParameter _GEANT_GRAPHICS_CONTROL_SCALE_GSCV = { "GSCV", 4,
8498 "Scale factor for V-coord.", (char*)0, (char*)0, 12, 0, (char**)0, 0,
8499 (char**)0, (KmParFlag)0, KmTYPE_REAL,
8500 &_GEANT_GRAPHICS_CONTROL_SCALE_GSCV_type };
8501 static KmParameter *_GEANT_GRAPHICS_CONTROL_SCALE_parameters[] = {
8502 &_GEANT_GRAPHICS_CONTROL_SCALE_GSCU, &_GEANT_GRAPHICS_CONTROL_SCALE_GSCV };
8503 static char *_GEANT_GRAPHICS_CONTROL_SCALE_guidance[] = {
8504 "Change the scale factors GSCU and GSCV in /GCDRAW/." };
8505 static KmCommand _GEANT_GRAPHICS_CONTROL_SCALE = {
8506 &_GEANT_GRAPHICS_CONTROL_COLOR, "/GEANT/GRAPHICS_CONTROL/SCALE", "SCALE", 0,
8507 2, 2, 2, _GEANT_GRAPHICS_CONTROL_SCALE_parameters, 0, 0, gxgcon_,
8508 (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
8509 _GEANT_GRAPHICS_CONTROL_SCALE_guidance, 0, (char**)0, (char*)0, (int*)0 };
8511 static KmParameter _GEANT_GRAPHICS_CONTROL_SATT_NAME = { "NAME", 4,
8512 "Volume name", "* ", (char*)0, 20, 0, (char**)0, 0, (char**)0,
8513 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
8514 static KmParameter _GEANT_GRAPHICS_CONTROL_SATT_IOPT = { "IOPT", 4,
8515 "Name of the attribute to be set", "DEFA", (char*)0, 20, 0, (char**)0, 0,
8516 (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
8517 static KmParInt _GEANT_GRAPHICS_CONTROL_SATT_IVAL_type = { (char*)0,
8518 (char*)0, (char*)0, (char*)0, 0 };
8519 static KmParameter _GEANT_GRAPHICS_CONTROL_SATT_IVAL = { "IVAL", 4,
8520 "Value to which the attribute is to be set", "10000", (char*)0, 8, 0,
8521 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
8522 &_GEANT_GRAPHICS_CONTROL_SATT_IVAL_type };
8523 static KmParameter *_GEANT_GRAPHICS_CONTROL_SATT_parameters[] = {
8524 &_GEANT_GRAPHICS_CONTROL_SATT_NAME, &_GEANT_GRAPHICS_CONTROL_SATT_IOPT,
8525 &_GEANT_GRAPHICS_CONTROL_SATT_IVAL };
8526 static char *_GEANT_GRAPHICS_CONTROL_SATT_guidance[] = {
8527 " CALL GSATT(name,iopt,ival)", "name='*' stands for all the volumes.",
8528 "iopt can be chosen among the following :",
8529 " 'WORK' 0=volume name is inactive for the tracking",
8530 " 1=volume name is active for the tracking (default)",
8531 " 'SEEN' 0=volume name is invisible",
8532 " 1=volume name is visible (default)",
8533 " -1=volume invisible with all its descendants in the tree",
8534 " -2=volume visible but not its descendants in the tree",
8535 " 'LSTY' line style 1,2,3,... (default=1)",
8536 " LSTY=7 will produce a very precise approximation for",
8537 " revolution bodies.",
8538 " 'LWID' line width -7,...,1,2,3,..7 (default=1)",
8539 " LWID<0 will act as abs(LWID) was set for the volume",
8540 " and for all the levels below it. When SHAD is 'ON', LWID",
8541 " represent the linewidth of the scan lines filling the surfaces",
8542 " (whereas the FILL value represent their number). Therefore",
8543 " tuning this parameter will help to obtain the desired",
8544 " quality/performance ratio.",
8545 " 'COLO' colour code -166,...,1,2,..166 (default=1)",
8547 " n=2=red; n=17+m, m=0,25, increasing luminosity according to\
8549 " n=3=green; n=67+m, m=0,25, increasing luminosity according to\
8551 " n=4=blue; n=117+m, m=0,25, increasing luminosity according to\
8553 " n=5=yellow; n=42+m, m=0,25, increasing luminosity according to\
8555 " n=6=violet; n=142+m, m=0,25, increasing luminosity according to\
8557 " n=7=lightblue; n=92+m, m=0,25, increasing luminosity according to\
8558 'm';", " colour=n*10+m, m=1,2,...9, will produce the same colour",
8559 " as 'n', but with increasing luminosity according to 'm';",
8560 " COLO<0 will act as if abs(COLO) was set for the volume",
8561 " and for all the levels below it.",
8562 " When for a volume the attribute FILL is > 1 (and the",
8563 " option SHAD is on), the ABS of its colour code must be < 8",
8564 " because an automatic shading of its faces will be",
8566 " 'FILL' (1992) fill area -7,...,0,1,...7 (default=0)",
8567 " when option SHAD is 'on' the FILL attribute of any",
8568 " volume can be set different from 0 (normal drawing);",
8569 " if it is set to 1, the faces of such volume will be filled",
8570 " with solid colours; if ABS(FILL) is > 1, then a light",
8571 " source is placed along the observer line, and the faces of",
8572 " such volumes will be painted by colours whose luminosity",
8573 " will depend on the amount of light reflected;",
8574 " if ABS(FILL) = 1, then it is possible to use all the 166",
8575 " colours of the colour table, becouse the automatic shading",
8576 " is not performed;",
8577 " for increasing values of FILL the drawing will be performed",
8578 " with higher and higher resolution improving the quality (the",
8579 " number of scan lines used to fill the faces increases with\
8580 FILL);", " it is possible to set different values of FILL",
8581 " for different volumes, in order to optimize at the same time",
8582 " the performance and the quality of the picture;",
8583 " FILL<0 will act as if abs(FILL) was set for the volume",
8584 " and for all the levels below it.",
8585 " This kind of drawing can be saved in 'picture files'",
8586 " or in view banks.", " 0=drawing without fill area",
8587 " 1=faces filled with solid colours and resolution = 6",
8588 " 2=lowest resolution (very fast)",
8589 " 3=default resolution", " 4=.................",
8590 " 5=.................", " 6=.................",
8591 " 7=max resolution",
8592 " Finally, if a coloured background is desired, the FILL",
8593 " attribute for the first volume of the tree must be set",
8594 " equal to -abs(colo), colo being >0 and <166.",
8595 " 'SET ' set number associated to volume name",
8596 " 'DET ' detector number associated to volume name",
8597 " 'DTYP' detector type (1,2)" };
8598 static KmCommand _GEANT_GRAPHICS_CONTROL_SATT = {
8599 &_GEANT_GRAPHICS_CONTROL_SCALE, "/GEANT/GRAPHICS_CONTROL/SATT", "SATT", 0, 2,
8600 3, 0, _GEANT_GRAPHICS_CONTROL_SATT_parameters, 0, 0, gxgcon_, (IntFunc*)0,
8601 (SUBROUTINE*)0, (pCharFunc*)0, 70, _GEANT_GRAPHICS_CONTROL_SATT_guidance, 0,
8602 (char**)0, (char*)0, (int*)0 };
8604 static KmParReal _GEANT_GRAPHICS_CONTROL_SSETVA_RVAL_type = { "-10.", "10.",
8606 static KmParameter _GEANT_GRAPHICS_CONTROL_SSETVA_RVAL = { "RVAL", 4,
8607 "Attribute value", "1.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
8608 (KmParFlag)0, KmTYPE_REAL, &_GEANT_GRAPHICS_CONTROL_SSETVA_RVAL_type };
8609 static KmParameter *_GEANT_GRAPHICS_CONTROL_SSETVA_parameters[] = {
8610 &_GEANT_GRAPHICS_CONTROL_SSETVA_RVAL };
8611 static char *_GEANT_GRAPHICS_CONTROL_SSETVA_guidance[] = {
8612 "Set current attribute value." };
8613 static KmCommand _GEANT_GRAPHICS_CONTROL_SSETVA = {
8614 &_GEANT_GRAPHICS_CONTROL_SATT, "/GEANT/GRAPHICS_CONTROL/SSETVA", "SSETVA", 0,
8615 2, 1, 0, _GEANT_GRAPHICS_CONTROL_SSETVA_parameters, 0, 0, gxgcon_,
8616 (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
8617 _GEANT_GRAPHICS_CONTROL_SSETVA_guidance, 0, (char**)0, (char*)0, (int*)0 };
8619 static KmParameter _GEANT_GRAPHICS_CONTROL_SSETAT_IOPT = { "IOPT", 4,
8620 "Attribute name", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
8621 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
8622 static KmParameter *_GEANT_GRAPHICS_CONTROL_SSETAT_parameters[] = {
8623 &_GEANT_GRAPHICS_CONTROL_SSETAT_IOPT };
8624 static char *_GEANT_GRAPHICS_CONTROL_SSETAT_guidance[] = {
8625 "Set current attribute." };
8626 static KmCommand _GEANT_GRAPHICS_CONTROL_SSETAT = {
8627 &_GEANT_GRAPHICS_CONTROL_SSETVA, "/GEANT/GRAPHICS_CONTROL/SSETAT", "SSETAT",
8628 0, 2, 1, 1, _GEANT_GRAPHICS_CONTROL_SSETAT_parameters, 0, 0, gxgcon_,
8629 (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
8630 _GEANT_GRAPHICS_CONTROL_SSETAT_guidance, 0, (char**)0, (char*)0, (int*)0 };
8632 static char *_GEANT_GRAPHICS_CONTROL_RESETWK_guidance[] = { "CALL GRESWK",
8633 "It deactivate the previosly activated workstation and reactivate the",
8635 static KmCommand _GEANT_GRAPHICS_CONTROL_RESETWK = {
8636 &_GEANT_GRAPHICS_CONTROL_SSETAT, "/GEANT/GRAPHICS_CONTROL/RESETWK",
8637 "RESETWK", 0, 2, 0, 0, (KmParameter**)0, 0, 0, gxgcon_, (IntFunc*)0,
8638 (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_GRAPHICS_CONTROL_RESETWK_guidance,
8639 0, (char**)0, (char*)0, (int*)0 };
8641 static char *_GEANT_GRAPHICS_CONTROL_CHANGEWK_guidance[] = { "CALL GCHNWK",
8642 "It open a new workstation (if not already opened) and activate it",
8643 "(deactivating the default one)." };
8644 static KmCommand _GEANT_GRAPHICS_CONTROL_CHANGEWK = {
8645 &_GEANT_GRAPHICS_CONTROL_RESETWK, "/GEANT/GRAPHICS_CONTROL/CHANGEWK",
8646 "CHANGEWK", 0, 2, 0, 0, (KmParameter**)0, 0, 0, gxgcon_, (IntFunc*)0,
8647 (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_GRAPHICS_CONTROL_CHANGEWK_guidance,
8648 0, (char**)0, (char*)0, (int*)0 };
8650 static char *_GEANT_GRAPHICS_CONTROL_DCLOSE_guidance[] = { " CALL GDCLOS",
8651 "It closes the currently open view bank; it must be called after the",
8652 "end of the drawing to be stored." };
8653 static KmCommand _GEANT_GRAPHICS_CONTROL_DCLOSE = {
8654 &_GEANT_GRAPHICS_CONTROL_CHANGEWK, "/GEANT/GRAPHICS_CONTROL/DCLOSE",
8655 "DCLOSE", 0, 2, 0, 0, (KmParameter**)0, 0, 0, gxgcon_, (IntFunc*)0,
8656 (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_GRAPHICS_CONTROL_DCLOSE_guidance, 0,
8657 (char**)0, (char*)0, (int*)0 };
8659 static KmParInt _GEANT_GRAPHICS_CONTROL_DELETE_IVIEW_type = { (char*)0,
8660 (char*)0, (char*)0, (char*)0, 0 };
8661 static KmParameter _GEANT_GRAPHICS_CONTROL_DELETE_IVIEW = { "IVIEW", 5,
8662 "View number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
8663 (KmParFlag)0, KmTYPE_INT, &_GEANT_GRAPHICS_CONTROL_DELETE_IVIEW_type };
8664 static KmParameter *_GEANT_GRAPHICS_CONTROL_DELETE_parameters[] = {
8665 &_GEANT_GRAPHICS_CONTROL_DELETE_IVIEW };
8666 static char *_GEANT_GRAPHICS_CONTROL_DELETE_guidance[] = {
8667 " CALL GDELET(iview)", "It deletes a view bank from memory." };
8668 static KmCommand _GEANT_GRAPHICS_CONTROL_DELETE = {
8669 &_GEANT_GRAPHICS_CONTROL_DCLOSE, "/GEANT/GRAPHICS_CONTROL/DELETE", "DELETE",
8670 0, 2, 1, 1, _GEANT_GRAPHICS_CONTROL_DELETE_parameters, 0, 0, gxgcon_,
8671 (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 2,
8672 _GEANT_GRAPHICS_CONTROL_DELETE_guidance, 0, (char**)0, (char*)0, (int*)0 };
8674 static KmParInt _GEANT_GRAPHICS_CONTROL_DSHOW_IVIEW_type = { (char*)0,
8675 (char*)0, (char*)0, (char*)0, 0 };
8676 static KmParameter _GEANT_GRAPHICS_CONTROL_DSHOW_IVIEW = { "IVIEW", 5,
8677 "View number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
8678 (KmParFlag)0, KmTYPE_INT, &_GEANT_GRAPHICS_CONTROL_DSHOW_IVIEW_type };
8679 static KmParameter *_GEANT_GRAPHICS_CONTROL_DSHOW_parameters[] = {
8680 &_GEANT_GRAPHICS_CONTROL_DSHOW_IVIEW };
8681 static char *_GEANT_GRAPHICS_CONTROL_DSHOW_guidance[] = {
8682 " CALL GDSHOW(iview)",
8683 "It shows on the screen the contents of a view bank. It",
8684 "can be called after a view bank has been closed." };
8685 static KmCommand _GEANT_GRAPHICS_CONTROL_DSHOW = {
8686 &_GEANT_GRAPHICS_CONTROL_DELETE, "/GEANT/GRAPHICS_CONTROL/DSHOW", "DSHOW", 0,
8687 2, 1, 0, _GEANT_GRAPHICS_CONTROL_DSHOW_parameters, 0, 0, gxgcon_,
8688 (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
8689 _GEANT_GRAPHICS_CONTROL_DSHOW_guidance, 0, (char**)0, (char*)0, (int*)0 };
8691 static KmParInt _GEANT_GRAPHICS_CONTROL_DOPEN_IVIEW_type = { (char*)0,
8692 (char*)0, (char*)0, (char*)0, 0 };
8693 static KmParameter _GEANT_GRAPHICS_CONTROL_DOPEN_IVIEW = { "IVIEW", 5,
8694 "View number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
8695 (KmParFlag)0, KmTYPE_INT, &_GEANT_GRAPHICS_CONTROL_DOPEN_IVIEW_type };
8696 static KmParameter *_GEANT_GRAPHICS_CONTROL_DOPEN_parameters[] = {
8697 &_GEANT_GRAPHICS_CONTROL_DOPEN_IVIEW };
8698 static char *_GEANT_GRAPHICS_CONTROL_DOPEN_guidance[] = {
8699 " CALL GDOPEN(iview)",
8700 "When a drawing is very complex and requires a long time to be",
8701 "executed, it can be useful to store it in a view bank: after a",
8702 "call to DOPEN and the execution of the drawing (nothing will",
8703 "appear on the screen), and after a necessary call to DCLOSE,",
8704 "the contents of the bank can be displayed in a very fast way",
8705 "through a call to DSHOW; therefore, the detector can be easily",
8706 "zoomed many times in different ways. Please note that the pictures",
8707 "with solid colours can now be stored in a view bank or in 'PICTURE FILES'."
8709 static KmCommand _GEANT_GRAPHICS_CONTROL_DOPEN = {
8710 &_GEANT_GRAPHICS_CONTROL_DSHOW, "/GEANT/GRAPHICS_CONTROL/DOPEN", "DOPEN", 0,
8711 2, 1, 1, _GEANT_GRAPHICS_CONTROL_DOPEN_parameters, 0, 0, gxgcon_,
8712 (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 9,
8713 _GEANT_GRAPHICS_CONTROL_DOPEN_guidance, 0, (char**)0, (char*)0, (int*)0 };
8715 static char *_GEANT_GRAPHICS_CONTROL_guidance[] = {
8716 "Graphics control commands." };
8717 static KmMenu _GEANT_GRAPHICS_CONTROL = { (KmMenu*)0, (KmMenu*)0,
8718 "/GEANT/GRAPHICS_CONTROL", "GRAPHICS_CONTROL", 2,
8719 &_GEANT_GRAPHICS_CONTROL_DOPEN, 1, _GEANT_GRAPHICS_CONTROL_guidance };
8721 static KmMenu _GEANT = { (KmMenu*)0, &_GEANT_GRAPHICS_CONTROL, "/GEANT",
8722 "GEANT", 1, (KmCommand*)0, 0, (char**)0 };
8724 klnkmenu( &_GEANT, 921023 );
8729 # define gklist_ gklist
8730 # define gxlist_ gxlist
8734 # define gklist_ GKLIST
8735 # define gxlist_ GXLIST
8739 # pragma linkage(GKLIST,FORTRAN)
8740 # pragma linkage(GXLIST,FORTRAN)
8743 extern void gklist_();
8744 extern void gxlist_();
8749 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_1 = { "LRSAVE_1", 8, "user word",
8750 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8751 KmTYPE_CHAR, (void*)0 };
8752 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_2 = { "LRSAVE_2", 8, "user word",
8753 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8754 KmTYPE_CHAR, (void*)0 };
8755 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_3 = { "LRSAVE_3", 8, "user word",
8756 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8757 KmTYPE_CHAR, (void*)0 };
8758 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_4 = { "LRSAVE_4", 8, "user word",
8759 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8760 KmTYPE_CHAR, (void*)0 };
8761 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_5 = { "LRSAVE_5", 8, "user word",
8762 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8763 KmTYPE_CHAR, (void*)0 };
8764 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_6 = { "LRSAVE_6", 8, "user word",
8765 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8766 KmTYPE_CHAR, (void*)0 };
8767 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_7 = { "LRSAVE_7", 8, "user word",
8768 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8769 KmTYPE_CHAR, (void*)0 };
8770 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_8 = { "LRSAVE_8", 8, "user word",
8771 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8772 KmTYPE_CHAR, (void*)0 };
8773 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_9 = { "LRSAVE_9", 8, "user word",
8774 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8775 KmTYPE_CHAR, (void*)0 };
8776 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_10 = { "LRSAVE_10", 9,
8777 "user word", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
8778 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
8779 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_11 = { "LRSAVE_11", 9,
8780 "user word", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
8781 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
8782 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_12 = { "LRSAVE_12", 9,
8783 "user word", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
8784 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
8785 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_13 = { "LRSAVE_13", 9,
8786 "user word", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
8787 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
8788 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_14 = { "LRSAVE_14", 9,
8789 "user word", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
8790 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
8791 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_15 = { "LRSAVE_15", 9,
8792 "user word", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
8793 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
8794 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_16 = { "LRSAVE_16", 9,
8795 "user word", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
8796 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
8797 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_17 = { "LRSAVE_17", 9,
8798 "user word", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
8799 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
8800 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_18 = { "LRSAVE_18", 9,
8801 "user word", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
8802 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
8803 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_19 = { "LRSAVE_19", 9,
8804 "user word", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
8805 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
8806 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_20 = { "LRSAVE_20", 9,
8807 "user word", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
8808 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
8809 static KmParameter *_GEANT_LISTS_RSAV_parameters[] = {
8810 &_GEANT_LISTS_RSAV_LRSAVE_1, &_GEANT_LISTS_RSAV_LRSAVE_2,
8811 &_GEANT_LISTS_RSAV_LRSAVE_3, &_GEANT_LISTS_RSAV_LRSAVE_4,
8812 &_GEANT_LISTS_RSAV_LRSAVE_5, &_GEANT_LISTS_RSAV_LRSAVE_6,
8813 &_GEANT_LISTS_RSAV_LRSAVE_7, &_GEANT_LISTS_RSAV_LRSAVE_8,
8814 &_GEANT_LISTS_RSAV_LRSAVE_9, &_GEANT_LISTS_RSAV_LRSAVE_10,
8815 &_GEANT_LISTS_RSAV_LRSAVE_11, &_GEANT_LISTS_RSAV_LRSAVE_12,
8816 &_GEANT_LISTS_RSAV_LRSAVE_13, &_GEANT_LISTS_RSAV_LRSAVE_14,
8817 &_GEANT_LISTS_RSAV_LRSAVE_15, &_GEANT_LISTS_RSAV_LRSAVE_16,
8818 &_GEANT_LISTS_RSAV_LRSAVE_17, &_GEANT_LISTS_RSAV_LRSAVE_18,
8819 &_GEANT_LISTS_RSAV_LRSAVE_19, &_GEANT_LISTS_RSAV_LRSAVE_20 };
8820 static char *_GEANT_LISTS_RSAV_guidance[] = {
8821 "The command RSAV is similar to the RSAV data records. It can accept",
8822 "up to 20 4-character words. If the first argument is '.', the number",
8823 "of words is reset to 0 and all the words to four blanks." };
8824 static KmCommand _GEANT_LISTS_RSAV = { (KmCommand*)0, "/GEANT/LISTS/RSAV",
8825 "RSAV", 0, 2, 20, 0, _GEANT_LISTS_RSAV_parameters, 0, 0, gxlist_,
8826 (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_LISTS_RSAV_guidance, 0,
8827 (char**)0, (char*)0, (int*)0 };
8829 static KmParameter _GEANT_LISTS_RGET_LRGET_1 = { "LRGET_1", 7, "user word",
8830 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8831 KmTYPE_CHAR, (void*)0 };
8832 static KmParameter _GEANT_LISTS_RGET_LRGET_2 = { "LRGET_2", 7, "user word",
8833 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8834 KmTYPE_CHAR, (void*)0 };
8835 static KmParameter _GEANT_LISTS_RGET_LRGET_3 = { "LRGET_3", 7, "user word",
8836 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8837 KmTYPE_CHAR, (void*)0 };
8838 static KmParameter _GEANT_LISTS_RGET_LRGET_4 = { "LRGET_4", 7, "user word",
8839 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8840 KmTYPE_CHAR, (void*)0 };
8841 static KmParameter _GEANT_LISTS_RGET_LRGET_5 = { "LRGET_5", 7, "user word",
8842 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8843 KmTYPE_CHAR, (void*)0 };
8844 static KmParameter _GEANT_LISTS_RGET_LRGET_6 = { "LRGET_6", 7, "user word",
8845 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8846 KmTYPE_CHAR, (void*)0 };
8847 static KmParameter _GEANT_LISTS_RGET_LRGET_7 = { "LRGET_7", 7, "user word",
8848 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8849 KmTYPE_CHAR, (void*)0 };
8850 static KmParameter _GEANT_LISTS_RGET_LRGET_8 = { "LRGET_8", 7, "user word",
8851 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8852 KmTYPE_CHAR, (void*)0 };
8853 static KmParameter _GEANT_LISTS_RGET_LRGET_9 = { "LRGET_9", 7, "user word",
8854 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8855 KmTYPE_CHAR, (void*)0 };
8856 static KmParameter _GEANT_LISTS_RGET_LRGET_10 = { "LRGET_10", 8, "user word",
8857 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8858 KmTYPE_CHAR, (void*)0 };
8859 static KmParameter _GEANT_LISTS_RGET_LRGET_11 = { "LRGET_11", 8, "user word",
8860 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8861 KmTYPE_CHAR, (void*)0 };
8862 static KmParameter _GEANT_LISTS_RGET_LRGET_12 = { "LRGET_12", 8, "user word",
8863 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8864 KmTYPE_CHAR, (void*)0 };
8865 static KmParameter _GEANT_LISTS_RGET_LRGET_13 = { "LRGET_13", 8, "user word",
8866 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8867 KmTYPE_CHAR, (void*)0 };
8868 static KmParameter _GEANT_LISTS_RGET_LRGET_14 = { "LRGET_14", 8, "user word",
8869 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8870 KmTYPE_CHAR, (void*)0 };
8871 static KmParameter _GEANT_LISTS_RGET_LRGET_15 = { "LRGET_15", 8, "user word",
8872 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8873 KmTYPE_CHAR, (void*)0 };
8874 static KmParameter _GEANT_LISTS_RGET_LRGET_16 = { "LRGET_16", 8, "user word",
8875 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8876 KmTYPE_CHAR, (void*)0 };
8877 static KmParameter _GEANT_LISTS_RGET_LRGET_17 = { "LRGET_17", 8, "user word",
8878 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8879 KmTYPE_CHAR, (void*)0 };
8880 static KmParameter _GEANT_LISTS_RGET_LRGET_18 = { "LRGET_18", 8, "user word",
8881 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8882 KmTYPE_CHAR, (void*)0 };
8883 static KmParameter _GEANT_LISTS_RGET_LRGET_19 = { "LRGET_19", 8, "user word",
8884 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8885 KmTYPE_CHAR, (void*)0 };
8886 static KmParameter _GEANT_LISTS_RGET_LRGET_20 = { "LRGET_20", 8, "user word",
8887 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8888 KmTYPE_CHAR, (void*)0 };
8889 static KmParameter *_GEANT_LISTS_RGET_parameters[] = {
8890 &_GEANT_LISTS_RGET_LRGET_1, &_GEANT_LISTS_RGET_LRGET_2,
8891 &_GEANT_LISTS_RGET_LRGET_3, &_GEANT_LISTS_RGET_LRGET_4,
8892 &_GEANT_LISTS_RGET_LRGET_5, &_GEANT_LISTS_RGET_LRGET_6,
8893 &_GEANT_LISTS_RGET_LRGET_7, &_GEANT_LISTS_RGET_LRGET_8,
8894 &_GEANT_LISTS_RGET_LRGET_9, &_GEANT_LISTS_RGET_LRGET_10,
8895 &_GEANT_LISTS_RGET_LRGET_11, &_GEANT_LISTS_RGET_LRGET_12,
8896 &_GEANT_LISTS_RGET_LRGET_13, &_GEANT_LISTS_RGET_LRGET_14,
8897 &_GEANT_LISTS_RGET_LRGET_15, &_GEANT_LISTS_RGET_LRGET_16,
8898 &_GEANT_LISTS_RGET_LRGET_17, &_GEANT_LISTS_RGET_LRGET_18,
8899 &_GEANT_LISTS_RGET_LRGET_19, &_GEANT_LISTS_RGET_LRGET_20 };
8900 static char *_GEANT_LISTS_RGET_guidance[] = {
8901 "The command RGET is similar to the RGET data records. It can accept",
8902 "up to 20 4-character words. If the first argument is '.', the number",
8903 "of words is reset to 0 and all the words to four blanks." };
8904 static KmCommand _GEANT_LISTS_RGET = { &_GEANT_LISTS_RSAV,
8905 "/GEANT/LISTS/RGET", "RGET", 0, 2, 20, 0, _GEANT_LISTS_RGET_parameters, 0, 0,
8906 gxlist_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
8907 _GEANT_LISTS_RGET_guidance, 0, (char**)0, (char*)0, (int*)0 };
8909 static KmParameter _GEANT_LISTS_STAT_LSTAT_1 = { "LSTAT_1", 7, "user word",
8910 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8911 KmTYPE_CHAR, (void*)0 };
8912 static KmParameter _GEANT_LISTS_STAT_LSTAT_2 = { "LSTAT_2", 7, "user word",
8913 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8914 KmTYPE_CHAR, (void*)0 };
8915 static KmParameter _GEANT_LISTS_STAT_LSTAT_3 = { "LSTAT_3", 7, "user word",
8916 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8917 KmTYPE_CHAR, (void*)0 };
8918 static KmParameter _GEANT_LISTS_STAT_LSTAT_4 = { "LSTAT_4", 7, "user word",
8919 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8920 KmTYPE_CHAR, (void*)0 };
8921 static KmParameter _GEANT_LISTS_STAT_LSTAT_5 = { "LSTAT_5", 7, "user word",
8922 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8923 KmTYPE_CHAR, (void*)0 };
8924 static KmParameter _GEANT_LISTS_STAT_LSTAT_6 = { "LSTAT_6", 7, "user word",
8925 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8926 KmTYPE_CHAR, (void*)0 };
8927 static KmParameter _GEANT_LISTS_STAT_LSTAT_7 = { "LSTAT_7", 7, "user word",
8928 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8929 KmTYPE_CHAR, (void*)0 };
8930 static KmParameter _GEANT_LISTS_STAT_LSTAT_8 = { "LSTAT_8", 7, "user word",
8931 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8932 KmTYPE_CHAR, (void*)0 };
8933 static KmParameter _GEANT_LISTS_STAT_LSTAT_9 = { "LSTAT_9", 7, "user word",
8934 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8935 KmTYPE_CHAR, (void*)0 };
8936 static KmParameter _GEANT_LISTS_STAT_LSTAT_10 = { "LSTAT_10", 8, "user word",
8937 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8938 KmTYPE_CHAR, (void*)0 };
8939 static KmParameter _GEANT_LISTS_STAT_LSTAT_11 = { "LSTAT_11", 8, "user word",
8940 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8941 KmTYPE_CHAR, (void*)0 };
8942 static KmParameter _GEANT_LISTS_STAT_LSTAT_12 = { "LSTAT_12", 8, "user word",
8943 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8944 KmTYPE_CHAR, (void*)0 };
8945 static KmParameter _GEANT_LISTS_STAT_LSTAT_13 = { "LSTAT_13", 8, "user word",
8946 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8947 KmTYPE_CHAR, (void*)0 };
8948 static KmParameter _GEANT_LISTS_STAT_LSTAT_14 = { "LSTAT_14", 8, "user word",
8949 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8950 KmTYPE_CHAR, (void*)0 };
8951 static KmParameter _GEANT_LISTS_STAT_LSTAT_15 = { "LSTAT_15", 8, "user word",
8952 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8953 KmTYPE_CHAR, (void*)0 };
8954 static KmParameter _GEANT_LISTS_STAT_LSTAT_16 = { "LSTAT_16", 8, "user word",
8955 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8956 KmTYPE_CHAR, (void*)0 };
8957 static KmParameter _GEANT_LISTS_STAT_LSTAT_17 = { "LSTAT_17", 8, "user word",
8958 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8959 KmTYPE_CHAR, (void*)0 };
8960 static KmParameter _GEANT_LISTS_STAT_LSTAT_18 = { "LSTAT_18", 8, "user word",
8961 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8962 KmTYPE_CHAR, (void*)0 };
8963 static KmParameter _GEANT_LISTS_STAT_LSTAT_19 = { "LSTAT_19", 8, "user word",
8964 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8965 KmTYPE_CHAR, (void*)0 };
8966 static KmParameter _GEANT_LISTS_STAT_LSTAT_20 = { "LSTAT_20", 8, "user word",
8967 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8968 KmTYPE_CHAR, (void*)0 };
8969 static KmParameter *_GEANT_LISTS_STAT_parameters[] = {
8970 &_GEANT_LISTS_STAT_LSTAT_1, &_GEANT_LISTS_STAT_LSTAT_2,
8971 &_GEANT_LISTS_STAT_LSTAT_3, &_GEANT_LISTS_STAT_LSTAT_4,
8972 &_GEANT_LISTS_STAT_LSTAT_5, &_GEANT_LISTS_STAT_LSTAT_6,
8973 &_GEANT_LISTS_STAT_LSTAT_7, &_GEANT_LISTS_STAT_LSTAT_8,
8974 &_GEANT_LISTS_STAT_LSTAT_9, &_GEANT_LISTS_STAT_LSTAT_10,
8975 &_GEANT_LISTS_STAT_LSTAT_11, &_GEANT_LISTS_STAT_LSTAT_12,
8976 &_GEANT_LISTS_STAT_LSTAT_13, &_GEANT_LISTS_STAT_LSTAT_14,
8977 &_GEANT_LISTS_STAT_LSTAT_15, &_GEANT_LISTS_STAT_LSTAT_16,
8978 &_GEANT_LISTS_STAT_LSTAT_17, &_GEANT_LISTS_STAT_LSTAT_18,
8979 &_GEANT_LISTS_STAT_LSTAT_19, &_GEANT_LISTS_STAT_LSTAT_20 };
8980 static char *_GEANT_LISTS_STAT_guidance[] = {
8981 "The command STAT is similar to the STAT data records. It can accept",
8982 "up to 20 4-character words. If the first argument is '.', the number",
8983 "of words is reset to 0 and all the words to four blanks." };
8984 static KmCommand _GEANT_LISTS_STAT = { &_GEANT_LISTS_RGET,
8985 "/GEANT/LISTS/STAT", "STAT", 0, 2, 20, 0, _GEANT_LISTS_STAT_parameters, 0, 0,
8986 gxlist_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
8987 _GEANT_LISTS_STAT_guidance, 0, (char**)0, (char*)0, (int*)0 };
8989 static KmParameter _GEANT_LISTS_PLOT_LPLOT_1 = { "LPLOT_1", 7, "user word",
8990 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8991 KmTYPE_CHAR, (void*)0 };
8992 static KmParameter _GEANT_LISTS_PLOT_LPLOT_2 = { "LPLOT_2", 7, "user word",
8993 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8994 KmTYPE_CHAR, (void*)0 };
8995 static KmParameter _GEANT_LISTS_PLOT_LPLOT_3 = { "LPLOT_3", 7, "user word",
8996 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8997 KmTYPE_CHAR, (void*)0 };
8998 static KmParameter _GEANT_LISTS_PLOT_LPLOT_4 = { "LPLOT_4", 7, "user word",
8999 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9000 KmTYPE_CHAR, (void*)0 };
9001 static KmParameter _GEANT_LISTS_PLOT_LPLOT_5 = { "LPLOT_5", 7, "user word",
9002 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9003 KmTYPE_CHAR, (void*)0 };
9004 static KmParameter _GEANT_LISTS_PLOT_LPLOT_6 = { "LPLOT_6", 7, "user word",
9005 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9006 KmTYPE_CHAR, (void*)0 };
9007 static KmParameter _GEANT_LISTS_PLOT_LPLOT_7 = { "LPLOT_7", 7, "user word",
9008 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9009 KmTYPE_CHAR, (void*)0 };
9010 static KmParameter _GEANT_LISTS_PLOT_LPLOT_8 = { "LPLOT_8", 7, "user word",
9011 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9012 KmTYPE_CHAR, (void*)0 };
9013 static KmParameter _GEANT_LISTS_PLOT_LPLOT_9 = { "LPLOT_9", 7, "user word",
9014 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9015 KmTYPE_CHAR, (void*)0 };
9016 static KmParameter _GEANT_LISTS_PLOT_LPLOT_10 = { "LPLOT_10", 8, "user word",
9017 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9018 KmTYPE_CHAR, (void*)0 };
9019 static KmParameter _GEANT_LISTS_PLOT_LPLOT_11 = { "LPLOT_11", 8, "user word",
9020 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9021 KmTYPE_CHAR, (void*)0 };
9022 static KmParameter _GEANT_LISTS_PLOT_LPLOT_12 = { "LPLOT_12", 8, "user word",
9023 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9024 KmTYPE_CHAR, (void*)0 };
9025 static KmParameter _GEANT_LISTS_PLOT_LPLOT_13 = { "LPLOT_13", 8, "user word",
9026 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9027 KmTYPE_CHAR, (void*)0 };
9028 static KmParameter _GEANT_LISTS_PLOT_LPLOT_14 = { "LPLOT_14", 8, "user word",
9029 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9030 KmTYPE_CHAR, (void*)0 };
9031 static KmParameter _GEANT_LISTS_PLOT_LPLOT_15 = { "LPLOT_15", 8, "user word",
9032 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9033 KmTYPE_CHAR, (void*)0 };
9034 static KmParameter _GEANT_LISTS_PLOT_LPLOT_16 = { "LPLOT_16", 8, "user word",
9035 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9036 KmTYPE_CHAR, (void*)0 };
9037 static KmParameter _GEANT_LISTS_PLOT_LPLOT_17 = { "LPLOT_17", 8, "user word",
9038 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9039 KmTYPE_CHAR, (void*)0 };
9040 static KmParameter _GEANT_LISTS_PLOT_LPLOT_18 = { "LPLOT_18", 8, "user word",
9041 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9042 KmTYPE_CHAR, (void*)0 };
9043 static KmParameter _GEANT_LISTS_PLOT_LPLOT_19 = { "LPLOT_19", 8, "user word",
9044 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9045 KmTYPE_CHAR, (void*)0 };
9046 static KmParameter _GEANT_LISTS_PLOT_LPLOT_20 = { "LPLOT_20", 8, "user word",
9047 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9048 KmTYPE_CHAR, (void*)0 };
9049 static KmParameter *_GEANT_LISTS_PLOT_parameters[] = {
9050 &_GEANT_LISTS_PLOT_LPLOT_1, &_GEANT_LISTS_PLOT_LPLOT_2,
9051 &_GEANT_LISTS_PLOT_LPLOT_3, &_GEANT_LISTS_PLOT_LPLOT_4,
9052 &_GEANT_LISTS_PLOT_LPLOT_5, &_GEANT_LISTS_PLOT_LPLOT_6,
9053 &_GEANT_LISTS_PLOT_LPLOT_7, &_GEANT_LISTS_PLOT_LPLOT_8,
9054 &_GEANT_LISTS_PLOT_LPLOT_9, &_GEANT_LISTS_PLOT_LPLOT_10,
9055 &_GEANT_LISTS_PLOT_LPLOT_11, &_GEANT_LISTS_PLOT_LPLOT_12,
9056 &_GEANT_LISTS_PLOT_LPLOT_13, &_GEANT_LISTS_PLOT_LPLOT_14,
9057 &_GEANT_LISTS_PLOT_LPLOT_15, &_GEANT_LISTS_PLOT_LPLOT_16,
9058 &_GEANT_LISTS_PLOT_LPLOT_17, &_GEANT_LISTS_PLOT_LPLOT_18,
9059 &_GEANT_LISTS_PLOT_LPLOT_19, &_GEANT_LISTS_PLOT_LPLOT_20 };
9060 static char *_GEANT_LISTS_PLOT_guidance[] = {
9061 "The command PLOT is similar to the PLOT data records. It can accept",
9062 "up to 20 4-character words. If the first argument is '.', the number",
9063 "of words is reset to 0 and all the words to four blanks." };
9064 static KmCommand _GEANT_LISTS_PLOT = { &_GEANT_LISTS_STAT,
9065 "/GEANT/LISTS/PLOT", "PLOT", 0, 2, 20, 0, _GEANT_LISTS_PLOT_parameters, 0, 0,
9066 gxlist_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
9067 _GEANT_LISTS_PLOT_guidance, 0, (char**)0, (char*)0, (int*)0 };
9069 static KmParameter _GEANT_LISTS_VIEW_LVIEW_1 = { "LVIEW_1", 7, "user word",
9070 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9071 KmTYPE_CHAR, (void*)0 };
9072 static KmParameter _GEANT_LISTS_VIEW_LVIEW_2 = { "LVIEW_2", 7, "user word",
9073 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9074 KmTYPE_CHAR, (void*)0 };
9075 static KmParameter _GEANT_LISTS_VIEW_LVIEW_3 = { "LVIEW_3", 7, "user word",
9076 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9077 KmTYPE_CHAR, (void*)0 };
9078 static KmParameter _GEANT_LISTS_VIEW_LVIEW_4 = { "LVIEW_4", 7, "user word",
9079 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9080 KmTYPE_CHAR, (void*)0 };
9081 static KmParameter _GEANT_LISTS_VIEW_LVIEW_5 = { "LVIEW_5", 7, "user word",
9082 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9083 KmTYPE_CHAR, (void*)0 };
9084 static KmParameter _GEANT_LISTS_VIEW_LVIEW_6 = { "LVIEW_6", 7, "user word",
9085 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9086 KmTYPE_CHAR, (void*)0 };
9087 static KmParameter _GEANT_LISTS_VIEW_LVIEW_7 = { "LVIEW_7", 7, "user word",
9088 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9089 KmTYPE_CHAR, (void*)0 };
9090 static KmParameter _GEANT_LISTS_VIEW_LVIEW_8 = { "LVIEW_8", 7, "user word",
9091 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9092 KmTYPE_CHAR, (void*)0 };
9093 static KmParameter _GEANT_LISTS_VIEW_LVIEW_9 = { "LVIEW_9", 7, "user word",
9094 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9095 KmTYPE_CHAR, (void*)0 };
9096 static KmParameter _GEANT_LISTS_VIEW_LVIEW_10 = { "LVIEW_10", 8, "user word",
9097 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9098 KmTYPE_CHAR, (void*)0 };
9099 static KmParameter _GEANT_LISTS_VIEW_LVIEW_11 = { "LVIEW_11", 8, "user word",
9100 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9101 KmTYPE_CHAR, (void*)0 };
9102 static KmParameter _GEANT_LISTS_VIEW_LVIEW_12 = { "LVIEW_12", 8, "user word",
9103 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9104 KmTYPE_CHAR, (void*)0 };
9105 static KmParameter _GEANT_LISTS_VIEW_LVIEW_13 = { "LVIEW_13", 8, "user word",
9106 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9107 KmTYPE_CHAR, (void*)0 };
9108 static KmParameter _GEANT_LISTS_VIEW_LVIEW_14 = { "LVIEW_14", 8, "user word",
9109 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9110 KmTYPE_CHAR, (void*)0 };
9111 static KmParameter _GEANT_LISTS_VIEW_LVIEW_15 = { "LVIEW_15", 8, "user word",
9112 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9113 KmTYPE_CHAR, (void*)0 };
9114 static KmParameter _GEANT_LISTS_VIEW_LVIEW_16 = { "LVIEW_16", 8, "user word",
9115 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9116 KmTYPE_CHAR, (void*)0 };
9117 static KmParameter _GEANT_LISTS_VIEW_LVIEW_17 = { "LVIEW_17", 8, "user word",
9118 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9119 KmTYPE_CHAR, (void*)0 };
9120 static KmParameter _GEANT_LISTS_VIEW_LVIEW_18 = { "LVIEW_18", 8, "user word",
9121 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9122 KmTYPE_CHAR, (void*)0 };
9123 static KmParameter _GEANT_LISTS_VIEW_LVIEW_19 = { "LVIEW_19", 8, "user word",
9124 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9125 KmTYPE_CHAR, (void*)0 };
9126 static KmParameter _GEANT_LISTS_VIEW_LVIEW_20 = { "LVIEW_20", 8, "user word",
9127 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9128 KmTYPE_CHAR, (void*)0 };
9129 static KmParameter *_GEANT_LISTS_VIEW_parameters[] = {
9130 &_GEANT_LISTS_VIEW_LVIEW_1, &_GEANT_LISTS_VIEW_LVIEW_2,
9131 &_GEANT_LISTS_VIEW_LVIEW_3, &_GEANT_LISTS_VIEW_LVIEW_4,
9132 &_GEANT_LISTS_VIEW_LVIEW_5, &_GEANT_LISTS_VIEW_LVIEW_6,
9133 &_GEANT_LISTS_VIEW_LVIEW_7, &_GEANT_LISTS_VIEW_LVIEW_8,
9134 &_GEANT_LISTS_VIEW_LVIEW_9, &_GEANT_LISTS_VIEW_LVIEW_10,
9135 &_GEANT_LISTS_VIEW_LVIEW_11, &_GEANT_LISTS_VIEW_LVIEW_12,
9136 &_GEANT_LISTS_VIEW_LVIEW_13, &_GEANT_LISTS_VIEW_LVIEW_14,
9137 &_GEANT_LISTS_VIEW_LVIEW_15, &_GEANT_LISTS_VIEW_LVIEW_16,
9138 &_GEANT_LISTS_VIEW_LVIEW_17, &_GEANT_LISTS_VIEW_LVIEW_18,
9139 &_GEANT_LISTS_VIEW_LVIEW_19, &_GEANT_LISTS_VIEW_LVIEW_20 };
9140 static char *_GEANT_LISTS_VIEW_guidance[] = {
9141 "The command VIEW is similar to the VIEW data records. It can accept",
9142 "up to 20 4-character words. If the first argument is '.', the number",
9143 "of words is reset to 0 and all the words to four blanks." };
9144 static KmCommand _GEANT_LISTS_VIEW = { &_GEANT_LISTS_PLOT,
9145 "/GEANT/LISTS/VIEW", "VIEW", 0, 2, 20, 0, _GEANT_LISTS_VIEW_parameters, 0, 0,
9146 gxlist_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
9147 _GEANT_LISTS_VIEW_guidance, 0, (char**)0, (char*)0, (int*)0 };
9149 static KmParameter _GEANT_LISTS_GEOM_LGEOM_1 = { "LGEOM_1", 7, "user word",
9150 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9151 KmTYPE_CHAR, (void*)0 };
9152 static KmParameter _GEANT_LISTS_GEOM_LGEOM_2 = { "LGEOM_2", 7, "user word",
9153 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9154 KmTYPE_CHAR, (void*)0 };
9155 static KmParameter _GEANT_LISTS_GEOM_LGEOM_3 = { "LGEOM_3", 7, "user word",
9156 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9157 KmTYPE_CHAR, (void*)0 };
9158 static KmParameter _GEANT_LISTS_GEOM_LGEOM_4 = { "LGEOM_4", 7, "user word",
9159 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9160 KmTYPE_CHAR, (void*)0 };
9161 static KmParameter _GEANT_LISTS_GEOM_LGEOM_5 = { "LGEOM_5", 7, "user word",
9162 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9163 KmTYPE_CHAR, (void*)0 };
9164 static KmParameter _GEANT_LISTS_GEOM_LGEOM_6 = { "LGEOM_6", 7, "user word",
9165 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9166 KmTYPE_CHAR, (void*)0 };
9167 static KmParameter _GEANT_LISTS_GEOM_LGEOM_7 = { "LGEOM_7", 7, "user word",
9168 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9169 KmTYPE_CHAR, (void*)0 };
9170 static KmParameter _GEANT_LISTS_GEOM_LGEOM_8 = { "LGEOM_8", 7, "user word",
9171 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9172 KmTYPE_CHAR, (void*)0 };
9173 static KmParameter _GEANT_LISTS_GEOM_LGEOM_9 = { "LGEOM_9", 7, "user word",
9174 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9175 KmTYPE_CHAR, (void*)0 };
9176 static KmParameter _GEANT_LISTS_GEOM_LGEOM_10 = { "LGEOM_10", 8, "user word",
9177 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9178 KmTYPE_CHAR, (void*)0 };
9179 static KmParameter _GEANT_LISTS_GEOM_LGEOM_11 = { "LGEOM_11", 8, "user word",
9180 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9181 KmTYPE_CHAR, (void*)0 };
9182 static KmParameter _GEANT_LISTS_GEOM_LGEOM_12 = { "LGEOM_12", 8, "user word",
9183 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9184 KmTYPE_CHAR, (void*)0 };
9185 static KmParameter _GEANT_LISTS_GEOM_LGEOM_13 = { "LGEOM_13", 8, "user word",
9186 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9187 KmTYPE_CHAR, (void*)0 };
9188 static KmParameter _GEANT_LISTS_GEOM_LGEOM_14 = { "LGEOM_14", 8, "user word",
9189 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9190 KmTYPE_CHAR, (void*)0 };
9191 static KmParameter _GEANT_LISTS_GEOM_LGEOM_15 = { "LGEOM_15", 8, "user word",
9192 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9193 KmTYPE_CHAR, (void*)0 };
9194 static KmParameter _GEANT_LISTS_GEOM_LGEOM_16 = { "LGEOM_16", 8, "user word",
9195 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9196 KmTYPE_CHAR, (void*)0 };
9197 static KmParameter _GEANT_LISTS_GEOM_LGEOM_17 = { "LGEOM_17", 8, "user word",
9198 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9199 KmTYPE_CHAR, (void*)0 };
9200 static KmParameter _GEANT_LISTS_GEOM_LGEOM_18 = { "LGEOM_18", 8, "user word",
9201 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9202 KmTYPE_CHAR, (void*)0 };
9203 static KmParameter _GEANT_LISTS_GEOM_LGEOM_19 = { "LGEOM_19", 8, "user word",
9204 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9205 KmTYPE_CHAR, (void*)0 };
9206 static KmParameter _GEANT_LISTS_GEOM_LGEOM_20 = { "LGEOM_20", 8, "user word",
9207 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9208 KmTYPE_CHAR, (void*)0 };
9209 static KmParameter *_GEANT_LISTS_GEOM_parameters[] = {
9210 &_GEANT_LISTS_GEOM_LGEOM_1, &_GEANT_LISTS_GEOM_LGEOM_2,
9211 &_GEANT_LISTS_GEOM_LGEOM_3, &_GEANT_LISTS_GEOM_LGEOM_4,
9212 &_GEANT_LISTS_GEOM_LGEOM_5, &_GEANT_LISTS_GEOM_LGEOM_6,
9213 &_GEANT_LISTS_GEOM_LGEOM_7, &_GEANT_LISTS_GEOM_LGEOM_8,
9214 &_GEANT_LISTS_GEOM_LGEOM_9, &_GEANT_LISTS_GEOM_LGEOM_10,
9215 &_GEANT_LISTS_GEOM_LGEOM_11, &_GEANT_LISTS_GEOM_LGEOM_12,
9216 &_GEANT_LISTS_GEOM_LGEOM_13, &_GEANT_LISTS_GEOM_LGEOM_14,
9217 &_GEANT_LISTS_GEOM_LGEOM_15, &_GEANT_LISTS_GEOM_LGEOM_16,
9218 &_GEANT_LISTS_GEOM_LGEOM_17, &_GEANT_LISTS_GEOM_LGEOM_18,
9219 &_GEANT_LISTS_GEOM_LGEOM_19, &_GEANT_LISTS_GEOM_LGEOM_20 };
9220 static char *_GEANT_LISTS_GEOM_guidance[] = {
9221 "The command GEOM is similar to the GEOM data records. It can accept",
9222 "up to 20 4-character words. If the first argument is '.', the number",
9223 "of words is reset to 0 and all the words to four blanks." };
9224 static KmCommand _GEANT_LISTS_GEOM = { &_GEANT_LISTS_VIEW,
9225 "/GEANT/LISTS/GEOM", "GEOM", 0, 2, 20, 0, _GEANT_LISTS_GEOM_parameters, 0, 0,
9226 gxlist_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
9227 _GEANT_LISTS_GEOM_guidance, 0, (char**)0, (char*)0, (int*)0 };
9229 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_1 = { "LPRIN_1", 7, "user word",
9230 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9231 KmTYPE_CHAR, (void*)0 };
9232 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_2 = { "LPRIN_2", 7, "user word",
9233 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9234 KmTYPE_CHAR, (void*)0 };
9235 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_3 = { "LPRIN_3", 7, "user word",
9236 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9237 KmTYPE_CHAR, (void*)0 };
9238 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_4 = { "LPRIN_4", 7, "user word",
9239 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9240 KmTYPE_CHAR, (void*)0 };
9241 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_5 = { "LPRIN_5", 7, "user word",
9242 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9243 KmTYPE_CHAR, (void*)0 };
9244 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_6 = { "LPRIN_6", 7, "user word",
9245 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9246 KmTYPE_CHAR, (void*)0 };
9247 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_7 = { "LPRIN_7", 7, "user word",
9248 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9249 KmTYPE_CHAR, (void*)0 };
9250 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_8 = { "LPRIN_8", 7, "user word",
9251 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9252 KmTYPE_CHAR, (void*)0 };
9253 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_9 = { "LPRIN_9", 7, "user word",
9254 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9255 KmTYPE_CHAR, (void*)0 };
9256 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_10 = { "LPRIN_10", 8, "user word",
9257 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9258 KmTYPE_CHAR, (void*)0 };
9259 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_11 = { "LPRIN_11", 8, "user word",
9260 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9261 KmTYPE_CHAR, (void*)0 };
9262 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_12 = { "LPRIN_12", 8, "user word",
9263 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9264 KmTYPE_CHAR, (void*)0 };
9265 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_13 = { "LPRIN_13", 8, "user word",
9266 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9267 KmTYPE_CHAR, (void*)0 };
9268 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_14 = { "LPRIN_14", 8, "user word",
9269 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9270 KmTYPE_CHAR, (void*)0 };
9271 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_15 = { "LPRIN_15", 8, "user word",
9272 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9273 KmTYPE_CHAR, (void*)0 };
9274 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_16 = { "LPRIN_16", 8, "user word",
9275 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9276 KmTYPE_CHAR, (void*)0 };
9277 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_17 = { "LPRIN_17", 8, "user word",
9278 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9279 KmTYPE_CHAR, (void*)0 };
9280 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_18 = { "LPRIN_18", 8, "user word",
9281 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9282 KmTYPE_CHAR, (void*)0 };
9283 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_19 = { "LPRIN_19", 8, "user word",
9284 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9285 KmTYPE_CHAR, (void*)0 };
9286 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_20 = { "LPRIN_20", 8, "user word",
9287 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9288 KmTYPE_CHAR, (void*)0 };
9289 static KmParameter *_GEANT_LISTS_LPRIN_parameters[] = {
9290 &_GEANT_LISTS_LPRIN_LPRIN_1, &_GEANT_LISTS_LPRIN_LPRIN_2,
9291 &_GEANT_LISTS_LPRIN_LPRIN_3, &_GEANT_LISTS_LPRIN_LPRIN_4,
9292 &_GEANT_LISTS_LPRIN_LPRIN_5, &_GEANT_LISTS_LPRIN_LPRIN_6,
9293 &_GEANT_LISTS_LPRIN_LPRIN_7, &_GEANT_LISTS_LPRIN_LPRIN_8,
9294 &_GEANT_LISTS_LPRIN_LPRIN_9, &_GEANT_LISTS_LPRIN_LPRIN_10,
9295 &_GEANT_LISTS_LPRIN_LPRIN_11, &_GEANT_LISTS_LPRIN_LPRIN_12,
9296 &_GEANT_LISTS_LPRIN_LPRIN_13, &_GEANT_LISTS_LPRIN_LPRIN_14,
9297 &_GEANT_LISTS_LPRIN_LPRIN_15, &_GEANT_LISTS_LPRIN_LPRIN_16,
9298 &_GEANT_LISTS_LPRIN_LPRIN_17, &_GEANT_LISTS_LPRIN_LPRIN_18,
9299 &_GEANT_LISTS_LPRIN_LPRIN_19, &_GEANT_LISTS_LPRIN_LPRIN_20 };
9300 static char *_GEANT_LISTS_LPRIN_guidance[] = {
9301 "The command PRIN is similar to the PRIN data records. It can accept",
9302 "up to 20 4-character words. If the first argument is '.', the number",
9303 "of words is reset to 0 and all the words to four blanks." };
9304 static KmCommand _GEANT_LISTS_LPRIN = { &_GEANT_LISTS_GEOM,
9305 "/GEANT/LISTS/LPRIN", "LPRIN", 0, 2, 20, 0, _GEANT_LISTS_LPRIN_parameters, 0,
9306 0, gxlist_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
9307 _GEANT_LISTS_LPRIN_guidance, 0, (char**)0, (char*)0, (int*)0 };
9309 static KmParameter _GEANT_LISTS_SETS_LSETS_1 = { "LSETS_1", 7, "user word",
9310 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9311 KmTYPE_CHAR, (void*)0 };
9312 static KmParameter _GEANT_LISTS_SETS_LSETS_2 = { "LSETS_2", 7, "user word",
9313 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9314 KmTYPE_CHAR, (void*)0 };
9315 static KmParameter _GEANT_LISTS_SETS_LSETS_3 = { "LSETS_3", 7, "user word",
9316 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9317 KmTYPE_CHAR, (void*)0 };
9318 static KmParameter _GEANT_LISTS_SETS_LSETS_4 = { "LSETS_4", 7, "user word",
9319 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9320 KmTYPE_CHAR, (void*)0 };
9321 static KmParameter _GEANT_LISTS_SETS_LSETS_5 = { "LSETS_5", 7, "user word",
9322 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9323 KmTYPE_CHAR, (void*)0 };
9324 static KmParameter _GEANT_LISTS_SETS_LSETS_6 = { "LSETS_6", 7, "user word",
9325 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9326 KmTYPE_CHAR, (void*)0 };
9327 static KmParameter _GEANT_LISTS_SETS_LSETS_7 = { "LSETS_7", 7, "user word",
9328 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9329 KmTYPE_CHAR, (void*)0 };
9330 static KmParameter _GEANT_LISTS_SETS_LSETS_8 = { "LSETS_8", 7, "user word",
9331 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9332 KmTYPE_CHAR, (void*)0 };
9333 static KmParameter _GEANT_LISTS_SETS_LSETS_9 = { "LSETS_9", 7, "user word",
9334 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9335 KmTYPE_CHAR, (void*)0 };
9336 static KmParameter _GEANT_LISTS_SETS_LSETS_10 = { "LSETS_10", 8, "user word",
9337 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9338 KmTYPE_CHAR, (void*)0 };
9339 static KmParameter _GEANT_LISTS_SETS_LSETS_11 = { "LSETS_11", 8, "user word",
9340 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9341 KmTYPE_CHAR, (void*)0 };
9342 static KmParameter _GEANT_LISTS_SETS_LSETS_12 = { "LSETS_12", 8, "user word",
9343 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9344 KmTYPE_CHAR, (void*)0 };
9345 static KmParameter _GEANT_LISTS_SETS_LSETS_13 = { "LSETS_13", 8, "user word",
9346 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9347 KmTYPE_CHAR, (void*)0 };
9348 static KmParameter _GEANT_LISTS_SETS_LSETS_14 = { "LSETS_14", 8, "user word",
9349 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9350 KmTYPE_CHAR, (void*)0 };
9351 static KmParameter _GEANT_LISTS_SETS_LSETS_15 = { "LSETS_15", 8, "user word",
9352 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9353 KmTYPE_CHAR, (void*)0 };
9354 static KmParameter _GEANT_LISTS_SETS_LSETS_16 = { "LSETS_16", 8, "user word",
9355 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9356 KmTYPE_CHAR, (void*)0 };
9357 static KmParameter _GEANT_LISTS_SETS_LSETS_17 = { "LSETS_17", 8, "user word",
9358 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9359 KmTYPE_CHAR, (void*)0 };
9360 static KmParameter _GEANT_LISTS_SETS_LSETS_18 = { "LSETS_18", 8, "user word",
9361 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9362 KmTYPE_CHAR, (void*)0 };
9363 static KmParameter _GEANT_LISTS_SETS_LSETS_19 = { "LSETS_19", 8, "user word",
9364 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9365 KmTYPE_CHAR, (void*)0 };
9366 static KmParameter _GEANT_LISTS_SETS_LSETS_20 = { "LSETS_20", 8, "user word",
9367 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9368 KmTYPE_CHAR, (void*)0 };
9369 static KmParameter *_GEANT_LISTS_SETS_parameters[] = {
9370 &_GEANT_LISTS_SETS_LSETS_1, &_GEANT_LISTS_SETS_LSETS_2,
9371 &_GEANT_LISTS_SETS_LSETS_3, &_GEANT_LISTS_SETS_LSETS_4,
9372 &_GEANT_LISTS_SETS_LSETS_5, &_GEANT_LISTS_SETS_LSETS_6,
9373 &_GEANT_LISTS_SETS_LSETS_7, &_GEANT_LISTS_SETS_LSETS_8,
9374 &_GEANT_LISTS_SETS_LSETS_9, &_GEANT_LISTS_SETS_LSETS_10,
9375 &_GEANT_LISTS_SETS_LSETS_11, &_GEANT_LISTS_SETS_LSETS_12,
9376 &_GEANT_LISTS_SETS_LSETS_13, &_GEANT_LISTS_SETS_LSETS_14,
9377 &_GEANT_LISTS_SETS_LSETS_15, &_GEANT_LISTS_SETS_LSETS_16,
9378 &_GEANT_LISTS_SETS_LSETS_17, &_GEANT_LISTS_SETS_LSETS_18,
9379 &_GEANT_LISTS_SETS_LSETS_19, &_GEANT_LISTS_SETS_LSETS_20 };
9380 static char *_GEANT_LISTS_SETS_guidance[] = {
9381 "The command SETS is similar to the SETS data records. It can accept",
9382 "up to 20 4-character words. If the first argument is '.', the number",
9383 "of words is reset to 0 and all the words to four blanks." };
9384 static KmCommand _GEANT_LISTS_SETS = { &_GEANT_LISTS_LPRIN,
9385 "/GEANT/LISTS/SETS", "SETS", 0, 2, 20, 0, _GEANT_LISTS_SETS_parameters, 0, 0,
9386 gxlist_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
9387 _GEANT_LISTS_SETS_guidance, 0, (char**)0, (char*)0, (int*)0 };
9389 static KmParameter _GEANT_LISTS_SAVE_LSAVE_1 = { "LSAVE_1", 7, "user word",
9390 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9391 KmTYPE_CHAR, (void*)0 };
9392 static KmParameter _GEANT_LISTS_SAVE_LSAVE_2 = { "LSAVE_2", 7, "user word",
9393 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9394 KmTYPE_CHAR, (void*)0 };
9395 static KmParameter _GEANT_LISTS_SAVE_LSAVE_3 = { "LSAVE_3", 7, "user word",
9396 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9397 KmTYPE_CHAR, (void*)0 };
9398 static KmParameter _GEANT_LISTS_SAVE_LSAVE_4 = { "LSAVE_4", 7, "user word",
9399 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9400 KmTYPE_CHAR, (void*)0 };
9401 static KmParameter _GEANT_LISTS_SAVE_LSAVE_5 = { "LSAVE_5", 7, "user word",
9402 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9403 KmTYPE_CHAR, (void*)0 };
9404 static KmParameter _GEANT_LISTS_SAVE_LSAVE_6 = { "LSAVE_6", 7, "user word",
9405 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9406 KmTYPE_CHAR, (void*)0 };
9407 static KmParameter _GEANT_LISTS_SAVE_LSAVE_7 = { "LSAVE_7", 7, "user word",
9408 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9409 KmTYPE_CHAR, (void*)0 };
9410 static KmParameter _GEANT_LISTS_SAVE_LSAVE_8 = { "LSAVE_8", 7, "user word",
9411 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9412 KmTYPE_CHAR, (void*)0 };
9413 static KmParameter _GEANT_LISTS_SAVE_LSAVE_9 = { "LSAVE_9", 7, "user word",
9414 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9415 KmTYPE_CHAR, (void*)0 };
9416 static KmParameter _GEANT_LISTS_SAVE_LSAVE_10 = { "LSAVE_10", 8, "user word",
9417 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9418 KmTYPE_CHAR, (void*)0 };
9419 static KmParameter _GEANT_LISTS_SAVE_LSAVE_11 = { "LSAVE_11", 8, "user word",
9420 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9421 KmTYPE_CHAR, (void*)0 };
9422 static KmParameter _GEANT_LISTS_SAVE_LSAVE_12 = { "LSAVE_12", 8, "user word",
9423 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9424 KmTYPE_CHAR, (void*)0 };
9425 static KmParameter _GEANT_LISTS_SAVE_LSAVE_13 = { "LSAVE_13", 8, "user word",
9426 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9427 KmTYPE_CHAR, (void*)0 };
9428 static KmParameter _GEANT_LISTS_SAVE_LSAVE_14 = { "LSAVE_14", 8, "user word",
9429 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9430 KmTYPE_CHAR, (void*)0 };
9431 static KmParameter _GEANT_LISTS_SAVE_LSAVE_15 = { "LSAVE_15", 8, "user word",
9432 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9433 KmTYPE_CHAR, (void*)0 };
9434 static KmParameter _GEANT_LISTS_SAVE_LSAVE_16 = { "LSAVE_16", 8, "user word",
9435 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9436 KmTYPE_CHAR, (void*)0 };
9437 static KmParameter _GEANT_LISTS_SAVE_LSAVE_17 = { "LSAVE_17", 8, "user word",
9438 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9439 KmTYPE_CHAR, (void*)0 };
9440 static KmParameter _GEANT_LISTS_SAVE_LSAVE_18 = { "LSAVE_18", 8, "user word",
9441 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9442 KmTYPE_CHAR, (void*)0 };
9443 static KmParameter _GEANT_LISTS_SAVE_LSAVE_19 = { "LSAVE_19", 8, "user word",
9444 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9445 KmTYPE_CHAR, (void*)0 };
9446 static KmParameter _GEANT_LISTS_SAVE_LSAVE_20 = { "LSAVE_20", 8, "user word",
9447 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9448 KmTYPE_CHAR, (void*)0 };
9449 static KmParameter *_GEANT_LISTS_SAVE_parameters[] = {
9450 &_GEANT_LISTS_SAVE_LSAVE_1, &_GEANT_LISTS_SAVE_LSAVE_2,
9451 &_GEANT_LISTS_SAVE_LSAVE_3, &_GEANT_LISTS_SAVE_LSAVE_4,
9452 &_GEANT_LISTS_SAVE_LSAVE_5, &_GEANT_LISTS_SAVE_LSAVE_6,
9453 &_GEANT_LISTS_SAVE_LSAVE_7, &_GEANT_LISTS_SAVE_LSAVE_8,
9454 &_GEANT_LISTS_SAVE_LSAVE_9, &_GEANT_LISTS_SAVE_LSAVE_10,
9455 &_GEANT_LISTS_SAVE_LSAVE_11, &_GEANT_LISTS_SAVE_LSAVE_12,
9456 &_GEANT_LISTS_SAVE_LSAVE_13, &_GEANT_LISTS_SAVE_LSAVE_14,
9457 &_GEANT_LISTS_SAVE_LSAVE_15, &_GEANT_LISTS_SAVE_LSAVE_16,
9458 &_GEANT_LISTS_SAVE_LSAVE_17, &_GEANT_LISTS_SAVE_LSAVE_18,
9459 &_GEANT_LISTS_SAVE_LSAVE_19, &_GEANT_LISTS_SAVE_LSAVE_20 };
9460 static char *_GEANT_LISTS_SAVE_guidance[] = {
9461 "The command SAVE is similar to the SAVE data records. It can accept",
9462 "up to 20 4-character words. If the first argument is '.', the number",
9463 "of words is reset to 0 and all the words to four blanks." };
9464 static KmCommand _GEANT_LISTS_SAVE = { &_GEANT_LISTS_SETS,
9465 "/GEANT/LISTS/SAVE", "SAVE", 0, 2, 20, 0, _GEANT_LISTS_SAVE_parameters, 0, 0,
9466 gxlist_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
9467 _GEANT_LISTS_SAVE_guidance, 0, (char**)0, (char*)0, (int*)0 };
9469 static KmParameter _GEANT_LISTS_GET_LGET_1 = { "LGET_1", 6, "user word",
9470 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9471 KmTYPE_CHAR, (void*)0 };
9472 static KmParameter _GEANT_LISTS_GET_LGET_2 = { "LGET_2", 6, "user word",
9473 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9474 KmTYPE_CHAR, (void*)0 };
9475 static KmParameter _GEANT_LISTS_GET_LGET_3 = { "LGET_3", 6, "user word",
9476 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9477 KmTYPE_CHAR, (void*)0 };
9478 static KmParameter _GEANT_LISTS_GET_LGET_4 = { "LGET_4", 6, "user word",
9479 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9480 KmTYPE_CHAR, (void*)0 };
9481 static KmParameter _GEANT_LISTS_GET_LGET_5 = { "LGET_5", 6, "user word",
9482 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9483 KmTYPE_CHAR, (void*)0 };
9484 static KmParameter _GEANT_LISTS_GET_LGET_6 = { "LGET_6", 6, "user word",
9485 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9486 KmTYPE_CHAR, (void*)0 };
9487 static KmParameter _GEANT_LISTS_GET_LGET_7 = { "LGET_7", 6, "user word",
9488 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9489 KmTYPE_CHAR, (void*)0 };
9490 static KmParameter _GEANT_LISTS_GET_LGET_8 = { "LGET_8", 6, "user word",
9491 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9492 KmTYPE_CHAR, (void*)0 };
9493 static KmParameter _GEANT_LISTS_GET_LGET_9 = { "LGET_9", 6, "user word",
9494 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9495 KmTYPE_CHAR, (void*)0 };
9496 static KmParameter _GEANT_LISTS_GET_LGET_10 = { "LGET_10", 7, "user word",
9497 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9498 KmTYPE_CHAR, (void*)0 };
9499 static KmParameter _GEANT_LISTS_GET_LGET_11 = { "LGET_11", 7, "user word",
9500 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9501 KmTYPE_CHAR, (void*)0 };
9502 static KmParameter _GEANT_LISTS_GET_LGET_12 = { "LGET_12", 7, "user word",
9503 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9504 KmTYPE_CHAR, (void*)0 };
9505 static KmParameter _GEANT_LISTS_GET_LGET_13 = { "LGET_13", 7, "user word",
9506 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9507 KmTYPE_CHAR, (void*)0 };
9508 static KmParameter _GEANT_LISTS_GET_LGET_14 = { "LGET_14", 7, "user word",
9509 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9510 KmTYPE_CHAR, (void*)0 };
9511 static KmParameter _GEANT_LISTS_GET_LGET_15 = { "LGET_15", 7, "user word",
9512 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9513 KmTYPE_CHAR, (void*)0 };
9514 static KmParameter _GEANT_LISTS_GET_LGET_16 = { "LGET_16", 7, "user word",
9515 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9516 KmTYPE_CHAR, (void*)0 };
9517 static KmParameter _GEANT_LISTS_GET_LGET_17 = { "LGET_17", 7, "user word",
9518 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9519 KmTYPE_CHAR, (void*)0 };
9520 static KmParameter _GEANT_LISTS_GET_LGET_18 = { "LGET_18", 7, "user word",
9521 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9522 KmTYPE_CHAR, (void*)0 };
9523 static KmParameter _GEANT_LISTS_GET_LGET_19 = { "LGET_19", 7, "user word",
9524 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9525 KmTYPE_CHAR, (void*)0 };
9526 static KmParameter _GEANT_LISTS_GET_LGET_20 = { "LGET_20", 7, "user word",
9527 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9528 KmTYPE_CHAR, (void*)0 };
9529 static KmParameter *_GEANT_LISTS_GET_parameters[] = {
9530 &_GEANT_LISTS_GET_LGET_1, &_GEANT_LISTS_GET_LGET_2, &_GEANT_LISTS_GET_LGET_3,
9531 &_GEANT_LISTS_GET_LGET_4, &_GEANT_LISTS_GET_LGET_5, &_GEANT_LISTS_GET_LGET_6,
9532 &_GEANT_LISTS_GET_LGET_7, &_GEANT_LISTS_GET_LGET_8, &_GEANT_LISTS_GET_LGET_9,
9533 &_GEANT_LISTS_GET_LGET_10, &_GEANT_LISTS_GET_LGET_11,
9534 &_GEANT_LISTS_GET_LGET_12, &_GEANT_LISTS_GET_LGET_13,
9535 &_GEANT_LISTS_GET_LGET_14, &_GEANT_LISTS_GET_LGET_15,
9536 &_GEANT_LISTS_GET_LGET_16, &_GEANT_LISTS_GET_LGET_17,
9537 &_GEANT_LISTS_GET_LGET_18, &_GEANT_LISTS_GET_LGET_19,
9538 &_GEANT_LISTS_GET_LGET_20 };
9539 static char *_GEANT_LISTS_GET_guidance[] = {
9540 "The command GET is similar to the GET data records. It can accept",
9541 "up to 20 4-character words. If the first argument is '.', the number",
9542 "of words is reset to 0 and all the words to four blanks." };
9543 static KmCommand _GEANT_LISTS_GET = { &_GEANT_LISTS_SAVE, "/GEANT/LISTS/GET",
9544 "GET", 0, 2, 20, 0, _GEANT_LISTS_GET_parameters, 0, 0, gxlist_, (IntFunc*)0,
9545 (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_LISTS_GET_guidance, 0, (char**)0,
9546 (char*)0, (int*)0 };
9548 static KmParameter _GEANT_LISTS_HSTA_LHSTA_1 = { "LHSTA_1", 7, "user word",
9549 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9550 KmTYPE_CHAR, (void*)0 };
9551 static KmParameter _GEANT_LISTS_HSTA_LHSTA_2 = { "LHSTA_2", 7, "user word",
9552 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9553 KmTYPE_CHAR, (void*)0 };
9554 static KmParameter _GEANT_LISTS_HSTA_LHSTA_3 = { "LHSTA_3", 7, "user word",
9555 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9556 KmTYPE_CHAR, (void*)0 };
9557 static KmParameter _GEANT_LISTS_HSTA_LHSTA_4 = { "LHSTA_4", 7, "user word",
9558 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9559 KmTYPE_CHAR, (void*)0 };
9560 static KmParameter _GEANT_LISTS_HSTA_LHSTA_5 = { "LHSTA_5", 7, "user word",
9561 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9562 KmTYPE_CHAR, (void*)0 };
9563 static KmParameter _GEANT_LISTS_HSTA_LHSTA_6 = { "LHSTA_6", 7, "user word",
9564 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9565 KmTYPE_CHAR, (void*)0 };
9566 static KmParameter _GEANT_LISTS_HSTA_LHSTA_7 = { "LHSTA_7", 7, "user word",
9567 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9568 KmTYPE_CHAR, (void*)0 };
9569 static KmParameter _GEANT_LISTS_HSTA_LHSTA_8 = { "LHSTA_8", 7, "user word",
9570 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9571 KmTYPE_CHAR, (void*)0 };
9572 static KmParameter _GEANT_LISTS_HSTA_LHSTA_9 = { "LHSTA_9", 7, "user word",
9573 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9574 KmTYPE_CHAR, (void*)0 };
9575 static KmParameter _GEANT_LISTS_HSTA_LHSTA_10 = { "LHSTA_10", 8, "user word",
9576 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9577 KmTYPE_CHAR, (void*)0 };
9578 static KmParameter _GEANT_LISTS_HSTA_LHSTA_11 = { "LHSTA_11", 8, "user word",
9579 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9580 KmTYPE_CHAR, (void*)0 };
9581 static KmParameter _GEANT_LISTS_HSTA_LHSTA_12 = { "LHSTA_12", 8, "user word",
9582 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9583 KmTYPE_CHAR, (void*)0 };
9584 static KmParameter _GEANT_LISTS_HSTA_LHSTA_13 = { "LHSTA_13", 8, "user word",
9585 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9586 KmTYPE_CHAR, (void*)0 };
9587 static KmParameter _GEANT_LISTS_HSTA_LHSTA_14 = { "LHSTA_14", 8, "user word",
9588 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9589 KmTYPE_CHAR, (void*)0 };
9590 static KmParameter _GEANT_LISTS_HSTA_LHSTA_15 = { "LHSTA_15", 8, "user word",
9591 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9592 KmTYPE_CHAR, (void*)0 };
9593 static KmParameter _GEANT_LISTS_HSTA_LHSTA_16 = { "LHSTA_16", 8, "user word",
9594 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9595 KmTYPE_CHAR, (void*)0 };
9596 static KmParameter _GEANT_LISTS_HSTA_LHSTA_17 = { "LHSTA_17", 8, "user word",
9597 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9598 KmTYPE_CHAR, (void*)0 };
9599 static KmParameter _GEANT_LISTS_HSTA_LHSTA_18 = { "LHSTA_18", 8, "user word",
9600 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9601 KmTYPE_CHAR, (void*)0 };
9602 static KmParameter _GEANT_LISTS_HSTA_LHSTA_19 = { "LHSTA_19", 8, "user word",
9603 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9604 KmTYPE_CHAR, (void*)0 };
9605 static KmParameter _GEANT_LISTS_HSTA_LHSTA_20 = { "LHSTA_20", 8, "user word",
9606 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9607 KmTYPE_CHAR, (void*)0 };
9608 static KmParameter *_GEANT_LISTS_HSTA_parameters[] = {
9609 &_GEANT_LISTS_HSTA_LHSTA_1, &_GEANT_LISTS_HSTA_LHSTA_2,
9610 &_GEANT_LISTS_HSTA_LHSTA_3, &_GEANT_LISTS_HSTA_LHSTA_4,
9611 &_GEANT_LISTS_HSTA_LHSTA_5, &_GEANT_LISTS_HSTA_LHSTA_6,
9612 &_GEANT_LISTS_HSTA_LHSTA_7, &_GEANT_LISTS_HSTA_LHSTA_8,
9613 &_GEANT_LISTS_HSTA_LHSTA_9, &_GEANT_LISTS_HSTA_LHSTA_10,
9614 &_GEANT_LISTS_HSTA_LHSTA_11, &_GEANT_LISTS_HSTA_LHSTA_12,
9615 &_GEANT_LISTS_HSTA_LHSTA_13, &_GEANT_LISTS_HSTA_LHSTA_14,
9616 &_GEANT_LISTS_HSTA_LHSTA_15, &_GEANT_LISTS_HSTA_LHSTA_16,
9617 &_GEANT_LISTS_HSTA_LHSTA_17, &_GEANT_LISTS_HSTA_LHSTA_18,
9618 &_GEANT_LISTS_HSTA_LHSTA_19, &_GEANT_LISTS_HSTA_LHSTA_20 };
9619 static char *_GEANT_LISTS_HSTA_guidance[] = {
9620 "The command HSTA is similar to the HSTA data records. It can accept",
9621 "up to 20 4-character words. If the first argument is '.', the number",
9622 "of words is reset to 0 and all the words to four blanks." };
9623 static KmCommand _GEANT_LISTS_HSTA = { &_GEANT_LISTS_GET, "/GEANT/LISTS/HSTA",
9624 "HSTA", 0, 2, 20, 0, _GEANT_LISTS_HSTA_parameters, 0, 0, gxlist_,
9625 (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_LISTS_HSTA_guidance, 0,
9626 (char**)0, (char*)0, (int*)0 };
9628 static KmMenu _GEANT_LISTS = { (KmMenu*)0, (KmMenu*)0, "/GEANT/LISTS",
9629 "LISTS", 2, &_GEANT_LISTS_HSTA, 0, (char**)0 };
9631 static KmMenu _GEANT = { (KmMenu*)0, &_GEANT_LISTS, "/GEANT", "GEANT", 1,
9632 (KmCommand*)0, 0, (char**)0 };
9634 klnkmenu( &_GEANT, 921023 );
9639 # define gkgeom_ gkgeom
9640 # define gxgeom_ gxgeom
9644 # define gkgeom_ GKGEOM
9645 # define gxgeom_ GXGEOM
9649 # pragma linkage(GKGEOM,FORTRAN)
9650 # pragma linkage(GXGEOM,FORTRAN)
9653 extern void gkgeom_();
9654 extern void gxgeom_();
9659 static KmParInt _GEANT_GEOMETRY_WEUCLID_LUN_type = { "1", "100", "1",
9661 static KmParameter _GEANT_GEOMETRY_WEUCLID_LUN = { "LUN", 3,
9662 "Logical unit of the file to be written", (char*)0, (char*)0, 4, 0,
9663 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
9664 &_GEANT_GEOMETRY_WEUCLID_LUN_type };
9665 static KmParameter _GEANT_GEOMETRY_WEUCLID_FNAME = { "FNAME", 5,
9666 "Name of the EUCLID file to be written", (char*)0, (char*)0, 20, 0,
9667 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
9668 static KmParameter _GEANT_GEOMETRY_WEUCLID_TOPVOL = { "TOPVOL", 6,
9669 "Volume name of the starting node", (char*)0, (char*)0, 20, 0, (char**)0, 0,
9670 (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
9671 static KmParInt _GEANT_GEOMETRY_WEUCLID_NUMBER_type = { (char*)0, (char*)0,
9672 (char*)0, (char*)0, 0 };
9673 static KmParameter _GEANT_GEOMETRY_WEUCLID_NUMBER = { "NUMBER", 6,
9674 "Copy number of TOPVOL (relevant for GSPOSP)", "1", (char*)0, 8, 0,
9675 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
9676 &_GEANT_GEOMETRY_WEUCLID_NUMBER_type };
9677 static KmParInt _GEANT_GEOMETRY_WEUCLID_NLEVEL_type = { (char*)0, (char*)0,
9678 (char*)0, (char*)0, 0 };
9679 static KmParameter _GEANT_GEOMETRY_WEUCLID_NLEVEL = { "NLEVEL", 6,
9680 "Number of levels in the tree structure", "15", (char*)0, 8, 0, (char**)0, 0,
9681 (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_WEUCLID_NLEVEL_type };
9682 static KmParameter *_GEANT_GEOMETRY_WEUCLID_parameters[] = {
9683 &_GEANT_GEOMETRY_WEUCLID_LUN, &_GEANT_GEOMETRY_WEUCLID_FNAME,
9684 &_GEANT_GEOMETRY_WEUCLID_TOPVOL, &_GEANT_GEOMETRY_WEUCLID_NUMBER,
9685 &_GEANT_GEOMETRY_WEUCLID_NLEVEL };
9686 static char *_GEANT_GEOMETRY_WEUCLID_guidance[] = {
9687 " CALL GWEUCL(LUN,FNAME)",
9688 "Calls the routine to write the current GEANT geometry into an ASCII file",
9689 "in EUCLID compatible format." };
9690 static KmCommand _GEANT_GEOMETRY_WEUCLID = { (KmCommand*)0,
9691 "/GEANT/GEOMETRY/WEUCLID", "WEUCLID", 0, 2, 5, 3,
9692 _GEANT_GEOMETRY_WEUCLID_parameters, 0, 0, gxgeom_, (IntFunc*)0,
9693 (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_GEOMETRY_WEUCLID_guidance, 0,
9694 (char**)0, (char*)0, (int*)0 };
9696 static KmParInt _GEANT_GEOMETRY_REUCLID_LUN_type = { "1", "100", "1",
9698 static KmParameter _GEANT_GEOMETRY_REUCLID_LUN = { "LUN", 3,
9699 "Logical unit of the file to be read", (char*)0, (char*)0, 4, 0, (char**)0,
9700 0, (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_REUCLID_LUN_type };
9701 static KmParameter _GEANT_GEOMETRY_REUCLID_FNAME = { "FNAME", 5,
9702 "Name of the EUCLID file to be read", (char*)0, (char*)0, 20, 0, (char**)0,
9703 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
9704 static KmParameter *_GEANT_GEOMETRY_REUCLID_parameters[] = {
9705 &_GEANT_GEOMETRY_REUCLID_LUN, &_GEANT_GEOMETRY_REUCLID_FNAME };
9706 static char *_GEANT_GEOMETRY_REUCLID_guidance[] = {
9707 " CALL GREUCL(LUN,FNAME)",
9708 "Calls the routine to read into GEANT a geometry from an ASCII file",
9709 "written by the EUCLID-GEANT interface." };
9710 static KmCommand _GEANT_GEOMETRY_REUCLID = { &_GEANT_GEOMETRY_WEUCLID,
9711 "/GEANT/GEOMETRY/REUCLID", "REUCLID", 0, 2, 2, 2,
9712 _GEANT_GEOMETRY_REUCLID_parameters, 0, 0, gxgeom_, (IntFunc*)0,
9713 (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_GEOMETRY_REUCLID_guidance, 0,
9714 (char**)0, (char*)0, (int*)0 };
9716 static KmParameter _GEANT_GEOMETRY_CADINT_FNAME = { "FNAME", 5,
9717 "Name of the SET file", "example.set", (char*)0, 20, 0, (char**)0, 0,
9718 (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
9719 static KmParameter _GEANT_GEOMETRY_CADINT_ANAME = { "ANAME", 5,
9720 "Name of the volume", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
9721 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
9722 static KmParInt _GEANT_GEOMETRY_CADINT_NBINS_type = { (char*)0, (char*)0,
9723 (char*)0, (char*)0, 0 };
9724 static KmParameter _GEANT_GEOMETRY_CADINT_NBINS = { "NBINS", 5,
9725 "Number of the instances", "1", (char*)0, 8, 0, (char**)0, 0, (char**)0,
9726 (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_CADINT_NBINS_type };
9727 static KmParInt _GEANT_GEOMETRY_CADINT_LUNIT_type = { (char*)0, (char*)0,
9728 (char*)0, (char*)0, 0 };
9729 static KmParameter _GEANT_GEOMETRY_CADINT_LUNIT = { "LUNIT", 5,
9730 "Logical unit number for SET file", "66", (char*)0, 8, 0, (char**)0, 0,
9731 (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_CADINT_LUNIT_type };
9732 static KmParInt _GEANT_GEOMETRY_CADINT_LUNIT2_type = { (char*)0, (char*)0,
9733 (char*)0, (char*)0, 0 };
9734 static KmParameter _GEANT_GEOMETRY_CADINT_LUNIT2 = { "LUNIT2", 6,
9735 "Logical unit number for material file", "67", (char*)0, 8, 0, (char**)0, 0,
9736 (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_CADINT_LUNIT2_type };
9737 static KmParameter _GEANT_GEOMETRY_CADINT_INST = { "INST", 4,
9738 "Name of your institute", "CERN", (char*)0, 20, 0, (char**)0, 0, (char**)0,
9739 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
9740 static KmParameter _GEANT_GEOMETRY_CADINT_SITE = { "SITE", 4, "Name of site",
9741 "MEYRIN", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9742 KmTYPE_CHAR, (void*)0 };
9743 static KmParameter _GEANT_GEOMETRY_CADINT_DEPT = { "DEPT", 4,
9744 "Name of departement", "CN", (char*)0, 20, 0, (char**)0, 0, (char**)0,
9745 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
9746 static KmParameter _GEANT_GEOMETRY_CADINT_RESP = { "RESP", 4,
9747 "Name of sender", "god_knows_who", (char*)0, 20, 0, (char**)0, 0, (char**)0,
9748 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
9749 static KmParameter *_GEANT_GEOMETRY_CADINT_parameters[] = {
9750 &_GEANT_GEOMETRY_CADINT_FNAME, &_GEANT_GEOMETRY_CADINT_ANAME,
9751 &_GEANT_GEOMETRY_CADINT_NBINS, &_GEANT_GEOMETRY_CADINT_LUNIT,
9752 &_GEANT_GEOMETRY_CADINT_LUNIT2, &_GEANT_GEOMETRY_CADINT_INST,
9753 &_GEANT_GEOMETRY_CADINT_SITE, &_GEANT_GEOMETRY_CADINT_DEPT,
9754 &_GEANT_GEOMETRY_CADINT_RESP };
9755 static char *_GEANT_GEOMETRY_CADINT_guidance[] = {
9756 " CALL GTXSET(fname,aname,nbins,lunit,lunit2,inst,site,dept,resp)",
9757 "This command produces a SET file describing the given volume with",
9758 "the contents currently set visible. (Use the visibility attribute,",
9759 "see SATT SEEN.) The description is given as a flat assembly",
9760 "related to the global coordinate system.",
9761 "The ouput can be read into CAD systems (EUCLID-IS) trough a SET interface.",
9762 "A list of materials of the volumes in the SET file and the GEANT tree",
9763 "is written into a file with the same filename as the SET file,",
9764 "but with extension .mat." };
9765 static KmCommand _GEANT_GEOMETRY_CADINT = { &_GEANT_GEOMETRY_REUCLID,
9766 "/GEANT/GEOMETRY/CADINT", "CADINT", 0, 2, 9, 9,
9767 _GEANT_GEOMETRY_CADINT_parameters, 0, 0, gxgeom_, (IntFunc*)0,
9768 (SUBROUTINE*)0, (pCharFunc*)0, 9, _GEANT_GEOMETRY_CADINT_guidance, 0,
9769 (char**)0, (char*)0, (int*)0 };
9771 static KmParInt _GEANT_GEOMETRY_EDITV_ISEL_type = { (char*)0, (char*)0,
9772 (char*)0, (char*)0, 0 };
9773 static KmParameter _GEANT_GEOMETRY_EDITV_ISEL = { "ISEL", 4, "Options", "0",
9774 (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
9775 &_GEANT_GEOMETRY_EDITV_ISEL_type };
9776 static KmParameter _GEANT_GEOMETRY_EDITV_NAME = { "NAME", 4, "Volume name",
9777 " ", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
9779 static KmParameter *_GEANT_GEOMETRY_EDITV_parameters[] = {
9780 &_GEANT_GEOMETRY_EDITV_ISEL, &_GEANT_GEOMETRY_EDITV_NAME };
9781 static char *_GEANT_GEOMETRY_EDITV_guidance[] = { " CALL GEDITV(isel,name)",
9782 "When the routine prompts for input parameters that do not need",
9783 "to be changed, type return.",
9784 "ISEL is used to select the editing operation to be performed:",
9785 " ISEL=0, CALL GGCLOS",
9786 " ISEL=1, to modify shape parameters PAR given by GSVOLU",
9787 " ISEL=2, to modify NAME given by GSVOLU",
9788 " ISEL=3, to delete NAME given by GSVOLU",
9789 " ISEL=4, to unlink NAME,NR given by GSPOS/GSDVN/GSDV..",
9790 " ISEL=5, to modify X0,Y0,Z0 of NAME,NR given by GSPOS",
9791 " ISEL=6, to modify IROT of NAME,NR given by GSPOS",
9792 " ISEL=7, to modify NDIV given by GSDVN",
9793 " ISEL=8, to modify IAXIS given by GSDVN" };
9794 static KmCommand _GEANT_GEOMETRY_EDITV = { &_GEANT_GEOMETRY_CADINT,
9795 "/GEANT/GEOMETRY/EDITV", "EDITV", 0, 2, 2, 0,
9796 _GEANT_GEOMETRY_EDITV_parameters, 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0,
9797 (pCharFunc*)0, 13, _GEANT_GEOMETRY_EDITV_guidance, 0, (char**)0, (char*)0,
9800 static KmParInt _GEANT_GEOMETRY_PTMED_NUMB_type = { (char*)0, (char*)0,
9801 (char*)0, (char*)0, 0 };
9802 static KmParameter _GEANT_GEOMETRY_PTMED_NUMB = { "NUMB", 4, "Medium ID",
9803 (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
9804 &_GEANT_GEOMETRY_PTMED_NUMB_type };
9805 static KmParameter *_GEANT_GEOMETRY_PTMED_parameters[] = {
9806 &_GEANT_GEOMETRY_PTMED_NUMB };
9807 static char *_GEANT_GEOMETRY_PTMED_guidance[] = { " CALL GPTMED(numb)",
9808 "Print tracking media's specifications." };
9809 static KmCommand _GEANT_GEOMETRY_PTMED = { &_GEANT_GEOMETRY_EDITV,
9810 "/GEANT/GEOMETRY/PTMED", "PTMED", 0, 2, 1, 1,
9811 _GEANT_GEOMETRY_PTMED_parameters, 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0,
9812 (pCharFunc*)0, 2, _GEANT_GEOMETRY_PTMED_guidance, 0, (char**)0, (char*)0,
9815 static KmParInt _GEANT_GEOMETRY_STMED_NTMED_type = { (char*)0, (char*)0,
9816 (char*)0, (char*)0, 0 };
9817 static KmParameter _GEANT_GEOMETRY_STMED_NTMED = { "NTMED", 5,
9818 "Tracking medium number", "1", (char*)0, 8, 0, (char**)0, 0, (char**)0,
9819 (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_STMED_NTMED_type };
9820 static KmParameter _GEANT_GEOMETRY_STMED_NAME = { "NAME", 4,
9821 "Tracking medium name", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
9822 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
9823 static KmParInt _GEANT_GEOMETRY_STMED_NMAT_type = { (char*)0, (char*)0,
9824 (char*)0, (char*)0, 0 };
9825 static KmParameter _GEANT_GEOMETRY_STMED_NMAT = { "NMAT", 4,
9826 "Material number", "1", (char*)0, 8, 0, (char**)0, 0, (char**)0,
9827 (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_STMED_NMAT_type };
9828 static KmParInt _GEANT_GEOMETRY_STMED_ISVOL_type = { (char*)0, (char*)0,
9829 (char*)0, (char*)0, 0 };
9830 static KmParameter _GEANT_GEOMETRY_STMED_ISVOL = { "ISVOL", 5,
9831 "Sensitive volume flag", "0", (char*)0, 8, 0, (char**)0, 0, (char**)0,
9832 (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_STMED_ISVOL_type };
9833 static KmParInt _GEANT_GEOMETRY_STMED_IFIELD_type = { (char*)0, (char*)0,
9834 (char*)0, (char*)0, 0 };
9835 static KmParameter _GEANT_GEOMETRY_STMED_IFIELD = { "IFIELD", 6,
9836 "Magnetic field", "0", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9837 KmTYPE_INT, &_GEANT_GEOMETRY_STMED_IFIELD_type };
9838 static KmParReal _GEANT_GEOMETRY_STMED_FIELDM_type = { (char*)0, (char*)0,
9839 (char*)0, (char*)0, 0 };
9840 static KmParameter _GEANT_GEOMETRY_STMED_FIELDM = { "FIELDM", 6,
9841 "Max. field value (Kilogauss)", "0", (char*)0, 12, 0, (char**)0, 0,
9842 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_GEOMETRY_STMED_FIELDM_type };
9843 static KmParReal _GEANT_GEOMETRY_STMED_TMAXFD_type = { (char*)0, (char*)0,
9844 (char*)0, (char*)0, 0 };
9845 static KmParameter _GEANT_GEOMETRY_STMED_TMAXFD = { "TMAXFD", 6,
9846 "Max. angle due to field (deg/step)", "0.01", (char*)0, 12, 0, (char**)0, 0,
9847 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_GEOMETRY_STMED_TMAXFD_type };
9848 static KmParReal _GEANT_GEOMETRY_STMED_STEMAX_type = { (char*)0, (char*)0,
9849 (char*)0, (char*)0, 0 };
9850 static KmParameter _GEANT_GEOMETRY_STMED_STEMAX = { "STEMAX", 6,
9851 "Max. step allowed", "1.E+10", (char*)0, 12, 0, (char**)0, 0, (char**)0,
9852 (KmParFlag)0, KmTYPE_REAL, &_GEANT_GEOMETRY_STMED_STEMAX_type };
9853 static KmParReal _GEANT_GEOMETRY_STMED_DEEMAX_type = { (char*)0, (char*)0,
9854 (char*)0, (char*)0, 0 };
9855 static KmParameter _GEANT_GEOMETRY_STMED_DEEMAX = { "DEEMAX", 6,
9856 "Max. fraction of energy lost in a step", "0.01", (char*)0, 12, 0, (char**)0,
9857 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_GEOMETRY_STMED_DEEMAX_type };
9858 static KmParReal _GEANT_GEOMETRY_STMED_EPSIL_type = { (char*)0, (char*)0,
9859 (char*)0, (char*)0, 0 };
9860 static KmParameter _GEANT_GEOMETRY_STMED_EPSIL = { "EPSIL", 5,
9861 "Tracking precision (cm)", "0.01", (char*)0, 12, 0, (char**)0, 0, (char**)0,
9862 (KmParFlag)0, KmTYPE_REAL, &_GEANT_GEOMETRY_STMED_EPSIL_type };
9863 static KmParReal _GEANT_GEOMETRY_STMED_STMIN_type = { (char*)0, (char*)0,
9864 (char*)0, (char*)0, 0 };
9865 static KmParameter _GEANT_GEOMETRY_STMED_STMIN = { "STMIN", 5,
9866 "Min. step due to continuos processes (cm)", "0.1", (char*)0, 12, 0,
9867 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
9868 &_GEANT_GEOMETRY_STMED_STMIN_type };
9869 static KmParameter *_GEANT_GEOMETRY_STMED_parameters[] = {
9870 &_GEANT_GEOMETRY_STMED_NTMED, &_GEANT_GEOMETRY_STMED_NAME,
9871 &_GEANT_GEOMETRY_STMED_NMAT, &_GEANT_GEOMETRY_STMED_ISVOL,
9872 &_GEANT_GEOMETRY_STMED_IFIELD, &_GEANT_GEOMETRY_STMED_FIELDM,
9873 &_GEANT_GEOMETRY_STMED_TMAXFD, &_GEANT_GEOMETRY_STMED_STEMAX,
9874 &_GEANT_GEOMETRY_STMED_DEEMAX, &_GEANT_GEOMETRY_STMED_EPSIL,
9875 &_GEANT_GEOMETRY_STMED_STMIN };
9876 static char *_GEANT_GEOMETRY_STMED_guidance[] = {
9877 " CALL GSTMED(ntmed,name,nmat,isvol,ifield,fieldm,tmaxfd,",
9878 " + stemax,deemax,epsil,stmin,0,0)",
9879 "IFIELD = 0 if no magnetic field; IFIELD = -1 if user decision in GUSWIM;",
9880 "IFIELD = 1 if tracking performed with GRKUTA; IFIELD = 2 if tracking",
9881 "performed with GHELIX; IFIELD = 3 if tracking performed with GHELX3." };
9882 static KmCommand _GEANT_GEOMETRY_STMED = { &_GEANT_GEOMETRY_PTMED,
9883 "/GEANT/GEOMETRY/STMED", "STMED", 0, 2, 11, 11,
9884 _GEANT_GEOMETRY_STMED_parameters, 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0,
9885 (pCharFunc*)0, 5, _GEANT_GEOMETRY_STMED_guidance, 0, (char**)0, (char*)0,
9888 static KmParInt _GEANT_GEOMETRY_PROTM_NUMB_type = { (char*)0, (char*)0,
9889 (char*)0, (char*)0, 0 };
9890 static KmParameter _GEANT_GEOMETRY_PROTM_NUMB = { "NUMB", 4, "Matrix ID",
9891 (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
9892 &_GEANT_GEOMETRY_PROTM_NUMB_type };
9893 static KmParameter *_GEANT_GEOMETRY_PROTM_parameters[] = {
9894 &_GEANT_GEOMETRY_PROTM_NUMB };
9895 static char *_GEANT_GEOMETRY_PROTM_guidance[] = { " CALL GPROTM(numb)",
9896 "Print matrixes' specifications." };
9897 static KmCommand _GEANT_GEOMETRY_PROTM = { &_GEANT_GEOMETRY_STMED,
9898 "/GEANT/GEOMETRY/PROTM", "PROTM", 0, 2, 1, 1,
9899 _GEANT_GEOMETRY_PROTM_parameters, 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0,
9900 (pCharFunc*)0, 2, _GEANT_GEOMETRY_PROTM_guidance, 0, (char**)0, (char*)0,
9903 static KmParInt _GEANT_GEOMETRY_SROTM_IROT_type = { (char*)0, (char*)0,
9904 (char*)0, (char*)0, 0 };
9905 static KmParameter _GEANT_GEOMETRY_SROTM_IROT = { "IROT", 4,
9906 "Rotation matrix number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
9907 (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_SROTM_IROT_type };
9908 static KmParReal _GEANT_GEOMETRY_SROTM_THETA1_type = { "0.", "180.", "0.",
9910 static KmParameter _GEANT_GEOMETRY_SROTM_THETA1 = { "THETA1", 6,
9911 "Polar angle for axis I", "0.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
9912 (KmParFlag)0, KmTYPE_REAL, &_GEANT_GEOMETRY_SROTM_THETA1_type };
9913 static KmParReal _GEANT_GEOMETRY_SROTM_PHI1_type = { "0.", "360.", "0.",
9915 static KmParameter _GEANT_GEOMETRY_SROTM_PHI1 = { "PHI1", 4,
9916 "Azimuthal angle for axis I", "0.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
9917 (KmParFlag)0, KmTYPE_REAL, &_GEANT_GEOMETRY_SROTM_PHI1_type };
9918 static KmParReal _GEANT_GEOMETRY_SROTM_THETA2_type = { "0.", "180.", "0.",
9920 static KmParameter _GEANT_GEOMETRY_SROTM_THETA2 = { "THETA2", 6,
9921 "Polar angle for axis II", "0.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
9922 (KmParFlag)0, KmTYPE_REAL, &_GEANT_GEOMETRY_SROTM_THETA2_type };
9923 static KmParReal _GEANT_GEOMETRY_SROTM_PHI2_type = { "0.", "360.", "0.",
9925 static KmParameter _GEANT_GEOMETRY_SROTM_PHI2 = { "PHI2", 4,
9926 "Azimuthal angle for axis II", "0.", (char*)0, 12, 0, (char**)0, 0,
9927 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_GEOMETRY_SROTM_PHI2_type };
9928 static KmParReal _GEANT_GEOMETRY_SROTM_THETA3_type = { "0.", "180.", "0.",
9930 static KmParameter _GEANT_GEOMETRY_SROTM_THETA3 = { "THETA3", 6,
9931 "Polar angle for axis III", "0.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
9932 (KmParFlag)0, KmTYPE_REAL, &_GEANT_GEOMETRY_SROTM_THETA3_type };
9933 static KmParReal _GEANT_GEOMETRY_SROTM_PHI3_type = { "0.", "360.", "0.",
9935 static KmParameter _GEANT_GEOMETRY_SROTM_PHI3 = { "PHI3", 4,
9936 "Azimuthal angle for axis III", "0.", (char*)0, 12, 0, (char**)0, 0,
9937 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_GEOMETRY_SROTM_PHI3_type };
9938 static KmParameter *_GEANT_GEOMETRY_SROTM_parameters[] = {
9939 &_GEANT_GEOMETRY_SROTM_IROT, &_GEANT_GEOMETRY_SROTM_THETA1,
9940 &_GEANT_GEOMETRY_SROTM_PHI1, &_GEANT_GEOMETRY_SROTM_THETA2,
9941 &_GEANT_GEOMETRY_SROTM_PHI2, &_GEANT_GEOMETRY_SROTM_THETA3,
9942 &_GEANT_GEOMETRY_SROTM_PHI3 };
9943 static char *_GEANT_GEOMETRY_SROTM_guidance[] = {
9944 " CALL GSROTM(irot,theta1,phi1,theta2,phi2,theta3,phi3)",
9945 "It defines the rotation matrix number IROT." };
9946 static KmCommand _GEANT_GEOMETRY_SROTM = { &_GEANT_GEOMETRY_PROTM,
9947 "/GEANT/GEOMETRY/SROTM", "SROTM", 0, 2, 7, 7,
9948 _GEANT_GEOMETRY_SROTM_parameters, 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0,
9949 (pCharFunc*)0, 2, _GEANT_GEOMETRY_SROTM_guidance, 0, (char**)0, (char*)0,
9952 static KmParInt _GEANT_GEOMETRY_PVOLU_NUMB_type = { (char*)0, (char*)0,
9953 (char*)0, (char*)0, 0 };
9954 static KmParameter _GEANT_GEOMETRY_PVOLU_NUMB = { "NUMB", 4, "Volume ID",
9955 (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
9956 &_GEANT_GEOMETRY_PVOLU_NUMB_type };
9957 static KmParameter *_GEANT_GEOMETRY_PVOLU_parameters[] = {
9958 &_GEANT_GEOMETRY_PVOLU_NUMB };
9959 static char *_GEANT_GEOMETRY_PVOLU_guidance[] = { " CALL GPVOLU(numb)",
9960 "Prints volumes' specifications." };
9961 static KmCommand _GEANT_GEOMETRY_PVOLU = { &_GEANT_GEOMETRY_SROTM,
9962 "/GEANT/GEOMETRY/PVOLU", "PVOLU", 0, 2, 1, 1,
9963 _GEANT_GEOMETRY_PVOLU_parameters, 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0,
9964 (pCharFunc*)0, 2, _GEANT_GEOMETRY_PVOLU_guidance, 0, (char**)0, (char*)0,
9967 static KmParameter _GEANT_GEOMETRY_SDVN_NAME = { "NAME", 4, "Volume name",
9968 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9969 KmTYPE_CHAR, (void*)0 };
9970 static KmParameter _GEANT_GEOMETRY_SDVN_MOTHER = { "MOTHER", 6,
9971 "Mother volume name", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
9972 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
9973 static KmParInt _GEANT_GEOMETRY_SDVN_NDIV_type = { (char*)0, (char*)0,
9974 (char*)0, (char*)0, 0 };
9975 static KmParameter _GEANT_GEOMETRY_SDVN_NDIV = { "NDIV", 4,
9976 "Number of divisions", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
9977 (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_SDVN_NDIV_type };
9978 static char *_GEANT_GEOMETRY_SDVN_CAXIS_range[] = { "X", "Y", "Z", "1", "2",
9980 static char *_GEANT_GEOMETRY_SDVN_CAXIS_text[] = { (char*)0, (char*)0,
9981 (char*)0, (char*)0, (char*)0, (char*)0 };
9982 static KmParOption _GEANT_GEOMETRY_SDVN_CAXIS_type = {
9983 _GEANT_GEOMETRY_SDVN_CAXIS_text, (int*)0, (int*)0 };
9984 static KmParameter _GEANT_GEOMETRY_SDVN_CAXIS = { "CAXIS", 5, "Axis value",
9985 (char*)0, (char*)0, 8, 6, _GEANT_GEOMETRY_SDVN_CAXIS_range, 6,
9986 _GEANT_GEOMETRY_SDVN_CAXIS_range, (KmParFlag)0, KmTYPE_OPTION,
9987 &_GEANT_GEOMETRY_SDVN_CAXIS_type };
9988 static KmParameter *_GEANT_GEOMETRY_SDVN_parameters[] = {
9989 &_GEANT_GEOMETRY_SDVN_NAME, &_GEANT_GEOMETRY_SDVN_MOTHER,
9990 &_GEANT_GEOMETRY_SDVN_NDIV, &_GEANT_GEOMETRY_SDVN_CAXIS };
9991 static char *_GEANT_GEOMETRY_SDVN_guidance[] = {
9992 " CALL GSDVN(name,mother,ndiv,iaxis)",
9993 "X,Y,Z of CAXIS will be translated to 1,2,3 for IAXIS.",
9994 "It divides a previously defined volume." };
9995 static KmCommand _GEANT_GEOMETRY_SDVN = { &_GEANT_GEOMETRY_PVOLU,
9996 "/GEANT/GEOMETRY/SDVN", "SDVN", 0, 2, 4, 4, _GEANT_GEOMETRY_SDVN_parameters,
9997 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
9998 _GEANT_GEOMETRY_SDVN_guidance, 0, (char**)0, (char*)0, (int*)0 };
10000 static KmParameter _GEANT_GEOMETRY_SPOS_NAME = { "NAME", 4, "Volume name",
10001 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10002 KmTYPE_CHAR, (void*)0 };
10003 static KmParInt _GEANT_GEOMETRY_SPOS_NUMBER_type = { (char*)0, (char*)0,
10004 (char*)0, (char*)0, 0 };
10005 static KmParameter _GEANT_GEOMETRY_SPOS_NUMBER = { "NUMBER", 6,
10006 "Copy number of the volume", (char*)0, (char*)0, 8, 0, (char**)0, 0,
10007 (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_SPOS_NUMBER_type };
10008 static KmParameter _GEANT_GEOMETRY_SPOS_MOTHER = { "MOTHER", 6,
10009 "Mother volume name", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
10010 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
10011 static KmParReal _GEANT_GEOMETRY_SPOS_X0_type = { (char*)0, (char*)0,
10012 (char*)0, (char*)0, 0 };
10013 static KmParameter _GEANT_GEOMETRY_SPOS_X0 = { "X0", 2,
10014 "X coord. of the volume in mother ref. sys.", (char*)0, (char*)0, 12, 0,
10015 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
10016 &_GEANT_GEOMETRY_SPOS_X0_type };
10017 static KmParReal _GEANT_GEOMETRY_SPOS_Y0_type = { (char*)0, (char*)0,
10018 (char*)0, (char*)0, 0 };
10019 static KmParameter _GEANT_GEOMETRY_SPOS_Y0 = { "Y0", 2,
10020 "Y coord. of the volume in mother ref. sys.", (char*)0, (char*)0, 12, 0,
10021 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
10022 &_GEANT_GEOMETRY_SPOS_Y0_type };
10023 static KmParReal _GEANT_GEOMETRY_SPOS_Z0_type = { (char*)0, (char*)0,
10024 (char*)0, (char*)0, 0 };
10025 static KmParameter _GEANT_GEOMETRY_SPOS_Z0 = { "Z0", 2,
10026 "Z coord. of the volume in mother ref. sys.", (char*)0, (char*)0, 12, 0,
10027 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
10028 &_GEANT_GEOMETRY_SPOS_Z0_type };
10029 static KmParInt _GEANT_GEOMETRY_SPOS_IROT_type = { (char*)0, (char*)0,
10030 (char*)0, (char*)0, 0 };
10031 static KmParameter _GEANT_GEOMETRY_SPOS_IROT = { "IROT", 4,
10032 "Rotation matrix number w.r.t. mother ref. sys.", (char*)0, (char*)0, 8, 0,
10033 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
10034 &_GEANT_GEOMETRY_SPOS_IROT_type };
10035 static KmParameter _GEANT_GEOMETRY_SPOS_ONLY = { "ONLY", 4, "ONLY/MANY flag",
10036 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10037 KmTYPE_CHAR, (void*)0 };
10038 static KmParameter *_GEANT_GEOMETRY_SPOS_parameters[] = {
10039 &_GEANT_GEOMETRY_SPOS_NAME, &_GEANT_GEOMETRY_SPOS_NUMBER,
10040 &_GEANT_GEOMETRY_SPOS_MOTHER, &_GEANT_GEOMETRY_SPOS_X0,
10041 &_GEANT_GEOMETRY_SPOS_Y0, &_GEANT_GEOMETRY_SPOS_Z0,
10042 &_GEANT_GEOMETRY_SPOS_IROT, &_GEANT_GEOMETRY_SPOS_ONLY };
10043 static char *_GEANT_GEOMETRY_SPOS_guidance[] = {
10044 " CALL GSPOS(name,number,mother,x0,y0,z0,irot,only)",
10045 "It positions a previously defined volume in the mother." };
10046 static KmCommand _GEANT_GEOMETRY_SPOS = { &_GEANT_GEOMETRY_SDVN,
10047 "/GEANT/GEOMETRY/SPOS", "SPOS", 0, 2, 8, 8, _GEANT_GEOMETRY_SPOS_parameters,
10048 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 2,
10049 _GEANT_GEOMETRY_SPOS_guidance, 0, (char**)0, (char*)0, (int*)0 };
10051 static KmParameter _GEANT_GEOMETRY_SVOLU_NAME = { "NAME", 4, "Volume name",
10052 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10053 KmTYPE_CHAR, (void*)0 };
10054 static KmParameter _GEANT_GEOMETRY_SVOLU_SHAPE = { "SHAPE", 5, "Volume type",
10055 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10056 KmTYPE_CHAR, (void*)0 };
10057 static KmParInt _GEANT_GEOMETRY_SVOLU_NUMED_type = { (char*)0, (char*)0,
10058 (char*)0, (char*)0, 0 };
10059 static KmParameter _GEANT_GEOMETRY_SVOLU_NUMED = { "NUMED", 5,
10060 "Tracking medium number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
10061 (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_SVOLU_NUMED_type };
10062 static KmParInt _GEANT_GEOMETRY_SVOLU_NPAR_type = { (char*)0, (char*)0,
10063 (char*)0, (char*)0, 0 };
10064 static KmParameter _GEANT_GEOMETRY_SVOLU_NPAR = { "NPAR", 4,
10065 "Number of shape parameters", (char*)0, (char*)0, 8, 0, (char**)0, 0,
10066 (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_SVOLU_NPAR_type };
10067 static KmParameter _GEANT_GEOMETRY_SVOLU_PAR = { "PAR", 3,
10068 "Vector containing shape parameters", (char*)0, (char*)0, 20, 0, (char**)0,
10069 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
10070 static KmParameter *_GEANT_GEOMETRY_SVOLU_parameters[] = {
10071 &_GEANT_GEOMETRY_SVOLU_NAME, &_GEANT_GEOMETRY_SVOLU_SHAPE,
10072 &_GEANT_GEOMETRY_SVOLU_NUMED, &_GEANT_GEOMETRY_SVOLU_NPAR,
10073 &_GEANT_GEOMETRY_SVOLU_PAR };
10074 static char *_GEANT_GEOMETRY_SVOLU_guidance[] = {
10075 " CALL GSVOLU(name,shape,numed,par,npar,ivolu)",
10076 "where par is a KUIP vector.",
10077 "It creates a new volume in the JVOLUM data structure." };
10078 static KmCommand _GEANT_GEOMETRY_SVOLU = { &_GEANT_GEOMETRY_SPOS,
10079 "/GEANT/GEOMETRY/SVOLU", "SVOLU", 0, 2, 5, 5,
10080 _GEANT_GEOMETRY_SVOLU_parameters, 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0,
10081 (pCharFunc*)0, 3, _GEANT_GEOMETRY_SVOLU_guidance, 0, (char**)0, (char*)0,
10084 static char *_GEANT_GEOMETRY_OPTI_IOPTI_range[] = { "-1", "2" };
10085 static KmParInt _GEANT_GEOMETRY_OPTI_IOPTI_type = { (char*)0, (char*)0,
10086 (char*)0, (char*)0, 0 };
10087 static KmParameter _GEANT_GEOMETRY_OPTI_IOPTI = { "IOPTI", 5,
10088 "GSORD optimisation level", "0", (char*)0, 8, 2,
10089 _GEANT_GEOMETRY_OPTI_IOPTI_range, 2, _GEANT_GEOMETRY_OPTI_IOPTI_range,
10090 (KmParFlag)2, KmTYPE_INT, &_GEANT_GEOMETRY_OPTI_IOPTI_type };
10091 static KmParameter *_GEANT_GEOMETRY_OPTI_parameters[] = {
10092 &_GEANT_GEOMETRY_OPTI_IOPTI };
10093 static char *_GEANT_GEOMETRY_OPTI_guidance[] = {
10094 "This flag controls the tracking optimisation performed via the",
10095 "GSORD routine:", " 1 no optimisation at all; GSORD calls disabled;",
10096 " 0 no optimisation; only user calls to GSORD kept;",
10097 " 1 all non-GSORDered volumes are ordered along the best axis;",
10098 " 2 all volumes are ordered along the best axis." };
10099 static KmCommand _GEANT_GEOMETRY_OPTI = { &_GEANT_GEOMETRY_SVOLU,
10100 "/GEANT/GEOMETRY/OPTI", "OPTI", 0, 2, 1, 1, _GEANT_GEOMETRY_OPTI_parameters,
10101 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 6,
10102 _GEANT_GEOMETRY_OPTI_guidance, 0, (char**)0, (char*)0, (int*)0 };
10104 static KmParameter _GEANT_CREATE_SPARA_NAME = { "NAME", 4, "Volume name",
10105 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10106 KmTYPE_CHAR, (void*)0 };
10107 static KmParInt _GEANT_CREATE_SPARA_NUMED_type = { (char*)0, (char*)0,
10108 (char*)0, (char*)0, 0 };
10109 static KmParameter _GEANT_CREATE_SPARA_NUMED = { "NUMED", 5,
10110 "Tracking medium number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
10111 (KmParFlag)0, KmTYPE_INT, &_GEANT_CREATE_SPARA_NUMED_type };
10112 static KmParReal _GEANT_CREATE_SPARA_HALFX_type = { (char*)0, (char*)0,
10113 (char*)0, (char*)0, 0 };
10114 static KmParameter _GEANT_CREATE_SPARA_HALFX = { "HALFX", 5, "Half X length",
10115 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10116 KmTYPE_REAL, &_GEANT_CREATE_SPARA_HALFX_type };
10117 static KmParReal _GEANT_CREATE_SPARA_HALFY_type = { (char*)0, (char*)0,
10118 (char*)0, (char*)0, 0 };
10119 static KmParameter _GEANT_CREATE_SPARA_HALFY = { "HALFY", 5, "Half Y length",
10120 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10121 KmTYPE_REAL, &_GEANT_CREATE_SPARA_HALFY_type };
10122 static KmParReal _GEANT_CREATE_SPARA_HALFZ_type = { (char*)0, (char*)0,
10123 (char*)0, (char*)0, 0 };
10124 static KmParameter _GEANT_CREATE_SPARA_HALFZ = { "HALFZ", 5, "Half Z length",
10125 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10126 KmTYPE_REAL, &_GEANT_CREATE_SPARA_HALFZ_type };
10127 static KmParReal _GEANT_CREATE_SPARA_AXIS_type = { "0.", "360.", "0.",
10129 static KmParameter _GEANT_CREATE_SPARA_AXIS = { "AXIS", 4,
10130 "Angle of Y mid-faces segment to Y axis", (char*)0, (char*)0, 12, 0,
10131 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
10132 &_GEANT_CREATE_SPARA_AXIS_type };
10133 static KmParReal _GEANT_CREATE_SPARA_PHI_type = { "0.", "360.", "0.",
10135 static KmParameter _GEANT_CREATE_SPARA_PHI = { "PHI", 3,
10136 "PHI angle of Low Z mid-face to High Z mid-face segment", (char*)0, (char*)0,
10137 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
10138 &_GEANT_CREATE_SPARA_PHI_type };
10139 static KmParReal _GEANT_CREATE_SPARA_THETA_type = { "0.", "360.", "0.",
10141 static KmParameter _GEANT_CREATE_SPARA_THETA = { "THETA", 5,
10142 "THETA angle of mid-low-Z-face to mid-high-Z-face segment", (char*)0,
10143 (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
10144 &_GEANT_CREATE_SPARA_THETA_type };
10145 static char *_GEANT_CREATE_SPARA_YESNO_range[] = { "YES", "NO" };
10146 static char *_GEANT_CREATE_SPARA_YESNO_text[] = { (char*)0, (char*)0 };
10147 static KmParOption _GEANT_CREATE_SPARA_YESNO_type = {
10148 _GEANT_CREATE_SPARA_YESNO_text, (int*)0, (int*)0 };
10149 static KmParameter _GEANT_CREATE_SPARA_YESNO = { "YESNO", 5, "GSPOSP option",
10150 "NO", (char*)0, 8, 2, _GEANT_CREATE_SPARA_YESNO_range, 2,
10151 _GEANT_CREATE_SPARA_YESNO_range, (KmParFlag)0, KmTYPE_OPTION,
10152 &_GEANT_CREATE_SPARA_YESNO_type };
10153 static KmParameter *_GEANT_CREATE_SPARA_parameters[] = {
10154 &_GEANT_CREATE_SPARA_NAME, &_GEANT_CREATE_SPARA_NUMED,
10155 &_GEANT_CREATE_SPARA_HALFX, &_GEANT_CREATE_SPARA_HALFY,
10156 &_GEANT_CREATE_SPARA_HALFZ, &_GEANT_CREATE_SPARA_AXIS,
10157 &_GEANT_CREATE_SPARA_PHI, &_GEANT_CREATE_SPARA_THETA,
10158 &_GEANT_CREATE_SPARA_YESNO };
10159 static KmCommand _GEANT_CREATE_SPARA = { (KmCommand*)0,
10160 "/GEANT/CREATE/SPARA", "SPARA", 0, 2, 9, 8, _GEANT_CREATE_SPARA_parameters,
10161 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 0, (char**)0, 0,
10162 (char**)0, (char*)0, (int*)0 };
10164 static KmParameter _GEANT_CREATE_SSPHE_NAME = { "NAME", 4, "Volume name",
10165 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10166 KmTYPE_CHAR, (void*)0 };
10167 static KmParInt _GEANT_CREATE_SSPHE_NUMED_type = { (char*)0, (char*)0,
10168 (char*)0, (char*)0, 0 };
10169 static KmParameter _GEANT_CREATE_SSPHE_NUMED = { "NUMED", 5,
10170 "Tracking medium number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
10171 (KmParFlag)0, KmTYPE_INT, &_GEANT_CREATE_SSPHE_NUMED_type };
10172 static KmParReal _GEANT_CREATE_SSPHE_INRAD_type = { (char*)0, (char*)0,
10173 (char*)0, (char*)0, 0 };
10174 static KmParameter _GEANT_CREATE_SSPHE_INRAD = { "INRAD", 5, "Inside Radius",
10175 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10176 KmTYPE_REAL, &_GEANT_CREATE_SSPHE_INRAD_type };
10177 static KmParReal _GEANT_CREATE_SSPHE_OUTRAD_type = { (char*)0, (char*)0,
10178 (char*)0, (char*)0, 0 };
10179 static KmParameter _GEANT_CREATE_SSPHE_OUTRAD = { "OUTRAD", 6,
10180 "Outside Radius", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
10181 (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SSPHE_OUTRAD_type };
10182 static KmParReal _GEANT_CREATE_SSPHE_SPHI_type = { "0.", "360.", "0.",
10184 static KmParameter _GEANT_CREATE_SSPHE_SPHI = { "SPHI", 4,
10185 "Start of section PHI", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
10186 (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SSPHE_SPHI_type };
10187 static KmParReal _GEANT_CREATE_SSPHE_EPHI_type = { "0.", "360.", "0.",
10189 static KmParameter _GEANT_CREATE_SSPHE_EPHI = { "EPHI", 4,
10190 "End of section PHI", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
10191 (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SSPHE_EPHI_type };
10192 static KmParReal _GEANT_CREATE_SSPHE_STHETA_type = { (char*)0, (char*)0,
10193 (char*)0, (char*)0, 0 };
10194 static KmParameter _GEANT_CREATE_SSPHE_STHETA = { "STHETA", 6,
10195 "Start of section THETA", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
10196 (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SSPHE_STHETA_type };
10197 static KmParReal _GEANT_CREATE_SSPHE_ETHETA_type = { (char*)0, (char*)0,
10198 (char*)0, (char*)0, 0 };
10199 static KmParameter _GEANT_CREATE_SSPHE_ETHETA = { "ETHETA", 6,
10200 "End of section THETA", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
10201 (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SSPHE_ETHETA_type };
10202 static char *_GEANT_CREATE_SSPHE_YESNO_range[] = { "YES", "NO" };
10203 static char *_GEANT_CREATE_SSPHE_YESNO_text[] = { (char*)0, (char*)0 };
10204 static KmParOption _GEANT_CREATE_SSPHE_YESNO_type = {
10205 _GEANT_CREATE_SSPHE_YESNO_text, (int*)0, (int*)0 };
10206 static KmParameter _GEANT_CREATE_SSPHE_YESNO = { "YESNO", 5, "GSPOSP option",
10207 "NO", (char*)0, 8, 2, _GEANT_CREATE_SSPHE_YESNO_range, 2,
10208 _GEANT_CREATE_SSPHE_YESNO_range, (KmParFlag)0, KmTYPE_OPTION,
10209 &_GEANT_CREATE_SSPHE_YESNO_type };
10210 static KmParameter *_GEANT_CREATE_SSPHE_parameters[] = {
10211 &_GEANT_CREATE_SSPHE_NAME, &_GEANT_CREATE_SSPHE_NUMED,
10212 &_GEANT_CREATE_SSPHE_INRAD, &_GEANT_CREATE_SSPHE_OUTRAD,
10213 &_GEANT_CREATE_SSPHE_SPHI, &_GEANT_CREATE_SSPHE_EPHI,
10214 &_GEANT_CREATE_SSPHE_STHETA, &_GEANT_CREATE_SSPHE_ETHETA,
10215 &_GEANT_CREATE_SSPHE_YESNO };
10216 static KmCommand _GEANT_CREATE_SSPHE = { &_GEANT_CREATE_SPARA,
10217 "/GEANT/CREATE/SSPHE", "SSPHE", 0, 2, 9, 8, _GEANT_CREATE_SSPHE_parameters,
10218 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 0, (char**)0, 0,
10219 (char**)0, (char*)0, (int*)0 };
10221 static KmParameter _GEANT_CREATE_SCONS_NAME = { "NAME", 4, "Volume name",
10222 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10223 KmTYPE_CHAR, (void*)0 };
10224 static KmParInt _GEANT_CREATE_SCONS_NUMED_type = { (char*)0, (char*)0,
10225 (char*)0, (char*)0, 0 };
10226 static KmParameter _GEANT_CREATE_SCONS_NUMED = { "NUMED", 5,
10227 "Tracking medium number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
10228 (KmParFlag)0, KmTYPE_INT, &_GEANT_CREATE_SCONS_NUMED_type };
10229 static KmParReal _GEANT_CREATE_SCONS_INRDW_type = { (char*)0, (char*)0,
10230 (char*)0, (char*)0, 0 };
10231 static KmParameter _GEANT_CREATE_SCONS_INRDW = { "INRDW", 5,
10232 "Inside Radius in Lower Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
10233 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SCONS_INRDW_type };
10234 static KmParReal _GEANT_CREATE_SCONS_OUTRDW_type = { (char*)0, (char*)0,
10235 (char*)0, (char*)0, 0 };
10236 static KmParameter _GEANT_CREATE_SCONS_OUTRDW = { "OUTRDW", 6,
10237 "Outside Radius in Lower Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
10238 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SCONS_OUTRDW_type };
10239 static KmParReal _GEANT_CREATE_SCONS_INRUP_type = { (char*)0, (char*)0,
10240 (char*)0, (char*)0, 0 };
10241 static KmParameter _GEANT_CREATE_SCONS_INRUP = { "INRUP", 5,
10242 "Inside Radius in Upper Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
10243 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SCONS_INRUP_type };
10244 static KmParReal _GEANT_CREATE_SCONS_OUTRUP_type = { (char*)0, (char*)0,
10245 (char*)0, (char*)0, 0 };
10246 static KmParameter _GEANT_CREATE_SCONS_OUTRUP = { "OUTRUP", 6,
10247 "Outside Radius in Upper Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
10248 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SCONS_OUTRUP_type };
10249 static KmParReal _GEANT_CREATE_SCONS_HALFZ_type = { (char*)0, (char*)0,
10250 (char*)0, (char*)0, 0 };
10251 static KmParameter _GEANT_CREATE_SCONS_HALFZ = { "HALFZ", 5, "Half Z length",
10252 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10253 KmTYPE_REAL, &_GEANT_CREATE_SCONS_HALFZ_type };
10254 static KmParReal _GEANT_CREATE_SCONS_SPHI_type = { "0.", "360.", "0.",
10256 static KmParameter _GEANT_CREATE_SCONS_SPHI = { "SPHI", 4,
10257 "Start of section PHI", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
10258 (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SCONS_SPHI_type };
10259 static KmParReal _GEANT_CREATE_SCONS_EPHI_type = { "0.", "360.", "0.",
10261 static KmParameter _GEANT_CREATE_SCONS_EPHI = { "EPHI", 4,
10262 "End of section PHI", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
10263 (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SCONS_EPHI_type };
10264 static char *_GEANT_CREATE_SCONS_YESNO_range[] = { "YES", "NO" };
10265 static char *_GEANT_CREATE_SCONS_YESNO_text[] = { (char*)0, (char*)0 };
10266 static KmParOption _GEANT_CREATE_SCONS_YESNO_type = {
10267 _GEANT_CREATE_SCONS_YESNO_text, (int*)0, (int*)0 };
10268 static KmParameter _GEANT_CREATE_SCONS_YESNO = { "YESNO", 5, "GSPOSP option",
10269 "NO", (char*)0, 8, 2, _GEANT_CREATE_SCONS_YESNO_range, 2,
10270 _GEANT_CREATE_SCONS_YESNO_range, (KmParFlag)0, KmTYPE_OPTION,
10271 &_GEANT_CREATE_SCONS_YESNO_type };
10272 static KmParameter *_GEANT_CREATE_SCONS_parameters[] = {
10273 &_GEANT_CREATE_SCONS_NAME, &_GEANT_CREATE_SCONS_NUMED,
10274 &_GEANT_CREATE_SCONS_INRDW, &_GEANT_CREATE_SCONS_OUTRDW,
10275 &_GEANT_CREATE_SCONS_INRUP, &_GEANT_CREATE_SCONS_OUTRUP,
10276 &_GEANT_CREATE_SCONS_HALFZ, &_GEANT_CREATE_SCONS_SPHI,
10277 &_GEANT_CREATE_SCONS_EPHI, &_GEANT_CREATE_SCONS_YESNO };
10278 static KmCommand _GEANT_CREATE_SCONS = { &_GEANT_CREATE_SSPHE,
10279 "/GEANT/CREATE/SCONS", "SCONS", 0, 2, 10, 9, _GEANT_CREATE_SCONS_parameters,
10280 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 0, (char**)0, 0,
10281 (char**)0, (char*)0, (int*)0 };
10283 static KmParameter _GEANT_CREATE_SCONE_NAME = { "NAME", 4, "Volume name",
10284 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10285 KmTYPE_CHAR, (void*)0 };
10286 static KmParInt _GEANT_CREATE_SCONE_NUMED_type = { (char*)0, (char*)0,
10287 (char*)0, (char*)0, 0 };
10288 static KmParameter _GEANT_CREATE_SCONE_NUMED = { "NUMED", 5,
10289 "Tracking medium number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
10290 (KmParFlag)0, KmTYPE_INT, &_GEANT_CREATE_SCONE_NUMED_type };
10291 static KmParReal _GEANT_CREATE_SCONE_INRDW_type = { (char*)0, (char*)0,
10292 (char*)0, (char*)0, 0 };
10293 static KmParameter _GEANT_CREATE_SCONE_INRDW = { "INRDW", 5,
10294 "Inside Radius in Lower Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
10295 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SCONE_INRDW_type };
10296 static KmParReal _GEANT_CREATE_SCONE_OUTRDW_type = { (char*)0, (char*)0,
10297 (char*)0, (char*)0, 0 };
10298 static KmParameter _GEANT_CREATE_SCONE_OUTRDW = { "OUTRDW", 6,
10299 "Outside Radius in Lower Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
10300 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SCONE_OUTRDW_type };
10301 static KmParReal _GEANT_CREATE_SCONE_INRUP_type = { (char*)0, (char*)0,
10302 (char*)0, (char*)0, 0 };
10303 static KmParameter _GEANT_CREATE_SCONE_INRUP = { "INRUP", 5,
10304 "Inside Radius in Upper Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
10305 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SCONE_INRUP_type };
10306 static KmParReal _GEANT_CREATE_SCONE_OUTRUP_type = { (char*)0, (char*)0,
10307 (char*)0, (char*)0, 0 };
10308 static KmParameter _GEANT_CREATE_SCONE_OUTRUP = { "OUTRUP", 6,
10309 "Outside Radius in Upper Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
10310 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SCONE_OUTRUP_type };
10311 static KmParReal _GEANT_CREATE_SCONE_HALFZ_type = { (char*)0, (char*)0,
10312 (char*)0, (char*)0, 0 };
10313 static KmParameter _GEANT_CREATE_SCONE_HALFZ = { "HALFZ", 5, "Half Z length",
10314 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10315 KmTYPE_REAL, &_GEANT_CREATE_SCONE_HALFZ_type };
10316 static char *_GEANT_CREATE_SCONE_YESNO_range[] = { "YES", "NO" };
10317 static char *_GEANT_CREATE_SCONE_YESNO_text[] = { (char*)0, (char*)0 };
10318 static KmParOption _GEANT_CREATE_SCONE_YESNO_type = {
10319 _GEANT_CREATE_SCONE_YESNO_text, (int*)0, (int*)0 };
10320 static KmParameter _GEANT_CREATE_SCONE_YESNO = { "YESNO", 5, "GSPOSP option",
10321 "NO", (char*)0, 8, 2, _GEANT_CREATE_SCONE_YESNO_range, 2,
10322 _GEANT_CREATE_SCONE_YESNO_range, (KmParFlag)0, KmTYPE_OPTION,
10323 &_GEANT_CREATE_SCONE_YESNO_type };
10324 static KmParameter *_GEANT_CREATE_SCONE_parameters[] = {
10325 &_GEANT_CREATE_SCONE_NAME, &_GEANT_CREATE_SCONE_NUMED,
10326 &_GEANT_CREATE_SCONE_INRDW, &_GEANT_CREATE_SCONE_OUTRDW,
10327 &_GEANT_CREATE_SCONE_INRUP, &_GEANT_CREATE_SCONE_OUTRUP,
10328 &_GEANT_CREATE_SCONE_HALFZ, &_GEANT_CREATE_SCONE_YESNO };
10329 static KmCommand _GEANT_CREATE_SCONE = { &_GEANT_CREATE_SCONS,
10330 "/GEANT/CREATE/SCONE", "SCONE", 0, 2, 8, 7, _GEANT_CREATE_SCONE_parameters,
10331 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 0, (char**)0, 0,
10332 (char**)0, (char*)0, (int*)0 };
10334 static KmParameter _GEANT_CREATE_STUBS_NAME = { "NAME", 4, "Volume name",
10335 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10336 KmTYPE_CHAR, (void*)0 };
10337 static KmParInt _GEANT_CREATE_STUBS_NUMED_type = { (char*)0, (char*)0,
10338 (char*)0, (char*)0, 0 };
10339 static KmParameter _GEANT_CREATE_STUBS_NUMED = { "NUMED", 5,
10340 "Tracking medium number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
10341 (KmParFlag)0, KmTYPE_INT, &_GEANT_CREATE_STUBS_NUMED_type };
10342 static KmParReal _GEANT_CREATE_STUBS_INRAD_type = { (char*)0, (char*)0,
10343 (char*)0, (char*)0, 0 };
10344 static KmParameter _GEANT_CREATE_STUBS_INRAD = { "INRAD", 5, "Inside Radius",
10345 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10346 KmTYPE_REAL, &_GEANT_CREATE_STUBS_INRAD_type };
10347 static KmParReal _GEANT_CREATE_STUBS_OUTRAD_type = { (char*)0, (char*)0,
10348 (char*)0, (char*)0, 0 };
10349 static KmParameter _GEANT_CREATE_STUBS_OUTRAD = { "OUTRAD", 6,
10350 "Outside Radius", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
10351 (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_STUBS_OUTRAD_type };
10352 static KmParReal _GEANT_CREATE_STUBS_HALFZ_type = { (char*)0, (char*)0,
10353 (char*)0, (char*)0, 0 };
10354 static KmParameter _GEANT_CREATE_STUBS_HALFZ = { "HALFZ", 5, "Half Z length",
10355 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10356 KmTYPE_REAL, &_GEANT_CREATE_STUBS_HALFZ_type };
10357 static KmParReal _GEANT_CREATE_STUBS_SPHI_type = { "0.", "360.", "0.",
10359 static KmParameter _GEANT_CREATE_STUBS_SPHI = { "SPHI", 4,
10360 "Start of section PHI", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
10361 (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_STUBS_SPHI_type };
10362 static KmParReal _GEANT_CREATE_STUBS_EPHI_type = { "0.", "360.", "0.",
10364 static KmParameter _GEANT_CREATE_STUBS_EPHI = { "EPHI", 4,
10365 "End of section PHI", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
10366 (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_STUBS_EPHI_type };
10367 static char *_GEANT_CREATE_STUBS_YESNO_range[] = { "YES", "NO" };
10368 static char *_GEANT_CREATE_STUBS_YESNO_text[] = { (char*)0, (char*)0 };
10369 static KmParOption _GEANT_CREATE_STUBS_YESNO_type = {
10370 _GEANT_CREATE_STUBS_YESNO_text, (int*)0, (int*)0 };
10371 static KmParameter _GEANT_CREATE_STUBS_YESNO = { "YESNO", 5, "GSPOSP option",
10372 "NO", (char*)0, 8, 2, _GEANT_CREATE_STUBS_YESNO_range, 2,
10373 _GEANT_CREATE_STUBS_YESNO_range, (KmParFlag)0, KmTYPE_OPTION,
10374 &_GEANT_CREATE_STUBS_YESNO_type };
10375 static KmParameter *_GEANT_CREATE_STUBS_parameters[] = {
10376 &_GEANT_CREATE_STUBS_NAME, &_GEANT_CREATE_STUBS_NUMED,
10377 &_GEANT_CREATE_STUBS_INRAD, &_GEANT_CREATE_STUBS_OUTRAD,
10378 &_GEANT_CREATE_STUBS_HALFZ, &_GEANT_CREATE_STUBS_SPHI,
10379 &_GEANT_CREATE_STUBS_EPHI, &_GEANT_CREATE_STUBS_YESNO };
10380 static KmCommand _GEANT_CREATE_STUBS = { &_GEANT_CREATE_SCONE,
10381 "/GEANT/CREATE/STUBS", "STUBS", 0, 2, 8, 7, _GEANT_CREATE_STUBS_parameters,
10382 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 0, (char**)0, 0,
10383 (char**)0, (char*)0, (int*)0 };
10385 static KmParameter _GEANT_CREATE_STUBE_NAME = { "NAME", 4, "Volume name",
10386 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10387 KmTYPE_CHAR, (void*)0 };
10388 static KmParInt _GEANT_CREATE_STUBE_NUMED_type = { (char*)0, (char*)0,
10389 (char*)0, (char*)0, 0 };
10390 static KmParameter _GEANT_CREATE_STUBE_NUMED = { "NUMED", 5,
10391 "Tracking medium number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
10392 (KmParFlag)0, KmTYPE_INT, &_GEANT_CREATE_STUBE_NUMED_type };
10393 static KmParReal _GEANT_CREATE_STUBE_INRAD_type = { (char*)0, (char*)0,
10394 (char*)0, (char*)0, 0 };
10395 static KmParameter _GEANT_CREATE_STUBE_INRAD = { "INRAD", 5, "Inside Radius",
10396 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10397 KmTYPE_REAL, &_GEANT_CREATE_STUBE_INRAD_type };
10398 static KmParReal _GEANT_CREATE_STUBE_OUTRAD_type = { (char*)0, (char*)0,
10399 (char*)0, (char*)0, 0 };
10400 static KmParameter _GEANT_CREATE_STUBE_OUTRAD = { "OUTRAD", 6,
10401 "Outside Radius", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
10402 (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_STUBE_OUTRAD_type };
10403 static KmParReal _GEANT_CREATE_STUBE_HALFZ_type = { (char*)0, (char*)0,
10404 (char*)0, (char*)0, 0 };
10405 static KmParameter _GEANT_CREATE_STUBE_HALFZ = { "HALFZ", 5, "Half Z length",
10406 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10407 KmTYPE_REAL, &_GEANT_CREATE_STUBE_HALFZ_type };
10408 static char *_GEANT_CREATE_STUBE_YESNO_range[] = { "YES", "NO" };
10409 static char *_GEANT_CREATE_STUBE_YESNO_text[] = { (char*)0, (char*)0 };
10410 static KmParOption _GEANT_CREATE_STUBE_YESNO_type = {
10411 _GEANT_CREATE_STUBE_YESNO_text, (int*)0, (int*)0 };
10412 static KmParameter _GEANT_CREATE_STUBE_YESNO = { "YESNO", 5, "GSPOSP option",
10413 "NO", (char*)0, 8, 2, _GEANT_CREATE_STUBE_YESNO_range, 2,
10414 _GEANT_CREATE_STUBE_YESNO_range, (KmParFlag)0, KmTYPE_OPTION,
10415 &_GEANT_CREATE_STUBE_YESNO_type };
10416 static KmParameter *_GEANT_CREATE_STUBE_parameters[] = {
10417 &_GEANT_CREATE_STUBE_NAME, &_GEANT_CREATE_STUBE_NUMED,
10418 &_GEANT_CREATE_STUBE_INRAD, &_GEANT_CREATE_STUBE_OUTRAD,
10419 &_GEANT_CREATE_STUBE_HALFZ, &_GEANT_CREATE_STUBE_YESNO };
10420 static KmCommand _GEANT_CREATE_STUBE = { &_GEANT_CREATE_STUBS,
10421 "/GEANT/CREATE/STUBE", "STUBE", 0, 2, 6, 5, _GEANT_CREATE_STUBE_parameters,
10422 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 0, (char**)0, 0,
10423 (char**)0, (char*)0, (int*)0 };
10425 static KmParameter _GEANT_CREATE_STRD2_NAME = { "NAME", 4, "Volume name",
10426 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10427 KmTYPE_CHAR, (void*)0 };
10428 static KmParInt _GEANT_CREATE_STRD2_NUMED_type = { (char*)0, (char*)0,
10429 (char*)0, (char*)0, 0 };
10430 static KmParameter _GEANT_CREATE_STRD2_NUMED = { "NUMED", 5,
10431 "Tracking medium number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
10432 (KmParFlag)0, KmTYPE_INT, &_GEANT_CREATE_STRD2_NUMED_type };
10433 static KmParReal _GEANT_CREATE_STRD2_HLFDWX_type = { (char*)0, (char*)0,
10434 (char*)0, (char*)0, 0 };
10435 static KmParameter _GEANT_CREATE_STRD2_HLFDWX = { "HLFDWX", 6,
10436 "Half X length in Lower Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
10437 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_STRD2_HLFDWX_type };
10438 static KmParReal _GEANT_CREATE_STRD2_HLFUPX_type = { (char*)0, (char*)0,
10439 (char*)0, (char*)0, 0 };
10440 static KmParameter _GEANT_CREATE_STRD2_HLFUPX = { "HLFUPX", 6,
10441 "Half X length in Upper Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
10442 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_STRD2_HLFUPX_type };
10443 static KmParReal _GEANT_CREATE_STRD2_HLFDWY_type = { (char*)0, (char*)0,
10444 (char*)0, (char*)0, 0 };
10445 static KmParameter _GEANT_CREATE_STRD2_HLFDWY = { "HLFDWY", 6,
10446 "Half Y length in Lower Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
10447 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_STRD2_HLFDWY_type };
10448 static KmParReal _GEANT_CREATE_STRD2_HLFUPY_type = { (char*)0, (char*)0,
10449 (char*)0, (char*)0, 0 };
10450 static KmParameter _GEANT_CREATE_STRD2_HLFUPY = { "HLFUPY", 6,
10451 "Half Y length in Upper Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
10452 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_STRD2_HLFUPY_type };
10453 static KmParReal _GEANT_CREATE_STRD2_HALFZ_type = { (char*)0, (char*)0,
10454 (char*)0, (char*)0, 0 };
10455 static KmParameter _GEANT_CREATE_STRD2_HALFZ = { "HALFZ", 5, "Half Z length",
10456 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10457 KmTYPE_REAL, &_GEANT_CREATE_STRD2_HALFZ_type };
10458 static char *_GEANT_CREATE_STRD2_YESNO_range[] = { "YES", "NO" };
10459 static char *_GEANT_CREATE_STRD2_YESNO_text[] = { (char*)0, (char*)0 };
10460 static KmParOption _GEANT_CREATE_STRD2_YESNO_type = {
10461 _GEANT_CREATE_STRD2_YESNO_text, (int*)0, (int*)0 };
10462 static KmParameter _GEANT_CREATE_STRD2_YESNO = { "YESNO", 5, "GSPOSP option",
10463 "NO", (char*)0, 8, 2, _GEANT_CREATE_STRD2_YESNO_range, 2,
10464 _GEANT_CREATE_STRD2_YESNO_range, (KmParFlag)0, KmTYPE_OPTION,
10465 &_GEANT_CREATE_STRD2_YESNO_type };
10466 static KmParameter *_GEANT_CREATE_STRD2_parameters[] = {
10467 &_GEANT_CREATE_STRD2_NAME, &_GEANT_CREATE_STRD2_NUMED,
10468 &_GEANT_CREATE_STRD2_HLFDWX, &_GEANT_CREATE_STRD2_HLFUPX,
10469 &_GEANT_CREATE_STRD2_HLFDWY, &_GEANT_CREATE_STRD2_HLFUPY,
10470 &_GEANT_CREATE_STRD2_HALFZ, &_GEANT_CREATE_STRD2_YESNO };
10471 static KmCommand _GEANT_CREATE_STRD2 = { &_GEANT_CREATE_STUBE,
10472 "/GEANT/CREATE/STRD2", "STRD2", 0, 2, 8, 7, _GEANT_CREATE_STRD2_parameters,
10473 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 0, (char**)0, 0,
10474 (char**)0, (char*)0, (int*)0 };
10476 static KmParameter _GEANT_CREATE_STRD1_NAME = { "NAME", 4, "Volume name",
10477 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10478 KmTYPE_CHAR, (void*)0 };
10479 static KmParInt _GEANT_CREATE_STRD1_NUMED_type = { (char*)0, (char*)0,
10480 (char*)0, (char*)0, 0 };
10481 static KmParameter _GEANT_CREATE_STRD1_NUMED = { "NUMED", 5,
10482 "Tracking medium number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
10483 (KmParFlag)0, KmTYPE_INT, &_GEANT_CREATE_STRD1_NUMED_type };
10484 static KmParReal _GEANT_CREATE_STRD1_HLFDWX_type = { (char*)0, (char*)0,
10485 (char*)0, (char*)0, 0 };
10486 static KmParameter _GEANT_CREATE_STRD1_HLFDWX = { "HLFDWX", 6,
10487 "Half X length in Lower Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
10488 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_STRD1_HLFDWX_type };
10489 static KmParReal _GEANT_CREATE_STRD1_HLFUPX_type = { (char*)0, (char*)0,
10490 (char*)0, (char*)0, 0 };
10491 static KmParameter _GEANT_CREATE_STRD1_HLFUPX = { "HLFUPX", 6,
10492 "Half X length in Upper Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
10493 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_STRD1_HLFUPX_type };
10494 static KmParReal _GEANT_CREATE_STRD1_HALFY_type = { (char*)0, (char*)0,
10495 (char*)0, (char*)0, 0 };
10496 static KmParameter _GEANT_CREATE_STRD1_HALFY = { "HALFY", 5, "Half Y length",
10497 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10498 KmTYPE_REAL, &_GEANT_CREATE_STRD1_HALFY_type };
10499 static KmParReal _GEANT_CREATE_STRD1_HALFZ_type = { (char*)0, (char*)0,
10500 (char*)0, (char*)0, 0 };
10501 static KmParameter _GEANT_CREATE_STRD1_HALFZ = { "HALFZ", 5, "Half Z length",
10502 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10503 KmTYPE_REAL, &_GEANT_CREATE_STRD1_HALFZ_type };
10504 static char *_GEANT_CREATE_STRD1_YESNO_range[] = { "YES", "NO" };
10505 static char *_GEANT_CREATE_STRD1_YESNO_text[] = { (char*)0, (char*)0 };
10506 static KmParOption _GEANT_CREATE_STRD1_YESNO_type = {
10507 _GEANT_CREATE_STRD1_YESNO_text, (int*)0, (int*)0 };
10508 static KmParameter _GEANT_CREATE_STRD1_YESNO = { "YESNO", 5, "GSPOSP option",
10509 "NO", (char*)0, 8, 2, _GEANT_CREATE_STRD1_YESNO_range, 2,
10510 _GEANT_CREATE_STRD1_YESNO_range, (KmParFlag)0, KmTYPE_OPTION,
10511 &_GEANT_CREATE_STRD1_YESNO_type };
10512 static KmParameter *_GEANT_CREATE_STRD1_parameters[] = {
10513 &_GEANT_CREATE_STRD1_NAME, &_GEANT_CREATE_STRD1_NUMED,
10514 &_GEANT_CREATE_STRD1_HLFDWX, &_GEANT_CREATE_STRD1_HLFUPX,
10515 &_GEANT_CREATE_STRD1_HALFY, &_GEANT_CREATE_STRD1_HALFZ,
10516 &_GEANT_CREATE_STRD1_YESNO };
10517 static KmCommand _GEANT_CREATE_STRD1 = { &_GEANT_CREATE_STRD2,
10518 "/GEANT/CREATE/STRD1", "STRD1", 0, 2, 7, 6, _GEANT_CREATE_STRD1_parameters,
10519 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 0, (char**)0, 0,
10520 (char**)0, (char*)0, (int*)0 };
10522 static KmParameter _GEANT_CREATE_SBOX_NAME = { "NAME", 4, "Volume name",
10523 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10524 KmTYPE_CHAR, (void*)0 };
10525 static KmParInt _GEANT_CREATE_SBOX_NUMED_type = { (char*)0, (char*)0,
10526 (char*)0, (char*)0, 0 };
10527 static KmParameter _GEANT_CREATE_SBOX_NUMED = { "NUMED", 5,
10528 "Tracking medium number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
10529 (KmParFlag)0, KmTYPE_INT, &_GEANT_CREATE_SBOX_NUMED_type };
10530 static KmParReal _GEANT_CREATE_SBOX_HALFX_type = { (char*)0, (char*)0,
10531 (char*)0, (char*)0, 0 };
10532 static KmParameter _GEANT_CREATE_SBOX_HALFX = { "HALFX", 5, "Half X length",
10533 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10534 KmTYPE_REAL, &_GEANT_CREATE_SBOX_HALFX_type };
10535 static KmParReal _GEANT_CREATE_SBOX_HALFY_type = { (char*)0, (char*)0,
10536 (char*)0, (char*)0, 0 };
10537 static KmParameter _GEANT_CREATE_SBOX_HALFY = { "HALFY", 5, "Half Y length",
10538 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10539 KmTYPE_REAL, &_GEANT_CREATE_SBOX_HALFY_type };
10540 static KmParReal _GEANT_CREATE_SBOX_HALFZ_type = { (char*)0, (char*)0,
10541 (char*)0, (char*)0, 0 };
10542 static KmParameter _GEANT_CREATE_SBOX_HALFZ = { "HALFZ", 5, "Half Z length",
10543 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10544 KmTYPE_REAL, &_GEANT_CREATE_SBOX_HALFZ_type };
10545 static char *_GEANT_CREATE_SBOX_YESNO_range[] = { "YES", "NO" };
10546 static char *_GEANT_CREATE_SBOX_YESNO_text[] = { (char*)0, (char*)0 };
10547 static KmParOption _GEANT_CREATE_SBOX_YESNO_type = {
10548 _GEANT_CREATE_SBOX_YESNO_text, (int*)0, (int*)0 };
10549 static KmParameter _GEANT_CREATE_SBOX_YESNO = { "YESNO", 5, "GSPOSP option",
10550 "NO", (char*)0, 8, 2, _GEANT_CREATE_SBOX_YESNO_range, 2,
10551 _GEANT_CREATE_SBOX_YESNO_range, (KmParFlag)0, KmTYPE_OPTION,
10552 &_GEANT_CREATE_SBOX_YESNO_type };
10553 static KmParameter *_GEANT_CREATE_SBOX_parameters[] = {
10554 &_GEANT_CREATE_SBOX_NAME, &_GEANT_CREATE_SBOX_NUMED,
10555 &_GEANT_CREATE_SBOX_HALFX, &_GEANT_CREATE_SBOX_HALFY,
10556 &_GEANT_CREATE_SBOX_HALFZ, &_GEANT_CREATE_SBOX_YESNO };
10557 static KmCommand _GEANT_CREATE_SBOX = { &_GEANT_CREATE_STRD1,
10558 "/GEANT/CREATE/SBOX", "SBOX", 0, 2, 6, 5, _GEANT_CREATE_SBOX_parameters, 0,
10559 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 0, (char**)0, 0,
10560 (char**)0, (char*)0, (int*)0 };
10562 static char *_GEANT_CREATE_guidance[] = {
10563 "It creates volumes of the given shape interactively.",
10564 "CALL GSVOLU(name,shape,numed,par,npar,ivolu)", "where par is a KUIP vector"
10566 static KmMenu _GEANT_CREATE = { (KmMenu*)0, (KmMenu*)0, "/GEANT/CREATE",
10567 "CREATE", 2, &_GEANT_CREATE_SBOX, 3, _GEANT_CREATE_guidance };
10569 static char *_GEANT_GEOMETRY_guidance[] = { "Geometry commands." };
10570 static KmMenu _GEANT_GEOMETRY = { &_GEANT_CREATE, (KmMenu*)0,
10571 "/GEANT/GEOMETRY", "GEOMETRY", 2, &_GEANT_GEOMETRY_OPTI, 1,
10572 _GEANT_GEOMETRY_guidance };
10574 static KmMenu _GEANT = { (KmMenu*)0, &_GEANT_GEOMETRY, "/GEANT", "GEANT", 1,
10575 (KmCommand*)0, 0, (char**)0 };
10577 klnkmenu( &_GEANT, 921023 );
10582 # define gkcont_ gkcont
10583 # define gxcont_ gxcont
10587 # define gkcont_ GKCONT
10588 # define gxcont_ GXCONT
10592 # pragma linkage(GKCONT,FORTRAN)
10593 # pragma linkage(GXCONT,FORTRAN)
10596 extern void gkcont_();
10597 extern void gxcont_();
10602 static char *_GEANT_CONTROL_DEBUG_IDEB_range[] = { "ON", "OFF" };
10603 static char *_GEANT_CONTROL_DEBUG_IDEB_text[] = { (char*)0, (char*)0 };
10604 static KmParOption _GEANT_CONTROL_DEBUG_IDEB_type = {
10605 _GEANT_CONTROL_DEBUG_IDEB_text, (int*)0, (int*)0 };
10606 static KmParameter _GEANT_CONTROL_DEBUG_IDEB = { "IDEB", 4, "Debug option",
10607 "ON", (char*)0, 8, 2, _GEANT_CONTROL_DEBUG_IDEB_range, 2,
10608 _GEANT_CONTROL_DEBUG_IDEB_range, (KmParFlag)0, KmTYPE_OPTION,
10609 &_GEANT_CONTROL_DEBUG_IDEB_type };
10610 static KmParameter *_GEANT_CONTROL_DEBUG_parameters[] = {
10611 &_GEANT_CONTROL_DEBUG_IDEB };
10612 static char *_GEANT_CONTROL_DEBUG_guidance[] = { "If ideb='ON ' then :",
10613 " idebug=1, idemin=1, idemax=1000000, itime=1", "else :",
10614 " idebug=0, idemin=0, idemax=0" };
10615 static KmCommand _GEANT_CONTROL_DEBUG = { (KmCommand*)0,
10616 "/GEANT/CONTROL/DEBUG", "DEBUG", 0, 2, 1, 0, _GEANT_CONTROL_DEBUG_parameters,
10617 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
10618 _GEANT_CONTROL_DEBUG_guidance, 0, (char**)0, (char*)0, (int*)0 };
10620 static KmParInt _GEANT_CONTROL_PRKINE_NUMB_type = { (char*)0, (char*)0,
10621 (char*)0, (char*)0, 0 };
10622 static KmParameter _GEANT_CONTROL_PRKINE_NUMB = { "NUMB", 4, "Track number",
10623 (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
10624 &_GEANT_CONTROL_PRKINE_NUMB_type };
10625 static KmParameter *_GEANT_CONTROL_PRKINE_parameters[] = {
10626 &_GEANT_CONTROL_PRKINE_NUMB };
10627 static char *_GEANT_CONTROL_PRKINE_guidance[] = { "CALL GPKINE(numb)" };
10628 static KmCommand _GEANT_CONTROL_PRKINE = { &_GEANT_CONTROL_DEBUG,
10629 "/GEANT/CONTROL/PRKINE", "PRKINE", 0, 2, 1, 1,
10630 _GEANT_CONTROL_PRKINE_parameters, 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0,
10631 (pCharFunc*)0, 1, _GEANT_CONTROL_PRKINE_guidance, 0, (char**)0, (char*)0,
10634 static KmParInt _GEANT_CONTROL_PPART_NUMB_type = { (char*)0, (char*)0,
10635 (char*)0, (char*)0, 0 };
10636 static KmParameter _GEANT_CONTROL_PPART_NUMB = { "NUMB", 4, "Particle number",
10637 (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
10638 &_GEANT_CONTROL_PPART_NUMB_type };
10639 static KmParameter *_GEANT_CONTROL_PPART_parameters[] = {
10640 &_GEANT_CONTROL_PPART_NUMB };
10641 static char *_GEANT_CONTROL_PPART_guidance[] = { "CALL GPPART(numb)" };
10642 static KmCommand _GEANT_CONTROL_PPART = { &_GEANT_CONTROL_PRKINE,
10643 "/GEANT/CONTROL/PPART", "PPART", 0, 2, 1, 1, _GEANT_CONTROL_PPART_parameters,
10644 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
10645 _GEANT_CONTROL_PPART_guidance, 0, (char**)0, (char*)0, (int*)0 };
10647 static KmParInt _GEANT_CONTROL_SPART_IPART_type = { (char*)0, (char*)0,
10648 (char*)0, (char*)0, 0 };
10649 static KmParameter _GEANT_CONTROL_SPART_IPART = { "IPART", 5,
10650 "Particle number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
10651 (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_SPART_IPART_type };
10652 static KmParameter _GEANT_CONTROL_SPART_NAPART = { "NAPART", 6,
10653 "Particle name", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
10654 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
10655 static KmParInt _GEANT_CONTROL_SPART_ITRTYP_type = { (char*)0, (char*)0,
10656 (char*)0, (char*)0, 0 };
10657 static KmParameter _GEANT_CONTROL_SPART_ITRTYP = { "ITRTYP", 6, " ", (char*)0,
10658 (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
10659 &_GEANT_CONTROL_SPART_ITRTYP_type };
10660 static KmParReal _GEANT_CONTROL_SPART_AMASS_type = { (char*)0, (char*)0,
10661 (char*)0, (char*)0, 0 };
10662 static KmParameter _GEANT_CONTROL_SPART_AMASS = { "AMASS", 5, "Mass",
10663 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10664 KmTYPE_REAL, &_GEANT_CONTROL_SPART_AMASS_type };
10665 static KmParReal _GEANT_CONTROL_SPART_CHARGE_type = { (char*)0, (char*)0,
10666 (char*)0, (char*)0, 0 };
10667 static KmParameter _GEANT_CONTROL_SPART_CHARGE = { "CHARGE", 6, "Charge",
10668 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10669 KmTYPE_REAL, &_GEANT_CONTROL_SPART_CHARGE_type };
10670 static KmParReal _GEANT_CONTROL_SPART_TLIFE_type = { (char*)0, (char*)0,
10671 (char*)0, (char*)0, 0 };
10672 static KmParameter _GEANT_CONTROL_SPART_TLIFE = { "TLIFE", 5, "Lifetime",
10673 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10674 KmTYPE_REAL, &_GEANT_CONTROL_SPART_TLIFE_type };
10675 static KmParReal _GEANT_CONTROL_SPART_UBUF_type = { (char*)0, (char*)0,
10676 (char*)0, (char*)0, 0 };
10677 static KmParameter _GEANT_CONTROL_SPART_UBUF = { "UBUF", 4, " ", (char*)0,
10678 (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
10679 &_GEANT_CONTROL_SPART_UBUF_type };
10680 static KmParInt _GEANT_CONTROL_SPART_NWBUF_type = { (char*)0, (char*)0,
10681 (char*)0, (char*)0, 0 };
10682 static KmParameter _GEANT_CONTROL_SPART_NWBUF = { "NWBUF", 5, " ", (char*)0,
10683 (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
10684 &_GEANT_CONTROL_SPART_NWBUF_type };
10685 static KmParReal _GEANT_CONTROL_SPART_BRATIO_type = { (char*)0, (char*)0,
10686 (char*)0, (char*)0, 0 };
10687 static KmParameter _GEANT_CONTROL_SPART_BRATIO = { "BRATIO", 6,
10688 "Branching ratios", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
10689 (KmParFlag)0, KmTYPE_REAL, &_GEANT_CONTROL_SPART_BRATIO_type };
10690 static KmParInt _GEANT_CONTROL_SPART_MODE_type = { (char*)0, (char*)0,
10691 (char*)0, (char*)0, 0 };
10692 static KmParameter _GEANT_CONTROL_SPART_MODE = { "MODE", 4, "Decay mode",
10693 (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
10694 &_GEANT_CONTROL_SPART_MODE_type };
10695 static KmParameter *_GEANT_CONTROL_SPART_parameters[] = {
10696 &_GEANT_CONTROL_SPART_IPART, &_GEANT_CONTROL_SPART_NAPART,
10697 &_GEANT_CONTROL_SPART_ITRTYP, &_GEANT_CONTROL_SPART_AMASS,
10698 &_GEANT_CONTROL_SPART_CHARGE, &_GEANT_CONTROL_SPART_TLIFE,
10699 &_GEANT_CONTROL_SPART_UBUF, &_GEANT_CONTROL_SPART_NWBUF,
10700 &_GEANT_CONTROL_SPART_BRATIO, &_GEANT_CONTROL_SPART_MODE };
10701 static char *_GEANT_CONTROL_SPART_guidance[] = {
10702 "CALL GSPART(ipart,napart,itrtyp,amass,charge,tlife,ubuf,nwbuf);",
10703 "CALL GSDK(ipart,bratio,mode)" };
10704 static KmCommand _GEANT_CONTROL_SPART = { &_GEANT_CONTROL_PPART,
10705 "/GEANT/CONTROL/SPART", "SPART", 0, 2, 10, 10,
10706 _GEANT_CONTROL_SPART_parameters, 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0,
10707 (pCharFunc*)0, 2, _GEANT_CONTROL_SPART_guidance, 0, (char**)0, (char*)0,
10710 static KmParInt _GEANT_CONTROL_STPAR_ITMED_type = { (char*)0, (char*)0,
10711 (char*)0, (char*)0, 0 };
10712 static KmParameter _GEANT_CONTROL_STPAR_ITMED = { "ITMED", 5, "Medium number",
10713 (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
10714 &_GEANT_CONTROL_STPAR_ITMED_type };
10715 static KmParameter _GEANT_CONTROL_STPAR_CHPAR = { "CHPAR", 5,
10716 "Cut or mechanism", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
10717 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
10718 static KmParReal _GEANT_CONTROL_STPAR_PARVAL_type = { (char*)0, (char*)0,
10719 (char*)0, (char*)0, 0 };
10720 static KmParameter _GEANT_CONTROL_STPAR_PARVAL = { "PARVAL", 6, "Value",
10721 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10722 KmTYPE_REAL, &_GEANT_CONTROL_STPAR_PARVAL_type };
10723 static KmParameter *_GEANT_CONTROL_STPAR_parameters[] = {
10724 &_GEANT_CONTROL_STPAR_ITMED, &_GEANT_CONTROL_STPAR_CHPAR,
10725 &_GEANT_CONTROL_STPAR_PARVAL };
10726 static char *_GEANT_CONTROL_STPAR_guidance[] = {
10727 "CALL GSTPAR(itmed,chpar,parval)" };
10728 static KmCommand _GEANT_CONTROL_STPAR = { &_GEANT_CONTROL_SPART,
10729 "/GEANT/CONTROL/STPAR", "STPAR", 0, 2, 3, 3, _GEANT_CONTROL_STPAR_parameters,
10730 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
10731 _GEANT_CONTROL_STPAR_guidance, 0, (char**)0, (char*)0, (int*)0 };
10733 static KmParInt _GEANT_CONTROL_DRMAT_IMATE_type = { (char*)0, (char*)0,
10734 (char*)0, (char*)0, 0 };
10735 static KmParameter _GEANT_CONTROL_DRMAT_IMATE = { "IMATE", 5,
10736 "Material number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
10737 (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_DRMAT_IMATE_type };
10738 static KmParInt _GEANT_CONTROL_DRMAT_IPART_type = { (char*)0, (char*)0,
10739 (char*)0, (char*)0, 0 };
10740 static KmParameter _GEANT_CONTROL_DRMAT_IPART = { "IPART", 5,
10741 "Particle number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
10742 (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_DRMAT_IPART_type };
10743 static KmParameter _GEANT_CONTROL_DRMAT_MECAN = { "MECAN", 5,
10744 "List of mechanism", "ALL", (char*)0, 20, 0, (char**)0, 0, (char**)0,
10745 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
10746 static KmParameter *_GEANT_CONTROL_DRMAT_parameters[] = {
10747 &_GEANT_CONTROL_DRMAT_IMATE, &_GEANT_CONTROL_DRMAT_IPART,
10748 &_GEANT_CONTROL_DRMAT_MECAN };
10749 static char *_GEANT_CONTROL_DRMAT_guidance[] = {
10750 "CALL GDRMAT(imate,ipart,mecan,nmec)",
10751 "If MECAN = 'ALL' all the mechanisms are plotted. If the material number",
10752 "is negative, the cross sections relative to material ABS(IMATE) will",
10753 "be plotted in barns rather than in 1/cm.",
10754 "Note that it is not possible to plot anything if GSTMED has not been\
10755 called", "for the material number IMATE." };
10756 static KmCommand _GEANT_CONTROL_DRMAT = { &_GEANT_CONTROL_STPAR,
10757 "/GEANT/CONTROL/DRMAT", "DRMAT", 0, 2, 3, 2, _GEANT_CONTROL_DRMAT_parameters,
10758 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 6,
10759 _GEANT_CONTROL_DRMAT_guidance, 0, (char**)0, (char*)0, (int*)0 };
10761 static KmParInt _GEANT_CONTROL_PLMAT_IMATE_type = { (char*)0, (char*)0,
10762 (char*)0, (char*)0, 0 };
10763 static KmParameter _GEANT_CONTROL_PLMAT_IMATE = { "IMATE", 5,
10764 "Material number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
10765 (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_PLMAT_IMATE_type };
10766 static KmParInt _GEANT_CONTROL_PLMAT_IPART_type = { (char*)0, (char*)0,
10767 (char*)0, (char*)0, 0 };
10768 static KmParameter _GEANT_CONTROL_PLMAT_IPART = { "IPART", 5,
10769 "Particle number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
10770 (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_PLMAT_IPART_type };
10771 static KmParameter _GEANT_CONTROL_PLMAT_MECAN = { "MECAN", 5, "Mechanism",
10772 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10773 KmTYPE_CHAR, (void*)0 };
10774 static KmParInt _GEANT_CONTROL_PLMAT_IDM_type = { (char*)0, (char*)0,
10775 (char*)0, (char*)0, 0 };
10776 static KmParameter _GEANT_CONTROL_PLMAT_IDM = { "IDM", 3, "ID mode option",
10777 "0", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
10778 &_GEANT_CONTROL_PLMAT_IDM_type };
10779 static KmParameter *_GEANT_CONTROL_PLMAT_parameters[] = {
10780 &_GEANT_CONTROL_PLMAT_IMATE, &_GEANT_CONTROL_PLMAT_IPART,
10781 &_GEANT_CONTROL_PLMAT_MECAN, &_GEANT_CONTROL_PLMAT_IDM };
10782 static char *_GEANT_CONTROL_PLMAT_guidance[] = {
10783 "CALL GPLMAT(imate,ipart,mecan,nekbin,elow,idm)",
10784 " IDM convention for histogramming mode :",
10785 " IDM.gt.0 fill, print, keep histogram(s)",
10786 " IDM.eq.0 fill, print, delete histogram(s)",
10787 " IDM.lt.0 fill, noprint, keep histogram(s)",
10788 "If MECAN = 'ALL' all the mechanisms are histogrammed. If the material\
10790 "is negative, the cross sections relative to material ABS(IMATE) will",
10791 "be histogrammed in barns rather than in 1/cm." };
10792 static KmCommand _GEANT_CONTROL_PLMAT = { &_GEANT_CONTROL_DRMAT,
10793 "/GEANT/CONTROL/PLMAT", "PLMAT", 0, 2, 4, 3, _GEANT_CONTROL_PLMAT_parameters,
10794 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 8,
10795 _GEANT_CONTROL_PLMAT_guidance, 0, (char**)0, (char*)0, (int*)0 };
10797 static KmParInt _GEANT_CONTROL_PRMAT_IMATE_type = { (char*)0, (char*)0,
10798 (char*)0, (char*)0, 0 };
10799 static KmParameter _GEANT_CONTROL_PRMAT_IMATE = { "IMATE", 5,
10800 "Material number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
10801 (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_PRMAT_IMATE_type };
10802 static KmParInt _GEANT_CONTROL_PRMAT_IPART_type = { (char*)0, (char*)0,
10803 (char*)0, (char*)0, 0 };
10804 static KmParameter _GEANT_CONTROL_PRMAT_IPART = { "IPART", 5,
10805 "Particle number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
10806 (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_PRMAT_IPART_type };
10807 static KmParameter _GEANT_CONTROL_PRMAT_MECAN = { "MECAN", 5, "Mechanism",
10808 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10809 KmTYPE_CHAR, (void*)0 };
10810 static KmParameter *_GEANT_CONTROL_PRMAT_parameters[] = {
10811 &_GEANT_CONTROL_PRMAT_IMATE, &_GEANT_CONTROL_PRMAT_IPART,
10812 &_GEANT_CONTROL_PRMAT_MECAN };
10813 static char *_GEANT_CONTROL_PRMAT_guidance[] = {
10814 " CALL GPRMAT(imate,ipart,mecan,nekbin,elow)" };
10815 static KmCommand _GEANT_CONTROL_PRMAT = { &_GEANT_CONTROL_PLMAT,
10816 "/GEANT/CONTROL/PRMAT", "PRMAT", 0, 2, 3, 3, _GEANT_CONTROL_PRMAT_parameters,
10817 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
10818 _GEANT_CONTROL_PRMAT_guidance, 0, (char**)0, (char*)0, (int*)0 };
10820 static KmParInt _GEANT_CONTROL_PMATE_NUMB_type = { (char*)0, (char*)0,
10821 (char*)0, (char*)0, 0 };
10822 static KmParameter _GEANT_CONTROL_PMATE_NUMB = { "NUMB", 4, "Material number",
10823 (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
10824 &_GEANT_CONTROL_PMATE_NUMB_type };
10825 static KmParameter *_GEANT_CONTROL_PMATE_parameters[] = {
10826 &_GEANT_CONTROL_PMATE_NUMB };
10827 static char *_GEANT_CONTROL_PMATE_guidance[] = { " CALL GPMATE(numb)" };
10828 static KmCommand _GEANT_CONTROL_PMATE = { &_GEANT_CONTROL_PRMAT,
10829 "/GEANT/CONTROL/PMATE", "PMATE", 0, 2, 1, 1, _GEANT_CONTROL_PMATE_parameters,
10830 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
10831 _GEANT_CONTROL_PMATE_guidance, 0, (char**)0, (char*)0, (int*)0 };
10833 static KmParInt _GEANT_CONTROL_SMIXT_IMAT_type = { (char*)0, (char*)0,
10834 (char*)0, (char*)0, 0 };
10835 static KmParameter _GEANT_CONTROL_SMIXT_IMAT = { "IMAT", 4, "Material number",
10836 (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
10837 &_GEANT_CONTROL_SMIXT_IMAT_type };
10838 static KmParameter _GEANT_CONTROL_SMIXT_NAMATE = { "NAMATE", 6,
10839 "Material name", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
10840 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
10841 static KmParReal _GEANT_CONTROL_SMIXT_A_type = { (char*)0, (char*)0,
10842 (char*)0, (char*)0, 0 };
10843 static KmParameter _GEANT_CONTROL_SMIXT_A = { "A", 1, "Atomic weight",
10844 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10845 KmTYPE_REAL, &_GEANT_CONTROL_SMIXT_A_type };
10846 static KmParReal _GEANT_CONTROL_SMIXT_Z_type = { (char*)0, (char*)0,
10847 (char*)0, (char*)0, 0 };
10848 static KmParameter _GEANT_CONTROL_SMIXT_Z = { "Z", 1, "Atomic number",
10849 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10850 KmTYPE_REAL, &_GEANT_CONTROL_SMIXT_Z_type };
10851 static KmParReal _GEANT_CONTROL_SMIXT_DENS_type = { (char*)0, (char*)0,
10852 (char*)0, (char*)0, 0 };
10853 static KmParameter _GEANT_CONTROL_SMIXT_DENS = { "DENS", 4, "Density",
10854 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10855 KmTYPE_REAL, &_GEANT_CONTROL_SMIXT_DENS_type };
10856 static KmParInt _GEANT_CONTROL_SMIXT_NLMAT_type = { (char*)0, (char*)0,
10857 (char*)0, (char*)0, 0 };
10858 static KmParameter _GEANT_CONTROL_SMIXT_NLMAT = { "NLMAT", 5, "Flag for WMAT",
10859 (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
10860 &_GEANT_CONTROL_SMIXT_NLMAT_type };
10861 static KmParReal _GEANT_CONTROL_SMIXT_WMAT_type = { (char*)0, (char*)0,
10862 (char*)0, (char*)0, 0 };
10863 static KmParameter _GEANT_CONTROL_SMIXT_WMAT = { "WMAT", 4,
10864 "Relative weights or n. of atoms in molecule", (char*)0, (char*)0, 12, 0,
10865 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
10866 &_GEANT_CONTROL_SMIXT_WMAT_type };
10867 static KmParameter *_GEANT_CONTROL_SMIXT_parameters[] = {
10868 &_GEANT_CONTROL_SMIXT_IMAT, &_GEANT_CONTROL_SMIXT_NAMATE,
10869 &_GEANT_CONTROL_SMIXT_A, &_GEANT_CONTROL_SMIXT_Z, &_GEANT_CONTROL_SMIXT_DENS,
10870 &_GEANT_CONTROL_SMIXT_NLMAT, &_GEANT_CONTROL_SMIXT_WMAT };
10871 static char *_GEANT_CONTROL_SMIXT_guidance[] = {
10872 " CALL GSMIXT(imat,namate,a,z,dens,nlmat,wmat)" };
10873 static KmCommand _GEANT_CONTROL_SMIXT = { &_GEANT_CONTROL_PMATE,
10874 "/GEANT/CONTROL/SMIXT", "SMIXT", 0, 2, 7, 7, _GEANT_CONTROL_SMIXT_parameters,
10875 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
10876 _GEANT_CONTROL_SMIXT_guidance, 0, (char**)0, (char*)0, (int*)0 };
10878 static KmParInt _GEANT_CONTROL_SMATE_IMAT_type = { (char*)0, (char*)0,
10879 (char*)0, (char*)0, 0 };
10880 static KmParameter _GEANT_CONTROL_SMATE_IMAT = { "IMAT", 4, "Material number",
10881 (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
10882 &_GEANT_CONTROL_SMATE_IMAT_type };
10883 static KmParameter _GEANT_CONTROL_SMATE_NAMATE = { "NAMATE", 6,
10884 "Material name", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
10885 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
10886 static KmParReal _GEANT_CONTROL_SMATE_A_type = { (char*)0, (char*)0,
10887 (char*)0, (char*)0, 0 };
10888 static KmParameter _GEANT_CONTROL_SMATE_A = { "A", 1, "Atomic weight",
10889 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10890 KmTYPE_REAL, &_GEANT_CONTROL_SMATE_A_type };
10891 static KmParReal _GEANT_CONTROL_SMATE_Z_type = { (char*)0, (char*)0,
10892 (char*)0, (char*)0, 0 };
10893 static KmParameter _GEANT_CONTROL_SMATE_Z = { "Z", 1, "Atomic number",
10894 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10895 KmTYPE_REAL, &_GEANT_CONTROL_SMATE_Z_type };
10896 static KmParReal _GEANT_CONTROL_SMATE_DENS_type = { (char*)0, (char*)0,
10897 (char*)0, (char*)0, 0 };
10898 static KmParameter _GEANT_CONTROL_SMATE_DENS = { "DENS", 4, "Density",
10899 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10900 KmTYPE_REAL, &_GEANT_CONTROL_SMATE_DENS_type };
10901 static KmParReal _GEANT_CONTROL_SMATE_RADL_type = { (char*)0, (char*)0,
10902 (char*)0, (char*)0, 0 };
10903 static KmParameter _GEANT_CONTROL_SMATE_RADL = { "RADL", 4,
10904 "Radiation lenght", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
10905 (KmParFlag)0, KmTYPE_REAL, &_GEANT_CONTROL_SMATE_RADL_type };
10906 static KmParReal _GEANT_CONTROL_SMATE_ABSL_type = { (char*)0, (char*)0,
10907 (char*)0, (char*)0, 0 };
10908 static KmParameter _GEANT_CONTROL_SMATE_ABSL = { "ABSL", 4,
10909 "Absorption lenght", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
10910 (KmParFlag)0, KmTYPE_REAL, &_GEANT_CONTROL_SMATE_ABSL_type };
10911 static KmParReal _GEANT_CONTROL_SMATE_UBUF_type = { (char*)0, (char*)0,
10912 (char*)0, (char*)0, 0 };
10913 static KmParameter _GEANT_CONTROL_SMATE_UBUF = { "UBUF", 4, " ", (char*)0,
10914 (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
10915 &_GEANT_CONTROL_SMATE_UBUF_type };
10916 static KmParInt _GEANT_CONTROL_SMATE_NWBUF_type = { (char*)0, (char*)0,
10917 (char*)0, (char*)0, 0 };
10918 static KmParameter _GEANT_CONTROL_SMATE_NWBUF = { "NWBUF", 5, " ", (char*)0,
10919 (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
10920 &_GEANT_CONTROL_SMATE_NWBUF_type };
10921 static KmParameter *_GEANT_CONTROL_SMATE_parameters[] = {
10922 &_GEANT_CONTROL_SMATE_IMAT, &_GEANT_CONTROL_SMATE_NAMATE,
10923 &_GEANT_CONTROL_SMATE_A, &_GEANT_CONTROL_SMATE_Z, &_GEANT_CONTROL_SMATE_DENS,
10924 &_GEANT_CONTROL_SMATE_RADL, &_GEANT_CONTROL_SMATE_ABSL,
10925 &_GEANT_CONTROL_SMATE_UBUF, &_GEANT_CONTROL_SMATE_NWBUF };
10926 static char *_GEANT_CONTROL_SMATE_guidance[] = {
10927 " CALL GSMATE(imat,namate,a,z,dens,radl,absl,ubuf,nwbuf)" };
10928 static KmCommand _GEANT_CONTROL_SMATE = { &_GEANT_CONTROL_SMIXT,
10929 "/GEANT/CONTROL/SMATE", "SMATE", 0, 2, 9, 9, _GEANT_CONTROL_SMATE_parameters,
10930 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
10931 _GEANT_CONTROL_SMATE_guidance, 0, (char**)0, (char*)0, (int*)0 };
10933 static KmParameter _GEANT_CONTROL_PDIGI_CHUSET = { "CHUSET", 6, "User set",
10934 "*", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
10936 static KmParameter _GEANT_CONTROL_PDIGI_CHUDET = { "CHUDET", 6,
10937 "User detector", "*", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10938 KmTYPE_CHAR, (void*)0 };
10939 static KmParameter *_GEANT_CONTROL_PDIGI_parameters[] = {
10940 &_GEANT_CONTROL_PDIGI_CHUSET, &_GEANT_CONTROL_PDIGI_CHUDET };
10941 static char *_GEANT_CONTROL_PDIGI_guidance[] = { " CALL GPDIGI(chuset,chudet)"
10943 static KmCommand _GEANT_CONTROL_PDIGI = { &_GEANT_CONTROL_SMATE,
10944 "/GEANT/CONTROL/PDIGI", "PDIGI", 0, 2, 2, 0, _GEANT_CONTROL_PDIGI_parameters,
10945 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
10946 _GEANT_CONTROL_PDIGI_guidance, 0, (char**)0, (char*)0, (int*)0 };
10948 static KmParameter _GEANT_CONTROL_PHITS_CHUSET = { "CHUSET", 6, "User set",
10949 "*", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
10951 static KmParameter _GEANT_CONTROL_PHITS_CHUDET = { "CHUDET", 6,
10952 "User detector", "*", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10953 KmTYPE_CHAR, (void*)0 };
10954 static KmParInt _GEANT_CONTROL_PHITS_NUMHI_type = { (char*)0, (char*)0,
10955 (char*)0, (char*)0, 0 };
10956 static KmParameter _GEANT_CONTROL_PHITS_NUMHI = { "NUMHI", 5, "Hit number",
10957 "0", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
10958 &_GEANT_CONTROL_PHITS_NUMHI_type };
10959 static KmParameter *_GEANT_CONTROL_PHITS_parameters[] = {
10960 &_GEANT_CONTROL_PHITS_CHUSET, &_GEANT_CONTROL_PHITS_CHUDET,
10961 &_GEANT_CONTROL_PHITS_NUMHI };
10962 static char *_GEANT_CONTROL_PHITS_guidance[] = { " CALL GPHITS(chuset,chudet)"
10964 static KmCommand _GEANT_CONTROL_PHITS = { &_GEANT_CONTROL_PDIGI,
10965 "/GEANT/CONTROL/PHITS", "PHITS", 0, 2, 3, 0, _GEANT_CONTROL_PHITS_parameters,
10966 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
10967 _GEANT_CONTROL_PHITS_guidance, 0, (char**)0, (char*)0, (int*)0 };
10969 static KmParInt _GEANT_CONTROL_OUTPUT_LP_LOUT_type = { (char*)0, (char*)0,
10970 (char*)0, (char*)0, 0 };
10971 static KmParameter _GEANT_CONTROL_OUTPUT_LP_LOUT = { "LOUT", 4,
10972 "New output unit", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
10973 (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_OUTPUT_LP_LOUT_type };
10974 static KmParameter *_GEANT_CONTROL_OUTPUT_LP_parameters[] = {
10975 &_GEANT_CONTROL_OUTPUT_LP_LOUT };
10976 static char *_GEANT_CONTROL_OUTPUT_LP_guidance[] = {
10977 "To change lout in /GCUNIT/",
10978 "Note: unit numbers 5,11,12,13,14,15 are reserved and cannot be used." };
10979 static KmCommand _GEANT_CONTROL_OUTPUT_LP = { &_GEANT_CONTROL_PHITS,
10980 "/GEANT/CONTROL/OUTPUT_LP", "OUTPUT_LP", 0, 2, 1, 1,
10981 _GEANT_CONTROL_OUTPUT_LP_parameters, 0, 0, gxcont_, (IntFunc*)0,
10982 (SUBROUTINE*)0, (pCharFunc*)0, 2, _GEANT_CONTROL_OUTPUT_LP_guidance, 0,
10983 (char**)0, (char*)0, (int*)0 };
10985 static KmParameter _GEANT_CONTROL_PRINT_NAME = { "NAME", 4, "Name", (char*)0,
10986 (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
10988 static KmParInt _GEANT_CONTROL_PRINT_NUMBER_type = { (char*)0, (char*)0,
10989 (char*)0, (char*)0, 0 };
10990 static KmParameter _GEANT_CONTROL_PRINT_NUMBER = { "NUMBER", 6, "Number", "0",
10991 (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
10992 &_GEANT_CONTROL_PRINT_NUMBER_type };
10993 static KmParameter *_GEANT_CONTROL_PRINT_parameters[] = {
10994 &_GEANT_CONTROL_PRINT_NAME, &_GEANT_CONTROL_PRINT_NUMBER };
10995 static char *_GEANT_CONTROL_PRINT_guidance[] = { " CALL GPRINT(name,number)" };
10996 static KmCommand _GEANT_CONTROL_PRINT = { &_GEANT_CONTROL_OUTPUT_LP,
10997 "/GEANT/CONTROL/PRINT", "PRINT", 0, 2, 2, 2, _GEANT_CONTROL_PRINT_parameters,
10998 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
10999 _GEANT_CONTROL_PRINT_guidance, 0, (char**)0, (char*)0, (int*)0 };
11001 static KmParInt _GEANT_CONTROL_MZLOGL_LEVEL_type = { (char*)0, (char*)0,
11002 (char*)0, (char*)0, 0 };
11003 static KmParameter _GEANT_CONTROL_MZLOGL_LEVEL = { "LEVEL", 5, "MZ log level",
11004 "0", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
11005 &_GEANT_CONTROL_MZLOGL_LEVEL_type };
11006 static KmParameter *_GEANT_CONTROL_MZLOGL_parameters[] = {
11007 &_GEANT_CONTROL_MZLOGL_LEVEL };
11008 static char *_GEANT_CONTROL_MZLOGL_guidance[] = {
11009 "Set the log level for the MZ package of ZEBRA: CALL MZLOGL(0,level)",
11010 " LEVEL = -3 no messages at all", " -2 error messages only",
11011 " -1 terse logging", " 0 normal",
11012 " +1 log rare events", " +2 log calls to MZ routines" };
11013 static KmCommand _GEANT_CONTROL_MZLOGL = { &_GEANT_CONTROL_PRINT,
11014 "/GEANT/CONTROL/MZLOGL", "MZLOGL", 0, 2, 1, 1,
11015 _GEANT_CONTROL_MZLOGL_parameters, 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0,
11016 (pCharFunc*)0, 7, _GEANT_CONTROL_MZLOGL_guidance, 0, (char**)0, (char*)0,
11019 static KmParInt _GEANT_CONTROL_SWITCH_ISWI_type = { (char*)0, (char*)0,
11020 (char*)0, (char*)0, 0 };
11021 static KmParameter _GEANT_CONTROL_SWITCH_ISWI = { "ISWI", 4, "Switch number",
11022 (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
11023 &_GEANT_CONTROL_SWITCH_ISWI_type };
11024 static KmParInt _GEANT_CONTROL_SWITCH_IVAL_type = { (char*)0, (char*)0,
11025 (char*)0, (char*)0, 0 };
11026 static KmParameter _GEANT_CONTROL_SWITCH_IVAL = { "IVAL", 4,
11027 "New switch value", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
11028 (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_SWITCH_IVAL_type };
11029 static KmParameter *_GEANT_CONTROL_SWITCH_parameters[] = {
11030 &_GEANT_CONTROL_SWITCH_ISWI, &_GEANT_CONTROL_SWITCH_IVAL };
11031 static char *_GEANT_CONTROL_SWITCH_guidance[] = {
11032 "Change one element of array ISWIT(10) in /GCFLAG/" };
11033 static KmCommand _GEANT_CONTROL_SWITCH = { &_GEANT_CONTROL_MZLOGL,
11034 "/GEANT/CONTROL/SWITCH", "SWITCH", 0, 2, 2, 2,
11035 _GEANT_CONTROL_SWITCH_parameters, 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0,
11036 (pCharFunc*)0, 1, _GEANT_CONTROL_SWITCH_guidance, 0, (char**)0, (char*)0,
11039 static KmParInt _GEANT_CONTROL_RNDM_ISEED1_type = { (char*)0, (char*)0,
11040 (char*)0, (char*)0, 0 };
11041 static KmParameter _GEANT_CONTROL_RNDM_ISEED1 = { "ISEED1", 6,
11042 "First seed for the random number generator", (char*)0, (char*)0, 8, 0,
11043 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
11044 &_GEANT_CONTROL_RNDM_ISEED1_type };
11045 static KmParInt _GEANT_CONTROL_RNDM_ISEED2_type = { (char*)0, (char*)0,
11046 (char*)0, (char*)0, 0 };
11047 static KmParameter _GEANT_CONTROL_RNDM_ISEED2 = { "ISEED2", 6,
11048 "Second seed for the random number generator", (char*)0, (char*)0, 8, 0,
11049 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
11050 &_GEANT_CONTROL_RNDM_ISEED2_type };
11051 static KmParameter *_GEANT_CONTROL_RNDM_parameters[] = {
11052 &_GEANT_CONTROL_RNDM_ISEED1, &_GEANT_CONTROL_RNDM_ISEED2 };
11053 static char *_GEANT_CONTROL_RNDM_guidance[] = {
11054 "Set the seeds for the random number generator. If no numbers are",
11055 "given, the currents seeds are printed." };
11056 static KmCommand _GEANT_CONTROL_RNDM = { &_GEANT_CONTROL_SWITCH,
11057 "/GEANT/CONTROL/RNDM", "RNDM", 0, 2, 2, 0, _GEANT_CONTROL_RNDM_parameters, 0,
11058 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 2,
11059 _GEANT_CONTROL_RNDM_guidance, 0, (char**)0, (char*)0, (int*)0 };
11061 static KmParInt _GEANT_CONTROL_TRIGGER_N_type = { (char*)0, (char*)0,
11062 (char*)0, (char*)0, 0 };
11063 static KmParameter _GEANT_CONTROL_TRIGGER_N = { "N", 1, "Number of events",
11064 "1", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
11065 &_GEANT_CONTROL_TRIGGER_N_type };
11066 static KmParameter *_GEANT_CONTROL_TRIGGER_parameters[] = {
11067 &_GEANT_CONTROL_TRIGGER_N };
11068 static char *_GEANT_CONTROL_TRIGGER_guidance[] = {
11069 "Start one or more new events." };
11070 static KmCommand _GEANT_CONTROL_TRIGGER = { &_GEANT_CONTROL_RNDM,
11071 "/GEANT/CONTROL/TRIGGER", "TRIGGER", 0, 2, 1, 0,
11072 _GEANT_CONTROL_TRIGGER_parameters, 0, 0, gxcont_, (IntFunc*)0,
11073 (SUBROUTINE*)0, (pCharFunc*)0, 1, _GEANT_CONTROL_TRIGGER_guidance, 0,
11074 (char**)0, (char*)0, (int*)0 };
11076 static char *_GEANT_CONTROL_TRACK_guidance[] = {
11077 "Restart tracking, clearing the track and hit",
11078 "banks, but keeping the kinematics." };
11079 static KmCommand _GEANT_CONTROL_TRACK = { &_GEANT_CONTROL_TRIGGER,
11080 "/GEANT/CONTROL/TRACK", "TRACK", 0, 2, 0, 0, (KmParameter**)0, 0, 0, gxcont_,
11081 (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 2, _GEANT_CONTROL_TRACK_guidance,
11082 0, (char**)0, (char*)0, (int*)0 };
11084 static KmParReal _GEANT_CONTROL_GTIME_TIMINT_type = { (char*)0, (char*)0,
11085 (char*)0, (char*)0, 0 };
11086 static KmParameter _GEANT_CONTROL_GTIME_TIMINT = { "TIMINT", 6,
11087 "Total time after initialisation", (char*)0, (char*)0, 12, 0, (char**)0, 0,
11088 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CONTROL_GTIME_TIMINT_type };
11089 static KmParReal _GEANT_CONTROL_GTIME_TIMEND_type = { (char*)0, (char*)0,
11090 (char*)0, (char*)0, 0 };
11091 static KmParameter _GEANT_CONTROL_GTIME_TIMEND = { "TIMEND", 6,
11092 "Time reserved for the termination phase", (char*)0, (char*)0, 12, 0,
11093 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
11094 &_GEANT_CONTROL_GTIME_TIMEND_type };
11095 static KmParInt _GEANT_CONTROL_GTIME_ITIME_type = { (char*)0, (char*)0,
11096 (char*)0, (char*)0, 0 };
11097 static KmParameter _GEANT_CONTROL_GTIME_ITIME = { "ITIME", 5,
11098 "Frequency of control printing", (char*)0, (char*)0, 8, 0, (char**)0, 0,
11099 (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_GTIME_ITIME_type };
11100 static KmParameter *_GEANT_CONTROL_GTIME_parameters[] = {
11101 &_GEANT_CONTROL_GTIME_TIMINT, &_GEANT_CONTROL_GTIME_TIMEND,
11102 &_GEANT_CONTROL_GTIME_ITIME };
11103 static char *_GEANT_CONTROL_GTIME_guidance[] = {
11104 "These commands have limited use in the interactive version. In",
11105 "particular the value of TIMINT is disregarded by GEANT." };
11106 static KmCommand _GEANT_CONTROL_GTIME = { &_GEANT_CONTROL_TRACK,
11107 "/GEANT/CONTROL/GTIME", "GTIME", 0, 2, 3, 3, _GEANT_CONTROL_GTIME_parameters,
11108 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 2,
11109 _GEANT_CONTROL_GTIME_guidance, 0, (char**)0, (char*)0, (int*)0 };
11111 static char *_GEANT_CONTROL_SORD_ISTORD_range[] = { "1", "0" };
11112 static KmParInt _GEANT_CONTROL_SORD_ISTORD_type = { (char*)0, (char*)0,
11113 (char*)0, (char*)0, 0 };
11114 static KmParameter _GEANT_CONTROL_SORD_ISTORD = { "ISTORD", 6,
11115 "Flag to control user ordering of the stack", "1", (char*)0, 8, 2,
11116 _GEANT_CONTROL_SORD_ISTORD_range, 2, _GEANT_CONTROL_SORD_ISTORD_range,
11117 (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_SORD_ISTORD_type };
11118 static KmParameter *_GEANT_CONTROL_SORD_parameters[] = {
11119 &_GEANT_CONTROL_SORD_ISTORD };
11120 static char *_GEANT_CONTROL_SORD_guidance[] = {
11121 "If ISTORD is set to 1, the particle with the highest value of the",
11122 "user weight UPWGHT will be selected to be tracked next." };
11123 static KmCommand _GEANT_CONTROL_SORD = { &_GEANT_CONTROL_GTIME,
11124 "/GEANT/CONTROL/SORD", "SORD", 0, 2, 1, 1, _GEANT_CONTROL_SORD_parameters, 0,
11125 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 2,
11126 _GEANT_CONTROL_SORD_guidance, 0, (char**)0, (char*)0, (int*)0 };
11128 static KmParInt _GEANT_CONTROL_RUNG_IDRUN_type = { (char*)0, (char*)0,
11129 (char*)0, (char*)0, 0 };
11130 static KmParameter _GEANT_CONTROL_RUNG_IDRUN = { "IDRUN", 5,
11131 "User run number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
11132 (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_RUNG_IDRUN_type };
11133 static KmParInt _GEANT_CONTROL_RUNG_IDEVT_type = { (char*)0, (char*)0,
11134 (char*)0, (char*)0, 0 };
11135 static KmParameter _GEANT_CONTROL_RUNG_IDEVT = { "IDEVT", 5,
11136 "User starting event number", (char*)0, (char*)0, 8, 0, (char**)0, 0,
11137 (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_RUNG_IDEVT_type };
11138 static KmParameter *_GEANT_CONTROL_RUNG_parameters[] = {
11139 &_GEANT_CONTROL_RUNG_IDRUN, &_GEANT_CONTROL_RUNG_IDEVT };
11140 static char *_GEANT_CONTROL_RUNG_guidance[] = {
11141 "Set the run number and the starting value for the user event number." };
11142 static KmCommand _GEANT_CONTROL_RUNG = { &_GEANT_CONTROL_SORD,
11143 "/GEANT/CONTROL/RUNG", "RUNG", 0, 2, 2, 2, _GEANT_CONTROL_RUNG_parameters, 0,
11144 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
11145 _GEANT_CONTROL_RUNG_guidance, 0, (char**)0, (char*)0, (int*)0 };
11147 static KmParInt _GEANT_CONTROL_KINE_IKINE_type = { (char*)0, (char*)0,
11148 (char*)0, (char*)0, 0 };
11149 static KmParameter _GEANT_CONTROL_KINE_IKINE = { "IKINE", 5, "IKINE", "1",
11150 (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
11151 &_GEANT_CONTROL_KINE_IKINE_type };
11152 static KmParReal _GEANT_CONTROL_KINE_PKINE1_type = { (char*)0, (char*)0,
11153 (char*)0, (char*)0, 0 };
11154 static KmParameter _GEANT_CONTROL_KINE_PKINE1 = { "PKINE1", 6, "PKINE(1)",
11155 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
11156 KmTYPE_REAL, &_GEANT_CONTROL_KINE_PKINE1_type };
11157 static KmParReal _GEANT_CONTROL_KINE_PKINE2_type = { (char*)0, (char*)0,
11158 (char*)0, (char*)0, 0 };
11159 static KmParameter _GEANT_CONTROL_KINE_PKINE2 = { "PKINE2", 6, "PKINE(2)",
11160 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
11161 KmTYPE_REAL, &_GEANT_CONTROL_KINE_PKINE2_type };
11162 static KmParReal _GEANT_CONTROL_KINE_PKINE3_type = { (char*)0, (char*)0,
11163 (char*)0, (char*)0, 0 };
11164 static KmParameter _GEANT_CONTROL_KINE_PKINE3 = { "PKINE3", 6, "PKINE(3)",
11165 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
11166 KmTYPE_REAL, &_GEANT_CONTROL_KINE_PKINE3_type };
11167 static KmParReal _GEANT_CONTROL_KINE_PKINE4_type = { (char*)0, (char*)0,
11168 (char*)0, (char*)0, 0 };
11169 static KmParameter _GEANT_CONTROL_KINE_PKINE4 = { "PKINE4", 6, "PKINE(4)",
11170 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
11171 KmTYPE_REAL, &_GEANT_CONTROL_KINE_PKINE4_type };
11172 static KmParReal _GEANT_CONTROL_KINE_PKINE5_type = { (char*)0, (char*)0,
11173 (char*)0, (char*)0, 0 };
11174 static KmParameter _GEANT_CONTROL_KINE_PKINE5 = { "PKINE5", 6, "PKINE(5)",
11175 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
11176 KmTYPE_REAL, &_GEANT_CONTROL_KINE_PKINE5_type };
11177 static KmParReal _GEANT_CONTROL_KINE_PKINE6_type = { (char*)0, (char*)0,
11178 (char*)0, (char*)0, 0 };
11179 static KmParameter _GEANT_CONTROL_KINE_PKINE6 = { "PKINE6", 6, "PKINE(6)",
11180 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
11181 KmTYPE_REAL, &_GEANT_CONTROL_KINE_PKINE6_type };
11182 static KmParReal _GEANT_CONTROL_KINE_PKINE7_type = { (char*)0, (char*)0,
11183 (char*)0, (char*)0, 0 };
11184 static KmParameter _GEANT_CONTROL_KINE_PKINE7 = { "PKINE7", 6, "PKINE(7)",
11185 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
11186 KmTYPE_REAL, &_GEANT_CONTROL_KINE_PKINE7_type };
11187 static KmParReal _GEANT_CONTROL_KINE_PKINE8_type = { (char*)0, (char*)0,
11188 (char*)0, (char*)0, 0 };
11189 static KmParameter _GEANT_CONTROL_KINE_PKINE8 = { "PKINE8", 6, "PKINE(8)",
11190 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
11191 KmTYPE_REAL, &_GEANT_CONTROL_KINE_PKINE8_type };
11192 static KmParReal _GEANT_CONTROL_KINE_PKINE9_type = { (char*)0, (char*)0,
11193 (char*)0, (char*)0, 0 };
11194 static KmParameter _GEANT_CONTROL_KINE_PKINE9 = { "PKINE9", 6, "PKINE(9)",
11195 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
11196 KmTYPE_REAL, &_GEANT_CONTROL_KINE_PKINE9_type };
11197 static KmParReal _GEANT_CONTROL_KINE_PKINE10_type = { (char*)0, (char*)0,
11198 (char*)0, (char*)0, 0 };
11199 static KmParameter _GEANT_CONTROL_KINE_PKINE10 = { "PKINE10", 7, "PKINE(10)",
11200 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
11201 KmTYPE_REAL, &_GEANT_CONTROL_KINE_PKINE10_type };
11202 static KmParameter *_GEANT_CONTROL_KINE_parameters[] = {
11203 &_GEANT_CONTROL_KINE_IKINE, &_GEANT_CONTROL_KINE_PKINE1,
11204 &_GEANT_CONTROL_KINE_PKINE2, &_GEANT_CONTROL_KINE_PKINE3,
11205 &_GEANT_CONTROL_KINE_PKINE4, &_GEANT_CONTROL_KINE_PKINE5,
11206 &_GEANT_CONTROL_KINE_PKINE6, &_GEANT_CONTROL_KINE_PKINE7,
11207 &_GEANT_CONTROL_KINE_PKINE8, &_GEANT_CONTROL_KINE_PKINE9,
11208 &_GEANT_CONTROL_KINE_PKINE10 };
11209 static char *_GEANT_CONTROL_KINE_guidance[] = {
11210 "Set the variables in /GCFLAG/ IKINE, PKINE(10)" };
11211 static KmCommand _GEANT_CONTROL_KINE = { &_GEANT_CONTROL_RUNG,
11212 "/GEANT/CONTROL/KINE", "KINE", 0, 2, 11, 1, _GEANT_CONTROL_KINE_parameters,
11213 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
11214 _GEANT_CONTROL_KINE_guidance, 0, (char**)0, (char*)0, (int*)0 };
11216 static char *_GEANT_CONTROL_guidance[] = { "Control commands." };
11217 static KmMenu _GEANT_CONTROL = { (KmMenu*)0, (KmMenu*)0, "/GEANT/CONTROL",
11218 "CONTROL", 2, &_GEANT_CONTROL_KINE, 1, _GEANT_CONTROL_guidance };
11220 static KmMenu _GEANT = { (KmMenu*)0, &_GEANT_CONTROL, "/GEANT", "GEANT", 1,
11221 (KmCommand*)0, 0, (char**)0 };
11223 klnkmenu( &_GEANT, 921023 );
11228 # define gkdz_ gkdz
11229 # define gxdz_ gxdz
11233 # define gkdz_ GKDZ
11234 # define gxdz_ GXDZ
11238 # pragma linkage(GKDZ,FORTRAN)
11239 # pragma linkage(GXDZ,FORTRAN)
11242 extern void gkdz_();
11243 extern void gxdz_();
11248 static KmParameter _GEANT_DZ_DIRZ_PATH = { "PATH", 4,
11249 "Name of the RZ directory to analyse", (char*)0, (char*)0, 20, 0, (char**)0,
11250 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
11251 static KmParameter *_GEANT_DZ_DIRZ_parameters[] = { &_GEANT_DZ_DIRZ_PATH };
11252 static char *_GEANT_DZ_DIRZ_guidance[] = {
11253 "Facility to display RZ directory trees.",
11254 " CALL DZDIRZ(0,LDUMMY,0,path,'N',1,0,1)" };
11255 static KmCommand _GEANT_DZ_DIRZ = { (KmCommand*)0, "/GEANT/DZ/DIRZ", "DIRZ",
11256 0, 2, 1, 0, _GEANT_DZ_DIRZ_parameters, 0, 0, gxdz_, (IntFunc*)0,
11257 (SUBROUTINE*)0, (pCharFunc*)0, 2, _GEANT_DZ_DIRZ_guidance, 0, (char**)0,
11258 (char*)0, (int*)0 };
11260 static KmParameter _GEANT_DZ_DISP_BANK = { "BANK", 4, "Name of the bank",
11261 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
11262 KmTYPE_CHAR, (void*)0 };
11263 static KmParameter _GEANT_DZ_DISP_PATH = { "PATH", 4, "Name of the doc file",
11264 " ", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
11266 static KmParInt _GEANT_DZ_DISP_NUMBER_type = { (char*)0, (char*)0,
11267 (char*)0, (char*)0, 0 };
11268 static KmParameter _GEANT_DZ_DISP_NUMBER = { "NUMBER", 6,
11269 "Number of the bank", "1", (char*)0, 8, 0, (char**)0, 0, (char**)0,
11270 (KmParFlag)0, KmTYPE_INT, &_GEANT_DZ_DISP_NUMBER_type };
11271 static KmParameter *_GEANT_DZ_DISP_parameters[] = { &_GEANT_DZ_DISP_BANK,
11272 &_GEANT_DZ_DISP_PATH, &_GEANT_DZ_DISP_NUMBER };
11273 static char *_GEANT_DZ_DISP_guidance[] = { "Interactive bank display tool.",
11274 " CALL DZDISP(IXSTOR,LBANK,path,'N',1,0,1,IWTYPE)" };
11275 static KmCommand _GEANT_DZ_DISP = { &_GEANT_DZ_DIRZ, "/GEANT/DZ/DISP", "DISP",
11276 0, 2, 3, 1, _GEANT_DZ_DISP_parameters, 0, 0, gxdz_, (IntFunc*)0,
11277 (SUBROUTINE*)0, (pCharFunc*)0, 2, _GEANT_DZ_DISP_guidance, 0, (char**)0,
11278 (char*)0, (int*)0 };
11280 static KmParInt _GEANT_DZ_DDIV_IDIV_type = { (char*)0, (char*)0, (char*)0,
11282 static KmParameter _GEANT_DZ_DDIV_IDIV = { "IDIV", 4, "Division number", "2",
11283 (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
11284 &_GEANT_DZ_DDIV_IDIV_type };
11285 static KmParameter _GEANT_DZ_DDIV_PATH = { "PATH", 4, "Name of the doc file",
11286 " ", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
11288 static KmParameter *_GEANT_DZ_DDIV_parameters[] = { &_GEANT_DZ_DDIV_IDIV,
11289 &_GEANT_DZ_DDIV_PATH };
11290 static char *_GEANT_DZ_DDIV_guidance[] = {
11291 "Facility to display the layout of stores and divisions.",
11292 " CALL DZDDIV(idiv,LDUMMY,path,'IN',1,0,1,IWTYPE)" };
11293 static KmCommand _GEANT_DZ_DDIV = { &_GEANT_DZ_DISP, "/GEANT/DZ/DDIV", "DDIV",
11294 0, 2, 2, 0, _GEANT_DZ_DDIV_parameters, 0, 0, gxdz_, (IntFunc*)0,
11295 (SUBROUTINE*)0, (pCharFunc*)0, 2, _GEANT_DZ_DDIV_guidance, 0, (char**)0,
11296 (char*)0, (int*)0 };
11298 static KmParInt _GEANT_DZ_STORE_IXSTOR_type = { "0", "24", "0", "24", 0 };
11299 static KmParameter _GEANT_DZ_STORE_IXSTOR = { "IXSTOR", 6, "Store number",
11300 "0", (char*)0, 3, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
11301 &_GEANT_DZ_STORE_IXSTOR_type };
11302 static KmParameter *_GEANT_DZ_STORE_parameters[] = { &_GEANT_DZ_STORE_IXSTOR };
11303 static char *_GEANT_DZ_STORE_guidance[] = {
11304 "Display the structure of the ZEBRA store IXSTOR.",
11305 "Output the parameters characterizing the store, followed by a",
11306 "list of all divisions and all link areas associated with the store in",
11308 static KmCommand _GEANT_DZ_STORE = { &_GEANT_DZ_DDIV, "/GEANT/DZ/STORE",
11309 "STORE", 0, 2, 1, 0, _GEANT_DZ_STORE_parameters, 0, 0, gxdz_, (IntFunc*)0,
11310 (SUBROUTINE*)0, (pCharFunc*)0, 4, _GEANT_DZ_STORE_guidance, 0, (char**)0,
11311 (char*)0, (int*)0 };
11313 static KmParInt _GEANT_DZ_VERIFY_IDIV_type = { "0", "24", "0", "24", 0 };
11314 static KmParameter _GEANT_DZ_VERIFY_IDIV = { "IDIV", 4, "Division number ",
11315 "0", (char*)0, 3, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
11316 &_GEANT_DZ_VERIFY_IDIV_type };
11317 static KmParOption _GEANT_DZ_VERIFY_CHOPT_type = { (char**)0, (int*)0, (int*)0
11319 static KmParameter _GEANT_DZ_VERIFY_CHOPT = { "CHOPT", 5, "Options", "CLSU",
11320 (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_OPTION,
11321 &_GEANT_DZ_VERIFY_CHOPT_type };
11322 static KmParameter *_GEANT_DZ_VERIFY_parameters[] = { &_GEANT_DZ_VERIFY_IDIV,
11323 &_GEANT_DZ_VERIFY_CHOPT };
11324 static char *_GEANT_DZ_VERIFY_guidance[] = {
11325 "Check the structure of one or more ZEBRA divisions.",
11326 "The verification detail depends on the settings in CHOPT.",
11327 " CHOPT='C' Check chaining of banks only",
11328 " CHOPT='L' Check validity of the structural links (implies 'C')",
11329 " CHOPT='S' Check the store parameters",
11330 " CHOPT='U' Check the validity of the up and origin (implies 'C')",
11331 " CHOPT='F' Errors are considered fatal and generate a call to ZFATAL" };
11332 static KmCommand _GEANT_DZ_VERIFY = { &_GEANT_DZ_STORE, "/GEANT/DZ/VERIFY",
11333 "VERIFY", 0, 2, 2, 0, _GEANT_DZ_VERIFY_parameters, 0, 0, gxdz_, (IntFunc*)0,
11334 (SUBROUTINE*)0, (pCharFunc*)0, 7, _GEANT_DZ_VERIFY_guidance, 0, (char**)0,
11335 (char*)0, (int*)0 };
11337 static KmParInt _GEANT_DZ_SNAP_IDIV_type = { "0", "24", "0", "24", 0 };
11338 static KmParameter _GEANT_DZ_SNAP_IDIV = { "IDIV", 4, "Division number ", "2",
11339 (char*)0, 3, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
11340 &_GEANT_DZ_SNAP_IDIV_type };
11341 static KmParOption _GEANT_DZ_SNAP_CHOPT_type = { (char**)0, (int*)0, (int*)0 };
11342 static KmParameter _GEANT_DZ_SNAP_CHOPT = { "CHOPT", 5, "Options", "M",
11343 (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_OPTION,
11344 &_GEANT_DZ_SNAP_CHOPT_type };
11345 static KmParameter *_GEANT_DZ_SNAP_parameters[] = { &_GEANT_DZ_SNAP_IDIV,
11346 &_GEANT_DZ_SNAP_CHOPT };
11347 static char *_GEANT_DZ_SNAP_guidance[] = { "Snap of one or more divisions.",
11348 "Provides a snapshot of one or more divisions in a ZEBRA store.",
11349 "The kind of information provided is controlled by CHOPT.",
11350 " CHOPT='M' Print Map entry for each bank",
11351 " CHOPT='E' Extend map entry to dump all links of each bank",
11352 " (otherwise only as many links as will fit on a line)",
11353 " CHOPT='F' Full. Dump all active banks, links and data",
11354 " CHOPT='K' Kill. Dropped banks to be treated as active",
11355 " (dropped banks are not normally dumped under D or F option)",
11356 " CHOPT='L' Dump all Link areas associated with the store",
11357 " CHOPT='W' Dump the Working space, links and data",
11358 " CHOPT='Z' Dump the information in hexadecimal." };
11359 static KmCommand _GEANT_DZ_SNAP = { &_GEANT_DZ_VERIFY, "/GEANT/DZ/SNAP",
11360 "SNAP", 0, 2, 2, 0, _GEANT_DZ_SNAP_parameters, 0, 0, gxdz_, (IntFunc*)0,
11361 (SUBROUTINE*)0, (pCharFunc*)0, 12, _GEANT_DZ_SNAP_guidance, 0, (char**)0,
11362 (char*)0, (int*)0 };
11364 static KmParameter _GEANT_DZ_SHOW_NAME = { "NAME", 4, "Bank name", (char*)0,
11365 (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
11367 static KmParInt _GEANT_DZ_SHOW_NUMBER_type = { (char*)0, (char*)0,
11368 (char*)0, (char*)0, 0 };
11369 static KmParameter _GEANT_DZ_SHOW_NUMBER = { "NUMBER", 6, "Bank number", "1",
11370 (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
11371 &_GEANT_DZ_SHOW_NUMBER_type };
11372 static KmParOption _GEANT_DZ_SHOW_CHOPT_type = { (char**)0, (int*)0, (int*)0 };
11373 static KmParameter _GEANT_DZ_SHOW_CHOPT = { "CHOPT", 5, "Options", "BSV",
11374 (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_OPTION,
11375 &_GEANT_DZ_SHOW_CHOPT_type };
11376 static KmParameter *_GEANT_DZ_SHOW_parameters[] = { &_GEANT_DZ_SHOW_NAME,
11377 &_GEANT_DZ_SHOW_NUMBER, &_GEANT_DZ_SHOW_CHOPT };
11378 static char *_GEANT_DZ_SHOW_guidance[] = {
11379 "Display the contents of a bank or a data structure",
11380 "identified by its NAME and NUMBER.",
11381 "The output format of the data part is controlled by the internal",
11382 "or external I/O characteristic.", " CHOPT='B' Print the bank.",
11383 " CHOPT='S' Print the bank contents from left to right Sideways",
11384 " with up to ten elements per line.",
11385 " CHOPT='V' Print the vertical (down) structure.",
11386 " CHOPT='D' Print the bank contents from top to bottom Downwards",
11387 " with five elements per line.",
11388 " CHOPT='L' Print the linear structure.",
11389 " CHOPT='Z' Print the data part of each bank in hexadecimal format" };
11390 static KmCommand _GEANT_DZ_SHOW = { &_GEANT_DZ_SNAP, "/GEANT/DZ/SHOW", "SHOW",
11391 0, 2, 3, 1, _GEANT_DZ_SHOW_parameters, 0, 0, gxdz_, (IntFunc*)0,
11392 (SUBROUTINE*)0, (pCharFunc*)0, 12, _GEANT_DZ_SHOW_guidance, 0, (char**)0,
11393 (char*)0, (int*)0 };
11395 static KmParameter _GEANT_DZ_SURV_NAME = { "NAME", 4, "Bank name", (char*)0,
11396 (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
11398 static KmParInt _GEANT_DZ_SURV_NUMBER_type = { (char*)0, (char*)0,
11399 (char*)0, (char*)0, 0 };
11400 static KmParameter _GEANT_DZ_SURV_NUMBER = { "NUMBER", 6, "Bank number", "1",
11401 (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
11402 &_GEANT_DZ_SURV_NUMBER_type };
11403 static KmParameter *_GEANT_DZ_SURV_parameters[] = { &_GEANT_DZ_SURV_NAME,
11404 &_GEANT_DZ_SURV_NUMBER };
11405 static char *_GEANT_DZ_SURV_guidance[] = {
11406 "Print a survey of the structure identified by NAME, NUMBER." };
11407 static KmCommand _GEANT_DZ_SURV = { &_GEANT_DZ_SHOW, "/GEANT/DZ/SURV", "SURV",
11408 0, 2, 2, 1, _GEANT_DZ_SURV_parameters, 0, 0, gxdz_, (IntFunc*)0,
11409 (SUBROUTINE*)0, (pCharFunc*)0, 1, _GEANT_DZ_SURV_guidance, 0, (char**)0,
11410 (char*)0, (int*)0 };
11412 static KmMenu _GEANT_DZ = { (KmMenu*)0, (KmMenu*)0, "/GEANT/DZ", "DZ", 2,
11413 &_GEANT_DZ_SURV, 0, (char**)0 };
11415 static KmMenu _GEANT = { (KmMenu*)0, &_GEANT_DZ, "/GEANT", "GEANT", 1,
11416 (KmCommand*)0, 0, (char**)0 };
11418 klnkmenu( &_GEANT, 921023 );
11423 # define gkfz_ gkfz
11424 # define gxfz_ gxfz
11428 # define gkfz_ GKFZ
11429 # define gxfz_ GXFZ
11433 # pragma linkage(GKFZ,FORTRAN)
11434 # pragma linkage(GXFZ,FORTRAN)
11437 extern void gkfz_();
11438 extern void gxfz_();
11443 static KmParInt _GEANT_FZ_FZCLOSE_LUN_type = { (char*)0, (char*)0,
11444 (char*)0, (char*)0, 0 };
11445 static KmParameter _GEANT_FZ_FZCLOSE_LUN = { "LUN", 3,
11446 "Fortran unit of the FZ to close", (char*)0, (char*)0, 8, 0, (char**)0, 0,
11447 (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_FZ_FZCLOSE_LUN_type };
11448 static KmParameter *_GEANT_FZ_FZCLOSE_parameters[] = { &_GEANT_FZ_FZCLOSE_LUN
11450 static char *_GEANT_FZ_FZCLOSE_guidance[] = { "Equivalent to a call to:",
11451 " CALL GCLOSE(LUN,IER)" };
11452 static KmCommand _GEANT_FZ_FZCLOSE = { (KmCommand*)0, "/GEANT/FZ/FZCLOSE",
11453 "FZCLOSE", 0, 2, 1, 1, _GEANT_FZ_FZCLOSE_parameters, 0, 0, gxfz_,
11454 (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 2, _GEANT_FZ_FZCLOSE_guidance, 0,
11455 (char**)0, (char*)0, (int*)0 };
11457 static KmParInt _GEANT_FZ_FZOUT_LUN_type = { (char*)0, (char*)0, (char*)0,
11459 static KmParameter _GEANT_FZ_FZOUT_LUN = { "LUN", 3,
11460 "Fortran unit of the FZ file", (char*)0, (char*)0, 8, 0, (char**)0, 0,
11461 (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_FZ_FZOUT_LUN_type };
11462 static KmParameter _GEANT_FZ_FZOUT_KEYSU = { "KEYSU", 5,
11463 "Name of the data structure to be saved", (char*)0, (char*)0, 20, 0,
11464 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
11465 static KmParInt _GEANT_FZ_FZOUT_IDENT_type = { (char*)0, (char*)0,
11466 (char*)0, (char*)0, 0 };
11467 static KmParameter _GEANT_FZ_FZOUT_IDENT = { "IDENT", 5,
11468 "Version of the data structure to be saved", "1", (char*)0, 8, 0, (char**)0,
11469 0, (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_FZ_FZOUT_IDENT_type };
11470 static KmParameter *_GEANT_FZ_FZOUT_parameters[] = { &_GEANT_FZ_FZOUT_LUN,
11471 &_GEANT_FZ_FZOUT_KEYSU, &_GEANT_FZ_FZOUT_IDENT };
11472 static char *_GEANT_FZ_FZOUT_guidance[] = { "Equivalent to a call to:",
11473 " CALL GFOUT(LUN,KEYSU,1,IDENT,' ',IER)" };
11474 static KmCommand _GEANT_FZ_FZOUT = { &_GEANT_FZ_FZCLOSE, "/GEANT/FZ/FZOUT",
11475 "FZOUT", 0, 2, 3, 2, _GEANT_FZ_FZOUT_parameters, 0, 0, gxfz_, (IntFunc*)0,
11476 (SUBROUTINE*)0, (pCharFunc*)0, 2, _GEANT_FZ_FZOUT_guidance, 0, (char**)0,
11477 (char*)0, (int*)0 };
11479 static KmParInt _GEANT_FZ_FZOPEN_LUN_type = { (char*)0, (char*)0, (char*)0,
11481 static KmParameter _GEANT_FZ_FZOPEN_LUN = { "LUN", 3,
11482 "Fortran unit with which to open the file", (char*)0, (char*)0, 8, 0,
11483 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_FZ_FZOPEN_LUN_type
11485 static KmParameter _GEANT_FZ_FZOPEN_FILE = { "FILE", 4,
11486 "Name of the file to be opened", (char*)0, (char*)0, 20, 0, (char**)0, 0,
11487 (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
11488 static KmParameter _GEANT_FZ_FZOPEN_LUNTYP = { "LUNTYP", 6,
11489 "Type of FZ file to be opened by GOPEN", "XI", (char*)0, 20, 0, (char**)0, 0,
11490 (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
11491 static KmParInt _GEANT_FZ_FZOPEN_LEN_type = { (char*)0, (char*)0, (char*)0,
11493 static KmParameter _GEANT_FZ_FZOPEN_LEN = { "LEN", 3,
11494 "Recordlenght of the file", "0", (char*)0, 8, 0, (char**)0, 0, (char**)0,
11495 (KmParFlag)0, KmTYPE_INT, &_GEANT_FZ_FZOPEN_LEN_type };
11496 static KmParOption _GEANT_FZ_FZOPEN_CHOPT_type = { (char**)0, (int*)0, (int*)0
11498 static KmParameter _GEANT_FZ_FZOPEN_CHOPT = { "CHOPT", 5,
11499 "Optional parameter to specify the action", " ", (char*)0, 20, 0, (char**)0,
11500 0, (char**)0, (KmParFlag)0, KmTYPE_OPTION, &_GEANT_FZ_FZOPEN_CHOPT_type };
11501 static KmParameter *_GEANT_FZ_FZOPEN_parameters[] = { &_GEANT_FZ_FZOPEN_LUN,
11502 &_GEANT_FZ_FZOPEN_FILE, &_GEANT_FZ_FZOPEN_LUNTYP, &_GEANT_FZ_FZOPEN_LEN,
11503 &_GEANT_FZ_FZOPEN_CHOPT };
11504 static char *_GEANT_FZ_FZOPEN_guidance[] = { "Equivalent to a call to:",
11505 " CALL GOPEN(LUN,FILE,LUNTYP,LEN,IER)",
11506 "If CHOPT = I then a call to GFIN or GFOUT will be performed in addition",
11507 "according to the value of LUNTYP, with the key INIT to save or retrieve",
11508 "the whole initialization data structure." };
11509 static KmCommand _GEANT_FZ_FZOPEN = { &_GEANT_FZ_FZOUT, "/GEANT/FZ/FZOPEN",
11510 "FZOPEN", 0, 2, 5, 4, _GEANT_FZ_FZOPEN_parameters, 0, 0, gxfz_, (IntFunc*)0,
11511 (SUBROUTINE*)0, (pCharFunc*)0, 5, _GEANT_FZ_FZOPEN_guidance, 0, (char**)0,
11512 (char*)0, (int*)0 };
11514 static KmParInt _GEANT_FZ_FZIN_LUN_type = { (char*)0, (char*)0, (char*)0,
11516 static KmParameter _GEANT_FZ_FZIN_LUN = { "LUN", 3,
11517 "Fortran unit of the FZ file", (char*)0, (char*)0, 8, 0, (char**)0, 0,
11518 (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_FZ_FZIN_LUN_type };
11519 static KmParameter _GEANT_FZ_FZIN_KEYSU = { "KEYSU", 5,
11520 "Name of the data structure to be retrieved", (char*)0, (char*)0, 20, 0,
11521 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
11522 static KmParInt _GEANT_FZ_FZIN_IDENT_type = { (char*)0, (char*)0, (char*)0,
11524 static KmParameter _GEANT_FZ_FZIN_IDENT = { "IDENT", 5,
11525 "Version of the data structure to be retrieved", "0", (char*)0, 8, 0,
11526 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_FZ_FZIN_IDENT_type
11528 static KmParameter *_GEANT_FZ_FZIN_parameters[] = { &_GEANT_FZ_FZIN_LUN,
11529 &_GEANT_FZ_FZIN_KEYSU, &_GEANT_FZ_FZIN_IDENT };
11530 static char *_GEANT_FZ_FZIN_guidance[] = { "Equivalent to a call to:",
11531 " CALL GFIN(LUN,KEYSU,1,IDENT,' ',IER)" };
11532 static KmCommand _GEANT_FZ_FZIN = { &_GEANT_FZ_FZOPEN, "/GEANT/FZ/FZIN",
11533 "FZIN", 0, 2, 3, 2, _GEANT_FZ_FZIN_parameters, 0, 0, gxfz_, (IntFunc*)0,
11534 (SUBROUTINE*)0, (pCharFunc*)0, 2, _GEANT_FZ_FZIN_guidance, 0, (char**)0,
11535 (char*)0, (int*)0 };
11537 static char *_GEANT_FZ_guidance[] = { "ZEBRA/FZ commands" };
11538 static KmMenu _GEANT_FZ = { (KmMenu*)0, (KmMenu*)0, "/GEANT/FZ", "FZ", 2,
11539 &_GEANT_FZ_FZIN, 1, _GEANT_FZ_guidance };
11541 static KmMenu _GEANT = { (KmMenu*)0, &_GEANT_FZ, "/GEANT", "GEANT", 1,
11542 (KmCommand*)0, 0, (char**)0 };
11544 klnkmenu( &_GEANT, 921023 );
11549 # define gkrz_ gkrz
11550 # define gxrz_ gxrz
11554 # define gkrz_ GKRZ
11555 # define gxrz_ GXRZ
11559 # pragma linkage(GKRZ,FORTRAN)
11560 # pragma linkage(GXRZ,FORTRAN)
11563 extern void gkrz_();
11564 extern void gxrz_();
11569 static KmParameter _GEANT_RZ_FREE_CHDIR = { "CHDIR", 5, "Lock identifier",
11570 "RZFILE", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
11571 KmTYPE_CHAR, (void*)0 };
11572 static KmParameter *_GEANT_RZ_FREE_parameters[] = { &_GEANT_RZ_FREE_CHDIR };
11573 static char *_GEANT_RZ_FREE_guidance[] = { "Free an RZ directory." };
11574 static KmCommand _GEANT_RZ_FREE = { (KmCommand*)0, "/GEANT/RZ/FREE", "FREE",
11575 0, 2, 1, 1, _GEANT_RZ_FREE_parameters, 0, 0, gxrz_, (IntFunc*)0,
11576 (SUBROUTINE*)0, (pCharFunc*)0, 1, _GEANT_RZ_FREE_guidance, 0, (char**)0,
11577 (char*)0, (int*)0 };
11579 static KmParameter _GEANT_RZ_LOCK_CHDIR = { "CHDIR", 5, "Lock identifier",
11580 "RZFILE", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
11581 KmTYPE_CHAR, (void*)0 };
11582 static KmParameter *_GEANT_RZ_LOCK_parameters[] = { &_GEANT_RZ_LOCK_CHDIR };
11583 static char *_GEANT_RZ_LOCK_guidance[] = { "Lock an RZ directory." };
11584 static KmCommand _GEANT_RZ_LOCK = { &_GEANT_RZ_FREE, "/GEANT/RZ/LOCK", "LOCK",
11585 0, 2, 1, 1, _GEANT_RZ_LOCK_parameters, 0, 0, gxrz_, (IntFunc*)0,
11586 (SUBROUTINE*)0, (pCharFunc*)0, 1, _GEANT_RZ_LOCK_guidance, 0, (char**)0,
11587 (char*)0, (int*)0 };
11589 static KmParameter _GEANT_RZ_SCR_OBJECT = { "OBJECT", 6, "Structure name",
11590 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
11591 KmTYPE_CHAR, (void*)0 };
11592 static KmParInt _GEANT_RZ_SCR_IDVERS_type = { (char*)0, (char*)0, (char*)0,
11594 static KmParameter _GEANT_RZ_SCR_IDVERS = { "IDVERS", 6, "Version number",
11595 "1", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
11596 &_GEANT_RZ_SCR_IDVERS_type };
11597 static KmParameter *_GEANT_RZ_SCR_parameters[] = { &_GEANT_RZ_SCR_OBJECT,
11598 &_GEANT_RZ_SCR_IDVERS };
11599 static char *_GEANT_RZ_SCR_guidance[] = {
11600 "Delete entry identified by OBJECT,IDVERS on RZ file.",
11601 "OBJECT may be : MATE,TMED,VOLU,ROTM,SETS,PART,SCAN, *",
11602 "If OBJECT= * delete all entries with IDVERS." };
11603 static KmCommand _GEANT_RZ_SCR = { &_GEANT_RZ_LOCK, "/GEANT/RZ/SCR", "SCR", 0,
11604 2, 2, 1, _GEANT_RZ_SCR_parameters, 0, 0, gxrz_, (IntFunc*)0, (SUBROUTINE*)0,
11605 (pCharFunc*)0, 3, _GEANT_RZ_SCR_guidance, 0, (char**)0, (char*)0, (int*)0 };
11607 static KmParInt _GEANT_RZ_PURGE_NKEEP_type = { (char*)0, (char*)0,
11608 (char*)0, (char*)0, 0 };
11609 static KmParameter _GEANT_RZ_PURGE_NKEEP = { "NKEEP", 5,
11610 "Number of cycles to keep", "1", (char*)0, 8, 0, (char**)0, 0, (char**)0,
11611 (KmParFlag)0, KmTYPE_INT, &_GEANT_RZ_PURGE_NKEEP_type };
11612 static KmParameter *_GEANT_RZ_PURGE_parameters[] = { &_GEANT_RZ_PURGE_NKEEP };
11613 static char *_GEANT_RZ_PURGE_guidance[] = { "Purge an RZ directory." };
11614 static KmCommand _GEANT_RZ_PURGE = { &_GEANT_RZ_SCR, "/GEANT/RZ/PURGE",
11615 "PURGE", 0, 2, 1, 0, _GEANT_RZ_PURGE_parameters, 0, 0, gxrz_, (IntFunc*)0,
11616 (SUBROUTINE*)0, (pCharFunc*)0, 1, _GEANT_RZ_PURGE_guidance, 0, (char**)0,
11617 (char*)0, (int*)0 };
11619 static KmParameter _GEANT_RZ_LDIR_CHPATH = { "CHPATH", 6, "Path name", " ",
11620 (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
11622 static KmParOption _GEANT_RZ_LDIR_CHOPT_type = { (char**)0, (int*)0, (int*)0 };
11623 static KmParameter _GEANT_RZ_LDIR_CHOPT = { "CHOPT", 5, "CHOPT", " ",
11624 (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_OPTION,
11625 &_GEANT_RZ_LDIR_CHOPT_type };
11626 static KmParameter *_GEANT_RZ_LDIR_parameters[] = { &_GEANT_RZ_LDIR_CHPATH,
11627 &_GEANT_RZ_LDIR_CHOPT };
11628 static char *_GEANT_RZ_LDIR_guidance[] = {
11629 "List the contents of a directory (memory or disk).",
11630 "To list all RZ files currently open, type 'LD //'." };
11631 static KmCommand _GEANT_RZ_LDIR = { &_GEANT_RZ_PURGE, "/GEANT/RZ/LDIR",
11632 "LDIR", 0, 2, 2, 0, _GEANT_RZ_LDIR_parameters, 0, 0, gxrz_, (IntFunc*)0,
11633 (SUBROUTINE*)0, (pCharFunc*)0, 2, _GEANT_RZ_LDIR_guidance, 0, (char**)0,
11634 (char*)0, (int*)0 };
11636 static KmParameter _GEANT_RZ_OUT_OBJECT = { "OBJECT", 6, "Structure name",
11637 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
11638 KmTYPE_CHAR, (void*)0 };
11639 static KmParInt _GEANT_RZ_OUT_IDVERS_type = { (char*)0, (char*)0, (char*)0,
11641 static KmParameter _GEANT_RZ_OUT_IDVERS = { "IDVERS", 6, "Version number",
11642 "1", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
11643 &_GEANT_RZ_OUT_IDVERS_type };
11644 static KmParOption _GEANT_RZ_OUT_CHOPT_type = { (char**)0, (int*)0, (int*)0 };
11645 static KmParameter _GEANT_RZ_OUT_CHOPT = { "CHOPT", 5, "Option", " ",
11646 (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_OPTION,
11647 &_GEANT_RZ_OUT_CHOPT_type };
11648 static KmParameter *_GEANT_RZ_OUT_parameters[] = { &_GEANT_RZ_OUT_OBJECT,
11649 &_GEANT_RZ_OUT_IDVERS, &_GEANT_RZ_OUT_CHOPT };
11650 static char *_GEANT_RZ_OUT_guidance[] = {
11651 "Write data structure identified by OBJECT,IDVERS to RZ file.",
11652 " MATE write JMATE structure", " TMED write JTMED structure",
11653 " VOLU write JVOLUM structure", " ROTM write JROTM structure",
11654 " SETS write JSET structure", " PART write JPART structure",
11655 " SCAN write LSCAN structure", " INIT write all above data structures" };
11656 static KmCommand _GEANT_RZ_OUT = { &_GEANT_RZ_LDIR, "/GEANT/RZ/OUT", "OUT", 0,
11657 2, 3, 1, _GEANT_RZ_OUT_parameters, 0, 0, gxrz_, (IntFunc*)0, (SUBROUTINE*)0,
11658 (pCharFunc*)0, 9, _GEANT_RZ_OUT_guidance, 0, (char**)0, (char*)0, (int*)0 };
11660 static KmParameter _GEANT_RZ_IN_OBJECT = { "OBJECT", 6, "Structure name",
11661 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
11662 KmTYPE_CHAR, (void*)0 };
11663 static KmParInt _GEANT_RZ_IN_IDVERS_type = { (char*)0, (char*)0, (char*)0,
11665 static KmParameter _GEANT_RZ_IN_IDVERS = { "IDVERS", 6, "Version number", "1",
11666 (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
11667 &_GEANT_RZ_IN_IDVERS_type };
11668 static KmParOption _GEANT_RZ_IN_CHOPT_type = { (char**)0, (int*)0, (int*)0 };
11669 static KmParameter _GEANT_RZ_IN_CHOPT = { "CHOPT", 5, "Option", " ", (char*)0,
11670 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_OPTION,
11671 &_GEANT_RZ_IN_CHOPT_type };
11672 static KmParameter *_GEANT_RZ_IN_parameters[] = { &_GEANT_RZ_IN_OBJECT,
11673 &_GEANT_RZ_IN_IDVERS, &_GEANT_RZ_IN_CHOPT };
11674 static char *_GEANT_RZ_IN_guidance[] = {
11675 "Read data structure identified by OBJECT,IDVERS into memory.",
11676 " MATE read JMATE structure", " TMED read JTMED structure",
11677 " VOLU read JVOLUM structure", " ROTM read JROTM structure",
11678 " SETS read JSET structure", " PART read JPART structure",
11679 " SCAN read LSCAN structure", " INIT read all above data structures" };
11680 static KmCommand _GEANT_RZ_IN = { &_GEANT_RZ_OUT, "/GEANT/RZ/IN", "IN", 0, 2,
11681 3, 1, _GEANT_RZ_IN_parameters, 0, 0, gxrz_, (IntFunc*)0, (SUBROUTINE*)0,
11682 (pCharFunc*)0, 9, _GEANT_RZ_IN_guidance, 0, (char**)0, (char*)0, (int*)0 };
11684 static KmParameter _GEANT_RZ_CDIR_CHPATH = { "CHPATH", 6, "Path name", " ",
11685 (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
11687 static KmParOption _GEANT_RZ_CDIR_CHOPT_type = { (char**)0, (int*)0, (int*)0 };
11688 static KmParameter _GEANT_RZ_CDIR_CHOPT = { "CHOPT", 5, "CHOPT", " ",
11689 (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_OPTION,
11690 &_GEANT_RZ_CDIR_CHOPT_type };
11691 static KmParameter *_GEANT_RZ_CDIR_parameters[] = { &_GEANT_RZ_CDIR_CHPATH,
11692 &_GEANT_RZ_CDIR_CHOPT };
11693 static char *_GEANT_RZ_CDIR_guidance[] = {
11694 "Change or print the current directory.",
11695 " Ex. CD dir1 ; make DIR1 the new CWD",
11696 " CD //file1/dir2 ; make //FILE1/DIR2 the new CWD",
11697 " CD ; print the name of the CWD" };
11698 static KmCommand _GEANT_RZ_CDIR = { &_GEANT_RZ_IN, "/GEANT/RZ/CDIR", "CDIR",
11699 0, 2, 2, 0, _GEANT_RZ_CDIR_parameters, 0, 0, gxrz_, (IntFunc*)0,
11700 (SUBROUTINE*)0, (pCharFunc*)0, 4, _GEANT_RZ_CDIR_guidance, 0, (char**)0,
11701 (char*)0, (int*)0 };
11703 static KmParameter _GEANT_RZ_MDIR_CHDIR = { "CHDIR", 5, "Directory name",
11704 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
11705 KmTYPE_CHAR, (void*)0 };
11706 static KmParOption _GEANT_RZ_MDIR_CHOPT_type = { (char**)0, (int*)0, (int*)0 };
11707 static KmParameter _GEANT_RZ_MDIR_CHOPT = { "CHOPT", 5, "Options", " ",
11708 (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_OPTION,
11709 &_GEANT_RZ_MDIR_CHOPT_type };
11710 static KmParameter *_GEANT_RZ_MDIR_parameters[] = { &_GEANT_RZ_MDIR_CHDIR,
11711 &_GEANT_RZ_MDIR_CHOPT };
11712 static char *_GEANT_RZ_MDIR_guidance[] = {
11713 "To create a new RZ directory below the current directory.", "with",
11714 " RZTAGS(1)='Object'", " RZTAGS(2)='Idvers-NR '" };
11715 static KmCommand _GEANT_RZ_MDIR = { &_GEANT_RZ_CDIR, "/GEANT/RZ/MDIR", "MDIR",
11716 0, 2, 2, 1, _GEANT_RZ_MDIR_parameters, 0, 0, gxrz_, (IntFunc*)0,
11717 (SUBROUTINE*)0, (pCharFunc*)0, 4, _GEANT_RZ_MDIR_guidance, 0, (char**)0,
11718 (char*)0, (int*)0 };
11720 static KmParInt _GEANT_RZ_REND_LUNRZ_type = { (char*)0, (char*)0, (char*)0,
11722 static KmParameter _GEANT_RZ_REND_LUNRZ = { "LUNRZ", 5, "Logical unit number",
11723 (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
11724 &_GEANT_RZ_REND_LUNRZ_type };
11725 static KmParameter *_GEANT_RZ_REND_parameters[] = { &_GEANT_RZ_REND_LUNRZ };
11726 static char *_GEANT_RZ_REND_guidance[] = {
11727 "Close an RZ file opened by GRFILE on logical unit LUNRZ.",
11728 " CALL GREND(LUNRZ)" };
11729 static KmCommand _GEANT_RZ_REND = { &_GEANT_RZ_MDIR, "/GEANT/RZ/REND", "REND",
11730 0, 2, 1, 1, _GEANT_RZ_REND_parameters, 0, 0, gxrz_, (IntFunc*)0,
11731 (SUBROUTINE*)0, (pCharFunc*)0, 2, _GEANT_RZ_REND_guidance, 0, (char**)0,
11732 (char*)0, (int*)0 };
11734 static KmParInt _GEANT_RZ_FILE_LUN_type = { (char*)0, (char*)0, (char*)0,
11736 static KmParameter _GEANT_RZ_FILE_LUN = { "LUN", 3, "Logical unit number",
11737 (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
11738 &_GEANT_RZ_FILE_LUN_type };
11739 static KmParameter _GEANT_RZ_FILE_FNAME = { "FNAME", 5, "File name", (char*)0,
11740 (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
11742 static char *_GEANT_RZ_FILE_CHOPT_range[] = { " ", "A", "N", "U" };
11743 static char *_GEANT_RZ_FILE_CHOPT_text[] = { (char*)0, (char*)0, (char*)0,
11745 static KmParOption _GEANT_RZ_FILE_CHOPT_type = { _GEANT_RZ_FILE_CHOPT_text,
11746 (int*)0, (int*)0 };
11747 static KmParameter _GEANT_RZ_FILE_CHOPT = { "CHOPT", 5, "Options", " ",
11748 (char*)0, 8, 4, _GEANT_RZ_FILE_CHOPT_range, 4, _GEANT_RZ_FILE_CHOPT_range,
11749 (KmParFlag)0, KmTYPE_OPTION, &_GEANT_RZ_FILE_CHOPT_type };
11750 static KmParameter *_GEANT_RZ_FILE_parameters[] = { &_GEANT_RZ_FILE_LUN,
11751 &_GEANT_RZ_FILE_FNAME, &_GEANT_RZ_FILE_CHOPT };
11752 static char *_GEANT_RZ_FILE_guidance[] = { "Open a GRZ file.",
11753 " CHOPT=' ' readonly mode", " CHOPT='U' update mode",
11754 " CHOPT='N' create new file",
11755 " CHOPT='I' Read all structures from existing file",
11756 " CHOPT='O' Write all structures on file" };
11757 static KmCommand _GEANT_RZ_FILE = { &_GEANT_RZ_REND, "/GEANT/RZ/FILE", "FILE",
11758 0, 2, 3, 2, _GEANT_RZ_FILE_parameters, 0, 0, gxrz_, (IntFunc*)0,
11759 (SUBROUTINE*)0, (pCharFunc*)0, 6, _GEANT_RZ_FILE_guidance, 0, (char**)0,
11760 (char*)0, (int*)0 };
11762 static KmParInt _GEANT_RZ_PQUEST_IQ1_type = { (char*)0, (char*)0, (char*)0,
11764 static KmParameter _GEANT_RZ_PQUEST_IQ1 = { "IQ1", 3,
11765 "Lower limit for IQ index", "1", (char*)0, 8, 0, (char**)0, 0, (char**)0,
11766 (KmParFlag)0, KmTYPE_INT, &_GEANT_RZ_PQUEST_IQ1_type };
11767 static KmParInt _GEANT_RZ_PQUEST_IQ2_type = { (char*)0, (char*)0, (char*)0,
11769 static KmParameter _GEANT_RZ_PQUEST_IQ2 = { "IQ2", 3,
11770 "Upper limit for IQ index", "20", (char*)0, 8, 0, (char**)0, 0, (char**)0,
11771 (KmParFlag)0, KmTYPE_INT, &_GEANT_RZ_PQUEST_IQ2_type };
11772 static KmParameter *_GEANT_RZ_PQUEST_parameters[] = { &_GEANT_RZ_PQUEST_IQ1,
11773 &_GEANT_RZ_PQUEST_IQ2 };
11774 static char *_GEANT_RZ_PQUEST_guidance[] = {
11775 "Print the array IQUEST in /QUEST/." };
11776 static KmCommand _GEANT_RZ_PQUEST = { &_GEANT_RZ_FILE, "/GEANT/RZ/PQUEST",
11777 "PQUEST", 0, 2, 2, 0, _GEANT_RZ_PQUEST_parameters, 0, 0, gxrz_, (IntFunc*)0,
11778 (SUBROUTINE*)0, (pCharFunc*)0, 1, _GEANT_RZ_PQUEST_guidance, 0, (char**)0,
11779 (char*)0, (int*)0 };
11781 static char *_GEANT_RZ_guidance[] = { "ZEBRA/RZ commands." };
11782 static KmMenu _GEANT_RZ = { (KmMenu*)0, (KmMenu*)0, "/GEANT/RZ", "RZ", 2,
11783 &_GEANT_RZ_PQUEST, 1, _GEANT_RZ_guidance };
11785 static KmMenu _GEANT = { (KmMenu*)0, &_GEANT_RZ, "/GEANT", "GEANT", 1,
11786 (KmCommand*)0, 0, (char**)0 };
11788 klnkmenu( &_GEANT, 921023 );
11793 # define gkscan_ gkscan
11794 # define gxscan_ gxscan
11798 # define gkscan_ GKSCAN
11799 # define gxscan_ GXSCAN
11803 # pragma linkage(GKSCAN,FORTRAN)
11804 # pragma linkage(GXSCAN,FORTRAN)
11807 extern void gkscan_();
11808 extern void gxscan_();
11813 static KmParInt _GEANT_SCAN_HSCAN_IDPHI_type = { (char*)0, (char*)0,
11814 (char*)0, (char*)0, 0 };
11815 static KmParameter _GEANT_SCAN_HSCAN_IDPHI = { "IDPHI", 5,
11816 "Histogram/phi identifier", "1000", (char*)0, 8, 0, (char**)0, 0, (char**)0,
11817 (KmParFlag)0, KmTYPE_INT, &_GEANT_SCAN_HSCAN_IDPHI_type };
11818 static KmParameter _GEANT_SCAN_HSCAN_VOLUME = { "VOLUME", 6, "Volume name",
11819 "XXXX", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
11821 static char *_GEANT_SCAN_HSCAN_CHOPT_range[] = { " ", "O", "P", "I", "X", "L"
11823 static char *_GEANT_SCAN_HSCAN_CHOPT_text[] = { (char*)0, (char*)0, (char*)0,
11824 (char*)0, (char*)0, (char*)0 };
11825 static KmParOption _GEANT_SCAN_HSCAN_CHOPT_type = {
11826 _GEANT_SCAN_HSCAN_CHOPT_text, (int*)0, (int*)0 };
11827 static KmParameter _GEANT_SCAN_HSCAN_CHOPT = { "CHOPT", 5, "List of options",
11828 "OPX", (char*)0, 8, 6, _GEANT_SCAN_HSCAN_CHOPT_range, 6,
11829 _GEANT_SCAN_HSCAN_CHOPT_range, (KmParFlag)0, KmTYPE_OPTION,
11830 &_GEANT_SCAN_HSCAN_CHOPT_type };
11831 static KmParameter *_GEANT_SCAN_HSCAN_parameters[] = {
11832 &_GEANT_SCAN_HSCAN_IDPHI, &_GEANT_SCAN_HSCAN_VOLUME, &_GEANT_SCAN_HSCAN_CHOPT
11834 static char *_GEANT_SCAN_HSCAN_guidance[] = {
11835 "Generates and plots an histogram of physics quantities such as",
11836 "the total number of radiation lengths or interaction lengths",
11837 "as a function of the SCAN parameter TETA for a given value of PHI.",
11838 " CHOPT='O' histogram is generated at Exit of VOLUME.",
11839 " CHOPT='I' histogram is generated at Entry of VOLUME.",
11840 " CHOPT='X' radiation lengths", " CHOPT='L' Interaction lengths",
11841 " CHOPT='P' Plot the histogram", "If VOLUME='XXXX' Mother volume is used.",
11842 "The histogram identifier IDPHI is used to also identify which",
11843 "PHI division to plot: IPHI=MOD(IDPHI,1000).",
11844 "If IPHI=0, then all PHI divisions are generated (not plotted)",
11845 "with histogram identifiers IDPHI+PHI division number." };
11846 static KmCommand _GEANT_SCAN_HSCAN = { (KmCommand*)0, "/GEANT/SCAN/HSCAN",
11847 "HSCAN", 0, 2, 3, 1, _GEANT_SCAN_HSCAN_parameters, 0, 0, gxscan_,
11848 (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 13, _GEANT_SCAN_HSCAN_guidance,
11849 0, (char**)0, (char*)0, (int*)0 };
11851 static KmParInt _GEANT_SCAN_LSCAN_ID_type = { (char*)0, (char*)0, (char*)0,
11853 static KmParameter _GEANT_SCAN_LSCAN_ID = { "ID", 2, "Lego plot identifier",
11854 "2000", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
11855 &_GEANT_SCAN_LSCAN_ID_type };
11856 static KmParameter _GEANT_SCAN_LSCAN_VOLUME = { "VOLUME", 6, "Volume name",
11857 "XXXX", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
11859 static char *_GEANT_SCAN_LSCAN_CHOPT_range[] = { " ", "O", "P", "I", "X", "L"
11861 static char *_GEANT_SCAN_LSCAN_CHOPT_text[] = { (char*)0, (char*)0, (char*)0,
11862 (char*)0, (char*)0, (char*)0 };
11863 static KmParOption _GEANT_SCAN_LSCAN_CHOPT_type = {
11864 _GEANT_SCAN_LSCAN_CHOPT_text, (int*)0, (int*)0 };
11865 static KmParameter _GEANT_SCAN_LSCAN_CHOPT = { "CHOPT", 5, "List of options",
11866 "OPX", (char*)0, 8, 6, _GEANT_SCAN_LSCAN_CHOPT_range, 6,
11867 _GEANT_SCAN_LSCAN_CHOPT_range, (KmParFlag)0, KmTYPE_OPTION,
11868 &_GEANT_SCAN_LSCAN_CHOPT_type };
11869 static KmParameter *_GEANT_SCAN_LSCAN_parameters[] = { &_GEANT_SCAN_LSCAN_ID,
11870 &_GEANT_SCAN_LSCAN_VOLUME, &_GEANT_SCAN_LSCAN_CHOPT };
11871 static char *_GEANT_SCAN_LSCAN_guidance[] = {
11872 "Generates and plot a table of physics quantities such as",
11873 "the total number of radiation lengths or interaction lengths",
11874 "in function of the SCAN parameters TETA,PHI.",
11875 " CHOPT='O' table is generated at Exit of VOLUME.",
11876 " CHOPT='I' table is generated at Entry of VOLUME.",
11877 " CHOPT='X' radiation lengths", " CHOPT='L' Interaction lengths",
11878 " CHOPT='P' Plot the table", "If VOLUME='XXXX' Mother volume is used." };
11879 static KmCommand _GEANT_SCAN_LSCAN = { &_GEANT_SCAN_HSCAN,
11880 "/GEANT/SCAN/LSCAN", "LSCAN", 0, 2, 3, 1, _GEANT_SCAN_LSCAN_parameters, 0, 0,
11881 gxscan_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 9,
11882 _GEANT_SCAN_LSCAN_guidance, 0, (char**)0, (char*)0, (int*)0 };
11884 static KmParInt _GEANT_SCAN_PCUTS_IPARAM_type = { "0", "1", "0", "1", 0 };
11885 static KmParameter _GEANT_SCAN_PCUTS_IPARAM = { "IPARAM", 6,
11886 "Parametrization Flag", (char*)0, (char*)0, 2, 0, (char**)0, 0, (char**)0,
11887 (KmParFlag)0, KmTYPE_INT, &_GEANT_SCAN_PCUTS_IPARAM_type };
11888 static KmParReal _GEANT_SCAN_PCUTS_PCUTGA_type = { (char*)0, (char*)0,
11889 (char*)0, (char*)0, 0 };
11890 static KmParameter _GEANT_SCAN_PCUTS_PCUTGA = { "PCUTGA", 6,
11891 "Parametrization Cut for gammas", (char*)0, (char*)0, 12, 0, (char**)0, 0,
11892 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_SCAN_PCUTS_PCUTGA_type };
11893 static KmParReal _GEANT_SCAN_PCUTS_PCUTEL_type = { (char*)0, (char*)0,
11894 (char*)0, (char*)0, 0 };
11895 static KmParameter _GEANT_SCAN_PCUTS_PCUTEL = { "PCUTEL", 6,
11896 "Parametrization Cut for electrons", (char*)0, (char*)0, 12, 0, (char**)0, 0,
11897 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_SCAN_PCUTS_PCUTEL_type };
11898 static KmParReal _GEANT_SCAN_PCUTS_PCUTHA_type = { (char*)0, (char*)0,
11899 (char*)0, (char*)0, 0 };
11900 static KmParameter _GEANT_SCAN_PCUTS_PCUTHA = { "PCUTHA", 6,
11901 "Parametrization Cut for charged hadrons", (char*)0, (char*)0, 12, 0,
11902 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
11903 &_GEANT_SCAN_PCUTS_PCUTHA_type };
11904 static KmParReal _GEANT_SCAN_PCUTS_PCUTNE_type = { (char*)0, (char*)0,
11905 (char*)0, (char*)0, 0 };
11906 static KmParameter _GEANT_SCAN_PCUTS_PCUTNE = { "PCUTNE", 6,
11907 "Parametrization Cut for neutral hadrons", (char*)0, (char*)0, 12, 0,
11908 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
11909 &_GEANT_SCAN_PCUTS_PCUTNE_type };
11910 static KmParReal _GEANT_SCAN_PCUTS_PCUTMU_type = { (char*)0, (char*)0,
11911 (char*)0, (char*)0, 0 };
11912 static KmParameter _GEANT_SCAN_PCUTS_PCUTMU = { "PCUTMU", 6,
11913 "Parametrization Cut for muons", (char*)0, (char*)0, 12, 0, (char**)0, 0,
11914 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_SCAN_PCUTS_PCUTMU_type };
11915 static KmParameter *_GEANT_SCAN_PCUTS_parameters[] = {
11916 &_GEANT_SCAN_PCUTS_IPARAM, &_GEANT_SCAN_PCUTS_PCUTGA,
11917 &_GEANT_SCAN_PCUTS_PCUTEL, &_GEANT_SCAN_PCUTS_PCUTHA,
11918 &_GEANT_SCAN_PCUTS_PCUTNE, &_GEANT_SCAN_PCUTS_PCUTMU };
11919 static char *_GEANT_SCAN_PCUTS_guidance[] = {
11920 "Control parametrization at tracking time.",
11921 " IPARAM=0 No parametrization is performed",
11922 " IPARAM=1 Parametrization is performed",
11923 "If parametrization is active and a particle falls below its",
11924 "parametrization cut, then the particle will be replaced by",
11925 "a parametrized shower which will be tracked in the SCAN", "geometry." };
11926 static KmCommand _GEANT_SCAN_PCUTS = { &_GEANT_SCAN_LSCAN,
11927 "/GEANT/SCAN/PCUTS", "PCUTS", 0, 2, 6, 0, _GEANT_SCAN_PCUTS_parameters, 0, 0,
11928 gxscan_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 7,
11929 _GEANT_SCAN_PCUTS_guidance, 0, (char**)0, (char*)0, (int*)0 };
11931 static char *_GEANT_SCAN_STURN_CHOPT_range[] = { "ON", "OFF", "INIT" };
11932 static char *_GEANT_SCAN_STURN_CHOPT_text[] = { (char*)0, (char*)0, (char*)0 };
11933 static KmParOption _GEANT_SCAN_STURN_CHOPT_type = {
11934 _GEANT_SCAN_STURN_CHOPT_text, (int*)0, (int*)0 };
11935 static KmParameter _GEANT_SCAN_STURN_CHOPT = { "CHOPT", 5,
11936 "SCAN mode setting", (char*)0, (char*)0, 8, 3, _GEANT_SCAN_STURN_CHOPT_range,
11937 3, _GEANT_SCAN_STURN_CHOPT_range, (KmParFlag)0, KmTYPE_OPTION,
11938 &_GEANT_SCAN_STURN_CHOPT_type };
11939 static KmParameter *_GEANT_SCAN_STURN_parameters[] = {
11940 &_GEANT_SCAN_STURN_CHOPT };
11941 static char *_GEANT_SCAN_STURN_guidance[] = {
11942 "Switch on/off SCAN mode. If SCAN mode is on, SCAN geantinos",
11943 "are generated and tracked to fill (or complete) the current",
11944 "scan data structure. If SCAN mode is off, normal kinematics",
11945 "generation and tracking will take place. If INIT is given,",
11946 "the current SCAN data structure (if any) will be dropped",
11947 "and SCAN mode will be turned on." };
11948 static KmCommand _GEANT_SCAN_STURN = { &_GEANT_SCAN_PCUTS,
11949 "/GEANT/SCAN/STURN", "STURN", 0, 2, 1, 1, _GEANT_SCAN_STURN_parameters, 0, 0,
11950 gxscan_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 6,
11951 _GEANT_SCAN_STURN_guidance, 0, (char**)0, (char*)0, (int*)0 };
11953 static KmParReal _GEANT_SCAN_SFACTORS_FACTX0_type = { (char*)0, (char*)0,
11954 (char*)0, (char*)0, 0 };
11955 static KmParameter _GEANT_SCAN_SFACTORS_FACTX0 = { "FACTX0", 6,
11956 "Scale factor for SX0", "100.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
11957 (KmParFlag)0, KmTYPE_REAL, &_GEANT_SCAN_SFACTORS_FACTX0_type };
11958 static KmParReal _GEANT_SCAN_SFACTORS_FACTL_type = { (char*)0, (char*)0,
11959 (char*)0, (char*)0, 0 };
11960 static KmParameter _GEANT_SCAN_SFACTORS_FACTL = { "FACTL", 5,
11961 "Scale factor for SL", "1000.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
11962 (KmParFlag)0, KmTYPE_REAL, &_GEANT_SCAN_SFACTORS_FACTL_type };
11963 static KmParReal _GEANT_SCAN_SFACTORS_FACTR_type = { (char*)0, (char*)0,
11964 (char*)0, (char*)0, 0 };
11965 static KmParameter _GEANT_SCAN_SFACTORS_FACTR = { "FACTR", 5,
11966 "Scale factor for R", "100.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
11967 (KmParFlag)0, KmTYPE_REAL, &_GEANT_SCAN_SFACTORS_FACTR_type };
11968 static KmParameter *_GEANT_SCAN_SFACTORS_parameters[] = {
11969 &_GEANT_SCAN_SFACTORS_FACTX0, &_GEANT_SCAN_SFACTORS_FACTL,
11970 &_GEANT_SCAN_SFACTORS_FACTR };
11971 static char *_GEANT_SCAN_SFACTORS_guidance[] = {
11972 "Set scale factors for SX0,SL and R. The given scale factors must be",
11973 "such that:", " SX0*FACTX0 < 2**15-1 (32767)",
11974 " SL*FACTL < 2**10-1 (1023)", " SR*FACTR < 2**17-1 (131071)" };
11975 static KmCommand _GEANT_SCAN_SFACTORS = { &_GEANT_SCAN_STURN,
11976 "/GEANT/SCAN/SFACTORS", "SFACTORS", 0, 2, 3, 3,
11977 _GEANT_SCAN_SFACTORS_parameters, 0, 0, gxscan_, (IntFunc*)0, (SUBROUTINE*)0,
11978 (pCharFunc*)0, 5, _GEANT_SCAN_SFACTORS_guidance, 0, (char**)0, (char*)0,
11981 static KmParReal _GEANT_SCAN_VERTEX_VX_type = { (char*)0, (char*)0,
11982 (char*)0, (char*)0, 0 };
11983 static KmParameter _GEANT_SCAN_VERTEX_VX = { "VX", 2, "Scan X-origin", "0.",
11984 (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
11985 &_GEANT_SCAN_VERTEX_VX_type };
11986 static KmParReal _GEANT_SCAN_VERTEX_VY_type = { (char*)0, (char*)0,
11987 (char*)0, (char*)0, 0 };
11988 static KmParameter _GEANT_SCAN_VERTEX_VY = { "VY", 2, "Scan Y-origin", "0.",
11989 (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
11990 &_GEANT_SCAN_VERTEX_VY_type };
11991 static KmParReal _GEANT_SCAN_VERTEX_VZ_type = { (char*)0, (char*)0,
11992 (char*)0, (char*)0, 0 };
11993 static KmParameter _GEANT_SCAN_VERTEX_VZ = { "VZ", 2, "Scan Z-origin", "0.",
11994 (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
11995 &_GEANT_SCAN_VERTEX_VZ_type };
11996 static KmParameter *_GEANT_SCAN_VERTEX_parameters[] = {
11997 &_GEANT_SCAN_VERTEX_VX, &_GEANT_SCAN_VERTEX_VY, &_GEANT_SCAN_VERTEX_VZ };
11998 static char *_GEANT_SCAN_VERTEX_guidance[] = {
11999 "All Geantinos tracked will start from position VX,VY,VZ." };
12000 static KmCommand _GEANT_SCAN_VERTEX = { &_GEANT_SCAN_SFACTORS,
12001 "/GEANT/SCAN/VERTEX", "VERTEX", 0, 2, 3, 3, _GEANT_SCAN_VERTEX_parameters, 0,
12002 0, gxscan_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
12003 _GEANT_SCAN_VERTEX_guidance, 0, (char**)0, (char*)0, (int*)0 };
12005 static KmParameter _GEANT_SCAN_SLIST_LIST = { "LIST", 4,
12006 "List of master volumes", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
12007 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
12008 static KmParameter *_GEANT_SCAN_SLIST_parameters[] = { &_GEANT_SCAN_SLIST_LIST
12010 static char *_GEANT_SCAN_SLIST_guidance[] = {
12011 "Only boundary crossings of volumes given in LIST will be seen",
12012 "in the SCAN geometry. If no parameters are given, the current",
12013 "SCAN volumes will be listed. If a full stop (.) is given, the list",
12014 "of scan volumes will be erased." };
12015 static KmCommand _GEANT_SCAN_SLIST = { &_GEANT_SCAN_VERTEX,
12016 "/GEANT/SCAN/SLIST", "SLIST", 0, 2, 1, 1, _GEANT_SCAN_SLIST_parameters, 0, 0,
12017 gxscan_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
12018 _GEANT_SCAN_SLIST_guidance, 0, (char**)0, (char*)0, (int*)0 };
12020 static KmParInt _GEANT_SCAN_TETA_NTETA_type = { (char*)0, (char*)0,
12021 (char*)0, (char*)0, 0 };
12022 static KmParameter _GEANT_SCAN_TETA_NTETA = { "NTETA", 5,
12023 "Number of TETA divisions", "90", (char*)0, 8, 0, (char**)0, 0, (char**)0,
12024 (KmParFlag)0, KmTYPE_INT, &_GEANT_SCAN_TETA_NTETA_type };
12025 static KmParReal _GEANT_SCAN_TETA_TETMIN_type = { (char*)0, (char*)0,
12026 (char*)0, (char*)0, 0 };
12027 static KmParameter _GEANT_SCAN_TETA_TETMIN = { "TETMIN", 6,
12028 "Minimum value of TETA", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
12029 (KmParFlag)0, KmTYPE_REAL, &_GEANT_SCAN_TETA_TETMIN_type };
12030 static KmParReal _GEANT_SCAN_TETA_TETMAX_type = { (char*)0, (char*)0,
12031 (char*)0, (char*)0, 0 };
12032 static KmParameter _GEANT_SCAN_TETA_TETMAX = { "TETMAX", 6,
12033 "Maximum value of TETA", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
12034 (KmParFlag)0, KmTYPE_REAL, &_GEANT_SCAN_TETA_TETMAX_type };
12035 static KmParInt _GEANT_SCAN_TETA_DIVTYP_type = { "1", "3", "1", "3", 0 };
12036 static KmParameter _GEANT_SCAN_TETA_DIVTYP = { "DIVTYP", 6,
12037 "Type of TETA division", (char*)0, (char*)0, 2, 0, (char**)0, 0, (char**)0,
12038 (KmParFlag)0, KmTYPE_INT, &_GEANT_SCAN_TETA_DIVTYP_type };
12039 static KmParameter *_GEANT_SCAN_TETA_parameters[] = { &_GEANT_SCAN_TETA_NTETA,
12040 &_GEANT_SCAN_TETA_TETMIN, &_GEANT_SCAN_TETA_TETMAX, &_GEANT_SCAN_TETA_DIVTYP
12042 static char *_GEANT_SCAN_TETA_guidance[] = {
12043 "To specify number of divisions along TETA.",
12044 "If DIVTYP=1 divisions in pseudo-rapidity ETA.",
12045 "If DIVTYP=2 divisions in degrees following the THETA angle.",
12046 "If DIVTYP=3 divisions in cos(TETA).",
12047 "If no parameter is given, the current values of the parameters",
12048 "are displayed." };
12049 static KmCommand _GEANT_SCAN_TETA = { &_GEANT_SCAN_SLIST, "/GEANT/SCAN/TETA",
12050 "TETA", 0, 2, 4, 1, _GEANT_SCAN_TETA_parameters, 0, 0, gxscan_, (IntFunc*)0,
12051 (SUBROUTINE*)0, (pCharFunc*)0, 6, _GEANT_SCAN_TETA_guidance, 0, (char**)0,
12052 (char*)0, (int*)0 };
12054 static KmParInt _GEANT_SCAN_PHI_NPHI_type = { (char*)0, (char*)0, (char*)0,
12056 static KmParameter _GEANT_SCAN_PHI_NPHI = { "NPHI", 4,
12057 "Number of PHI divisions", "90", (char*)0, 8, 0, (char**)0, 0, (char**)0,
12058 (KmParFlag)0, KmTYPE_INT, &_GEANT_SCAN_PHI_NPHI_type };
12059 static KmParReal _GEANT_SCAN_PHI_PHIMIN_type = { "0.", "360.", "0.", "360.",
12061 static KmParameter _GEANT_SCAN_PHI_PHIMIN = { "PHIMIN", 6,
12062 "Minimum PHI in degrees", "0.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
12063 (KmParFlag)0, KmTYPE_REAL, &_GEANT_SCAN_PHI_PHIMIN_type };
12064 static KmParReal _GEANT_SCAN_PHI_PHIMAX_type = { "0.", "360.", "0.", "360.",
12066 static KmParameter _GEANT_SCAN_PHI_PHIMAX = { "PHIMAX", 6,
12067 "Maximum PHI in degrees", "360.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
12068 (KmParFlag)0, KmTYPE_REAL, &_GEANT_SCAN_PHI_PHIMAX_type };
12069 static KmParameter *_GEANT_SCAN_PHI_parameters[] = { &_GEANT_SCAN_PHI_NPHI,
12070 &_GEANT_SCAN_PHI_PHIMIN, &_GEANT_SCAN_PHI_PHIMAX };
12071 static char *_GEANT_SCAN_PHI_guidance[] = {
12072 "To specify number of divisions along PHI. If no parameter is",
12073 "given, the current values of the parameters are displayed." };
12074 static KmCommand _GEANT_SCAN_PHI = { &_GEANT_SCAN_TETA, "/GEANT/SCAN/PHI",
12075 "PHI", 0, 2, 3, 1, _GEANT_SCAN_PHI_parameters, 0, 0, gxscan_, (IntFunc*)0,
12076 (SUBROUTINE*)0, (pCharFunc*)0, 2, _GEANT_SCAN_PHI_guidance, 0, (char**)0,
12077 (char*)0, (int*)0 };
12079 static char *_GEANT_SCAN_guidance[] = {
12080 "To define parameters for the SCAN geometry. If the routine GUSTEP",
12081 "and GUKINE are properly instrumented (see examples in GEANX),",
12082 "when the TRI command is entered NTETA Geantinos will be",
12083 "tracked through the real detector starting at the vertex position",
12084 "defined by the command vertex. A simplified version of the geometry",
12085 "is automatically generated in (ETA,PHI) or (THETA,PHI) following",
12086 "the option given in the command TETA. The data structure LSCAN",
12087 "generated may be saved on an RZ file for subsequent processing.",
12088 "This data structure may be used for fast parametrization techniques." };
12089 static KmMenu _GEANT_SCAN = { (KmMenu*)0, (KmMenu*)0, "/GEANT/SCAN", "SCAN",
12090 2, &_GEANT_SCAN_PHI, 9, _GEANT_SCAN_guidance };
12092 static KmMenu _GEANT = { (KmMenu*)0, &_GEANT_SCAN, "/GEANT", "GEANT", 1,
12093 (KmCommand*)0, 0, (char**)0 };
12095 klnkmenu( &_GEANT, 921023 );
12100 # define gkphys_ gkphys
12101 # define gxphys_ gxphys
12105 # define gkphys_ GKPHYS
12106 # define gxphys_ GXPHYS
12110 # pragma linkage(GKPHYS,FORTRAN)
12111 # pragma linkage(GXPHYS,FORTRAN)
12114 extern void gkphys_();
12115 extern void gxphys_();
12120 static char *_GEANT_PHYSICS_PHYSI_guidance[] = {
12121 "Call the GEANT initialisation routine GPHYSI to recompute",
12122 "the tables of cross-sections and energy loss. This command",
12123 "must be invoked after CUTS, LOSS or ERAN commands." };
12124 static KmCommand _GEANT_PHYSICS_PHYSI = { (KmCommand*)0,
12125 "/GEANT/PHYSICS/PHYSI", "PHYSI", 0, 2, 0, 0, (KmParameter**)0, 0, 0, gxphys_,
12126 (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_PHYSICS_PHYSI_guidance,
12127 0, (char**)0, (char*)0, (int*)0 };
12129 static KmParInt _GEANT_PHYSICS_DRPRT_IPART_type = { (char*)0, (char*)0,
12130 (char*)0, (char*)0, 0 };
12131 static KmParameter _GEANT_PHYSICS_DRPRT_IPART = { "IPART", 5,
12132 "GEANT particle number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
12133 (KmParFlag)0, KmTYPE_INT, &_GEANT_PHYSICS_DRPRT_IPART_type };
12134 static KmParInt _GEANT_PHYSICS_DRPRT_IMATE_type = { (char*)0, (char*)0,
12135 (char*)0, (char*)0, 0 };
12136 static KmParameter _GEANT_PHYSICS_DRPRT_IMATE = { "IMATE", 5,
12137 "GEANT material number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
12138 (KmParFlag)0, KmTYPE_INT, &_GEANT_PHYSICS_DRPRT_IMATE_type };
12139 static KmParReal _GEANT_PHYSICS_DRPRT_STEP_type = { (char*)0, (char*)0,
12140 (char*)0, (char*)0, 0 };
12141 static KmParameter _GEANT_PHYSICS_DRPRT_STEP = { "STEP", 4,
12142 "step length in centimeters", (char*)0, (char*)0, 12, 0, (char**)0, 0,
12143 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_DRPRT_STEP_type };
12144 static KmParInt _GEANT_PHYSICS_DRPRT_NPOINT_type = { "2", "100", "2",
12146 static KmParameter _GEANT_PHYSICS_DRPRT_NPOINT = { "NPOINT", 6,
12147 "number of logarithmically spaced energy points", "10", (char*)0, 4, 0,
12148 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
12149 &_GEANT_PHYSICS_DRPRT_NPOINT_type };
12150 static KmParameter *_GEANT_PHYSICS_DRPRT_parameters[] = {
12151 &_GEANT_PHYSICS_DRPRT_IPART, &_GEANT_PHYSICS_DRPRT_IMATE,
12152 &_GEANT_PHYSICS_DRPRT_STEP, &_GEANT_PHYSICS_DRPRT_NPOINT };
12153 static char *_GEANT_PHYSICS_DRPRT_guidance[] = {
12154 "This routine prints the relevant parameters linked with the energy loss",
12156 static KmCommand _GEANT_PHYSICS_DRPRT = { &_GEANT_PHYSICS_PHYSI,
12157 "/GEANT/PHYSICS/DRPRT", "DRPRT", 0, 2, 4, 3, _GEANT_PHYSICS_DRPRT_parameters,
12158 0, 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 2,
12159 _GEANT_PHYSICS_DRPRT_guidance, 0, (char**)0, (char*)0, (int*)0 };
12161 static KmParReal _GEANT_PHYSICS_CUTS_CUTGAM_type = { (char*)0, (char*)0,
12162 (char*)0, (char*)0, 0 };
12163 static KmParameter _GEANT_PHYSICS_CUTS_CUTGAM = { "CUTGAM", 6,
12164 "Cut for gammas", "0.001", (char*)0, 12, 0, (char**)0, 0, (char**)0,
12165 (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_CUTS_CUTGAM_type };
12166 static KmParReal _GEANT_PHYSICS_CUTS_CUTELE_type = { (char*)0, (char*)0,
12167 (char*)0, (char*)0, 0 };
12168 static KmParameter _GEANT_PHYSICS_CUTS_CUTELE = { "CUTELE", 6,
12169 "Cut for electrons", "0.001", (char*)0, 12, 0, (char**)0, 0, (char**)0,
12170 (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_CUTS_CUTELE_type };
12171 static KmParReal _GEANT_PHYSICS_CUTS_CUTHAD_type = { (char*)0, (char*)0,
12172 (char*)0, (char*)0, 0 };
12173 static KmParameter _GEANT_PHYSICS_CUTS_CUTHAD = { "CUTHAD", 6,
12174 "Cut for charged hadrons", "0.01", (char*)0, 12, 0, (char**)0, 0, (char**)0,
12175 (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_CUTS_CUTHAD_type };
12176 static KmParReal _GEANT_PHYSICS_CUTS_CUTNEU_type = { (char*)0, (char*)0,
12177 (char*)0, (char*)0, 0 };
12178 static KmParameter _GEANT_PHYSICS_CUTS_CUTNEU = { "CUTNEU", 6,
12179 "Cut for neutral hadrons", "0.01", (char*)0, 12, 0, (char**)0, 0, (char**)0,
12180 (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_CUTS_CUTNEU_type };
12181 static KmParReal _GEANT_PHYSICS_CUTS_CUTMUO_type = { (char*)0, (char*)0,
12182 (char*)0, (char*)0, 0 };
12183 static KmParameter _GEANT_PHYSICS_CUTS_CUTMUO = { "CUTMUO", 6,
12184 "Cut for muons", "0.01", (char*)0, 12, 0, (char**)0, 0, (char**)0,
12185 (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_CUTS_CUTMUO_type };
12186 static KmParReal _GEANT_PHYSICS_CUTS_BCUTE_type = { (char*)0, (char*)0,
12187 (char*)0, (char*)0, 0 };
12188 static KmParameter _GEANT_PHYSICS_CUTS_BCUTE = { "BCUTE", 5,
12189 "Cut for electron brems.", "-1.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
12190 (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_CUTS_BCUTE_type };
12191 static KmParReal _GEANT_PHYSICS_CUTS_BCUTM_type = { (char*)0, (char*)0,
12192 (char*)0, (char*)0, 0 };
12193 static KmParameter _GEANT_PHYSICS_CUTS_BCUTM = { "BCUTM", 5,
12194 "Cut for muon brems.", "-1.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
12195 (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_CUTS_BCUTM_type };
12196 static KmParReal _GEANT_PHYSICS_CUTS_DCUTE_type = { (char*)0, (char*)0,
12197 (char*)0, (char*)0, 0 };
12198 static KmParameter _GEANT_PHYSICS_CUTS_DCUTE = { "DCUTE", 5,
12199 "Cut for electron delta-rays", "-1.", (char*)0, 12, 0, (char**)0, 0,
12200 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_CUTS_DCUTE_type };
12201 static KmParReal _GEANT_PHYSICS_CUTS_DCUTM_type = { (char*)0, (char*)0,
12202 (char*)0, (char*)0, 0 };
12203 static KmParameter _GEANT_PHYSICS_CUTS_DCUTM = { "DCUTM", 5,
12204 "Cut for muon delta-rays", "-1.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
12205 (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_CUTS_DCUTM_type };
12206 static KmParReal _GEANT_PHYSICS_CUTS_PPCUTM_type = { (char*)0, (char*)0,
12207 (char*)0, (char*)0, 0 };
12208 static KmParameter _GEANT_PHYSICS_CUTS_PPCUTM = { "PPCUTM", 6,
12209 "Cut for e+e- pairs by muons", "0.01", (char*)0, 12, 0, (char**)0, 0,
12210 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_CUTS_PPCUTM_type };
12211 static KmParReal _GEANT_PHYSICS_CUTS_TOFMAX_type = { (char*)0, (char*)0,
12212 (char*)0, (char*)0, 0 };
12213 static KmParameter _GEANT_PHYSICS_CUTS_TOFMAX = { "TOFMAX", 6,
12214 "Time of flight cut", "1.E+10", (char*)0, 12, 0, (char**)0, 0, (char**)0,
12215 (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_CUTS_TOFMAX_type };
12216 static KmParReal _GEANT_PHYSICS_CUTS_GCUTS_type = { (char*)0, (char*)0,
12217 (char*)0, (char*)0, 0 };
12218 static KmParameter _GEANT_PHYSICS_CUTS_GCUTS = { "GCUTS", 5, "5 user words",
12219 "0.", (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
12220 &_GEANT_PHYSICS_CUTS_GCUTS_type };
12221 static KmParameter *_GEANT_PHYSICS_CUTS_parameters[] = {
12222 &_GEANT_PHYSICS_CUTS_CUTGAM, &_GEANT_PHYSICS_CUTS_CUTELE,
12223 &_GEANT_PHYSICS_CUTS_CUTHAD, &_GEANT_PHYSICS_CUTS_CUTNEU,
12224 &_GEANT_PHYSICS_CUTS_CUTMUO, &_GEANT_PHYSICS_CUTS_BCUTE,
12225 &_GEANT_PHYSICS_CUTS_BCUTM, &_GEANT_PHYSICS_CUTS_DCUTE,
12226 &_GEANT_PHYSICS_CUTS_DCUTM, &_GEANT_PHYSICS_CUTS_PPCUTM,
12227 &_GEANT_PHYSICS_CUTS_TOFMAX, &_GEANT_PHYSICS_CUTS_GCUTS };
12228 static char *_GEANT_PHYSICS_CUTS_guidance[] = {
12229 "To change physics cuts. If no parameter is given, the list",
12230 "of the current cuts is printed.",
12231 " If the default values (-1.) for BCUTE ,BCUTM ,DCUTE ,DCUTM",
12232 " are not modified, they will be set to CUTGAM,CUTGAM,CUTELE,CUTELE",
12233 " respectively.", "If one of the parameters from CUTGAM to PPCUTM included",
12234 "is modified, cross-sections and energy loss tables must be",
12235 "recomputed via the command 'PHYSI'." };
12236 static KmCommand _GEANT_PHYSICS_CUTS = { &_GEANT_PHYSICS_DRPRT,
12237 "/GEANT/PHYSICS/CUTS", "CUTS", 0, 2, 12, 0, _GEANT_PHYSICS_CUTS_parameters,
12238 0, 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 8,
12239 _GEANT_PHYSICS_CUTS_guidance, 0, (char**)0, (char*)0, (int*)0 };
12241 static char *_GEANT_PHYSICS_SYNC_ISYNC_range[] = { "0", "1" };
12242 static KmParInt _GEANT_PHYSICS_SYNC_ISYNC_type = { (char*)0, (char*)0,
12243 (char*)0, (char*)0, 0 };
12244 static KmParameter _GEANT_PHYSICS_SYNC_ISYNC = { "ISYNC", 5, "Flag ISYNC",
12245 "1", (char*)0, 8, 2, _GEANT_PHYSICS_SYNC_ISYNC_range, 2,
12246 _GEANT_PHYSICS_SYNC_ISYNC_range, (KmParFlag)0, KmTYPE_INT,
12247 &_GEANT_PHYSICS_SYNC_ISYNC_type };
12248 static KmParameter *_GEANT_PHYSICS_SYNC_parameters[] = {
12249 &_GEANT_PHYSICS_SYNC_ISYNC };
12250 static char *_GEANT_PHYSICS_SYNC_guidance[] = {
12251 "To control synchrotron radiation:", " ISYNC=0 no synchrotron radiation;",
12252 " =1 synchrotron radiation." };
12253 static KmCommand _GEANT_PHYSICS_SYNC = { &_GEANT_PHYSICS_CUTS,
12254 "/GEANT/PHYSICS/SYNC", "SYNC", 0, 2, 1, 0, _GEANT_PHYSICS_SYNC_parameters, 0,
12255 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
12256 _GEANT_PHYSICS_SYNC_guidance, 0, (char**)0, (char*)0, (int*)0 };
12258 static char *_GEANT_PHYSICS_STRA_ISTRA_range[] = { "0", "1", "2" };
12259 static KmParInt _GEANT_PHYSICS_STRA_ISTRA_type = { (char*)0, (char*)0,
12260 (char*)0, (char*)0, 0 };
12261 static KmParameter _GEANT_PHYSICS_STRA_ISTRA = { "ISTRA", 5, "Flag ISTRA",
12262 "0", (char*)0, 8, 3, _GEANT_PHYSICS_STRA_ISTRA_range, 3,
12263 _GEANT_PHYSICS_STRA_ISTRA_range, (KmParFlag)0, KmTYPE_INT,
12264 &_GEANT_PHYSICS_STRA_ISTRA_type };
12265 static KmParameter *_GEANT_PHYSICS_STRA_parameters[] = {
12266 &_GEANT_PHYSICS_STRA_ISTRA };
12267 static char *_GEANT_PHYSICS_STRA_guidance[] = {
12268 "To control energy loss fluctuation model:", " ISTRA=0 Urban model;",
12269 " =1 PAI model;", " =2 PAI+ASHO model (not active at the moment)."
12271 static KmCommand _GEANT_PHYSICS_STRA = { &_GEANT_PHYSICS_SYNC,
12272 "/GEANT/PHYSICS/STRA", "STRA", 0, 2, 1, 0, _GEANT_PHYSICS_STRA_parameters, 0,
12273 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
12274 _GEANT_PHYSICS_STRA_guidance, 0, (char**)0, (char*)0, (int*)0 };
12276 static char *_GEANT_PHYSICS_RAYL_IRAYL_range[] = { "0", "1" };
12277 static KmParInt _GEANT_PHYSICS_RAYL_IRAYL_type = { (char*)0, (char*)0,
12278 (char*)0, (char*)0, 0 };
12279 static KmParameter _GEANT_PHYSICS_RAYL_IRAYL = { "IRAYL", 5, "Flag IRAYL",
12280 "1", (char*)0, 8, 2, _GEANT_PHYSICS_RAYL_IRAYL_range, 2,
12281 _GEANT_PHYSICS_RAYL_IRAYL_range, (KmParFlag)0, KmTYPE_INT,
12282 &_GEANT_PHYSICS_RAYL_IRAYL_type };
12283 static KmParameter *_GEANT_PHYSICS_RAYL_parameters[] = {
12284 &_GEANT_PHYSICS_RAYL_IRAYL };
12285 static char *_GEANT_PHYSICS_RAYL_guidance[] = {
12286 "To control Rayleigh scattering.", " IRAYL=0 no Rayleigh scattering.",
12288 static KmCommand _GEANT_PHYSICS_RAYL = { &_GEANT_PHYSICS_STRA,
12289 "/GEANT/PHYSICS/RAYL", "RAYL", 0, 2, 1, 0, _GEANT_PHYSICS_RAYL_parameters, 0,
12290 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
12291 _GEANT_PHYSICS_RAYL_guidance, 0, (char**)0, (char*)0, (int*)0 };
12293 static char *_GEANT_PHYSICS_PHOT_IPHOT_range[] = { "0", "1", "2" };
12294 static KmParInt _GEANT_PHYSICS_PHOT_IPHOT_type = { (char*)0, (char*)0,
12295 (char*)0, (char*)0, 0 };
12296 static KmParameter _GEANT_PHYSICS_PHOT_IPHOT = { "IPHOT", 5, "Flag IPHOT",
12297 "1", (char*)0, 8, 3, _GEANT_PHYSICS_PHOT_IPHOT_range, 3,
12298 _GEANT_PHYSICS_PHOT_IPHOT_range, (KmParFlag)0, KmTYPE_INT,
12299 &_GEANT_PHYSICS_PHOT_IPHOT_type };
12300 static KmParameter *_GEANT_PHYSICS_PHOT_parameters[] = {
12301 &_GEANT_PHYSICS_PHOT_IPHOT };
12302 static char *_GEANT_PHYSICS_PHOT_guidance[] = { "To control Photo effect.",
12303 " IPHOT=0 no photo electric effect.",
12304 " =1 Photo effect. Electron processed.",
12305 " =2 Photo effect. No electron stored." };
12306 static KmCommand _GEANT_PHYSICS_PHOT = { &_GEANT_PHYSICS_RAYL,
12307 "/GEANT/PHYSICS/PHOT", "PHOT", 0, 2, 1, 0, _GEANT_PHYSICS_PHOT_parameters, 0,
12308 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
12309 _GEANT_PHYSICS_PHOT_guidance, 0, (char**)0, (char*)0, (int*)0 };
12311 static char *_GEANT_PHYSICS_PFIS_IPFIS_range[] = { "0", "1", "2" };
12312 static KmParInt _GEANT_PHYSICS_PFIS_IPFIS_type = { (char*)0, (char*)0,
12313 (char*)0, (char*)0, 0 };
12314 static KmParameter _GEANT_PHYSICS_PFIS_IPFIS = { "IPFIS", 5, "Flag IPFIS",
12315 "1", (char*)0, 8, 3, _GEANT_PHYSICS_PFIS_IPFIS_range, 3,
12316 _GEANT_PHYSICS_PFIS_IPFIS_range, (KmParFlag)0, KmTYPE_INT,
12317 &_GEANT_PHYSICS_PFIS_IPFIS_type };
12318 static KmParameter *_GEANT_PHYSICS_PFIS_parameters[] = {
12319 &_GEANT_PHYSICS_PFIS_IPFIS };
12320 static char *_GEANT_PHYSICS_PFIS_guidance[] = {
12321 "To control photo fission mechanism.", " IPFIS=0 no photo fission.",
12322 " =1 Photo fission. secondaries processed.",
12323 " =2 Photo fission. No secondaries stored." };
12324 static KmCommand _GEANT_PHYSICS_PFIS = { &_GEANT_PHYSICS_PHOT,
12325 "/GEANT/PHYSICS/PFIS", "PFIS", 0, 2, 1, 0, _GEANT_PHYSICS_PFIS_parameters, 0,
12326 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
12327 _GEANT_PHYSICS_PFIS_guidance, 0, (char**)0, (char*)0, (int*)0 };
12329 static char *_GEANT_PHYSICS_PAIR_IPAIR_range[] = { "0", "1", "2" };
12330 static KmParInt _GEANT_PHYSICS_PAIR_IPAIR_type = { (char*)0, (char*)0,
12331 (char*)0, (char*)0, 0 };
12332 static KmParameter _GEANT_PHYSICS_PAIR_IPAIR = { "IPAIR", 5, "Flag IPAIR",
12333 "1", (char*)0, 8, 3, _GEANT_PHYSICS_PAIR_IPAIR_range, 3,
12334 _GEANT_PHYSICS_PAIR_IPAIR_range, (KmParFlag)0, KmTYPE_INT,
12335 &_GEANT_PHYSICS_PAIR_IPAIR_type };
12336 static KmParameter *_GEANT_PHYSICS_PAIR_parameters[] = {
12337 &_GEANT_PHYSICS_PAIR_IPAIR };
12338 static char *_GEANT_PHYSICS_PAIR_guidance[] = {
12339 "To control pair production mechanism.", " IPAIR=0 no pair production.",
12340 " =1 Pair production. secondaries processed.",
12341 " =2 Pair production. No secondaries stored." };
12342 static KmCommand _GEANT_PHYSICS_PAIR = { &_GEANT_PHYSICS_PFIS,
12343 "/GEANT/PHYSICS/PAIR", "PAIR", 0, 2, 1, 0, _GEANT_PHYSICS_PAIR_parameters, 0,
12344 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
12345 _GEANT_PHYSICS_PAIR_guidance, 0, (char**)0, (char*)0, (int*)0 };
12347 static char *_GEANT_PHYSICS_MUNU_IMUNU_range[] = { "0", "1", "2" };
12348 static KmParInt _GEANT_PHYSICS_MUNU_IMUNU_type = { (char*)0, (char*)0,
12349 (char*)0, (char*)0, 0 };
12350 static KmParameter _GEANT_PHYSICS_MUNU_IMUNU = { "IMUNU", 5, "Flag IMUNU",
12351 "1", (char*)0, 8, 3, _GEANT_PHYSICS_MUNU_IMUNU_range, 3,
12352 _GEANT_PHYSICS_MUNU_IMUNU_range, (KmParFlag)0, KmTYPE_INT,
12353 &_GEANT_PHYSICS_MUNU_IMUNU_type };
12354 static KmParameter *_GEANT_PHYSICS_MUNU_parameters[] = {
12355 &_GEANT_PHYSICS_MUNU_IMUNU };
12356 static char *_GEANT_PHYSICS_MUNU_guidance[] = {
12357 "To control muon nuclear interactions.",
12358 " IMUNU=0 no muon-nuclear interactions.",
12359 " =1 Nuclear interactions. Secondaries processed.",
12360 " =2 Nuclear interactions. Secondaries not processed." };
12361 static KmCommand _GEANT_PHYSICS_MUNU = { &_GEANT_PHYSICS_PAIR,
12362 "/GEANT/PHYSICS/MUNU", "MUNU", 0, 2, 1, 0, _GEANT_PHYSICS_MUNU_parameters, 0,
12363 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
12364 _GEANT_PHYSICS_MUNU_guidance, 0, (char**)0, (char*)0, (int*)0 };
12366 static char *_GEANT_PHYSICS_MULS_IMULS_range[] = { "0", "1", "2", "3" };
12367 static KmParInt _GEANT_PHYSICS_MULS_IMULS_type = { (char*)0, (char*)0,
12368 (char*)0, (char*)0, 0 };
12369 static KmParameter _GEANT_PHYSICS_MULS_IMULS = { "IMULS", 5, "Flag IMULS",
12370 "1", (char*)0, 8, 4, _GEANT_PHYSICS_MULS_IMULS_range, 4,
12371 _GEANT_PHYSICS_MULS_IMULS_range, (KmParFlag)0, KmTYPE_INT,
12372 &_GEANT_PHYSICS_MULS_IMULS_type };
12373 static KmParameter *_GEANT_PHYSICS_MULS_parameters[] = {
12374 &_GEANT_PHYSICS_MULS_IMULS };
12375 static char *_GEANT_PHYSICS_MULS_guidance[] = {
12376 "To control multiple scattering.", " IMULS=0 no multiple scattering.",
12377 " =1 Moliere or Coulomb scattering.",
12378 " =2 Moliere or Coulomb scattering.", " =3 Gaussian scattering." };
12379 static KmCommand _GEANT_PHYSICS_MULS = { &_GEANT_PHYSICS_MUNU,
12380 "/GEANT/PHYSICS/MULS", "MULS", 0, 2, 1, 0, _GEANT_PHYSICS_MULS_parameters, 0,
12381 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 5,
12382 _GEANT_PHYSICS_MULS_guidance, 0, (char**)0, (char*)0, (int*)0 };
12384 static char *_GEANT_PHYSICS_LOSS_ILOSS_range[] = { "0", "1", "2", "3", "4" };
12385 static KmParInt _GEANT_PHYSICS_LOSS_ILOSS_type = { (char*)0, (char*)0,
12386 (char*)0, (char*)0, 0 };
12387 static KmParameter _GEANT_PHYSICS_LOSS_ILOSS = { "ILOSS", 5, "Flag ILOSS",
12388 "2", (char*)0, 8, 5, _GEANT_PHYSICS_LOSS_ILOSS_range, 5,
12389 _GEANT_PHYSICS_LOSS_ILOSS_range, (KmParFlag)0, KmTYPE_INT,
12390 &_GEANT_PHYSICS_LOSS_ILOSS_type };
12391 static KmParameter *_GEANT_PHYSICS_LOSS_parameters[] = {
12392 &_GEANT_PHYSICS_LOSS_ILOSS };
12393 static char *_GEANT_PHYSICS_LOSS_guidance[] = { "To control energy loss.",
12394 " ILOSS=0 no energy loss;", " =1 restricted energy loss fluctuations;",
12395 " =2 complete energy loss fluctuations;", " =3 same as 1;",
12396 " =4 no energy loss fluctuations.",
12397 "If the value ILOSS is changed, then cross-sections and energy loss",
12398 "tables must be recomputed via the command 'PHYSI'." };
12399 static KmCommand _GEANT_PHYSICS_LOSS = { &_GEANT_PHYSICS_MULS,
12400 "/GEANT/PHYSICS/LOSS", "LOSS", 0, 2, 1, 0, _GEANT_PHYSICS_LOSS_parameters, 0,
12401 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 8,
12402 _GEANT_PHYSICS_LOSS_guidance, 0, (char**)0, (char*)0, (int*)0 };
12404 static KmParInt _GEANT_PHYSICS_LABS_LABS_type = { (char*)0, (char*)0,
12405 (char*)0, (char*)0, 0 };
12406 static KmParameter _GEANT_PHYSICS_LABS_LABS = { "LABS", 4, "Flag LABS", "0",
12407 (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
12408 &_GEANT_PHYSICS_LABS_LABS_type };
12409 static KmParameter *_GEANT_PHYSICS_LABS_parameters[] = {
12410 &_GEANT_PHYSICS_LABS_LABS };
12411 static char *_GEANT_PHYSICS_LABS_guidance[] = {
12412 "To control absorbtion of Cerenkov photons:",
12413 " LABS=0 no absorbtion of photons;", " LABS=1 absorbtion of photons;" };
12414 static KmCommand _GEANT_PHYSICS_LABS = { &_GEANT_PHYSICS_LOSS,
12415 "/GEANT/PHYSICS/LABS", "LABS", 0, 2, 1, 0, _GEANT_PHYSICS_LABS_parameters, 0,
12416 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
12417 _GEANT_PHYSICS_LABS_guidance, 0, (char**)0, (char*)0, (int*)0 };
12419 static KmParInt _GEANT_PHYSICS_HADR_IHADR_type = { (char*)0, (char*)0,
12420 (char*)0, (char*)0, 0 };
12421 static KmParameter _GEANT_PHYSICS_HADR_IHADR = { "IHADR", 5, "Flag IHADR",
12422 "1", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
12423 &_GEANT_PHYSICS_HADR_IHADR_type };
12424 static KmParameter *_GEANT_PHYSICS_HADR_parameters[] = {
12425 &_GEANT_PHYSICS_HADR_IHADR };
12426 static char *_GEANT_PHYSICS_HADR_guidance[] = {
12427 "To control hadronic interactions.", " IHADR=0 no hadronic interactions.",
12428 " =1 Hadronic interactions. secondaries processed.",
12429 " =2 Hadronic interactions. No secondaries stored." };
12430 static KmCommand _GEANT_PHYSICS_HADR = { &_GEANT_PHYSICS_LABS,
12431 "/GEANT/PHYSICS/HADR", "HADR", 0, 2, 1, 0, _GEANT_PHYSICS_HADR_parameters, 0,
12432 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
12433 _GEANT_PHYSICS_HADR_guidance, 0, (char**)0, (char*)0, (int*)0 };
12435 static KmParReal _GEANT_PHYSICS_ERAN_EKMIN_type = { (char*)0, (char*)0,
12436 (char*)0, (char*)0, 0 };
12437 static KmParameter _GEANT_PHYSICS_ERAN_EKMIN = { "EKMIN", 5,
12438 "Minimum energy of the tables", "1E-5", (char*)0, 12, 0, (char**)0, 0,
12439 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_ERAN_EKMIN_type };
12440 static KmParReal _GEANT_PHYSICS_ERAN_EKMAX_type = { (char*)0, (char*)0,
12441 (char*)0, (char*)0, 0 };
12442 static KmParameter _GEANT_PHYSICS_ERAN_EKMAX = { "EKMAX", 5,
12443 "Maximum energy of the tables", "1E+4", (char*)0, 12, 0, (char**)0, 0,
12444 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_ERAN_EKMAX_type };
12445 static KmParInt _GEANT_PHYSICS_ERAN_NEKBIN_type = { "1", "200", "1", "200",
12447 static KmParameter _GEANT_PHYSICS_ERAN_NEKBIN = { "NEKBIN", 6,
12448 "Number of bins in the tables", "90", (char*)0, 4, 0, (char**)0, 0,
12449 (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_PHYSICS_ERAN_NEKBIN_type };
12450 static KmParameter *_GEANT_PHYSICS_ERAN_parameters[] = {
12451 &_GEANT_PHYSICS_ERAN_EKMIN, &_GEANT_PHYSICS_ERAN_EKMAX,
12452 &_GEANT_PHYSICS_ERAN_NEKBIN };
12453 static char *_GEANT_PHYSICS_ERAN_guidance[] = {
12454 "To define the range and binning of internal tables." };
12455 static KmCommand _GEANT_PHYSICS_ERAN = { &_GEANT_PHYSICS_HADR,
12456 "/GEANT/PHYSICS/ERAN", "ERAN", 0, 2, 3, 0, _GEANT_PHYSICS_ERAN_parameters, 0,
12457 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
12458 _GEANT_PHYSICS_ERAN_guidance, 0, (char**)0, (char*)0, (int*)0 };
12460 static char *_GEANT_PHYSICS_DRAY_IDRAY_range[] = { "0", "1", "2" };
12461 static KmParInt _GEANT_PHYSICS_DRAY_IDRAY_type = { (char*)0, (char*)0,
12462 (char*)0, (char*)0, 0 };
12463 static KmParameter _GEANT_PHYSICS_DRAY_IDRAY = { "IDRAY", 5, "Flag IDRAY",
12464 "1", (char*)0, 8, 3, _GEANT_PHYSICS_DRAY_IDRAY_range, 3,
12465 _GEANT_PHYSICS_DRAY_IDRAY_range, (KmParFlag)0, KmTYPE_INT,
12466 &_GEANT_PHYSICS_DRAY_IDRAY_type };
12467 static KmParameter *_GEANT_PHYSICS_DRAY_parameters[] = {
12468 &_GEANT_PHYSICS_DRAY_IDRAY };
12469 static char *_GEANT_PHYSICS_DRAY_guidance[] = {
12470 "To control delta rays mechanism.", " IDRAY=0 no delta rays.",
12471 " =1 Delta rays. secondaries processed.",
12472 " =2 Delta rays. No secondaries stored." };
12473 static KmCommand _GEANT_PHYSICS_DRAY = { &_GEANT_PHYSICS_ERAN,
12474 "/GEANT/PHYSICS/DRAY", "DRAY", 0, 2, 1, 0, _GEANT_PHYSICS_DRAY_parameters, 0,
12475 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
12476 _GEANT_PHYSICS_DRAY_guidance, 0, (char**)0, (char*)0, (int*)0 };
12478 static char *_GEANT_PHYSICS_DCAY_IDCAY_range[] = { "0", "1", "2" };
12479 static KmParInt _GEANT_PHYSICS_DCAY_IDCAY_type = { (char*)0, (char*)0,
12480 (char*)0, (char*)0, 0 };
12481 static KmParameter _GEANT_PHYSICS_DCAY_IDCAY = { "IDCAY", 5, "Flag IDCAY",
12482 "1", (char*)0, 8, 3, _GEANT_PHYSICS_DCAY_IDCAY_range, 3,
12483 _GEANT_PHYSICS_DCAY_IDCAY_range, (KmParFlag)0, KmTYPE_INT,
12484 &_GEANT_PHYSICS_DCAY_IDCAY_type };
12485 static KmParameter *_GEANT_PHYSICS_DCAY_parameters[] = {
12486 &_GEANT_PHYSICS_DCAY_IDCAY };
12487 static char *_GEANT_PHYSICS_DCAY_guidance[] = { "To control Decay mechanism.",
12488 " IDCAY=0 no decays.", " =1 Decays. secondaries processed.",
12489 " =2 Decays. No secondaries stored." };
12490 static KmCommand _GEANT_PHYSICS_DCAY = { &_GEANT_PHYSICS_DRAY,
12491 "/GEANT/PHYSICS/DCAY", "DCAY", 0, 2, 1, 0, _GEANT_PHYSICS_DCAY_parameters, 0,
12492 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
12493 _GEANT_PHYSICS_DCAY_guidance, 0, (char**)0, (char*)0, (int*)0 };
12495 static char *_GEANT_PHYSICS_COMP_ICOMP_range[] = { "0", "1", "2" };
12496 static KmParInt _GEANT_PHYSICS_COMP_ICOMP_type = { (char*)0, (char*)0,
12497 (char*)0, (char*)0, 0 };
12498 static KmParameter _GEANT_PHYSICS_COMP_ICOMP = { "ICOMP", 5, "Flag ICOMP",
12499 "1", (char*)0, 8, 3, _GEANT_PHYSICS_COMP_ICOMP_range, 3,
12500 _GEANT_PHYSICS_COMP_ICOMP_range, (KmParFlag)0, KmTYPE_INT,
12501 &_GEANT_PHYSICS_COMP_ICOMP_type };
12502 static KmParameter *_GEANT_PHYSICS_COMP_parameters[] = {
12503 &_GEANT_PHYSICS_COMP_ICOMP };
12504 static char *_GEANT_PHYSICS_COMP_guidance[] = {
12505 "To control Compton scattering", " ICOMP=0 no Compton",
12506 " =1 Compton. Electron processed.",
12507 " =2 Compton. No electron stored." };
12508 static KmCommand _GEANT_PHYSICS_COMP = { &_GEANT_PHYSICS_DCAY,
12509 "/GEANT/PHYSICS/COMP", "COMP", 0, 2, 1, 0, _GEANT_PHYSICS_COMP_parameters, 0,
12510 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
12511 _GEANT_PHYSICS_COMP_guidance, 0, (char**)0, (char*)0, (int*)0 };
12513 static char *_GEANT_PHYSICS_CKOV_ICKOV_range[] = { "0", "1", "2" };
12514 static KmParInt _GEANT_PHYSICS_CKOV_ICKOV_type = { (char*)0, (char*)0,
12515 (char*)0, (char*)0, 0 };
12516 static KmParameter _GEANT_PHYSICS_CKOV_ICKOV = { "ICKOV", 5, "Flag ICKOV",
12517 "0", (char*)0, 8, 3, _GEANT_PHYSICS_CKOV_ICKOV_range, 3,
12518 _GEANT_PHYSICS_CKOV_ICKOV_range, (KmParFlag)0, KmTYPE_INT,
12519 &_GEANT_PHYSICS_CKOV_ICKOV_type };
12520 static KmParameter *_GEANT_PHYSICS_CKOV_parameters[] = {
12521 &_GEANT_PHYSICS_CKOV_ICKOV };
12522 static char *_GEANT_PHYSICS_CKOV_guidance[] = {
12523 "To control Cerenkov production", " ICOMP=0 no Cerenkov;",
12524 " =1 Cerenkov;", " =2 Cerenkov with primary stopped at each step."
12526 static KmCommand _GEANT_PHYSICS_CKOV = { &_GEANT_PHYSICS_COMP,
12527 "/GEANT/PHYSICS/CKOV", "CKOV", 0, 2, 1, 0, _GEANT_PHYSICS_CKOV_parameters, 0,
12528 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
12529 _GEANT_PHYSICS_CKOV_guidance, 0, (char**)0, (char*)0, (int*)0 };
12531 static char *_GEANT_PHYSICS_BREM_IBREM_range[] = { "0", "1", "2" };
12532 static KmParInt _GEANT_PHYSICS_BREM_IBREM_type = { (char*)0, (char*)0,
12533 (char*)0, (char*)0, 0 };
12534 static KmParameter _GEANT_PHYSICS_BREM_IBREM = { "IBREM", 5, "Flag IBREM",
12535 "1", (char*)0, 8, 3, _GEANT_PHYSICS_BREM_IBREM_range, 3,
12536 _GEANT_PHYSICS_BREM_IBREM_range, (KmParFlag)0, KmTYPE_INT,
12537 &_GEANT_PHYSICS_BREM_IBREM_type };
12538 static KmParameter *_GEANT_PHYSICS_BREM_parameters[] = {
12539 &_GEANT_PHYSICS_BREM_IBREM };
12540 static char *_GEANT_PHYSICS_BREM_guidance[] = { "To control bremstrahlung.",
12541 " IBREM=0 no bremstrahlung", " =1 bremstrahlung. Photon processed.",
12542 " =2 bremstrahlung. No photon stored." };
12543 static KmCommand _GEANT_PHYSICS_BREM = { &_GEANT_PHYSICS_CKOV,
12544 "/GEANT/PHYSICS/BREM", "BREM", 0, 2, 1, 0, _GEANT_PHYSICS_BREM_parameters, 0,
12545 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
12546 _GEANT_PHYSICS_BREM_guidance, 0, (char**)0, (char*)0, (int*)0 };
12548 static char *_GEANT_PHYSICS_AUTO_IAUTO_range[] = { "0", "1" };
12549 static KmParInt _GEANT_PHYSICS_AUTO_IAUTO_type = { (char*)0, (char*)0,
12550 (char*)0, (char*)0, 0 };
12551 static KmParameter _GEANT_PHYSICS_AUTO_IAUTO = { "IAUTO", 5, "Flag IAUTO",
12552 "1", (char*)0, 8, 2, _GEANT_PHYSICS_AUTO_IAUTO_range, 2,
12553 _GEANT_PHYSICS_AUTO_IAUTO_range, (KmParFlag)0, KmTYPE_INT,
12554 &_GEANT_PHYSICS_AUTO_IAUTO_type };
12555 static KmParameter *_GEANT_PHYSICS_AUTO_parameters[] = {
12556 &_GEANT_PHYSICS_AUTO_IAUTO };
12557 static char *_GEANT_PHYSICS_AUTO_guidance[] = {
12558 "To control automatic calculation of tracking medium parameters:",
12559 " IAUTO=0 no automatic calculation;", " =1 automati calculation." };
12560 static KmCommand _GEANT_PHYSICS_AUTO = { &_GEANT_PHYSICS_BREM,
12561 "/GEANT/PHYSICS/AUTO", "AUTO", 0, 2, 1, 0, _GEANT_PHYSICS_AUTO_parameters, 0,
12562 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
12563 _GEANT_PHYSICS_AUTO_guidance, 0, (char**)0, (char*)0, (int*)0 };
12565 static char *_GEANT_PHYSICS_ANNI_IANNI_range[] = { "0", "1", "2" };
12566 static KmParInt _GEANT_PHYSICS_ANNI_IANNI_type = { (char*)0, (char*)0,
12567 (char*)0, (char*)0, 0 };
12568 static KmParameter _GEANT_PHYSICS_ANNI_IANNI = { "IANNI", 5, "Flag IANNI",
12569 "1", (char*)0, 8, 3, _GEANT_PHYSICS_ANNI_IANNI_range, 3,
12570 _GEANT_PHYSICS_ANNI_IANNI_range, (KmParFlag)0, KmTYPE_INT,
12571 &_GEANT_PHYSICS_ANNI_IANNI_type };
12572 static KmParameter *_GEANT_PHYSICS_ANNI_parameters[] = {
12573 &_GEANT_PHYSICS_ANNI_IANNI };
12574 static char *_GEANT_PHYSICS_ANNI_guidance[] = {
12575 "To control positron annihilation.", " IANNI=0 no annihilation",
12576 " =1 annihilation. Decays processed.",
12577 " =2 annihilation. No decay products stored." };
12578 static KmCommand _GEANT_PHYSICS_ANNI = { &_GEANT_PHYSICS_AUTO,
12579 "/GEANT/PHYSICS/ANNI", "ANNI", 0, 2, 1, 0, _GEANT_PHYSICS_ANNI_parameters, 0,
12580 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
12581 _GEANT_PHYSICS_ANNI_guidance, 0, (char**)0, (char*)0, (int*)0 };
12583 static char *_GEANT_PHYSICS_guidance[] = {
12584 "Commands to set physics parameters." };
12585 static KmMenu _GEANT_PHYSICS = { (KmMenu*)0, (KmMenu*)0, "/GEANT/PHYSICS",
12586 "PHYSICS", 2, &_GEANT_PHYSICS_ANNI, 1, _GEANT_PHYSICS_guidance };
12588 static KmMenu _GEANT = { (KmMenu*)0, &_GEANT_PHYSICS, "/GEANT", "GEANT", 1,
12589 (KmCommand*)0, 0, (char**)0 };
12591 klnkmenu( &_GEANT, 921023 );
12596 # define gkfort_ gkfort
12597 # define gxfort_ gxfort
12601 # define gkfort_ GKFORT
12602 # define gxfort_ GXFORT
12606 # pragma linkage(GKFORT,FORTRAN)
12607 # pragma linkage(GXFORT,FORTRAN)
12610 extern void gkfort_();
12611 extern void gxfort_();
12616 static KmParameter _FORTRAN_FORTRAN_FNAME = { "FNAME", 5, "File name",
12617 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
12618 KmTYPE_CHAR, (void*)0 };
12619 static KmParameter *_FORTRAN_FORTRAN_parameters[] = { &_FORTRAN_FORTRAN_FNAME
12621 static char *_FORTRAN_FORTRAN_guidance[] = {
12622 "The routines in the file FNAME will be compiled by COMIS.",
12623 "If routines with names: UGEOM,GUKINE,GUOUT,UGLAST are found,",
12624 "then they will be automatically called by GXINT instead of",
12625 "the routines with the same names compiled with the standard",
12626 "Fortran compiler and linked with the application.",
12627 "The user callable routines from the GEANT library as well as",
12628 "routines from PACKLIB (HBOOK,HPLOT,HIGZ,ZEBRA) may be called",
12629 "from these user routines. All GEANT common blocks may be", "referenced.",
12630 "In case where the routine UGEOM is called several times,",
12631 "it is important to DROP all the initialisation data structures",
12632 "JVOLUM,JMATE,JTMED,etc already in memory by using the routine GIDROP.",
12633 " Example of an interactive session where the routine UGEOM is modified:",
12634 "", " GEANT > Edit ugeom.for", " GEANT > Fortran ugeom.for",
12635 " GEANT > Call GIDROP", " GEANT > Call UGEOM", " GEANT > Dtree",
12636 " GEANT > Edit ugeom.for", " GEANT > Fortran ugeom.for",
12637 " GEANT > Call GIDROP", " GEANT > Call UGEOM", " GEANT > Dtree",
12638 "If FNAME='-', calls to user routines is reset and standard",
12639 "routines called instead." };
12640 static KmCommand _FORTRAN_FORTRAN = { (KmCommand*)0, "/FORTRAN/FORTRAN",
12641 "FORTRAN", 0, 1, 1, 1, _FORTRAN_FORTRAN_parameters, 0, 0, gxfort_,
12642 (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 26, _FORTRAN_FORTRAN_guidance, 0,
12643 (char**)0, (char*)0, (int*)0 };
12645 static KmMenu _FORTRAN = { (KmMenu*)0, (KmMenu*)0, "/FORTRAN", "FORTRAN", 1,
12646 &_FORTRAN_FORTRAN, 0, (char**)0 };
12648 klnkmenu( &_FORTRAN, 921023 );