]> git.uio.no Git - u/mrichter/AliRoot.git/blame - GEANT321/cdf/g321x.c
Default ctor cannot create new objects, create dummy default ctor which leaves object...
[u/mrichter/AliRoot.git] / GEANT321 / cdf / g321x.c
CommitLineData
fe4da5cc 1/*
2 * $Id$
3 *
4 * $Log$
5 * Revision 1.1.1.1 1995/10/24 10:19:37 cernlib
6 * Geant
7 *
8 */
9/*CMZ : 24/08/95 15.30.04 by S.Ravndal*/
10#if !defined(CERNLIB_KUIP95A)
11
12/*-- Author :*/
13/*
14 * This file has been generated by the KUIP compiler. Do NOT change it!
15 *
16 * KUIP header: 950303 Generation date: Thu Aug 24 15:18:48 1995
17 *
18 * Input file: geant321x.doc
19 */
20
21#if !defined(F77_LCASE) && !defined(F77_UCASE) && !defined(F77_USCORE)
22# if defined(__EXTENDED__) && !defined(IBM370) && !defined(_IBMR2)
23# define IBM370
24# endif
25# if defined(CRAY) || defined(IBM370) || defined(vms)
26# define F77_UCASE
27# else
28# if ( defined(apollo) || defined(__apollo) ) && defined(APOFTN)
29# define F77_LCASE
30# else
31# define F77_USCORE
32# endif
33# endif
34#endif
35
36typedef int IntFunc();
37typedef char* CharFunc();
38typedef char** pCharFunc();
39typedef void SUBROUTINE();
40#ifdef IBM370
41# pragma linkage(SUBROUTINE,FORTRAN)
42#endif
43
44extern void klnkmenu();
45extern void klnkbrcl();
46extern void klnkkmcl();
47extern void klnkicon();
48extern void klnkbutt();
49
50typedef 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> */
53 /* */
54 typedef enum { /* */
55 BRACT_OPEN = 0, /* */
56 BRACT_ROOT = 1, /* */
57 BRACT_CONT = 2, /* */
58 BRACT_GRAF = 3 /* */
59 } BrActTag; /* */
60 /* */
61 typedef enum { /* */
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 */
67 } BrActFlag; /* */
68 /* */
69
70typedef 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 */
81 } BrAction; /* */
82 /* */
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 */
93 } BrClass; /* */
94 /* */
95
96typedef 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 */
104 } KmIcon; /* */
105 /* */
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 */
120 } KmClass; /* */
121 /* */
122
123typedef enum { /* */
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') */
130 } KmButtFlag; /* */
131 /* */
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 */
144 } KmButton; /* */
145 /* */
146
147extern struct { /*
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; /*
158 */
159
160typedef enum { /* */
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 */
168 } KmParFlag; /* */
169 /* */
170 typedef enum { /* */
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 */
176 } KmParType; /* */
177 /* */
178
179typedef struct { /* file name */
180 char *filter_default; /* filter wildcard */
181 char *filter_current; /* current filter */
182 } KmParFile; /* */
183 /* */
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 */
190 } KmParInt; /* */
191 /* */
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 */
196 } KmParOption; /* */
197 /* */
198
199typedef KmParInt KmParReal; /* real and int have the same fields */
200 /* */
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 */
215 } KmParameter; /* */
216 /* */
217
218typedef 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 */
243 } KmCommand; /* */
244 /* */
245
246typedef 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 */
259 } KmMenu; /* */
260 /* */
261 extern void klnkbrcl(); /* */
262 extern void klnkicon(); /* */
263 extern void klnkkmcl(); /* */
264 extern void klnkmenu(); /* */
265 /* */
266
267#ifdef F77_LCASE
268# define gkdraw_ gkdraw
269# define gxdraw_ gxdraw
270# define gxpick_ gxpick
271#endif
272
273#ifdef F77_UCASE
274# define gkdraw_ GKDRAW
275# define gxdraw_ GXDRAW
276# define gxpick_ GXPICK
277#endif
278
279#ifdef IBM370
280# pragma linkage(GKDRAW,FORTRAN)
281# pragma linkage(GXDRAW,FORTRAN)
282# pragma linkage(GXPICK,FORTRAN)
283#endif
284
285extern void gkdraw_();
286extern void gxdraw_();
287extern void gxpick_();
288
289void gkdraw_()
290{
291
292static KmParReal _GEANT_CVOL_VALCUT_XCUT_type = { (char*)0, (char*)0,
293 (char*)0, (char*)0, 0 };
294static 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 };
297static KmParReal _GEANT_CVOL_VALCUT_YCUT_type = { (char*)0, (char*)0,
298 (char*)0, (char*)0, 0 };
299static 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 };
302static KmParReal _GEANT_CVOL_VALCUT_ZCUT_type = { (char*)0, (char*)0,
303 (char*)0, (char*)0, 0 };
304static 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 };
307static KmParameter *_GEANT_CVOL_VALCUT_parameters[] = {
308 &_GEANT_CVOL_VALCUT_XCUT, &_GEANT_CVOL_VALCUT_YCUT, &_GEANT_CVOL_VALCUT_ZCUT
309 };
310static 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." };
314static 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 };
318
319static 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 };
322static KmParReal _GEANT_CVOL_SPHE_RMAX_type = { (char*)0, (char*)0,
323 (char*)0, (char*)0, 0 };
324static 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 };
327static KmParReal _GEANT_CVOL_SPHE_XMED_type = { (char*)0, (char*)0,
328 (char*)0, (char*)0, 0 };
329static 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 };
333static KmParReal _GEANT_CVOL_SPHE_YMED_type = { (char*)0, (char*)0,
334 (char*)0, (char*)0, 0 };
335static 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 };
339static KmParReal _GEANT_CVOL_SPHE_ZMED_type = { (char*)0, (char*)0,
340 (char*)0, (char*)0, 0 };
341static 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 };
345static 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 };
348static 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 ." };
358static 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 };
362
363static 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 };
366static KmParReal _GEANT_CVOL_CONE_RMAX1_type = { (char*)0, (char*)0,
367 (char*)0, (char*)0, 0 };
368static 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 };
371static KmParReal _GEANT_CVOL_CONE_RMAX2_type = { (char*)0, (char*)0,
372 (char*)0, (char*)0, 0 };
373static 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 };
376static KmParReal _GEANT_CVOL_CONE_ZDEM_type = { (char*)0, (char*)0,
377 (char*)0, (char*)0, 0 };
378static 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 };
381static KmParReal _GEANT_CVOL_CONE_XMED_type = { (char*)0, (char*)0,
382 (char*)0, (char*)0, 0 };
383static 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 };
387static KmParReal _GEANT_CVOL_CONE_YMED_type = { (char*)0, (char*)0,
388 (char*)0, (char*)0, 0 };
389static 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 };
393static KmParReal _GEANT_CVOL_CONE_ZMED_type = { (char*)0, (char*)0,
394 (char*)0, (char*)0, 0 };
395static 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 };
399static 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 };
402static 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 ." };
412static 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 };
416
417static 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 };
420static KmParReal _GEANT_CVOL_TUBE_RMAX_type = { (char*)0, (char*)0,
421 (char*)0, (char*)0, 0 };
422static 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 };
425static KmParReal _GEANT_CVOL_TUBE_ZDEM_type = { (char*)0, (char*)0,
426 (char*)0, (char*)0, 0 };
427static 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 };
430static KmParReal _GEANT_CVOL_TUBE_XMED_type = { (char*)0, (char*)0,
431 (char*)0, (char*)0, 0 };
432static 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 };
436static KmParReal _GEANT_CVOL_TUBE_YMED_type = { (char*)0, (char*)0,
437 (char*)0, (char*)0, 0 };
438static 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 };
442static KmParReal _GEANT_CVOL_TUBE_ZMED_type = { (char*)0, (char*)0,
443 (char*)0, (char*)0, 0 };
444static 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 };
448static 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 };
451static 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 ." };
461static 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 };
465
466static 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 };
469static KmParReal _GEANT_CVOL_BOX_XMIN_type = { (char*)0, (char*)0, (char*)0,
470 (char*)0, 0 };
471static 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 };
475static KmParReal _GEANT_CVOL_BOX_XMAX_type = { (char*)0, (char*)0, (char*)0,
476 (char*)0, 0 };
477static 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 };
481static KmParReal _GEANT_CVOL_BOX_YMIN_type = { (char*)0, (char*)0, (char*)0,
482 (char*)0, 0 };
483static 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 };
487static KmParReal _GEANT_CVOL_BOX_YMAX_type = { (char*)0, (char*)0, (char*)0,
488 (char*)0, 0 };
489static 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 };
493static KmParReal _GEANT_CVOL_BOX_ZMIN_type = { (char*)0, (char*)0, (char*)0,
494 (char*)0, 0 };
495static 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 };
499static KmParReal _GEANT_CVOL_BOX_ZMAX_type = { (char*)0, (char*)0, (char*)0,
500 (char*)0, 0 };
501static 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 };
505static 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 };
508static 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",
517 " box ." };
518static 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 };
522
523static 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 };
526static 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 };
529static 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 };
532static KmParInt _GEANT_DRAWING_DUVIEW_IVIEW_type = { (char*)0, (char*)0,
533 (char*)0, (char*)0, 0 };
534static 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 };
537static KmParameter *_GEANT_DRAWING_DUVIEW_parameters[] = {
538 &_GEANT_DRAWING_DUVIEW_NAME, &_GEANT_DRAWING_DUVIEW_TYPE,
539 &_GEANT_DRAWING_DUVIEW_CPXTYP, &_GEANT_DRAWING_DUVIEW_IVIEW };
540static char *_GEANT_DRAWING_DUVIEW_guidance[] = {
541 " CALL GUVIEW(name,type,cpxtyp,iview)" };
542static 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 };
547
548static 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 };
551static 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 };
554static KmParInt _GEANT_DRAWING_DCHIT_ITRA_type = { (char*)0, (char*)0,
555 (char*)0, (char*)0, 0 };
556static 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 };
559static KmParInt _GEANT_DRAWING_DCHIT_ISYMB_type = { (char*)0, (char*)0,
560 (char*)0, (char*)0, 0 };
561static 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 };
564static KmParReal _GEANT_DRAWING_DCHIT_SIZMAX_type = { (char*)0, (char*)0,
565 (char*)0, (char*)0, 0 };
566static 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 };
569static KmParInt _GEANT_DRAWING_DCHIT_IHIT_type = { (char*)0, (char*)0,
570 (char*)0, (char*)0, 0 };
571static 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 };
574static KmParReal _GEANT_DRAWING_DCHIT_HITMIN_type = { (char*)0, (char*)0,
575 (char*)0, (char*)0, 0 };
576static 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 };
579static KmParReal _GEANT_DRAWING_DCHIT_HITMAX_type = { (char*)0, (char*)0,
580 (char*)0, (char*)0, 0 };
581static 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 };
584static 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 };
589static 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" };
605static 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,
609 (char*)0, (int*)0 };
610
611static 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 };
614static 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 };
617static KmParReal _GEANT_DRAWING_KHITS_EPSILO_type = { (char*)0, (char*)0,
618 (char*)0, (char*)0, 0 };
619static 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 };
622static KmParameter *_GEANT_DRAWING_KHITS_parameters[] = {
623 &_GEANT_DRAWING_KHITS_CHUSET, &_GEANT_DRAWING_KHITS_CHUDET,
624 &_GEANT_DRAWING_KHITS_EPSILO };
625static char *_GEANT_DRAWING_KHITS_guidance[] = {
626 " CALL GKHITS(chuset,chudet,epsilo)",
627 "The picking of hit points requires the appropriate JSET data structure",
628 "have been filled",
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." };
639static 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,
643 (char*)0, (int*)0 };
644
645static 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 };
648static 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 };
651static KmParInt _GEANT_DRAWING_DHITS_ITRA_type = { (char*)0, (char*)0,
652 (char*)0, (char*)0, 0 };
653static 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 };
656static KmParInt _GEANT_DRAWING_DHITS_ISYMB_type = { (char*)0, (char*)0,
657 (char*)0, (char*)0, 0 };
658static 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 };
661static KmParReal _GEANT_DRAWING_DHITS_SSYMB_type = { (char*)0, (char*)0,
662 (char*)0, (char*)0, 0 };
663static 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 };
666static 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 };
670static 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." };
684static 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,
688 (char*)0, (int*)0 };
689
690static KmParInt _GEANT_DRAWING_DPART_ITRA_type = { (char*)0, (char*)0,
691 (char*)0, (char*)0, 0 };
692static 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 };
695static KmParInt _GEANT_DRAWING_DPART_ISEL_type = { (char*)0, (char*)0,
696 (char*)0, (char*)0, 0 };
697static 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 };
700static KmParReal _GEANT_DRAWING_DPART_SIZE_type = { (char*)0, (char*)0,
701 (char*)0, (char*)0, 0 };
702static 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 };
705static KmParameter *_GEANT_DRAWING_DPART_parameters[] = {
706 &_GEANT_DRAWING_DPART_ITRA, &_GEANT_DRAWING_DPART_ISEL,
707 &_GEANT_DRAWING_DPART_SIZE };
708static 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" };
711static 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,
715 (char*)0, (int*)0 };
716
717static KmParReal _GEANT_DRAWING_KXYZ_EPSILO_type = { (char*)0, (char*)0,
718 (char*)0, (char*)0, 0 };
719static 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 };
722static KmParameter *_GEANT_DRAWING_KXYZ_parameters[] = {
723 &_GEANT_DRAWING_KXYZ_EPSILO };
724static 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." };
731static 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,
735 (char*)0, (int*)0 };
736
737static KmParInt _GEANT_DRAWING_DXYZ_ITRA_type = { (char*)0, (char*)0,
738 (char*)0, (char*)0, 0 };
739static 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 };
742static KmParameter *_GEANT_DRAWING_DXYZ_parameters[] = {
743 &_GEANT_DRAWING_DXYZ_ITRA };
744static char *_GEANT_DRAWING_DXYZ_guidance[] = { " CALL GDXYZ(itra)",
745 "Draw tracks previously stored via GSXYZ." };
746static 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,
750 (char*)0, (int*)0 };
751
752static KmParReal _GEANT_DRAWING_ZOOM_ZFU_type = { (char*)0, (char*)0,
753 (char*)0, (char*)0, 0 };
754static 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 };
757static KmParReal _GEANT_DRAWING_ZOOM_ZFV_type = { (char*)0, (char*)0,
758 (char*)0, (char*)0, 0 };
759static 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 };
762static KmParInt _GEANT_DRAWING_ZOOM_ISEL_type = { (char*)0, (char*)0,
763 (char*)0, (char*)0, 0 };
764static 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 };
767static KmParReal _GEANT_DRAWING_ZOOM_UZ0_type = { "0.", "20.", "0.", "20.",
768 0 };
769static 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 };
773static KmParReal _GEANT_DRAWING_ZOOM_VZ0_type = { "0.", "20.", "0.", "20.",
774 0 };
775static 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 };
779static KmParReal _GEANT_DRAWING_ZOOM_U0_type = { "0.", "20.", "0.", "20.", 0
780 };
781static 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 };
785static KmParReal _GEANT_DRAWING_ZOOM_V0_type = { "0.", "20.", "0.", "20.", 0
786 };
787static 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 };
791static 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 };
795static 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",
823 " main window",
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'." };
828static 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,
832 (char*)0, (int*)0 };
833
834static KmParInt _GEANT_DRAWING_LENS_KNUM_type = { (char*)0, (char*)0,
835 (char*)0, (char*)0, 0 };
836static 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 };
839static 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 };
842static KmParameter *_GEANT_DRAWING_LENS_parameters[] = {
843 &_GEANT_DRAWING_LENS_KNUM, &_GEANT_DRAWING_LENS_KSAM };
844static 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" };
870static 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,
874 (char*)0, (int*)0 };
875
876static KmParameter _GEANT_DRAWING_PERSP_NAME = { "NAME", 4, "Volume name",
877 " ", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
878 (void*)0 };
879static KmParReal _GEANT_DRAWING_PERSP_DISTT_type = { (char*)0, (char*)0,
880 (char*)0, (char*)0, 0 };
881static 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 };
884static 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 };
887static KmParameter *_GEANT_DRAWING_PERSP_parameters[] = {
888 &_GEANT_DRAWING_PERSP_NAME, &_GEANT_DRAWING_PERSP_DISTT,
889 &_GEANT_DRAWING_PERSP_SAMP };
890static 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." };
894static 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,
898 (char*)0, (int*)0 };
899
900static KmParameter _GEANT_DRAWING_MOVE3D_NAME = { "NAME", 4, "Volume name",
901 " ", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
902 (void*)0 };
903static KmParReal _GEANT_DRAWING_MOVE3D_THETA_type = { "0.", "180.", "0.",
904 "180.", 0 };
905static 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 };
908static KmParReal _GEANT_DRAWING_MOVE3D_PHI_type = { "0.", "360.", "0.",
909 "360.", 0 };
910static 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 };
913static KmParReal _GEANT_DRAWING_MOVE3D_PSI_type = { "0.", "180.", "0.",
914 "180.", 0 };
915static 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 };
918static KmParReal _GEANT_DRAWING_MOVE3D_U0_type = { "0.", "20.", "0.", "20.",
919 0 };
920static 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 };
923static KmParReal _GEANT_DRAWING_MOVE3D_V0_type = { "0.", "20.", "0.", "20.",
924 0 };
925static 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 };
928static KmParReal _GEANT_DRAWING_MOVE3D_SU_type = { (char*)0, (char*)0,
929 (char*)0, (char*)0, 0 };
930static 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 };
933static KmParReal _GEANT_DRAWING_MOVE3D_SV_type = { (char*)0, (char*)0,
934 (char*)0, (char*)0, 0 };
935static 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 };
938static KmParReal _GEANT_DRAWING_MOVE3D_SZ_type = { "0.1", "10.", "0.1",
939 "10.", 1 };
940static 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 };
943static char *_GEANT_DRAWING_MOVE3D_NOPT_range[] = { "T", "H" };
944static char *_GEANT_DRAWING_MOVE3D_NOPT_text[] = { (char*)0, (char*)0 };
945static KmParOption _GEANT_DRAWING_MOVE3D_NOPT_type = {
946 _GEANT_DRAWING_MOVE3D_NOPT_text, (int*)0, (int*)0 };
947static 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 };
951static 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 };
957static char *_GEANT_DRAWING_MOVE3D_guidance[] = {
958 "Same functionality of the command MOVE interfaced with MOTIF." };
959static 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 };
964
965static KmParameter _GEANT_DRAWING_MOVE_NAME = { "NAME", 4, "Volume name",
966 " ", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
967 (void*)0 };
968static 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 };
971static KmParameter *_GEANT_DRAWING_MOVE_parameters[] = {
972 &_GEANT_DRAWING_MOVE_NAME, &_GEANT_DRAWING_MOVE_NOPT };
973static 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",
1016 " move NAME" };
1017static 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 };
1022
1023static 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." };
1031static 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 };
1035
1036static 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\
1039 bar(GKS).",
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." };
1045static 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 };
1050
1051static KmParInt _GEANT_DRAWING_DHEAD_ISEL_type = { (char*)0, (char*)0,
1052 (char*)0, (char*)0, 0 };
1053static 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 };
1056static KmParameter _GEANT_DRAWING_DHEAD_NAME = { "NAME", 4, "Title", " ",
1057 (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
1058 (void*)0 };
1059static KmParReal _GEANT_DRAWING_DHEAD_CHRSIZ_type = { (char*)0, (char*)0,
1060 (char*)0, (char*)0, 0 };
1061static 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 };
1064static KmParameter *_GEANT_DRAWING_DHEAD_parameters[] = {
1065 &_GEANT_DRAWING_DHEAD_ISEL, &_GEANT_DRAWING_DHEAD_NAME,
1066 &_GEANT_DRAWING_DHEAD_CHRSIZ };
1067static 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." };
1079static 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 };
1084
1085static KmParReal _GEANT_DRAWING_DMAN_U_type = { (char*)0, (char*)0,
1086 (char*)0, (char*)0, 0 };
1087static 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 };
1091static KmParReal _GEANT_DRAWING_DMAN_V_type = { (char*)0, (char*)0,
1092 (char*)0, (char*)0, 0 };
1093static 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 };
1097static char *_GEANT_DRAWING_DMAN_TYPE_range[] = { "MAN", "WM1", "WM2", "WM3" };
1098static char *_GEANT_DRAWING_DMAN_TYPE_text[] = { (char*)0, (char*)0, (char*)0,
1099 (char*)0 };
1100static KmParOption _GEANT_DRAWING_DMAN_TYPE_type = {
1101 _GEANT_DRAWING_DMAN_TYPE_text, (int*)0, (int*)0 };
1102static 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 };
1106static KmParameter *_GEANT_DRAWING_DMAN_parameters[] = {
1107 &_GEANT_DRAWING_DMAN_U, &_GEANT_DRAWING_DMAN_V, &_GEANT_DRAWING_DMAN_TYPE };
1108static 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." };
1113static 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 };
1118
1119static KmParReal _GEANT_DRAWING_DAXIS_X0_type = { (char*)0, (char*)0,
1120 (char*)0, (char*)0, 0 };
1121static 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 };
1124static KmParReal _GEANT_DRAWING_DAXIS_Y0_type = { (char*)0, (char*)0,
1125 (char*)0, (char*)0, 0 };
1126static 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 };
1129static KmParReal _GEANT_DRAWING_DAXIS_Z0_type = { (char*)0, (char*)0,
1130 (char*)0, (char*)0, 0 };
1131static 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 };
1134static KmParReal _GEANT_DRAWING_DAXIS_DX_type = { (char*)0, (char*)0,
1135 (char*)0, (char*)0, 0 };
1136static 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 };
1139static KmParameter *_GEANT_DRAWING_DAXIS_parameters[] = {
1140 &_GEANT_DRAWING_DAXIS_X0, &_GEANT_DRAWING_DAXIS_Y0, &_GEANT_DRAWING_DAXIS_Z0,
1141 &_GEANT_DRAWING_DAXIS_DX };
1142static 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." };
1146static 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 };
1151
1152static KmParReal _GEANT_DRAWING_DSCALE_U_type = { (char*)0, (char*)0,
1153 (char*)0, (char*)0, 0 };
1154static 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 };
1158static KmParReal _GEANT_DRAWING_DSCALE_V_type = { (char*)0, (char*)0,
1159 (char*)0, (char*)0, 0 };
1160static 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 };
1164static KmParameter *_GEANT_DRAWING_DSCALE_parameters[] = {
1165 &_GEANT_DRAWING_DSCALE_U, &_GEANT_DRAWING_DSCALE_V };
1166static char *_GEANT_DRAWING_DSCALE_guidance[] = { " CALL GDSCAL(u,v)",
1167 "It draws a scale centered in U,V." };
1168static 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 };
1173
1174static 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 };
1177static 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 };
1180static KmParInt _GEANT_DRAWING_DVECTOR_NPOINT_type = { (char*)0, (char*)0,
1181 (char*)0, (char*)0, 0 };
1182static 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 };
1185static KmParameter *_GEANT_DRAWING_DVECTOR_parameters[] = {
1186 &_GEANT_DRAWING_DVECTOR_XVECT, &_GEANT_DRAWING_DVECTOR_YVECT,
1187 &_GEANT_DRAWING_DVECTOR_NPOINT };
1188static 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" };
1192static 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 };
1197
1198static KmParReal _GEANT_DRAWING_DTEXT_X0_type = { "0.", "20.", "0.", "20.",
1199 0 };
1200static 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 };
1203static KmParReal _GEANT_DRAWING_DTEXT_Y0_type = { "0.", "20.", "0.", "20.",
1204 0 };
1205static 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 };
1208static KmParameter _GEANT_DRAWING_DTEXT_TEXT = { "TEXT", 4, "Text string",
1209 "GEANT", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
1210 (void*)0 };
1211static KmParReal _GEANT_DRAWING_DTEXT_SIZE_type = { (char*)0, (char*)0,
1212 (char*)0, (char*)0, 0 };
1213static 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 };
1216static KmParReal _GEANT_DRAWING_DTEXT_ANGLE_type = { "0.", "360.", "0.",
1217 "360.", 0 };
1218static 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 };
1221static KmParInt _GEANT_DRAWING_DTEXT_LWID_type = { (char*)0, (char*)0,
1222 (char*)0, (char*)0, 0 };
1223static 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 };
1226static char *_GEANT_DRAWING_DTEXT_CENT_range[] = { "CENT", "LEFT", "RIGH" };
1227static char *_GEANT_DRAWING_DTEXT_CENT_text[] = { (char*)0, (char*)0, (char*)0
1228 };
1229static KmParOption _GEANT_DRAWING_DTEXT_CENT_type = {
1230 _GEANT_DRAWING_DTEXT_CENT_text, (int*)0, (int*)0 };
1231static 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 };
1235static 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 };
1240static 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." };
1246static 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 };
1251
1252static 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 };
1255static char *_GEANT_DRAWING_DFSPC_CSORT_range[] = { "Y", "N", "0", "1" };
1256static char *_GEANT_DRAWING_DFSPC_CSORT_text[] = { (char*)0, (char*)0,
1257 (char*)0, (char*)0 };
1258static KmParOption _GEANT_DRAWING_DFSPC_CSORT_type = {
1259 _GEANT_DRAWING_DFSPC_CSORT_text, (int*)0, (int*)0 };
1260static 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 };
1264static char *_GEANT_DRAWING_DFSPC_CINTER_range[] = { "I", "B", "0", "1" };
1265static char *_GEANT_DRAWING_DFSPC_CINTER_text[] = { (char*)0, (char*)0,
1266 (char*)0, (char*)0 };
1267static KmParOption _GEANT_DRAWING_DFSPC_CINTER_type = {
1268 _GEANT_DRAWING_DFSPC_CINTER_text, (int*)0, (int*)0 };
1269static 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 };
1273static KmParameter *_GEANT_DRAWING_DFSPC_parameters[] = {
1274 &_GEANT_DRAWING_DFSPC_NAME, &_GEANT_DRAWING_DFSPC_CSORT,
1275 &_GEANT_DRAWING_DFSPC_CINTER };
1276static 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." };
1284static 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 };
1289
1290static 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 };
1293static KmParReal _GEANT_DRAWING_D3DSPEC_TETA3_type = { "0.", "180.", "0.",
1294 "180.", 0 };
1295static 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 };
1298static KmParReal _GEANT_DRAWING_D3DSPEC_PHI3_type = { "0.", "360.", "0.",
1299 "360.", 0 };
1300static 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 };
1303static KmParReal _GEANT_DRAWING_D3DSPEC_PSI3_type = { "0.", "360.", "0.",
1304 "360.", 0 };
1305static 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 };
1308static KmParReal _GEANT_DRAWING_D3DSPEC_U03_type = { "-40.", "40.", "-40.",
1309 "40.", 0 };
1310static 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 };
1313static KmParReal _GEANT_DRAWING_D3DSPEC_V03_type = { "-40.", "40.", "-40.",
1314 "40.", 0 };
1315static 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 };
1318static KmParReal _GEANT_DRAWING_D3DSPEC_ZM3_type = { "0.00001", "10.",
1319 "0.00001", "10.", 5 };
1320static 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 };
1323static 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 };
1328static 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."
1334 };
1335static 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 };
1340
1341static 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 };
1344static KmParameter *_GEANT_DRAWING_DSPEC_parameters[] = {
1345 &_GEANT_DRAWING_DSPEC_NAME };
1346static 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."
1352 };
1353static 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 };
1358
1359static KmParameter _GEANT_DRAWING_DTREE_NAME = { "NAME", 4, "Volume name",
1360 " ", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
1361 (void*)0 };
1362static KmParInt _GEANT_DRAWING_DTREE_LEVMAX_type = { "-15", "15", "-15",
1363 "15", 0 };
1364static 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 };
1367static KmParInt _GEANT_DRAWING_DTREE_ISELT_type = { (char*)0, (char*)0,
1368 (char*)0, (char*)0, 0 };
1369static 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 };
1372static KmParameter *_GEANT_DRAWING_DTREE_parameters[] = {
1373 &_GEANT_DRAWING_DTREE_NAME, &_GEANT_DRAWING_DTREE_LEVMAX,
1374 &_GEANT_DRAWING_DTREE_ISELT };
1375static 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)",
1390 "is performed",
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" };
1399static 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 };
1404
1405static KmParReal _GEANT_DRAWING_BOMB_BOOM_type = { "-10.", "10.", "-10.",
1406 "10.", 0 };
1407static 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 };
1410static KmParameter *_GEANT_DRAWING_BOMB_parameters[] = {
1411 &_GEANT_DRAWING_BOMB_BOOM };
1412static 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" };
1428static 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 };
1433
1434static 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 };
1437static KmParReal _GEANT_DRAWING_SHIFT_XXXX_type = { (char*)0, (char*)0,
1438 (char*)0, (char*)0, 0 };
1439static 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 };
1442static KmParReal _GEANT_DRAWING_SHIFT_YYYY_type = { (char*)0, (char*)0,
1443 (char*)0, (char*)0, 0 };
1444static 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 };
1447static KmParReal _GEANT_DRAWING_SHIFT_ZZZZ_type = { (char*)0, (char*)0,
1448 (char*)0, (char*)0, 0 };
1449static 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 };
1452static KmParameter *_GEANT_DRAWING_SHIFT_parameters[] = {
1453 &_GEANT_DRAWING_SHIFT_CNVN, &_GEANT_DRAWING_SHIFT_XXXX,
1454 &_GEANT_DRAWING_SHIFT_YYYY, &_GEANT_DRAWING_SHIFT_ZZZZ };
1455static 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" };
1469static 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 };
1474
1475static 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 };
1478static KmParReal _GEANT_DRAWING_DXCUT_CUTTHE_type = { "0.", "360.", "0.",
1479 "360.", 0 };
1480static 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 };
1484static KmParReal _GEANT_DRAWING_DXCUT_CUTPHI_type = { "0.", "360.", "0.",
1485 "360.", 0 };
1486static 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 };
1490static KmParReal _GEANT_DRAWING_DXCUT_CUTVAL_type = { (char*)0, (char*)0,
1491 (char*)0, (char*)0, 0 };
1492static 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 };
1496static KmParReal _GEANT_DRAWING_DXCUT_THETA_type = { "0.", "360.", "0.",
1497 "360.", 0 };
1498static 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 };
1502static KmParReal _GEANT_DRAWING_DXCUT_PHI_type = { "0.", "360.", "0.",
1503 "360.", 0 };
1504static 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 };
1508static KmParReal _GEANT_DRAWING_DXCUT_U0_type = { (char*)0, (char*)0,
1509 (char*)0, (char*)0, 0 };
1510static 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 };
1514static KmParReal _GEANT_DRAWING_DXCUT_V0_type = { (char*)0, (char*)0,
1515 (char*)0, (char*)0, 0 };
1516static 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 };
1519static KmParReal _GEANT_DRAWING_DXCUT_SU_type = { (char*)0, (char*)0,
1520 (char*)0, (char*)0, 0 };
1521static 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 };
1524static KmParReal _GEANT_DRAWING_DXCUT_SV_type = { (char*)0, (char*)0,
1525 (char*)0, (char*)0, 0 };
1526static 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 };
1529static 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 };
1535static 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/",
1541 "are taken." };
1542static 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 };
1547
1548static 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 };
1551static char *_GEANT_DRAWING_DCUT_CAXIS_range[] = { "X", "Y", "Z" };
1552static char *_GEANT_DRAWING_DCUT_CAXIS_text[] = { (char*)0, (char*)0, (char*)0
1553 };
1554static KmParOption _GEANT_DRAWING_DCUT_CAXIS_type = {
1555 _GEANT_DRAWING_DCUT_CAXIS_text, (int*)0, (int*)0 };
1556static 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 };
1560static KmParReal _GEANT_DRAWING_DCUT_CUTVAL_type = { (char*)0, (char*)0,
1561 (char*)0, (char*)0, 0 };
1562static 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 };
1566static KmParReal _GEANT_DRAWING_DCUT_U0_type = { (char*)0, (char*)0,
1567 (char*)0, (char*)0, 0 };
1568static 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 };
1572static KmParReal _GEANT_DRAWING_DCUT_V0_type = { (char*)0, (char*)0,
1573 (char*)0, (char*)0, 0 };
1574static 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 };
1577static KmParReal _GEANT_DRAWING_DCUT_SU_type = { (char*)0, (char*)0,
1578 (char*)0, (char*)0, 0 };
1579static 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 };
1582static KmParReal _GEANT_DRAWING_DCUT_SV_type = { (char*)0, (char*)0,
1583 (char*)0, (char*)0, 0 };
1584static 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 };
1587static 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 };
1591static 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/",
1597 "are taken.",
1598 "When HIDE Mode is ON, it is possible to get the same effect with",
1599 "the CVOL/BOX command." };
1600static 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 };
1605
1606static KmParInt _GEANT_DRAWING_DVOLUME_N_type = { (char*)0, (char*)0,
1607 (char*)0, (char*)0, 0 };
1608static 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 };
1612static 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 };
1615static char *_GEANT_DRAWING_DVOLUME_CHNRS_range[] = { "MARS", "DRS" };
1616static char *_GEANT_DRAWING_DVOLUME_CHNRS_text[] = { (char*)0, (char*)0 };
1617static KmParOption _GEANT_DRAWING_DVOLUME_CHNRS_type = {
1618 _GEANT_DRAWING_DVOLUME_CHNRS_text, (int*)0, (int*)0 };
1619static 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 };
1623static KmParReal _GEANT_DRAWING_DVOLUME_THETA_type = { "0.", "360.", "0.",
1624 "360.", 0 };
1625static 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 };
1629static KmParReal _GEANT_DRAWING_DVOLUME_PHI_type = { "0.", "360.", "0.",
1630 "360.", 0 };
1631static 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 };
1635static KmParReal _GEANT_DRAWING_DVOLUME_PSI_type = { "0.", "180.", "0.",
1636 "180.", 0 };
1637static 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 };
1640static KmParReal _GEANT_DRAWING_DVOLUME_U0_type = { (char*)0, (char*)0,
1641 (char*)0, (char*)0, 0 };
1642static 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 };
1646static KmParReal _GEANT_DRAWING_DVOLUME_V0_type = { (char*)0, (char*)0,
1647 (char*)0, (char*)0, 0 };
1648static 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 };
1651static KmParReal _GEANT_DRAWING_DVOLUME_SU_type = { (char*)0, (char*)0,
1652 (char*)0, (char*)0, 0 };
1653static 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 };
1656static KmParReal _GEANT_DRAWING_DVOLUME_SV_type = { (char*)0, (char*)0,
1657 (char*)0, (char*)0, 0 };
1658static 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 };
1661static 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 };
1667static 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/",
1678 "are taken." };
1679static 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 };
1684
1685static KmParReal _GEANT_DRAWING_RANG5D_X1MIN_type = { (char*)0, (char*)0,
1686 (char*)0, (char*)0, 0 };
1687static 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 };
1690static KmParReal _GEANT_DRAWING_RANG5D_X1MAX_type = { (char*)0, (char*)0,
1691 (char*)0, (char*)0, 0 };
1692static 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 };
1695static KmParReal _GEANT_DRAWING_RANG5D_Y1MIN_type = { (char*)0, (char*)0,
1696 (char*)0, (char*)0, 0 };
1697static 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 };
1700static KmParReal _GEANT_DRAWING_RANG5D_Y1MAX_type = { (char*)0, (char*)0,
1701 (char*)0, (char*)0, 0 };
1702static 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 };
1705static KmParReal _GEANT_DRAWING_RANG5D_Z1MIN_type = { (char*)0, (char*)0,
1706 (char*)0, (char*)0, 0 };
1707static 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 };
1710static KmParReal _GEANT_DRAWING_RANG5D_Z1MAX_type = { (char*)0, (char*)0,
1711 (char*)0, (char*)0, 0 };
1712static 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 };
1715static 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 };
1719static char *_GEANT_DRAWING_RANG5D_guidance[] = {
1720 "It sets the range for the x,y,z variables." };
1721static 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 };
1726
1727static KmParReal _GEANT_DRAWING_VAR5D_TSEQTO_type = { (char*)0, (char*)0,
1728 (char*)0, (char*)0, 0 };
1729static 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 };
1732static KmParInt _GEANT_DRAWING_VAR5D_NPROC_type = { (char*)0, (char*)0,
1733 (char*)0, (char*)0, 0 };
1734static 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 };
1737static KmParInt _GEANT_DRAWING_VAR5D_NMPTOT_type = { (char*)0, (char*)0,
1738 (char*)0, (char*)0, 0 };
1739static 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 };
1742static KmParReal _GEANT_DRAWING_VAR5D_TOTMBY_type = { (char*)0, (char*)0,
1743 (char*)0, (char*)0, 0 };
1744static 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 };
1747static KmParReal _GEANT_DRAWING_VAR5D_TSEQ_type = { (char*)0, (char*)0,
1748 (char*)0, (char*)0, 0 };
1749static 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 };
1752static KmParReal _GEANT_DRAWING_VAR5D_TLAT_type = { (char*)0, (char*)0,
1753 (char*)0, (char*)0, 0 };
1754static 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 };
1757static KmParReal _GEANT_DRAWING_VAR5D_TNET_type = { (char*)0, (char*)0,
1758 (char*)0, (char*)0, 0 };
1759static 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 };
1762static 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 };
1767static 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)." };
1771static 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 };
1776
1777static KmParReal _GEANT_DRAWING_SPOT_XLPOS_type = { (char*)0, (char*)0,
1778 (char*)0, (char*)0, 0 };
1779static 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 };
1782static KmParReal _GEANT_DRAWING_SPOT_YLPOS_type = { (char*)0, (char*)0,
1783 (char*)0, (char*)0, 0 };
1784static 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 };
1787static KmParReal _GEANT_DRAWING_SPOT_ZLPOS_type = { (char*)0, (char*)0,
1788 (char*)0, (char*)0, 0 };
1789static 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 };
1792static KmParInt _GEANT_DRAWING_SPOT_INTEN_type = { (char*)0, (char*)0,
1793 (char*)0, (char*)0, 0 };
1794static 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 };
1797static KmParameter *_GEANT_DRAWING_SPOT_parameters[] = {
1798 &_GEANT_DRAWING_SPOT_XLPOS, &_GEANT_DRAWING_SPOT_YLPOS,
1799 &_GEANT_DRAWING_SPOT_ZLPOS, &_GEANT_DRAWING_SPOT_INTEN };
1800static 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."
1803 };
1804static 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 };
1809
1810static 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 };
1813static KmParReal _GEANT_DRAWING_DRAW_THETA_type = { "0.", "180.", "0.",
1814 "180.", 0 };
1815static 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 };
1819static KmParReal _GEANT_DRAWING_DRAW_PHI_type = { "0.", "360.", "0.",
1820 "360.", 0 };
1821static 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 };
1825static KmParReal _GEANT_DRAWING_DRAW_PSI_type = { "0.", "360.", "0.",
1826 "360.", 0 };
1827static 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 };
1830static KmParReal _GEANT_DRAWING_DRAW_U0_type = { (char*)0, (char*)0,
1831 (char*)0, (char*)0, 0 };
1832static 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 };
1836static KmParReal _GEANT_DRAWING_DRAW_V0_type = { (char*)0, (char*)0,
1837 (char*)0, (char*)0, 0 };
1838static 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 };
1841static KmParReal _GEANT_DRAWING_DRAW_SU_type = { (char*)0, (char*)0,
1842 (char*)0, (char*)0, 0 };
1843static 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 };
1846static KmParReal _GEANT_DRAWING_DRAW_SV_type = { (char*)0, (char*)0,
1847 (char*)0, (char*)0, 0 };
1848static 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 };
1851static 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 };
1855static 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" };
1892static 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 };
1897
1898static 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\
1913 event.",
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\
1917 each",
1918 "volume and the volumes with a density lower/equal than the air are\
1919 considered",
1920 "transparent; if the option (USER) is set (ON) (again via the command\
1921 (DOPT)),",
1922 "the user can set color and visibility for the desired volumes via the\
1923 command",
1924 "(SATT), as usual, relatively to the attributes (COLO) and (SEEN).",
1925 "The resolution can be set via the command (SATT * FILL VALUE), where\
1926 (VALUE)",
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\
1929 the",
1930 "first case, we assume that the first mother volume of the tree is a box\
1931 with",
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\
1934 the",
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);\
1937 grand-angle",
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\
1942 command",
1943 "(DOPT MAPP VALUE), the mapping being more precise for increasing (VALUE);\
1944 for",
1945 "(VALUE = 0) no mapping is performed (therefore max precision and lowest\
1946 speed).",
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\
1949 command",
1950 "SATT for any desired volume and can assume values from 0 to 7; it\
1951 determines",
1952 "the different light processing to be performed for different materials:",
1953 "0 = dark-matt, 1 = bright-matt, 2 = plastic, 3 = ceramic, 4 =\
1954 rough-metals,",
1955 "5 = shiny-metals, 6 = glass, 7 = mirror. The detector is assumed to be in\
1956 the",
1957 "dark, the ambient light luminosity is 0.2 for each basic hue (the\
1958 saturation",
1959 "is 0.9) and the observer is assumed to have a light source (therefore he\
1960 will",
1961 "produce parallel light in the case of parallel view and point-like-source",
1962 "light in the case of perspective view)." };
1963static 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 };
1966
1967static 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." };
1981static KmMenu _GEANT_CVOL = { &_GEANT_DRAWING, (KmMenu*)0, "/GEANT/CVOL",
1982 "CVOL", 2, &_GEANT_CVOL_BOX, 14, _GEANT_CVOL_guidance, 0, (char**)0, 0,
1983 (char**)0 };
1984
1985static char *_GEANT_guidance[] = { "GEANT specific commands." };
1986static KmMenu _GEANT = { (KmMenu*)0, &_GEANT_CVOL, "/GEANT", "GEANT", 1,
1987 (KmCommand*)0, 1, _GEANT_guidance, 0, (char**)0, 0, (char**)0 };
1988
1989 klnkmenu( &_GEANT, 950303 );
1990}
1991
1992
1993#ifdef F77_LCASE
1994# define gkgcon_ gkgcon
1995# define gxgcon_ gxgcon
1996#endif
1997
1998#ifdef F77_UCASE
1999# define gkgcon_ GKGCON
2000# define gxgcon_ GXGCON
2001#endif
2002
2003#ifdef IBM370
2004# pragma linkage(GKGCON,FORTRAN)
2005# pragma linkage(GXGCON,FORTRAN)
2006#endif
2007
2008extern void gkgcon_();
2009extern void gxgcon_();
2010
2011void gkgcon_()
2012{
2013
2014static KmParInt _GEANT_GRAPHICS_CONTROL_MAP_COLOR_ICADD_type = { (char*)0,
2015 (char*)0, (char*)0, (char*)0, 0 };
2016static 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 };
2019static KmParInt _GEANT_GRAPHICS_CONTROL_MAP_COLOR_ICVAL_type = { (char*)0,
2020 (char*)0, (char*)0, (char*)0, 0 };
2021static 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 };
2024static KmParameter *_GEANT_GRAPHICS_CONTROL_MAP_COLOR_parameters[] = {
2025 &_GEANT_GRAPHICS_CONTROL_MAP_COLOR_ICADD,
2026 &_GEANT_GRAPHICS_CONTROL_MAP_COLOR_ICVAL };
2027static 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." };
2031static 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 };
2036
2037static KmParReal _GEANT_GRAPHICS_CONTROL_SPERS_DPERS_type = { (char*)0,
2038 (char*)0, (char*)0, (char*)0, 0 };
2039static 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 };
2043static KmParameter *_GEANT_GRAPHICS_CONTROL_SPERS_parameters[] = {
2044 &_GEANT_GRAPHICS_CONTROL_SPERS_DPERS };
2045static char *_GEANT_GRAPHICS_CONTROL_SPERS_guidance[] = {
2046 "Set the variable dpers in /GCDRAW/, representing",
2047 "the distance from the origin when using option PERSpective." };
2048static 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 };
2054
2055static KmParReal _GEANT_GRAPHICS_CONTROL_SIZE_XSIZE_type = { (char*)0,
2056 (char*)0, (char*)0, (char*)0, 0 };
2057static 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 };
2060static KmParReal _GEANT_GRAPHICS_CONTROL_SIZE_YSIZE_type = { (char*)0,
2061 (char*)0, (char*)0, (char*)0, 0 };
2062static 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 };
2065static KmParameter *_GEANT_GRAPHICS_CONTROL_SIZE_parameters[] = {
2066 &_GEANT_GRAPHICS_CONTROL_SIZE_XSIZE, &_GEANT_GRAPHICS_CONTROL_SIZE_YSIZE };
2067static 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]." };
2073static 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 };
2078
2079static 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 };
2082static 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 };
2085static KmParameter *_GEANT_GRAPHICS_CONTROL_DOPT_parameters[] = {
2086 &_GEANT_GRAPHICS_CONTROL_DOPT_IOPT, &_GEANT_GRAPHICS_CONTROL_DOPT_IVAL };
2087static 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." };
2107static 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 };
2112
2113static char *_GEANT_GRAPHICS_CONTROL_NEXT_guidance[] = {
2114 "Clear screen (start a new picture on graphics file, if opened)." };
2115static 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 };
2120
2121static KmParInt _GEANT_GRAPHICS_CONTROL_LWID_LWIDTH_type = { (char*)0,
2122 (char*)0, (char*)0, (char*)0, 0 };
2123static 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 };
2126static KmParameter *_GEANT_GRAPHICS_CONTROL_LWID_parameters[] = {
2127 &_GEANT_GRAPHICS_CONTROL_LWID_LWIDTH };
2128static char *_GEANT_GRAPHICS_CONTROL_LWID_guidance[] = {
2129 " CALL GDLW(-abs(lwidth))" };
2130static 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 };
2135
2136static KmParInt _GEANT_GRAPHICS_CONTROL_COLOR_ICOL_type = { (char*)0,
2137 (char*)0, (char*)0, (char*)0, 0 };
2138static 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 };
2141static KmParameter *_GEANT_GRAPHICS_CONTROL_COLOR_parameters[] = {
2142 &_GEANT_GRAPHICS_CONTROL_COLOR_ICOL };
2143static char *_GEANT_GRAPHICS_CONTROL_COLOR_guidance[] = {
2144 " CALL GDCOL(-abs(icol))" };
2145static 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 };
2151
2152static KmParReal _GEANT_GRAPHICS_CONTROL_SCALE_GSCU_type = { (char*)0,
2153 (char*)0, (char*)0, (char*)0, 0 };
2154static 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 };
2158static KmParReal _GEANT_GRAPHICS_CONTROL_SCALE_GSCV_type = { (char*)0,
2159 (char*)0, (char*)0, (char*)0, 0 };
2160static 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 };
2164static KmParameter *_GEANT_GRAPHICS_CONTROL_SCALE_parameters[] = {
2165 &_GEANT_GRAPHICS_CONTROL_SCALE_GSCU, &_GEANT_GRAPHICS_CONTROL_SCALE_GSCV };
2166static char *_GEANT_GRAPHICS_CONTROL_SCALE_guidance[] = {
2167 "Change the scale factors GSCU and GSCV in /GCDRAW/." };
2168static 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 };
2174
2175static 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 };
2178static 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 };
2181static KmParInt _GEANT_GRAPHICS_CONTROL_SATT_IVAL_type = { (char*)0,
2182 (char*)0, (char*)0, (char*)0, 0 };
2183static 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 };
2187static KmParameter *_GEANT_GRAPHICS_CONTROL_SATT_parameters[] = {
2188 &_GEANT_GRAPHICS_CONTROL_SATT_NAME, &_GEANT_GRAPHICS_CONTROL_SATT_IOPT,
2189 &_GEANT_GRAPHICS_CONTROL_SATT_IVAL };
2190static 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)",
2210 " n=1=black",
2211 " n=2=red; n=17+m, m=0,25, increasing luminosity according to\
2212 'm';",
2213 " n=3=green; n=67+m, m=0,25, increasing luminosity according to\
2214 'm';",
2215 " n=4=blue; n=117+m, m=0,25, increasing luminosity according to\
2216 'm';",
2217 " n=5=yellow; n=42+m, m=0,25, increasing luminosity according to\
2218 'm';",
2219 " n=6=violet; n=142+m, m=0,25, increasing luminosity according to\
2220 'm';",
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",
2229 " performed.",
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)" };
2262static 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 };
2267
2268static KmParReal _GEANT_GRAPHICS_CONTROL_SSETVA_RVAL_type = { "-10.", "10.",
2269 "-10.", "10.", 0 };
2270static 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 };
2273static KmParameter *_GEANT_GRAPHICS_CONTROL_SSETVA_parameters[] = {
2274 &_GEANT_GRAPHICS_CONTROL_SSETVA_RVAL };
2275static char *_GEANT_GRAPHICS_CONTROL_SSETVA_guidance[] = {
2276 "Set current attribute value." };
2277static 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 };
2283
2284static 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 };
2287static KmParameter *_GEANT_GRAPHICS_CONTROL_SSETAT_parameters[] = {
2288 &_GEANT_GRAPHICS_CONTROL_SSETAT_IOPT };
2289static char *_GEANT_GRAPHICS_CONTROL_SSETAT_guidance[] = {
2290 "Set current attribute." };
2291static 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 };
2297
2298static char *_GEANT_GRAPHICS_CONTROL_RESETWK_guidance[] = { "CALL GRESWK",
2299 "It deactivate the previosly activated workstation and reactivate the",
2300 "default one." };
2301static 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 };
2306
2307static 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)." };
2310static 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 };
2315
2316static 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." };
2319static 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 };
2324
2325static KmParInt _GEANT_GRAPHICS_CONTROL_DELETE_IVIEW_type = { (char*)0,
2326 (char*)0, (char*)0, (char*)0, 0 };
2327static 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 };
2330static KmParameter *_GEANT_GRAPHICS_CONTROL_DELETE_parameters[] = {
2331 &_GEANT_GRAPHICS_CONTROL_DELETE_IVIEW };
2332static char *_GEANT_GRAPHICS_CONTROL_DELETE_guidance[] = {
2333 " CALL GDELET(iview)", "It deletes a view bank from memory." };
2334static 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 };
2340
2341static KmParInt _GEANT_GRAPHICS_CONTROL_DSHOW_IVIEW_type = { (char*)0,
2342 (char*)0, (char*)0, (char*)0, 0 };
2343static 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 };
2346static KmParameter *_GEANT_GRAPHICS_CONTROL_DSHOW_parameters[] = {
2347 &_GEANT_GRAPHICS_CONTROL_DSHOW_IVIEW };
2348static 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." };
2352static 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 };
2358
2359static KmParInt _GEANT_GRAPHICS_CONTROL_DOPEN_IVIEW_type = { (char*)0,
2360 (char*)0, (char*)0, (char*)0, 0 };
2361static 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 };
2364static KmParameter *_GEANT_GRAPHICS_CONTROL_DOPEN_parameters[] = {
2365 &_GEANT_GRAPHICS_CONTROL_DOPEN_IVIEW };
2366static 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'."
2376 };
2377static 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 };
2383
2384static char *_GEANT_GRAPHICS_CONTROL_guidance[] = {
2385 "Graphics control commands." };
2386static 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 };
2390
2391static KmMenu _GEANT = { (KmMenu*)0, &_GEANT_GRAPHICS_CONTROL, "/GEANT",
2392 "GEANT", 1, (KmCommand*)0, 0, (char**)0, 0, (char**)0, 0, (char**)0 };
2393
2394 klnkmenu( &_GEANT, 950303 );
2395}
2396
2397
2398#ifdef F77_LCASE
2399# define gklist_ gklist
2400# define gxlist_ gxlist
2401#endif
2402
2403#ifdef F77_UCASE
2404# define gklist_ GKLIST
2405# define gxlist_ GXLIST
2406#endif
2407
2408#ifdef IBM370
2409# pragma linkage(GKLIST,FORTRAN)
2410# pragma linkage(GXLIST,FORTRAN)
2411#endif
2412
2413extern void gklist_();
2414extern void gxlist_();
2415
2416void gklist_()
2417{
2418
2419static 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 };
2422static 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 };
2425static 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 };
2428static 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 };
2431static 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 };
2434static 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 };
2437static 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 };
2440static 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 };
2443static 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 };
2446static 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 };
2449static 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 };
2452static 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 };
2455static 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 };
2458static 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 };
2461static 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 };
2464static 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 };
2467static 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 };
2470static 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 };
2473static 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 };
2476static 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 };
2479static 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 };
2490static 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." };
2494static 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 };
2498
2499static 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 };
2502static 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 };
2505static 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 };
2508static 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 };
2511static 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 };
2514static 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 };
2517static 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 };
2520static 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 };
2523static 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 };
2526static 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 };
2529static 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 };
2532static 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 };
2535static 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 };
2538static 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 };
2541static 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 };
2544static 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 };
2547static 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 };
2550static 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 };
2553static 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 };
2556static 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 };
2559static 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 };
2570static 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." };
2574static 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 };
2579
2580static 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 };
2583static 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 };
2586static 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 };
2589static 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 };
2592static 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 };
2595static 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 };
2598static 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 };
2601static 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 };
2604static 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 };
2607static 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 };
2610static 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 };
2613static 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 };
2616static 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 };
2619static 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 };
2622static 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 };
2625static 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 };
2628static 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 };
2631static 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 };
2634static 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 };
2637static 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 };
2640static 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 };
2651static 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." };
2655static 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 };
2660
2661static 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 };
2664static 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 };
2667static 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 };
2670static 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 };
2673static 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 };
2676static 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 };
2679static 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 };
2682static 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 };
2685static 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 };
2688static 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 };
2691static 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 };
2694static 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 };
2697static 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 };
2700static 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 };
2703static 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 };
2706static 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 };
2709static 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 };
2712static 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 };
2715static 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 };
2718static 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 };
2721static 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 };
2732static 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." };
2736static 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 };
2741
2742static 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 };
2745static 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 };
2748static 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 };
2751static 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 };
2754static 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 };
2757static 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 };
2760static 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 };
2763static 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 };
2766static 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 };
2769static 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 };
2772static 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 };
2775static 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 };
2778static 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 };
2781static 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 };
2784static 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 };
2787static 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 };
2790static 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 };
2793static 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 };
2796static 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 };
2799static 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 };
2802static 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 };
2813static 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." };
2817static 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 };
2822
2823static 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 };
2826static 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 };
2829static 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 };
2832static 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 };
2835static 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 };
2838static 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 };
2841static 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 };
2844static 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 };
2847static 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 };
2850static 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 };
2853static 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 };
2856static 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 };
2859static 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 };
2862static 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 };
2865static 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 };
2868static 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 };
2871static 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 };
2874static 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 };
2877static 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 };
2880static 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 };
2883static 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 };
2894static 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." };
2898static 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 };
2903
2904static 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 };
2907static 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 };
2910static 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 };
2913static 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 };
2916static 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 };
2919static 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 };
2922static 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 };
2925static 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 };
2928static 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 };
2931static 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 };
2934static 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 };
2937static 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 };
2940static 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 };
2943static 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 };
2946static 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 };
2949static 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 };
2952static 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 };
2955static 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 };
2958static 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 };
2961static 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 };
2964static 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 };
2975static 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." };
2979static 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 };
2984
2985static 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 };
2988static 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 };
2991static 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 };
2994static 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 };
2997static 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 };
3000static 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 };
3003static 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 };
3006static 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 };
3009static 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 };
3012static 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 };
3015static 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 };
3018static 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 };
3021static 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 };
3024static 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 };
3027static 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 };
3030static 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 };
3033static 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 };
3036static 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 };
3039static 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 };
3042static 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 };
3045static 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 };
3056static 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." };
3060static 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 };
3065
3066static 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 };
3069static 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 };
3072static 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 };
3075static 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 };
3078static 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 };
3081static 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 };
3084static 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 };
3087static 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 };
3090static 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 };
3093static 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 };
3096static 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 };
3099static 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 };
3102static 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 };
3105static 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 };
3108static 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 };
3111static 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 };
3114static 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 };
3117static 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 };
3120static 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 };
3123static 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 };
3126static 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 };
3137static 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." };
3141static 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 };
3146
3147static 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 };
3150static 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 };
3153static 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 };
3156static 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 };
3159static 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 };
3162static 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 };
3165static 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 };
3168static 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 };
3171static 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 };
3174static 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 };
3177static 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 };
3180static 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 };
3183static 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 };
3186static 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 };
3189static 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 };
3192static 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 };
3195static 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 };
3198static 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 };
3201static 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 };
3204static 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 };
3207static 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 };
3217static 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." };
3221static 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 };
3225
3226static 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 };
3229static 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 };
3232static 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 };
3235static 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 };
3238static 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 };
3241static 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 };
3244static 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 };
3247static 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 };
3250static 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 };
3253static 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 };
3256static 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 };
3259static 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 };
3262static 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 };
3265static 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 };
3268static 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 };
3271static 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 };
3274static 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 };
3277static 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 };
3280static 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 };
3283static 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 };
3286static 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 };
3297static 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." };
3301static 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 };
3305
3306static KmMenu _GEANT_LISTS = { (KmMenu*)0, (KmMenu*)0, "/GEANT/LISTS",
3307 "LISTS", 2, &_GEANT_LISTS_HSTA, 0, (char**)0, 0, (char**)0, 0, (char**)0 };
3308
3309static KmMenu _GEANT = { (KmMenu*)0, &_GEANT_LISTS, "/GEANT", "GEANT", 1,
3310 (KmCommand*)0, 0, (char**)0, 0, (char**)0, 0, (char**)0 };
3311
3312 klnkmenu( &_GEANT, 950303 );
3313}
3314
3315
3316#ifdef F77_LCASE
3317# define gkgeom_ gkgeom
3318# define gxgeom_ gxgeom
3319#endif
3320
3321#ifdef F77_UCASE
3322# define gkgeom_ GKGEOM
3323# define gxgeom_ GXGEOM
3324#endif
3325
3326#ifdef IBM370
3327# pragma linkage(GKGEOM,FORTRAN)
3328# pragma linkage(GXGEOM,FORTRAN)
3329#endif
3330
3331extern void gkgeom_();
3332extern void gxgeom_();
3333
3334void gkgeom_()
3335{
3336
3337static KmParInt _GEANT_GEOMETRY_WEUCLID_LUN_type = { "1", "100", "1",
3338 "100", 0 };
3339static 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 };
3343static 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 };
3346static 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 };
3349static KmParInt _GEANT_GEOMETRY_WEUCLID_NUMBER_type = { (char*)0, (char*)0,
3350 (char*)0, (char*)0, 0 };
3351static 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 };
3355static KmParInt _GEANT_GEOMETRY_WEUCLID_NLEVEL_type = { (char*)0, (char*)0,
3356 (char*)0, (char*)0, 0 };
3357static 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 };
3360static 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 };
3364static 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." };
3368static 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 };
3373
3374static KmParInt _GEANT_GEOMETRY_REUCLID_LUN_type = { "1", "100", "1",
3375 "100", 0 };
3376static 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 };
3379static 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 };
3382static KmParameter *_GEANT_GEOMETRY_REUCLID_parameters[] = {
3383 &_GEANT_GEOMETRY_REUCLID_LUN, &_GEANT_GEOMETRY_REUCLID_FNAME };
3384static 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." };
3388static 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 };
3393
3394static 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 };
3397static 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 };
3400static KmParInt _GEANT_GEOMETRY_CADINT_NBINS_type = { (char*)0, (char*)0,
3401 (char*)0, (char*)0, 0 };
3402static 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 };
3405static KmParInt _GEANT_GEOMETRY_CADINT_LUNIT_type = { (char*)0, (char*)0,
3406 (char*)0, (char*)0, 0 };
3407static 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 };
3410static KmParInt _GEANT_GEOMETRY_CADINT_LUNIT2_type = { (char*)0, (char*)0,
3411 (char*)0, (char*)0, 0 };
3412static 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 };
3415static 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 };
3418static 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 };
3421static 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 };
3424static 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 };
3427static 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 };
3433static 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." };
3443static 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 };
3448
3449static KmParInt _GEANT_GEOMETRY_EDITV_ISEL_type = { (char*)0, (char*)0,
3450 (char*)0, (char*)0, 0 };
3451static 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 };
3454static KmParameter _GEANT_GEOMETRY_EDITV_NAME = { "NAME", 4, "Volume name",
3455 " ", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
3456 (void*)0 };
3457static KmParameter *_GEANT_GEOMETRY_EDITV_parameters[] = {
3458 &_GEANT_GEOMETRY_EDITV_ISEL, &_GEANT_GEOMETRY_EDITV_NAME };
3459static 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" };
3472static 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 };
3477
3478static KmParInt _GEANT_GEOMETRY_PTMED_NUMB_type = { (char*)0, (char*)0,
3479 (char*)0, (char*)0, 0 };
3480static 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 };
3483static KmParameter *_GEANT_GEOMETRY_PTMED_parameters[] = {
3484 &_GEANT_GEOMETRY_PTMED_NUMB };
3485static char *_GEANT_GEOMETRY_PTMED_guidance[] = { " CALL GPTMED(numb)",
3486 "Print tracking media's specifications." };
3487static 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 };
3492
3493static KmParInt _GEANT_GEOMETRY_STMED_NTMED_type = { (char*)0, (char*)0,
3494 (char*)0, (char*)0, 0 };
3495static 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 };
3498static 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 };
3501static KmParInt _GEANT_GEOMETRY_STMED_NMAT_type = { (char*)0, (char*)0,
3502 (char*)0, (char*)0, 0 };
3503static 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 };
3506static KmParInt _GEANT_GEOMETRY_STMED_ISVOL_type = { (char*)0, (char*)0,
3507 (char*)0, (char*)0, 0 };
3508static 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 };
3511static KmParInt _GEANT_GEOMETRY_STMED_IFIELD_type = { (char*)0, (char*)0,
3512 (char*)0, (char*)0, 0 };
3513static 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 };
3516static KmParReal _GEANT_GEOMETRY_STMED_FIELDM_type = { (char*)0, (char*)0,
3517 (char*)0, (char*)0, 0 };
3518static 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 };
3521static KmParReal _GEANT_GEOMETRY_STMED_TMAXFD_type = { (char*)0, (char*)0,
3522 (char*)0, (char*)0, 0 };
3523static 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 };
3526static KmParReal _GEANT_GEOMETRY_STMED_STEMAX_type = { (char*)0, (char*)0,
3527 (char*)0, (char*)0, 0 };
3528static 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 };
3531static KmParReal _GEANT_GEOMETRY_STMED_DEEMAX_type = { (char*)0, (char*)0,
3532 (char*)0, (char*)0, 0 };
3533static 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 };
3536static KmParReal _GEANT_GEOMETRY_STMED_EPSIL_type = { (char*)0, (char*)0,
3537 (char*)0, (char*)0, 0 };
3538static 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 };
3541static KmParReal _GEANT_GEOMETRY_STMED_STMIN_type = { (char*)0, (char*)0,
3542 (char*)0, (char*)0, 0 };
3543static 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 };
3547static 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 };
3554static 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." };
3560static 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 };
3565
3566static KmParInt _GEANT_GEOMETRY_PROTM_NUMB_type = { (char*)0, (char*)0,
3567 (char*)0, (char*)0, 0 };
3568static 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 };
3571static KmParameter *_GEANT_GEOMETRY_PROTM_parameters[] = {
3572 &_GEANT_GEOMETRY_PROTM_NUMB };
3573static char *_GEANT_GEOMETRY_PROTM_guidance[] = { " CALL GPROTM(numb)",
3574 "Print matrixes' specifications." };
3575static 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 };
3580
3581static KmParInt _GEANT_GEOMETRY_SROTM_IROT_type = { (char*)0, (char*)0,
3582 (char*)0, (char*)0, 0 };
3583static 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 };
3586static KmParReal _GEANT_GEOMETRY_SROTM_THETA1_type = { "0.", "180.", "0.",
3587 "180.", 0 };
3588static 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 };
3591static KmParReal _GEANT_GEOMETRY_SROTM_PHI1_type = { "0.", "360.", "0.",
3592 "360.", 0 };
3593static 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 };
3596static KmParReal _GEANT_GEOMETRY_SROTM_THETA2_type = { "0.", "180.", "0.",
3597 "180.", 0 };
3598static 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 };
3601static KmParReal _GEANT_GEOMETRY_SROTM_PHI2_type = { "0.", "360.", "0.",
3602 "360.", 0 };
3603static 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 };
3606static KmParReal _GEANT_GEOMETRY_SROTM_THETA3_type = { "0.", "180.", "0.",
3607 "180.", 0 };
3608static 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 };
3611static KmParReal _GEANT_GEOMETRY_SROTM_PHI3_type = { "0.", "360.", "0.",
3612 "360.", 0 };
3613static 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 };
3616static 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 };
3621static char *_GEANT_GEOMETRY_SROTM_guidance[] = {
3622 " CALL GSROTM(irot,theta1,phi1,theta2,phi2,theta3,phi3)",
3623 "It defines the rotation matrix number IROT." };
3624static 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 };
3629
3630static KmParInt _GEANT_GEOMETRY_PVOLU_NUMB_type = { (char*)0, (char*)0,
3631 (char*)0, (char*)0, 0 };
3632static 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 };
3635static KmParameter *_GEANT_GEOMETRY_PVOLU_parameters[] = {
3636 &_GEANT_GEOMETRY_PVOLU_NUMB };
3637static char *_GEANT_GEOMETRY_PVOLU_guidance[] = { " CALL GPVOLU(numb)",
3638 "Prints volumes' specifications." };
3639static 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 };
3644
3645static 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 };
3648static 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 };
3651static KmParInt _GEANT_GEOMETRY_SDVN_NDIV_type = { (char*)0, (char*)0,
3652 (char*)0, (char*)0, 0 };
3653static 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 };
3656static char *_GEANT_GEOMETRY_SDVN_CAXIS_range[] = { "X", "Y", "Z", "1", "2",
3657 "3" };
3658static char *_GEANT_GEOMETRY_SDVN_CAXIS_text[] = { (char*)0, (char*)0,
3659 (char*)0, (char*)0, (char*)0, (char*)0 };
3660static KmParOption _GEANT_GEOMETRY_SDVN_CAXIS_type = {
3661 _GEANT_GEOMETRY_SDVN_CAXIS_text, (int*)0, (int*)0 };
3662static 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 };
3666static KmParameter *_GEANT_GEOMETRY_SDVN_parameters[] = {
3667 &_GEANT_GEOMETRY_SDVN_NAME, &_GEANT_GEOMETRY_SDVN_MOTHER,
3668 &_GEANT_GEOMETRY_SDVN_NDIV, &_GEANT_GEOMETRY_SDVN_CAXIS };
3669static 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." };
3673static 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 };
3678
3679static 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 };
3682static KmParInt _GEANT_GEOMETRY_SPOS_NUMBER_type = { (char*)0, (char*)0,
3683 (char*)0, (char*)0, 0 };
3684static 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 };
3687static 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 };
3690static KmParReal _GEANT_GEOMETRY_SPOS_X0_type = { (char*)0, (char*)0,
3691 (char*)0, (char*)0, 0 };
3692static 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 };
3696static KmParReal _GEANT_GEOMETRY_SPOS_Y0_type = { (char*)0, (char*)0,
3697 (char*)0, (char*)0, 0 };
3698static 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 };
3702static KmParReal _GEANT_GEOMETRY_SPOS_Z0_type = { (char*)0, (char*)0,
3703 (char*)0, (char*)0, 0 };
3704static 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 };
3708static KmParInt _GEANT_GEOMETRY_SPOS_IROT_type = { (char*)0, (char*)0,
3709 (char*)0, (char*)0, 0 };
3710static 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 };
3714static 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 };
3717static 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 };
3722static 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." };
3725static 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 };
3730
3731static 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 };
3734static 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 };
3737static KmParInt _GEANT_GEOMETRY_SVOLU_NUMED_type = { (char*)0, (char*)0,
3738 (char*)0, (char*)0, 0 };
3739static 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 };
3742static KmParInt _GEANT_GEOMETRY_SVOLU_NPAR_type = { (char*)0, (char*)0,
3743 (char*)0, (char*)0, 0 };
3744static 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 };
3747static 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 };
3750static 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 };
3754static 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." };
3758static 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 };
3763
3764static char *_GEANT_GEOMETRY_OPTI_IOPTI_range[] = { "-1", "2" };
3765static KmParInt _GEANT_GEOMETRY_OPTI_IOPTI_type = { (char*)0, (char*)0,
3766 (char*)0, (char*)0, 0 };
3767static 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 };
3771static KmParameter *_GEANT_GEOMETRY_OPTI_parameters[] = {
3772 &_GEANT_GEOMETRY_OPTI_IOPTI };
3773static 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." };
3779static 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 };
3784
3785static 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 };
3788static KmParInt _GEANT_CREATE_SPARA_NUMED_type = { (char*)0, (char*)0,
3789 (char*)0, (char*)0, 0 };
3790static 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 };
3793static KmParReal _GEANT_CREATE_SPARA_HALFX_type = { (char*)0, (char*)0,
3794 (char*)0, (char*)0, 0 };
3795static 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 };
3798static KmParReal _GEANT_CREATE_SPARA_HALFY_type = { (char*)0, (char*)0,
3799 (char*)0, (char*)0, 0 };
3800static 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 };
3803static KmParReal _GEANT_CREATE_SPARA_HALFZ_type = { (char*)0, (char*)0,
3804 (char*)0, (char*)0, 0 };
3805static 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 };
3808static KmParReal _GEANT_CREATE_SPARA_AXIS_type = { "0.", "360.", "0.",
3809 "360.", 0 };
3810static 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 };
3814static KmParReal _GEANT_CREATE_SPARA_PHI_type = { "0.", "360.", "0.",
3815 "360.", 0 };
3816static 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 };
3820static KmParReal _GEANT_CREATE_SPARA_THETA_type = { "0.", "360.", "0.",
3821 "360.", 0 };
3822static 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 };
3826static char *_GEANT_CREATE_SPARA_YESNO_range[] = { "YES", "NO" };
3827static char *_GEANT_CREATE_SPARA_YESNO_text[] = { (char*)0, (char*)0 };
3828static KmParOption _GEANT_CREATE_SPARA_YESNO_type = {
3829 _GEANT_CREATE_SPARA_YESNO_text, (int*)0, (int*)0 };
3830static 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 };
3834static 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 };
3840static 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 };
3844
3845static 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 };
3848static KmParInt _GEANT_CREATE_SSPHE_NUMED_type = { (char*)0, (char*)0,
3849 (char*)0, (char*)0, 0 };
3850static 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 };
3853static KmParReal _GEANT_CREATE_SSPHE_INRAD_type = { (char*)0, (char*)0,
3854 (char*)0, (char*)0, 0 };
3855static 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 };
3858static KmParReal _GEANT_CREATE_SSPHE_OUTRAD_type = { (char*)0, (char*)0,
3859 (char*)0, (char*)0, 0 };
3860static 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 };
3863static KmParReal _GEANT_CREATE_SSPHE_SPHI_type = { "0.", "360.", "0.",
3864 "360.", 0 };
3865static 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 };
3868static KmParReal _GEANT_CREATE_SSPHE_EPHI_type = { "0.", "360.", "0.",
3869 "360.", 0 };
3870static 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 };
3873static KmParReal _GEANT_CREATE_SSPHE_STHETA_type = { (char*)0, (char*)0,
3874 (char*)0, (char*)0, 0 };
3875static 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 };
3878static KmParReal _GEANT_CREATE_SSPHE_ETHETA_type = { (char*)0, (char*)0,
3879 (char*)0, (char*)0, 0 };
3880static 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 };
3883static char *_GEANT_CREATE_SSPHE_YESNO_range[] = { "YES", "NO" };
3884static char *_GEANT_CREATE_SSPHE_YESNO_text[] = { (char*)0, (char*)0 };
3885static KmParOption _GEANT_CREATE_SSPHE_YESNO_type = {
3886 _GEANT_CREATE_SSPHE_YESNO_text, (int*)0, (int*)0 };
3887static 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 };
3891static 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 };
3897static 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 };
3901
3902static 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 };
3905static KmParInt _GEANT_CREATE_SCONS_NUMED_type = { (char*)0, (char*)0,
3906 (char*)0, (char*)0, 0 };
3907static 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 };
3910static KmParReal _GEANT_CREATE_SCONS_INRDW_type = { (char*)0, (char*)0,
3911 (char*)0, (char*)0, 0 };
3912static 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 };
3915static KmParReal _GEANT_CREATE_SCONS_OUTRDW_type = { (char*)0, (char*)0,
3916 (char*)0, (char*)0, 0 };
3917static 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 };
3920static KmParReal _GEANT_CREATE_SCONS_INRUP_type = { (char*)0, (char*)0,
3921 (char*)0, (char*)0, 0 };
3922static 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 };
3925static KmParReal _GEANT_CREATE_SCONS_OUTRUP_type = { (char*)0, (char*)0,
3926 (char*)0, (char*)0, 0 };
3927static 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 };
3930static KmParReal _GEANT_CREATE_SCONS_HALFZ_type = { (char*)0, (char*)0,
3931 (char*)0, (char*)0, 0 };
3932static 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 };
3935static KmParReal _GEANT_CREATE_SCONS_SPHI_type = { "0.", "360.", "0.",
3936 "360.", 0 };
3937static 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 };
3940static KmParReal _GEANT_CREATE_SCONS_EPHI_type = { "0.", "360.", "0.",
3941 "360.", 0 };
3942static 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 };
3945static char *_GEANT_CREATE_SCONS_YESNO_range[] = { "YES", "NO" };
3946static char *_GEANT_CREATE_SCONS_YESNO_text[] = { (char*)0, (char*)0 };
3947static KmParOption _GEANT_CREATE_SCONS_YESNO_type = {
3948 _GEANT_CREATE_SCONS_YESNO_text, (int*)0, (int*)0 };
3949static 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 };
3953static 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 };
3959static 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 };
3963
3964static 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 };
3967static KmParInt _GEANT_CREATE_SCONE_NUMED_type = { (char*)0, (char*)0,
3968 (char*)0, (char*)0, 0 };
3969static 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 };
3972static KmParReal _GEANT_CREATE_SCONE_INRDW_type = { (char*)0, (char*)0,
3973 (char*)0, (char*)0, 0 };
3974static 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 };
3977static KmParReal _GEANT_CREATE_SCONE_OUTRDW_type = { (char*)0, (char*)0,
3978 (char*)0, (char*)0, 0 };
3979static 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 };
3982static KmParReal _GEANT_CREATE_SCONE_INRUP_type = { (char*)0, (char*)0,
3983 (char*)0, (char*)0, 0 };
3984static 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 };
3987static KmParReal _GEANT_CREATE_SCONE_OUTRUP_type = { (char*)0, (char*)0,
3988 (char*)0, (char*)0, 0 };
3989static 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 };
3992static KmParReal _GEANT_CREATE_SCONE_HALFZ_type = { (char*)0, (char*)0,
3993 (char*)0, (char*)0, 0 };
3994static 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 };
3997static char *_GEANT_CREATE_SCONE_YESNO_range[] = { "YES", "NO" };
3998static char *_GEANT_CREATE_SCONE_YESNO_text[] = { (char*)0, (char*)0 };
3999static KmParOption _GEANT_CREATE_SCONE_YESNO_type = {
4000 _GEANT_CREATE_SCONE_YESNO_text, (int*)0, (int*)0 };
4001static 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 };
4005static 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 };
4010static 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 };
4014
4015static 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 };
4018static KmParInt _GEANT_CREATE_STUBS_NUMED_type = { (char*)0, (char*)0,
4019 (char*)0, (char*)0, 0 };
4020static 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 };
4023static KmParReal _GEANT_CREATE_STUBS_INRAD_type = { (char*)0, (char*)0,
4024 (char*)0, (char*)0, 0 };
4025static 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 };
4028static KmParReal _GEANT_CREATE_STUBS_OUTRAD_type = { (char*)0, (char*)0,
4029 (char*)0, (char*)0, 0 };
4030static 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 };
4033static KmParReal _GEANT_CREATE_STUBS_HALFZ_type = { (char*)0, (char*)0,
4034 (char*)0, (char*)0, 0 };
4035static 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 };
4038static KmParReal _GEANT_CREATE_STUBS_SPHI_type = { "0.", "360.", "0.",
4039 "360.", 0 };
4040static 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 };
4043static KmParReal _GEANT_CREATE_STUBS_EPHI_type = { "0.", "360.", "0.",
4044 "360.", 0 };
4045static 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 };
4048static char *_GEANT_CREATE_STUBS_YESNO_range[] = { "YES", "NO" };
4049static char *_GEANT_CREATE_STUBS_YESNO_text[] = { (char*)0, (char*)0 };
4050static KmParOption _GEANT_CREATE_STUBS_YESNO_type = {
4051 _GEANT_CREATE_STUBS_YESNO_text, (int*)0, (int*)0 };
4052static 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 };
4056static 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 };
4061static 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 };
4065
4066static 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 };
4069static KmParInt _GEANT_CREATE_STUBE_NUMED_type = { (char*)0, (char*)0,
4070 (char*)0, (char*)0, 0 };
4071static 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 };
4074static KmParReal _GEANT_CREATE_STUBE_INRAD_type = { (char*)0, (char*)0,
4075 (char*)0, (char*)0, 0 };
4076static 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 };
4079static KmParReal _GEANT_CREATE_STUBE_OUTRAD_type = { (char*)0, (char*)0,
4080 (char*)0, (char*)0, 0 };
4081static 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 };
4084static KmParReal _GEANT_CREATE_STUBE_HALFZ_type = { (char*)0, (char*)0,
4085 (char*)0, (char*)0, 0 };
4086static 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 };
4089static char *_GEANT_CREATE_STUBE_YESNO_range[] = { "YES", "NO" };
4090static char *_GEANT_CREATE_STUBE_YESNO_text[] = { (char*)0, (char*)0 };
4091static KmParOption _GEANT_CREATE_STUBE_YESNO_type = {
4092 _GEANT_CREATE_STUBE_YESNO_text, (int*)0, (int*)0 };
4093static 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 };
4097static 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 };
4101static 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 };
4105
4106static 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 };
4109static KmParInt _GEANT_CREATE_STRD2_NUMED_type = { (char*)0, (char*)0,
4110 (char*)0, (char*)0, 0 };
4111static 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 };
4114static KmParReal _GEANT_CREATE_STRD2_HLFDWX_type = { (char*)0, (char*)0,
4115 (char*)0, (char*)0, 0 };
4116static 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 };
4119static KmParReal _GEANT_CREATE_STRD2_HLFUPX_type = { (char*)0, (char*)0,
4120 (char*)0, (char*)0, 0 };
4121static 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 };
4124static KmParReal _GEANT_CREATE_STRD2_HLFDWY_type = { (char*)0, (char*)0,
4125 (char*)0, (char*)0, 0 };
4126static 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 };
4129static KmParReal _GEANT_CREATE_STRD2_HLFUPY_type = { (char*)0, (char*)0,
4130 (char*)0, (char*)0, 0 };
4131static 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 };
4134static KmParReal _GEANT_CREATE_STRD2_HALFZ_type = { (char*)0, (char*)0,
4135 (char*)0, (char*)0, 0 };
4136static 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 };
4139static char *_GEANT_CREATE_STRD2_YESNO_range[] = { "YES", "NO" };
4140static char *_GEANT_CREATE_STRD2_YESNO_text[] = { (char*)0, (char*)0 };
4141static KmParOption _GEANT_CREATE_STRD2_YESNO_type = {
4142 _GEANT_CREATE_STRD2_YESNO_text, (int*)0, (int*)0 };
4143static 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 };
4147static 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 };
4152static 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 };
4156
4157static 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 };
4160static KmParInt _GEANT_CREATE_STRD1_NUMED_type = { (char*)0, (char*)0,
4161 (char*)0, (char*)0, 0 };
4162static 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 };
4165static KmParReal _GEANT_CREATE_STRD1_HLFDWX_type = { (char*)0, (char*)0,
4166 (char*)0, (char*)0, 0 };
4167static 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 };
4170static KmParReal _GEANT_CREATE_STRD1_HLFUPX_type = { (char*)0, (char*)0,
4171 (char*)0, (char*)0, 0 };
4172static 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 };
4175static KmParReal _GEANT_CREATE_STRD1_HALFY_type = { (char*)0, (char*)0,
4176 (char*)0, (char*)0, 0 };
4177static 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 };
4180static KmParReal _GEANT_CREATE_STRD1_HALFZ_type = { (char*)0, (char*)0,
4181 (char*)0, (char*)0, 0 };
4182static 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 };
4185static char *_GEANT_CREATE_STRD1_YESNO_range[] = { "YES", "NO" };
4186static char *_GEANT_CREATE_STRD1_YESNO_text[] = { (char*)0, (char*)0 };
4187static KmParOption _GEANT_CREATE_STRD1_YESNO_type = {
4188 _GEANT_CREATE_STRD1_YESNO_text, (int*)0, (int*)0 };
4189static 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 };
4193static 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 };
4198static 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 };
4202
4203static 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 };
4206static KmParInt _GEANT_CREATE_SBOX_NUMED_type = { (char*)0, (char*)0,
4207 (char*)0, (char*)0, 0 };
4208static 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 };
4211static KmParReal _GEANT_CREATE_SBOX_HALFX_type = { (char*)0, (char*)0,
4212 (char*)0, (char*)0, 0 };
4213static 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 };
4216static KmParReal _GEANT_CREATE_SBOX_HALFY_type = { (char*)0, (char*)0,
4217 (char*)0, (char*)0, 0 };
4218static 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 };
4221static KmParReal _GEANT_CREATE_SBOX_HALFZ_type = { (char*)0, (char*)0,
4222 (char*)0, (char*)0, 0 };
4223static 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 };
4226static char *_GEANT_CREATE_SBOX_YESNO_range[] = { "YES", "NO" };
4227static char *_GEANT_CREATE_SBOX_YESNO_text[] = { (char*)0, (char*)0 };
4228static KmParOption _GEANT_CREATE_SBOX_YESNO_type = {
4229 _GEANT_CREATE_SBOX_YESNO_text, (int*)0, (int*)0 };
4230static 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 };
4234static 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 };
4238static 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 };
4242
4243static 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"
4246 };
4247static KmMenu _GEANT_CREATE = { (KmMenu*)0, (KmMenu*)0, "/GEANT/CREATE",
4248 "CREATE", 2, &_GEANT_CREATE_SBOX, 3, _GEANT_CREATE_guidance, 0, (char**)0, 0,
4249 (char**)0 };
4250
4251static char *_GEANT_GEOMETRY_guidance[] = { "Geometry commands." };
4252static 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 };
4255
4256static KmMenu _GEANT = { (KmMenu*)0, &_GEANT_GEOMETRY, "/GEANT", "GEANT", 1,
4257 (KmCommand*)0, 0, (char**)0, 0, (char**)0, 0, (char**)0 };
4258
4259 klnkmenu( &_GEANT, 950303 );
4260}
4261
4262
4263#ifdef F77_LCASE
4264# define gkcont_ gkcont
4265# define gxcont_ gxcont
4266#endif
4267
4268#ifdef F77_UCASE
4269# define gkcont_ GKCONT
4270# define gxcont_ GXCONT
4271#endif
4272
4273#ifdef IBM370
4274# pragma linkage(GKCONT,FORTRAN)
4275# pragma linkage(GXCONT,FORTRAN)
4276#endif
4277
4278extern void gkcont_();
4279extern void gxcont_();
4280
4281void gkcont_()
4282{
4283
4284static char *_GEANT_CONTROL_DEBUG_IDEB_range[] = { "ON", "OFF" };
4285static char *_GEANT_CONTROL_DEBUG_IDEB_text[] = { (char*)0, (char*)0 };
4286static KmParOption _GEANT_CONTROL_DEBUG_IDEB_type = {
4287 _GEANT_CONTROL_DEBUG_IDEB_text, (int*)0, (int*)0 };
4288static 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 };
4292static KmParameter *_GEANT_CONTROL_DEBUG_parameters[] = {
4293 &_GEANT_CONTROL_DEBUG_IDEB };
4294static 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" };
4297static 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 };
4302
4303static KmParInt _GEANT_CONTROL_PRKINE_NUMB_type = { (char*)0, (char*)0,
4304 (char*)0, (char*)0, 0 };
4305static 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 };
4308static KmParameter *_GEANT_CONTROL_PRKINE_parameters[] = {
4309 &_GEANT_CONTROL_PRKINE_NUMB };
4310static char *_GEANT_CONTROL_PRKINE_guidance[] = { "CALL GPKINE(numb)" };
4311static 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 };
4316
4317static KmParInt _GEANT_CONTROL_PPART_NUMB_type = { (char*)0, (char*)0,
4318 (char*)0, (char*)0, 0 };
4319static 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 };
4322static KmParameter *_GEANT_CONTROL_PPART_parameters[] = {
4323 &_GEANT_CONTROL_PPART_NUMB };
4324static char *_GEANT_CONTROL_PPART_guidance[] = { "CALL GPPART(numb)" };
4325static 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 };
4330
4331static KmParInt _GEANT_CONTROL_SPART_IPART_type = { (char*)0, (char*)0,
4332 (char*)0, (char*)0, 0 };
4333static 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 };
4336static 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 };
4339static KmParInt _GEANT_CONTROL_SPART_ITRTYP_type = { (char*)0, (char*)0,
4340 (char*)0, (char*)0, 0 };
4341static 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 };
4344static KmParReal _GEANT_CONTROL_SPART_AMASS_type = { (char*)0, (char*)0,
4345 (char*)0, (char*)0, 0 };
4346static 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 };
4349static KmParReal _GEANT_CONTROL_SPART_CHARGE_type = { (char*)0, (char*)0,
4350 (char*)0, (char*)0, 0 };
4351static 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 };
4354static KmParReal _GEANT_CONTROL_SPART_TLIFE_type = { (char*)0, (char*)0,
4355 (char*)0, (char*)0, 0 };
4356static 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 };
4359static KmParReal _GEANT_CONTROL_SPART_UBUF_type = { (char*)0, (char*)0,
4360 (char*)0, (char*)0, 0 };
4361static 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 };
4364static KmParInt _GEANT_CONTROL_SPART_NWBUF_type = { (char*)0, (char*)0,
4365 (char*)0, (char*)0, 0 };
4366static 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 };
4369static KmParReal _GEANT_CONTROL_SPART_BRATIO_type = { (char*)0, (char*)0,
4370 (char*)0, (char*)0, 0 };
4371static 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 };
4374static KmParInt _GEANT_CONTROL_SPART_MODE_type = { (char*)0, (char*)0,
4375 (char*)0, (char*)0, 0 };
4376static 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 };
4379static 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 };
4385static char *_GEANT_CONTROL_SPART_guidance[] = {
4386 "CALL GSPART(ipart,napart,itrtyp,amass,charge,tlife,ubuf,nwbuf);",
4387 "CALL GSDK(ipart,bratio,mode)" };
4388static 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 };
4393
4394static KmParInt _GEANT_CONTROL_STPAR_ITMED_type = { (char*)0, (char*)0,
4395 (char*)0, (char*)0, 0 };
4396static 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 };
4399static 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 };
4402static KmParReal _GEANT_CONTROL_STPAR_PARVAL_type = { (char*)0, (char*)0,
4403 (char*)0, (char*)0, 0 };
4404static 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 };
4407static KmParameter *_GEANT_CONTROL_STPAR_parameters[] = {
4408 &_GEANT_CONTROL_STPAR_ITMED, &_GEANT_CONTROL_STPAR_CHPAR,
4409 &_GEANT_CONTROL_STPAR_PARVAL };
4410static char *_GEANT_CONTROL_STPAR_guidance[] = {
4411 "CALL GSTPAR(itmed,chpar,parval)" };
4412static 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 };
4417
4418static KmParInt _GEANT_CONTROL_DRMAT_IMATE_type = { (char*)0, (char*)0,
4419 (char*)0, (char*)0, 0 };
4420static 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 };
4423static KmParInt _GEANT_CONTROL_DRMAT_IPART_type = { (char*)0, (char*)0,
4424 (char*)0, (char*)0, 0 };
4425static 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 };
4428static 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 };
4431static KmParameter *_GEANT_CONTROL_DRMAT_parameters[] = {
4432 &_GEANT_CONTROL_DRMAT_IMATE, &_GEANT_CONTROL_DRMAT_IPART,
4433 &_GEANT_CONTROL_DRMAT_MECAN };
4434static 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." };
4441static 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 };
4446
4447static KmParInt _GEANT_CONTROL_PLMAT_IMATE_type = { (char*)0, (char*)0,
4448 (char*)0, (char*)0, 0 };
4449static 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 };
4452static KmParInt _GEANT_CONTROL_PLMAT_IPART_type = { (char*)0, (char*)0,
4453 (char*)0, (char*)0, 0 };
4454static 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 };
4457static 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 };
4460static KmParInt _GEANT_CONTROL_PLMAT_IDM_type = { (char*)0, (char*)0,
4461 (char*)0, (char*)0, 0 };
4462static 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 };
4465static KmParameter *_GEANT_CONTROL_PLMAT_parameters[] = {
4466 &_GEANT_CONTROL_PLMAT_IMATE, &_GEANT_CONTROL_PLMAT_IPART,
4467 &_GEANT_CONTROL_PLMAT_MECAN, &_GEANT_CONTROL_PLMAT_IDM };
4468static 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\
4475 number",
4476 "is negative, the cross sections relative to material ABS(IMATE) will",
4477 "be histogrammed in barns rather than in 1/cm." };
4478static 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 };
4483
4484static KmParInt _GEANT_CONTROL_PRMAT_IMATE_type = { (char*)0, (char*)0,
4485 (char*)0, (char*)0, 0 };
4486static 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 };
4489static KmParInt _GEANT_CONTROL_PRMAT_IPART_type = { (char*)0, (char*)0,
4490 (char*)0, (char*)0, 0 };
4491static 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 };
4494static 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 };
4497static KmParameter *_GEANT_CONTROL_PRMAT_parameters[] = {
4498 &_GEANT_CONTROL_PRMAT_IMATE, &_GEANT_CONTROL_PRMAT_IPART,
4499 &_GEANT_CONTROL_PRMAT_MECAN };
4500static char *_GEANT_CONTROL_PRMAT_guidance[] = {
4501 " CALL GPRMAT(imate,ipart,mecan,nekbin,elow)" };
4502static 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 };
4507
4508static KmParInt _GEANT_CONTROL_PMATE_NUMB_type = { (char*)0, (char*)0,
4509 (char*)0, (char*)0, 0 };
4510static 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 };
4513static KmParameter *_GEANT_CONTROL_PMATE_parameters[] = {
4514 &_GEANT_CONTROL_PMATE_NUMB };
4515static char *_GEANT_CONTROL_PMATE_guidance[] = { " CALL GPMATE(numb)" };
4516static 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 };
4521
4522static KmParInt _GEANT_CONTROL_SMIXT_IMAT_type = { (char*)0, (char*)0,
4523 (char*)0, (char*)0, 0 };
4524static 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 };
4527static 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 };
4530static KmParReal _GEANT_CONTROL_SMIXT_A_type = { (char*)0, (char*)0,
4531 (char*)0, (char*)0, 0 };
4532static 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 };
4535static KmParReal _GEANT_CONTROL_SMIXT_Z_type = { (char*)0, (char*)0,
4536 (char*)0, (char*)0, 0 };
4537static 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 };
4540static KmParReal _GEANT_CONTROL_SMIXT_DENS_type = { (char*)0, (char*)0,
4541 (char*)0, (char*)0, 0 };
4542static 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 };
4545static KmParInt _GEANT_CONTROL_SMIXT_NLMAT_type = { (char*)0, (char*)0,
4546 (char*)0, (char*)0, 0 };
4547static 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 };
4550static KmParReal _GEANT_CONTROL_SMIXT_WMAT_type = { (char*)0, (char*)0,
4551 (char*)0, (char*)0, 0 };
4552static 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 };
4556static 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 };
4560static char *_GEANT_CONTROL_SMIXT_guidance[] = {
4561 " CALL GSMIXT(imat,namate,a,z,dens,nlmat,wmat)" };
4562static 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 };
4567
4568static KmParInt _GEANT_CONTROL_SMATE_IMAT_type = { (char*)0, (char*)0,
4569 (char*)0, (char*)0, 0 };
4570static 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 };
4573static 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 };
4576static KmParReal _GEANT_CONTROL_SMATE_A_type = { (char*)0, (char*)0,
4577 (char*)0, (char*)0, 0 };
4578static 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 };
4581static KmParReal _GEANT_CONTROL_SMATE_Z_type = { (char*)0, (char*)0,
4582 (char*)0, (char*)0, 0 };
4583static 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 };
4586static KmParReal _GEANT_CONTROL_SMATE_DENS_type = { (char*)0, (char*)0,
4587 (char*)0, (char*)0, 0 };
4588static 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 };
4591static KmParReal _GEANT_CONTROL_SMATE_RADL_type = { (char*)0, (char*)0,
4592 (char*)0, (char*)0, 0 };
4593static 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 };
4596static KmParReal _GEANT_CONTROL_SMATE_ABSL_type = { (char*)0, (char*)0,
4597 (char*)0, (char*)0, 0 };
4598static 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 };
4601static KmParReal _GEANT_CONTROL_SMATE_UBUF_type = { (char*)0, (char*)0,
4602 (char*)0, (char*)0, 0 };
4603static 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 };
4606static KmParInt _GEANT_CONTROL_SMATE_NWBUF_type = { (char*)0, (char*)0,
4607 (char*)0, (char*)0, 0 };
4608static 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 };
4611static 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 };
4616static char *_GEANT_CONTROL_SMATE_guidance[] = {
4617 " CALL GSMATE(imat,namate,a,z,dens,radl,absl,ubuf,nwbuf)" };
4618static 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 };
4623
4624static KmParameter _GEANT_CONTROL_PDIGI_CHUSET = { "CHUSET", 6, "User set",
4625 "*", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
4626 (void*)0 };
4627static 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 };
4630static KmParameter *_GEANT_CONTROL_PDIGI_parameters[] = {
4631 &_GEANT_CONTROL_PDIGI_CHUSET, &_GEANT_CONTROL_PDIGI_CHUDET };
4632static char *_GEANT_CONTROL_PDIGI_guidance[] = { " CALL GPDIGI(chuset,chudet)"
4633 };
4634static 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 };
4639
4640static KmParameter _GEANT_CONTROL_PHITS_CHUSET = { "CHUSET", 6, "User set",
4641 "*", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
4642 (void*)0 };
4643static 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 };
4646static KmParInt _GEANT_CONTROL_PHITS_NUMHI_type = { (char*)0, (char*)0,
4647 (char*)0, (char*)0, 0 };
4648static 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 };
4651static KmParameter *_GEANT_CONTROL_PHITS_parameters[] = {
4652 &_GEANT_CONTROL_PHITS_CHUSET, &_GEANT_CONTROL_PHITS_CHUDET,
4653 &_GEANT_CONTROL_PHITS_NUMHI };
4654static char *_GEANT_CONTROL_PHITS_guidance[] = { " CALL GPHITS(chuset,chudet)"
4655 };
4656static 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 };
4661
4662static KmParInt _GEANT_CONTROL_OUTPUT_LP_LOUT_type = { (char*)0, (char*)0,
4663 (char*)0, (char*)0, 0 };
4664static 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 };
4667static KmParameter *_GEANT_CONTROL_OUTPUT_LP_parameters[] = {
4668 &_GEANT_CONTROL_OUTPUT_LP_LOUT };
4669static 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." };
4672static 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 };
4677
4678static KmParameter _GEANT_CONTROL_PRINT_NAME = { "NAME", 4, "Name", (char*)0,
4679 (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
4680 (void*)0 };
4681static KmParInt _GEANT_CONTROL_PRINT_NUMBER_type = { (char*)0, (char*)0,
4682 (char*)0, (char*)0, 0 };
4683static 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 };
4686static KmParameter *_GEANT_CONTROL_PRINT_parameters[] = {
4687 &_GEANT_CONTROL_PRINT_NAME, &_GEANT_CONTROL_PRINT_NUMBER };
4688static char *_GEANT_CONTROL_PRINT_guidance[] = { " CALL GPRINT(name,number)" };
4689static 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 };
4694
4695static KmParInt _GEANT_CONTROL_MZLOGL_LEVEL_type = { (char*)0, (char*)0,
4696 (char*)0, (char*)0, 0 };
4697static 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 };
4700static KmParameter *_GEANT_CONTROL_MZLOGL_parameters[] = {
4701 &_GEANT_CONTROL_MZLOGL_LEVEL };
4702static 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" };
4707static 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 };
4712
4713static KmParInt _GEANT_CONTROL_SWITCH_ISWI_type = { (char*)0, (char*)0,
4714 (char*)0, (char*)0, 0 };
4715static 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 };
4718static KmParInt _GEANT_CONTROL_SWITCH_IVAL_type = { (char*)0, (char*)0,
4719 (char*)0, (char*)0, 0 };
4720static 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 };
4723static KmParameter *_GEANT_CONTROL_SWITCH_parameters[] = {
4724 &_GEANT_CONTROL_SWITCH_ISWI, &_GEANT_CONTROL_SWITCH_IVAL };
4725static char *_GEANT_CONTROL_SWITCH_guidance[] = {
4726 "Change one element of array ISWIT(10) in /GCFLAG/" };
4727static 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 };
4732
4733static KmParInt _GEANT_CONTROL_RNDM_ISEED1_type = { (char*)0, (char*)0,
4734 (char*)0, (char*)0, 0 };
4735static 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 };
4739static KmParInt _GEANT_CONTROL_RNDM_ISEED2_type = { (char*)0, (char*)0,
4740 (char*)0, (char*)0, 0 };
4741static 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 };
4745static KmParameter *_GEANT_CONTROL_RNDM_parameters[] = {
4746 &_GEANT_CONTROL_RNDM_ISEED1, &_GEANT_CONTROL_RNDM_ISEED2 };
4747static 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." };
4750static 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 };
4755
4756static KmParInt _GEANT_CONTROL_TRIGGER_N_type = { (char*)0, (char*)0,
4757 (char*)0, (char*)0, 0 };
4758static 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 };
4761static KmParameter *_GEANT_CONTROL_TRIGGER_parameters[] = {
4762 &_GEANT_CONTROL_TRIGGER_N };
4763static char *_GEANT_CONTROL_TRIGGER_guidance[] = {
4764 "Start one or more new events." };
4765static 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 };
4770
4771static char *_GEANT_CONTROL_TRACK_guidance[] = {
4772 "Restart tracking, clearing the track and hit",
4773 "banks, but keeping the kinematics." };
4774static 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 };
4778
4779static KmParReal _GEANT_CONTROL_GTIME_TIMINT_type = { (char*)0, (char*)0,
4780 (char*)0, (char*)0, 0 };
4781static 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 };
4784static KmParReal _GEANT_CONTROL_GTIME_TIMEND_type = { (char*)0, (char*)0,
4785 (char*)0, (char*)0, 0 };
4786static 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 };
4790static KmParInt _GEANT_CONTROL_GTIME_ITIME_type = { (char*)0, (char*)0,
4791 (char*)0, (char*)0, 0 };
4792static 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 };
4795static KmParameter *_GEANT_CONTROL_GTIME_parameters[] = {
4796 &_GEANT_CONTROL_GTIME_TIMINT, &_GEANT_CONTROL_GTIME_TIMEND,
4797 &_GEANT_CONTROL_GTIME_ITIME };
4798static 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." };
4801static 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 };
4806
4807static char *_GEANT_CONTROL_SORD_ISTORD_range[] = { "1", "0" };
4808static KmParInt _GEANT_CONTROL_SORD_ISTORD_type = { (char*)0, (char*)0,
4809 (char*)0, (char*)0, 0 };
4810static 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 };
4814static KmParameter *_GEANT_CONTROL_SORD_parameters[] = {
4815 &_GEANT_CONTROL_SORD_ISTORD };
4816static 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." };
4819static 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 };
4824
4825static KmParInt _GEANT_CONTROL_RUNG_IDRUN_type = { (char*)0, (char*)0,
4826 (char*)0, (char*)0, 0 };
4827static 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 };
4830static KmParInt _GEANT_CONTROL_RUNG_IDEVT_type = { (char*)0, (char*)0,
4831 (char*)0, (char*)0, 0 };
4832static 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 };
4835static KmParameter *_GEANT_CONTROL_RUNG_parameters[] = {
4836 &_GEANT_CONTROL_RUNG_IDRUN, &_GEANT_CONTROL_RUNG_IDEVT };
4837static char *_GEANT_CONTROL_RUNG_guidance[] = {
4838 "Set the run number and the starting value for the user event number." };
4839static 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 };
4844
4845static KmParInt _GEANT_CONTROL_KINE_IKINE_type = { (char*)0, (char*)0,
4846 (char*)0, (char*)0, 0 };
4847static 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 };
4850static KmParReal _GEANT_CONTROL_KINE_PKINE1_type = { (char*)0, (char*)0,
4851 (char*)0, (char*)0, 0 };
4852static 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 };
4855static KmParReal _GEANT_CONTROL_KINE_PKINE2_type = { (char*)0, (char*)0,
4856 (char*)0, (char*)0, 0 };
4857static 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 };
4860static KmParReal _GEANT_CONTROL_KINE_PKINE3_type = { (char*)0, (char*)0,
4861 (char*)0, (char*)0, 0 };
4862static 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 };
4865static KmParReal _GEANT_CONTROL_KINE_PKINE4_type = { (char*)0, (char*)0,
4866 (char*)0, (char*)0, 0 };
4867static 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 };
4870static KmParReal _GEANT_CONTROL_KINE_PKINE5_type = { (char*)0, (char*)0,
4871 (char*)0, (char*)0, 0 };
4872static 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 };
4875static KmParReal _GEANT_CONTROL_KINE_PKINE6_type = { (char*)0, (char*)0,
4876 (char*)0, (char*)0, 0 };
4877static 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 };
4880static KmParReal _GEANT_CONTROL_KINE_PKINE7_type = { (char*)0, (char*)0,
4881 (char*)0, (char*)0, 0 };
4882static 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 };
4885static KmParReal _GEANT_CONTROL_KINE_PKINE8_type = { (char*)0, (char*)0,
4886 (char*)0, (char*)0, 0 };
4887static 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 };
4890static KmParReal _GEANT_CONTROL_KINE_PKINE9_type = { (char*)0, (char*)0,
4891 (char*)0, (char*)0, 0 };
4892static 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 };
4895static KmParReal _GEANT_CONTROL_KINE_PKINE10_type = { (char*)0, (char*)0,
4896 (char*)0, (char*)0, 0 };
4897static 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 };
4900static 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 };
4907static char *_GEANT_CONTROL_KINE_guidance[] = {
4908 "Set the variables in /GCFLAG/ IKINE, PKINE(10)" };
4909static 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 };
4914
4915static char *_GEANT_CONTROL_guidance[] = { "Control commands." };
4916static KmMenu _GEANT_CONTROL = { (KmMenu*)0, (KmMenu*)0, "/GEANT/CONTROL",
4917 "CONTROL", 2, &_GEANT_CONTROL_KINE, 1, _GEANT_CONTROL_guidance, 0, (char**)0,
4918 0, (char**)0 };
4919
4920static KmMenu _GEANT = { (KmMenu*)0, &_GEANT_CONTROL, "/GEANT", "GEANT", 1,
4921 (KmCommand*)0, 0, (char**)0, 0, (char**)0, 0, (char**)0 };
4922
4923 klnkmenu( &_GEANT, 950303 );
4924}
4925
4926
4927#ifdef F77_LCASE
4928# define gkdz_ gkdz
4929# define gxdz_ gxdz
4930#endif
4931
4932#ifdef F77_UCASE
4933# define gkdz_ GKDZ
4934# define gxdz_ GXDZ
4935#endif
4936
4937#ifdef IBM370
4938# pragma linkage(GKDZ,FORTRAN)
4939# pragma linkage(GXDZ,FORTRAN)
4940#endif
4941
4942extern void gkdz_();
4943extern void gxdz_();
4944
4945void gkdz_()
4946{
4947
4948static 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 };
4951static KmParameter *_GEANT_DZ_DIRZ_parameters[] = { &_GEANT_DZ_DIRZ_PATH };
4952static char *_GEANT_DZ_DIRZ_guidance[] = {
4953 "Facility to display RZ directory trees.",
4954 " CALL DZDIRZ(0,LDUMMY,0,path,'N',1,0,1)" };
4955static 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 };
4959
4960static 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 };
4963static 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,
4965 (void*)0 };
4966static KmParInt _GEANT_DZ_DISP_NUMBER_type = { (char*)0, (char*)0,
4967 (char*)0, (char*)0, 0 };
4968static 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 };
4971static KmParameter *_GEANT_DZ_DISP_parameters[] = { &_GEANT_DZ_DISP_BANK,
4972 &_GEANT_DZ_DISP_PATH, &_GEANT_DZ_DISP_NUMBER };
4973static char *_GEANT_DZ_DISP_guidance[] = { "Interactive bank display tool.",
4974 " CALL DZDISP(IXSTOR,LBANK,path,'N',1,0,1,IWTYPE)" };
4975static 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 };
4979
4980static KmParInt _GEANT_DZ_DDIV_IDIV_type = { (char*)0, (char*)0, (char*)0,
4981 (char*)0, 0 };
4982static 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 };
4985static 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,
4987 (void*)0 };
4988static KmParameter *_GEANT_DZ_DDIV_parameters[] = { &_GEANT_DZ_DDIV_IDIV,
4989 &_GEANT_DZ_DDIV_PATH };
4990static 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)" };
4993static 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 };
4997
4998static KmParInt _GEANT_DZ_STORE_IXSTOR_type = { "0", "24", "0", "24", 0 };
4999static 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 };
5002static KmParameter *_GEANT_DZ_STORE_parameters[] = { &_GEANT_DZ_STORE_IXSTOR };
5003static 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",
5007 "question." };
5008static 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 };
5012
5013static KmParInt _GEANT_DZ_VERIFY_IDIV_type = { "0", "24", "0", "24", 0 };
5014static 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 };
5017static KmParOption _GEANT_DZ_VERIFY_CHOPT_type = { (char**)0, (int*)0, (int*)0
5018 };
5019static 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 };
5022static KmParameter *_GEANT_DZ_VERIFY_parameters[] = { &_GEANT_DZ_VERIFY_IDIV,
5023 &_GEANT_DZ_VERIFY_CHOPT };
5024static 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" };
5032static 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 };
5036
5037static KmParInt _GEANT_DZ_SNAP_IDIV_type = { "0", "24", "0", "24", 0 };
5038static 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 };
5041static KmParOption _GEANT_DZ_SNAP_CHOPT_type = { (char**)0, (int*)0, (int*)0 };
5042static 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 };
5045static KmParameter *_GEANT_DZ_SNAP_parameters[] = { &_GEANT_DZ_SNAP_IDIV,
5046 &_GEANT_DZ_SNAP_CHOPT };
5047static 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." };
5059static 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 };
5063
5064static 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,
5066 (void*)0 };
5067static KmParInt _GEANT_DZ_SHOW_NUMBER_type = { (char*)0, (char*)0,
5068 (char*)0, (char*)0, 0 };
5069static 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 };
5072static KmParOption _GEANT_DZ_SHOW_CHOPT_type = { (char**)0, (int*)0, (int*)0 };
5073static 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 };
5076static KmParameter *_GEANT_DZ_SHOW_parameters[] = { &_GEANT_DZ_SHOW_NAME,
5077 &_GEANT_DZ_SHOW_NUMBER, &_GEANT_DZ_SHOW_CHOPT };
5078static 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" };
5090static 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 };
5094
5095static 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,
5097 (void*)0 };
5098static KmParInt _GEANT_DZ_SURV_NUMBER_type = { (char*)0, (char*)0,
5099 (char*)0, (char*)0, 0 };
5100static 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 };
5103static KmParameter *_GEANT_DZ_SURV_parameters[] = { &_GEANT_DZ_SURV_NAME,
5104 &_GEANT_DZ_SURV_NUMBER };
5105static char *_GEANT_DZ_SURV_guidance[] = {
5106 "Print a survey of the structure identified by NAME, NUMBER." };
5107static 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 };
5111
5112static KmMenu _GEANT_DZ = { (KmMenu*)0, (KmMenu*)0, "/GEANT/DZ", "DZ", 2,
5113 &_GEANT_DZ_SURV, 0, (char**)0, 0, (char**)0, 0, (char**)0 };
5114
5115static KmMenu _GEANT = { (KmMenu*)0, &_GEANT_DZ, "/GEANT", "GEANT", 1,
5116 (KmCommand*)0, 0, (char**)0, 0, (char**)0, 0, (char**)0 };
5117
5118 klnkmenu( &_GEANT, 950303 );
5119}
5120
5121
5122#ifdef F77_LCASE
5123# define gkfz_ gkfz
5124# define gxfz_ gxfz
5125#endif
5126
5127#ifdef F77_UCASE
5128# define gkfz_ GKFZ
5129# define gxfz_ GXFZ
5130#endif
5131
5132#ifdef IBM370
5133# pragma linkage(GKFZ,FORTRAN)
5134# pragma linkage(GXFZ,FORTRAN)
5135#endif
5136
5137extern void gkfz_();
5138extern void gxfz_();
5139
5140void gkfz_()
5141{
5142
5143static KmParInt _GEANT_FZ_FZCLOSE_LUN_type = { (char*)0, (char*)0,
5144 (char*)0, (char*)0, 0 };
5145static 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 };
5148static KmParameter *_GEANT_FZ_FZCLOSE_parameters[] = { &_GEANT_FZ_FZCLOSE_LUN
5149 };
5150static char *_GEANT_FZ_FZCLOSE_guidance[] = { "Equivalent to a call to:",
5151 " CALL GCLOSE(LUN,IER)" };
5152static 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 };
5156
5157static KmParInt _GEANT_FZ_FZOUT_LUN_type = { (char*)0, (char*)0, (char*)0,
5158 (char*)0, 0 };
5159static 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 };
5162static 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 };
5165static KmParInt _GEANT_FZ_FZOUT_IDENT_type = { (char*)0, (char*)0,
5166 (char*)0, (char*)0, 0 };
5167static 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 };
5170static KmParameter *_GEANT_FZ_FZOUT_parameters[] = { &_GEANT_FZ_FZOUT_LUN,
5171 &_GEANT_FZ_FZOUT_KEYSU, &_GEANT_FZ_FZOUT_IDENT };
5172static char *_GEANT_FZ_FZOUT_guidance[] = { "Equivalent to a call to:",
5173 " CALL GFOUT(LUN,KEYSU,1,IDENT,' ',IER)" };
5174static 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 };
5178
5179static KmParInt _GEANT_FZ_FZOPEN_LUN_type = { (char*)0, (char*)0, (char*)0,
5180 (char*)0, 0 };
5181static 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
5184 };
5185static 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 };
5188static 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 };
5191static KmParInt _GEANT_FZ_FZOPEN_LEN_type = { (char*)0, (char*)0, (char*)0,
5192 (char*)0, 0 };
5193static 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 };
5196static KmParOption _GEANT_FZ_FZOPEN_CHOPT_type = { (char**)0, (int*)0, (int*)0
5197 };
5198static 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 };
5201static 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 };
5204static 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." };
5209static 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 };
5213
5214static KmParInt _GEANT_FZ_FZIN_LUN_type = { (char*)0, (char*)0, (char*)0,
5215 (char*)0, 0 };
5216static 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 };
5219static 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 };
5222static KmParInt _GEANT_FZ_FZIN_IDENT_type = { (char*)0, (char*)0, (char*)0,
5223 (char*)0, 0 };
5224static 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
5227 };
5228static KmParameter *_GEANT_FZ_FZIN_parameters[] = { &_GEANT_FZ_FZIN_LUN,
5229 &_GEANT_FZ_FZIN_KEYSU, &_GEANT_FZ_FZIN_IDENT };
5230static char *_GEANT_FZ_FZIN_guidance[] = { "Equivalent to a call to:",
5231 " CALL GFIN(LUN,KEYSU,1,IDENT,' ',IER)" };
5232static 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 };
5236
5237static char *_GEANT_FZ_guidance[] = { "ZEBRA/FZ commands" };
5238static 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 };
5240
5241static KmMenu _GEANT = { (KmMenu*)0, &_GEANT_FZ, "/GEANT", "GEANT", 1,
5242 (KmCommand*)0, 0, (char**)0, 0, (char**)0, 0, (char**)0 };
5243
5244 klnkmenu( &_GEANT, 950303 );
5245}
5246
5247
5248#ifdef F77_LCASE
5249# define gkrz_ gkrz
5250# define gxrz_ gxrz
5251#endif
5252
5253#ifdef F77_UCASE
5254# define gkrz_ GKRZ
5255# define gxrz_ GXRZ
5256#endif
5257
5258#ifdef IBM370
5259# pragma linkage(GKRZ,FORTRAN)
5260# pragma linkage(GXRZ,FORTRAN)
5261#endif
5262
5263extern void gkrz_();
5264extern void gxrz_();
5265
5266void gkrz_()
5267{
5268
5269static 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 };
5272static KmParameter *_GEANT_RZ_FREE_parameters[] = { &_GEANT_RZ_FREE_CHDIR };
5273static char *_GEANT_RZ_FREE_guidance[] = { "Free an RZ directory." };
5274static 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 };
5278
5279static 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 };
5282static KmParameter *_GEANT_RZ_LOCK_parameters[] = { &_GEANT_RZ_LOCK_CHDIR };
5283static char *_GEANT_RZ_LOCK_guidance[] = { "Lock an RZ directory." };
5284static 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 };
5288
5289static 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 };
5292static KmParInt _GEANT_RZ_SCR_IDVERS_type = { (char*)0, (char*)0, (char*)0,
5293 (char*)0, 0 };
5294static 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 };
5297static KmParameter *_GEANT_RZ_SCR_parameters[] = { &_GEANT_RZ_SCR_OBJECT,
5298 &_GEANT_RZ_SCR_IDVERS };
5299static 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." };
5303static 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 };
5307
5308static KmParInt _GEANT_RZ_PURGE_NKEEP_type = { (char*)0, (char*)0,
5309 (char*)0, (char*)0, 0 };
5310static 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 };
5313static KmParameter *_GEANT_RZ_PURGE_parameters[] = { &_GEANT_RZ_PURGE_NKEEP };
5314static char *_GEANT_RZ_PURGE_guidance[] = { "Purge an RZ directory." };
5315static 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 };
5319
5320static KmParameter _GEANT_RZ_LDIR_CHPATH = { "CHPATH", 6, "Path name", " ",
5321 (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
5322 (void*)0 };
5323static KmParOption _GEANT_RZ_LDIR_CHOPT_type = { (char**)0, (int*)0, (int*)0 };
5324static 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 };
5327static KmParameter *_GEANT_RZ_LDIR_parameters[] = { &_GEANT_RZ_LDIR_CHPATH,
5328 &_GEANT_RZ_LDIR_CHOPT };
5329static 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 //'." };
5332static 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 };
5336
5337static 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 };
5340static KmParInt _GEANT_RZ_OUT_IDVERS_type = { (char*)0, (char*)0, (char*)0,
5341 (char*)0, 0 };
5342static 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 };
5345static KmParOption _GEANT_RZ_OUT_CHOPT_type = { (char**)0, (int*)0, (int*)0 };
5346static 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 };
5349static KmParameter *_GEANT_RZ_OUT_parameters[] = { &_GEANT_RZ_OUT_OBJECT,
5350 &_GEANT_RZ_OUT_IDVERS, &_GEANT_RZ_OUT_CHOPT };
5351static 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" };
5357static 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 };
5361
5362static 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 };
5365static KmParInt _GEANT_RZ_IN_IDVERS_type = { (char*)0, (char*)0, (char*)0,
5366 (char*)0, 0 };
5367static 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 };
5370static KmParOption _GEANT_RZ_IN_CHOPT_type = { (char**)0, (int*)0, (int*)0 };
5371static 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 };
5374static KmParameter *_GEANT_RZ_IN_parameters[] = { &_GEANT_RZ_IN_OBJECT,
5375 &_GEANT_RZ_IN_IDVERS, &_GEANT_RZ_IN_CHOPT };
5376static 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" };
5382static 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 };
5386
5387static KmParameter _GEANT_RZ_CDIR_CHPATH = { "CHPATH", 6, "Path name", " ",
5388 (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
5389 (void*)0 };
5390static KmParOption _GEANT_RZ_CDIR_CHOPT_type = { (char**)0, (int*)0, (int*)0 };
5391static 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 };
5394static KmParameter *_GEANT_RZ_CDIR_parameters[] = { &_GEANT_RZ_CDIR_CHPATH,
5395 &_GEANT_RZ_CDIR_CHOPT };
5396static 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" };
5401static 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 };
5405
5406static 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 };
5409static KmParOption _GEANT_RZ_MDIR_CHOPT_type = { (char**)0, (int*)0, (int*)0 };
5410static 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 };
5413static KmParameter *_GEANT_RZ_MDIR_parameters[] = { &_GEANT_RZ_MDIR_CHDIR,
5414 &_GEANT_RZ_MDIR_CHOPT };
5415static 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 '" };
5418static 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 };
5422
5423static KmParInt _GEANT_RZ_REND_LUNRZ_type = { (char*)0, (char*)0, (char*)0,
5424 (char*)0, 0 };
5425static 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 };
5428static KmParameter *_GEANT_RZ_REND_parameters[] = { &_GEANT_RZ_REND_LUNRZ };
5429static char *_GEANT_RZ_REND_guidance[] = {
5430 "Close an RZ file opened by GRFILE on logical unit LUNRZ.",
5431 " CALL GREND(LUNRZ)" };
5432static 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 };
5436
5437static KmParInt _GEANT_RZ_FILE_LUN_type = { (char*)0, (char*)0, (char*)0,
5438 (char*)0, 0 };
5439static 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 };
5442static 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,
5444 (void*)0 };
5445static char *_GEANT_RZ_FILE_CHOPT_range[] = { " ", "A", "N", "U" };
5446static char *_GEANT_RZ_FILE_CHOPT_text[] = { (char*)0, (char*)0, (char*)0,
5447 (char*)0 };
5448static KmParOption _GEANT_RZ_FILE_CHOPT_type = { _GEANT_RZ_FILE_CHOPT_text,
5449 (int*)0, (int*)0 };
5450static 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 };
5453static KmParameter *_GEANT_RZ_FILE_parameters[] = { &_GEANT_RZ_FILE_LUN,
5454 &_GEANT_RZ_FILE_FNAME, &_GEANT_RZ_FILE_CHOPT };
5455static 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" };
5460static 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 };
5464
5465static KmParInt _GEANT_RZ_PQUEST_IQ1_type = { (char*)0, (char*)0, (char*)0,
5466 (char*)0, 0 };
5467static 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 };
5470static KmParInt _GEANT_RZ_PQUEST_IQ2_type = { (char*)0, (char*)0, (char*)0,
5471 (char*)0, 0 };
5472static 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 };
5475static KmParameter *_GEANT_RZ_PQUEST_parameters[] = { &_GEANT_RZ_PQUEST_IQ1,
5476 &_GEANT_RZ_PQUEST_IQ2 };
5477static char *_GEANT_RZ_PQUEST_guidance[] = {
5478 "Print the array IQUEST in /QUEST/." };
5479static 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 };
5483
5484static char *_GEANT_RZ_guidance[] = { "ZEBRA/RZ commands." };
5485static 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 };
5487
5488static KmMenu _GEANT = { (KmMenu*)0, &_GEANT_RZ, "/GEANT", "GEANT", 1,
5489 (KmCommand*)0, 0, (char**)0, 0, (char**)0, 0, (char**)0 };
5490
5491 klnkmenu( &_GEANT, 950303 );
5492}
5493
5494
5495#ifdef F77_LCASE
5496# define gkscan_ gkscan
5497# define gxscan_ gxscan
5498#endif
5499
5500#ifdef F77_UCASE
5501# define gkscan_ GKSCAN
5502# define gxscan_ GXSCAN
5503#endif
5504
5505#ifdef IBM370
5506# pragma linkage(GKSCAN,FORTRAN)
5507# pragma linkage(GXSCAN,FORTRAN)
5508#endif
5509
5510extern void gkscan_();
5511extern void gxscan_();
5512
5513void gkscan_()
5514{
5515
5516static KmParInt _GEANT_SCAN_HSCAN_IDPHI_type = { (char*)0, (char*)0,
5517 (char*)0, (char*)0, 0 };
5518static 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 };
5521static KmParameter _GEANT_SCAN_HSCAN_VOLUME = { "VOLUME", 6, "Volume name",
5522 "XXXX", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
5523 (void*)0 };
5524static char *_GEANT_SCAN_HSCAN_CHOPT_range[] = { " ", "O", "P", "I", "X", "L"
5525 };
5526static char *_GEANT_SCAN_HSCAN_CHOPT_text[] = { (char*)0, (char*)0, (char*)0,
5527 (char*)0, (char*)0, (char*)0 };
5528static KmParOption _GEANT_SCAN_HSCAN_CHOPT_type = {
5529 _GEANT_SCAN_HSCAN_CHOPT_text, (int*)0, (int*)0 };
5530static 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 };
5534static KmParameter *_GEANT_SCAN_HSCAN_parameters[] = {
5535 &_GEANT_SCAN_HSCAN_IDPHI, &_GEANT_SCAN_HSCAN_VOLUME, &_GEANT_SCAN_HSCAN_CHOPT
5536 };
5537static 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." };
5549static 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 };
5553
5554static KmParInt _GEANT_SCAN_LSCAN_ID_type = { (char*)0, (char*)0, (char*)0,
5555 (char*)0, 0 };
5556static 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 };
5559static KmParameter _GEANT_SCAN_LSCAN_VOLUME = { "VOLUME", 6, "Volume name",
5560 "XXXX", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
5561 (void*)0 };
5562static char *_GEANT_SCAN_LSCAN_CHOPT_range[] = { " ", "O", "P", "I", "X", "L"
5563 };
5564static char *_GEANT_SCAN_LSCAN_CHOPT_text[] = { (char*)0, (char*)0, (char*)0,
5565 (char*)0, (char*)0, (char*)0 };
5566static KmParOption _GEANT_SCAN_LSCAN_CHOPT_type = {
5567 _GEANT_SCAN_LSCAN_CHOPT_text, (int*)0, (int*)0 };
5568static 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 };
5572static KmParameter *_GEANT_SCAN_LSCAN_parameters[] = { &_GEANT_SCAN_LSCAN_ID,
5573 &_GEANT_SCAN_LSCAN_VOLUME, &_GEANT_SCAN_LSCAN_CHOPT };
5574static 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." };
5582static 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 };
5587
5588static KmParInt _GEANT_SCAN_PCUTS_IPARAM_type = { "0", "1", "0", "1", 0 };
5589static 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 };
5592static KmParReal _GEANT_SCAN_PCUTS_PCUTGA_type = { (char*)0, (char*)0,
5593 (char*)0, (char*)0, 0 };
5594static 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 };
5597static KmParReal _GEANT_SCAN_PCUTS_PCUTEL_type = { (char*)0, (char*)0,
5598 (char*)0, (char*)0, 0 };
5599static 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 };
5602static KmParReal _GEANT_SCAN_PCUTS_PCUTHA_type = { (char*)0, (char*)0,
5603 (char*)0, (char*)0, 0 };
5604static 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 };
5608static KmParReal _GEANT_SCAN_PCUTS_PCUTNE_type = { (char*)0, (char*)0,
5609 (char*)0, (char*)0, 0 };
5610static 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 };
5614static KmParReal _GEANT_SCAN_PCUTS_PCUTMU_type = { (char*)0, (char*)0,
5615 (char*)0, (char*)0, 0 };
5616static 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 };
5619static 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 };
5623static 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." };
5630static 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 };
5635
5636static char *_GEANT_SCAN_STURN_CHOPT_range[] = { "ON", "OFF", "INIT" };
5637static char *_GEANT_SCAN_STURN_CHOPT_text[] = { (char*)0, (char*)0, (char*)0 };
5638static KmParOption _GEANT_SCAN_STURN_CHOPT_type = {
5639 _GEANT_SCAN_STURN_CHOPT_text, (int*)0, (int*)0 };
5640static 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 };
5644static KmParameter *_GEANT_SCAN_STURN_parameters[] = {
5645 &_GEANT_SCAN_STURN_CHOPT };
5646static 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." };
5653static 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 };
5658
5659static KmParReal _GEANT_SCAN_SFACTORS_FACTX0_type = { (char*)0, (char*)0,
5660 (char*)0, (char*)0, 0 };
5661static 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 };
5664static KmParReal _GEANT_SCAN_SFACTORS_FACTL_type = { (char*)0, (char*)0,
5665 (char*)0, (char*)0, 0 };
5666static 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 };
5669static KmParReal _GEANT_SCAN_SFACTORS_FACTR_type = { (char*)0, (char*)0,
5670 (char*)0, (char*)0, 0 };
5671static 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 };
5674static KmParameter *_GEANT_SCAN_SFACTORS_parameters[] = {
5675 &_GEANT_SCAN_SFACTORS_FACTX0, &_GEANT_SCAN_SFACTORS_FACTL,
5676 &_GEANT_SCAN_SFACTORS_FACTR };
5677static 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)" };
5681static 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 };
5686
5687static KmParReal _GEANT_SCAN_VERTEX_VX_type = { (char*)0, (char*)0,
5688 (char*)0, (char*)0, 0 };
5689static 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 };
5692static KmParReal _GEANT_SCAN_VERTEX_VY_type = { (char*)0, (char*)0,
5693 (char*)0, (char*)0, 0 };
5694static 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 };
5697static KmParReal _GEANT_SCAN_VERTEX_VZ_type = { (char*)0, (char*)0,
5698 (char*)0, (char*)0, 0 };
5699static 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 };
5702static KmParameter *_GEANT_SCAN_VERTEX_parameters[] = {
5703 &_GEANT_SCAN_VERTEX_VX, &_GEANT_SCAN_VERTEX_VY, &_GEANT_SCAN_VERTEX_VZ };
5704static char *_GEANT_SCAN_VERTEX_guidance[] = {
5705 "All Geantinos tracked will start from position VX,VY,VZ." };
5706static 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 };
5711
5712static 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 };
5715static KmParameter *_GEANT_SCAN_SLIST_parameters[] = { &_GEANT_SCAN_SLIST_LIST
5716 };
5717static 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." };
5722static 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 };
5727
5728static KmParInt _GEANT_SCAN_TETA_NTETA_type = { (char*)0, (char*)0,
5729 (char*)0, (char*)0, 0 };
5730static 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 };
5733static KmParReal _GEANT_SCAN_TETA_TETMIN_type = { (char*)0, (char*)0,
5734 (char*)0, (char*)0, 0 };
5735static 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 };
5738static KmParReal _GEANT_SCAN_TETA_TETMAX_type = { (char*)0, (char*)0,
5739 (char*)0, (char*)0, 0 };
5740static 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 };
5743static KmParInt _GEANT_SCAN_TETA_DIVTYP_type = { "1", "3", "1", "3", 0 };
5744static 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 };
5747static KmParameter *_GEANT_SCAN_TETA_parameters[] = { &_GEANT_SCAN_TETA_NTETA,
5748 &_GEANT_SCAN_TETA_TETMIN, &_GEANT_SCAN_TETA_TETMAX, &_GEANT_SCAN_TETA_DIVTYP
5749 };
5750static 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",
5756 "are displayed." };
5757static 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 };
5761
5762static KmParInt _GEANT_SCAN_PHI_NPHI_type = { (char*)0, (char*)0, (char*)0,
5763 (char*)0, 0 };
5764static 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 };
5767static KmParReal _GEANT_SCAN_PHI_PHIMIN_type = { "0.", "360.", "0.", "360.",
5768 0 };
5769static 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 };
5772static KmParReal _GEANT_SCAN_PHI_PHIMAX_type = { "0.", "360.", "0.", "360.",
5773 0 };
5774static 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 };
5777static KmParameter *_GEANT_SCAN_PHI_parameters[] = { &_GEANT_SCAN_PHI_NPHI,
5778 &_GEANT_SCAN_PHI_PHIMIN, &_GEANT_SCAN_PHI_PHIMAX };
5779static 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." };
5782static 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 };
5786
5787static 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." };
5797static 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 };
5799
5800static KmMenu _GEANT = { (KmMenu*)0, &_GEANT_SCAN, "/GEANT", "GEANT", 1,
5801 (KmCommand*)0, 0, (char**)0, 0, (char**)0, 0, (char**)0 };
5802
5803 klnkmenu( &_GEANT, 950303 );
5804}
5805
5806
5807#ifdef F77_LCASE
5808# define gkphys_ gkphys
5809# define gxphys_ gxphys
5810#endif
5811
5812#ifdef F77_UCASE
5813# define gkphys_ GKPHYS
5814# define gxphys_ GXPHYS
5815#endif
5816
5817#ifdef IBM370
5818# pragma linkage(GKPHYS,FORTRAN)
5819# pragma linkage(GXPHYS,FORTRAN)
5820#endif
5821
5822extern void gkphys_();
5823extern void gxphys_();
5824
5825void gkphys_()
5826{
5827
5828static 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." };
5832static 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 };
5836
5837static KmParInt _GEANT_PHYSICS_DRPRT_IPART_type = { (char*)0, (char*)0,
5838 (char*)0, (char*)0, 0 };
5839static 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 };
5842static KmParInt _GEANT_PHYSICS_DRPRT_IMATE_type = { (char*)0, (char*)0,
5843 (char*)0, (char*)0, 0 };
5844static 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 };
5847static KmParReal _GEANT_PHYSICS_DRPRT_STEP_type = { (char*)0, (char*)0,
5848 (char*)0, (char*)0, 0 };
5849static 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 };
5852static KmParInt _GEANT_PHYSICS_DRPRT_NPOINT_type = { "2", "100", "2",
5853 "100", 0 };
5854static 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 };
5858static KmParameter *_GEANT_PHYSICS_DRPRT_parameters[] = {
5859 &_GEANT_PHYSICS_DRPRT_IPART, &_GEANT_PHYSICS_DRPRT_IMATE,
5860 &_GEANT_PHYSICS_DRPRT_STEP, &_GEANT_PHYSICS_DRPRT_NPOINT };
5861static char *_GEANT_PHYSICS_DRPRT_guidance[] = {
5862 "This routine prints the relevant parameters linked with the energy loss",
5863 "fluctuation." };
5864static 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 };
5869
5870static KmParReal _GEANT_PHYSICS_CUTS_CUTGAM_type = { (char*)0, (char*)0,
5871 (char*)0, (char*)0, 0 };
5872static 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 };
5875static KmParReal _GEANT_PHYSICS_CUTS_CUTELE_type = { (char*)0, (char*)0,
5876 (char*)0, (char*)0, 0 };
5877static 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 };
5880static KmParReal _GEANT_PHYSICS_CUTS_CUTHAD_type = { (char*)0, (char*)0,
5881 (char*)0, (char*)0, 0 };
5882static 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 };
5885static KmParReal _GEANT_PHYSICS_CUTS_CUTNEU_type = { (char*)0, (char*)0,
5886 (char*)0, (char*)0, 0 };
5887static 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 };
5890static KmParReal _GEANT_PHYSICS_CUTS_CUTMUO_type = { (char*)0, (char*)0,
5891 (char*)0, (char*)0, 0 };
5892static 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 };
5895static KmParReal _GEANT_PHYSICS_CUTS_BCUTE_type = { (char*)0, (char*)0,
5896 (char*)0, (char*)0, 0 };
5897static 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 };
5900static KmParReal _GEANT_PHYSICS_CUTS_BCUTM_type = { (char*)0, (char*)0,
5901 (char*)0, (char*)0, 0 };
5902static 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 };
5905static KmParReal _GEANT_PHYSICS_CUTS_DCUTE_type = { (char*)0, (char*)0,
5906 (char*)0, (char*)0, 0 };
5907static 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 };
5910static KmParReal _GEANT_PHYSICS_CUTS_DCUTM_type = { (char*)0, (char*)0,
5911 (char*)0, (char*)0, 0 };
5912static 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 };
5915static KmParReal _GEANT_PHYSICS_CUTS_PPCUTM_type = { (char*)0, (char*)0,
5916 (char*)0, (char*)0, 0 };
5917static 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 };
5920static KmParReal _GEANT_PHYSICS_CUTS_TOFMAX_type = { (char*)0, (char*)0,
5921 (char*)0, (char*)0, 0 };
5922static 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 };
5925static KmParReal _GEANT_PHYSICS_CUTS_GCUTS_type = { (char*)0, (char*)0,
5926 (char*)0, (char*)0, 0 };
5927static 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 };
5930static 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 };
5937static 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'." };
5945static 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 };
5950
5951static char *_GEANT_PHYSICS_SYNC_ISYNC_range[] = { "0", "1" };
5952static KmParInt _GEANT_PHYSICS_SYNC_ISYNC_type = { (char*)0, (char*)0,
5953 (char*)0, (char*)0, 0 };
5954static 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 };
5958static KmParameter *_GEANT_PHYSICS_SYNC_parameters[] = {
5959 &_GEANT_PHYSICS_SYNC_ISYNC };
5960static char *_GEANT_PHYSICS_SYNC_guidance[] = {
5961 "To control synchrotron radiation:", " ISYNC=0 no synchrotron radiation;",
5962 " =1 synchrotron radiation." };
5963static 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 };
5968
5969static char *_GEANT_PHYSICS_STRA_ISTRA_range[] = { "0", "1", "2" };
5970static KmParInt _GEANT_PHYSICS_STRA_ISTRA_type = { (char*)0, (char*)0,
5971 (char*)0, (char*)0, 0 };
5972static 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 };
5976static KmParameter *_GEANT_PHYSICS_STRA_parameters[] = {
5977 &_GEANT_PHYSICS_STRA_ISTRA };
5978static 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)."
5981 };
5982static 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 };
5987
5988static char *_GEANT_PHYSICS_RAYL_IRAYL_range[] = { "0", "1" };
5989static KmParInt _GEANT_PHYSICS_RAYL_IRAYL_type = { (char*)0, (char*)0,
5990 (char*)0, (char*)0, 0 };
5991static 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 };
5995static KmParameter *_GEANT_PHYSICS_RAYL_parameters[] = {
5996 &_GEANT_PHYSICS_RAYL_IRAYL };
5997static char *_GEANT_PHYSICS_RAYL_guidance[] = {
5998 "To control Rayleigh scattering.", " IRAYL=0 no Rayleigh scattering.",
5999 " =1 Rayleigh." };
6000static 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 };
6005
6006static char *_GEANT_PHYSICS_PHOT_IPHOT_range[] = { "0", "1", "2" };
6007static KmParInt _GEANT_PHYSICS_PHOT_IPHOT_type = { (char*)0, (char*)0,
6008 (char*)0, (char*)0, 0 };
6009static 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 };
6013static KmParameter *_GEANT_PHYSICS_PHOT_parameters[] = {
6014 &_GEANT_PHYSICS_PHOT_IPHOT };
6015static 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." };
6019static 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 };
6024
6025static char *_GEANT_PHYSICS_PFIS_IPFIS_range[] = { "0", "1", "2" };
6026static KmParInt _GEANT_PHYSICS_PFIS_IPFIS_type = { (char*)0, (char*)0,
6027 (char*)0, (char*)0, 0 };
6028static 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 };
6032static KmParameter *_GEANT_PHYSICS_PFIS_parameters[] = {
6033 &_GEANT_PHYSICS_PFIS_IPFIS };
6034static 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." };
6038static 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 };
6043
6044static char *_GEANT_PHYSICS_PAIR_IPAIR_range[] = { "0", "1", "2" };
6045static KmParInt _GEANT_PHYSICS_PAIR_IPAIR_type = { (char*)0, (char*)0,
6046 (char*)0, (char*)0, 0 };
6047static 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 };
6051static KmParameter *_GEANT_PHYSICS_PAIR_parameters[] = {
6052 &_GEANT_PHYSICS_PAIR_IPAIR };
6053static 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." };
6057static 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 };
6062
6063static char *_GEANT_PHYSICS_MUNU_IMUNU_range[] = { "0", "1", "2" };
6064static KmParInt _GEANT_PHYSICS_MUNU_IMUNU_type = { (char*)0, (char*)0,
6065 (char*)0, (char*)0, 0 };
6066static 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 };
6070static KmParameter *_GEANT_PHYSICS_MUNU_parameters[] = {
6071 &_GEANT_PHYSICS_MUNU_IMUNU };
6072static 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." };
6077static 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 };
6082
6083static char *_GEANT_PHYSICS_MULS_IMULS_range[] = { "0", "1", "2", "3" };
6084static KmParInt _GEANT_PHYSICS_MULS_IMULS_type = { (char*)0, (char*)0,
6085 (char*)0, (char*)0, 0 };
6086static 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 };
6090static KmParameter *_GEANT_PHYSICS_MULS_parameters[] = {
6091 &_GEANT_PHYSICS_MULS_IMULS };
6092static 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." };
6096static 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 };
6101
6102static char *_GEANT_PHYSICS_LOSS_ILOSS_range[] = { "0", "1", "2", "3", "4" };
6103static KmParInt _GEANT_PHYSICS_LOSS_ILOSS_type = { (char*)0, (char*)0,
6104 (char*)0, (char*)0, 0 };
6105static 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 };
6109static KmParameter *_GEANT_PHYSICS_LOSS_parameters[] = {
6110 &_GEANT_PHYSICS_LOSS_ILOSS };
6111static 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'." };
6117static 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 };
6122
6123static KmParInt _GEANT_PHYSICS_LABS_LABS_type = { (char*)0, (char*)0,
6124 (char*)0, (char*)0, 0 };
6125static 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 };
6128static KmParameter *_GEANT_PHYSICS_LABS_parameters[] = {
6129 &_GEANT_PHYSICS_LABS_LABS };
6130static char *_GEANT_PHYSICS_LABS_guidance[] = {
6131 "To control absorbtion of Cerenkov photons:",
6132 " LABS=0 no absorbtion of photons;", " LABS=1 absorbtion of photons;" };
6133static 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 };
6138
6139static KmParInt _GEANT_PHYSICS_HADR_IHADR_type = { (char*)0, (char*)0,
6140 (char*)0, (char*)0, 0 };
6141static 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 };
6144static KmParameter *_GEANT_PHYSICS_HADR_parameters[] = {
6145 &_GEANT_PHYSICS_HADR_IHADR };
6146static 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." };
6150static 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 };
6155
6156static KmParReal _GEANT_PHYSICS_ERAN_EKMIN_type = { (char*)0, (char*)0,
6157 (char*)0, (char*)0, 0 };
6158static 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 };
6161static KmParReal _GEANT_PHYSICS_ERAN_EKMAX_type = { (char*)0, (char*)0,
6162 (char*)0, (char*)0, 0 };
6163static 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 };
6166static KmParInt _GEANT_PHYSICS_ERAN_NEKBIN_type = { "1", "200", "1", "200",
6167 0 };
6168static 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 };
6171static KmParameter *_GEANT_PHYSICS_ERAN_parameters[] = {
6172 &_GEANT_PHYSICS_ERAN_EKMIN, &_GEANT_PHYSICS_ERAN_EKMAX,
6173 &_GEANT_PHYSICS_ERAN_NEKBIN };
6174static char *_GEANT_PHYSICS_ERAN_guidance[] = {
6175 "To define the range and binning of internal tables." };
6176static 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 };
6181
6182static char *_GEANT_PHYSICS_DRAY_IDRAY_range[] = { "0", "1", "2" };
6183static KmParInt _GEANT_PHYSICS_DRAY_IDRAY_type = { (char*)0, (char*)0,
6184 (char*)0, (char*)0, 0 };
6185static 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 };
6189static KmParameter *_GEANT_PHYSICS_DRAY_parameters[] = {
6190 &_GEANT_PHYSICS_DRAY_IDRAY };
6191static 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." };
6195static 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 };
6200
6201static char *_GEANT_PHYSICS_DCAY_IDCAY_range[] = { "0", "1", "2" };
6202static KmParInt _GEANT_PHYSICS_DCAY_IDCAY_type = { (char*)0, (char*)0,
6203 (char*)0, (char*)0, 0 };
6204static 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 };
6208static KmParameter *_GEANT_PHYSICS_DCAY_parameters[] = {
6209 &_GEANT_PHYSICS_DCAY_IDCAY };
6210static char *_GEANT_PHYSICS_DCAY_guidance[] = { "To control Decay mechanism.",
6211 " IDCAY=0 no decays.", " =1 Decays. secondaries processed.",
6212 " =2 Decays. No secondaries stored." };
6213static 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 };
6218
6219static char *_GEANT_PHYSICS_COMP_ICOMP_range[] = { "0", "1", "2" };
6220static KmParInt _GEANT_PHYSICS_COMP_ICOMP_type = { (char*)0, (char*)0,
6221 (char*)0, (char*)0, 0 };
6222static 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 };
6226static KmParameter *_GEANT_PHYSICS_COMP_parameters[] = {
6227 &_GEANT_PHYSICS_COMP_ICOMP };
6228static 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." };
6232static 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 };
6237
6238static char *_GEANT_PHYSICS_CKOV_ICKOV_range[] = { "0", "1", "2" };
6239static KmParInt _GEANT_PHYSICS_CKOV_ICKOV_type = { (char*)0, (char*)0,
6240 (char*)0, (char*)0, 0 };
6241static 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 };
6245static KmParameter *_GEANT_PHYSICS_CKOV_parameters[] = {
6246 &_GEANT_PHYSICS_CKOV_ICKOV };
6247static 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."
6250 };
6251static 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 };
6256
6257static char *_GEANT_PHYSICS_BREM_IBREM_range[] = { "0", "1", "2" };
6258static KmParInt _GEANT_PHYSICS_BREM_IBREM_type = { (char*)0, (char*)0,
6259 (char*)0, (char*)0, 0 };
6260static 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 };
6264static KmParameter *_GEANT_PHYSICS_BREM_parameters[] = {
6265 &_GEANT_PHYSICS_BREM_IBREM };
6266static char *_GEANT_PHYSICS_BREM_guidance[] = { "To control bremstrahlung.",
6267 " IBREM=0 no bremstrahlung", " =1 bremstrahlung. Photon processed.",
6268 " =2 bremstrahlung. No photon stored." };
6269static 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 };
6274
6275static char *_GEANT_PHYSICS_AUTO_IAUTO_range[] = { "0", "1" };
6276static KmParInt _GEANT_PHYSICS_AUTO_IAUTO_type = { (char*)0, (char*)0,
6277 (char*)0, (char*)0, 0 };
6278static 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 };
6282static KmParameter *_GEANT_PHYSICS_AUTO_parameters[] = {
6283 &_GEANT_PHYSICS_AUTO_IAUTO };
6284static char *_GEANT_PHYSICS_AUTO_guidance[] = {
6285 "To control automatic calculation of tracking medium parameters:",
6286 " IAUTO=0 no automatic calculation;", " =1 automati calculation." };
6287static 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 };
6292
6293static char *_GEANT_PHYSICS_ANNI_IANNI_range[] = { "0", "1", "2" };
6294static KmParInt _GEANT_PHYSICS_ANNI_IANNI_type = { (char*)0, (char*)0,
6295 (char*)0, (char*)0, 0 };
6296static 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 };
6300static KmParameter *_GEANT_PHYSICS_ANNI_parameters[] = {
6301 &_GEANT_PHYSICS_ANNI_IANNI };
6302static 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." };
6306static 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 };
6311
6312static char *_GEANT_PHYSICS_guidance[] = {
6313 "Commands to set physics parameters." };
6314static KmMenu _GEANT_PHYSICS = { (KmMenu*)0, (KmMenu*)0, "/GEANT/PHYSICS",
6315 "PHYSICS", 2, &_GEANT_PHYSICS_ANNI, 1, _GEANT_PHYSICS_guidance, 0, (char**)0,
6316 0, (char**)0 };
6317
6318static KmMenu _GEANT = { (KmMenu*)0, &_GEANT_PHYSICS, "/GEANT", "GEANT", 1,
6319 (KmCommand*)0, 0, (char**)0, 0, (char**)0, 0, (char**)0 };
6320
6321 klnkmenu( &_GEANT, 950303 );
6322}
6323
6324
6325#ifdef F77_LCASE
6326# define gkfort_ gkfort
6327# define gxfort_ gxfort
6328#endif
6329
6330#ifdef F77_UCASE
6331# define gkfort_ GKFORT
6332# define gxfort_ GXFORT
6333#endif
6334
6335#ifdef IBM370
6336# pragma linkage(GKFORT,FORTRAN)
6337# pragma linkage(GXFORT,FORTRAN)
6338#endif
6339
6340extern void gkfort_();
6341extern void gxfort_();
6342
6343void gkfort_()
6344{
6345
6346static 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 };
6349static KmParameter *_FORTRAN_FORTRAN_parameters[] = { &_FORTRAN_FORTRAN_FNAME
6350 };
6351static 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." };
6370static 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 };
6374
6375static KmMenu _FORTRAN = { (KmMenu*)0, (KmMenu*)0, "/FORTRAN", "FORTRAN", 1,
6376 &_FORTRAN_FORTRAN, 0, (char**)0, 0, (char**)0, 0, (char**)0 };
6377
6378 klnkmenu( &_FORTRAN, 950303 );
6379}
6380
6381#endif
6382#if defined(CERNLIB_KUIP95A)
6383
6384/*CMZ : 21/03/95 18.51.56 by S.Giani*/
6385/*-- Author :*/
6386/*
6387 * This file has been generated by the KUIP compiler. Do NOT change it!
6388 *
6389 * KUIP header: 921023 Generation date: Tue Mar 21 18:51:54 1995
6390 *
6391 * Input file: g321x.doc
6392 */
6393
6394#if !defined(F77_LCASE) && !defined(F77_UCASE) && !defined(F77_USCORE)
6395# if defined(__EXTENDED__) && !defined(IBM370) && !defined(_IBMR2)
6396# define IBM370
6397# endif
6398# if defined(CRAY) || defined(IBM370) || defined(vms)
6399# define F77_UCASE
6400# else
6401# if ( defined(apollo) || defined(__apollo) ) && defined(APOFTN)
6402# define F77_LCASE
6403# else
6404# define F77_USCORE
6405# endif
6406# endif
6407#endif
6408
6409typedef int IntFunc();
6410typedef char* CharFunc();
6411typedef char** pCharFunc();
6412typedef void SUBROUTINE();
6413#ifdef IBM370
6414# pragma linkage(SUBROUTINE,FORTRAN)
6415#endif
6416
6417extern void klnkmenu();
6418extern void klnkbrcl();
6419extern void klnkkmcl();
6420extern void klnkicon();
6421extern void klnkbutt();
6422
6423typedef 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> */
6426 /* */
6427 typedef enum { /* */
6428 BRACT_OPEN = 0, /* */
6429 BRACT_ROOT = 1, /* */
6430 BRACT_CONT = 2, /* */
6431 BRACT_GRAF = 3 /* */
6432 } BrActTag; /* */
6433 /* */
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 */
6440 } BrActFlag; /* */
6441 /* */
6442
6443typedef 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 */
6454 } BrAction; /* */
6455 /* */
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 */
6466 } BrClass; /* */
6467 /* */
6468
6469typedef 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 */
6477 } KmIcon; /* */
6478 /* */
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 */
6493 } KmClass; /* */
6494 /* */
6495
6496typedef 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') */
6503 } KmButtFlag; /* */
6504 /* */
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 */
6517 } KmButton; /* */
6518 /* */
6519
6520extern struct { /*
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; /*
6531 */
6532
6533typedef 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 */
6541 } KmParFlag; /* */
6542 /* */
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 */
6549 } KmParType; /* */
6550 /* */
6551
6552typedef struct { /* file name */
6553 char *filter_default; /* filter wildcard */
6554 char *filter_current; /* current filter */
6555 } KmParFile; /* */
6556 /* */
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 */
6563 } KmParInt; /* */
6564 /* */
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; /* */
6570 /* */
6571
6572typedef KmParInt KmParReal; /* real and int have the same fields */
6573 /* */
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; /* */
6589 /* */
6590
6591typedef 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 */
6612 } KmCommand; /* */
6613 /* */
6614
6615typedef 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 */
6624 } KmMenu; /* */
6625 /* */
6626 extern void klnkbrcl(); /* */
6627 extern void klnkicon(); /* */
6628 extern void klnkkmcl(); /* */
6629 extern void klnkmenu(); /* */
6630 /* */
6631
6632#ifdef F77_LCASE
6633# define gkdraw_ gkdraw
6634# define gxdraw_ gxdraw
6635# define gxpick_ gxpick
6636#endif
6637
6638#ifdef F77_UCASE
6639# define gkdraw_ GKDRAW
6640# define gxdraw_ GXDRAW
6641# define gxpick_ GXPICK
6642#endif
6643
6644#ifdef IBM370
6645# pragma linkage(GKDRAW,FORTRAN)
6646# pragma linkage(GXDRAW,FORTRAN)
6647# pragma linkage(GXPICK,FORTRAN)
6648#endif
6649
6650extern void gkdraw_();
6651extern void gxdraw_();
6652extern void gxpick_();
6653
6654void gkdraw_()
6655{
6656
6657static KmParReal _GEANT_CVOL_VALCUT_XCUT_type = { (char*)0, (char*)0,
6658 (char*)0, (char*)0, 0 };
6659static 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 };
6662static KmParReal _GEANT_CVOL_VALCUT_YCUT_type = { (char*)0, (char*)0,
6663 (char*)0, (char*)0, 0 };
6664static 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 };
6667static KmParReal _GEANT_CVOL_VALCUT_ZCUT_type = { (char*)0, (char*)0,
6668 (char*)0, (char*)0, 0 };
6669static 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 };
6672static KmParameter *_GEANT_CVOL_VALCUT_parameters[] = {
6673 &_GEANT_CVOL_VALCUT_XCUT, &_GEANT_CVOL_VALCUT_YCUT, &_GEANT_CVOL_VALCUT_ZCUT
6674 };
6675static 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." };
6679static 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 };
6683
6684static 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 };
6687static KmParReal _GEANT_CVOL_SPHE_RMAX_type = { (char*)0, (char*)0,
6688 (char*)0, (char*)0, 0 };
6689static 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 };
6692static KmParReal _GEANT_CVOL_SPHE_XMED_type = { (char*)0, (char*)0,
6693 (char*)0, (char*)0, 0 };
6694static 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 };
6698static KmParReal _GEANT_CVOL_SPHE_YMED_type = { (char*)0, (char*)0,
6699 (char*)0, (char*)0, 0 };
6700static 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 };
6704static KmParReal _GEANT_CVOL_SPHE_ZMED_type = { (char*)0, (char*)0,
6705 (char*)0, (char*)0, 0 };
6706static 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 };
6710static 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 };
6713static 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 ." };
6723static 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 };
6727
6728static 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 };
6731static KmParReal _GEANT_CVOL_CONE_RMAX1_type = { (char*)0, (char*)0,
6732 (char*)0, (char*)0, 0 };
6733static 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 };
6736static KmParReal _GEANT_CVOL_CONE_RMAX2_type = { (char*)0, (char*)0,
6737 (char*)0, (char*)0, 0 };
6738static 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 };
6741static KmParReal _GEANT_CVOL_CONE_ZDEM_type = { (char*)0, (char*)0,
6742 (char*)0, (char*)0, 0 };
6743static 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 };
6746static KmParReal _GEANT_CVOL_CONE_XMED_type = { (char*)0, (char*)0,
6747 (char*)0, (char*)0, 0 };
6748static 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 };
6752static KmParReal _GEANT_CVOL_CONE_YMED_type = { (char*)0, (char*)0,
6753 (char*)0, (char*)0, 0 };
6754static 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 };
6758static KmParReal _GEANT_CVOL_CONE_ZMED_type = { (char*)0, (char*)0,
6759 (char*)0, (char*)0, 0 };
6760static 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 };
6764static 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 };
6767static 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 ." };
6777static 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 };
6781
6782static 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 };
6785static KmParReal _GEANT_CVOL_TUBE_RMAX_type = { (char*)0, (char*)0,
6786 (char*)0, (char*)0, 0 };
6787static 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 };
6790static KmParReal _GEANT_CVOL_TUBE_ZDEM_type = { (char*)0, (char*)0,
6791 (char*)0, (char*)0, 0 };
6792static 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 };
6795static KmParReal _GEANT_CVOL_TUBE_XMED_type = { (char*)0, (char*)0,
6796 (char*)0, (char*)0, 0 };
6797static 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 };
6801static KmParReal _GEANT_CVOL_TUBE_YMED_type = { (char*)0, (char*)0,
6802 (char*)0, (char*)0, 0 };
6803static 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 };
6807static KmParReal _GEANT_CVOL_TUBE_ZMED_type = { (char*)0, (char*)0,
6808 (char*)0, (char*)0, 0 };
6809static 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 };
6813static 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 };
6816static 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 ." };
6826static 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 };
6830
6831static 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 };
6834static KmParReal _GEANT_CVOL_BOX_XMIN_type = { (char*)0, (char*)0, (char*)0,
6835 (char*)0, 0 };
6836static 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 };
6840static KmParReal _GEANT_CVOL_BOX_XMAX_type = { (char*)0, (char*)0, (char*)0,
6841 (char*)0, 0 };
6842static 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 };
6846static KmParReal _GEANT_CVOL_BOX_YMIN_type = { (char*)0, (char*)0, (char*)0,
6847 (char*)0, 0 };
6848static 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 };
6852static KmParReal _GEANT_CVOL_BOX_YMAX_type = { (char*)0, (char*)0, (char*)0,
6853 (char*)0, 0 };
6854static 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 };
6858static KmParReal _GEANT_CVOL_BOX_ZMIN_type = { (char*)0, (char*)0, (char*)0,
6859 (char*)0, 0 };
6860static 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 };
6864static KmParReal _GEANT_CVOL_BOX_ZMAX_type = { (char*)0, (char*)0, (char*)0,
6865 (char*)0, 0 };
6866static 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 };
6870static 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 };
6873static 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",
6882 " box ." };
6883static 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 };
6887
6888static 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 };
6891static 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 };
6894static 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 };
6897static KmParInt _GEANT_DRAWING_DUVIEW_IVIEW_type = { (char*)0, (char*)0,
6898 (char*)0, (char*)0, 0 };
6899static 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 };
6902static KmParameter *_GEANT_DRAWING_DUVIEW_parameters[] = {
6903 &_GEANT_DRAWING_DUVIEW_NAME, &_GEANT_DRAWING_DUVIEW_TYPE,
6904 &_GEANT_DRAWING_DUVIEW_CPXTYP, &_GEANT_DRAWING_DUVIEW_IVIEW };
6905static char *_GEANT_DRAWING_DUVIEW_guidance[] = {
6906 " CALL GUVIEW(name,type,cpxtyp,iview)" };
6907static 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,
6911 (int*)0 };
6912
6913static 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 };
6916static 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 };
6919static KmParInt _GEANT_DRAWING_DCHIT_ITRA_type = { (char*)0, (char*)0,
6920 (char*)0, (char*)0, 0 };
6921static 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 };
6924static KmParInt _GEANT_DRAWING_DCHIT_ISYMB_type = { (char*)0, (char*)0,
6925 (char*)0, (char*)0, 0 };
6926static 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 };
6929static KmParReal _GEANT_DRAWING_DCHIT_SIZMAX_type = { (char*)0, (char*)0,
6930 (char*)0, (char*)0, 0 };
6931static 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 };
6934static KmParInt _GEANT_DRAWING_DCHIT_IHIT_type = { (char*)0, (char*)0,
6935 (char*)0, (char*)0, 0 };
6936static 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 };
6939static KmParReal _GEANT_DRAWING_DCHIT_HITMIN_type = { (char*)0, (char*)0,
6940 (char*)0, (char*)0, 0 };
6941static 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 };
6944static KmParReal _GEANT_DRAWING_DCHIT_HITMAX_type = { (char*)0, (char*)0,
6945 (char*)0, (char*)0, 0 };
6946static 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 };
6949static 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 };
6954static 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" };
6970static 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 };
6974
6975static 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 };
6978static 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 };
6981static KmParReal _GEANT_DRAWING_KHITS_EPSILO_type = { (char*)0, (char*)0,
6982 (char*)0, (char*)0, 0 };
6983static 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 };
6986static KmParameter *_GEANT_DRAWING_KHITS_parameters[] = {
6987 &_GEANT_DRAWING_KHITS_CHUSET, &_GEANT_DRAWING_KHITS_CHUDET,
6988 &_GEANT_DRAWING_KHITS_EPSILO };
6989static char *_GEANT_DRAWING_KHITS_guidance[] = {
6990 " CALL GKHITS(chuset,chudet,epsilo)",
6991 "The picking of hit points requires the appropriate JSET data structure",
6992 "have been filled",
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." };
7003static 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 };
7007
7008static 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 };
7011static 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 };
7014static KmParInt _GEANT_DRAWING_DHITS_ITRA_type = { (char*)0, (char*)0,
7015 (char*)0, (char*)0, 0 };
7016static 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 };
7019static KmParInt _GEANT_DRAWING_DHITS_ISYMB_type = { (char*)0, (char*)0,
7020 (char*)0, (char*)0, 0 };
7021static 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 };
7024static KmParReal _GEANT_DRAWING_DHITS_SSYMB_type = { (char*)0, (char*)0,
7025 (char*)0, (char*)0, 0 };
7026static 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 };
7029static 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 };
7033static 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." };
7047static 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 };
7051
7052static KmParInt _GEANT_DRAWING_DPART_ITRA_type = { (char*)0, (char*)0,
7053 (char*)0, (char*)0, 0 };
7054static 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 };
7057static KmParInt _GEANT_DRAWING_DPART_ISEL_type = { (char*)0, (char*)0,
7058 (char*)0, (char*)0, 0 };
7059static 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 };
7062static KmParReal _GEANT_DRAWING_DPART_SIZE_type = { (char*)0, (char*)0,
7063 (char*)0, (char*)0, 0 };
7064static 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 };
7067static KmParameter *_GEANT_DRAWING_DPART_parameters[] = {
7068 &_GEANT_DRAWING_DPART_ITRA, &_GEANT_DRAWING_DPART_ISEL,
7069 &_GEANT_DRAWING_DPART_SIZE };
7070static 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" };
7073static 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 };
7077
7078static KmParReal _GEANT_DRAWING_KXYZ_EPSILO_type = { (char*)0, (char*)0,
7079 (char*)0, (char*)0, 0 };
7080static 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 };
7083static KmParameter *_GEANT_DRAWING_KXYZ_parameters[] = {
7084 &_GEANT_DRAWING_KXYZ_EPSILO };
7085static 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." };
7092static 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 };
7096
7097static KmParInt _GEANT_DRAWING_DXYZ_ITRA_type = { (char*)0, (char*)0,
7098 (char*)0, (char*)0, 0 };
7099static 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 };
7102static KmParameter *_GEANT_DRAWING_DXYZ_parameters[] = {
7103 &_GEANT_DRAWING_DXYZ_ITRA };
7104static char *_GEANT_DRAWING_DXYZ_guidance[] = { " CALL GDXYZ(itra)",
7105 "Draw tracks previously stored via GSXYZ." };
7106static 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 };
7110
7111static KmParReal _GEANT_DRAWING_ZOOM_ZFU_type = { (char*)0, (char*)0,
7112 (char*)0, (char*)0, 0 };
7113static 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 };
7116static KmParReal _GEANT_DRAWING_ZOOM_ZFV_type = { (char*)0, (char*)0,
7117 (char*)0, (char*)0, 0 };
7118static 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 };
7121static KmParInt _GEANT_DRAWING_ZOOM_ISEL_type = { (char*)0, (char*)0,
7122 (char*)0, (char*)0, 0 };
7123static 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 };
7126static KmParReal _GEANT_DRAWING_ZOOM_UZ0_type = { "0.", "20.", "0.", "20.",
7127 0 };
7128static 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 };
7132static KmParReal _GEANT_DRAWING_ZOOM_VZ0_type = { "0.", "20.", "0.", "20.",
7133 0 };
7134static 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 };
7138static KmParReal _GEANT_DRAWING_ZOOM_U0_type = { "0.", "20.", "0.", "20.", 0
7139 };
7140static 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 };
7144static KmParReal _GEANT_DRAWING_ZOOM_V0_type = { "0.", "20.", "0.", "20.", 0
7145 };
7146static 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 };
7150static 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 };
7154static 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",
7182 " main window",
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'." };
7187static 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 };
7191
7192static KmParInt _GEANT_DRAWING_LENS_KNUM_type = { (char*)0, (char*)0,
7193 (char*)0, (char*)0, 0 };
7194static 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 };
7197static 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 };
7200static KmParameter *_GEANT_DRAWING_LENS_parameters[] = {
7201 &_GEANT_DRAWING_LENS_KNUM, &_GEANT_DRAWING_LENS_KSAM };
7202static 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" };
7228static 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 };
7232
7233static KmParameter _GEANT_DRAWING_PERSP_NAME = { "NAME", 4, "Volume name",
7234 " ", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
7235 (void*)0 };
7236static KmParReal _GEANT_DRAWING_PERSP_DISTT_type = { (char*)0, (char*)0,
7237 (char*)0, (char*)0, 0 };
7238static 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 };
7241static 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 };
7244static KmParameter *_GEANT_DRAWING_PERSP_parameters[] = {
7245 &_GEANT_DRAWING_PERSP_NAME, &_GEANT_DRAWING_PERSP_DISTT,
7246 &_GEANT_DRAWING_PERSP_SAMP };
7247static 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." };
7251static 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 };
7255
7256static KmParameter _GEANT_DRAWING_MOVE3D_NAME = { "NAME", 4, "Volume name",
7257 " ", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
7258 (void*)0 };
7259static KmParReal _GEANT_DRAWING_MOVE3D_THETA_type = { "0.", "180.", "0.",
7260 "180.", 0 };
7261static 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 };
7264static KmParReal _GEANT_DRAWING_MOVE3D_PHI_type = { "0.", "360.", "0.",
7265 "360.", 0 };
7266static 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 };
7269static KmParReal _GEANT_DRAWING_MOVE3D_PSI_type = { "0.", "180.", "0.",
7270 "180.", 0 };
7271static 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 };
7274static KmParReal _GEANT_DRAWING_MOVE3D_U0_type = { "0.", "20.", "0.", "20.",
7275 0 };
7276static 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 };
7279static KmParReal _GEANT_DRAWING_MOVE3D_V0_type = { "0.", "20.", "0.", "20.",
7280 0 };
7281static 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 };
7284static KmParReal _GEANT_DRAWING_MOVE3D_SU_type = { (char*)0, (char*)0,
7285 (char*)0, (char*)0, 0 };
7286static 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 };
7289static KmParReal _GEANT_DRAWING_MOVE3D_SV_type = { (char*)0, (char*)0,
7290 (char*)0, (char*)0, 0 };
7291static 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 };
7294static KmParReal _GEANT_DRAWING_MOVE3D_SZ_type = { "0.1", "10.", "0.1",
7295 "10.", 1 };
7296static 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 };
7299static char *_GEANT_DRAWING_MOVE3D_NOPT_range[] = { "T", "H" };
7300static char *_GEANT_DRAWING_MOVE3D_NOPT_text[] = { (char*)0, (char*)0 };
7301static KmParOption _GEANT_DRAWING_MOVE3D_NOPT_type = {
7302 _GEANT_DRAWING_MOVE3D_NOPT_text, (int*)0, (int*)0 };
7303static 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 };
7307static 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 };
7313static char *_GEANT_DRAWING_MOVE3D_guidance[] = {
7314 "Same functionality of the command MOVE interfaced with MOTIF." };
7315static 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,
7319 (int*)0 };
7320
7321static KmParameter _GEANT_DRAWING_MOVE_NAME = { "NAME", 4, "Volume name",
7322 " ", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
7323 (void*)0 };
7324static 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 };
7327static KmParameter *_GEANT_DRAWING_MOVE_parameters[] = {
7328 &_GEANT_DRAWING_MOVE_NAME, &_GEANT_DRAWING_MOVE_NOPT };
7329static 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",
7372 " move NAME" };
7373static 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 };
7377
7378static 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." };
7386static 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 };
7390
7391static 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\
7394 bar(GKS).",
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." };
7400static 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 };
7404
7405static KmParInt _GEANT_DRAWING_DHEAD_ISEL_type = { (char*)0, (char*)0,
7406 (char*)0, (char*)0, 0 };
7407static 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 };
7410static KmParameter _GEANT_DRAWING_DHEAD_NAME = { "NAME", 4, "Title", " ",
7411 (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
7412 (void*)0 };
7413static KmParReal _GEANT_DRAWING_DHEAD_CHRSIZ_type = { (char*)0, (char*)0,
7414 (char*)0, (char*)0, 0 };
7415static 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 };
7418static KmParameter *_GEANT_DRAWING_DHEAD_parameters[] = {
7419 &_GEANT_DRAWING_DHEAD_ISEL, &_GEANT_DRAWING_DHEAD_NAME,
7420 &_GEANT_DRAWING_DHEAD_CHRSIZ };
7421static 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." };
7433static 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 };
7437
7438static KmParReal _GEANT_DRAWING_DMAN_U_type = { (char*)0, (char*)0,
7439 (char*)0, (char*)0, 0 };
7440static 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 };
7444static KmParReal _GEANT_DRAWING_DMAN_V_type = { (char*)0, (char*)0,
7445 (char*)0, (char*)0, 0 };
7446static 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 };
7450static char *_GEANT_DRAWING_DMAN_TYPE_range[] = { "MAN", "WM1", "WM2", "WM3" };
7451static char *_GEANT_DRAWING_DMAN_TYPE_text[] = { (char*)0, (char*)0, (char*)0,
7452 (char*)0 };
7453static KmParOption _GEANT_DRAWING_DMAN_TYPE_type = {
7454 _GEANT_DRAWING_DMAN_TYPE_text, (int*)0, (int*)0 };
7455static 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 };
7459static KmParameter *_GEANT_DRAWING_DMAN_parameters[] = {
7460 &_GEANT_DRAWING_DMAN_U, &_GEANT_DRAWING_DMAN_V, &_GEANT_DRAWING_DMAN_TYPE };
7461static 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." };
7466static 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 };
7470
7471static KmParReal _GEANT_DRAWING_DAXIS_X0_type = { (char*)0, (char*)0,
7472 (char*)0, (char*)0, 0 };
7473static 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 };
7476static KmParReal _GEANT_DRAWING_DAXIS_Y0_type = { (char*)0, (char*)0,
7477 (char*)0, (char*)0, 0 };
7478static 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 };
7481static KmParReal _GEANT_DRAWING_DAXIS_Z0_type = { (char*)0, (char*)0,
7482 (char*)0, (char*)0, 0 };
7483static 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 };
7486static KmParReal _GEANT_DRAWING_DAXIS_DX_type = { (char*)0, (char*)0,
7487 (char*)0, (char*)0, 0 };
7488static 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 };
7491static KmParameter *_GEANT_DRAWING_DAXIS_parameters[] = {
7492 &_GEANT_DRAWING_DAXIS_X0, &_GEANT_DRAWING_DAXIS_Y0, &_GEANT_DRAWING_DAXIS_Z0,
7493 &_GEANT_DRAWING_DAXIS_DX };
7494static 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." };
7498static 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 };
7502
7503static KmParReal _GEANT_DRAWING_DSCALE_U_type = { (char*)0, (char*)0,
7504 (char*)0, (char*)0, 0 };
7505static 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 };
7509static KmParReal _GEANT_DRAWING_DSCALE_V_type = { (char*)0, (char*)0,
7510 (char*)0, (char*)0, 0 };
7511static 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 };
7515static KmParameter *_GEANT_DRAWING_DSCALE_parameters[] = {
7516 &_GEANT_DRAWING_DSCALE_U, &_GEANT_DRAWING_DSCALE_V };
7517static char *_GEANT_DRAWING_DSCALE_guidance[] = { " CALL GDSCAL(u,v)",
7518 "It draws a scale centered in U,V." };
7519static 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,
7523 (int*)0 };
7524
7525static 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 };
7528static 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 };
7531static KmParInt _GEANT_DRAWING_DVECTOR_NPOINT_type = { (char*)0, (char*)0,
7532 (char*)0, (char*)0, 0 };
7533static 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 };
7536static KmParameter *_GEANT_DRAWING_DVECTOR_parameters[] = {
7537 &_GEANT_DRAWING_DVECTOR_XVECT, &_GEANT_DRAWING_DVECTOR_YVECT,
7538 &_GEANT_DRAWING_DVECTOR_NPOINT };
7539static 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" };
7543static 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 };
7548
7549static KmParReal _GEANT_DRAWING_DTEXT_X0_type = { "0.", "20.", "0.", "20.",
7550 0 };
7551static 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 };
7554static KmParReal _GEANT_DRAWING_DTEXT_Y0_type = { "0.", "20.", "0.", "20.",
7555 0 };
7556static 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 };
7559static KmParameter _GEANT_DRAWING_DTEXT_TEXT = { "TEXT", 4, "Text string",
7560 "GEANT", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
7561 (void*)0 };
7562static KmParReal _GEANT_DRAWING_DTEXT_SIZE_type = { (char*)0, (char*)0,
7563 (char*)0, (char*)0, 0 };
7564static 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 };
7567static KmParReal _GEANT_DRAWING_DTEXT_ANGLE_type = { "0.", "360.", "0.",
7568 "360.", 0 };
7569static 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 };
7572static KmParInt _GEANT_DRAWING_DTEXT_LWID_type = { (char*)0, (char*)0,
7573 (char*)0, (char*)0, 0 };
7574static 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 };
7577static char *_GEANT_DRAWING_DTEXT_CENT_range[] = { "CENT", "LEFT", "RIGH" };
7578static char *_GEANT_DRAWING_DTEXT_CENT_text[] = { (char*)0, (char*)0, (char*)0
7579 };
7580static KmParOption _GEANT_DRAWING_DTEXT_CENT_type = {
7581 _GEANT_DRAWING_DTEXT_CENT_text, (int*)0, (int*)0 };
7582static 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 };
7586static 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 };
7591static 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." };
7597static 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 };
7601
7602static 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 };
7605static char *_GEANT_DRAWING_DFSPC_CSORT_range[] = { "Y", "N", "0", "1" };
7606static char *_GEANT_DRAWING_DFSPC_CSORT_text[] = { (char*)0, (char*)0,
7607 (char*)0, (char*)0 };
7608static KmParOption _GEANT_DRAWING_DFSPC_CSORT_type = {
7609 _GEANT_DRAWING_DFSPC_CSORT_text, (int*)0, (int*)0 };
7610static 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 };
7614static char *_GEANT_DRAWING_DFSPC_CINTER_range[] = { "I", "B", "0", "1" };
7615static char *_GEANT_DRAWING_DFSPC_CINTER_text[] = { (char*)0, (char*)0,
7616 (char*)0, (char*)0 };
7617static KmParOption _GEANT_DRAWING_DFSPC_CINTER_type = {
7618 _GEANT_DRAWING_DFSPC_CINTER_text, (int*)0, (int*)0 };
7619static 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 };
7623static KmParameter *_GEANT_DRAWING_DFSPC_parameters[] = {
7624 &_GEANT_DRAWING_DFSPC_NAME, &_GEANT_DRAWING_DFSPC_CSORT,
7625 &_GEANT_DRAWING_DFSPC_CINTER };
7626static 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." };
7634static 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 };
7638
7639static 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 };
7642static KmParReal _GEANT_DRAWING_D3DSPEC_TETA3_type = { "0.", "180.", "0.",
7643 "180.", 0 };
7644static 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 };
7647static KmParReal _GEANT_DRAWING_D3DSPEC_PHI3_type = { "0.", "360.", "0.",
7648 "360.", 0 };
7649static 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 };
7652static KmParReal _GEANT_DRAWING_D3DSPEC_PSI3_type = { "0.", "360.", "0.",
7653 "360.", 0 };
7654static 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 };
7657static KmParReal _GEANT_DRAWING_D3DSPEC_U03_type = { "-40.", "40.", "-40.",
7658 "40.", 0 };
7659static 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 };
7662static KmParReal _GEANT_DRAWING_D3DSPEC_V03_type = { "-40.", "40.", "-40.",
7663 "40.", 0 };
7664static 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 };
7667static KmParReal _GEANT_DRAWING_D3DSPEC_ZM3_type = { "0.00001", "10.",
7668 "0.00001", "10.", 5 };
7669static 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 };
7672static 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 };
7677static 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."
7683 };
7684static 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 };
7689
7690static 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 };
7693static KmParameter *_GEANT_DRAWING_DSPEC_parameters[] = {
7694 &_GEANT_DRAWING_DSPEC_NAME };
7695static 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."
7701 };
7702static 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 };
7706
7707static KmParameter _GEANT_DRAWING_DTREE_NAME = { "NAME", 4, "Volume name",
7708 " ", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
7709 (void*)0 };
7710static KmParInt _GEANT_DRAWING_DTREE_LEVMAX_type = { "-15", "15", "-15",
7711 "15", 0 };
7712static 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 };
7715static KmParInt _GEANT_DRAWING_DTREE_ISELT_type = { (char*)0, (char*)0,
7716 (char*)0, (char*)0, 0 };
7717static 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 };
7720static KmParameter *_GEANT_DRAWING_DTREE_parameters[] = {
7721 &_GEANT_DRAWING_DTREE_NAME, &_GEANT_DRAWING_DTREE_LEVMAX,
7722 &_GEANT_DRAWING_DTREE_ISELT };
7723static 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)",
7738 "is performed",
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" };
7747static 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 };
7751
7752static KmParReal _GEANT_DRAWING_BOMB_BOOM_type = { "-10.", "10.", "-10.",
7753 "10.", 0 };
7754static 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 };
7757static KmParameter *_GEANT_DRAWING_BOMB_parameters[] = {
7758 &_GEANT_DRAWING_BOMB_BOOM };
7759static 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" };
7775static 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 };
7779
7780static 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 };
7783static KmParReal _GEANT_DRAWING_SHIFT_XXXX_type = { (char*)0, (char*)0,
7784 (char*)0, (char*)0, 0 };
7785static 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 };
7788static KmParReal _GEANT_DRAWING_SHIFT_YYYY_type = { (char*)0, (char*)0,
7789 (char*)0, (char*)0, 0 };
7790static 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 };
7793static KmParReal _GEANT_DRAWING_SHIFT_ZZZZ_type = { (char*)0, (char*)0,
7794 (char*)0, (char*)0, 0 };
7795static 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 };
7798static KmParameter *_GEANT_DRAWING_SHIFT_parameters[] = {
7799 &_GEANT_DRAWING_SHIFT_CNVN, &_GEANT_DRAWING_SHIFT_XXXX,
7800 &_GEANT_DRAWING_SHIFT_YYYY, &_GEANT_DRAWING_SHIFT_ZZZZ };
7801static 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" };
7815static 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 };
7819
7820static 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 };
7823static KmParReal _GEANT_DRAWING_DXCUT_CUTTHE_type = { "0.", "360.", "0.",
7824 "360.", 0 };
7825static 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 };
7829static KmParReal _GEANT_DRAWING_DXCUT_CUTPHI_type = { "0.", "360.", "0.",
7830 "360.", 0 };
7831static 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 };
7835static KmParReal _GEANT_DRAWING_DXCUT_CUTVAL_type = { (char*)0, (char*)0,
7836 (char*)0, (char*)0, 0 };
7837static 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 };
7841static KmParReal _GEANT_DRAWING_DXCUT_THETA_type = { "0.", "360.", "0.",
7842 "360.", 0 };
7843static 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 };
7847static KmParReal _GEANT_DRAWING_DXCUT_PHI_type = { "0.", "360.", "0.",
7848 "360.", 0 };
7849static 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 };
7853static KmParReal _GEANT_DRAWING_DXCUT_U0_type = { (char*)0, (char*)0,
7854 (char*)0, (char*)0, 0 };
7855static 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 };
7859static KmParReal _GEANT_DRAWING_DXCUT_V0_type = { (char*)0, (char*)0,
7860 (char*)0, (char*)0, 0 };
7861static 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 };
7864static KmParReal _GEANT_DRAWING_DXCUT_SU_type = { (char*)0, (char*)0,
7865 (char*)0, (char*)0, 0 };
7866static 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 };
7869static KmParReal _GEANT_DRAWING_DXCUT_SV_type = { (char*)0, (char*)0,
7870 (char*)0, (char*)0, 0 };
7871static 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 };
7874static 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 };
7880static 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/",
7886 "are taken." };
7887static 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,
7891 (int*)0 };
7892
7893static 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 };
7896static char *_GEANT_DRAWING_DCUT_CAXIS_range[] = { "X", "Y", "Z" };
7897static char *_GEANT_DRAWING_DCUT_CAXIS_text[] = { (char*)0, (char*)0, (char*)0
7898 };
7899static KmParOption _GEANT_DRAWING_DCUT_CAXIS_type = {
7900 _GEANT_DRAWING_DCUT_CAXIS_text, (int*)0, (int*)0 };
7901static 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 };
7905static KmParReal _GEANT_DRAWING_DCUT_CUTVAL_type = { (char*)0, (char*)0,
7906 (char*)0, (char*)0, 0 };
7907static 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 };
7911static KmParReal _GEANT_DRAWING_DCUT_U0_type = { (char*)0, (char*)0,
7912 (char*)0, (char*)0, 0 };
7913static 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 };
7917static KmParReal _GEANT_DRAWING_DCUT_V0_type = { (char*)0, (char*)0,
7918 (char*)0, (char*)0, 0 };
7919static 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 };
7922static KmParReal _GEANT_DRAWING_DCUT_SU_type = { (char*)0, (char*)0,
7923 (char*)0, (char*)0, 0 };
7924static 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 };
7927static KmParReal _GEANT_DRAWING_DCUT_SV_type = { (char*)0, (char*)0,
7928 (char*)0, (char*)0, 0 };
7929static 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 };
7932static 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 };
7936static 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/",
7942 "are taken.",
7943 "When HIDE Mode is ON, it is possible to get the same effect with",
7944 "the CVOL/BOX command." };
7945static 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 };
7949
7950static KmParInt _GEANT_DRAWING_DVOLUME_N_type = { (char*)0, (char*)0,
7951 (char*)0, (char*)0, 0 };
7952static 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 };
7956static 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 };
7959static char *_GEANT_DRAWING_DVOLUME_CHNRS_range[] = { "MARS", "DRS" };
7960static char *_GEANT_DRAWING_DVOLUME_CHNRS_text[] = { (char*)0, (char*)0 };
7961static KmParOption _GEANT_DRAWING_DVOLUME_CHNRS_type = {
7962 _GEANT_DRAWING_DVOLUME_CHNRS_text, (int*)0, (int*)0 };
7963static 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 };
7967static KmParReal _GEANT_DRAWING_DVOLUME_THETA_type = { "0.", "360.", "0.",
7968 "360.", 0 };
7969static 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 };
7973static KmParReal _GEANT_DRAWING_DVOLUME_PHI_type = { "0.", "360.", "0.",
7974 "360.", 0 };
7975static 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 };
7979static KmParReal _GEANT_DRAWING_DVOLUME_PSI_type = { "0.", "180.", "0.",
7980 "180.", 0 };
7981static 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 };
7984static KmParReal _GEANT_DRAWING_DVOLUME_U0_type = { (char*)0, (char*)0,
7985 (char*)0, (char*)0, 0 };
7986static 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 };
7990static KmParReal _GEANT_DRAWING_DVOLUME_V0_type = { (char*)0, (char*)0,
7991 (char*)0, (char*)0, 0 };
7992static 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 };
7995static KmParReal _GEANT_DRAWING_DVOLUME_SU_type = { (char*)0, (char*)0,
7996 (char*)0, (char*)0, 0 };
7997static 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 };
8000static KmParReal _GEANT_DRAWING_DVOLUME_SV_type = { (char*)0, (char*)0,
8001 (char*)0, (char*)0, 0 };
8002static 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 };
8005static 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 };
8011static 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/",
8022 "are taken." };
8023static 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 };
8028
8029static KmParReal _GEANT_DRAWING_RANG5D_X1MIN_type = { (char*)0, (char*)0,
8030 (char*)0, (char*)0, 0 };
8031static 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 };
8034static KmParReal _GEANT_DRAWING_RANG5D_X1MAX_type = { (char*)0, (char*)0,
8035 (char*)0, (char*)0, 0 };
8036static 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 };
8039static KmParReal _GEANT_DRAWING_RANG5D_Y1MIN_type = { (char*)0, (char*)0,
8040 (char*)0, (char*)0, 0 };
8041static 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 };
8044static KmParReal _GEANT_DRAWING_RANG5D_Y1MAX_type = { (char*)0, (char*)0,
8045 (char*)0, (char*)0, 0 };
8046static 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 };
8049static KmParReal _GEANT_DRAWING_RANG5D_Z1MIN_type = { (char*)0, (char*)0,
8050 (char*)0, (char*)0, 0 };
8051static 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 };
8054static KmParReal _GEANT_DRAWING_RANG5D_Z1MAX_type = { (char*)0, (char*)0,
8055 (char*)0, (char*)0, 0 };
8056static 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 };
8059static 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 };
8063static char *_GEANT_DRAWING_RANG5D_guidance[] = {
8064 "It sets the range for the x,y,z variables." };
8065static 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,
8069 (int*)0 };
8070
8071static KmParReal _GEANT_DRAWING_VAR5D_TSEQTO_type = { (char*)0, (char*)0,
8072 (char*)0, (char*)0, 0 };
8073static 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 };
8076static KmParInt _GEANT_DRAWING_VAR5D_NPROC_type = { (char*)0, (char*)0,
8077 (char*)0, (char*)0, 0 };
8078static 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 };
8081static KmParInt _GEANT_DRAWING_VAR5D_NMPTOT_type = { (char*)0, (char*)0,
8082 (char*)0, (char*)0, 0 };
8083static 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 };
8086static KmParReal _GEANT_DRAWING_VAR5D_TOTMBY_type = { (char*)0, (char*)0,
8087 (char*)0, (char*)0, 0 };
8088static 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 };
8091static KmParReal _GEANT_DRAWING_VAR5D_TSEQ_type = { (char*)0, (char*)0,
8092 (char*)0, (char*)0, 0 };
8093static 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 };
8096static KmParReal _GEANT_DRAWING_VAR5D_TLAT_type = { (char*)0, (char*)0,
8097 (char*)0, (char*)0, 0 };
8098static 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 };
8101static KmParReal _GEANT_DRAWING_VAR5D_TNET_type = { (char*)0, (char*)0,
8102 (char*)0, (char*)0, 0 };
8103static 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 };
8106static 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 };
8111static 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)." };
8115static 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 };
8119
8120static KmParReal _GEANT_DRAWING_SPOT_XLPOS_type = { (char*)0, (char*)0,
8121 (char*)0, (char*)0, 0 };
8122static 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 };
8125static KmParReal _GEANT_DRAWING_SPOT_YLPOS_type = { (char*)0, (char*)0,
8126 (char*)0, (char*)0, 0 };
8127static 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 };
8130static KmParReal _GEANT_DRAWING_SPOT_ZLPOS_type = { (char*)0, (char*)0,
8131 (char*)0, (char*)0, 0 };
8132static 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 };
8135static KmParInt _GEANT_DRAWING_SPOT_INTEN_type = { (char*)0, (char*)0,
8136 (char*)0, (char*)0, 0 };
8137static 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 };
8140static KmParameter *_GEANT_DRAWING_SPOT_parameters[] = {
8141 &_GEANT_DRAWING_SPOT_XLPOS, &_GEANT_DRAWING_SPOT_YLPOS,
8142 &_GEANT_DRAWING_SPOT_ZLPOS, &_GEANT_DRAWING_SPOT_INTEN };
8143static 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."
8146 };
8147static 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 };
8151
8152static 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 };
8155static KmParReal _GEANT_DRAWING_DRAW_THETA_type = { "0.", "180.", "0.",
8156 "180.", 0 };
8157static 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 };
8161static KmParReal _GEANT_DRAWING_DRAW_PHI_type = { "0.", "360.", "0.",
8162 "360.", 0 };
8163static 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 };
8167static KmParReal _GEANT_DRAWING_DRAW_PSI_type = { "0.", "360.", "0.",
8168 "360.", 0 };
8169static 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 };
8172static KmParReal _GEANT_DRAWING_DRAW_U0_type = { (char*)0, (char*)0,
8173 (char*)0, (char*)0, 0 };
8174static 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 };
8178static KmParReal _GEANT_DRAWING_DRAW_V0_type = { (char*)0, (char*)0,
8179 (char*)0, (char*)0, 0 };
8180static 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 };
8183static KmParReal _GEANT_DRAWING_DRAW_SU_type = { (char*)0, (char*)0,
8184 (char*)0, (char*)0, 0 };
8185static 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 };
8188static KmParReal _GEANT_DRAWING_DRAW_SV_type = { (char*)0, (char*)0,
8189 (char*)0, (char*)0, 0 };
8190static 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 };
8193static 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 };
8197static 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" };
8234static 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 };
8238
8239static 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\
8254 event.",
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\
8258 each",
8259 "volume and the volumes with a density lower/equal than the air are\
8260 considered",
8261 "transparent; if the option (USER) is set (ON) (again via the command\
8262 (DOPT)),",
8263 "the user can set color and visibility for the desired volumes via the\
8264 command",
8265 "(SATT), as usual, relatively to the attributes (COLO) and (SEEN).",
8266 "The resolution can be set via the command (SATT * FILL VALUE), where\
8267 (VALUE)",
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\
8270 the",
8271 "first case, we assume that the first mother volume of the tree is a box\
8272 with",
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\
8275 the",
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);\
8278 grand-angle",
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\
8283 command",
8284 "(DOPT MAPP VALUE), the mapping being more precise for increasing (VALUE);\
8285 for",
8286 "(VALUE = 0) no mapping is performed (therefore max precision and lowest\
8287 speed).",
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\
8290 command",
8291 "SATT for any desired volume and can assume values from 0 to 7; it\
8292 determines",
8293 "the different light processing to be performed for different materials:",
8294 "0 = dark-matt, 1 = bright-matt, 2 = plastic, 3 = ceramic, 4 =\
8295 rough-metals,",
8296 "5 = shiny-metals, 6 = glass, 7 = mirror. The detector is assumed to be in\
8297 the",
8298 "dark, the ambient light luminosity is 0.2 for each basic hue (the\
8299 saturation",
8300 "is 0.9) and the observer is assumed to have a light source (therefore he\
8301 will",
8302 "produce parallel light in the case of parallel view and point-like-source",
8303 "light in the case of perspective view)." };
8304static KmMenu _GEANT_DRAWING = { (KmMenu*)0, (KmMenu*)0, "/GEANT/DRAWING",
8305 "DRAWING", 2, &_GEANT_DRAWING_DRAW, 45, _GEANT_DRAWING_guidance };
8306
8307static 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." };
8321static KmMenu _GEANT_CVOL = { &_GEANT_DRAWING, (KmMenu*)0, "/GEANT/CVOL",
8322 "CVOL", 2, &_GEANT_CVOL_BOX, 14, _GEANT_CVOL_guidance };
8323
8324static char *_GEANT_guidance[] = { "GEANT specific commands." };
8325static KmMenu _GEANT = { (KmMenu*)0, &_GEANT_CVOL, "/GEANT", "GEANT", 1,
8326 (KmCommand*)0, 1, _GEANT_guidance };
8327
8328 klnkmenu( &_GEANT, 921023 );
8329}
8330
8331
8332#ifdef F77_LCASE
8333# define gkgcon_ gkgcon
8334# define gxgcon_ gxgcon
8335#endif
8336
8337#ifdef F77_UCASE
8338# define gkgcon_ GKGCON
8339# define gxgcon_ GXGCON
8340#endif
8341
8342#ifdef IBM370
8343# pragma linkage(GKGCON,FORTRAN)
8344# pragma linkage(GXGCON,FORTRAN)
8345#endif
8346
8347extern void gkgcon_();
8348extern void gxgcon_();
8349
8350void gkgcon_()
8351{
8352
8353static KmParInt _GEANT_GRAPHICS_CONTROL_MAP_COLOR_ICADD_type = { (char*)0,
8354 (char*)0, (char*)0, (char*)0, 0 };
8355static 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 };
8358static KmParInt _GEANT_GRAPHICS_CONTROL_MAP_COLOR_ICVAL_type = { (char*)0,
8359 (char*)0, (char*)0, (char*)0, 0 };
8360static 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 };
8363static KmParameter *_GEANT_GRAPHICS_CONTROL_MAP_COLOR_parameters[] = {
8364 &_GEANT_GRAPHICS_CONTROL_MAP_COLOR_ICADD,
8365 &_GEANT_GRAPHICS_CONTROL_MAP_COLOR_ICVAL };
8366static 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." };
8370static 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 };
8375
8376static KmParReal _GEANT_GRAPHICS_CONTROL_SPERS_DPERS_type = { (char*)0,
8377 (char*)0, (char*)0, (char*)0, 0 };
8378static 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 };
8382static KmParameter *_GEANT_GRAPHICS_CONTROL_SPERS_parameters[] = {
8383 &_GEANT_GRAPHICS_CONTROL_SPERS_DPERS };
8384static char *_GEANT_GRAPHICS_CONTROL_SPERS_guidance[] = {
8385 "Set the variable dpers in /GCDRAW/, representing",
8386 "the distance from the origin when using option PERSpective." };
8387static 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 };
8392
8393static KmParReal _GEANT_GRAPHICS_CONTROL_SIZE_XSIZE_type = { (char*)0,
8394 (char*)0, (char*)0, (char*)0, 0 };
8395static 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 };
8398static KmParReal _GEANT_GRAPHICS_CONTROL_SIZE_YSIZE_type = { (char*)0,
8399 (char*)0, (char*)0, (char*)0, 0 };
8400static 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 };
8403static KmParameter *_GEANT_GRAPHICS_CONTROL_SIZE_parameters[] = {
8404 &_GEANT_GRAPHICS_CONTROL_SIZE_XSIZE, &_GEANT_GRAPHICS_CONTROL_SIZE_YSIZE };
8405static 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]." };
8411static 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 };
8416
8417static 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 };
8420static 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 };
8423static KmParameter *_GEANT_GRAPHICS_CONTROL_DOPT_parameters[] = {
8424 &_GEANT_GRAPHICS_CONTROL_DOPT_IOPT, &_GEANT_GRAPHICS_CONTROL_DOPT_IVAL };
8425static 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." };
8445static 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 };
8450
8451static char *_GEANT_GRAPHICS_CONTROL_NEXT_guidance[] = {
8452 "Clear screen (start a new picture on graphics file, if opened)." };
8453static 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 };
8458
8459static KmParInt _GEANT_GRAPHICS_CONTROL_LWID_LWIDTH_type = { (char*)0,
8460 (char*)0, (char*)0, (char*)0, 0 };
8461static 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 };
8464static KmParameter *_GEANT_GRAPHICS_CONTROL_LWID_parameters[] = {
8465 &_GEANT_GRAPHICS_CONTROL_LWID_LWIDTH };
8466static char *_GEANT_GRAPHICS_CONTROL_LWID_guidance[] = {
8467 " CALL GDLW(-abs(lwidth))" };
8468static 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 };
8473
8474static KmParInt _GEANT_GRAPHICS_CONTROL_COLOR_ICOL_type = { (char*)0,
8475 (char*)0, (char*)0, (char*)0, 0 };
8476static 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 };
8479static KmParameter *_GEANT_GRAPHICS_CONTROL_COLOR_parameters[] = {
8480 &_GEANT_GRAPHICS_CONTROL_COLOR_ICOL };
8481static char *_GEANT_GRAPHICS_CONTROL_COLOR_guidance[] = {
8482 " CALL GDCOL(-abs(icol))" };
8483static 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 };
8488
8489static KmParReal _GEANT_GRAPHICS_CONTROL_SCALE_GSCU_type = { (char*)0,
8490 (char*)0, (char*)0, (char*)0, 0 };
8491static 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 };
8495static KmParReal _GEANT_GRAPHICS_CONTROL_SCALE_GSCV_type = { (char*)0,
8496 (char*)0, (char*)0, (char*)0, 0 };
8497static 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 };
8501static KmParameter *_GEANT_GRAPHICS_CONTROL_SCALE_parameters[] = {
8502 &_GEANT_GRAPHICS_CONTROL_SCALE_GSCU, &_GEANT_GRAPHICS_CONTROL_SCALE_GSCV };
8503static char *_GEANT_GRAPHICS_CONTROL_SCALE_guidance[] = {
8504 "Change the scale factors GSCU and GSCV in /GCDRAW/." };
8505static 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 };
8510
8511static 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 };
8514static 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 };
8517static KmParInt _GEANT_GRAPHICS_CONTROL_SATT_IVAL_type = { (char*)0,
8518 (char*)0, (char*)0, (char*)0, 0 };
8519static 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 };
8523static KmParameter *_GEANT_GRAPHICS_CONTROL_SATT_parameters[] = {
8524 &_GEANT_GRAPHICS_CONTROL_SATT_NAME, &_GEANT_GRAPHICS_CONTROL_SATT_IOPT,
8525 &_GEANT_GRAPHICS_CONTROL_SATT_IVAL };
8526static 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)",
8546 " n=1=black",
8547 " n=2=red; n=17+m, m=0,25, increasing luminosity according to\
8548 'm';",
8549 " n=3=green; n=67+m, m=0,25, increasing luminosity according to\
8550 'm';",
8551 " n=4=blue; n=117+m, m=0,25, increasing luminosity according to\
8552 'm';",
8553 " n=5=yellow; n=42+m, m=0,25, increasing luminosity according to\
8554 'm';",
8555 " n=6=violet; n=142+m, m=0,25, increasing luminosity according to\
8556 'm';",
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",
8565 " performed.",
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)" };
8598static 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 };
8603
8604static KmParReal _GEANT_GRAPHICS_CONTROL_SSETVA_RVAL_type = { "-10.", "10.",
8605 "-10.", "10.", 0 };
8606static 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 };
8609static KmParameter *_GEANT_GRAPHICS_CONTROL_SSETVA_parameters[] = {
8610 &_GEANT_GRAPHICS_CONTROL_SSETVA_RVAL };
8611static char *_GEANT_GRAPHICS_CONTROL_SSETVA_guidance[] = {
8612 "Set current attribute value." };
8613static 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 };
8618
8619static 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 };
8622static KmParameter *_GEANT_GRAPHICS_CONTROL_SSETAT_parameters[] = {
8623 &_GEANT_GRAPHICS_CONTROL_SSETAT_IOPT };
8624static char *_GEANT_GRAPHICS_CONTROL_SSETAT_guidance[] = {
8625 "Set current attribute." };
8626static 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 };
8631
8632static char *_GEANT_GRAPHICS_CONTROL_RESETWK_guidance[] = { "CALL GRESWK",
8633 "It deactivate the previosly activated workstation and reactivate the",
8634 "default one." };
8635static 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 };
8640
8641static 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)." };
8644static 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 };
8649
8650static 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." };
8653static 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 };
8658
8659static KmParInt _GEANT_GRAPHICS_CONTROL_DELETE_IVIEW_type = { (char*)0,
8660 (char*)0, (char*)0, (char*)0, 0 };
8661static 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 };
8664static KmParameter *_GEANT_GRAPHICS_CONTROL_DELETE_parameters[] = {
8665 &_GEANT_GRAPHICS_CONTROL_DELETE_IVIEW };
8666static char *_GEANT_GRAPHICS_CONTROL_DELETE_guidance[] = {
8667 " CALL GDELET(iview)", "It deletes a view bank from memory." };
8668static 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 };
8673
8674static KmParInt _GEANT_GRAPHICS_CONTROL_DSHOW_IVIEW_type = { (char*)0,
8675 (char*)0, (char*)0, (char*)0, 0 };
8676static 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 };
8679static KmParameter *_GEANT_GRAPHICS_CONTROL_DSHOW_parameters[] = {
8680 &_GEANT_GRAPHICS_CONTROL_DSHOW_IVIEW };
8681static 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." };
8685static 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 };
8690
8691static KmParInt _GEANT_GRAPHICS_CONTROL_DOPEN_IVIEW_type = { (char*)0,
8692 (char*)0, (char*)0, (char*)0, 0 };
8693static 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 };
8696static KmParameter *_GEANT_GRAPHICS_CONTROL_DOPEN_parameters[] = {
8697 &_GEANT_GRAPHICS_CONTROL_DOPEN_IVIEW };
8698static 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'."
8708 };
8709static 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 };
8714
8715static char *_GEANT_GRAPHICS_CONTROL_guidance[] = {
8716 "Graphics control commands." };
8717static 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 };
8720
8721static KmMenu _GEANT = { (KmMenu*)0, &_GEANT_GRAPHICS_CONTROL, "/GEANT",
8722 "GEANT", 1, (KmCommand*)0, 0, (char**)0 };
8723
8724 klnkmenu( &_GEANT, 921023 );
8725}
8726
8727
8728#ifdef F77_LCASE
8729# define gklist_ gklist
8730# define gxlist_ gxlist
8731#endif
8732
8733#ifdef F77_UCASE
8734# define gklist_ GKLIST
8735# define gxlist_ GXLIST
8736#endif
8737
8738#ifdef IBM370
8739# pragma linkage(GKLIST,FORTRAN)
8740# pragma linkage(GXLIST,FORTRAN)
8741#endif
8742
8743extern void gklist_();
8744extern void gxlist_();
8745
8746void gklist_()
8747{
8748
8749static 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 };
8752static 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 };
8755static 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 };
8758static 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 };
8761static 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 };
8764static 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 };
8767static 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 };
8770static 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 };
8773static 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 };
8776static 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 };
8779static 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 };
8782static 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 };
8785static 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 };
8788static 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 };
8791static 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 };
8794static 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 };
8797static 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 };
8800static 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 };
8803static 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 };
8806static 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 };
8809static 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 };
8820static 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." };
8824static 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 };
8828
8829static 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 };
8832static 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 };
8835static 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 };
8838static 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 };
8841static 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 };
8844static 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 };
8847static 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 };
8850static 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 };
8853static 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 };
8856static 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 };
8859static 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 };
8862static 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 };
8865static 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 };
8868static 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 };
8871static 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 };
8874static 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 };
8877static 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 };
8880static 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 };
8883static 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 };
8886static 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 };
8889static 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 };
8900static 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." };
8904static 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 };
8908
8909static 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 };
8912static 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 };
8915static 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 };
8918static 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 };
8921static 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 };
8924static 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 };
8927static 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 };
8930static 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 };
8933static 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 };
8936static 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 };
8939static 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 };
8942static 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 };
8945static 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 };
8948static 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 };
8951static 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 };
8954static 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 };
8957static 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 };
8960static 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 };
8963static 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 };
8966static 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 };
8969static 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 };
8980static 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." };
8984static 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 };
8988
8989static 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 };
8992static 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 };
8995static 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 };
8998static 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 };
9001static 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 };
9004static 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 };
9007static 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 };
9010static 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 };
9013static 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 };
9016static 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 };
9019static 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 };
9022static 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 };
9025static 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 };
9028static 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 };
9031static 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 };
9034static 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 };
9037static 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 };
9040static 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 };
9043static 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 };
9046static 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 };
9049static 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 };
9060static 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." };
9064static 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 };
9068
9069static 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 };
9072static 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 };
9075static 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 };
9078static 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 };
9081static 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 };
9084static 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 };
9087static 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 };
9090static 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 };
9093static 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 };
9096static 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 };
9099static 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 };
9102static 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 };
9105static 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 };
9108static 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 };
9111static 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 };
9114static 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 };
9117static 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 };
9120static 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 };
9123static 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 };
9126static 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 };
9129static 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 };
9140static 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." };
9144static 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 };
9148
9149static 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 };
9152static 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 };
9155static 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 };
9158static 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 };
9161static 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 };
9164static 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 };
9167static 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 };
9170static 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 };
9173static 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 };
9176static 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 };
9179static 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 };
9182static 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 };
9185static 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 };
9188static 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 };
9191static 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 };
9194static 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 };
9197static 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 };
9200static 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 };
9203static 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 };
9206static 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 };
9209static 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 };
9220static 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." };
9224static 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 };
9228
9229static 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 };
9232static 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 };
9235static 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 };
9238static 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 };
9241static 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 };
9244static 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 };
9247static 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 };
9250static 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 };
9253static 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 };
9256static 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 };
9259static 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 };
9262static 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 };
9265static 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 };
9268static 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 };
9271static 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 };
9274static 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 };
9277static 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 };
9280static 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 };
9283static 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 };
9286static 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 };
9289static 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 };
9300static 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." };
9304static 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 };
9308
9309static 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 };
9312static 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 };
9315static 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 };
9318static 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 };
9321static 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 };
9324static 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 };
9327static 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 };
9330static 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 };
9333static 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 };
9336static 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 };
9339static 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 };
9342static 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 };
9345static 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 };
9348static 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 };
9351static 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 };
9354static 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 };
9357static 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 };
9360static 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 };
9363static 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 };
9366static 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 };
9369static 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 };
9380static 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." };
9384static 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 };
9388
9389static 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 };
9392static 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 };
9395static 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 };
9398static 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 };
9401static 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 };
9404static 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 };
9407static 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 };
9410static 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 };
9413static 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 };
9416static 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 };
9419static 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 };
9422static 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 };
9425static 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 };
9428static 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 };
9431static 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 };
9434static 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 };
9437static 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 };
9440static 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 };
9443static 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 };
9446static 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 };
9449static 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 };
9460static 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." };
9464static 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 };
9468
9469static 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 };
9472static 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 };
9475static 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 };
9478static 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 };
9481static 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 };
9484static 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 };
9487static 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 };
9490static 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 };
9493static 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 };
9496static 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 };
9499static 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 };
9502static 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 };
9505static 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 };
9508static 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 };
9511static 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 };
9514static 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 };
9517static 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 };
9520static 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 };
9523static 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 };
9526static 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 };
9529static 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 };
9539static 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." };
9543static 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 };
9547
9548static 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 };
9551static 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 };
9554static 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 };
9557static 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 };
9560static 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 };
9563static 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 };
9566static 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 };
9569static 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 };
9572static 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 };
9575static 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 };
9578static 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 };
9581static 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 };
9584static 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 };
9587static 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 };
9590static 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 };
9593static 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 };
9596static 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 };
9599static 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 };
9602static 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 };
9605static 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 };
9608static 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 };
9619static 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." };
9623static 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 };
9627
9628static KmMenu _GEANT_LISTS = { (KmMenu*)0, (KmMenu*)0, "/GEANT/LISTS",
9629 "LISTS", 2, &_GEANT_LISTS_HSTA, 0, (char**)0 };
9630
9631static KmMenu _GEANT = { (KmMenu*)0, &_GEANT_LISTS, "/GEANT", "GEANT", 1,
9632 (KmCommand*)0, 0, (char**)0 };
9633
9634 klnkmenu( &_GEANT, 921023 );
9635}
9636
9637
9638#ifdef F77_LCASE
9639# define gkgeom_ gkgeom
9640# define gxgeom_ gxgeom
9641#endif
9642
9643#ifdef F77_UCASE
9644# define gkgeom_ GKGEOM
9645# define gxgeom_ GXGEOM
9646#endif
9647
9648#ifdef IBM370
9649# pragma linkage(GKGEOM,FORTRAN)
9650# pragma linkage(GXGEOM,FORTRAN)
9651#endif
9652
9653extern void gkgeom_();
9654extern void gxgeom_();
9655
9656void gkgeom_()
9657{
9658
9659static KmParInt _GEANT_GEOMETRY_WEUCLID_LUN_type = { "1", "100", "1",
9660 "100", 0 };
9661static 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 };
9665static 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 };
9668static 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 };
9671static KmParInt _GEANT_GEOMETRY_WEUCLID_NUMBER_type = { (char*)0, (char*)0,
9672 (char*)0, (char*)0, 0 };
9673static 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 };
9677static KmParInt _GEANT_GEOMETRY_WEUCLID_NLEVEL_type = { (char*)0, (char*)0,
9678 (char*)0, (char*)0, 0 };
9679static 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 };
9682static 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 };
9686static 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." };
9690static 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 };
9695
9696static KmParInt _GEANT_GEOMETRY_REUCLID_LUN_type = { "1", "100", "1",
9697 "100", 0 };
9698static 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 };
9701static 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 };
9704static KmParameter *_GEANT_GEOMETRY_REUCLID_parameters[] = {
9705 &_GEANT_GEOMETRY_REUCLID_LUN, &_GEANT_GEOMETRY_REUCLID_FNAME };
9706static 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." };
9710static 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 };
9715
9716static 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 };
9719static 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 };
9722static KmParInt _GEANT_GEOMETRY_CADINT_NBINS_type = { (char*)0, (char*)0,
9723 (char*)0, (char*)0, 0 };
9724static 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 };
9727static KmParInt _GEANT_GEOMETRY_CADINT_LUNIT_type = { (char*)0, (char*)0,
9728 (char*)0, (char*)0, 0 };
9729static 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 };
9732static KmParInt _GEANT_GEOMETRY_CADINT_LUNIT2_type = { (char*)0, (char*)0,
9733 (char*)0, (char*)0, 0 };
9734static 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 };
9737static 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 };
9740static 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 };
9743static 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 };
9746static 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 };
9749static 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 };
9755static 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." };
9765static 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 };
9770
9771static KmParInt _GEANT_GEOMETRY_EDITV_ISEL_type = { (char*)0, (char*)0,
9772 (char*)0, (char*)0, 0 };
9773static 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 };
9776static KmParameter _GEANT_GEOMETRY_EDITV_NAME = { "NAME", 4, "Volume name",
9777 " ", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
9778 (void*)0 };
9779static KmParameter *_GEANT_GEOMETRY_EDITV_parameters[] = {
9780 &_GEANT_GEOMETRY_EDITV_ISEL, &_GEANT_GEOMETRY_EDITV_NAME };
9781static 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" };
9794static 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,
9798 (int*)0 };
9799
9800static KmParInt _GEANT_GEOMETRY_PTMED_NUMB_type = { (char*)0, (char*)0,
9801 (char*)0, (char*)0, 0 };
9802static 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 };
9805static KmParameter *_GEANT_GEOMETRY_PTMED_parameters[] = {
9806 &_GEANT_GEOMETRY_PTMED_NUMB };
9807static char *_GEANT_GEOMETRY_PTMED_guidance[] = { " CALL GPTMED(numb)",
9808 "Print tracking media's specifications." };
9809static 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,
9813 (int*)0 };
9814
9815static KmParInt _GEANT_GEOMETRY_STMED_NTMED_type = { (char*)0, (char*)0,
9816 (char*)0, (char*)0, 0 };
9817static 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 };
9820static 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 };
9823static KmParInt _GEANT_GEOMETRY_STMED_NMAT_type = { (char*)0, (char*)0,
9824 (char*)0, (char*)0, 0 };
9825static 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 };
9828static KmParInt _GEANT_GEOMETRY_STMED_ISVOL_type = { (char*)0, (char*)0,
9829 (char*)0, (char*)0, 0 };
9830static 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 };
9833static KmParInt _GEANT_GEOMETRY_STMED_IFIELD_type = { (char*)0, (char*)0,
9834 (char*)0, (char*)0, 0 };
9835static 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 };
9838static KmParReal _GEANT_GEOMETRY_STMED_FIELDM_type = { (char*)0, (char*)0,
9839 (char*)0, (char*)0, 0 };
9840static 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 };
9843static KmParReal _GEANT_GEOMETRY_STMED_TMAXFD_type = { (char*)0, (char*)0,
9844 (char*)0, (char*)0, 0 };
9845static 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 };
9848static KmParReal _GEANT_GEOMETRY_STMED_STEMAX_type = { (char*)0, (char*)0,
9849 (char*)0, (char*)0, 0 };
9850static 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 };
9853static KmParReal _GEANT_GEOMETRY_STMED_DEEMAX_type = { (char*)0, (char*)0,
9854 (char*)0, (char*)0, 0 };
9855static 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 };
9858static KmParReal _GEANT_GEOMETRY_STMED_EPSIL_type = { (char*)0, (char*)0,
9859 (char*)0, (char*)0, 0 };
9860static 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 };
9863static KmParReal _GEANT_GEOMETRY_STMED_STMIN_type = { (char*)0, (char*)0,
9864 (char*)0, (char*)0, 0 };
9865static 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 };
9869static 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 };
9876static 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." };
9882static 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,
9886 (int*)0 };
9887
9888static KmParInt _GEANT_GEOMETRY_PROTM_NUMB_type = { (char*)0, (char*)0,
9889 (char*)0, (char*)0, 0 };
9890static 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 };
9893static KmParameter *_GEANT_GEOMETRY_PROTM_parameters[] = {
9894 &_GEANT_GEOMETRY_PROTM_NUMB };
9895static char *_GEANT_GEOMETRY_PROTM_guidance[] = { " CALL GPROTM(numb)",
9896 "Print matrixes' specifications." };
9897static 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,
9901 (int*)0 };
9902
9903static KmParInt _GEANT_GEOMETRY_SROTM_IROT_type = { (char*)0, (char*)0,
9904 (char*)0, (char*)0, 0 };
9905static 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 };
9908static KmParReal _GEANT_GEOMETRY_SROTM_THETA1_type = { "0.", "180.", "0.",
9909 "180.", 0 };
9910static 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 };
9913static KmParReal _GEANT_GEOMETRY_SROTM_PHI1_type = { "0.", "360.", "0.",
9914 "360.", 0 };
9915static 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 };
9918static KmParReal _GEANT_GEOMETRY_SROTM_THETA2_type = { "0.", "180.", "0.",
9919 "180.", 0 };
9920static 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 };
9923static KmParReal _GEANT_GEOMETRY_SROTM_PHI2_type = { "0.", "360.", "0.",
9924 "360.", 0 };
9925static 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 };
9928static KmParReal _GEANT_GEOMETRY_SROTM_THETA3_type = { "0.", "180.", "0.",
9929 "180.", 0 };
9930static 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 };
9933static KmParReal _GEANT_GEOMETRY_SROTM_PHI3_type = { "0.", "360.", "0.",
9934 "360.", 0 };
9935static 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 };
9938static 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 };
9943static char *_GEANT_GEOMETRY_SROTM_guidance[] = {
9944 " CALL GSROTM(irot,theta1,phi1,theta2,phi2,theta3,phi3)",
9945 "It defines the rotation matrix number IROT." };
9946static 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,
9950 (int*)0 };
9951
9952static KmParInt _GEANT_GEOMETRY_PVOLU_NUMB_type = { (char*)0, (char*)0,
9953 (char*)0, (char*)0, 0 };
9954static 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 };
9957static KmParameter *_GEANT_GEOMETRY_PVOLU_parameters[] = {
9958 &_GEANT_GEOMETRY_PVOLU_NUMB };
9959static char *_GEANT_GEOMETRY_PVOLU_guidance[] = { " CALL GPVOLU(numb)",
9960 "Prints volumes' specifications." };
9961static 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,
9965 (int*)0 };
9966
9967static 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 };
9970static 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 };
9973static KmParInt _GEANT_GEOMETRY_SDVN_NDIV_type = { (char*)0, (char*)0,
9974 (char*)0, (char*)0, 0 };
9975static 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 };
9978static char *_GEANT_GEOMETRY_SDVN_CAXIS_range[] = { "X", "Y", "Z", "1", "2",
9979 "3" };
9980static char *_GEANT_GEOMETRY_SDVN_CAXIS_text[] = { (char*)0, (char*)0,
9981 (char*)0, (char*)0, (char*)0, (char*)0 };
9982static KmParOption _GEANT_GEOMETRY_SDVN_CAXIS_type = {
9983 _GEANT_GEOMETRY_SDVN_CAXIS_text, (int*)0, (int*)0 };
9984static 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 };
9988static KmParameter *_GEANT_GEOMETRY_SDVN_parameters[] = {
9989 &_GEANT_GEOMETRY_SDVN_NAME, &_GEANT_GEOMETRY_SDVN_MOTHER,
9990 &_GEANT_GEOMETRY_SDVN_NDIV, &_GEANT_GEOMETRY_SDVN_CAXIS };
9991static 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." };
9995static 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 };
9999
10000static 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 };
10003static KmParInt _GEANT_GEOMETRY_SPOS_NUMBER_type = { (char*)0, (char*)0,
10004 (char*)0, (char*)0, 0 };
10005static 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 };
10008static 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 };
10011static KmParReal _GEANT_GEOMETRY_SPOS_X0_type = { (char*)0, (char*)0,
10012 (char*)0, (char*)0, 0 };
10013static 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 };
10017static KmParReal _GEANT_GEOMETRY_SPOS_Y0_type = { (char*)0, (char*)0,
10018 (char*)0, (char*)0, 0 };
10019static 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 };
10023static KmParReal _GEANT_GEOMETRY_SPOS_Z0_type = { (char*)0, (char*)0,
10024 (char*)0, (char*)0, 0 };
10025static 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 };
10029static KmParInt _GEANT_GEOMETRY_SPOS_IROT_type = { (char*)0, (char*)0,
10030 (char*)0, (char*)0, 0 };
10031static 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 };
10035static 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 };
10038static 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 };
10043static 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." };
10046static 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 };
10050
10051static 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 };
10054static 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 };
10057static KmParInt _GEANT_GEOMETRY_SVOLU_NUMED_type = { (char*)0, (char*)0,
10058 (char*)0, (char*)0, 0 };
10059static 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 };
10062static KmParInt _GEANT_GEOMETRY_SVOLU_NPAR_type = { (char*)0, (char*)0,
10063 (char*)0, (char*)0, 0 };
10064static 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 };
10067static 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 };
10070static 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 };
10074static 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." };
10078static 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,
10082 (int*)0 };
10083
10084static char *_GEANT_GEOMETRY_OPTI_IOPTI_range[] = { "-1", "2" };
10085static KmParInt _GEANT_GEOMETRY_OPTI_IOPTI_type = { (char*)0, (char*)0,
10086 (char*)0, (char*)0, 0 };
10087static 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 };
10091static KmParameter *_GEANT_GEOMETRY_OPTI_parameters[] = {
10092 &_GEANT_GEOMETRY_OPTI_IOPTI };
10093static 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." };
10099static 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 };
10103
10104static 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 };
10107static KmParInt _GEANT_CREATE_SPARA_NUMED_type = { (char*)0, (char*)0,
10108 (char*)0, (char*)0, 0 };
10109static 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 };
10112static KmParReal _GEANT_CREATE_SPARA_HALFX_type = { (char*)0, (char*)0,
10113 (char*)0, (char*)0, 0 };
10114static 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 };
10117static KmParReal _GEANT_CREATE_SPARA_HALFY_type = { (char*)0, (char*)0,
10118 (char*)0, (char*)0, 0 };
10119static 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 };
10122static KmParReal _GEANT_CREATE_SPARA_HALFZ_type = { (char*)0, (char*)0,
10123 (char*)0, (char*)0, 0 };
10124static 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 };
10127static KmParReal _GEANT_CREATE_SPARA_AXIS_type = { "0.", "360.", "0.",
10128 "360.", 0 };
10129static 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 };
10133static KmParReal _GEANT_CREATE_SPARA_PHI_type = { "0.", "360.", "0.",
10134 "360.", 0 };
10135static 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 };
10139static KmParReal _GEANT_CREATE_SPARA_THETA_type = { "0.", "360.", "0.",
10140 "360.", 0 };
10141static 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 };
10145static char *_GEANT_CREATE_SPARA_YESNO_range[] = { "YES", "NO" };
10146static char *_GEANT_CREATE_SPARA_YESNO_text[] = { (char*)0, (char*)0 };
10147static KmParOption _GEANT_CREATE_SPARA_YESNO_type = {
10148 _GEANT_CREATE_SPARA_YESNO_text, (int*)0, (int*)0 };
10149static 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 };
10153static 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 };
10159static 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 };
10163
10164static 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 };
10167static KmParInt _GEANT_CREATE_SSPHE_NUMED_type = { (char*)0, (char*)0,
10168 (char*)0, (char*)0, 0 };
10169static 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 };
10172static KmParReal _GEANT_CREATE_SSPHE_INRAD_type = { (char*)0, (char*)0,
10173 (char*)0, (char*)0, 0 };
10174static 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 };
10177static KmParReal _GEANT_CREATE_SSPHE_OUTRAD_type = { (char*)0, (char*)0,
10178 (char*)0, (char*)0, 0 };
10179static 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 };
10182static KmParReal _GEANT_CREATE_SSPHE_SPHI_type = { "0.", "360.", "0.",
10183 "360.", 0 };
10184static 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 };
10187static KmParReal _GEANT_CREATE_SSPHE_EPHI_type = { "0.", "360.", "0.",
10188 "360.", 0 };
10189static 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 };
10192static KmParReal _GEANT_CREATE_SSPHE_STHETA_type = { (char*)0, (char*)0,
10193 (char*)0, (char*)0, 0 };
10194static 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 };
10197static KmParReal _GEANT_CREATE_SSPHE_ETHETA_type = { (char*)0, (char*)0,
10198 (char*)0, (char*)0, 0 };
10199static 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 };
10202static char *_GEANT_CREATE_SSPHE_YESNO_range[] = { "YES", "NO" };
10203static char *_GEANT_CREATE_SSPHE_YESNO_text[] = { (char*)0, (char*)0 };
10204static KmParOption _GEANT_CREATE_SSPHE_YESNO_type = {
10205 _GEANT_CREATE_SSPHE_YESNO_text, (int*)0, (int*)0 };
10206static 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 };
10210static 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 };
10216static 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 };
10220
10221static 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 };
10224static KmParInt _GEANT_CREATE_SCONS_NUMED_type = { (char*)0, (char*)0,
10225 (char*)0, (char*)0, 0 };
10226static 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 };
10229static KmParReal _GEANT_CREATE_SCONS_INRDW_type = { (char*)0, (char*)0,
10230 (char*)0, (char*)0, 0 };
10231static 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 };
10234static KmParReal _GEANT_CREATE_SCONS_OUTRDW_type = { (char*)0, (char*)0,
10235 (char*)0, (char*)0, 0 };
10236static 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 };
10239static KmParReal _GEANT_CREATE_SCONS_INRUP_type = { (char*)0, (char*)0,
10240 (char*)0, (char*)0, 0 };
10241static 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 };
10244static KmParReal _GEANT_CREATE_SCONS_OUTRUP_type = { (char*)0, (char*)0,
10245 (char*)0, (char*)0, 0 };
10246static 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 };
10249static KmParReal _GEANT_CREATE_SCONS_HALFZ_type = { (char*)0, (char*)0,
10250 (char*)0, (char*)0, 0 };
10251static 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 };
10254static KmParReal _GEANT_CREATE_SCONS_SPHI_type = { "0.", "360.", "0.",
10255 "360.", 0 };
10256static 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 };
10259static KmParReal _GEANT_CREATE_SCONS_EPHI_type = { "0.", "360.", "0.",
10260 "360.", 0 };
10261static 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 };
10264static char *_GEANT_CREATE_SCONS_YESNO_range[] = { "YES", "NO" };
10265static char *_GEANT_CREATE_SCONS_YESNO_text[] = { (char*)0, (char*)0 };
10266static KmParOption _GEANT_CREATE_SCONS_YESNO_type = {
10267 _GEANT_CREATE_SCONS_YESNO_text, (int*)0, (int*)0 };
10268static 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 };
10272static 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 };
10278static 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 };
10282
10283static 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 };
10286static KmParInt _GEANT_CREATE_SCONE_NUMED_type = { (char*)0, (char*)0,
10287 (char*)0, (char*)0, 0 };
10288static 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 };
10291static KmParReal _GEANT_CREATE_SCONE_INRDW_type = { (char*)0, (char*)0,
10292 (char*)0, (char*)0, 0 };
10293static 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 };
10296static KmParReal _GEANT_CREATE_SCONE_OUTRDW_type = { (char*)0, (char*)0,
10297 (char*)0, (char*)0, 0 };
10298static 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 };
10301static KmParReal _GEANT_CREATE_SCONE_INRUP_type = { (char*)0, (char*)0,
10302 (char*)0, (char*)0, 0 };
10303static 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 };
10306static KmParReal _GEANT_CREATE_SCONE_OUTRUP_type = { (char*)0, (char*)0,
10307 (char*)0, (char*)0, 0 };
10308static 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 };
10311static KmParReal _GEANT_CREATE_SCONE_HALFZ_type = { (char*)0, (char*)0,
10312 (char*)0, (char*)0, 0 };
10313static 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 };
10316static char *_GEANT_CREATE_SCONE_YESNO_range[] = { "YES", "NO" };
10317static char *_GEANT_CREATE_SCONE_YESNO_text[] = { (char*)0, (char*)0 };
10318static KmParOption _GEANT_CREATE_SCONE_YESNO_type = {
10319 _GEANT_CREATE_SCONE_YESNO_text, (int*)0, (int*)0 };
10320static 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 };
10324static 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 };
10329static 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 };
10333
10334static 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 };
10337static KmParInt _GEANT_CREATE_STUBS_NUMED_type = { (char*)0, (char*)0,
10338 (char*)0, (char*)0, 0 };
10339static 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 };
10342static KmParReal _GEANT_CREATE_STUBS_INRAD_type = { (char*)0, (char*)0,
10343 (char*)0, (char*)0, 0 };
10344static 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 };
10347static KmParReal _GEANT_CREATE_STUBS_OUTRAD_type = { (char*)0, (char*)0,
10348 (char*)0, (char*)0, 0 };
10349static 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 };
10352static KmParReal _GEANT_CREATE_STUBS_HALFZ_type = { (char*)0, (char*)0,
10353 (char*)0, (char*)0, 0 };
10354static 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 };
10357static KmParReal _GEANT_CREATE_STUBS_SPHI_type = { "0.", "360.", "0.",
10358 "360.", 0 };
10359static 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 };
10362static KmParReal _GEANT_CREATE_STUBS_EPHI_type = { "0.", "360.", "0.",
10363 "360.", 0 };
10364static 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 };
10367static char *_GEANT_CREATE_STUBS_YESNO_range[] = { "YES", "NO" };
10368static char *_GEANT_CREATE_STUBS_YESNO_text[] = { (char*)0, (char*)0 };
10369static KmParOption _GEANT_CREATE_STUBS_YESNO_type = {
10370 _GEANT_CREATE_STUBS_YESNO_text, (int*)0, (int*)0 };
10371static 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 };
10375static 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 };
10380static 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 };
10384
10385static 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 };
10388static KmParInt _GEANT_CREATE_STUBE_NUMED_type = { (char*)0, (char*)0,
10389 (char*)0, (char*)0, 0 };
10390static 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 };
10393static KmParReal _GEANT_CREATE_STUBE_INRAD_type = { (char*)0, (char*)0,
10394 (char*)0, (char*)0, 0 };
10395static 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 };
10398static KmParReal _GEANT_CREATE_STUBE_OUTRAD_type = { (char*)0, (char*)0,
10399 (char*)0, (char*)0, 0 };
10400static 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 };
10403static KmParReal _GEANT_CREATE_STUBE_HALFZ_type = { (char*)0, (char*)0,
10404 (char*)0, (char*)0, 0 };
10405static 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 };
10408static char *_GEANT_CREATE_STUBE_YESNO_range[] = { "YES", "NO" };
10409static char *_GEANT_CREATE_STUBE_YESNO_text[] = { (char*)0, (char*)0 };
10410static KmParOption _GEANT_CREATE_STUBE_YESNO_type = {
10411 _GEANT_CREATE_STUBE_YESNO_text, (int*)0, (int*)0 };
10412static 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 };
10416static 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 };
10420static 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 };
10424
10425static 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 };
10428static KmParInt _GEANT_CREATE_STRD2_NUMED_type = { (char*)0, (char*)0,
10429 (char*)0, (char*)0, 0 };
10430static 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 };
10433static KmParReal _GEANT_CREATE_STRD2_HLFDWX_type = { (char*)0, (char*)0,
10434 (char*)0, (char*)0, 0 };
10435static 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 };
10438static KmParReal _GEANT_CREATE_STRD2_HLFUPX_type = { (char*)0, (char*)0,
10439 (char*)0, (char*)0, 0 };
10440static 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 };
10443static KmParReal _GEANT_CREATE_STRD2_HLFDWY_type = { (char*)0, (char*)0,
10444 (char*)0, (char*)0, 0 };
10445static 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 };
10448static KmParReal _GEANT_CREATE_STRD2_HLFUPY_type = { (char*)0, (char*)0,
10449 (char*)0, (char*)0, 0 };
10450static 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 };
10453static KmParReal _GEANT_CREATE_STRD2_HALFZ_type = { (char*)0, (char*)0,
10454 (char*)0, (char*)0, 0 };
10455static 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 };
10458static char *_GEANT_CREATE_STRD2_YESNO_range[] = { "YES", "NO" };
10459static char *_GEANT_CREATE_STRD2_YESNO_text[] = { (char*)0, (char*)0 };
10460static KmParOption _GEANT_CREATE_STRD2_YESNO_type = {
10461 _GEANT_CREATE_STRD2_YESNO_text, (int*)0, (int*)0 };
10462static 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 };
10466static 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 };
10471static 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 };
10475
10476static 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 };
10479static KmParInt _GEANT_CREATE_STRD1_NUMED_type = { (char*)0, (char*)0,
10480 (char*)0, (char*)0, 0 };
10481static 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 };
10484static KmParReal _GEANT_CREATE_STRD1_HLFDWX_type = { (char*)0, (char*)0,
10485 (char*)0, (char*)0, 0 };
10486static 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 };
10489static KmParReal _GEANT_CREATE_STRD1_HLFUPX_type = { (char*)0, (char*)0,
10490 (char*)0, (char*)0, 0 };
10491static 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 };
10494static KmParReal _GEANT_CREATE_STRD1_HALFY_type = { (char*)0, (char*)0,
10495 (char*)0, (char*)0, 0 };
10496static 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 };
10499static KmParReal _GEANT_CREATE_STRD1_HALFZ_type = { (char*)0, (char*)0,
10500 (char*)0, (char*)0, 0 };
10501static 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 };
10504static char *_GEANT_CREATE_STRD1_YESNO_range[] = { "YES", "NO" };
10505static char *_GEANT_CREATE_STRD1_YESNO_text[] = { (char*)0, (char*)0 };
10506static KmParOption _GEANT_CREATE_STRD1_YESNO_type = {
10507 _GEANT_CREATE_STRD1_YESNO_text, (int*)0, (int*)0 };
10508static 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 };
10512static 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 };
10517static 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 };
10521
10522static 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 };
10525static KmParInt _GEANT_CREATE_SBOX_NUMED_type = { (char*)0, (char*)0,
10526 (char*)0, (char*)0, 0 };
10527static 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 };
10530static KmParReal _GEANT_CREATE_SBOX_HALFX_type = { (char*)0, (char*)0,
10531 (char*)0, (char*)0, 0 };
10532static 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 };
10535static KmParReal _GEANT_CREATE_SBOX_HALFY_type = { (char*)0, (char*)0,
10536 (char*)0, (char*)0, 0 };
10537static 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 };
10540static KmParReal _GEANT_CREATE_SBOX_HALFZ_type = { (char*)0, (char*)0,
10541 (char*)0, (char*)0, 0 };
10542static 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 };
10545static char *_GEANT_CREATE_SBOX_YESNO_range[] = { "YES", "NO" };
10546static char *_GEANT_CREATE_SBOX_YESNO_text[] = { (char*)0, (char*)0 };
10547static KmParOption _GEANT_CREATE_SBOX_YESNO_type = {
10548 _GEANT_CREATE_SBOX_YESNO_text, (int*)0, (int*)0 };
10549static 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 };
10553static 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 };
10557static 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 };
10561
10562static 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"
10565 };
10566static KmMenu _GEANT_CREATE = { (KmMenu*)0, (KmMenu*)0, "/GEANT/CREATE",
10567 "CREATE", 2, &_GEANT_CREATE_SBOX, 3, _GEANT_CREATE_guidance };
10568
10569static char *_GEANT_GEOMETRY_guidance[] = { "Geometry commands." };
10570static KmMenu _GEANT_GEOMETRY = { &_GEANT_CREATE, (KmMenu*)0,
10571 "/GEANT/GEOMETRY", "GEOMETRY", 2, &_GEANT_GEOMETRY_OPTI, 1,
10572 _GEANT_GEOMETRY_guidance };
10573
10574static KmMenu _GEANT = { (KmMenu*)0, &_GEANT_GEOMETRY, "/GEANT", "GEANT", 1,
10575 (KmCommand*)0, 0, (char**)0 };
10576
10577 klnkmenu( &_GEANT, 921023 );
10578}
10579
10580
10581#ifdef F77_LCASE
10582# define gkcont_ gkcont
10583# define gxcont_ gxcont
10584#endif
10585
10586#ifdef F77_UCASE
10587# define gkcont_ GKCONT
10588# define gxcont_ GXCONT
10589#endif
10590
10591#ifdef IBM370
10592# pragma linkage(GKCONT,FORTRAN)
10593# pragma linkage(GXCONT,FORTRAN)
10594#endif
10595
10596extern void gkcont_();
10597extern void gxcont_();
10598
10599void gkcont_()
10600{
10601
10602static char *_GEANT_CONTROL_DEBUG_IDEB_range[] = { "ON", "OFF" };
10603static char *_GEANT_CONTROL_DEBUG_IDEB_text[] = { (char*)0, (char*)0 };
10604static KmParOption _GEANT_CONTROL_DEBUG_IDEB_type = {
10605 _GEANT_CONTROL_DEBUG_IDEB_text, (int*)0, (int*)0 };
10606static 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 };
10610static KmParameter *_GEANT_CONTROL_DEBUG_parameters[] = {
10611 &_GEANT_CONTROL_DEBUG_IDEB };
10612static 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" };
10615static 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 };
10619
10620static KmParInt _GEANT_CONTROL_PRKINE_NUMB_type = { (char*)0, (char*)0,
10621 (char*)0, (char*)0, 0 };
10622static 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 };
10625static KmParameter *_GEANT_CONTROL_PRKINE_parameters[] = {
10626 &_GEANT_CONTROL_PRKINE_NUMB };
10627static char *_GEANT_CONTROL_PRKINE_guidance[] = { "CALL GPKINE(numb)" };
10628static 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,
10632 (int*)0 };
10633
10634static KmParInt _GEANT_CONTROL_PPART_NUMB_type = { (char*)0, (char*)0,
10635 (char*)0, (char*)0, 0 };
10636static 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 };
10639static KmParameter *_GEANT_CONTROL_PPART_parameters[] = {
10640 &_GEANT_CONTROL_PPART_NUMB };
10641static char *_GEANT_CONTROL_PPART_guidance[] = { "CALL GPPART(numb)" };
10642static 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 };
10646
10647static KmParInt _GEANT_CONTROL_SPART_IPART_type = { (char*)0, (char*)0,
10648 (char*)0, (char*)0, 0 };
10649static 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 };
10652static 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 };
10655static KmParInt _GEANT_CONTROL_SPART_ITRTYP_type = { (char*)0, (char*)0,
10656 (char*)0, (char*)0, 0 };
10657static 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 };
10660static KmParReal _GEANT_CONTROL_SPART_AMASS_type = { (char*)0, (char*)0,
10661 (char*)0, (char*)0, 0 };
10662static 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 };
10665static KmParReal _GEANT_CONTROL_SPART_CHARGE_type = { (char*)0, (char*)0,
10666 (char*)0, (char*)0, 0 };
10667static 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 };
10670static KmParReal _GEANT_CONTROL_SPART_TLIFE_type = { (char*)0, (char*)0,
10671 (char*)0, (char*)0, 0 };
10672static 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 };
10675static KmParReal _GEANT_CONTROL_SPART_UBUF_type = { (char*)0, (char*)0,
10676 (char*)0, (char*)0, 0 };
10677static 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 };
10680static KmParInt _GEANT_CONTROL_SPART_NWBUF_type = { (char*)0, (char*)0,
10681 (char*)0, (char*)0, 0 };
10682static 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 };
10685static KmParReal _GEANT_CONTROL_SPART_BRATIO_type = { (char*)0, (char*)0,
10686 (char*)0, (char*)0, 0 };
10687static 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 };
10690static KmParInt _GEANT_CONTROL_SPART_MODE_type = { (char*)0, (char*)0,
10691 (char*)0, (char*)0, 0 };
10692static 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 };
10695static 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 };
10701static char *_GEANT_CONTROL_SPART_guidance[] = {
10702 "CALL GSPART(ipart,napart,itrtyp,amass,charge,tlife,ubuf,nwbuf);",
10703 "CALL GSDK(ipart,bratio,mode)" };
10704static 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,
10708 (int*)0 };
10709
10710static KmParInt _GEANT_CONTROL_STPAR_ITMED_type = { (char*)0, (char*)0,
10711 (char*)0, (char*)0, 0 };
10712static 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 };
10715static 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 };
10718static KmParReal _GEANT_CONTROL_STPAR_PARVAL_type = { (char*)0, (char*)0,
10719 (char*)0, (char*)0, 0 };
10720static 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 };
10723static KmParameter *_GEANT_CONTROL_STPAR_parameters[] = {
10724 &_GEANT_CONTROL_STPAR_ITMED, &_GEANT_CONTROL_STPAR_CHPAR,
10725 &_GEANT_CONTROL_STPAR_PARVAL };
10726static char *_GEANT_CONTROL_STPAR_guidance[] = {
10727 "CALL GSTPAR(itmed,chpar,parval)" };
10728static 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 };
10732
10733static KmParInt _GEANT_CONTROL_DRMAT_IMATE_type = { (char*)0, (char*)0,
10734 (char*)0, (char*)0, 0 };
10735static 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 };
10738static KmParInt _GEANT_CONTROL_DRMAT_IPART_type = { (char*)0, (char*)0,
10739 (char*)0, (char*)0, 0 };
10740static 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 };
10743static 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 };
10746static KmParameter *_GEANT_CONTROL_DRMAT_parameters[] = {
10747 &_GEANT_CONTROL_DRMAT_IMATE, &_GEANT_CONTROL_DRMAT_IPART,
10748 &_GEANT_CONTROL_DRMAT_MECAN };
10749static 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." };
10756static 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 };
10760
10761static KmParInt _GEANT_CONTROL_PLMAT_IMATE_type = { (char*)0, (char*)0,
10762 (char*)0, (char*)0, 0 };
10763static 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 };
10766static KmParInt _GEANT_CONTROL_PLMAT_IPART_type = { (char*)0, (char*)0,
10767 (char*)0, (char*)0, 0 };
10768static 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 };
10771static 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 };
10774static KmParInt _GEANT_CONTROL_PLMAT_IDM_type = { (char*)0, (char*)0,
10775 (char*)0, (char*)0, 0 };
10776static 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 };
10779static KmParameter *_GEANT_CONTROL_PLMAT_parameters[] = {
10780 &_GEANT_CONTROL_PLMAT_IMATE, &_GEANT_CONTROL_PLMAT_IPART,
10781 &_GEANT_CONTROL_PLMAT_MECAN, &_GEANT_CONTROL_PLMAT_IDM };
10782static 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\
10789 number",
10790 "is negative, the cross sections relative to material ABS(IMATE) will",
10791 "be histogrammed in barns rather than in 1/cm." };
10792static 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 };
10796
10797static KmParInt _GEANT_CONTROL_PRMAT_IMATE_type = { (char*)0, (char*)0,
10798 (char*)0, (char*)0, 0 };
10799static 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 };
10802static KmParInt _GEANT_CONTROL_PRMAT_IPART_type = { (char*)0, (char*)0,
10803 (char*)0, (char*)0, 0 };
10804static 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 };
10807static 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 };
10810static KmParameter *_GEANT_CONTROL_PRMAT_parameters[] = {
10811 &_GEANT_CONTROL_PRMAT_IMATE, &_GEANT_CONTROL_PRMAT_IPART,
10812 &_GEANT_CONTROL_PRMAT_MECAN };
10813static char *_GEANT_CONTROL_PRMAT_guidance[] = {
10814 " CALL GPRMAT(imate,ipart,mecan,nekbin,elow)" };
10815static 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 };
10819
10820static KmParInt _GEANT_CONTROL_PMATE_NUMB_type = { (char*)0, (char*)0,
10821 (char*)0, (char*)0, 0 };
10822static 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 };
10825static KmParameter *_GEANT_CONTROL_PMATE_parameters[] = {
10826 &_GEANT_CONTROL_PMATE_NUMB };
10827static char *_GEANT_CONTROL_PMATE_guidance[] = { " CALL GPMATE(numb)" };
10828static 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 };
10832
10833static KmParInt _GEANT_CONTROL_SMIXT_IMAT_type = { (char*)0, (char*)0,
10834 (char*)0, (char*)0, 0 };
10835static 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 };
10838static 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 };
10841static KmParReal _GEANT_CONTROL_SMIXT_A_type = { (char*)0, (char*)0,
10842 (char*)0, (char*)0, 0 };
10843static 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 };
10846static KmParReal _GEANT_CONTROL_SMIXT_Z_type = { (char*)0, (char*)0,
10847 (char*)0, (char*)0, 0 };
10848static 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 };
10851static KmParReal _GEANT_CONTROL_SMIXT_DENS_type = { (char*)0, (char*)0,
10852 (char*)0, (char*)0, 0 };
10853static 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 };
10856static KmParInt _GEANT_CONTROL_SMIXT_NLMAT_type = { (char*)0, (char*)0,
10857 (char*)0, (char*)0, 0 };
10858static 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 };
10861static KmParReal _GEANT_CONTROL_SMIXT_WMAT_type = { (char*)0, (char*)0,
10862 (char*)0, (char*)0, 0 };
10863static 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 };
10867static 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 };
10871static char *_GEANT_CONTROL_SMIXT_guidance[] = {
10872 " CALL GSMIXT(imat,namate,a,z,dens,nlmat,wmat)" };
10873static 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 };
10877
10878static KmParInt _GEANT_CONTROL_SMATE_IMAT_type = { (char*)0, (char*)0,
10879 (char*)0, (char*)0, 0 };
10880static 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 };
10883static 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 };
10886static KmParReal _GEANT_CONTROL_SMATE_A_type = { (char*)0, (char*)0,
10887 (char*)0, (char*)0, 0 };
10888static 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 };
10891static KmParReal _GEANT_CONTROL_SMATE_Z_type = { (char*)0, (char*)0,
10892 (char*)0, (char*)0, 0 };
10893static 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 };
10896static KmParReal _GEANT_CONTROL_SMATE_DENS_type = { (char*)0, (char*)0,
10897 (char*)0, (char*)0, 0 };
10898static 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 };
10901static KmParReal _GEANT_CONTROL_SMATE_RADL_type = { (char*)0, (char*)0,
10902 (char*)0, (char*)0, 0 };
10903static 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 };
10906static KmParReal _GEANT_CONTROL_SMATE_ABSL_type = { (char*)0, (char*)0,
10907 (char*)0, (char*)0, 0 };
10908static 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 };
10911static KmParReal _GEANT_CONTROL_SMATE_UBUF_type = { (char*)0, (char*)0,
10912 (char*)0, (char*)0, 0 };
10913static 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 };
10916static KmParInt _GEANT_CONTROL_SMATE_NWBUF_type = { (char*)0, (char*)0,
10917 (char*)0, (char*)0, 0 };
10918static 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 };
10921static 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 };
10926static char *_GEANT_CONTROL_SMATE_guidance[] = {
10927 " CALL GSMATE(imat,namate,a,z,dens,radl,absl,ubuf,nwbuf)" };
10928static 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 };
10932
10933static KmParameter _GEANT_CONTROL_PDIGI_CHUSET = { "CHUSET", 6, "User set",
10934 "*", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
10935 (void*)0 };
10936static 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 };
10939static KmParameter *_GEANT_CONTROL_PDIGI_parameters[] = {
10940 &_GEANT_CONTROL_PDIGI_CHUSET, &_GEANT_CONTROL_PDIGI_CHUDET };
10941static char *_GEANT_CONTROL_PDIGI_guidance[] = { " CALL GPDIGI(chuset,chudet)"
10942 };
10943static 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 };
10947
10948static KmParameter _GEANT_CONTROL_PHITS_CHUSET = { "CHUSET", 6, "User set",
10949 "*", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
10950 (void*)0 };
10951static 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 };
10954static KmParInt _GEANT_CONTROL_PHITS_NUMHI_type = { (char*)0, (char*)0,
10955 (char*)0, (char*)0, 0 };
10956static 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 };
10959static KmParameter *_GEANT_CONTROL_PHITS_parameters[] = {
10960 &_GEANT_CONTROL_PHITS_CHUSET, &_GEANT_CONTROL_PHITS_CHUDET,
10961 &_GEANT_CONTROL_PHITS_NUMHI };
10962static char *_GEANT_CONTROL_PHITS_guidance[] = { " CALL GPHITS(chuset,chudet)"
10963 };
10964static 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 };
10968
10969static KmParInt _GEANT_CONTROL_OUTPUT_LP_LOUT_type = { (char*)0, (char*)0,
10970 (char*)0, (char*)0, 0 };
10971static 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 };
10974static KmParameter *_GEANT_CONTROL_OUTPUT_LP_parameters[] = {
10975 &_GEANT_CONTROL_OUTPUT_LP_LOUT };
10976static 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." };
10979static 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 };
10984
10985static KmParameter _GEANT_CONTROL_PRINT_NAME = { "NAME", 4, "Name", (char*)0,
10986 (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
10987 (void*)0 };
10988static KmParInt _GEANT_CONTROL_PRINT_NUMBER_type = { (char*)0, (char*)0,
10989 (char*)0, (char*)0, 0 };
10990static 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 };
10993static KmParameter *_GEANT_CONTROL_PRINT_parameters[] = {
10994 &_GEANT_CONTROL_PRINT_NAME, &_GEANT_CONTROL_PRINT_NUMBER };
10995static char *_GEANT_CONTROL_PRINT_guidance[] = { " CALL GPRINT(name,number)" };
10996static 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 };
11000
11001static KmParInt _GEANT_CONTROL_MZLOGL_LEVEL_type = { (char*)0, (char*)0,
11002 (char*)0, (char*)0, 0 };
11003static 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 };
11006static KmParameter *_GEANT_CONTROL_MZLOGL_parameters[] = {
11007 &_GEANT_CONTROL_MZLOGL_LEVEL };
11008static 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" };
11013static 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,
11017 (int*)0 };
11018
11019static KmParInt _GEANT_CONTROL_SWITCH_ISWI_type = { (char*)0, (char*)0,
11020 (char*)0, (char*)0, 0 };
11021static 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 };
11024static KmParInt _GEANT_CONTROL_SWITCH_IVAL_type = { (char*)0, (char*)0,
11025 (char*)0, (char*)0, 0 };
11026static 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 };
11029static KmParameter *_GEANT_CONTROL_SWITCH_parameters[] = {
11030 &_GEANT_CONTROL_SWITCH_ISWI, &_GEANT_CONTROL_SWITCH_IVAL };
11031static char *_GEANT_CONTROL_SWITCH_guidance[] = {
11032 "Change one element of array ISWIT(10) in /GCFLAG/" };
11033static 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,
11037 (int*)0 };
11038
11039static KmParInt _GEANT_CONTROL_RNDM_ISEED1_type = { (char*)0, (char*)0,
11040 (char*)0, (char*)0, 0 };
11041static 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 };
11045static KmParInt _GEANT_CONTROL_RNDM_ISEED2_type = { (char*)0, (char*)0,
11046 (char*)0, (char*)0, 0 };
11047static 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 };
11051static KmParameter *_GEANT_CONTROL_RNDM_parameters[] = {
11052 &_GEANT_CONTROL_RNDM_ISEED1, &_GEANT_CONTROL_RNDM_ISEED2 };
11053static 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." };
11056static 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 };
11060
11061static KmParInt _GEANT_CONTROL_TRIGGER_N_type = { (char*)0, (char*)0,
11062 (char*)0, (char*)0, 0 };
11063static 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 };
11066static KmParameter *_GEANT_CONTROL_TRIGGER_parameters[] = {
11067 &_GEANT_CONTROL_TRIGGER_N };
11068static char *_GEANT_CONTROL_TRIGGER_guidance[] = {
11069 "Start one or more new events." };
11070static 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 };
11075
11076static char *_GEANT_CONTROL_TRACK_guidance[] = {
11077 "Restart tracking, clearing the track and hit",
11078 "banks, but keeping the kinematics." };
11079static 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 };
11083
11084static KmParReal _GEANT_CONTROL_GTIME_TIMINT_type = { (char*)0, (char*)0,
11085 (char*)0, (char*)0, 0 };
11086static 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 };
11089static KmParReal _GEANT_CONTROL_GTIME_TIMEND_type = { (char*)0, (char*)0,
11090 (char*)0, (char*)0, 0 };
11091static 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 };
11095static KmParInt _GEANT_CONTROL_GTIME_ITIME_type = { (char*)0, (char*)0,
11096 (char*)0, (char*)0, 0 };
11097static 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 };
11100static KmParameter *_GEANT_CONTROL_GTIME_parameters[] = {
11101 &_GEANT_CONTROL_GTIME_TIMINT, &_GEANT_CONTROL_GTIME_TIMEND,
11102 &_GEANT_CONTROL_GTIME_ITIME };
11103static 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." };
11106static 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 };
11110
11111static char *_GEANT_CONTROL_SORD_ISTORD_range[] = { "1", "0" };
11112static KmParInt _GEANT_CONTROL_SORD_ISTORD_type = { (char*)0, (char*)0,
11113 (char*)0, (char*)0, 0 };
11114static 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 };
11118static KmParameter *_GEANT_CONTROL_SORD_parameters[] = {
11119 &_GEANT_CONTROL_SORD_ISTORD };
11120static 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." };
11123static 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 };
11127
11128static KmParInt _GEANT_CONTROL_RUNG_IDRUN_type = { (char*)0, (char*)0,
11129 (char*)0, (char*)0, 0 };
11130static 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 };
11133static KmParInt _GEANT_CONTROL_RUNG_IDEVT_type = { (char*)0, (char*)0,
11134 (char*)0, (char*)0, 0 };
11135static 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 };
11138static KmParameter *_GEANT_CONTROL_RUNG_parameters[] = {
11139 &_GEANT_CONTROL_RUNG_IDRUN, &_GEANT_CONTROL_RUNG_IDEVT };
11140static char *_GEANT_CONTROL_RUNG_guidance[] = {
11141 "Set the run number and the starting value for the user event number." };
11142static 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 };
11146
11147static KmParInt _GEANT_CONTROL_KINE_IKINE_type = { (char*)0, (char*)0,
11148 (char*)0, (char*)0, 0 };
11149static 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 };
11152static KmParReal _GEANT_CONTROL_KINE_PKINE1_type = { (char*)0, (char*)0,
11153 (char*)0, (char*)0, 0 };
11154static 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 };
11157static KmParReal _GEANT_CONTROL_KINE_PKINE2_type = { (char*)0, (char*)0,
11158 (char*)0, (char*)0, 0 };
11159static 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 };
11162static KmParReal _GEANT_CONTROL_KINE_PKINE3_type = { (char*)0, (char*)0,
11163 (char*)0, (char*)0, 0 };
11164static 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 };
11167static KmParReal _GEANT_CONTROL_KINE_PKINE4_type = { (char*)0, (char*)0,
11168 (char*)0, (char*)0, 0 };
11169static 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 };
11172static KmParReal _GEANT_CONTROL_KINE_PKINE5_type = { (char*)0, (char*)0,
11173 (char*)0, (char*)0, 0 };
11174static 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 };
11177static KmParReal _GEANT_CONTROL_KINE_PKINE6_type = { (char*)0, (char*)0,
11178 (char*)0, (char*)0, 0 };
11179static 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 };
11182static KmParReal _GEANT_CONTROL_KINE_PKINE7_type = { (char*)0, (char*)0,
11183 (char*)0, (char*)0, 0 };
11184static 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 };
11187static KmParReal _GEANT_CONTROL_KINE_PKINE8_type = { (char*)0, (char*)0,
11188 (char*)0, (char*)0, 0 };
11189static 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 };
11192static KmParReal _GEANT_CONTROL_KINE_PKINE9_type = { (char*)0, (char*)0,
11193 (char*)0, (char*)0, 0 };
11194static 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 };
11197static KmParReal _GEANT_CONTROL_KINE_PKINE10_type = { (char*)0, (char*)0,
11198 (char*)0, (char*)0, 0 };
11199static 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 };
11202static 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 };
11209static char *_GEANT_CONTROL_KINE_guidance[] = {
11210 "Set the variables in /GCFLAG/ IKINE, PKINE(10)" };
11211static 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 };
11215
11216static char *_GEANT_CONTROL_guidance[] = { "Control commands." };
11217static KmMenu _GEANT_CONTROL = { (KmMenu*)0, (KmMenu*)0, "/GEANT/CONTROL",
11218 "CONTROL", 2, &_GEANT_CONTROL_KINE, 1, _GEANT_CONTROL_guidance };
11219
11220static KmMenu _GEANT = { (KmMenu*)0, &_GEANT_CONTROL, "/GEANT", "GEANT", 1,
11221 (KmCommand*)0, 0, (char**)0 };
11222
11223 klnkmenu( &_GEANT, 921023 );
11224}
11225
11226
11227#ifdef F77_LCASE
11228# define gkdz_ gkdz
11229# define gxdz_ gxdz
11230#endif
11231
11232#ifdef F77_UCASE
11233# define gkdz_ GKDZ
11234# define gxdz_ GXDZ
11235#endif
11236
11237#ifdef IBM370
11238# pragma linkage(GKDZ,FORTRAN)
11239# pragma linkage(GXDZ,FORTRAN)
11240#endif
11241
11242extern void gkdz_();
11243extern void gxdz_();
11244
11245void gkdz_()
11246{
11247
11248static 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 };
11251static KmParameter *_GEANT_DZ_DIRZ_parameters[] = { &_GEANT_DZ_DIRZ_PATH };
11252static char *_GEANT_DZ_DIRZ_guidance[] = {
11253 "Facility to display RZ directory trees.",
11254 " CALL DZDIRZ(0,LDUMMY,0,path,'N',1,0,1)" };
11255static 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 };
11259
11260static 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 };
11263static 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,
11265 (void*)0 };
11266static KmParInt _GEANT_DZ_DISP_NUMBER_type = { (char*)0, (char*)0,
11267 (char*)0, (char*)0, 0 };
11268static 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 };
11271static KmParameter *_GEANT_DZ_DISP_parameters[] = { &_GEANT_DZ_DISP_BANK,
11272 &_GEANT_DZ_DISP_PATH, &_GEANT_DZ_DISP_NUMBER };
11273static char *_GEANT_DZ_DISP_guidance[] = { "Interactive bank display tool.",
11274 " CALL DZDISP(IXSTOR,LBANK,path,'N',1,0,1,IWTYPE)" };
11275static 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 };
11279
11280static KmParInt _GEANT_DZ_DDIV_IDIV_type = { (char*)0, (char*)0, (char*)0,
11281 (char*)0, 0 };
11282static 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 };
11285static 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,
11287 (void*)0 };
11288static KmParameter *_GEANT_DZ_DDIV_parameters[] = { &_GEANT_DZ_DDIV_IDIV,
11289 &_GEANT_DZ_DDIV_PATH };
11290static 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)" };
11293static 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 };
11297
11298static KmParInt _GEANT_DZ_STORE_IXSTOR_type = { "0", "24", "0", "24", 0 };
11299static 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 };
11302static KmParameter *_GEANT_DZ_STORE_parameters[] = { &_GEANT_DZ_STORE_IXSTOR };
11303static 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",
11307 "question." };
11308static 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 };
11312
11313static KmParInt _GEANT_DZ_VERIFY_IDIV_type = { "0", "24", "0", "24", 0 };
11314static 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 };
11317static KmParOption _GEANT_DZ_VERIFY_CHOPT_type = { (char**)0, (int*)0, (int*)0
11318 };
11319static 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 };
11322static KmParameter *_GEANT_DZ_VERIFY_parameters[] = { &_GEANT_DZ_VERIFY_IDIV,
11323 &_GEANT_DZ_VERIFY_CHOPT };
11324static 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" };
11332static 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 };
11336
11337static KmParInt _GEANT_DZ_SNAP_IDIV_type = { "0", "24", "0", "24", 0 };
11338static 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 };
11341static KmParOption _GEANT_DZ_SNAP_CHOPT_type = { (char**)0, (int*)0, (int*)0 };
11342static 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 };
11345static KmParameter *_GEANT_DZ_SNAP_parameters[] = { &_GEANT_DZ_SNAP_IDIV,
11346 &_GEANT_DZ_SNAP_CHOPT };
11347static 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." };
11359static 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 };
11363
11364static 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,
11366 (void*)0 };
11367static KmParInt _GEANT_DZ_SHOW_NUMBER_type = { (char*)0, (char*)0,
11368 (char*)0, (char*)0, 0 };
11369static 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 };
11372static KmParOption _GEANT_DZ_SHOW_CHOPT_type = { (char**)0, (int*)0, (int*)0 };
11373static 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 };
11376static KmParameter *_GEANT_DZ_SHOW_parameters[] = { &_GEANT_DZ_SHOW_NAME,
11377 &_GEANT_DZ_SHOW_NUMBER, &_GEANT_DZ_SHOW_CHOPT };
11378static 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" };
11390static 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 };
11394
11395static 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,
11397 (void*)0 };
11398static KmParInt _GEANT_DZ_SURV_NUMBER_type = { (char*)0, (char*)0,
11399 (char*)0, (char*)0, 0 };
11400static 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 };
11403static KmParameter *_GEANT_DZ_SURV_parameters[] = { &_GEANT_DZ_SURV_NAME,
11404 &_GEANT_DZ_SURV_NUMBER };
11405static char *_GEANT_DZ_SURV_guidance[] = {
11406 "Print a survey of the structure identified by NAME, NUMBER." };
11407static 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 };
11411
11412static KmMenu _GEANT_DZ = { (KmMenu*)0, (KmMenu*)0, "/GEANT/DZ", "DZ", 2,
11413 &_GEANT_DZ_SURV, 0, (char**)0 };
11414
11415static KmMenu _GEANT = { (KmMenu*)0, &_GEANT_DZ, "/GEANT", "GEANT", 1,
11416 (KmCommand*)0, 0, (char**)0 };
11417
11418 klnkmenu( &_GEANT, 921023 );
11419}
11420
11421
11422#ifdef F77_LCASE
11423# define gkfz_ gkfz
11424# define gxfz_ gxfz
11425#endif
11426
11427#ifdef F77_UCASE
11428# define gkfz_ GKFZ
11429# define gxfz_ GXFZ
11430#endif
11431
11432#ifdef IBM370
11433# pragma linkage(GKFZ,FORTRAN)
11434# pragma linkage(GXFZ,FORTRAN)
11435#endif
11436
11437extern void gkfz_();
11438extern void gxfz_();
11439
11440void gkfz_()
11441{
11442
11443static KmParInt _GEANT_FZ_FZCLOSE_LUN_type = { (char*)0, (char*)0,
11444 (char*)0, (char*)0, 0 };
11445static 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 };
11448static KmParameter *_GEANT_FZ_FZCLOSE_parameters[] = { &_GEANT_FZ_FZCLOSE_LUN
11449 };
11450static char *_GEANT_FZ_FZCLOSE_guidance[] = { "Equivalent to a call to:",
11451 " CALL GCLOSE(LUN,IER)" };
11452static 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 };
11456
11457static KmParInt _GEANT_FZ_FZOUT_LUN_type = { (char*)0, (char*)0, (char*)0,
11458 (char*)0, 0 };
11459static 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 };
11462static 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 };
11465static KmParInt _GEANT_FZ_FZOUT_IDENT_type = { (char*)0, (char*)0,
11466 (char*)0, (char*)0, 0 };
11467static 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 };
11470static KmParameter *_GEANT_FZ_FZOUT_parameters[] = { &_GEANT_FZ_FZOUT_LUN,
11471 &_GEANT_FZ_FZOUT_KEYSU, &_GEANT_FZ_FZOUT_IDENT };
11472static char *_GEANT_FZ_FZOUT_guidance[] = { "Equivalent to a call to:",
11473 " CALL GFOUT(LUN,KEYSU,1,IDENT,' ',IER)" };
11474static 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 };
11478
11479static KmParInt _GEANT_FZ_FZOPEN_LUN_type = { (char*)0, (char*)0, (char*)0,
11480 (char*)0, 0 };
11481static 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
11484 };
11485static 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 };
11488static 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 };
11491static KmParInt _GEANT_FZ_FZOPEN_LEN_type = { (char*)0, (char*)0, (char*)0,
11492 (char*)0, 0 };
11493static 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 };
11496static KmParOption _GEANT_FZ_FZOPEN_CHOPT_type = { (char**)0, (int*)0, (int*)0
11497 };
11498static 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 };
11501static 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 };
11504static 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." };
11509static 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 };
11513
11514static KmParInt _GEANT_FZ_FZIN_LUN_type = { (char*)0, (char*)0, (char*)0,
11515 (char*)0, 0 };
11516static 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 };
11519static 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 };
11522static KmParInt _GEANT_FZ_FZIN_IDENT_type = { (char*)0, (char*)0, (char*)0,
11523 (char*)0, 0 };
11524static 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
11527 };
11528static KmParameter *_GEANT_FZ_FZIN_parameters[] = { &_GEANT_FZ_FZIN_LUN,
11529 &_GEANT_FZ_FZIN_KEYSU, &_GEANT_FZ_FZIN_IDENT };
11530static char *_GEANT_FZ_FZIN_guidance[] = { "Equivalent to a call to:",
11531 " CALL GFIN(LUN,KEYSU,1,IDENT,' ',IER)" };
11532static 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 };
11536
11537static char *_GEANT_FZ_guidance[] = { "ZEBRA/FZ commands" };
11538static KmMenu _GEANT_FZ = { (KmMenu*)0, (KmMenu*)0, "/GEANT/FZ", "FZ", 2,
11539 &_GEANT_FZ_FZIN, 1, _GEANT_FZ_guidance };
11540
11541static KmMenu _GEANT = { (KmMenu*)0, &_GEANT_FZ, "/GEANT", "GEANT", 1,
11542 (KmCommand*)0, 0, (char**)0 };
11543
11544 klnkmenu( &_GEANT, 921023 );
11545}
11546
11547
11548#ifdef F77_LCASE
11549# define gkrz_ gkrz
11550# define gxrz_ gxrz
11551#endif
11552
11553#ifdef F77_UCASE
11554# define gkrz_ GKRZ
11555# define gxrz_ GXRZ
11556#endif
11557
11558#ifdef IBM370
11559# pragma linkage(GKRZ,FORTRAN)
11560# pragma linkage(GXRZ,FORTRAN)
11561#endif
11562
11563extern void gkrz_();
11564extern void gxrz_();
11565
11566void gkrz_()
11567{
11568
11569static 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 };
11572static KmParameter *_GEANT_RZ_FREE_parameters[] = { &_GEANT_RZ_FREE_CHDIR };
11573static char *_GEANT_RZ_FREE_guidance[] = { "Free an RZ directory." };
11574static 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 };
11578
11579static 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 };
11582static KmParameter *_GEANT_RZ_LOCK_parameters[] = { &_GEANT_RZ_LOCK_CHDIR };
11583static char *_GEANT_RZ_LOCK_guidance[] = { "Lock an RZ directory." };
11584static 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 };
11588
11589static 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 };
11592static KmParInt _GEANT_RZ_SCR_IDVERS_type = { (char*)0, (char*)0, (char*)0,
11593 (char*)0, 0 };
11594static 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 };
11597static KmParameter *_GEANT_RZ_SCR_parameters[] = { &_GEANT_RZ_SCR_OBJECT,
11598 &_GEANT_RZ_SCR_IDVERS };
11599static 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." };
11603static 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 };
11606
11607static KmParInt _GEANT_RZ_PURGE_NKEEP_type = { (char*)0, (char*)0,
11608 (char*)0, (char*)0, 0 };
11609static 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 };
11612static KmParameter *_GEANT_RZ_PURGE_parameters[] = { &_GEANT_RZ_PURGE_NKEEP };
11613static char *_GEANT_RZ_PURGE_guidance[] = { "Purge an RZ directory." };
11614static 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 };
11618
11619static KmParameter _GEANT_RZ_LDIR_CHPATH = { "CHPATH", 6, "Path name", " ",
11620 (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
11621 (void*)0 };
11622static KmParOption _GEANT_RZ_LDIR_CHOPT_type = { (char**)0, (int*)0, (int*)0 };
11623static 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 };
11626static KmParameter *_GEANT_RZ_LDIR_parameters[] = { &_GEANT_RZ_LDIR_CHPATH,
11627 &_GEANT_RZ_LDIR_CHOPT };
11628static 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 //'." };
11631static 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 };
11635
11636static 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 };
11639static KmParInt _GEANT_RZ_OUT_IDVERS_type = { (char*)0, (char*)0, (char*)0,
11640 (char*)0, 0 };
11641static 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 };
11644static KmParOption _GEANT_RZ_OUT_CHOPT_type = { (char**)0, (int*)0, (int*)0 };
11645static 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 };
11648static KmParameter *_GEANT_RZ_OUT_parameters[] = { &_GEANT_RZ_OUT_OBJECT,
11649 &_GEANT_RZ_OUT_IDVERS, &_GEANT_RZ_OUT_CHOPT };
11650static 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" };
11656static 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 };
11659
11660static 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 };
11663static KmParInt _GEANT_RZ_IN_IDVERS_type = { (char*)0, (char*)0, (char*)0,
11664 (char*)0, 0 };
11665static 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 };
11668static KmParOption _GEANT_RZ_IN_CHOPT_type = { (char**)0, (int*)0, (int*)0 };
11669static 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 };
11672static KmParameter *_GEANT_RZ_IN_parameters[] = { &_GEANT_RZ_IN_OBJECT,
11673 &_GEANT_RZ_IN_IDVERS, &_GEANT_RZ_IN_CHOPT };
11674static 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" };
11680static 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 };
11683
11684static KmParameter _GEANT_RZ_CDIR_CHPATH = { "CHPATH", 6, "Path name", " ",
11685 (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
11686 (void*)0 };
11687static KmParOption _GEANT_RZ_CDIR_CHOPT_type = { (char**)0, (int*)0, (int*)0 };
11688static 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 };
11691static KmParameter *_GEANT_RZ_CDIR_parameters[] = { &_GEANT_RZ_CDIR_CHPATH,
11692 &_GEANT_RZ_CDIR_CHOPT };
11693static 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" };
11698static 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 };
11702
11703static 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 };
11706static KmParOption _GEANT_RZ_MDIR_CHOPT_type = { (char**)0, (int*)0, (int*)0 };
11707static 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 };
11710static KmParameter *_GEANT_RZ_MDIR_parameters[] = { &_GEANT_RZ_MDIR_CHDIR,
11711 &_GEANT_RZ_MDIR_CHOPT };
11712static 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 '" };
11715static 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 };
11719
11720static KmParInt _GEANT_RZ_REND_LUNRZ_type = { (char*)0, (char*)0, (char*)0,
11721 (char*)0, 0 };
11722static 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 };
11725static KmParameter *_GEANT_RZ_REND_parameters[] = { &_GEANT_RZ_REND_LUNRZ };
11726static char *_GEANT_RZ_REND_guidance[] = {
11727 "Close an RZ file opened by GRFILE on logical unit LUNRZ.",
11728 " CALL GREND(LUNRZ)" };
11729static 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 };
11733
11734static KmParInt _GEANT_RZ_FILE_LUN_type = { (char*)0, (char*)0, (char*)0,
11735 (char*)0, 0 };
11736static 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 };
11739static 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,
11741 (void*)0 };
11742static char *_GEANT_RZ_FILE_CHOPT_range[] = { " ", "A", "N", "U" };
11743static char *_GEANT_RZ_FILE_CHOPT_text[] = { (char*)0, (char*)0, (char*)0,
11744 (char*)0 };
11745static KmParOption _GEANT_RZ_FILE_CHOPT_type = { _GEANT_RZ_FILE_CHOPT_text,
11746 (int*)0, (int*)0 };
11747static 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 };
11750static KmParameter *_GEANT_RZ_FILE_parameters[] = { &_GEANT_RZ_FILE_LUN,
11751 &_GEANT_RZ_FILE_FNAME, &_GEANT_RZ_FILE_CHOPT };
11752static 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" };
11757static 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 };
11761
11762static KmParInt _GEANT_RZ_PQUEST_IQ1_type = { (char*)0, (char*)0, (char*)0,
11763 (char*)0, 0 };
11764static 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 };
11767static KmParInt _GEANT_RZ_PQUEST_IQ2_type = { (char*)0, (char*)0, (char*)0,
11768 (char*)0, 0 };
11769static 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 };
11772static KmParameter *_GEANT_RZ_PQUEST_parameters[] = { &_GEANT_RZ_PQUEST_IQ1,
11773 &_GEANT_RZ_PQUEST_IQ2 };
11774static char *_GEANT_RZ_PQUEST_guidance[] = {
11775 "Print the array IQUEST in /QUEST/." };
11776static 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 };
11780
11781static char *_GEANT_RZ_guidance[] = { "ZEBRA/RZ commands." };
11782static KmMenu _GEANT_RZ = { (KmMenu*)0, (KmMenu*)0, "/GEANT/RZ", "RZ", 2,
11783 &_GEANT_RZ_PQUEST, 1, _GEANT_RZ_guidance };
11784
11785static KmMenu _GEANT = { (KmMenu*)0, &_GEANT_RZ, "/GEANT", "GEANT", 1,
11786 (KmCommand*)0, 0, (char**)0 };
11787
11788 klnkmenu( &_GEANT, 921023 );
11789}
11790
11791
11792#ifdef F77_LCASE
11793# define gkscan_ gkscan
11794# define gxscan_ gxscan
11795#endif
11796
11797#ifdef F77_UCASE
11798# define gkscan_ GKSCAN
11799# define gxscan_ GXSCAN
11800#endif
11801
11802#ifdef IBM370
11803# pragma linkage(GKSCAN,FORTRAN)
11804# pragma linkage(GXSCAN,FORTRAN)
11805#endif
11806
11807extern void gkscan_();
11808extern void gxscan_();
11809
11810void gkscan_()
11811{
11812
11813static KmParInt _GEANT_SCAN_HSCAN_IDPHI_type = { (char*)0, (char*)0,
11814 (char*)0, (char*)0, 0 };
11815static 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 };
11818static KmParameter _GEANT_SCAN_HSCAN_VOLUME = { "VOLUME", 6, "Volume name",
11819 "XXXX", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
11820 (void*)0 };
11821static char *_GEANT_SCAN_HSCAN_CHOPT_range[] = { " ", "O", "P", "I", "X", "L"
11822 };
11823static char *_GEANT_SCAN_HSCAN_CHOPT_text[] = { (char*)0, (char*)0, (char*)0,
11824 (char*)0, (char*)0, (char*)0 };
11825static KmParOption _GEANT_SCAN_HSCAN_CHOPT_type = {
11826 _GEANT_SCAN_HSCAN_CHOPT_text, (int*)0, (int*)0 };
11827static 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 };
11831static KmParameter *_GEANT_SCAN_HSCAN_parameters[] = {
11832 &_GEANT_SCAN_HSCAN_IDPHI, &_GEANT_SCAN_HSCAN_VOLUME, &_GEANT_SCAN_HSCAN_CHOPT
11833 };
11834static 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." };
11846static 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 };
11850
11851static KmParInt _GEANT_SCAN_LSCAN_ID_type = { (char*)0, (char*)0, (char*)0,
11852 (char*)0, 0 };
11853static 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 };
11856static KmParameter _GEANT_SCAN_LSCAN_VOLUME = { "VOLUME", 6, "Volume name",
11857 "XXXX", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
11858 (void*)0 };
11859static char *_GEANT_SCAN_LSCAN_CHOPT_range[] = { " ", "O", "P", "I", "X", "L"
11860 };
11861static char *_GEANT_SCAN_LSCAN_CHOPT_text[] = { (char*)0, (char*)0, (char*)0,
11862 (char*)0, (char*)0, (char*)0 };
11863static KmParOption _GEANT_SCAN_LSCAN_CHOPT_type = {
11864 _GEANT_SCAN_LSCAN_CHOPT_text, (int*)0, (int*)0 };
11865static 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 };
11869static KmParameter *_GEANT_SCAN_LSCAN_parameters[] = { &_GEANT_SCAN_LSCAN_ID,
11870 &_GEANT_SCAN_LSCAN_VOLUME, &_GEANT_SCAN_LSCAN_CHOPT };
11871static 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." };
11879static 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 };
11883
11884static KmParInt _GEANT_SCAN_PCUTS_IPARAM_type = { "0", "1", "0", "1", 0 };
11885static 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 };
11888static KmParReal _GEANT_SCAN_PCUTS_PCUTGA_type = { (char*)0, (char*)0,
11889 (char*)0, (char*)0, 0 };
11890static 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 };
11893static KmParReal _GEANT_SCAN_PCUTS_PCUTEL_type = { (char*)0, (char*)0,
11894 (char*)0, (char*)0, 0 };
11895static 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 };
11898static KmParReal _GEANT_SCAN_PCUTS_PCUTHA_type = { (char*)0, (char*)0,
11899 (char*)0, (char*)0, 0 };
11900static 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 };
11904static KmParReal _GEANT_SCAN_PCUTS_PCUTNE_type = { (char*)0, (char*)0,
11905 (char*)0, (char*)0, 0 };
11906static 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 };
11910static KmParReal _GEANT_SCAN_PCUTS_PCUTMU_type = { (char*)0, (char*)0,
11911 (char*)0, (char*)0, 0 };
11912static 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 };
11915static 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 };
11919static 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." };
11926static 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 };
11930
11931static char *_GEANT_SCAN_STURN_CHOPT_range[] = { "ON", "OFF", "INIT" };
11932static char *_GEANT_SCAN_STURN_CHOPT_text[] = { (char*)0, (char*)0, (char*)0 };
11933static KmParOption _GEANT_SCAN_STURN_CHOPT_type = {
11934 _GEANT_SCAN_STURN_CHOPT_text, (int*)0, (int*)0 };
11935static 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 };
11939static KmParameter *_GEANT_SCAN_STURN_parameters[] = {
11940 &_GEANT_SCAN_STURN_CHOPT };
11941static 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." };
11948static 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 };
11952
11953static KmParReal _GEANT_SCAN_SFACTORS_FACTX0_type = { (char*)0, (char*)0,
11954 (char*)0, (char*)0, 0 };
11955static 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 };
11958static KmParReal _GEANT_SCAN_SFACTORS_FACTL_type = { (char*)0, (char*)0,
11959 (char*)0, (char*)0, 0 };
11960static 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 };
11963static KmParReal _GEANT_SCAN_SFACTORS_FACTR_type = { (char*)0, (char*)0,
11964 (char*)0, (char*)0, 0 };
11965static 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 };
11968static KmParameter *_GEANT_SCAN_SFACTORS_parameters[] = {
11969 &_GEANT_SCAN_SFACTORS_FACTX0, &_GEANT_SCAN_SFACTORS_FACTL,
11970 &_GEANT_SCAN_SFACTORS_FACTR };
11971static 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)" };
11975static 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,
11979 (int*)0 };
11980
11981static KmParReal _GEANT_SCAN_VERTEX_VX_type = { (char*)0, (char*)0,
11982 (char*)0, (char*)0, 0 };
11983static 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 };
11986static KmParReal _GEANT_SCAN_VERTEX_VY_type = { (char*)0, (char*)0,
11987 (char*)0, (char*)0, 0 };
11988static 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 };
11991static KmParReal _GEANT_SCAN_VERTEX_VZ_type = { (char*)0, (char*)0,
11992 (char*)0, (char*)0, 0 };
11993static 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 };
11996static KmParameter *_GEANT_SCAN_VERTEX_parameters[] = {
11997 &_GEANT_SCAN_VERTEX_VX, &_GEANT_SCAN_VERTEX_VY, &_GEANT_SCAN_VERTEX_VZ };
11998static char *_GEANT_SCAN_VERTEX_guidance[] = {
11999 "All Geantinos tracked will start from position VX,VY,VZ." };
12000static 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 };
12004
12005static 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 };
12008static KmParameter *_GEANT_SCAN_SLIST_parameters[] = { &_GEANT_SCAN_SLIST_LIST
12009 };
12010static 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." };
12015static 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 };
12019
12020static KmParInt _GEANT_SCAN_TETA_NTETA_type = { (char*)0, (char*)0,
12021 (char*)0, (char*)0, 0 };
12022static 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 };
12025static KmParReal _GEANT_SCAN_TETA_TETMIN_type = { (char*)0, (char*)0,
12026 (char*)0, (char*)0, 0 };
12027static 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 };
12030static KmParReal _GEANT_SCAN_TETA_TETMAX_type = { (char*)0, (char*)0,
12031 (char*)0, (char*)0, 0 };
12032static 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 };
12035static KmParInt _GEANT_SCAN_TETA_DIVTYP_type = { "1", "3", "1", "3", 0 };
12036static 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 };
12039static KmParameter *_GEANT_SCAN_TETA_parameters[] = { &_GEANT_SCAN_TETA_NTETA,
12040 &_GEANT_SCAN_TETA_TETMIN, &_GEANT_SCAN_TETA_TETMAX, &_GEANT_SCAN_TETA_DIVTYP
12041 };
12042static 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." };
12049static 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 };
12053
12054static KmParInt _GEANT_SCAN_PHI_NPHI_type = { (char*)0, (char*)0, (char*)0,
12055 (char*)0, 0 };
12056static 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 };
12059static KmParReal _GEANT_SCAN_PHI_PHIMIN_type = { "0.", "360.", "0.", "360.",
12060 0 };
12061static 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 };
12064static KmParReal _GEANT_SCAN_PHI_PHIMAX_type = { "0.", "360.", "0.", "360.",
12065 0 };
12066static 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 };
12069static KmParameter *_GEANT_SCAN_PHI_parameters[] = { &_GEANT_SCAN_PHI_NPHI,
12070 &_GEANT_SCAN_PHI_PHIMIN, &_GEANT_SCAN_PHI_PHIMAX };
12071static 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." };
12074static 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 };
12078
12079static 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." };
12089static KmMenu _GEANT_SCAN = { (KmMenu*)0, (KmMenu*)0, "/GEANT/SCAN", "SCAN",
12090 2, &_GEANT_SCAN_PHI, 9, _GEANT_SCAN_guidance };
12091
12092static KmMenu _GEANT = { (KmMenu*)0, &_GEANT_SCAN, "/GEANT", "GEANT", 1,
12093 (KmCommand*)0, 0, (char**)0 };
12094
12095 klnkmenu( &_GEANT, 921023 );
12096}
12097
12098
12099#ifdef F77_LCASE
12100# define gkphys_ gkphys
12101# define gxphys_ gxphys
12102#endif
12103
12104#ifdef F77_UCASE
12105# define gkphys_ GKPHYS
12106# define gxphys_ GXPHYS
12107#endif
12108
12109#ifdef IBM370
12110# pragma linkage(GKPHYS,FORTRAN)
12111# pragma linkage(GXPHYS,FORTRAN)
12112#endif
12113
12114extern void gkphys_();
12115extern void gxphys_();
12116
12117void gkphys_()
12118{
12119
12120static 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." };
12124static 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 };
12128
12129static KmParInt _GEANT_PHYSICS_DRPRT_IPART_type = { (char*)0, (char*)0,
12130 (char*)0, (char*)0, 0 };
12131static 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 };
12134static KmParInt _GEANT_PHYSICS_DRPRT_IMATE_type = { (char*)0, (char*)0,
12135 (char*)0, (char*)0, 0 };
12136static 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 };
12139static KmParReal _GEANT_PHYSICS_DRPRT_STEP_type = { (char*)0, (char*)0,
12140 (char*)0, (char*)0, 0 };
12141static 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 };
12144static KmParInt _GEANT_PHYSICS_DRPRT_NPOINT_type = { "2", "100", "2",
12145 "100", 0 };
12146static 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 };
12150static KmParameter *_GEANT_PHYSICS_DRPRT_parameters[] = {
12151 &_GEANT_PHYSICS_DRPRT_IPART, &_GEANT_PHYSICS_DRPRT_IMATE,
12152 &_GEANT_PHYSICS_DRPRT_STEP, &_GEANT_PHYSICS_DRPRT_NPOINT };
12153static char *_GEANT_PHYSICS_DRPRT_guidance[] = {
12154 "This routine prints the relevant parameters linked with the energy loss",
12155 "fluctuation." };
12156static 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 };
12160
12161static KmParReal _GEANT_PHYSICS_CUTS_CUTGAM_type = { (char*)0, (char*)0,
12162 (char*)0, (char*)0, 0 };
12163static 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 };
12166static KmParReal _GEANT_PHYSICS_CUTS_CUTELE_type = { (char*)0, (char*)0,
12167 (char*)0, (char*)0, 0 };
12168static 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 };
12171static KmParReal _GEANT_PHYSICS_CUTS_CUTHAD_type = { (char*)0, (char*)0,
12172 (char*)0, (char*)0, 0 };
12173static 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 };
12176static KmParReal _GEANT_PHYSICS_CUTS_CUTNEU_type = { (char*)0, (char*)0,
12177 (char*)0, (char*)0, 0 };
12178static 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 };
12181static KmParReal _GEANT_PHYSICS_CUTS_CUTMUO_type = { (char*)0, (char*)0,
12182 (char*)0, (char*)0, 0 };
12183static 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 };
12186static KmParReal _GEANT_PHYSICS_CUTS_BCUTE_type = { (char*)0, (char*)0,
12187 (char*)0, (char*)0, 0 };
12188static 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 };
12191static KmParReal _GEANT_PHYSICS_CUTS_BCUTM_type = { (char*)0, (char*)0,
12192 (char*)0, (char*)0, 0 };
12193static 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 };
12196static KmParReal _GEANT_PHYSICS_CUTS_DCUTE_type = { (char*)0, (char*)0,
12197 (char*)0, (char*)0, 0 };
12198static 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 };
12201static KmParReal _GEANT_PHYSICS_CUTS_DCUTM_type = { (char*)0, (char*)0,
12202 (char*)0, (char*)0, 0 };
12203static 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 };
12206static KmParReal _GEANT_PHYSICS_CUTS_PPCUTM_type = { (char*)0, (char*)0,
12207 (char*)0, (char*)0, 0 };
12208static 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 };
12211static KmParReal _GEANT_PHYSICS_CUTS_TOFMAX_type = { (char*)0, (char*)0,
12212 (char*)0, (char*)0, 0 };
12213static 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 };
12216static KmParReal _GEANT_PHYSICS_CUTS_GCUTS_type = { (char*)0, (char*)0,
12217 (char*)0, (char*)0, 0 };
12218static 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 };
12221static 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 };
12228static 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'." };
12236static 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 };
12240
12241static char *_GEANT_PHYSICS_SYNC_ISYNC_range[] = { "0", "1" };
12242static KmParInt _GEANT_PHYSICS_SYNC_ISYNC_type = { (char*)0, (char*)0,
12243 (char*)0, (char*)0, 0 };
12244static 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 };
12248static KmParameter *_GEANT_PHYSICS_SYNC_parameters[] = {
12249 &_GEANT_PHYSICS_SYNC_ISYNC };
12250static char *_GEANT_PHYSICS_SYNC_guidance[] = {
12251 "To control synchrotron radiation:", " ISYNC=0 no synchrotron radiation;",
12252 " =1 synchrotron radiation." };
12253static 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 };
12257
12258static char *_GEANT_PHYSICS_STRA_ISTRA_range[] = { "0", "1", "2" };
12259static KmParInt _GEANT_PHYSICS_STRA_ISTRA_type = { (char*)0, (char*)0,
12260 (char*)0, (char*)0, 0 };
12261static 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 };
12265static KmParameter *_GEANT_PHYSICS_STRA_parameters[] = {
12266 &_GEANT_PHYSICS_STRA_ISTRA };
12267static 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)."
12270 };
12271static 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 };
12275
12276static char *_GEANT_PHYSICS_RAYL_IRAYL_range[] = { "0", "1" };
12277static KmParInt _GEANT_PHYSICS_RAYL_IRAYL_type = { (char*)0, (char*)0,
12278 (char*)0, (char*)0, 0 };
12279static 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 };
12283static KmParameter *_GEANT_PHYSICS_RAYL_parameters[] = {
12284 &_GEANT_PHYSICS_RAYL_IRAYL };
12285static char *_GEANT_PHYSICS_RAYL_guidance[] = {
12286 "To control Rayleigh scattering.", " IRAYL=0 no Rayleigh scattering.",
12287 " =1 Rayleigh." };
12288static 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 };
12292
12293static char *_GEANT_PHYSICS_PHOT_IPHOT_range[] = { "0", "1", "2" };
12294static KmParInt _GEANT_PHYSICS_PHOT_IPHOT_type = { (char*)0, (char*)0,
12295 (char*)0, (char*)0, 0 };
12296static 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 };
12300static KmParameter *_GEANT_PHYSICS_PHOT_parameters[] = {
12301 &_GEANT_PHYSICS_PHOT_IPHOT };
12302static 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." };
12306static 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 };
12310
12311static char *_GEANT_PHYSICS_PFIS_IPFIS_range[] = { "0", "1", "2" };
12312static KmParInt _GEANT_PHYSICS_PFIS_IPFIS_type = { (char*)0, (char*)0,
12313 (char*)0, (char*)0, 0 };
12314static 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 };
12318static KmParameter *_GEANT_PHYSICS_PFIS_parameters[] = {
12319 &_GEANT_PHYSICS_PFIS_IPFIS };
12320static 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." };
12324static 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 };
12328
12329static char *_GEANT_PHYSICS_PAIR_IPAIR_range[] = { "0", "1", "2" };
12330static KmParInt _GEANT_PHYSICS_PAIR_IPAIR_type = { (char*)0, (char*)0,
12331 (char*)0, (char*)0, 0 };
12332static 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 };
12336static KmParameter *_GEANT_PHYSICS_PAIR_parameters[] = {
12337 &_GEANT_PHYSICS_PAIR_IPAIR };
12338static 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." };
12342static 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 };
12346
12347static char *_GEANT_PHYSICS_MUNU_IMUNU_range[] = { "0", "1", "2" };
12348static KmParInt _GEANT_PHYSICS_MUNU_IMUNU_type = { (char*)0, (char*)0,
12349 (char*)0, (char*)0, 0 };
12350static 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 };
12354static KmParameter *_GEANT_PHYSICS_MUNU_parameters[] = {
12355 &_GEANT_PHYSICS_MUNU_IMUNU };
12356static 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." };
12361static 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 };
12365
12366static char *_GEANT_PHYSICS_MULS_IMULS_range[] = { "0", "1", "2", "3" };
12367static KmParInt _GEANT_PHYSICS_MULS_IMULS_type = { (char*)0, (char*)0,
12368 (char*)0, (char*)0, 0 };
12369static 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 };
12373static KmParameter *_GEANT_PHYSICS_MULS_parameters[] = {
12374 &_GEANT_PHYSICS_MULS_IMULS };
12375static 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." };
12379static 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 };
12383
12384static char *_GEANT_PHYSICS_LOSS_ILOSS_range[] = { "0", "1", "2", "3", "4" };
12385static KmParInt _GEANT_PHYSICS_LOSS_ILOSS_type = { (char*)0, (char*)0,
12386 (char*)0, (char*)0, 0 };
12387static 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 };
12391static KmParameter *_GEANT_PHYSICS_LOSS_parameters[] = {
12392 &_GEANT_PHYSICS_LOSS_ILOSS };
12393static 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'." };
12399static 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 };
12403
12404static KmParInt _GEANT_PHYSICS_LABS_LABS_type = { (char*)0, (char*)0,
12405 (char*)0, (char*)0, 0 };
12406static 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 };
12409static KmParameter *_GEANT_PHYSICS_LABS_parameters[] = {
12410 &_GEANT_PHYSICS_LABS_LABS };
12411static char *_GEANT_PHYSICS_LABS_guidance[] = {
12412 "To control absorbtion of Cerenkov photons:",
12413 " LABS=0 no absorbtion of photons;", " LABS=1 absorbtion of photons;" };
12414static 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 };
12418
12419static KmParInt _GEANT_PHYSICS_HADR_IHADR_type = { (char*)0, (char*)0,
12420 (char*)0, (char*)0, 0 };
12421static 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 };
12424static KmParameter *_GEANT_PHYSICS_HADR_parameters[] = {
12425 &_GEANT_PHYSICS_HADR_IHADR };
12426static 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." };
12430static 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 };
12434
12435static KmParReal _GEANT_PHYSICS_ERAN_EKMIN_type = { (char*)0, (char*)0,
12436 (char*)0, (char*)0, 0 };
12437static 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 };
12440static KmParReal _GEANT_PHYSICS_ERAN_EKMAX_type = { (char*)0, (char*)0,
12441 (char*)0, (char*)0, 0 };
12442static 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 };
12445static KmParInt _GEANT_PHYSICS_ERAN_NEKBIN_type = { "1", "200", "1", "200",
12446 0 };
12447static 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 };
12450static KmParameter *_GEANT_PHYSICS_ERAN_parameters[] = {
12451 &_GEANT_PHYSICS_ERAN_EKMIN, &_GEANT_PHYSICS_ERAN_EKMAX,
12452 &_GEANT_PHYSICS_ERAN_NEKBIN };
12453static char *_GEANT_PHYSICS_ERAN_guidance[] = {
12454 "To define the range and binning of internal tables." };
12455static 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 };
12459
12460static char *_GEANT_PHYSICS_DRAY_IDRAY_range[] = { "0", "1", "2" };
12461static KmParInt _GEANT_PHYSICS_DRAY_IDRAY_type = { (char*)0, (char*)0,
12462 (char*)0, (char*)0, 0 };
12463static 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 };
12467static KmParameter *_GEANT_PHYSICS_DRAY_parameters[] = {
12468 &_GEANT_PHYSICS_DRAY_IDRAY };
12469static 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." };
12473static 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 };
12477
12478static char *_GEANT_PHYSICS_DCAY_IDCAY_range[] = { "0", "1", "2" };
12479static KmParInt _GEANT_PHYSICS_DCAY_IDCAY_type = { (char*)0, (char*)0,
12480 (char*)0, (char*)0, 0 };
12481static 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 };
12485static KmParameter *_GEANT_PHYSICS_DCAY_parameters[] = {
12486 &_GEANT_PHYSICS_DCAY_IDCAY };
12487static char *_GEANT_PHYSICS_DCAY_guidance[] = { "To control Decay mechanism.",
12488 " IDCAY=0 no decays.", " =1 Decays. secondaries processed.",
12489 " =2 Decays. No secondaries stored." };
12490static 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 };
12494
12495static char *_GEANT_PHYSICS_COMP_ICOMP_range[] = { "0", "1", "2" };
12496static KmParInt _GEANT_PHYSICS_COMP_ICOMP_type = { (char*)0, (char*)0,
12497 (char*)0, (char*)0, 0 };
12498static 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 };
12502static KmParameter *_GEANT_PHYSICS_COMP_parameters[] = {
12503 &_GEANT_PHYSICS_COMP_ICOMP };
12504static 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." };
12508static 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 };
12512
12513static char *_GEANT_PHYSICS_CKOV_ICKOV_range[] = { "0", "1", "2" };
12514static KmParInt _GEANT_PHYSICS_CKOV_ICKOV_type = { (char*)0, (char*)0,
12515 (char*)0, (char*)0, 0 };
12516static 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 };
12520static KmParameter *_GEANT_PHYSICS_CKOV_parameters[] = {
12521 &_GEANT_PHYSICS_CKOV_ICKOV };
12522static 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."
12525 };
12526static 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 };
12530
12531static char *_GEANT_PHYSICS_BREM_IBREM_range[] = { "0", "1", "2" };
12532static KmParInt _GEANT_PHYSICS_BREM_IBREM_type = { (char*)0, (char*)0,
12533 (char*)0, (char*)0, 0 };
12534static 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 };
12538static KmParameter *_GEANT_PHYSICS_BREM_parameters[] = {
12539 &_GEANT_PHYSICS_BREM_IBREM };
12540static char *_GEANT_PHYSICS_BREM_guidance[] = { "To control bremstrahlung.",
12541 " IBREM=0 no bremstrahlung", " =1 bremstrahlung. Photon processed.",
12542 " =2 bremstrahlung. No photon stored." };
12543static 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 };
12547
12548static char *_GEANT_PHYSICS_AUTO_IAUTO_range[] = { "0", "1" };
12549static KmParInt _GEANT_PHYSICS_AUTO_IAUTO_type = { (char*)0, (char*)0,
12550 (char*)0, (char*)0, 0 };
12551static 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 };
12555static KmParameter *_GEANT_PHYSICS_AUTO_parameters[] = {
12556 &_GEANT_PHYSICS_AUTO_IAUTO };
12557static char *_GEANT_PHYSICS_AUTO_guidance[] = {
12558 "To control automatic calculation of tracking medium parameters:",
12559 " IAUTO=0 no automatic calculation;", " =1 automati calculation." };
12560static 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 };
12564
12565static char *_GEANT_PHYSICS_ANNI_IANNI_range[] = { "0", "1", "2" };
12566static KmParInt _GEANT_PHYSICS_ANNI_IANNI_type = { (char*)0, (char*)0,
12567 (char*)0, (char*)0, 0 };
12568static 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 };
12572static KmParameter *_GEANT_PHYSICS_ANNI_parameters[] = {
12573 &_GEANT_PHYSICS_ANNI_IANNI };
12574static 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." };
12578static 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 };
12582
12583static char *_GEANT_PHYSICS_guidance[] = {
12584 "Commands to set physics parameters." };
12585static KmMenu _GEANT_PHYSICS = { (KmMenu*)0, (KmMenu*)0, "/GEANT/PHYSICS",
12586 "PHYSICS", 2, &_GEANT_PHYSICS_ANNI, 1, _GEANT_PHYSICS_guidance };
12587
12588static KmMenu _GEANT = { (KmMenu*)0, &_GEANT_PHYSICS, "/GEANT", "GEANT", 1,
12589 (KmCommand*)0, 0, (char**)0 };
12590
12591 klnkmenu( &_GEANT, 921023 );
12592}
12593
12594
12595#ifdef F77_LCASE
12596# define gkfort_ gkfort
12597# define gxfort_ gxfort
12598#endif
12599
12600#ifdef F77_UCASE
12601# define gkfort_ GKFORT
12602# define gxfort_ GXFORT
12603#endif
12604
12605#ifdef IBM370
12606# pragma linkage(GKFORT,FORTRAN)
12607# pragma linkage(GXFORT,FORTRAN)
12608#endif
12609
12610extern void gkfort_();
12611extern void gxfort_();
12612
12613void gkfort_()
12614{
12615
12616static 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 };
12619static KmParameter *_FORTRAN_FORTRAN_parameters[] = { &_FORTRAN_FORTRAN_FNAME
12620 };
12621static 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." };
12640static 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 };
12644
12645static KmMenu _FORTRAN = { (KmMenu*)0, (KmMenu*)0, "/FORTRAN", "FORTRAN", 1,
12646 &_FORTRAN_FORTRAN, 0, (char**)0 };
12647
12648 klnkmenu( &_FORTRAN, 921023 );
12649}
12650
12651#endif