00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #if !defined(CERNLIB_KUIP95A)
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #if !defined(F77_LCASE) && !defined(F77_UCASE) && !defined(F77_USCORE)
00027 # if defined(__EXTENDED__) && !defined(IBM370) && !defined(_IBMR2)
00028 # define IBM370
00029 # endif
00030 # if defined(CRAY) || defined(IBM370) || defined(vms)
00031 # define F77_UCASE
00032 # else
00033 # if ( defined(apollo) || defined(__apollo) ) && defined(APOFTN)
00034 # define F77_LCASE
00035 # else
00036 # define F77_USCORE
00037 # endif
00038 # endif
00039 #endif
00040
00041 typedef int IntFunc();
00042 typedef char* CharFunc();
00043 typedef char** pCharFunc();
00044 typedef void SUBROUTINE();
00045 #ifdef IBM370
00046 # pragma linkage(SUBROUTINE,FORTRAN)
00047 #endif
00048
00049 extern void klnkmenu();
00050 extern void klnkbrcl();
00051 extern void klnkkmcl();
00052 extern void klnkicon();
00053 extern void klnkbutt();
00054
00055 typedef unsigned long KmPixmap;
00056 typedef void *KmWidget;
00057 typedef void *KmCalldata;
00058
00059 typedef enum {
00060 BRACT_OPEN = 0,
00061 BRACT_ROOT = 1,
00062 BRACT_CONT = 2,
00063 BRACT_GRAF = 3
00064 } BrActTag;
00065
00066 typedef enum {
00067 BrActUpdate = 0x01,
00068 BrActSeparator = 0x02,
00069 BrActToggle = 0x04,
00070 BrActToggleOn = 0x08,
00071 BrActSensitive = 0x10
00072 } BrActFlag;
00073
00074
00075 typedef struct _BrAction {
00076 struct _BrAction *next;
00077 BrActFlag flags;
00078 char *text;
00079 char *user_text;
00080 char *accel;
00081 char *exec;
00082 SUBROUTINE *call_F;
00083 IntFunc *call_C;
00084 BrActTag tag;
00085 struct _BrClass *class;
00086 } BrAction;
00087
00088 typedef struct _BrClass {
00089 struct _BrClass *next;
00090 char *name;
00091 char *title;
00092 SUBROUTINE *scan_km_F;
00093 pCharFunc *scan_km_C;
00094 SUBROUTINE *scan_br_F;
00095 pCharFunc *scan_br_C;
00096 BrAction *root;
00097 BrAction *open;
00098 } BrClass;
00099
00100
00101 typedef struct _KmIcon {
00102 struct _KmIcon *next;
00103 char *name;
00104 int width;
00105 int height;
00106 char *bitmap;
00107 KmPixmap pix;
00108 KmPixmap hi_pix;
00109 } KmIcon;
00110
00111 typedef struct _KmClass {
00112 struct _KmClass *next;
00113 int is_dir;
00114 char *name;
00115 char *title;
00116 char *big_icon;
00117 KmIcon *bicon;
00118 char *sm_icon;
00119 KmIcon *sicon;
00120 SUBROUTINE *user_icon_F;
00121 IntFunc *user_icon_C;
00122 BrAction *cont;
00123 BrAction *graf;
00124 int obj_count;
00125 } KmClass;
00126
00127
00128 typedef enum {
00129 KmButtSensitive = 0x00,
00130 KmButtNonSensitive = 0x01,
00131 KmButtToggleSensitive = 0x02,
00132 KmButtSensitivityMask = 0x03,
00133 KmButtSeparator = 0x04,
00134 KmButtBrowser = 0x08
00135 } KmButtFlag;
00136
00137 typedef struct _KmButton {
00138 struct _KmButton *next;
00139 char *menu;
00140 char *label;
00141 SUBROUTINE *call_F;
00142 IntFunc *call_C;
00143 char *action;
00144 char *mnemo;
00145 char *accel;
00146 char *accel_text;
00147 KmButtFlag flags;
00148 KmWidget widget;
00149 } KmButton;
00150
00151
00152 extern struct {
00153
00154 IntFunc *graf_info_C;
00155 SUBROUTINE *graf_size_F;
00156 SUBROUTINE *graf_pick_F;
00157 SUBROUTINE *graf_attr_F;
00158 SUBROUTINE *graf_close_F;
00159
00160 pCharFunc *user_FallBk_C;
00161 IntFunc *user_TopWid_C;
00162 } klnkaddr;
00163
00164
00165 typedef enum {
00166 KmFLAG_FORGET = 0x01,
00167 KmFLAG_MINUS = 0x02,
00168 KmFLAG_QUOTE = 0x04,
00169 KmFLAG_VARARG = 0x08,
00170 KmFLAG_CONST = 0x10,
00171 KmFLAG_HIDDEN = 0x20,
00172 KmFLAG_SEPARATE = 0x40
00173 } KmParFlag;
00174
00175 typedef enum {
00176 KmTYPE_CHAR = 'C',
00177 KmTYPE_FILE = 'F',
00178 KmTYPE_INT = 'I',
00179 KmTYPE_OPTION = 'O',
00180 KmTYPE_REAL = 'R'
00181 } KmParType;
00182
00183
00184 typedef struct {
00185 char *filter_default;
00186 char *filter_current;
00187 } KmParFile;
00188
00189 typedef struct {
00190 char *range_lower;
00191 char *range_upper;
00192 char *slider_lower;
00193 char *slider_upper;
00194 int decimals;
00195 } KmParInt;
00196
00197 typedef struct {
00198 char **text;
00199 int *mutex;
00200 int *radio;
00201 } KmParOption;
00202
00203
00204 typedef KmParInt KmParReal;
00205
00206 typedef struct {
00207 char *name;
00208 int abbrev;
00209 char *prompt;
00210 char *dfault;
00211 char *last;
00212 int width;
00213 int range_count;
00214 char **range_value;
00215 int select_count;
00216 char **select_value;
00217 KmParFlag flags;
00218 KmParType type;
00219 void *ptype;
00220 } KmParameter;
00221
00222
00223 typedef struct _KmCommand {
00224 struct _KmCommand *next;
00225 char *path;
00226 char *name;
00227 int hidden;
00228 int level;
00229 int total;
00230 int mandatory;
00231 KmParameter **par;
00232 int list_par;
00233 int xcount;
00234 SUBROUTINE *action_F;
00235 IntFunc *action_C;
00236 SUBROUTINE *user_help_F;
00237 pCharFunc *user_help_C;
00238 int nguidance;
00239 char **guidance;
00240 int nkeyword;
00241 char **keyword;
00242 int nhlink;
00243 char **hlink;
00244 int argc;
00245 char **argv;
00246 char *argline;
00247 int *argoffs;
00248 } KmCommand;
00249
00250
00251 typedef struct _KmMenu {
00252 struct _KmMenu *next;
00253 struct _KmMenu *down;
00254 char *path;
00255 char *name;
00256 int level;
00257 KmCommand *cmds;
00258 int nguidance;
00259 char **guidance;
00260 int nkeyword;
00261 char **keyword;
00262 int nhlink;
00263 char **hlink;
00264 } KmMenu;
00265
00266 extern void klnkbrcl();
00267 extern void klnkicon();
00268 extern void klnkkmcl();
00269 extern void klnkmenu();
00270
00271
00272 #ifdef F77_LCASE
00273 # define gkdraw_ gkdraw
00274 # define gxdraw_ gxdraw
00275 # define gxpick_ gxpick
00276 #endif
00277
00278 #ifdef F77_UCASE
00279 # define gkdraw_ GKDRAW
00280 # define gxdraw_ GXDRAW
00281 # define gxpick_ GXPICK
00282 #endif
00283
00284 #ifdef IBM370
00285 # pragma linkage(GKDRAW,FORTRAN)
00286 # pragma linkage(GXDRAW,FORTRAN)
00287 # pragma linkage(GXPICK,FORTRAN)
00288 #endif
00289
00290 extern void gkdraw_();
00291 extern void gxdraw_();
00292 extern void gxpick_();
00293
00294 void gkdraw_()
00295 {
00296
00297 static KmParReal _GEANT_CVOL_VALCUT_XCUT_type = { (char*)0, (char*)0,
00298 (char*)0, (char*)0, 0 };
00299 static KmParameter _GEANT_CVOL_VALCUT_XCUT = { "XCUT", 4,
00300 "x coordinate of cutted value", "0.", (char*)0, 12, 0, (char**)0, 0,
00301 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CVOL_VALCUT_XCUT_type };
00302 static KmParReal _GEANT_CVOL_VALCUT_YCUT_type = { (char*)0, (char*)0,
00303 (char*)0, (char*)0, 0 };
00304 static KmParameter _GEANT_CVOL_VALCUT_YCUT = { "YCUT", 4,
00305 "y coordinate of cutted value", "0.", (char*)0, 12, 0, (char**)0, 0,
00306 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CVOL_VALCUT_YCUT_type };
00307 static KmParReal _GEANT_CVOL_VALCUT_ZCUT_type = { (char*)0, (char*)0,
00308 (char*)0, (char*)0, 0 };
00309 static KmParameter _GEANT_CVOL_VALCUT_ZCUT = { "ZCUT", 4,
00310 "z coordinate of cutted value", "0.", (char*)0, 12, 0, (char**)0, 0,
00311 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CVOL_VALCUT_ZCUT_type };
00312 static KmParameter *_GEANT_CVOL_VALCUT_parameters[] = {
00313 &_GEANT_CVOL_VALCUT_XCUT, &_GEANT_CVOL_VALCUT_YCUT, &_GEANT_CVOL_VALCUT_ZCUT
00314 };
00315 static char *_GEANT_CVOL_VALCUT_guidance[] = {
00316 "It allows the cutting in the ray-tracing. All the volumes are cutted",
00317 "from XCUT to +BIG along the x axis, from YCUT to +BIG along the y axis",
00318 "and from ZCUT to +BIG along the z axis." };
00319 static KmCommand _GEANT_CVOL_VALCUT = { (KmCommand*)0, "/GEANT/CVOL/VALCUT",
00320 "VALCUT", 0, 2, 3, 3, _GEANT_CVOL_VALCUT_parameters, 0, 0, gxdraw_,
00321 (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_CVOL_VALCUT_guidance,
00322 0, (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
00323
00324 static KmParameter _GEANT_CVOL_SPHE_CNVV = { "CNVV", 4,
00325 " Name of volume to be clipped ", "* ", (char*)0, 20, 0,
00326 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
00327 static KmParReal _GEANT_CVOL_SPHE_RMAX_type = { (char*)0, (char*)0,
00328 (char*)0, (char*)0, 0 };
00329 static KmParameter _GEANT_CVOL_SPHE_RMAX = { "RMAX", 4,
00330 " External radius of sphere ", "0.1", (char*)0, 12, 0, (char**)0,
00331 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CVOL_SPHE_RMAX_type };
00332 static KmParReal _GEANT_CVOL_SPHE_XMED_type = { (char*)0, (char*)0,
00333 (char*)0, (char*)0, 0 };
00334 static KmParameter _GEANT_CVOL_SPHE_XMED = { "XMED", 4,
00335 " Center X coordinate ", "-10000.", (char*)0, 12, 0,
00336 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
00337 &_GEANT_CVOL_SPHE_XMED_type };
00338 static KmParReal _GEANT_CVOL_SPHE_YMED_type = { (char*)0, (char*)0,
00339 (char*)0, (char*)0, 0 };
00340 static KmParameter _GEANT_CVOL_SPHE_YMED = { "YMED", 4,
00341 " Center Y coordinate ", "-10000.", (char*)0, 12, 0,
00342 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
00343 &_GEANT_CVOL_SPHE_YMED_type };
00344 static KmParReal _GEANT_CVOL_SPHE_ZMED_type = { (char*)0, (char*)0,
00345 (char*)0, (char*)0, 0 };
00346 static KmParameter _GEANT_CVOL_SPHE_ZMED = { "ZMED", 4,
00347 " Center Z coordinate ", "-10000.", (char*)0, 12, 0,
00348 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
00349 &_GEANT_CVOL_SPHE_ZMED_type };
00350 static KmParameter *_GEANT_CVOL_SPHE_parameters[] = { &_GEANT_CVOL_SPHE_CNVV,
00351 &_GEANT_CVOL_SPHE_RMAX, &_GEANT_CVOL_SPHE_XMED, &_GEANT_CVOL_SPHE_YMED,
00352 &_GEANT_CVOL_SPHE_ZMED };
00353 static char *_GEANT_CVOL_SPHE_guidance[] = {
00354 "This command performs a boolean subtraction between the volume",
00355 "CNVV and a sphere; the sphere has the given parameters and is placed in",
00356 "the MARS according to the given coordinates of its center.",
00357 "See also CVOL. The following commands clip by a sphere,",
00358 "positioned according to the given parameters, the volume specified",
00359 "by NAME (a valid string for the NAME of the volume",
00360 "can be found using the DTREE command).", "EXAMPLE -", " dopt hide on",
00361 " satt * seen -2", " draw NAME 40 40 0 10 10 .01 .01", " next",
00362 " sphe * 500 0 0 500", " draw NAME 40 40 0 10 10 .01 .01", " box ." };
00363 static KmCommand _GEANT_CVOL_SPHE = { &_GEANT_CVOL_VALCUT, "/GEANT/CVOL/SPHE",
00364 "SPHE", 0, 2, 5, 1, _GEANT_CVOL_SPHE_parameters, 0, 0, gxdraw_, (IntFunc*)0,
00365 (SUBROUTINE*)0, (pCharFunc*)0, 15, _GEANT_CVOL_SPHE_guidance, 0, (char**)0,
00366 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
00367
00368 static KmParameter _GEANT_CVOL_CONE_CNVV = { "CNVV", 4,
00369 " Name of volume to be clipped ", "* ", (char*)0, 20, 0,
00370 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
00371 static KmParReal _GEANT_CVOL_CONE_RMAX1_type = { (char*)0, (char*)0,
00372 (char*)0, (char*)0, 0 };
00373 static KmParameter _GEANT_CVOL_CONE_RMAX1 = { "RMAX1", 5,
00374 " Min external radius ", "0.1", (char*)0, 12, 0, (char**)0,
00375 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CVOL_CONE_RMAX1_type };
00376 static KmParReal _GEANT_CVOL_CONE_RMAX2_type = { (char*)0, (char*)0,
00377 (char*)0, (char*)0, 0 };
00378 static KmParameter _GEANT_CVOL_CONE_RMAX2 = { "RMAX2", 5,
00379 " Max external radius ", "0.1", (char*)0, 12, 0, (char**)0,
00380 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CVOL_CONE_RMAX2_type };
00381 static KmParReal _GEANT_CVOL_CONE_ZDEM_type = { (char*)0, (char*)0,
00382 (char*)0, (char*)0, 0 };
00383 static KmParameter _GEANT_CVOL_CONE_ZDEM = { "ZDEM", 4,
00384 " Half length of cone axis ", "0.1", (char*)0, 12, 0, (char**)0,
00385 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CVOL_CONE_ZDEM_type };
00386 static KmParReal _GEANT_CVOL_CONE_XMED_type = { (char*)0, (char*)0,
00387 (char*)0, (char*)0, 0 };
00388 static KmParameter _GEANT_CVOL_CONE_XMED = { "XMED", 4,
00389 " Center X coordinate ", "-10000.", (char*)0, 12, 0,
00390 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
00391 &_GEANT_CVOL_CONE_XMED_type };
00392 static KmParReal _GEANT_CVOL_CONE_YMED_type = { (char*)0, (char*)0,
00393 (char*)0, (char*)0, 0 };
00394 static KmParameter _GEANT_CVOL_CONE_YMED = { "YMED", 4,
00395 " Center Y coordinate ", "-10000.", (char*)0, 12, 0,
00396 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
00397 &_GEANT_CVOL_CONE_YMED_type };
00398 static KmParReal _GEANT_CVOL_CONE_ZMED_type = { (char*)0, (char*)0,
00399 (char*)0, (char*)0, 0 };
00400 static KmParameter _GEANT_CVOL_CONE_ZMED = { "ZMED", 4,
00401 " Center Z coordinate ", "-10000.", (char*)0, 12, 0,
00402 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
00403 &_GEANT_CVOL_CONE_ZMED_type };
00404 static KmParameter *_GEANT_CVOL_CONE_parameters[] = { &_GEANT_CVOL_CONE_CNVV,
00405 &_GEANT_CVOL_CONE_RMAX1, &_GEANT_CVOL_CONE_RMAX2, &_GEANT_CVOL_CONE_ZDEM,
00406 &_GEANT_CVOL_CONE_XMED, &_GEANT_CVOL_CONE_YMED, &_GEANT_CVOL_CONE_ZMED };
00407 static char *_GEANT_CVOL_CONE_guidance[] = {
00408 "This command performs a boolean subtraction between the volume",
00409 "CNVV and a cone; the cone has the given parameters and is placed in",
00410 "the MARS according to the given coordinates of its center.",
00411 "See also CVOL.", "The following commands will clip by a cone,",
00412 "positioned according the given parameters, the volume specified",
00413 "by NAME (a valid string for the NAME of the volume",
00414 "can be found using the DTREE command).", " EXAMPLE -", " dopt hide on",
00415 " satt * seen -2", " draw NAME 40 40 0 10 10 .01 .01", " next",
00416 " cone * 1 750 1000 0 0 1000", " draw NAME 40 40 0 10 10 .01 .01", " box ." };
00417 static KmCommand _GEANT_CVOL_CONE = { &_GEANT_CVOL_SPHE, "/GEANT/CVOL/CONE",
00418 "CONE", 0, 2, 7, 1, _GEANT_CVOL_CONE_parameters, 0, 0, gxdraw_, (IntFunc*)0,
00419 (SUBROUTINE*)0, (pCharFunc*)0, 16, _GEANT_CVOL_CONE_guidance, 0, (char**)0,
00420 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
00421
00422 static KmParameter _GEANT_CVOL_TUBE_CNVV = { "CNVV", 4,
00423 " Name of volume to be clipped ", "* ", (char*)0, 20, 0,
00424 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
00425 static KmParReal _GEANT_CVOL_TUBE_RMAX_type = { (char*)0, (char*)0,
00426 (char*)0, (char*)0, 0 };
00427 static KmParameter _GEANT_CVOL_TUBE_RMAX = { "RMAX", 4,
00428 " External radius of tube ", "0.1", (char*)0, 12, 0, (char**)0,
00429 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CVOL_TUBE_RMAX_type };
00430 static KmParReal _GEANT_CVOL_TUBE_ZDEM_type = { (char*)0, (char*)0,
00431 (char*)0, (char*)0, 0 };
00432 static KmParameter _GEANT_CVOL_TUBE_ZDEM = { "ZDEM", 4,
00433 " Half length of tube axis ", "0.1", (char*)0, 12, 0, (char**)0,
00434 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CVOL_TUBE_ZDEM_type };
00435 static KmParReal _GEANT_CVOL_TUBE_XMED_type = { (char*)0, (char*)0,
00436 (char*)0, (char*)0, 0 };
00437 static KmParameter _GEANT_CVOL_TUBE_XMED = { "XMED", 4,
00438 " Center X coordinate ", "-10000.", (char*)0, 12, 0,
00439 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
00440 &_GEANT_CVOL_TUBE_XMED_type };
00441 static KmParReal _GEANT_CVOL_TUBE_YMED_type = { (char*)0, (char*)0,
00442 (char*)0, (char*)0, 0 };
00443 static KmParameter _GEANT_CVOL_TUBE_YMED = { "YMED", 4,
00444 " Center Y coordinate ", "-10000.", (char*)0, 12, 0,
00445 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
00446 &_GEANT_CVOL_TUBE_YMED_type };
00447 static KmParReal _GEANT_CVOL_TUBE_ZMED_type = { (char*)0, (char*)0,
00448 (char*)0, (char*)0, 0 };
00449 static KmParameter _GEANT_CVOL_TUBE_ZMED = { "ZMED", 4,
00450 " Center Z coordinate ", "-10000.", (char*)0, 12, 0,
00451 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
00452 &_GEANT_CVOL_TUBE_ZMED_type };
00453 static KmParameter *_GEANT_CVOL_TUBE_parameters[] = { &_GEANT_CVOL_TUBE_CNVV,
00454 &_GEANT_CVOL_TUBE_RMAX, &_GEANT_CVOL_TUBE_ZDEM, &_GEANT_CVOL_TUBE_XMED,
00455 &_GEANT_CVOL_TUBE_YMED, &_GEANT_CVOL_TUBE_ZMED };
00456 static char *_GEANT_CVOL_TUBE_guidance[] = {
00457 "This command performs a boolean subtraction between the volume",
00458 "CNVV and a tube; the tube has the given parameters and is placed in",
00459 "the MARS according the given coordinates of its center.", "See also CVOL.",
00460 "The following commands will clip, by a tube,",
00461 "positioned according to the given parameters, the volume specified",
00462 "by NAME (a valid string for the NAME of the volume",
00463 "can be found using the DTREE command).", " EXAMPLE -", " dopt hide on",
00464 " satt * seen -2", " draw NAME 40 40 0 10 10 .01 .01", " next",
00465 " tube * 500 1000 500 0 0", " draw NAME 40 40 0 10 10 .01 .01", " box ." };
00466 static KmCommand _GEANT_CVOL_TUBE = { &_GEANT_CVOL_CONE, "/GEANT/CVOL/TUBE",
00467 "TUBE", 0, 2, 6, 1, _GEANT_CVOL_TUBE_parameters, 0, 0, gxdraw_, (IntFunc*)0,
00468 (SUBROUTINE*)0, (pCharFunc*)0, 16, _GEANT_CVOL_TUBE_guidance, 0, (char**)0,
00469 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
00470
00471 static KmParameter _GEANT_CVOL_BOX_CNNV = { "CNNV", 4,
00472 " Name of volume to be clipped ", "* ", (char*)0, 20, 0,
00473 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
00474 static KmParReal _GEANT_CVOL_BOX_XMIN_type = { (char*)0, (char*)0, (char*)0,
00475 (char*)0, 0 };
00476 static KmParameter _GEANT_CVOL_BOX_XMIN = { "XMIN", 4,
00477 " Lower limit of the Shape X coordinate ", "-10000.", (char*)0, 12, 0,
00478 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
00479 &_GEANT_CVOL_BOX_XMIN_type };
00480 static KmParReal _GEANT_CVOL_BOX_XMAX_type = { (char*)0, (char*)0, (char*)0,
00481 (char*)0, 0 };
00482 static KmParameter _GEANT_CVOL_BOX_XMAX = { "XMAX", 4,
00483 " Upper limit of the Shape X coordinate ", "-9999.", (char*)0, 12, 0,
00484 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
00485 &_GEANT_CVOL_BOX_XMAX_type };
00486 static KmParReal _GEANT_CVOL_BOX_YMIN_type = { (char*)0, (char*)0, (char*)0,
00487 (char*)0, 0 };
00488 static KmParameter _GEANT_CVOL_BOX_YMIN = { "YMIN", 4,
00489 " Lower limit of the Shape Y coordinate ", "-10000.", (char*)0, 12, 0,
00490 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
00491 &_GEANT_CVOL_BOX_YMIN_type };
00492 static KmParReal _GEANT_CVOL_BOX_YMAX_type = { (char*)0, (char*)0, (char*)0,
00493 (char*)0, 0 };
00494 static KmParameter _GEANT_CVOL_BOX_YMAX = { "YMAX", 4,
00495 " Upper limit of the Shape Y coordinate ", "-9999.", (char*)0, 12, 0,
00496 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
00497 &_GEANT_CVOL_BOX_YMAX_type };
00498 static KmParReal _GEANT_CVOL_BOX_ZMIN_type = { (char*)0, (char*)0, (char*)0,
00499 (char*)0, 0 };
00500 static KmParameter _GEANT_CVOL_BOX_ZMIN = { "ZMIN", 4,
00501 " Lower limit of the Shape Z coordinate ", "-10000.", (char*)0, 12, 0,
00502 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
00503 &_GEANT_CVOL_BOX_ZMIN_type };
00504 static KmParReal _GEANT_CVOL_BOX_ZMAX_type = { (char*)0, (char*)0, (char*)0,
00505 (char*)0, 0 };
00506 static KmParameter _GEANT_CVOL_BOX_ZMAX = { "ZMAX", 4,
00507 " Upper limit of the Shape Z coordinate ", "-9999.", (char*)0, 12, 0,
00508 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
00509 &_GEANT_CVOL_BOX_ZMAX_type };
00510 static KmParameter *_GEANT_CVOL_BOX_parameters[] = { &_GEANT_CVOL_BOX_CNNV,
00511 &_GEANT_CVOL_BOX_XMIN, &_GEANT_CVOL_BOX_XMAX, &_GEANT_CVOL_BOX_YMIN,
00512 &_GEANT_CVOL_BOX_YMAX, &_GEANT_CVOL_BOX_ZMIN, &_GEANT_CVOL_BOX_ZMAX };
00513 static char *_GEANT_CVOL_BOX_guidance[] = {
00514 "This command performs a boolean subtraction between the volume",
00515 "CNVV and a box placed in the MARS according the values of the given",
00516 "coordinates. See also CVOL.", "The following commands will clip by a box,",
00517 "with a vertex at the origin, the volume specified by NAME (a valid",
00518 "string for the NAME of the volume can be found using the DTREE command).",
00519 " EXAMPLE -", " dopt hide on", " satt * seen -2",
00520 " draw NAME 40 40 0 10 10 .01 .01", " next",
00521 " box NAME 0 1000 0 1000 0 1000", " draw NAME 40 40 0 10 10 .01 .01",
00522 " box ." };
00523 static KmCommand _GEANT_CVOL_BOX = { &_GEANT_CVOL_TUBE, "/GEANT/CVOL/BOX",
00524 "BOX", 0, 2, 7, 1, _GEANT_CVOL_BOX_parameters, 0, 0, gxdraw_, (IntFunc*)0,
00525 (SUBROUTINE*)0, (pCharFunc*)0, 14, _GEANT_CVOL_BOX_guidance, 0, (char**)0, 0,
00526 (char**)0, 0, (char**)0, (char*)0, (int*)0 };
00527
00528 static KmParameter _GEANT_DRAWING_DUVIEW_NAME = { "NAME", 4, "Detector name",
00529 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
00530 KmTYPE_CHAR, (void*)0 };
00531 static KmParameter _GEANT_DRAWING_DUVIEW_TYPE = { "TYPE", 4, "View name",
00532 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
00533 KmTYPE_CHAR, (void*)0 };
00534 static KmParameter _GEANT_DRAWING_DUVIEW_CPXTYP = { "CPXTYP", 6,
00535 "Complexity name", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
00536 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
00537 static KmParInt _GEANT_DRAWING_DUVIEW_IVIEW_type = { (char*)0, (char*)0,
00538 (char*)0, (char*)0, 0 };
00539 static KmParameter _GEANT_DRAWING_DUVIEW_IVIEW = { "IVIEW", 5,
00540 "View number where picture is stored", "0", (char*)0, 8, 0, (char**)0, 0,
00541 (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_DRAWING_DUVIEW_IVIEW_type };
00542 static KmParameter *_GEANT_DRAWING_DUVIEW_parameters[] = {
00543 &_GEANT_DRAWING_DUVIEW_NAME, &_GEANT_DRAWING_DUVIEW_TYPE,
00544 &_GEANT_DRAWING_DUVIEW_CPXTYP, &_GEANT_DRAWING_DUVIEW_IVIEW };
00545 static char *_GEANT_DRAWING_DUVIEW_guidance[] = {
00546 " CALL GUVIEW(name,type,cpxtyp,iview)" };
00547 static KmCommand _GEANT_DRAWING_DUVIEW = { (KmCommand*)0,
00548 "/GEANT/DRAWING/DUVIEW", "DUVIEW", 0, 2, 4, 3,
00549 _GEANT_DRAWING_DUVIEW_parameters, 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0,
00550 (pCharFunc*)0, 1, _GEANT_DRAWING_DUVIEW_guidance, 0, (char**)0, 0, (char**)0,
00551 0, (char**)0, (char*)0, (int*)0 };
00552
00553 static KmParameter _GEANT_DRAWING_DCHIT_CHUSET = { "CHUSET", 6,
00554 "User set identifier", "*", (char*)0, 20, 0, (char**)0, 0, (char**)0,
00555 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
00556 static KmParameter _GEANT_DRAWING_DCHIT_CHUDET = { "CHUDET", 6,
00557 "User detector identifier", "*", (char*)0, 20, 0, (char**)0, 0, (char**)0,
00558 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
00559 static KmParInt _GEANT_DRAWING_DCHIT_ITRA_type = { (char*)0, (char*)0,
00560 (char*)0, (char*)0, 0 };
00561 static KmParameter _GEANT_DRAWING_DCHIT_ITRA = { "ITRA", 4,
00562 "Number of the selected track", "0", (char*)0, 8, 0, (char**)0, 0, (char**)0,
00563 (KmParFlag)0, KmTYPE_INT, &_GEANT_DRAWING_DCHIT_ITRA_type };
00564 static KmParInt _GEANT_DRAWING_DCHIT_ISYMB_type = { (char*)0, (char*)0,
00565 (char*)0, (char*)0, 0 };
00566 static KmParameter _GEANT_DRAWING_DCHIT_ISYMB = { "ISYMB", 5,
00567 "Character selection number", "0", (char*)0, 8, 0, (char**)0, 0, (char**)0,
00568 (KmParFlag)0, KmTYPE_INT, &_GEANT_DRAWING_DCHIT_ISYMB_type };
00569 static KmParReal _GEANT_DRAWING_DCHIT_SIZMAX_type = { (char*)0, (char*)0,
00570 (char*)0, (char*)0, 0 };
00571 static KmParameter _GEANT_DRAWING_DCHIT_SIZMAX = { "SIZMAX", 6,
00572 "Maximum character size (cm)", "1", (char*)0, 12, 0, (char**)0, 0, (char**)0,
00573 (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DCHIT_SIZMAX_type };
00574 static KmParInt _GEANT_DRAWING_DCHIT_IHIT_type = { (char*)0, (char*)0,
00575 (char*)0, (char*)0, 0 };
00576 static KmParameter _GEANT_DRAWING_DCHIT_IHIT = { "IHIT", 4,
00577 "Index of array HITS", "4", (char*)0, 8, 0, (char**)0, 0, (char**)0,
00578 (KmParFlag)0, KmTYPE_INT, &_GEANT_DRAWING_DCHIT_IHIT_type };
00579 static KmParReal _GEANT_DRAWING_DCHIT_HITMIN_type = { (char*)0, (char*)0,
00580 (char*)0, (char*)0, 0 };
00581 static KmParameter _GEANT_DRAWING_DCHIT_HITMIN = { "HITMIN", 6,
00582 "Lower boundary of HITS(IHIT)", "0", (char*)0, 12, 0, (char**)0, 0,
00583 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DCHIT_HITMIN_type };
00584 static KmParReal _GEANT_DRAWING_DCHIT_HITMAX_type = { (char*)0, (char*)0,
00585 (char*)0, (char*)0, 0 };
00586 static KmParameter _GEANT_DRAWING_DCHIT_HITMAX = { "HITMAX", 6,
00587 "Upper boundary of HITS(IHIT)", "0", (char*)0, 12, 0, (char**)0, 0,
00588 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DCHIT_HITMAX_type };
00589 static KmParameter *_GEANT_DRAWING_DCHIT_parameters[] = {
00590 &_GEANT_DRAWING_DCHIT_CHUSET, &_GEANT_DRAWING_DCHIT_CHUDET,
00591 &_GEANT_DRAWING_DCHIT_ITRA, &_GEANT_DRAWING_DCHIT_ISYMB,
00592 &_GEANT_DRAWING_DCHIT_SIZMAX, &_GEANT_DRAWING_DCHIT_IHIT,
00593 &_GEANT_DRAWING_DCHIT_HITMIN, &_GEANT_DRAWING_DCHIT_HITMAX };
00594 static char *_GEANT_DRAWING_DCHIT_guidance[] = {
00595 " CALL GDCHIT(chuset,chudet,itra,isymb,sizmax,ihit,hitmin,hitmax)",
00596 "The character plotted at each hit point may be chosen via",
00597 "CSYMB; isymb is composed as:",
00598 " -1 (small) hardware points (fast)",
00599 " 0 software crosses (default)",
00600 " 840,850 empty/full circles (slow)",
00601 " 841,851 empty/full squares (slow)",
00602 " 842,852 empty/full triangles (up) (slow)",
00603 " 843,853 empty diamond/full triangle (down) (slow)",
00604 " 844,854 empty/full stars (slow)",
00605 "Except for isymb=-1 the SIZE of the character on the screen",
00606 "is a function of HITS(IHIT), the array containing the calorimeter",
00607 "quantity, with HITMIN and HITMAX defining its range.",
00608 "The maximum character size (used in overflow) is SIZMAX.",
00609 " SIZE = SIZMAX * ( HITS(IHIT) - HITMIN ) / HITMAX" };
00610 static KmCommand _GEANT_DRAWING_DCHIT = { &_GEANT_DRAWING_DUVIEW,
00611 "/GEANT/DRAWING/DCHIT", "DCHIT", 0, 2, 8, 0, _GEANT_DRAWING_DCHIT_parameters,
00612 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 15,
00613 _GEANT_DRAWING_DCHIT_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
00614 (char*)0, (int*)0 };
00615
00616 static KmParameter _GEANT_DRAWING_KHITS_CHUSET = { "CHUSET", 6,
00617 "User set identifier", "*", (char*)0, 20, 0, (char**)0, 0, (char**)0,
00618 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
00619 static KmParameter _GEANT_DRAWING_KHITS_CHUDET = { "CHUDET", 6,
00620 "User detector identifier", "*", (char*)0, 20, 0, (char**)0, 0, (char**)0,
00621 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
00622 static KmParReal _GEANT_DRAWING_KHITS_EPSILO_type = { (char*)0, (char*)0,
00623 (char*)0, (char*)0, 0 };
00624 static KmParameter _GEANT_DRAWING_KHITS_EPSILO = { "EPSILO", 6,
00625 "Pick aperture", "0.1", (char*)0, 12, 0, (char**)0, 0, (char**)0,
00626 (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_KHITS_EPSILO_type };
00627 static KmParameter *_GEANT_DRAWING_KHITS_parameters[] = {
00628 &_GEANT_DRAWING_KHITS_CHUSET, &_GEANT_DRAWING_KHITS_CHUDET,
00629 &_GEANT_DRAWING_KHITS_EPSILO };
00630 static char *_GEANT_DRAWING_KHITS_guidance[] = {
00631 " CALL GKHITS(chuset,chudet,epsilo)",
00632 "The picking of hit points requires the appropriate JSET data structure",
00633 "have been filled",
00634 "and is repeated until the character typed is 'Q' or 'q' (GKS) or the",
00635 "right button of the mouse is clicked (X11).",
00636 "If the character typed to pick is 'K' or 'k' then the",
00637 "kinematics of the corresponding track is also printed.",
00638 "The search is made of all the hits of all tracks in",
00639 "detector CHUDET of set CHUSET.",
00640 "EPSILO is the pick aperture; if EPSILO<0 its absolute value is taken",
00641 "and in addition the pick aperture is drawn; if EPSILO=0",
00642 "there is an infinite pick aperture and",
00643 "over all the hits the one nearest to the pick point is taken." };
00644 static KmCommand _GEANT_DRAWING_KHITS = { &_GEANT_DRAWING_DCHIT,
00645 "/GEANT/DRAWING/KHITS", "KHITS", 0, 2, 3, 0, _GEANT_DRAWING_KHITS_parameters,
00646 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 13,
00647 _GEANT_DRAWING_KHITS_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
00648 (char*)0, (int*)0 };
00649
00650 static KmParameter _GEANT_DRAWING_DHITS_CHUSET = { "CHUSET", 6,
00651 "User set identifier", "*", (char*)0, 20, 0, (char**)0, 0, (char**)0,
00652 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
00653 static KmParameter _GEANT_DRAWING_DHITS_CHUDET = { "CHUDET", 6,
00654 "User detector identifier", "*", (char*)0, 20, 0, (char**)0, 0, (char**)0,
00655 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
00656 static KmParInt _GEANT_DRAWING_DHITS_ITRA_type = { (char*)0, (char*)0,
00657 (char*)0, (char*)0, 0 };
00658 static KmParameter _GEANT_DRAWING_DHITS_ITRA = { "ITRA", 4,
00659 "Number of the selected track", "0", (char*)0, 8, 0, (char**)0, 0, (char**)0,
00660 (KmParFlag)0, KmTYPE_INT, &_GEANT_DRAWING_DHITS_ITRA_type };
00661 static KmParInt _GEANT_DRAWING_DHITS_ISYMB_type = { (char*)0, (char*)0,
00662 (char*)0, (char*)0, 0 };
00663 static KmParameter _GEANT_DRAWING_DHITS_ISYMB = { "ISYMB", 5,
00664 "Character selection number", "0", (char*)0, 8, 0, (char**)0, 0, (char**)0,
00665 (KmParFlag)0, KmTYPE_INT, &_GEANT_DRAWING_DHITS_ISYMB_type };
00666 static KmParReal _GEANT_DRAWING_DHITS_SSYMB_type = { (char*)0, (char*)0,
00667 (char*)0, (char*)0, 0 };
00668 static KmParameter _GEANT_DRAWING_DHITS_SSYMB = { "SSYMB", 5,
00669 "Size of characters (cm)", "0.1", (char*)0, 12, 0, (char**)0, 0, (char**)0,
00670 (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DHITS_SSYMB_type };
00671 static KmParameter *_GEANT_DRAWING_DHITS_parameters[] = {
00672 &_GEANT_DRAWING_DHITS_CHUSET, &_GEANT_DRAWING_DHITS_CHUDET,
00673 &_GEANT_DRAWING_DHITS_ITRA, &_GEANT_DRAWING_DHITS_ISYMB,
00674 &_GEANT_DRAWING_DHITS_SSYMB };
00675 static char *_GEANT_DRAWING_DHITS_guidance[] = {
00676 "CALL GDHITS(chuset,chudet,itra,isymb,ssymb).",
00677 "The character plotted at each hit point may be chosen by isymb :",
00678 " -1 (small) hardware points (fast)",
00679 " 0 software crosses (default)",
00680 " 840,850 empty/full circles (slow)",
00681 " 841,851 empty/full squares (slow)",
00682 " 842,852 empty/full triangles (up) (slow)",
00683 " 843,853 empty diamond/full triangle (down) (slow)",
00684 " 844,854 empty/full stars (slow)",
00685 "Except for isymb=-1, the size of the character on the screen can be",
00686 "chosen by SSYMB cm. The hit colour will follow the value of TXCI (text",
00687 "colour) for isymb>0, the value of PMCI (polymarkers colour) for isymb<0,",
00688 "the value of PLCI (polyline colour) for isymb=0." };
00689 static KmCommand _GEANT_DRAWING_DHITS = { &_GEANT_DRAWING_KHITS,
00690 "/GEANT/DRAWING/DHITS", "DHITS", 0, 2, 5, 0, _GEANT_DRAWING_DHITS_parameters,
00691 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 13,
00692 _GEANT_DRAWING_DHITS_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
00693 (char*)0, (int*)0 };
00694
00695 static KmParInt _GEANT_DRAWING_DPART_ITRA_type = { (char*)0, (char*)0,
00696 (char*)0, (char*)0, 0 };
00697 static KmParameter _GEANT_DRAWING_DPART_ITRA = { "ITRA", 4, "Track number",
00698 "0", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
00699 &_GEANT_DRAWING_DPART_ITRA_type };
00700 static KmParInt _GEANT_DRAWING_DPART_ISEL_type = { (char*)0, (char*)0,
00701 (char*)0, (char*)0, 0 };
00702 static KmParameter _GEANT_DRAWING_DPART_ISEL = { "ISEL", 4, "Option flag",
00703 "11", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
00704 &_GEANT_DRAWING_DPART_ISEL_type };
00705 static KmParReal _GEANT_DRAWING_DPART_SIZE_type = { (char*)0, (char*)0,
00706 (char*)0, (char*)0, 0 };
00707 static KmParameter _GEANT_DRAWING_DPART_SIZE = { "SIZE", 4,
00708 "Character size (cm) for particle names", "0.25", (char*)0, 12, 0, (char**)0,
00709 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DPART_SIZE_type };
00710 static KmParameter *_GEANT_DRAWING_DPART_parameters[] = {
00711 &_GEANT_DRAWING_DPART_ITRA, &_GEANT_DRAWING_DPART_ISEL,
00712 &_GEANT_DRAWING_DPART_SIZE };
00713 static char *_GEANT_DRAWING_DPART_guidance[] = {
00714 " CALL GDPART(itra,isel,size)", " isel=x1 to draw the track number",
00715 " isel=1x to draw the particle name" };
00716 static KmCommand _GEANT_DRAWING_DPART = { &_GEANT_DRAWING_DHITS,
00717 "/GEANT/DRAWING/DPART", "DPART", 0, 2, 3, 0, _GEANT_DRAWING_DPART_parameters,
00718 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
00719 _GEANT_DRAWING_DPART_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
00720 (char*)0, (int*)0 };
00721
00722 static KmParReal _GEANT_DRAWING_KXYZ_EPSILO_type = { (char*)0, (char*)0,
00723 (char*)0, (char*)0, 0 };
00724 static KmParameter _GEANT_DRAWING_KXYZ_EPSILO = { "EPSILO", 6, "Delta angle",
00725 "0.25", (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
00726 &_GEANT_DRAWING_KXYZ_EPSILO_type };
00727 static KmParameter *_GEANT_DRAWING_KXYZ_parameters[] = {
00728 &_GEANT_DRAWING_KXYZ_EPSILO };
00729 static char *_GEANT_DRAWING_KXYZ_guidance[] = { " CALL GKXYZ(epsilo)",
00730 "The picking of track points requires the JXYZ data structure",
00731 "and is repeated until the character typed is 'Q' or 'q' (GKS)",
00732 "or the right button of the mouse is clicked (X11).",
00733 "EPSILO is the delta angle used for picking; if EPSILO=0",
00734 "there is no optimization performed and",
00735 "over all the track points the one nearest to the pick", "point is taken." };
00736 static KmCommand _GEANT_DRAWING_KXYZ = { &_GEANT_DRAWING_DPART,
00737 "/GEANT/DRAWING/KXYZ", "KXYZ", 0, 2, 1, 0, _GEANT_DRAWING_KXYZ_parameters, 0,
00738 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 8,
00739 _GEANT_DRAWING_KXYZ_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
00740 (char*)0, (int*)0 };
00741
00742 static KmParInt _GEANT_DRAWING_DXYZ_ITRA_type = { (char*)0, (char*)0,
00743 (char*)0, (char*)0, 0 };
00744 static KmParameter _GEANT_DRAWING_DXYZ_ITRA = { "ITRA", 4, "Track number",
00745 "0", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
00746 &_GEANT_DRAWING_DXYZ_ITRA_type };
00747 static KmParameter *_GEANT_DRAWING_DXYZ_parameters[] = {
00748 &_GEANT_DRAWING_DXYZ_ITRA };
00749 static char *_GEANT_DRAWING_DXYZ_guidance[] = { " CALL GDXYZ(itra)",
00750 "Draw tracks previously stored via GSXYZ." };
00751 static KmCommand _GEANT_DRAWING_DXYZ = { &_GEANT_DRAWING_KXYZ,
00752 "/GEANT/DRAWING/DXYZ", "DXYZ", 0, 2, 1, 0, _GEANT_DRAWING_DXYZ_parameters, 0,
00753 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 2,
00754 _GEANT_DRAWING_DXYZ_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
00755 (char*)0, (int*)0 };
00756
00757 static KmParReal _GEANT_DRAWING_ZOOM_ZFU_type = { (char*)0, (char*)0,
00758 (char*)0, (char*)0, 0 };
00759 static KmParameter _GEANT_DRAWING_ZOOM_ZFU = { "ZFU", 3,
00760 "Zoom factor for U-coord. (horizontal)", "2.", (char*)0, 12, 0, (char**)0, 0,
00761 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_ZOOM_ZFU_type };
00762 static KmParReal _GEANT_DRAWING_ZOOM_ZFV_type = { (char*)0, (char*)0,
00763 (char*)0, (char*)0, 0 };
00764 static KmParameter _GEANT_DRAWING_ZOOM_ZFV = { "ZFV", 3,
00765 "Zoom factor for V-coord. (vertical)", "2.", (char*)0, 12, 0, (char**)0, 0,
00766 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_ZOOM_ZFV_type };
00767 static KmParInt _GEANT_DRAWING_ZOOM_ISEL_type = { (char*)0, (char*)0,
00768 (char*)0, (char*)0, 0 };
00769 static KmParameter _GEANT_DRAWING_ZOOM_ISEL = { "ISEL", 4, "Options", "1",
00770 (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
00771 &_GEANT_DRAWING_ZOOM_ISEL_type };
00772 static KmParReal _GEANT_DRAWING_ZOOM_UZ0_type = { "0.", "20.", "0.", "20.",
00773 0 };
00774 static KmParameter _GEANT_DRAWING_ZOOM_UZ0 = { "UZ0", 3,
00775 "U-coord. of the centre of zoom rectangle", "10.", (char*)0, 12, 0,
00776 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
00777 &_GEANT_DRAWING_ZOOM_UZ0_type };
00778 static KmParReal _GEANT_DRAWING_ZOOM_VZ0_type = { "0.", "20.", "0.", "20.",
00779 0 };
00780 static KmParameter _GEANT_DRAWING_ZOOM_VZ0 = { "VZ0", 3,
00781 "V-coord. of the centre of zoom rectangle", "10.", (char*)0, 12, 0,
00782 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
00783 &_GEANT_DRAWING_ZOOM_VZ0_type };
00784 static KmParReal _GEANT_DRAWING_ZOOM_U0_type = { "0.", "20.", "0.", "20.", 0
00785 };
00786 static KmParameter _GEANT_DRAWING_ZOOM_U0 = { "U0", 2,
00787 "U-coord. of the centre of resulting zoomed rectangle", "10.", (char*)0, 12,
00788 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
00789 &_GEANT_DRAWING_ZOOM_U0_type };
00790 static KmParReal _GEANT_DRAWING_ZOOM_V0_type = { "0.", "20.", "0.", "20.", 0
00791 };
00792 static KmParameter _GEANT_DRAWING_ZOOM_V0 = { "V0", 2,
00793 "V-coord. of the centre of resulting zoomed rectangle", "10.", (char*)0, 12,
00794 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
00795 &_GEANT_DRAWING_ZOOM_V0_type };
00796 static KmParameter *_GEANT_DRAWING_ZOOM_parameters[] = {
00797 &_GEANT_DRAWING_ZOOM_ZFU, &_GEANT_DRAWING_ZOOM_ZFV,
00798 &_GEANT_DRAWING_ZOOM_ISEL, &_GEANT_DRAWING_ZOOM_UZ0,
00799 &_GEANT_DRAWING_ZOOM_VZ0, &_GEANT_DRAWING_ZOOM_U0, &_GEANT_DRAWING_ZOOM_V0 };
00800 static char *_GEANT_DRAWING_ZOOM_guidance[] = {
00801 " CALL GDZOOM(zfu,zfv,uz0,vz0,u0,v0)",
00802 "This command sets the zoom parameters that will be used by",
00803 "subsequent calls to the drawing routines. Each zoom operation is always",
00804 "relative to the status of the current zoom parameters.",
00805 "The scale factors in u,v are respectively zfu,zfv.",
00806 "zfu=0 (or zfv=0) will act as a reset (i.e. unzoomed viewing).",
00807 "The zoom is computed around uz0,vz0 (user coordinates),",
00808 "and the resulting picture will be centered at u0,v0.",
00809 "The use of the space bar is replaced by the left button of the mouse",
00810 "running with X11:", "If isel=0 :", " 1. position the cursor at (uz0,vz0)",
00811 " 2. type the space bar (GKS)", "(u0,v0 are chosen at centre of screen)",
00812 "If isel=1 :", " 1. position the cursor at first corner of zoom rectangle",
00813 " 2. type the space bar (GKS)",
00814 " 3. position the cursor at second corner of zoom rectangle",
00815 " 4. type the space bar (GKS)",
00816 "(zfu,zfv are chosen according to the zoom rectangle;",
00817 "uz0,vz0 are chosen at the centre of the zoom rectangle;",
00818 "u0,v0 are chosen at centre of screen)", "If isel=2 :",
00819 " 1. position the cursor at (uz0,vz0)", " 2. type the space bar (GKS)",
00820 " 3. position the cursor at (u0,v0)", " 4. type the space bar (GKS)",
00821 "If isel=1000+n and running with X-windows:",
00822 " 1. n must be the identifier of an active view bank",
00823 " 2. clicking on the left button of the mouse will display",
00824 " a zoomed view (computed around the cursor position) of",
00825 " the previous drawing in a new window",
00826 " 3. it is now possible to iterate the zooming from the new window",
00827 " 4. clicking on the right button will return the control to the",
00828 " main window",
00829 " 5. clicking on the left button it is possible to open new windows",
00830 " zooming in other points of the detector",
00831 " 6. clicking on the right button when the main window is active",
00832 " will return the control to the 'command mode'." };
00833 static KmCommand _GEANT_DRAWING_ZOOM = { &_GEANT_DRAWING_DXYZ,
00834 "/GEANT/DRAWING/ZOOM", "ZOOM", 0, 2, 7, 0, _GEANT_DRAWING_ZOOM_parameters, 0,
00835 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 39,
00836 _GEANT_DRAWING_ZOOM_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
00837 (char*)0, (int*)0 };
00838
00839 static KmParInt _GEANT_DRAWING_LENS_KNUM_type = { (char*)0, (char*)0,
00840 (char*)0, (char*)0, 0 };
00841 static KmParameter _GEANT_DRAWING_LENS_KNUM = { "KNUM", 4,
00842 "View bank identifier", "1", (char*)0, 8, 0, (char**)0, 0, (char**)0,
00843 (KmParFlag)0, KmTYPE_INT, &_GEANT_DRAWING_LENS_KNUM_type };
00844 static KmParameter _GEANT_DRAWING_LENS_KSAM = { "KSAM", 4,
00845 "Sample mode ", "OFF ", (char*)0, 20, 0, (char**)0, 0, (char**)0,
00846 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
00847 static KmParameter *_GEANT_DRAWING_LENS_parameters[] = {
00848 &_GEANT_DRAWING_LENS_KNUM, &_GEANT_DRAWING_LENS_KSAM };
00849 static char *_GEANT_DRAWING_LENS_guidance[] = {
00850 "Interactive zooming for detectors and events when running",
00851 "with X-windows. Using this command, when showing the contents of a",
00852 "view bank, it is possible to click (left button) in two points of the",
00853 "drawing (which will represent the left upper corner and the right",
00854 "bottom corner of the part to be zoomed). After the second click",
00855 "a new 'window' will appear to fit the frame defined",
00856 "by the two clicks and it will show a zoomed view as seen from a",
00857 "lens with those dimensions. Clicking now the central button will",
00858 "translate the lens over the drawing, while clicking the right button",
00859 "will stop it. Moreover, clicking the left button of the",
00860 "mouse, the lens will increase (or decrease) its magnification",
00861 "power according to the backward-to-forward movement of the mouse.",
00862 "A click on the right button will stop this action and it is possible",
00863 "to restart the translation of the lens or, clicking",
00864 "on the right button again, to make the lens disappear. It is then possible",
00865 "to open another 'window-lens' with different dimensions. Thus,",
00866 "this command can be useful to scan detailed parts of a detector or",
00867 "to scan hits and showers for events. Clicking the right",
00868 "button when no lens is displayed will return the control to the",
00869 "'command mode'. The LENS is also available in sample mode when KSAM is",
00870 "'ON'.", "The following commands will fill a view bank and will",
00871 "allow to scan the detector and an event previously stored",
00872 "via the use of LENS (when running", "with X-windows):", " EXAMPLE -",
00873 " satt * seen 1", " dopen 1", " draw NAME 40 40 0 10 10 .01 .01", " dxyz 0",
00874 " dhits * * 0 0 .2", " dclose", " dsh 1", " lens 1 on" };
00875 static KmCommand _GEANT_DRAWING_LENS = { &_GEANT_DRAWING_ZOOM,
00876 "/GEANT/DRAWING/LENS", "LENS", 0, 2, 2, 1, _GEANT_DRAWING_LENS_parameters, 0,
00877 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 34,
00878 _GEANT_DRAWING_LENS_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
00879 (char*)0, (int*)0 };
00880
00881 static KmParameter _GEANT_DRAWING_PERSP_NAME = { "NAME", 4, "Volume name",
00882 " ", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
00883 (void*)0 };
00884 static KmParReal _GEANT_DRAWING_PERSP_DISTT_type = { (char*)0, (char*)0,
00885 (char*)0, (char*)0, 0 };
00886 static KmParameter _GEANT_DRAWING_PERSP_DISTT = { "DISTT", 5,
00887 "Volume distance from observer", "1000.", (char*)0, 12, 0, (char**)0, 0,
00888 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_PERSP_DISTT_type };
00889 static KmParameter _GEANT_DRAWING_PERSP_SAMP = { "SAMP", 4,
00890 "Control to the mouse", "OFF ", (char*)0, 20, 0, (char**)0, 0, (char**)0,
00891 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
00892 static KmParameter *_GEANT_DRAWING_PERSP_parameters[] = {
00893 &_GEANT_DRAWING_PERSP_NAME, &_GEANT_DRAWING_PERSP_DISTT,
00894 &_GEANT_DRAWING_PERSP_SAMP };
00895 static char *_GEANT_DRAWING_PERSP_guidance[] = {
00896 "To control the perspective according to the variation of the distance",
00897 "between the observer and the object (if PROJ has the value PERS).",
00898 "If SAMP is ON the control of the distance is given via the mouse." };
00899 static KmCommand _GEANT_DRAWING_PERSP = { &_GEANT_DRAWING_LENS,
00900 "/GEANT/DRAWING/PERSP", "PERSP", 0, 2, 3, 2, _GEANT_DRAWING_PERSP_parameters,
00901 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
00902 _GEANT_DRAWING_PERSP_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
00903 (char*)0, (int*)0 };
00904
00905 static KmParameter _GEANT_DRAWING_MOVE3D_NAME = { "NAME", 4, "Volume name",
00906 " ", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
00907 (void*)0 };
00908 static KmParReal _GEANT_DRAWING_MOVE3D_THETA_type = { "0.", "180.", "0.",
00909 "180.", 0 };
00910 static KmParameter _GEANT_DRAWING_MOVE3D_THETA = { "THETA", 5,
00911 "Viewing angle theta (for 3D projection)", "40.", (char*)0, 12, 0, (char**)0,
00912 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_MOVE3D_THETA_type };
00913 static KmParReal _GEANT_DRAWING_MOVE3D_PHI_type = { "0.", "360.", "0.",
00914 "360.", 0 };
00915 static KmParameter _GEANT_DRAWING_MOVE3D_PHI = { "PHI", 3,
00916 "Viewing angle phi (for 3D projection)", "40.", (char*)0, 12, 0, (char**)0,
00917 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_MOVE3D_PHI_type };
00918 static KmParReal _GEANT_DRAWING_MOVE3D_PSI_type = { "0.", "180.", "0.",
00919 "180.", 0 };
00920 static KmParameter _GEANT_DRAWING_MOVE3D_PSI = { "PSI", 3,
00921 "Viewing angle psi (for 2D rotation)", "0.", (char*)0, 12, 0, (char**)0, 0,
00922 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_MOVE3D_PSI_type };
00923 static KmParReal _GEANT_DRAWING_MOVE3D_U0_type = { "0.", "20.", "0.", "20.",
00924 0 };
00925 static KmParameter _GEANT_DRAWING_MOVE3D_U0 = { "U0", 2,
00926 "U-coord. (horizontal) of volume origin", "10.", (char*)0, 12, 0, (char**)0,
00927 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_MOVE3D_U0_type };
00928 static KmParReal _GEANT_DRAWING_MOVE3D_V0_type = { "0.", "20.", "0.", "20.",
00929 0 };
00930 static KmParameter _GEANT_DRAWING_MOVE3D_V0 = { "V0", 2,
00931 "V-coord. (vertical) of volume origin", "10.", (char*)0, 12, 0, (char**)0, 0,
00932 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_MOVE3D_V0_type };
00933 static KmParReal _GEANT_DRAWING_MOVE3D_SU_type = { (char*)0, (char*)0,
00934 (char*)0, (char*)0, 0 };
00935 static KmParameter _GEANT_DRAWING_MOVE3D_SU = { "SU", 2,
00936 "Scale factor for U-coord.", "0.01", (char*)0, 12, 0, (char**)0, 0,
00937 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_MOVE3D_SU_type };
00938 static KmParReal _GEANT_DRAWING_MOVE3D_SV_type = { (char*)0, (char*)0,
00939 (char*)0, (char*)0, 0 };
00940 static KmParameter _GEANT_DRAWING_MOVE3D_SV = { "SV", 2,
00941 "Scale factor for V-coord.", "0.01", (char*)0, 12, 0, (char**)0, 0,
00942 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_MOVE3D_SV_type };
00943 static KmParReal _GEANT_DRAWING_MOVE3D_SZ_type = { "0.1", "10.", "0.1",
00944 "10.", 1 };
00945 static KmParameter _GEANT_DRAWING_MOVE3D_SZ = { "SZ", 2, "Scale zoom factor",
00946 "1.", (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
00947 &_GEANT_DRAWING_MOVE3D_SZ_type };
00948 static char *_GEANT_DRAWING_MOVE3D_NOPT_range[] = { "T", "H" };
00949 static char *_GEANT_DRAWING_MOVE3D_NOPT_text[] = { (char*)0, (char*)0 };
00950 static KmParOption _GEANT_DRAWING_MOVE3D_NOPT_type = {
00951 _GEANT_DRAWING_MOVE3D_NOPT_text, (int*)0, (int*)0 };
00952 static KmParameter _GEANT_DRAWING_MOVE3D_NOPT = { "NOPT", 4,
00953 "T=tracks,H=hits", " ", (char*)0, 8, 2, _GEANT_DRAWING_MOVE3D_NOPT_range,
00954 2, _GEANT_DRAWING_MOVE3D_NOPT_range, (KmParFlag)0, KmTYPE_OPTION,
00955 &_GEANT_DRAWING_MOVE3D_NOPT_type };
00956 static KmParameter *_GEANT_DRAWING_MOVE3D_parameters[] = {
00957 &_GEANT_DRAWING_MOVE3D_NAME, &_GEANT_DRAWING_MOVE3D_THETA,
00958 &_GEANT_DRAWING_MOVE3D_PHI, &_GEANT_DRAWING_MOVE3D_PSI,
00959 &_GEANT_DRAWING_MOVE3D_U0, &_GEANT_DRAWING_MOVE3D_V0,
00960 &_GEANT_DRAWING_MOVE3D_SU, &_GEANT_DRAWING_MOVE3D_SV,
00961 &_GEANT_DRAWING_MOVE3D_SZ, &_GEANT_DRAWING_MOVE3D_NOPT };
00962 static char *_GEANT_DRAWING_MOVE3D_guidance[] = {
00963 "Same functionality of the command MOVE interfaced with MOTIF." };
00964 static KmCommand _GEANT_DRAWING_MOVE3D = { &_GEANT_DRAWING_PERSP,
00965 "/GEANT/DRAWING/MOVE3D", "MOVE3D", 0, 2, 10, 1,
00966 _GEANT_DRAWING_MOVE3D_parameters, 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0,
00967 (pCharFunc*)0, 1, _GEANT_DRAWING_MOVE3D_guidance, 0, (char**)0, 0, (char**)0,
00968 0, (char**)0, (char*)0, (int*)0 };
00969
00970 static KmParameter _GEANT_DRAWING_MOVE_NAME = { "NAME", 4, "Volume name",
00971 " ", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
00972 (void*)0 };
00973 static KmParameter _GEANT_DRAWING_MOVE_NOPT = { "NOPT", 4,
00974 "S=sample mode,T=tracks,H=hits", " ", (char*)0, 20, 0, (char**)0, 0,
00975 (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
00976 static KmParameter *_GEANT_DRAWING_MOVE_parameters[] = {
00977 &_GEANT_DRAWING_MOVE_NAME, &_GEANT_DRAWING_MOVE_NOPT };
00978 static char *_GEANT_DRAWING_MOVE_guidance[] = {
00979 "Positioning some daughter volumes inside a 'mother', it can be",
00980 "important to check if overlaps between such volumes have occurred.",
00981 "Instead of putting the drawing in a view bank, zooming, and iterating",
00982 "the process for different viewing angles of the same detector, the",
00983 "MOVE facility has been developed (for machines running with X11):",
00984 "it is sufficient to draw a view of the volumes to be analysed (after",
00985 "setting the proper SEEN, COLO, etc. attributes) and then to enter",
00986 "'MOVE' followed by the same 'NAME' used for the last command DRAW.",
00987 "The detector will appear in a panel with five buttons at the",
00988 "bottom: THETA, PHI, TRASL, ZOOM, OFF. Clicking on the left button",
00989 "of the mouse, when the cursor is inside the THETA area, will rotate the",
00990 "detector along the polar angle theta according to the",
00991 "backward-to-forward movement of the mouse",
00992 "(clicking up and down the left button if",
00993 "not in sample mode); clicking on the right button of",
00994 "the mouse will stop the rotation; clicking now on the",
00995 "left button of the mouse when inside the PHI area will activate a",
00996 "rotation along the polar angle phi. In the same way, activating the",
00997 "TRASL button, the detector can be translated in the u,v plane",
00998 "of the screen according to the 2D-movement of the mouse. Finally,",
00999 "activating the ZOOM button, the detector will be zoomed (or unzoomed)",
01000 "according to the backward-to-forward movement of the mouse. Clicking on\
01001 the", "OFF button will return the control to the 'command mode'. The MOVE",
01002 "command will work also with hidden line removal and shading options",
01003 "(when SHAD is on the background will be black);",
01004 "moreover, if the volumes are clipped, exploded, shifted, etc., they",
01005 "will be 'MOVED' with these features as well.",
01006 "Tracks and hits of a previously stored physical event can be moved",
01007 "together with the detector, allowing a dynamical 3-D analysis of the",
01008 "simulated events. Clicking the central button of the mouse when a good",
01009 "view of the event is found, will stop any movement and the mouse will",
01010 "allow the normal picking capabilities first for the tracks and then for",
01011 "the hits. After clicking of the right button, the normal",
01012 "movement will restart to find another interesting view of the event",
01013 "and to iterate the process.", "The MOVE is also available in sample mode.",
01014 "The following commands will produce a drawing of a volume",
01015 "and then will give the control to the MOVE panel; try the following",
01016 "possibilities:", " EXAMPLE 1 -", " dopt hide off", " satt * seen -2",
01017 " draw NAME 40 40 0 10 10 .01 .01", " move NAME", " EXAMPLE 2 -",
01018 " dopt hide on", " satt * seen -2", " draw NAME 40 40 0 10 10 .01 .01",
01019 " move NAME", " EXAMPLE 3 -", " dopt shad on", " satt * colo 3",
01020 " satt * fill 2", " dopt edge off", " draw NAME 40 40 0 10 10 .01 .01",
01021 " move NAME" };
01022 static KmCommand _GEANT_DRAWING_MOVE = { &_GEANT_DRAWING_MOVE3D,
01023 "/GEANT/DRAWING/MOVE", "MOVE", 0, 2, 2, 1, _GEANT_DRAWING_MOVE_parameters, 0,
01024 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 56,
01025 _GEANT_DRAWING_MOVE_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
01026 (char*)0, (int*)0 };
01027
01028 static char *_GEANT_DRAWING_PICK_guidance[] = {
01029 "Activates graphic input to identify detector elements",
01030 "in a cut view. Clicking on the left button of the mouse when",
01031 "the cursor is in a given point of the drawing and clicking again",
01032 "(outside the detector) will produce the following effect:",
01033 "a line joininig the two points will be drawn together with",
01034 "the name and the medium number of the volume picked",
01035 "with the first clicking close to the second point." };
01036 static KmCommand _GEANT_DRAWING_PICK = { &_GEANT_DRAWING_MOVE,
01037 "/GEANT/DRAWING/PICK", "PICK", 0, 2, 0, 0, (KmParameter**)0, 0, 0, gxpick_,
01038 (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 7, _GEANT_DRAWING_PICK_guidance,
01039 0, (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
01040
01041 static char *_GEANT_DRAWING_MEASURE_guidance[] = {
01042 "Position the cursor on the first point (u1,v1) and hit the space bar(GKS).",
01043 "Position the cursor on the second point (u2,v2) and hit the space\
01044 bar(GKS).",
01045 "Clicking the left button of the mouse (X11) will have the same effect as",
01046 "hiting the space bar (GKS).",
01047 "The command will compute and print the distance in space separating",
01048 "the two points on the projection view. It can be useful to measure",
01049 "distances either between volumes or between tracks or hits." };
01050 static KmCommand _GEANT_DRAWING_MEASURE = { &_GEANT_DRAWING_PICK,
01051 "/GEANT/DRAWING/MEASURE", "MEASURE", 0, 2, 0, 0, (KmParameter**)0, 0, 0,
01052 gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 7,
01053 _GEANT_DRAWING_MEASURE_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
01054 (char*)0, (int*)0 };
01055
01056 static KmParInt _GEANT_DRAWING_DHEAD_ISEL_type = { (char*)0, (char*)0,
01057 (char*)0, (char*)0, 0 };
01058 static KmParameter _GEANT_DRAWING_DHEAD_ISEL = { "ISEL", 4, "Option flag",
01059 "111110", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
01060 &_GEANT_DRAWING_DHEAD_ISEL_type };
01061 static KmParameter _GEANT_DRAWING_DHEAD_NAME = { "NAME", 4, "Title", " ",
01062 (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
01063 (void*)0 };
01064 static KmParReal _GEANT_DRAWING_DHEAD_CHRSIZ_type = { (char*)0, (char*)0,
01065 (char*)0, (char*)0, 0 };
01066 static KmParameter _GEANT_DRAWING_DHEAD_CHRSIZ = { "CHRSIZ", 6,
01067 "Character size (cm) of title NAME", "0.6", (char*)0, 12, 0, (char**)0, 0,
01068 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DHEAD_CHRSIZ_type };
01069 static KmParameter *_GEANT_DRAWING_DHEAD_parameters[] = {
01070 &_GEANT_DRAWING_DHEAD_ISEL, &_GEANT_DRAWING_DHEAD_NAME,
01071 &_GEANT_DRAWING_DHEAD_CHRSIZ };
01072 static char *_GEANT_DRAWING_DHEAD_guidance[] = {
01073 " CALL GDHEAD(isel,name,chrsiz)", "ISEL =",
01074 " 0 to have only the header lines",
01075 " xxxxx1 to add the text name centered on top of header",
01076 " xxxx1x to add global detector name (first volume) on left",
01077 " xxx1xx to add date on right",
01078 " xx1xxx to select thick characters for text on top of header",
01079 " x1xxxx to add the text 'EVENT NR x' on top of header",
01080 " 1xxxxx to add the text 'RUN NR x' on top of header",
01081 "NOTE that ISEL=x1xxx1 or ISEL=1xxxx1 are illegal choices,",
01082 "i.e. they generate overwritten text.", "NAME is the title",
01083 "and CHRSIZ the character size in cm of text name." };
01084 static KmCommand _GEANT_DRAWING_DHEAD = { &_GEANT_DRAWING_MEASURE,
01085 "/GEANT/DRAWING/DHEAD", "DHEAD", 0, 2, 3, 0, _GEANT_DRAWING_DHEAD_parameters,
01086 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 13,
01087 _GEANT_DRAWING_DHEAD_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
01088 (char*)0, (int*)0 };
01089
01090 static KmParReal _GEANT_DRAWING_DMAN_U_type = { (char*)0, (char*)0,
01091 (char*)0, (char*)0, 0 };
01092 static KmParameter _GEANT_DRAWING_DMAN_U = { "U", 1,
01093 "U-coord. (horizontal) of the centre of man", (char*)0, (char*)0, 12, 0,
01094 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
01095 &_GEANT_DRAWING_DMAN_U_type };
01096 static KmParReal _GEANT_DRAWING_DMAN_V_type = { (char*)0, (char*)0,
01097 (char*)0, (char*)0, 0 };
01098 static KmParameter _GEANT_DRAWING_DMAN_V = { "V", 1,
01099 "V-coord. (vertical) of the centre of man", (char*)0, (char*)0, 12, 0,
01100 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
01101 &_GEANT_DRAWING_DMAN_V_type };
01102 static char *_GEANT_DRAWING_DMAN_TYPE_range[] = { "MAN", "WM1", "WM2", "WM3" };
01103 static char *_GEANT_DRAWING_DMAN_TYPE_text[] = { (char*)0, (char*)0, (char*)0,
01104 (char*)0 };
01105 static KmParOption _GEANT_DRAWING_DMAN_TYPE_type = {
01106 _GEANT_DRAWING_DMAN_TYPE_text, (int*)0, (int*)0 };
01107 static KmParameter _GEANT_DRAWING_DMAN_TYPE = { "TYPE", 4,
01108 "Man, Wm1, Wm2, Wm3", "MAN", (char*)0, 8, 4, _GEANT_DRAWING_DMAN_TYPE_range,
01109 4, _GEANT_DRAWING_DMAN_TYPE_range, (KmParFlag)0, KmTYPE_OPTION,
01110 &_GEANT_DRAWING_DMAN_TYPE_type };
01111 static KmParameter *_GEANT_DRAWING_DMAN_parameters[] = {
01112 &_GEANT_DRAWING_DMAN_U, &_GEANT_DRAWING_DMAN_V, &_GEANT_DRAWING_DMAN_TYPE };
01113 static char *_GEANT_DRAWING_DMAN_guidance[] = {
01114 " CALL GDMAN(u,v),CALL GDWMN1(u,v),CALL GDWMN2(u,v),CALL GDWMN2(u,v)",
01115 "It superimposes the picure of a man or of a woman, chosen among",
01116 "three different ones, with the same scale factors as the detector",
01117 "in the current drawing." };
01118 static KmCommand _GEANT_DRAWING_DMAN = { &_GEANT_DRAWING_DHEAD,
01119 "/GEANT/DRAWING/DMAN", "DMAN", 0, 2, 3, 3, _GEANT_DRAWING_DMAN_parameters, 0,
01120 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
01121 _GEANT_DRAWING_DMAN_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
01122 (char*)0, (int*)0 };
01123
01124 static KmParReal _GEANT_DRAWING_DAXIS_X0_type = { (char*)0, (char*)0,
01125 (char*)0, (char*)0, 0 };
01126 static KmParameter _GEANT_DRAWING_DAXIS_X0 = { "X0", 2,
01127 "X-coord. of axis origin", (char*)0, (char*)0, 12, 0, (char**)0, 0,
01128 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DAXIS_X0_type };
01129 static KmParReal _GEANT_DRAWING_DAXIS_Y0_type = { (char*)0, (char*)0,
01130 (char*)0, (char*)0, 0 };
01131 static KmParameter _GEANT_DRAWING_DAXIS_Y0 = { "Y0", 2,
01132 "Y-coord. of axis origin", (char*)0, (char*)0, 12, 0, (char**)0, 0,
01133 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DAXIS_Y0_type };
01134 static KmParReal _GEANT_DRAWING_DAXIS_Z0_type = { (char*)0, (char*)0,
01135 (char*)0, (char*)0, 0 };
01136 static KmParameter _GEANT_DRAWING_DAXIS_Z0 = { "Z0", 2,
01137 "Z-coord. of axis origin", (char*)0, (char*)0, 12, 0, (char**)0, 0,
01138 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DAXIS_Z0_type };
01139 static KmParReal _GEANT_DRAWING_DAXIS_DX_type = { (char*)0, (char*)0,
01140 (char*)0, (char*)0, 0 };
01141 static KmParameter _GEANT_DRAWING_DAXIS_DX = { "DX", 2, "Axis size", (char*)0,
01142 (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
01143 &_GEANT_DRAWING_DAXIS_DX_type };
01144 static KmParameter *_GEANT_DRAWING_DAXIS_parameters[] = {
01145 &_GEANT_DRAWING_DAXIS_X0, &_GEANT_DRAWING_DAXIS_Y0, &_GEANT_DRAWING_DAXIS_Z0,
01146 &_GEANT_DRAWING_DAXIS_DX };
01147 static char *_GEANT_DRAWING_DAXIS_guidance[] = { " CALL GDAXIS(x0,y0,z0,dx)",
01148 "This commmand superimposes the axis of the MARS on the",
01149 "current picture. It is useful for finding immediately the",
01150 "orientation of the current drawing of the detector in the space." };
01151 static KmCommand _GEANT_DRAWING_DAXIS = { &_GEANT_DRAWING_DMAN,
01152 "/GEANT/DRAWING/DAXIS", "DAXIS", 0, 2, 4, 4, _GEANT_DRAWING_DAXIS_parameters,
01153 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
01154 _GEANT_DRAWING_DAXIS_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
01155 (char*)0, (int*)0 };
01156
01157 static KmParReal _GEANT_DRAWING_DSCALE_U_type = { (char*)0, (char*)0,
01158 (char*)0, (char*)0, 0 };
01159 static KmParameter _GEANT_DRAWING_DSCALE_U = { "U", 1,
01160 "U-coord. (horizontal) of the centre of scale", (char*)0, (char*)0, 12, 0,
01161 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
01162 &_GEANT_DRAWING_DSCALE_U_type };
01163 static KmParReal _GEANT_DRAWING_DSCALE_V_type = { (char*)0, (char*)0,
01164 (char*)0, (char*)0, 0 };
01165 static KmParameter _GEANT_DRAWING_DSCALE_V = { "V", 1,
01166 "V-coord. (vertical) of the centre of scale", (char*)0, (char*)0, 12, 0,
01167 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
01168 &_GEANT_DRAWING_DSCALE_V_type };
01169 static KmParameter *_GEANT_DRAWING_DSCALE_parameters[] = {
01170 &_GEANT_DRAWING_DSCALE_U, &_GEANT_DRAWING_DSCALE_V };
01171 static char *_GEANT_DRAWING_DSCALE_guidance[] = { " CALL GDSCAL(u,v)",
01172 "It draws a scale centered in U,V." };
01173 static KmCommand _GEANT_DRAWING_DSCALE = { &_GEANT_DRAWING_DAXIS,
01174 "/GEANT/DRAWING/DSCALE", "DSCALE", 0, 2, 2, 2,
01175 _GEANT_DRAWING_DSCALE_parameters, 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0,
01176 (pCharFunc*)0, 2, _GEANT_DRAWING_DSCALE_guidance, 0, (char**)0, 0, (char**)0,
01177 0, (char**)0, (char*)0, (int*)0 };
01178
01179 static KmParameter _GEANT_DRAWING_DVECTOR_XVECT = { "XVECT", 5,
01180 "Vector containing X-coord. (horizontal)", (char*)0, (char*)0, 20, 0,
01181 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
01182 static KmParameter _GEANT_DRAWING_DVECTOR_YVECT = { "YVECT", 5,
01183 "Vector containing Y-coord. (vertical)", (char*)0, (char*)0, 20, 0,
01184 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
01185 static KmParInt _GEANT_DRAWING_DVECTOR_NPOINT_type = { (char*)0, (char*)0,
01186 (char*)0, (char*)0, 0 };
01187 static KmParameter _GEANT_DRAWING_DVECTOR_NPOINT = { "NPOINT", 6,
01188 "Number of coord.", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
01189 (KmParFlag)0, KmTYPE_INT, &_GEANT_DRAWING_DVECTOR_NPOINT_type };
01190 static KmParameter *_GEANT_DRAWING_DVECTOR_parameters[] = {
01191 &_GEANT_DRAWING_DVECTOR_XVECT, &_GEANT_DRAWING_DVECTOR_YVECT,
01192 &_GEANT_DRAWING_DVECTOR_NPOINT };
01193 static char *_GEANT_DRAWING_DVECTOR_guidance[] = {
01194 "Draw a polyline of 'npoint' point via",
01195 "a call to GDRAWV(xvect,yvect,npoint)",
01196 "where xvect and yvect are two KUIP vectors" };
01197 static KmCommand _GEANT_DRAWING_DVECTOR = { &_GEANT_DRAWING_DSCALE,
01198 "/GEANT/DRAWING/DVECTOR", "DVECTOR", 0, 2, 3, 3,
01199 _GEANT_DRAWING_DVECTOR_parameters, 0, 0, gxdraw_, (IntFunc*)0,
01200 (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_DRAWING_DVECTOR_guidance, 0,
01201 (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
01202
01203 static KmParReal _GEANT_DRAWING_DTEXT_X0_type = { "0.", "20.", "0.", "20.",
01204 0 };
01205 static KmParameter _GEANT_DRAWING_DTEXT_X0 = { "X0", 2,
01206 "X-coord. (horizontal) of text string", "10.", (char*)0, 12, 0, (char**)0, 0,
01207 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DTEXT_X0_type };
01208 static KmParReal _GEANT_DRAWING_DTEXT_Y0_type = { "0.", "20.", "0.", "20.",
01209 0 };
01210 static KmParameter _GEANT_DRAWING_DTEXT_Y0 = { "Y0", 2,
01211 "Y-coord. (vertical) of text string", "10.", (char*)0, 12, 0, (char**)0, 0,
01212 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DTEXT_Y0_type };
01213 static KmParameter _GEANT_DRAWING_DTEXT_TEXT = { "TEXT", 4, "Text string",
01214 "GEANT", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
01215 (void*)0 };
01216 static KmParReal _GEANT_DRAWING_DTEXT_SIZE_type = { (char*)0, (char*)0,
01217 (char*)0, (char*)0, 0 };
01218 static KmParameter _GEANT_DRAWING_DTEXT_SIZE = { "SIZE", 4,
01219 "Character size (cm)", ".5", (char*)0, 12, 0, (char**)0, 0, (char**)0,
01220 (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DTEXT_SIZE_type };
01221 static KmParReal _GEANT_DRAWING_DTEXT_ANGLE_type = { "0.", "360.", "0.",
01222 "360.", 0 };
01223 static KmParameter _GEANT_DRAWING_DTEXT_ANGLE = { "ANGLE", 5,
01224 "Rotation angle (deg)", "0.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
01225 (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DTEXT_ANGLE_type };
01226 static KmParInt _GEANT_DRAWING_DTEXT_LWID_type = { (char*)0, (char*)0,
01227 (char*)0, (char*)0, 0 };
01228 static KmParameter _GEANT_DRAWING_DTEXT_LWID = { "LWID", 4, "Line width", "4",
01229 (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
01230 &_GEANT_DRAWING_DTEXT_LWID_type };
01231 static char *_GEANT_DRAWING_DTEXT_CENT_range[] = { "CENT", "LEFT", "RIGH" };
01232 static char *_GEANT_DRAWING_DTEXT_CENT_text[] = { (char*)0, (char*)0, (char*)0
01233 };
01234 static KmParOption _GEANT_DRAWING_DTEXT_CENT_type = {
01235 _GEANT_DRAWING_DTEXT_CENT_text, (int*)0, (int*)0 };
01236 static KmParameter _GEANT_DRAWING_DTEXT_CENT = { "CENT", 4,
01237 "Centering option", "CENT", (char*)0, 8, 3, _GEANT_DRAWING_DTEXT_CENT_range,
01238 3, _GEANT_DRAWING_DTEXT_CENT_range, (KmParFlag)0, KmTYPE_OPTION,
01239 &_GEANT_DRAWING_DTEXT_CENT_type };
01240 static KmParameter *_GEANT_DRAWING_DTEXT_parameters[] = {
01241 &_GEANT_DRAWING_DTEXT_X0, &_GEANT_DRAWING_DTEXT_Y0,
01242 &_GEANT_DRAWING_DTEXT_TEXT, &_GEANT_DRAWING_DTEXT_SIZE,
01243 &_GEANT_DRAWING_DTEXT_ANGLE, &_GEANT_DRAWING_DTEXT_LWID,
01244 &_GEANT_DRAWING_DTEXT_CENT };
01245 static char *_GEANT_DRAWING_DTEXT_guidance[] = {
01246 " CALL GDRAWT(x0,y0,text,size,angle,lwid,opt)",
01247 "It allows one to draw some text in the current picture.",
01248 "Now more than 160 colours are available. The text colour",
01249 "must be set via the command IGSET. The size of the",
01250 "text will follow the zooming factors in the view banks." };
01251 static KmCommand _GEANT_DRAWING_DTEXT = { &_GEANT_DRAWING_DVECTOR,
01252 "/GEANT/DRAWING/DTEXT", "DTEXT", 0, 2, 7, 7, _GEANT_DRAWING_DTEXT_parameters,
01253 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 5,
01254 _GEANT_DRAWING_DTEXT_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
01255 (char*)0, (int*)0 };
01256
01257 static KmParameter _GEANT_DRAWING_DFSPC_NAME = { "NAME", 4, "Volume name",
01258 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
01259 KmTYPE_CHAR, (void*)0 };
01260 static char *_GEANT_DRAWING_DFSPC_CSORT_range[] = { "Y", "N", "0", "1" };
01261 static char *_GEANT_DRAWING_DFSPC_CSORT_text[] = { (char*)0, (char*)0,
01262 (char*)0, (char*)0 };
01263 static KmParOption _GEANT_DRAWING_DFSPC_CSORT_type = {
01264 _GEANT_DRAWING_DFSPC_CSORT_text, (int*)0, (int*)0 };
01265 static KmParameter _GEANT_DRAWING_DFSPC_CSORT = { "CSORT", 5,
01266 "Alphabetic sorting flag", "N", (char*)0, 8, 4,
01267 _GEANT_DRAWING_DFSPC_CSORT_range, 4, _GEANT_DRAWING_DFSPC_CSORT_range,
01268 (KmParFlag)0, KmTYPE_OPTION, &_GEANT_DRAWING_DFSPC_CSORT_type };
01269 static char *_GEANT_DRAWING_DFSPC_CINTER_range[] = { "I", "B", "0", "1" };
01270 static char *_GEANT_DRAWING_DFSPC_CINTER_text[] = { (char*)0, (char*)0,
01271 (char*)0, (char*)0 };
01272 static KmParOption _GEANT_DRAWING_DFSPC_CINTER_type = {
01273 _GEANT_DRAWING_DFSPC_CINTER_text, (int*)0, (int*)0 };
01274 static KmParameter _GEANT_DRAWING_DFSPC_CINTER = { "CINTER", 6,
01275 "Interactive/Batch version", "I", (char*)0, 8, 4,
01276 _GEANT_DRAWING_DFSPC_CINTER_range, 4, _GEANT_DRAWING_DFSPC_CINTER_range,
01277 (KmParFlag)0, KmTYPE_OPTION, &_GEANT_DRAWING_DFSPC_CINTER_type };
01278 static KmParameter *_GEANT_DRAWING_DFSPC_parameters[] = {
01279 &_GEANT_DRAWING_DFSPC_NAME, &_GEANT_DRAWING_DFSPC_CSORT,
01280 &_GEANT_DRAWING_DFSPC_CINTER };
01281 static char *_GEANT_DRAWING_DFSPC_guidance[] = {
01282 " CALL GDFSPC(name,isort,inter)",
01283 "Same as DSPEC, but it will draw the specifications for all the volumes.",
01284 "If the alphabetic sorting flag is YES, all pictures will be drawn in\
01285 ascending", "alphabetic order; isort is set to 1.",
01286 "If INTERACTIVE, (inter=1), the routine will prompt the user at each plot",
01287 "before doing a clear screen, otherwise it will clear automatically",
01288 "the screen before starting a new frame." };
01289 static KmCommand _GEANT_DRAWING_DFSPC = { &_GEANT_DRAWING_DTEXT,
01290 "/GEANT/DRAWING/DFSPC", "DFSPC", 0, 2, 3, 1, _GEANT_DRAWING_DFSPC_parameters,
01291 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 7,
01292 _GEANT_DRAWING_DFSPC_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
01293 (char*)0, (int*)0 };
01294
01295 static KmParameter _GEANT_DRAWING_D3DSPEC_NAME = { "NAME", 4, "Volume name",
01296 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
01297 KmTYPE_CHAR, (void*)0 };
01298 static KmParReal _GEANT_DRAWING_D3DSPEC_TETA3_type = { "0.", "180.", "0.",
01299 "180.", 0 };
01300 static KmParameter _GEANT_DRAWING_D3DSPEC_TETA3 = { "TETA3", 5, "Theta angle",
01301 "40.", (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
01302 &_GEANT_DRAWING_D3DSPEC_TETA3_type };
01303 static KmParReal _GEANT_DRAWING_D3DSPEC_PHI3_type = { "0.", "360.", "0.",
01304 "360.", 0 };
01305 static KmParameter _GEANT_DRAWING_D3DSPEC_PHI3 = { "PHI3", 4, "Phi angle",
01306 "40.", (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
01307 &_GEANT_DRAWING_D3DSPEC_PHI3_type };
01308 static KmParReal _GEANT_DRAWING_D3DSPEC_PSI3_type = { "0.", "360.", "0.",
01309 "360.", 0 };
01310 static KmParameter _GEANT_DRAWING_D3DSPEC_PSI3 = { "PSI3", 4, "Psi angle",
01311 "0.", (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
01312 &_GEANT_DRAWING_D3DSPEC_PSI3_type };
01313 static KmParReal _GEANT_DRAWING_D3DSPEC_U03_type = { "-40.", "40.", "-40.",
01314 "40.", 0 };
01315 static KmParameter _GEANT_DRAWING_D3DSPEC_U03 = { "U03", 3,
01316 "U-coord. (horizontal) of volume origin", "10.", (char*)0, 12, 0, (char**)0,
01317 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_D3DSPEC_U03_type };
01318 static KmParReal _GEANT_DRAWING_D3DSPEC_V03_type = { "-40.", "40.", "-40.",
01319 "40.", 0 };
01320 static KmParameter _GEANT_DRAWING_D3DSPEC_V03 = { "V03", 3,
01321 "V-coord. (vertical) of volume origin", "10.", (char*)0, 12, 0, (char**)0, 0,
01322 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_D3DSPEC_V03_type };
01323 static KmParReal _GEANT_DRAWING_D3DSPEC_ZM3_type = { "0.00001", "10.",
01324 "0.00001", "10.", 5 };
01325 static KmParameter _GEANT_DRAWING_D3DSPEC_ZM3 = { "ZM3", 3,
01326 "Zoom factor for current size factors", "1.", (char*)0, 12, 0, (char**)0, 0,
01327 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_D3DSPEC_ZM3_type };
01328 static KmParameter *_GEANT_DRAWING_D3DSPEC_parameters[] = {
01329 &_GEANT_DRAWING_D3DSPEC_NAME, &_GEANT_DRAWING_D3DSPEC_TETA3,
01330 &_GEANT_DRAWING_D3DSPEC_PHI3, &_GEANT_DRAWING_D3DSPEC_PSI3,
01331 &_GEANT_DRAWING_D3DSPEC_U03, &_GEANT_DRAWING_D3DSPEC_V03,
01332 &_GEANT_DRAWING_D3DSPEC_ZM3 };
01333 static char *_GEANT_DRAWING_D3DSPEC_guidance[] = {
01334 "Trough a call to GSPE3D, this command allows one to show",
01335 "the volume (3D views in real time), together with",
01336 "its geometrical specifications (if using MOTIF). The 3D drawing will",
01337 "be performed according the current values of the options HIDE and",
01338 "SHAD and according the current CVOL clipping parameters for that", "volume."
01339 };
01340 static KmCommand _GEANT_DRAWING_D3DSPEC = { &_GEANT_DRAWING_DFSPC,
01341 "/GEANT/DRAWING/D3DSPEC", "D3DSPEC", 0, 2, 7, 1,
01342 _GEANT_DRAWING_D3DSPEC_parameters, 0, 0, gxdraw_, (IntFunc*)0,
01343 (SUBROUTINE*)0, (pCharFunc*)0, 6, _GEANT_DRAWING_D3DSPEC_guidance, 0,
01344 (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
01345
01346 static KmParameter _GEANT_DRAWING_DSPEC_NAME = { "NAME", 4, "Volume name",
01347 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
01348 KmTYPE_CHAR, (void*)0 };
01349 static KmParameter *_GEANT_DRAWING_DSPEC_parameters[] = {
01350 &_GEANT_DRAWING_DSPEC_NAME };
01351 static char *_GEANT_DRAWING_DSPEC_guidance[] = {
01352 "Trough a call to GDSPEC(name), this command allows one to show three",
01353 "views of the volume (two cut-views and a 3D view), together with",
01354 "its geometrical specifications. The 3D drawing will",
01355 "be performed according the current values of the options HIDE and",
01356 "SHAD and according the current CVOL clipping parameters for that", "volume."
01357 };
01358 static KmCommand _GEANT_DRAWING_DSPEC = { &_GEANT_DRAWING_D3DSPEC,
01359 "/GEANT/DRAWING/DSPEC", "DSPEC", 0, 2, 1, 1, _GEANT_DRAWING_DSPEC_parameters,
01360 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 6,
01361 _GEANT_DRAWING_DSPEC_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
01362 (char*)0, (int*)0 };
01363
01364 static KmParameter _GEANT_DRAWING_DTREE_NAME = { "NAME", 4, "Volume name",
01365 " ", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
01366 (void*)0 };
01367 static KmParInt _GEANT_DRAWING_DTREE_LEVMAX_type = { "-15", "15", "-15",
01368 "15", 0 };
01369 static KmParameter _GEANT_DRAWING_DTREE_LEVMAX = { "LEVMAX", 6, "Depth level",
01370 "3", (char*)0, 3, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
01371 &_GEANT_DRAWING_DTREE_LEVMAX_type };
01372 static KmParInt _GEANT_DRAWING_DTREE_ISELT_type = { (char*)0, (char*)0,
01373 (char*)0, (char*)0, 0 };
01374 static KmParameter _GEANT_DRAWING_DTREE_ISELT = { "ISELT", 5, "Options ",
01375 "111", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
01376 &_GEANT_DRAWING_DTREE_ISELT_type };
01377 static KmParameter *_GEANT_DRAWING_DTREE_parameters[] = {
01378 &_GEANT_DRAWING_DTREE_NAME, &_GEANT_DRAWING_DTREE_LEVMAX,
01379 &_GEANT_DRAWING_DTREE_ISELT };
01380 static char *_GEANT_DRAWING_DTREE_guidance[] = {
01381 "This command allows the drawing of the logical tree,",
01382 "displaying the name, the multiplicity and other information about the\
01383 volumes,", "via a call to GDTREE(name,levmax,isel):",
01384 "if the third parameter is not given (default), the command will",
01385 "produce the drawing of the tree displaying, for each volume, the",
01386 "number of the following levels (red arrows) and of the preceeding",
01387 "levels (green arrows); then the control is automatically given to the",
01388 "mouse: clicking on the left button when the cursor is inside a volume's",
01389 "pave will perform a DSPEC for that volume; doing the same when the cursor",
01390 "is on a red arrow, will perform a DTREE for the relative volume (the",
01391 "number of levels displayed depending on the clicked arrow); doing the",
01392 "same for the 'i-th' green arrow of a given volume, will perform a DTREE",
01393 "for its mother-volume staying 'i' levels before.",
01394 "If running with X-windows, the drawing of the specification (DSPEC)",
01395 "is performed",
01396 "in a different window to speed up the scanning of the tree.",
01397 "Iterating this procedure it is possible to analyse very easily and quickly",
01398 "any kind of tree. Clicking the right button of the mouse will return",
01399 "the control to the command mode.", "If the ISELT parameter is given,",
01400 "then the TREE will work as in the",
01401 "previous version, with ISELT up to 10001.",
01402 "The following command will perform a drawing of the tree and give the",
01403 "control to the user via the mouse:", " EXAMPLE -", " dtree NAME 3" };
01404 static KmCommand _GEANT_DRAWING_DTREE = { &_GEANT_DRAWING_DSPEC,
01405 "/GEANT/DRAWING/DTREE", "DTREE", 0, 2, 3, 0, _GEANT_DRAWING_DTREE_parameters,
01406 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 26,
01407 _GEANT_DRAWING_DTREE_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
01408 (char*)0, (int*)0 };
01409
01410 static KmParReal _GEANT_DRAWING_BOMB_BOOM_type = { "-10.", "10.", "-10.",
01411 "10.", 0 };
01412 static KmParameter _GEANT_DRAWING_BOMB_BOOM = { "BOOM", 4,
01413 " Exploding factor for volumes position ", "0.", (char*)0, 12, 0, (char**)0,
01414 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_BOMB_BOOM_type };
01415 static KmParameter *_GEANT_DRAWING_BOMB_parameters[] = {
01416 &_GEANT_DRAWING_BOMB_BOOM };
01417 static char *_GEANT_DRAWING_BOMB_guidance[] = {
01418 "To 'explode' the detector. If BOOM is positive (values smaller",
01419 "than 1. are suggested, but any value is possible)",
01420 "all the volumes are shifted by a distance",
01421 "proportional to BOOM along the direction between their centre",
01422 "and the origin of the MARS; the volumes which are symmetric",
01423 "with respect to this origin are simply not shown.",
01424 "BOOM equal to 0 resets the normal mode.",
01425 "A negative (greater than -1.) value of",
01426 "BOOM will cause an 'implosion'; for even lower values of BOOM",
01427 "the volumes' positions will be reflected respect to the origin.",
01428 "This command can be useful to improve the 3D effect for very",
01429 "complex detectors. The following commands will make explode the",
01430 "detector:", " EXAMPLE -", " dopt hide on", " satt * seen 1",
01431 " draw NAME 40 40 0 10 10 .01 .01", " bomb 1", " next",
01432 " draw NAME 40 40 0 10 10 .01 .01" };
01433 static KmCommand _GEANT_DRAWING_BOMB = { &_GEANT_DRAWING_DTREE,
01434 "/GEANT/DRAWING/BOMB", "BOMB", 0, 2, 1, 1, _GEANT_DRAWING_BOMB_parameters, 0,
01435 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 20,
01436 _GEANT_DRAWING_BOMB_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
01437 (char*)0, (int*)0 };
01438
01439 static KmParameter _GEANT_DRAWING_SHIFT_CNVN = { "CNVN", 4,
01440 " Name of volume to be shifted ", "*", (char*)0, 20, 0, (char**)0, 0,
01441 (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
01442 static KmParReal _GEANT_DRAWING_SHIFT_XXXX_type = { (char*)0, (char*)0,
01443 (char*)0, (char*)0, 0 };
01444 static KmParameter _GEANT_DRAWING_SHIFT_XXXX = { "XXXX", 4,
01445 " Shift along X axis ", "0.", (char*)0, 12, 0, (char**)0, 0,
01446 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_SHIFT_XXXX_type };
01447 static KmParReal _GEANT_DRAWING_SHIFT_YYYY_type = { (char*)0, (char*)0,
01448 (char*)0, (char*)0, 0 };
01449 static KmParameter _GEANT_DRAWING_SHIFT_YYYY = { "YYYY", 4,
01450 " Shift along Y axis ", "0.", (char*)0, 12, 0, (char**)0, 0,
01451 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_SHIFT_YYYY_type };
01452 static KmParReal _GEANT_DRAWING_SHIFT_ZZZZ_type = { (char*)0, (char*)0,
01453 (char*)0, (char*)0, 0 };
01454 static KmParameter _GEANT_DRAWING_SHIFT_ZZZZ = { "ZZZZ", 4,
01455 " Shift along Z axis ", "0.", (char*)0, 12, 0, (char**)0, 0,
01456 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_SHIFT_ZZZZ_type };
01457 static KmParameter *_GEANT_DRAWING_SHIFT_parameters[] = {
01458 &_GEANT_DRAWING_SHIFT_CNVN, &_GEANT_DRAWING_SHIFT_XXXX,
01459 &_GEANT_DRAWING_SHIFT_YYYY, &_GEANT_DRAWING_SHIFT_ZZZZ };
01460 static char *_GEANT_DRAWING_SHIFT_guidance[] = {
01461 "To draw a volume shifted from its initial position when hidden",
01462 "line removal is ON. It can be useful if you want to extract a",
01463 "volume or some volumes from the detector to show them more clearly.",
01464 "The last requested SHIFT for each volume",
01465 "NAME is performed. Moreover, the SHIFT of",
01466 "each volume will be performed starting from where its mother has",
01467 "been shifted, so that it's easier to SHIFT nicely sets",
01468 "of volumes using the mother-daughter relationships.",
01469 "If '.' is given as the name of the volume",
01470 "to be shifted, the shifts for all volumes will be reset.",
01471 "The following commands will produce the translation along",
01472 "the Z-axis of the previously drawn volume:", " EXAMPLE -", " dopt hide on",
01473 " satt * seen -2", " draw NAME 40 40 0 10 10 .01 .01", " shift NAME 0 0 10" };
01474 static KmCommand _GEANT_DRAWING_SHIFT = { &_GEANT_DRAWING_BOMB,
01475 "/GEANT/DRAWING/SHIFT", "SHIFT", 0, 2, 4, 4, _GEANT_DRAWING_SHIFT_parameters,
01476 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 17,
01477 _GEANT_DRAWING_SHIFT_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
01478 (char*)0, (int*)0 };
01479
01480 static KmParameter _GEANT_DRAWING_DXCUT_NAME = { "NAME", 4, "Volume name",
01481 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
01482 KmTYPE_CHAR, (void*)0 };
01483 static KmParReal _GEANT_DRAWING_DXCUT_CUTTHE_type = { "0.", "360.", "0.",
01484 "360.", 0 };
01485 static KmParameter _GEANT_DRAWING_DXCUT_CUTTHE = { "CUTTHE", 6,
01486 "Theta angle of the line normal to cut plane", (char*)0, (char*)0, 12, 0,
01487 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
01488 &_GEANT_DRAWING_DXCUT_CUTTHE_type };
01489 static KmParReal _GEANT_DRAWING_DXCUT_CUTPHI_type = { "0.", "360.", "0.",
01490 "360.", 0 };
01491 static KmParameter _GEANT_DRAWING_DXCUT_CUTPHI = { "CUTPHI", 6,
01492 "Phi angle of the line normal to cut plane", (char*)0, (char*)0, 12, 0,
01493 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
01494 &_GEANT_DRAWING_DXCUT_CUTPHI_type };
01495 static KmParReal _GEANT_DRAWING_DXCUT_CUTVAL_type = { (char*)0, (char*)0,
01496 (char*)0, (char*)0, 0 };
01497 static KmParameter _GEANT_DRAWING_DXCUT_CUTVAL = { "CUTVAL", 6,
01498 "Cut plane distance from the origin along the axis", (char*)0, (char*)0, 12,
01499 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
01500 &_GEANT_DRAWING_DXCUT_CUTVAL_type };
01501 static KmParReal _GEANT_DRAWING_DXCUT_THETA_type = { "0.", "360.", "0.",
01502 "360.", 0 };
01503 static KmParameter _GEANT_DRAWING_DXCUT_THETA = { "THETA", 5,
01504 "Viewing angle theta (for 3D projection)", (char*)0, (char*)0, 12, 0,
01505 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
01506 &_GEANT_DRAWING_DXCUT_THETA_type };
01507 static KmParReal _GEANT_DRAWING_DXCUT_PHI_type = { "0.", "360.", "0.",
01508 "360.", 0 };
01509 static KmParameter _GEANT_DRAWING_DXCUT_PHI = { "PHI", 3,
01510 "Viewing angle phi (for 3D projection)", (char*)0, (char*)0, 12, 0,
01511 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
01512 &_GEANT_DRAWING_DXCUT_PHI_type };
01513 static KmParReal _GEANT_DRAWING_DXCUT_U0_type = { (char*)0, (char*)0,
01514 (char*)0, (char*)0, 0 };
01515 static KmParameter _GEANT_DRAWING_DXCUT_U0 = { "U0", 2,
01516 "U-coord. (horizontal) of volume origin", (char*)0, (char*)0, 12, 0,
01517 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
01518 &_GEANT_DRAWING_DXCUT_U0_type };
01519 static KmParReal _GEANT_DRAWING_DXCUT_V0_type = { (char*)0, (char*)0,
01520 (char*)0, (char*)0, 0 };
01521 static KmParameter _GEANT_DRAWING_DXCUT_V0 = { "V0", 2,
01522 "V-coord. (vertical) of volume origin", (char*)0, (char*)0, 12, 0, (char**)0,
01523 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DXCUT_V0_type };
01524 static KmParReal _GEANT_DRAWING_DXCUT_SU_type = { (char*)0, (char*)0,
01525 (char*)0, (char*)0, 0 };
01526 static KmParameter _GEANT_DRAWING_DXCUT_SU = { "SU", 2,
01527 "Scale factor for U-coord.", (char*)0, (char*)0, 12, 0, (char**)0, 0,
01528 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DXCUT_SU_type };
01529 static KmParReal _GEANT_DRAWING_DXCUT_SV_type = { (char*)0, (char*)0,
01530 (char*)0, (char*)0, 0 };
01531 static KmParameter _GEANT_DRAWING_DXCUT_SV = { "SV", 2,
01532 "Scale factor for V-coord.", (char*)0, (char*)0, 12, 0, (char**)0, 0,
01533 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DXCUT_SV_type };
01534 static KmParameter *_GEANT_DRAWING_DXCUT_parameters[] = {
01535 &_GEANT_DRAWING_DXCUT_NAME, &_GEANT_DRAWING_DXCUT_CUTTHE,
01536 &_GEANT_DRAWING_DXCUT_CUTPHI, &_GEANT_DRAWING_DXCUT_CUTVAL,
01537 &_GEANT_DRAWING_DXCUT_THETA, &_GEANT_DRAWING_DXCUT_PHI,
01538 &_GEANT_DRAWING_DXCUT_U0, &_GEANT_DRAWING_DXCUT_V0, &_GEANT_DRAWING_DXCUT_SU,
01539 &_GEANT_DRAWING_DXCUT_SV };
01540 static char *_GEANT_DRAWING_DXCUT_guidance[] = {
01541 " CALL GDRAWX(name,cutthe,cutphi,cutval,theta,phi,u0,v0,su,sv)",
01542 "The cut plane is normal to the line given by the cut angles",
01543 "cutthe and cutphi and placed at the distance cutval from the origin.",
01544 "The resulting picture is seen from the viewing angles theta,phi.",
01545 "If optional parameters are missing, the current values in /GCDRAW/",
01546 "are taken." };
01547 static KmCommand _GEANT_DRAWING_DXCUT = { &_GEANT_DRAWING_SHIFT,
01548 "/GEANT/DRAWING/DXCUT", "DXCUT", 0, 2, 10, 4,
01549 _GEANT_DRAWING_DXCUT_parameters, 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0,
01550 (pCharFunc*)0, 6, _GEANT_DRAWING_DXCUT_guidance, 0, (char**)0, 0, (char**)0,
01551 0, (char**)0, (char*)0, (int*)0 };
01552
01553 static KmParameter _GEANT_DRAWING_DCUT_NAME = { "NAME", 4, "Volume name",
01554 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
01555 KmTYPE_CHAR, (void*)0 };
01556 static char *_GEANT_DRAWING_DCUT_CAXIS_range[] = { "X", "Y", "Z" };
01557 static char *_GEANT_DRAWING_DCUT_CAXIS_text[] = { (char*)0, (char*)0, (char*)0
01558 };
01559 static KmParOption _GEANT_DRAWING_DCUT_CAXIS_type = {
01560 _GEANT_DRAWING_DCUT_CAXIS_text, (int*)0, (int*)0 };
01561 static KmParameter _GEANT_DRAWING_DCUT_CAXIS = { "CAXIS", 5, "Axis value",
01562 (char*)0, (char*)0, 8, 3, _GEANT_DRAWING_DCUT_CAXIS_range, 3,
01563 _GEANT_DRAWING_DCUT_CAXIS_range, (KmParFlag)0, KmTYPE_OPTION,
01564 &_GEANT_DRAWING_DCUT_CAXIS_type };
01565 static KmParReal _GEANT_DRAWING_DCUT_CUTVAL_type = { (char*)0, (char*)0,
01566 (char*)0, (char*)0, 0 };
01567 static KmParameter _GEANT_DRAWING_DCUT_CUTVAL = { "CUTVAL", 6,
01568 "Cut plane distance from the origin along the axis", (char*)0, (char*)0, 12,
01569 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
01570 &_GEANT_DRAWING_DCUT_CUTVAL_type };
01571 static KmParReal _GEANT_DRAWING_DCUT_U0_type = { (char*)0, (char*)0,
01572 (char*)0, (char*)0, 0 };
01573 static KmParameter _GEANT_DRAWING_DCUT_U0 = { "U0", 2,
01574 "U-coord. (horizontal) of volume origin", (char*)0, (char*)0, 12, 0,
01575 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
01576 &_GEANT_DRAWING_DCUT_U0_type };
01577 static KmParReal _GEANT_DRAWING_DCUT_V0_type = { (char*)0, (char*)0,
01578 (char*)0, (char*)0, 0 };
01579 static KmParameter _GEANT_DRAWING_DCUT_V0 = { "V0", 2,
01580 "V-coord. (vertical) of volume origin", (char*)0, (char*)0, 12, 0, (char**)0,
01581 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DCUT_V0_type };
01582 static KmParReal _GEANT_DRAWING_DCUT_SU_type = { (char*)0, (char*)0,
01583 (char*)0, (char*)0, 0 };
01584 static KmParameter _GEANT_DRAWING_DCUT_SU = { "SU", 2,
01585 "Scale factor for U-coord.", (char*)0, (char*)0, 12, 0, (char**)0, 0,
01586 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DCUT_SU_type };
01587 static KmParReal _GEANT_DRAWING_DCUT_SV_type = { (char*)0, (char*)0,
01588 (char*)0, (char*)0, 0 };
01589 static KmParameter _GEANT_DRAWING_DCUT_SV = { "SV", 2,
01590 "Scale factor for V-coord.", (char*)0, (char*)0, 12, 0, (char**)0, 0,
01591 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DCUT_SV_type };
01592 static KmParameter *_GEANT_DRAWING_DCUT_parameters[] = {
01593 &_GEANT_DRAWING_DCUT_NAME, &_GEANT_DRAWING_DCUT_CAXIS,
01594 &_GEANT_DRAWING_DCUT_CUTVAL, &_GEANT_DRAWING_DCUT_U0,
01595 &_GEANT_DRAWING_DCUT_V0, &_GEANT_DRAWING_DCUT_SU, &_GEANT_DRAWING_DCUT_SV };
01596 static char *_GEANT_DRAWING_DCUT_guidance[] = {
01597 " CALL GDRAWC(name,iaxis,cutval,u0,v0,su,sv)",
01598 "The cut plane is normal to caxis (X,Y,Z), corresponding to iaxis (1,2,3),",
01599 "and placed at the distance cutval from the origin.",
01600 "The resulting picture is seen from the the same axis.",
01601 "If optional parameters are missing, the current values in /GCDRAW/",
01602 "are taken.",
01603 "When HIDE Mode is ON, it is possible to get the same effect with",
01604 "the CVOL/BOX command." };
01605 static KmCommand _GEANT_DRAWING_DCUT = { &_GEANT_DRAWING_DXCUT,
01606 "/GEANT/DRAWING/DCUT", "DCUT", 0, 2, 7, 3, _GEANT_DRAWING_DCUT_parameters, 0,
01607 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 8,
01608 _GEANT_DRAWING_DCUT_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
01609 (char*)0, (int*)0 };
01610
01611 static KmParInt _GEANT_DRAWING_DVOLUME_N_type = { (char*)0, (char*)0,
01612 (char*)0, (char*)0, 0 };
01613 static KmParameter _GEANT_DRAWING_DVOLUME_N = { "N", 1,
01614 "Number of elements in arrays LNAMES and LNUMBS", "1", (char*)0, 8, 0,
01615 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
01616 &_GEANT_DRAWING_DVOLUME_N_type };
01617 static KmParameter _GEANT_DRAWING_DVOLUME_NAMNUM = { "NAMNUM", 6,
01618 "Volume names and numbers (ex. \"NAME1,NR1,NAME2,NR2\")", (char*)0, (char*)0,
01619 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
01620 static char *_GEANT_DRAWING_DVOLUME_CHNRS_range[] = { "MARS", "DRS" };
01621 static char *_GEANT_DRAWING_DVOLUME_CHNRS_text[] = { (char*)0, (char*)0 };
01622 static KmParOption _GEANT_DRAWING_DVOLUME_CHNRS_type = {
01623 _GEANT_DRAWING_DVOLUME_CHNRS_text, (int*)0, (int*)0 };
01624 static KmParameter _GEANT_DRAWING_DVOLUME_CHNRS = { "CHNRS", 5,
01625 "Reference system used", "MARS", (char*)0, 8, 2,
01626 _GEANT_DRAWING_DVOLUME_CHNRS_range, 2, _GEANT_DRAWING_DVOLUME_CHNRS_range,
01627 (KmParFlag)0, KmTYPE_OPTION, &_GEANT_DRAWING_DVOLUME_CHNRS_type };
01628 static KmParReal _GEANT_DRAWING_DVOLUME_THETA_type = { "0.", "360.", "0.",
01629 "360.", 0 };
01630 static KmParameter _GEANT_DRAWING_DVOLUME_THETA = { "THETA", 5,
01631 "Viewing angle theta (for 3D projection)", (char*)0, (char*)0, 12, 0,
01632 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
01633 &_GEANT_DRAWING_DVOLUME_THETA_type };
01634 static KmParReal _GEANT_DRAWING_DVOLUME_PHI_type = { "0.", "360.", "0.",
01635 "360.", 0 };
01636 static KmParameter _GEANT_DRAWING_DVOLUME_PHI = { "PHI", 3,
01637 "Viewing angle phi (for 3D projection)", (char*)0, (char*)0, 12, 0,
01638 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
01639 &_GEANT_DRAWING_DVOLUME_PHI_type };
01640 static KmParReal _GEANT_DRAWING_DVOLUME_PSI_type = { "0.", "180.", "0.",
01641 "180.", 0 };
01642 static KmParameter _GEANT_DRAWING_DVOLUME_PSI = { "PSI", 3,
01643 "Viewing angle psi (for 2D rotation)", (char*)0, (char*)0, 12, 0, (char**)0,
01644 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DVOLUME_PSI_type };
01645 static KmParReal _GEANT_DRAWING_DVOLUME_U0_type = { (char*)0, (char*)0,
01646 (char*)0, (char*)0, 0 };
01647 static KmParameter _GEANT_DRAWING_DVOLUME_U0 = { "U0", 2,
01648 "U-coord. (horizontal) of volume origin", (char*)0, (char*)0, 12, 0,
01649 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
01650 &_GEANT_DRAWING_DVOLUME_U0_type };
01651 static KmParReal _GEANT_DRAWING_DVOLUME_V0_type = { (char*)0, (char*)0,
01652 (char*)0, (char*)0, 0 };
01653 static KmParameter _GEANT_DRAWING_DVOLUME_V0 = { "V0", 2,
01654 "V-coord. (vertical) of volume origin", (char*)0, (char*)0, 12, 0, (char**)0,
01655 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DVOLUME_V0_type };
01656 static KmParReal _GEANT_DRAWING_DVOLUME_SU_type = { (char*)0, (char*)0,
01657 (char*)0, (char*)0, 0 };
01658 static KmParameter _GEANT_DRAWING_DVOLUME_SU = { "SU", 2,
01659 "Scale factor for U-coord.", (char*)0, (char*)0, 12, 0, (char**)0, 0,
01660 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DVOLUME_SU_type };
01661 static KmParReal _GEANT_DRAWING_DVOLUME_SV_type = { (char*)0, (char*)0,
01662 (char*)0, (char*)0, 0 };
01663 static KmParameter _GEANT_DRAWING_DVOLUME_SV = { "SV", 2,
01664 "Scale factor for V-coord.", (char*)0, (char*)0, 12, 0, (char**)0, 0,
01665 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DVOLUME_SV_type };
01666 static KmParameter *_GEANT_DRAWING_DVOLUME_parameters[] = {
01667 &_GEANT_DRAWING_DVOLUME_N, &_GEANT_DRAWING_DVOLUME_NAMNUM,
01668 &_GEANT_DRAWING_DVOLUME_CHNRS, &_GEANT_DRAWING_DVOLUME_THETA,
01669 &_GEANT_DRAWING_DVOLUME_PHI, &_GEANT_DRAWING_DVOLUME_PSI,
01670 &_GEANT_DRAWING_DVOLUME_U0, &_GEANT_DRAWING_DVOLUME_V0,
01671 &_GEANT_DRAWING_DVOLUME_SU, &_GEANT_DRAWING_DVOLUME_SV };
01672 static char *_GEANT_DRAWING_DVOLUME_guidance[] = {
01673 " CALL GDRVOL(n,lnames,lnumbs,nrs,theta,phi,psi,u0,v0,su,sv)",
01674 "N is the number of levels from the top of the geometry structure",
01675 "to the volume lnames(n),lnumbs(n) to be drawn.",
01676 "NAMNUM contain the arrays lnames and lnumbs,",
01677 "identifying the path, in pairs and separated by commas; for",
01678 "example (with n=2) :", "'lname(1),lnumbs(1),lname(2),lnumbs(2) '",
01679 "CHNRS is the name of the reference system used: MARS for MAster Reference",
01680 "System or DRS for Daughter Reference System.",
01681 "NRS=0 for MARS or NRS<>0 for DRS",
01682 "If optional parameters are missing, the current values in /GCDRAW/",
01683 "are taken." };
01684 static KmCommand _GEANT_DRAWING_DVOLUME = { &_GEANT_DRAWING_DCUT,
01685 "/GEANT/DRAWING/DVOLUME", "DVOLUME", 0, 2, 10, 3,
01686 _GEANT_DRAWING_DVOLUME_parameters, 0, 0, gxdraw_, (IntFunc*)0,
01687 (SUBROUTINE*)0, (pCharFunc*)0, 12, _GEANT_DRAWING_DVOLUME_guidance, 0,
01688 (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
01689
01690 static KmParReal _GEANT_DRAWING_RANG5D_X1MIN_type = { (char*)0, (char*)0,
01691 (char*)0, (char*)0, 0 };
01692 static KmParameter _GEANT_DRAWING_RANG5D_X1MIN = { "X1MIN", 5,
01693 "x coordinate min", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
01694 (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_RANG5D_X1MIN_type };
01695 static KmParReal _GEANT_DRAWING_RANG5D_X1MAX_type = { (char*)0, (char*)0,
01696 (char*)0, (char*)0, 0 };
01697 static KmParameter _GEANT_DRAWING_RANG5D_X1MAX = { "X1MAX", 5,
01698 "x coordinate max", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
01699 (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_RANG5D_X1MAX_type };
01700 static KmParReal _GEANT_DRAWING_RANG5D_Y1MIN_type = { (char*)0, (char*)0,
01701 (char*)0, (char*)0, 0 };
01702 static KmParameter _GEANT_DRAWING_RANG5D_Y1MIN = { "Y1MIN", 5,
01703 "y coordinate min", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
01704 (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_RANG5D_Y1MIN_type };
01705 static KmParReal _GEANT_DRAWING_RANG5D_Y1MAX_type = { (char*)0, (char*)0,
01706 (char*)0, (char*)0, 0 };
01707 static KmParameter _GEANT_DRAWING_RANG5D_Y1MAX = { "Y1MAX", 5,
01708 "y coordinate max", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
01709 (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_RANG5D_Y1MAX_type };
01710 static KmParReal _GEANT_DRAWING_RANG5D_Z1MIN_type = { (char*)0, (char*)0,
01711 (char*)0, (char*)0, 0 };
01712 static KmParameter _GEANT_DRAWING_RANG5D_Z1MIN = { "Z1MIN", 5,
01713 "z coordinate min", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
01714 (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_RANG5D_Z1MIN_type };
01715 static KmParReal _GEANT_DRAWING_RANG5D_Z1MAX_type = { (char*)0, (char*)0,
01716 (char*)0, (char*)0, 0 };
01717 static KmParameter _GEANT_DRAWING_RANG5D_Z1MAX = { "Z1MAX", 5,
01718 "z coordinate max", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
01719 (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_RANG5D_Z1MAX_type };
01720 static KmParameter *_GEANT_DRAWING_RANG5D_parameters[] = {
01721 &_GEANT_DRAWING_RANG5D_X1MIN, &_GEANT_DRAWING_RANG5D_X1MAX,
01722 &_GEANT_DRAWING_RANG5D_Y1MIN, &_GEANT_DRAWING_RANG5D_Y1MAX,
01723 &_GEANT_DRAWING_RANG5D_Z1MIN, &_GEANT_DRAWING_RANG5D_Z1MAX };
01724 static char *_GEANT_DRAWING_RANG5D_guidance[] = {
01725 "It sets the range for the x,y,z variables." };
01726 static KmCommand _GEANT_DRAWING_RANG5D = { &_GEANT_DRAWING_DVOLUME,
01727 "/GEANT/DRAWING/RANG5D", "RANG5D", 0, 2, 6, 6,
01728 _GEANT_DRAWING_RANG5D_parameters, 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0,
01729 (pCharFunc*)0, 1, _GEANT_DRAWING_RANG5D_guidance, 0, (char**)0, 0, (char**)0,
01730 0, (char**)0, (char*)0, (int*)0 };
01731
01732 static KmParReal _GEANT_DRAWING_VAR5D_TSEQTO_type = { (char*)0, (char*)0,
01733 (char*)0, (char*)0, 0 };
01734 static KmParameter _GEANT_DRAWING_VAR5D_TSEQTO = { "TSEQTO", 6,
01735 "total sequential time", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
01736 (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_VAR5D_TSEQTO_type };
01737 static KmParInt _GEANT_DRAWING_VAR5D_NPROC_type = { (char*)0, (char*)0,
01738 (char*)0, (char*)0, 0 };
01739 static KmParameter _GEANT_DRAWING_VAR5D_NPROC = { "NPROC", 5,
01740 "number of processors", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
01741 (KmParFlag)0, KmTYPE_INT, &_GEANT_DRAWING_VAR5D_NPROC_type };
01742 static KmParInt _GEANT_DRAWING_VAR5D_NMPTOT_type = { (char*)0, (char*)0,
01743 (char*)0, (char*)0, 0 };
01744 static KmParameter _GEANT_DRAWING_VAR5D_NMPTOT = { "NMPTOT", 6,
01745 "number of message passing", (char*)0, (char*)0, 8, 0, (char**)0, 0,
01746 (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_DRAWING_VAR5D_NMPTOT_type };
01747 static KmParReal _GEANT_DRAWING_VAR5D_TOTMBY_type = { (char*)0, (char*)0,
01748 (char*)0, (char*)0, 0 };
01749 static KmParameter _GEANT_DRAWING_VAR5D_TOTMBY = { "TOTMBY", 6,
01750 "total megabytes transfert", (char*)0, (char*)0, 12, 0, (char**)0, 0,
01751 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_VAR5D_TOTMBY_type };
01752 static KmParReal _GEANT_DRAWING_VAR5D_TSEQ_type = { (char*)0, (char*)0,
01753 (char*)0, (char*)0, 0 };
01754 static KmParameter _GEANT_DRAWING_VAR5D_TSEQ = { "TSEQ", 4,
01755 "not parallelized code", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
01756 (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_VAR5D_TSEQ_type };
01757 static KmParReal _GEANT_DRAWING_VAR5D_TLAT_type = { (char*)0, (char*)0,
01758 (char*)0, (char*)0, 0 };
01759 static KmParameter _GEANT_DRAWING_VAR5D_TLAT = { "TLAT", 4, "latency time",
01760 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
01761 KmTYPE_REAL, &_GEANT_DRAWING_VAR5D_TLAT_type };
01762 static KmParReal _GEANT_DRAWING_VAR5D_TNET_type = { (char*)0, (char*)0,
01763 (char*)0, (char*)0, 0 };
01764 static KmParameter _GEANT_DRAWING_VAR5D_TNET = { "TNET", 4,
01765 "network speed in Mbytes/sec", (char*)0, (char*)0, 12, 0, (char**)0, 0,
01766 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_VAR5D_TNET_type };
01767 static KmParameter *_GEANT_DRAWING_VAR5D_parameters[] = {
01768 &_GEANT_DRAWING_VAR5D_TSEQTO, &_GEANT_DRAWING_VAR5D_NPROC,
01769 &_GEANT_DRAWING_VAR5D_NMPTOT, &_GEANT_DRAWING_VAR5D_TOTMBY,
01770 &_GEANT_DRAWING_VAR5D_TSEQ, &_GEANT_DRAWING_VAR5D_TLAT,
01771 &_GEANT_DRAWING_VAR5D_TNET };
01772 static char *_GEANT_DRAWING_VAR5D_guidance[] = {
01773 "It sets the values of the parameters expressed in the formula and",
01774 "specify which variables must be assumed as x,y,z (setting their value",
01775 "to 1001,1002,1003, respectively)." };
01776 static KmCommand _GEANT_DRAWING_VAR5D = { &_GEANT_DRAWING_RANG5D,
01777 "/GEANT/DRAWING/VAR5D", "VAR5D", 0, 2, 7, 7, _GEANT_DRAWING_VAR5D_parameters,
01778 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
01779 _GEANT_DRAWING_VAR5D_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
01780 (char*)0, (int*)0 };
01781
01782 static KmParReal _GEANT_DRAWING_SPOT_XLPOS_type = { (char*)0, (char*)0,
01783 (char*)0, (char*)0, 0 };
01784 static KmParameter _GEANT_DRAWING_SPOT_XLPOS = { "XLPOS", 5,
01785 "x coordinate of light source", (char*)0, (char*)0, 12, 0, (char**)0, 0,
01786 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_SPOT_XLPOS_type };
01787 static KmParReal _GEANT_DRAWING_SPOT_YLPOS_type = { (char*)0, (char*)0,
01788 (char*)0, (char*)0, 0 };
01789 static KmParameter _GEANT_DRAWING_SPOT_YLPOS = { "YLPOS", 5,
01790 "y coordinate of light source", (char*)0, (char*)0, 12, 0, (char**)0, 0,
01791 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_SPOT_YLPOS_type };
01792 static KmParReal _GEANT_DRAWING_SPOT_ZLPOS_type = { (char*)0, (char*)0,
01793 (char*)0, (char*)0, 0 };
01794 static KmParameter _GEANT_DRAWING_SPOT_ZLPOS = { "ZLPOS", 5,
01795 "z coordinate of light source", (char*)0, (char*)0, 12, 0, (char**)0, 0,
01796 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_SPOT_ZLPOS_type };
01797 static KmParInt _GEANT_DRAWING_SPOT_INTEN_type = { (char*)0, (char*)0,
01798 (char*)0, (char*)0, 0 };
01799 static KmParameter _GEANT_DRAWING_SPOT_INTEN = { "INTEN", 5,
01800 "intensity of light source", (char*)0, (char*)0, 8, 0, (char**)0, 0,
01801 (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_DRAWING_SPOT_INTEN_type };
01802 static KmParameter *_GEANT_DRAWING_SPOT_parameters[] = {
01803 &_GEANT_DRAWING_SPOT_XLPOS, &_GEANT_DRAWING_SPOT_YLPOS,
01804 &_GEANT_DRAWING_SPOT_ZLPOS, &_GEANT_DRAWING_SPOT_INTEN };
01805 static char *_GEANT_DRAWING_SPOT_guidance[] = {
01806 "This point-like light source can be moved in the space and its intensity",
01807 "can be changed (INTEN going from 0 to 10) relatively to the ambience light."
01808 };
01809 static KmCommand _GEANT_DRAWING_SPOT = { &_GEANT_DRAWING_VAR5D,
01810 "/GEANT/DRAWING/SPOT", "SPOT", 0, 2, 4, 4, _GEANT_DRAWING_SPOT_parameters, 0,
01811 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 2,
01812 _GEANT_DRAWING_SPOT_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
01813 (char*)0, (int*)0 };
01814
01815 static KmParameter _GEANT_DRAWING_DRAW_NAME = { "NAME", 4, "Volume name",
01816 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
01817 KmTYPE_CHAR, (void*)0 };
01818 static KmParReal _GEANT_DRAWING_DRAW_THETA_type = { "0.", "180.", "0.",
01819 "180.", 0 };
01820 static KmParameter _GEANT_DRAWING_DRAW_THETA = { "THETA", 5,
01821 "Viewing angle theta (for 3D projection)", (char*)0, (char*)0, 12, 0,
01822 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
01823 &_GEANT_DRAWING_DRAW_THETA_type };
01824 static KmParReal _GEANT_DRAWING_DRAW_PHI_type = { "0.", "360.", "0.",
01825 "360.", 0 };
01826 static KmParameter _GEANT_DRAWING_DRAW_PHI = { "PHI", 3,
01827 "Viewing angle phi (for 3D projection)", (char*)0, (char*)0, 12, 0,
01828 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
01829 &_GEANT_DRAWING_DRAW_PHI_type };
01830 static KmParReal _GEANT_DRAWING_DRAW_PSI_type = { "0.", "360.", "0.",
01831 "360.", 0 };
01832 static KmParameter _GEANT_DRAWING_DRAW_PSI = { "PSI", 3,
01833 "Viewing angle psi (for 2D rotation)", (char*)0, (char*)0, 12, 0, (char**)0,
01834 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DRAW_PSI_type };
01835 static KmParReal _GEANT_DRAWING_DRAW_U0_type = { (char*)0, (char*)0,
01836 (char*)0, (char*)0, 0 };
01837 static KmParameter _GEANT_DRAWING_DRAW_U0 = { "U0", 2,
01838 "U-coord. (horizontal) of volume origin", (char*)0, (char*)0, 12, 0,
01839 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
01840 &_GEANT_DRAWING_DRAW_U0_type };
01841 static KmParReal _GEANT_DRAWING_DRAW_V0_type = { (char*)0, (char*)0,
01842 (char*)0, (char*)0, 0 };
01843 static KmParameter _GEANT_DRAWING_DRAW_V0 = { "V0", 2,
01844 "V-coord. (vertical) of volume origin", (char*)0, (char*)0, 12, 0, (char**)0,
01845 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DRAW_V0_type };
01846 static KmParReal _GEANT_DRAWING_DRAW_SU_type = { (char*)0, (char*)0,
01847 (char*)0, (char*)0, 0 };
01848 static KmParameter _GEANT_DRAWING_DRAW_SU = { "SU", 2,
01849 "Scale factor for U-coord.", (char*)0, (char*)0, 12, 0, (char**)0, 0,
01850 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DRAW_SU_type };
01851 static KmParReal _GEANT_DRAWING_DRAW_SV_type = { (char*)0, (char*)0,
01852 (char*)0, (char*)0, 0 };
01853 static KmParameter _GEANT_DRAWING_DRAW_SV = { "SV", 2,
01854 "Scale factor for V-coord.", (char*)0, (char*)0, 12, 0, (char**)0, 0,
01855 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DRAW_SV_type };
01856 static KmParameter *_GEANT_DRAWING_DRAW_parameters[] = {
01857 &_GEANT_DRAWING_DRAW_NAME, &_GEANT_DRAWING_DRAW_THETA,
01858 &_GEANT_DRAWING_DRAW_PHI, &_GEANT_DRAWING_DRAW_PSI, &_GEANT_DRAWING_DRAW_U0,
01859 &_GEANT_DRAWING_DRAW_V0, &_GEANT_DRAWING_DRAW_SU, &_GEANT_DRAWING_DRAW_SV };
01860 static char *_GEANT_DRAWING_DRAW_guidance[] = {
01861 " CALL GDRAW(name,theta,phi,psi,u0,v0,su,sv)",
01862 "If optional parameters are missing, the corresponding values are",
01863 "taken from the common /GCDRAW/. This command will draw the volumes,",
01864 "selected with their graphical attributes, set by the SATT",
01865 "facility. The drawing may be performed with hidden line removal",
01866 "and with shading effects according to the value of the options HIDE",
01867 "and SHAD; if the option SHAD is ON, the contour's edges can be",
01868 "drawn or not. If the option HIDE is ON, the detector can be",
01869 "exploded (BOMB), clipped with different shapes (CVOL), and some",
01870 "of its parts can be shifted from their original",
01871 "position (SHIFT). When HIDE is ON, if",
01872 "the drawing requires more than the available memory, the program",
01873 "will evaluate and display the number of missing words",
01874 "(so that the user can increase the",
01875 "size of its ZEBRA store). Finally, at the end of each drawing (with HIDE\
01876 on),", "the program will print messages about the memory used and",
01877 "statistics on the volumes' visibility.",
01878 "The following commands will produce the drawing of a green",
01879 "volume, specified by NAME, without using the hidden line removal",
01880 "technique, using the hidden line removal technique,",
01881 "with different linewidth and colour (red), with",
01882 "solid colour, with shading of surfaces, and without edges.",
01883 "Finally, some examples are given for the ray-tracing. (A possible",
01884 "string for the NAME of the volume can be found using the command DTREE).",
01885 " EXAMPLE -", " satt * seen -2", " satt NAME colo 3",
01886 " draw NAME 40 40 0 10 10 .01 .01", " next", " dopt hide on",
01887 " draw NAME 40 40 0 10 10 .01 .01", " next", " satt NAME colo 2",
01888 " satt NAME lwid 4", " draw NAME 40 40 0 10 10 .01 .01", " next",
01889 " dopt shad on", " satt * lwid 1", " satt NAME fill 1",
01890 " draw NAME 40 40 0 10 10 .01 .01", " next", " satt NAME fill 3",
01891 " draw NAME 40 40 0 10 10 .01 .01", " next", " dopt edge off",
01892 " draw NAME 40 40 0 10 10 .01 .01", " dopt rayt on", " satt * fill 20",
01893 " dopt mapp 1", " draw NAME 40 40 0 10 10 .01 .01", " dopt proj pers",
01894 " persp NAME 500", " draw NAME 40 40 0 10 10 1 1", " valcut 100 100 100",
01895 " dopt mapp 0", " dopt user on", " satt NAM1 seen 0", " satt NAM2 colo 2",
01896 " draw NAME 40 40 0 10 10 5 5" };
01897 static KmCommand _GEANT_DRAWING_DRAW = { &_GEANT_DRAWING_SPOT,
01898 "/GEANT/DRAWING/DRAW", "DRAW", 0, 2, 8, 1, _GEANT_DRAWING_DRAW_parameters, 0,
01899 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 59,
01900 _GEANT_DRAWING_DRAW_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
01901 (char*)0, (int*)0 };
01902
01903 static char *_GEANT_DRAWING_guidance[] = {
01904 "Drawing commands. These commands allow the visualization in several ways",
01905 "of the volumes defined in the geometrical data structure. It is possible",
01906 "to draw the logical tree of volumes belonging to the detector (DTREE),",
01907 "to show their geometrical specification (DSPEC,DFSPC), to draw them",
01908 "and their cut views (DRAW, DCUT). Moreover, it is possible to execute",
01909 "these commands when the hidden line removal option is activated; in",
01910 "this case, the volumes can be also either translated in the space",
01911 "(SHIFT), or clipped by boolean operation (CVOL). In addition, it is",
01912 "possible to fill the surfaces of the volumes",
01913 "with solid colours when the shading option (SHAD) is activated.",
01914 "Several tools (ZOOM, LENS) have been developed to zoom detailed parts",
01915 "of the detectors or to scan physical events as well.",
01916 "Finally, the command MOVE will allow the rotation, translation and zooming",
01917 "on real time parts of the detectors or tracks and hits of a simulated\
01918 event.",
01919 "Ray-tracing commands. In case the command (DOPT RAYT ON) is executed,",
01920 "the drawing is performed by the Geant ray-tracing;",
01921 "automatically, the color is assigned according to the tracking medium of\
01922 each",
01923 "volume and the volumes with a density lower/equal than the air are\
01924 considered",
01925 "transparent; if the option (USER) is set (ON) (again via the command\
01926 (DOPT)),",
01927 "the user can set color and visibility for the desired volumes via the\
01928 command",
01929 "(SATT), as usual, relatively to the attributes (COLO) and (SEEN).",
01930 "The resolution can be set via the command (SATT * FILL VALUE), where\
01931 (VALUE)",
01932 "is the ratio between the number of pixels drawn and 20 (user coordinates).",
01933 "Parallel view and perspective view are possible (DOPT PROJ PARA/PERS); in\
01934 the",
01935 "first case, we assume that the first mother volume of the tree is a box\
01936 with",
01937 "dimensions 10000 X 10000 X 10000 cm and the view point (infinetely far) is",
01938 "5000 cm far from the origin along the Z axis of the user coordinates; in\
01939 the",
01940 "second case, the distance between the observer and the origin of the world",
01941 "reference system is set in cm by the command (PERSP NAME VALUE);\
01942 grand-angle",
01943 "or telescopic effects can be achieved changing the scale factors in the\
01944 command", "(DRAW). When the final picture does not occupy the full window,",
01945 "mapping the space before tracing can speed up the drawing, but can also",
01946 "produce less precise results; values from 1 to 4 are allowed in the\
01947 command",
01948 "(DOPT MAPP VALUE), the mapping being more precise for increasing (VALUE);\
01949 for",
01950 "(VALUE = 0) no mapping is performed (therefore max precision and lowest\
01951 speed).",
01952 "The command (VALCUT) allows the cutting of the detector by three planes",
01953 "ortogonal to the x,y,z axis. The attribute (LSTY) can be set by the\
01954 command",
01955 "SATT for any desired volume and can assume values from 0 to 7; it\
01956 determines",
01957 "the different light processing to be performed for different materials:",
01958 "0 = dark-matt, 1 = bright-matt, 2 = plastic, 3 = ceramic, 4 =\
01959 rough-metals,",
01960 "5 = shiny-metals, 6 = glass, 7 = mirror. The detector is assumed to be in\
01961 the",
01962 "dark, the ambient light luminosity is 0.2 for each basic hue (the\
01963 saturation",
01964 "is 0.9) and the observer is assumed to have a light source (therefore he\
01965 will",
01966 "produce parallel light in the case of parallel view and point-like-source",
01967 "light in the case of perspective view)." };
01968 static KmMenu _GEANT_DRAWING = { (KmMenu*)0, (KmMenu*)0, "/GEANT/DRAWING",
01969 "DRAWING", 2, &_GEANT_DRAWING_DRAW, 45, _GEANT_DRAWING_guidance, 0,
01970 (char**)0, 0, (char**)0 };
01971
01972 static char *_GEANT_CVOL_guidance[] = { "Clipping commands.",
01973 "The hidden line removal technique is necessary to visualize properly",
01974 "very complex detectors. At the same time, it can be useful to visualize",
01975 "the inner elements of a detector in detail. For this purpose, the",
01976 "commands menu CVOL has been developed: these commands allow",
01977 "subtractions (via boolean operation) of given shapes from any part of",
01978 "the detector, therefore showing its inner contents. It is possible",
01979 "to clip each different volume by means of a different shape (BOX ,",
01980 "TUBE, CONE, SPHE are available). If '*' is given as the name of the",
01981 "volume to be clipped, all volumes are clipped by the given shape.",
01982 "A volume can be clipped at most twice (even by",
01983 "different shapes); if a volume is explicitely clipped",
01984 "twice, the '*' will not act on it anymore. Giving '.' as the name",
01985 "of the volume to be clipped will reset the clipping." };
01986 static KmMenu _GEANT_CVOL = { &_GEANT_DRAWING, (KmMenu*)0, "/GEANT/CVOL",
01987 "CVOL", 2, &_GEANT_CVOL_BOX, 14, _GEANT_CVOL_guidance, 0, (char**)0, 0,
01988 (char**)0 };
01989
01990 static char *_GEANT_guidance[] = { "GEANT specific commands." };
01991 static KmMenu _GEANT = { (KmMenu*)0, &_GEANT_CVOL, "/GEANT", "GEANT", 1,
01992 (KmCommand*)0, 1, _GEANT_guidance, 0, (char**)0, 0, (char**)0 };
01993
01994 klnkmenu( &_GEANT, 950303 );
01995 }
01996
01997
01998 #ifdef F77_LCASE
01999 # define gkgcon_ gkgcon
02000 # define gxgcon_ gxgcon
02001 #endif
02002
02003 #ifdef F77_UCASE
02004 # define gkgcon_ GKGCON
02005 # define gxgcon_ GXGCON
02006 #endif
02007
02008 #ifdef IBM370
02009 # pragma linkage(GKGCON,FORTRAN)
02010 # pragma linkage(GXGCON,FORTRAN)
02011 #endif
02012
02013 extern void gkgcon_();
02014 extern void gxgcon_();
02015
02016 void gkgcon_()
02017 {
02018
02019 static KmParInt _GEANT_GRAPHICS_CONTROL_MAP_COLOR_ICADD_type = { (char*)0,
02020 (char*)0, (char*)0, (char*)0, 0 };
02021 static KmParameter _GEANT_GRAPHICS_CONTROL_MAP_COLOR_ICADD = { "ICADD", 5,
02022 "Colour table index", "0", (char*)0, 8, 0, (char**)0, 0, (char**)0,
02023 (KmParFlag)0, KmTYPE_INT, &_GEANT_GRAPHICS_CONTROL_MAP_COLOR_ICADD_type };
02024 static KmParInt _GEANT_GRAPHICS_CONTROL_MAP_COLOR_ICVAL_type = { (char*)0,
02025 (char*)0, (char*)0, (char*)0, 0 };
02026 static KmParameter _GEANT_GRAPHICS_CONTROL_MAP_COLOR_ICVAL = { "ICVAL", 5,
02027 "Colour table value", "0", (char*)0, 8, 0, (char**)0, 0, (char**)0,
02028 (KmParFlag)0, KmTYPE_INT, &_GEANT_GRAPHICS_CONTROL_MAP_COLOR_ICVAL_type };
02029 static KmParameter *_GEANT_GRAPHICS_CONTROL_MAP_COLOR_parameters[] = {
02030 &_GEANT_GRAPHICS_CONTROL_MAP_COLOR_ICADD,
02031 &_GEANT_GRAPHICS_CONTROL_MAP_COLOR_ICVAL };
02032 static char *_GEANT_GRAPHICS_CONTROL_MAP_COLOR_guidance[] = {
02033 "Sets the color table LOOKTB(ICADD)=ICVAL.",
02034 "If ICADD=0 then LOOKTB(1:16) is taken.",
02035 "If ICVAL is omitted the current value of LOOKTB(ICADD) is shown." };
02036 static KmCommand _GEANT_GRAPHICS_CONTROL_MAP_COLOR = { (KmCommand*)0,
02037 "/GEANT/GRAPHICS_CONTROL/MAP_COLOR", "MAP_COLOR", 0, 2, 2, 0,
02038 _GEANT_GRAPHICS_CONTROL_MAP_COLOR_parameters, 0, 0, gxgcon_, (IntFunc*)0,
02039 (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_GRAPHICS_CONTROL_MAP_COLOR_guidance,
02040 0, (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
02041
02042 static KmParReal _GEANT_GRAPHICS_CONTROL_SPERS_DPERS_type = { (char*)0,
02043 (char*)0, (char*)0, (char*)0, 0 };
02044 static KmParameter _GEANT_GRAPHICS_CONTROL_SPERS_DPERS = { "DPERS", 5,
02045 "Distance from the origin", (char*)0, (char*)0, 12, 0, (char**)0, 0,
02046 (char**)0, (KmParFlag)0, KmTYPE_REAL,
02047 &_GEANT_GRAPHICS_CONTROL_SPERS_DPERS_type };
02048 static KmParameter *_GEANT_GRAPHICS_CONTROL_SPERS_parameters[] = {
02049 &_GEANT_GRAPHICS_CONTROL_SPERS_DPERS };
02050 static char *_GEANT_GRAPHICS_CONTROL_SPERS_guidance[] = {
02051 "Set the variable dpers in /GCDRAW/, representing",
02052 "the distance from the origin when using option PERSpective." };
02053 static KmCommand _GEANT_GRAPHICS_CONTROL_SPERS = {
02054 &_GEANT_GRAPHICS_CONTROL_MAP_COLOR, "/GEANT/GRAPHICS_CONTROL/SPERS", "SPERS",
02055 0, 2, 1, 1, _GEANT_GRAPHICS_CONTROL_SPERS_parameters, 0, 0, gxgcon_,
02056 (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 2,
02057 _GEANT_GRAPHICS_CONTROL_SPERS_guidance, 0, (char**)0, 0, (char**)0, 0,
02058 (char**)0, (char*)0, (int*)0 };
02059
02060 static KmParReal _GEANT_GRAPHICS_CONTROL_SIZE_XSIZE_type = { (char*)0,
02061 (char*)0, (char*)0, (char*)0, 0 };
02062 static KmParameter _GEANT_GRAPHICS_CONTROL_SIZE_XSIZE = { "XSIZE", 5,
02063 "Size along X", "20.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
02064 (KmParFlag)0, KmTYPE_REAL, &_GEANT_GRAPHICS_CONTROL_SIZE_XSIZE_type };
02065 static KmParReal _GEANT_GRAPHICS_CONTROL_SIZE_YSIZE_type = { (char*)0,
02066 (char*)0, (char*)0, (char*)0, 0 };
02067 static KmParameter _GEANT_GRAPHICS_CONTROL_SIZE_YSIZE = { "YSIZE", 5,
02068 "Size along Y", "20.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
02069 (KmParFlag)0, KmTYPE_REAL, &_GEANT_GRAPHICS_CONTROL_SIZE_YSIZE_type };
02070 static KmParameter *_GEANT_GRAPHICS_CONTROL_SIZE_parameters[] = {
02071 &_GEANT_GRAPHICS_CONTROL_SIZE_XSIZE, &_GEANT_GRAPHICS_CONTROL_SIZE_YSIZE };
02072 static char *_GEANT_GRAPHICS_CONTROL_SIZE_guidance[] = {
02073 "Set the size of the picture.",
02074 "On the terminal, the pictures will have the ratio YSIZE/XSIZE, and,",
02075 "if a metafile is produced, pictures will be YSIZE by XSIZE cm.",
02076 "This command sets the parameters for the normalisation transformation",
02077 "number 1 to [0-XSIZE], [0-YSIZE]." };
02078 static KmCommand _GEANT_GRAPHICS_CONTROL_SIZE = {
02079 &_GEANT_GRAPHICS_CONTROL_SPERS, "/GEANT/GRAPHICS_CONTROL/SIZE", "SIZE", 0, 2,
02080 2, 0, _GEANT_GRAPHICS_CONTROL_SIZE_parameters, 0, 0, gxgcon_, (IntFunc*)0,
02081 (SUBROUTINE*)0, (pCharFunc*)0, 5, _GEANT_GRAPHICS_CONTROL_SIZE_guidance, 0,
02082 (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
02083
02084 static KmParameter _GEANT_GRAPHICS_CONTROL_DOPT_IOPT = { "IOPT", 4,
02085 "Option name", "*", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02086 KmTYPE_CHAR, (void*)0 };
02087 static KmParameter _GEANT_GRAPHICS_CONTROL_DOPT_IVAL = { "IVAL", 4,
02088 "Option value", "*", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02089 KmTYPE_CHAR, (void*)0 };
02090 static KmParameter *_GEANT_GRAPHICS_CONTROL_DOPT_parameters[] = {
02091 &_GEANT_GRAPHICS_CONTROL_DOPT_IOPT, &_GEANT_GRAPHICS_CONTROL_DOPT_IVAL };
02092 static char *_GEANT_GRAPHICS_CONTROL_DOPT_guidance[] = {
02093 " CALL GDOPT(iopt,ival)", "To set/modify the drawing options.",
02094 " IOPT IVAL Action", " THRZ ON Draw tracks in R vs Z",
02095 " OFF (D) Draw tracks in X,Y,Z", " 180",
02096 " 360", " PROJ PARA (D) Parallel projection",
02097 " PERS Perspective",
02098 " TRAK LINE (D) Trajectory drawn with lines",
02099 " POIN \" \" with markers",
02100 " HIDE ON Hidden line removal using the CG package",
02101 " OFF (D) No hidden line removal",
02102 " SHAD ON Fill area and shading of surfaces.",
02103 " OFF (D) Normal hidden line removal.",
02104 " RAYT ON Ray-tracing on.",
02105 " OFF (D) Ray-tracing off.",
02106 " EDGE OFF Does not draw contours when shad is on.",
02107 " ON (D) Normal shading.",
02108 " MAPP 1,2,3,4 Mapping before ray-tracing.",
02109 " 0 (D) No mapping.",
02110 " USER ON User graphics options in the raytracing.",
02111 " OFF (D) Automatic graphics options." };
02112 static KmCommand _GEANT_GRAPHICS_CONTROL_DOPT = {
02113 &_GEANT_GRAPHICS_CONTROL_SIZE, "/GEANT/GRAPHICS_CONTROL/DOPT", "DOPT", 0, 2,
02114 2, 0, _GEANT_GRAPHICS_CONTROL_DOPT_parameters, 0, 0, gxgcon_, (IntFunc*)0,
02115 (SUBROUTINE*)0, (pCharFunc*)0, 23, _GEANT_GRAPHICS_CONTROL_DOPT_guidance, 0,
02116 (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
02117
02118 static char *_GEANT_GRAPHICS_CONTROL_NEXT_guidance[] = {
02119 "Clear screen (start a new picture on graphics file, if opened)." };
02120 static KmCommand _GEANT_GRAPHICS_CONTROL_NEXT = {
02121 &_GEANT_GRAPHICS_CONTROL_DOPT, "/GEANT/GRAPHICS_CONTROL/NEXT", "NEXT", 0, 2,
02122 0, 0, (KmParameter**)0, 0, 0, gxgcon_, (IntFunc*)0, (SUBROUTINE*)0,
02123 (pCharFunc*)0, 1, _GEANT_GRAPHICS_CONTROL_NEXT_guidance, 0, (char**)0, 0,
02124 (char**)0, 0, (char**)0, (char*)0, (int*)0 };
02125
02126 static KmParInt _GEANT_GRAPHICS_CONTROL_LWID_LWIDTH_type = { (char*)0,
02127 (char*)0, (char*)0, (char*)0, 0 };
02128 static KmParameter _GEANT_GRAPHICS_CONTROL_LWID_LWIDTH = { "LWIDTH", 6,
02129 "Line width code", "1", (char*)0, 8, 0, (char**)0, 0, (char**)0,
02130 (KmParFlag)0, KmTYPE_INT, &_GEANT_GRAPHICS_CONTROL_LWID_LWIDTH_type };
02131 static KmParameter *_GEANT_GRAPHICS_CONTROL_LWID_parameters[] = {
02132 &_GEANT_GRAPHICS_CONTROL_LWID_LWIDTH };
02133 static char *_GEANT_GRAPHICS_CONTROL_LWID_guidance[] = {
02134 " CALL GDLW(-abs(lwidth))" };
02135 static KmCommand _GEANT_GRAPHICS_CONTROL_LWID = {
02136 &_GEANT_GRAPHICS_CONTROL_NEXT, "/GEANT/GRAPHICS_CONTROL/LWID", "LWID", 0, 2,
02137 1, 1, _GEANT_GRAPHICS_CONTROL_LWID_parameters, 0, 0, gxgcon_, (IntFunc*)0,
02138 (SUBROUTINE*)0, (pCharFunc*)0, 1, _GEANT_GRAPHICS_CONTROL_LWID_guidance, 0,
02139 (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
02140
02141 static KmParInt _GEANT_GRAPHICS_CONTROL_COLOR_ICOL_type = { (char*)0,
02142 (char*)0, (char*)0, (char*)0, 0 };
02143 static KmParameter _GEANT_GRAPHICS_CONTROL_COLOR_ICOL = { "ICOL", 4,
02144 "Colour code", "1", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02145 KmTYPE_INT, &_GEANT_GRAPHICS_CONTROL_COLOR_ICOL_type };
02146 static KmParameter *_GEANT_GRAPHICS_CONTROL_COLOR_parameters[] = {
02147 &_GEANT_GRAPHICS_CONTROL_COLOR_ICOL };
02148 static char *_GEANT_GRAPHICS_CONTROL_COLOR_guidance[] = {
02149 " CALL GDCOL(-abs(icol))" };
02150 static KmCommand _GEANT_GRAPHICS_CONTROL_COLOR = {
02151 &_GEANT_GRAPHICS_CONTROL_LWID, "/GEANT/GRAPHICS_CONTROL/COLOR", "COLOR", 0,
02152 2, 1, 1, _GEANT_GRAPHICS_CONTROL_COLOR_parameters, 0, 0, gxgcon_,
02153 (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
02154 _GEANT_GRAPHICS_CONTROL_COLOR_guidance, 0, (char**)0, 0, (char**)0, 0,
02155 (char**)0, (char*)0, (int*)0 };
02156
02157 static KmParReal _GEANT_GRAPHICS_CONTROL_SCALE_GSCU_type = { (char*)0,
02158 (char*)0, (char*)0, (char*)0, 0 };
02159 static KmParameter _GEANT_GRAPHICS_CONTROL_SCALE_GSCU = { "GSCU", 4,
02160 "Scale factor for U-coord.", (char*)0, (char*)0, 12, 0, (char**)0, 0,
02161 (char**)0, (KmParFlag)0, KmTYPE_REAL,
02162 &_GEANT_GRAPHICS_CONTROL_SCALE_GSCU_type };
02163 static KmParReal _GEANT_GRAPHICS_CONTROL_SCALE_GSCV_type = { (char*)0,
02164 (char*)0, (char*)0, (char*)0, 0 };
02165 static KmParameter _GEANT_GRAPHICS_CONTROL_SCALE_GSCV = { "GSCV", 4,
02166 "Scale factor for V-coord.", (char*)0, (char*)0, 12, 0, (char**)0, 0,
02167 (char**)0, (KmParFlag)0, KmTYPE_REAL,
02168 &_GEANT_GRAPHICS_CONTROL_SCALE_GSCV_type };
02169 static KmParameter *_GEANT_GRAPHICS_CONTROL_SCALE_parameters[] = {
02170 &_GEANT_GRAPHICS_CONTROL_SCALE_GSCU, &_GEANT_GRAPHICS_CONTROL_SCALE_GSCV };
02171 static char *_GEANT_GRAPHICS_CONTROL_SCALE_guidance[] = {
02172 "Change the scale factors GSCU and GSCV in /GCDRAW/." };
02173 static KmCommand _GEANT_GRAPHICS_CONTROL_SCALE = {
02174 &_GEANT_GRAPHICS_CONTROL_COLOR, "/GEANT/GRAPHICS_CONTROL/SCALE", "SCALE", 0,
02175 2, 2, 2, _GEANT_GRAPHICS_CONTROL_SCALE_parameters, 0, 0, gxgcon_,
02176 (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
02177 _GEANT_GRAPHICS_CONTROL_SCALE_guidance, 0, (char**)0, 0, (char**)0, 0,
02178 (char**)0, (char*)0, (int*)0 };
02179
02180 static KmParameter _GEANT_GRAPHICS_CONTROL_SATT_NAME = { "NAME", 4,
02181 "Volume name", "* ", (char*)0, 20, 0, (char**)0, 0, (char**)0,
02182 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
02183 static KmParameter _GEANT_GRAPHICS_CONTROL_SATT_IOPT = { "IOPT", 4,
02184 "Name of the attribute to be set", "DEFA", (char*)0, 20, 0, (char**)0, 0,
02185 (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
02186 static KmParInt _GEANT_GRAPHICS_CONTROL_SATT_IVAL_type = { (char*)0,
02187 (char*)0, (char*)0, (char*)0, 0 };
02188 static KmParameter _GEANT_GRAPHICS_CONTROL_SATT_IVAL = { "IVAL", 4,
02189 "Value to which the attribute is to be set", "10000", (char*)0, 8, 0,
02190 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
02191 &_GEANT_GRAPHICS_CONTROL_SATT_IVAL_type };
02192 static KmParameter *_GEANT_GRAPHICS_CONTROL_SATT_parameters[] = {
02193 &_GEANT_GRAPHICS_CONTROL_SATT_NAME, &_GEANT_GRAPHICS_CONTROL_SATT_IOPT,
02194 &_GEANT_GRAPHICS_CONTROL_SATT_IVAL };
02195 static char *_GEANT_GRAPHICS_CONTROL_SATT_guidance[] = {
02196 " CALL GSATT(name,iopt,ival)", "name='*' stands for all the volumes.",
02197 "iopt can be chosen among the following :",
02198 " 'WORK' 0=volume name is inactive for the tracking",
02199 " 1=volume name is active for the tracking (default)",
02200 " 'SEEN' 0=volume name is invisible",
02201 " 1=volume name is visible (default)",
02202 " -1=volume invisible with all its descendants in the tree",
02203 " -2=volume visible but not its descendants in the tree",
02204 " 'LSTY' line style 1,2,3,... (default=1)",
02205 " LSTY=7 will produce a very precise approximation for",
02206 " revolution bodies.",
02207 " 'LWID' line width -7,...,1,2,3,..7 (default=1)",
02208 " LWID<0 will act as abs(LWID) was set for the volume",
02209 " and for all the levels below it. When SHAD is 'ON', LWID",
02210 " represent the linewidth of the scan lines filling the surfaces",
02211 " (whereas the FILL value represent their number). Therefore",
02212 " tuning this parameter will help to obtain the desired",
02213 " quality/performance ratio.",
02214 " 'COLO' colour code -166,...,1,2,..166 (default=1)",
02215 " n=1=black",
02216 " n=2=red; n=17+m, m=0,25, increasing luminosity according to\
02217 'm';",
02218 " n=3=green; n=67+m, m=0,25, increasing luminosity according to\
02219 'm';",
02220 " n=4=blue; n=117+m, m=0,25, increasing luminosity according to\
02221 'm';",
02222 " n=5=yellow; n=42+m, m=0,25, increasing luminosity according to\
02223 'm';",
02224 " n=6=violet; n=142+m, m=0,25, increasing luminosity according to\
02225 'm';",
02226 " n=7=lightblue; n=92+m, m=0,25, increasing luminosity according to\
02227 'm';", " colour=n*10+m, m=1,2,...9, will produce the same colour",
02228 " as 'n', but with increasing luminosity according to 'm';",
02229 " COLO<0 will act as if abs(COLO) was set for the volume",
02230 " and for all the levels below it.",
02231 " When for a volume the attribute FILL is > 1 (and the",
02232 " option SHAD is on), the ABS of its colour code must be < 8",
02233 " because an automatic shading of its faces will be",
02234 " performed.",
02235 " 'FILL' (1992) fill area -7,...,0,1,...7 (default=0)",
02236 " when option SHAD is 'on' the FILL attribute of any",
02237 " volume can be set different from 0 (normal drawing);",
02238 " if it is set to 1, the faces of such volume will be filled",
02239 " with solid colours; if ABS(FILL) is > 1, then a light",
02240 " source is placed along the observer line, and the faces of",
02241 " such volumes will be painted by colours whose luminosity",
02242 " will depend on the amount of light reflected;",
02243 " if ABS(FILL) = 1, then it is possible to use all the 166",
02244 " colours of the colour table, becouse the automatic shading",
02245 " is not performed;",
02246 " for increasing values of FILL the drawing will be performed",
02247 " with higher and higher resolution improving the quality (the",
02248 " number of scan lines used to fill the faces increases with\
02249 FILL);", " it is possible to set different values of FILL",
02250 " for different volumes, in order to optimize at the same time",
02251 " the performance and the quality of the picture;",
02252 " FILL<0 will act as if abs(FILL) was set for the volume",
02253 " and for all the levels below it.",
02254 " This kind of drawing can be saved in 'picture files'",
02255 " or in view banks.", " 0=drawing without fill area",
02256 " 1=faces filled with solid colours and resolution = 6",
02257 " 2=lowest resolution (very fast)",
02258 " 3=default resolution", " 4=.................",
02259 " 5=.................", " 6=.................",
02260 " 7=max resolution",
02261 " Finally, if a coloured background is desired, the FILL",
02262 " attribute for the first volume of the tree must be set",
02263 " equal to -abs(colo), colo being >0 and <166.",
02264 " 'SET ' set number associated to volume name",
02265 " 'DET ' detector number associated to volume name",
02266 " 'DTYP' detector type (1,2)" };
02267 static KmCommand _GEANT_GRAPHICS_CONTROL_SATT = {
02268 &_GEANT_GRAPHICS_CONTROL_SCALE, "/GEANT/GRAPHICS_CONTROL/SATT", "SATT", 0, 2,
02269 3, 0, _GEANT_GRAPHICS_CONTROL_SATT_parameters, 0, 0, gxgcon_, (IntFunc*)0,
02270 (SUBROUTINE*)0, (pCharFunc*)0, 70, _GEANT_GRAPHICS_CONTROL_SATT_guidance, 0,
02271 (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
02272
02273 static KmParReal _GEANT_GRAPHICS_CONTROL_SSETVA_RVAL_type = { "-10.", "10.",
02274 "-10.", "10.", 0 };
02275 static KmParameter _GEANT_GRAPHICS_CONTROL_SSETVA_RVAL = { "RVAL", 4,
02276 "Attribute value", "1.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
02277 (KmParFlag)0, KmTYPE_REAL, &_GEANT_GRAPHICS_CONTROL_SSETVA_RVAL_type };
02278 static KmParameter *_GEANT_GRAPHICS_CONTROL_SSETVA_parameters[] = {
02279 &_GEANT_GRAPHICS_CONTROL_SSETVA_RVAL };
02280 static char *_GEANT_GRAPHICS_CONTROL_SSETVA_guidance[] = {
02281 "Set current attribute value." };
02282 static KmCommand _GEANT_GRAPHICS_CONTROL_SSETVA = {
02283 &_GEANT_GRAPHICS_CONTROL_SATT, "/GEANT/GRAPHICS_CONTROL/SSETVA", "SSETVA", 0,
02284 2, 1, 0, _GEANT_GRAPHICS_CONTROL_SSETVA_parameters, 0, 0, gxgcon_,
02285 (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
02286 _GEANT_GRAPHICS_CONTROL_SSETVA_guidance, 0, (char**)0, 0, (char**)0, 0,
02287 (char**)0, (char*)0, (int*)0 };
02288
02289 static KmParameter _GEANT_GRAPHICS_CONTROL_SSETAT_IOPT = { "IOPT", 4,
02290 "Attribute name", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
02291 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
02292 static KmParameter *_GEANT_GRAPHICS_CONTROL_SSETAT_parameters[] = {
02293 &_GEANT_GRAPHICS_CONTROL_SSETAT_IOPT };
02294 static char *_GEANT_GRAPHICS_CONTROL_SSETAT_guidance[] = {
02295 "Set current attribute." };
02296 static KmCommand _GEANT_GRAPHICS_CONTROL_SSETAT = {
02297 &_GEANT_GRAPHICS_CONTROL_SSETVA, "/GEANT/GRAPHICS_CONTROL/SSETAT", "SSETAT",
02298 0, 2, 1, 1, _GEANT_GRAPHICS_CONTROL_SSETAT_parameters, 0, 0, gxgcon_,
02299 (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
02300 _GEANT_GRAPHICS_CONTROL_SSETAT_guidance, 0, (char**)0, 0, (char**)0, 0,
02301 (char**)0, (char*)0, (int*)0 };
02302
02303 static char *_GEANT_GRAPHICS_CONTROL_RESETWK_guidance[] = { "CALL GRESWK",
02304 "It deactivate the previosly activated workstation and reactivate the",
02305 "default one." };
02306 static KmCommand _GEANT_GRAPHICS_CONTROL_RESETWK = {
02307 &_GEANT_GRAPHICS_CONTROL_SSETAT, "/GEANT/GRAPHICS_CONTROL/RESETWK",
02308 "RESETWK", 0, 2, 0, 0, (KmParameter**)0, 0, 0, gxgcon_, (IntFunc*)0,
02309 (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_GRAPHICS_CONTROL_RESETWK_guidance,
02310 0, (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
02311
02312 static char *_GEANT_GRAPHICS_CONTROL_CHANGEWK_guidance[] = { "CALL GCHNWK",
02313 "It open a new workstation (if not already opened) and activate it",
02314 "(deactivating the default one)." };
02315 static KmCommand _GEANT_GRAPHICS_CONTROL_CHANGEWK = {
02316 &_GEANT_GRAPHICS_CONTROL_RESETWK, "/GEANT/GRAPHICS_CONTROL/CHANGEWK",
02317 "CHANGEWK", 0, 2, 0, 0, (KmParameter**)0, 0, 0, gxgcon_, (IntFunc*)0,
02318 (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_GRAPHICS_CONTROL_CHANGEWK_guidance,
02319 0, (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
02320
02321 static char *_GEANT_GRAPHICS_CONTROL_DCLOSE_guidance[] = { " CALL GDCLOS",
02322 "It closes the currently open view bank; it must be called after the",
02323 "end of the drawing to be stored." };
02324 static KmCommand _GEANT_GRAPHICS_CONTROL_DCLOSE = {
02325 &_GEANT_GRAPHICS_CONTROL_CHANGEWK, "/GEANT/GRAPHICS_CONTROL/DCLOSE",
02326 "DCLOSE", 0, 2, 0, 0, (KmParameter**)0, 0, 0, gxgcon_, (IntFunc*)0,
02327 (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_GRAPHICS_CONTROL_DCLOSE_guidance, 0,
02328 (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
02329
02330 static KmParInt _GEANT_GRAPHICS_CONTROL_DELETE_IVIEW_type = { (char*)0,
02331 (char*)0, (char*)0, (char*)0, 0 };
02332 static KmParameter _GEANT_GRAPHICS_CONTROL_DELETE_IVIEW = { "IVIEW", 5,
02333 "View number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
02334 (KmParFlag)0, KmTYPE_INT, &_GEANT_GRAPHICS_CONTROL_DELETE_IVIEW_type };
02335 static KmParameter *_GEANT_GRAPHICS_CONTROL_DELETE_parameters[] = {
02336 &_GEANT_GRAPHICS_CONTROL_DELETE_IVIEW };
02337 static char *_GEANT_GRAPHICS_CONTROL_DELETE_guidance[] = {
02338 " CALL GDELET(iview)", "It deletes a view bank from memory." };
02339 static KmCommand _GEANT_GRAPHICS_CONTROL_DELETE = {
02340 &_GEANT_GRAPHICS_CONTROL_DCLOSE, "/GEANT/GRAPHICS_CONTROL/DELETE", "DELETE",
02341 0, 2, 1, 1, _GEANT_GRAPHICS_CONTROL_DELETE_parameters, 0, 0, gxgcon_,
02342 (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 2,
02343 _GEANT_GRAPHICS_CONTROL_DELETE_guidance, 0, (char**)0, 0, (char**)0, 0,
02344 (char**)0, (char*)0, (int*)0 };
02345
02346 static KmParInt _GEANT_GRAPHICS_CONTROL_DSHOW_IVIEW_type = { (char*)0,
02347 (char*)0, (char*)0, (char*)0, 0 };
02348 static KmParameter _GEANT_GRAPHICS_CONTROL_DSHOW_IVIEW = { "IVIEW", 5,
02349 "View number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
02350 (KmParFlag)0, KmTYPE_INT, &_GEANT_GRAPHICS_CONTROL_DSHOW_IVIEW_type };
02351 static KmParameter *_GEANT_GRAPHICS_CONTROL_DSHOW_parameters[] = {
02352 &_GEANT_GRAPHICS_CONTROL_DSHOW_IVIEW };
02353 static char *_GEANT_GRAPHICS_CONTROL_DSHOW_guidance[] = {
02354 " CALL GDSHOW(iview)",
02355 "It shows on the screen the contents of a view bank. It",
02356 "can be called after a view bank has been closed." };
02357 static KmCommand _GEANT_GRAPHICS_CONTROL_DSHOW = {
02358 &_GEANT_GRAPHICS_CONTROL_DELETE, "/GEANT/GRAPHICS_CONTROL/DSHOW", "DSHOW", 0,
02359 2, 1, 0, _GEANT_GRAPHICS_CONTROL_DSHOW_parameters, 0, 0, gxgcon_,
02360 (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
02361 _GEANT_GRAPHICS_CONTROL_DSHOW_guidance, 0, (char**)0, 0, (char**)0, 0,
02362 (char**)0, (char*)0, (int*)0 };
02363
02364 static KmParInt _GEANT_GRAPHICS_CONTROL_DOPEN_IVIEW_type = { (char*)0,
02365 (char*)0, (char*)0, (char*)0, 0 };
02366 static KmParameter _GEANT_GRAPHICS_CONTROL_DOPEN_IVIEW = { "IVIEW", 5,
02367 "View number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
02368 (KmParFlag)0, KmTYPE_INT, &_GEANT_GRAPHICS_CONTROL_DOPEN_IVIEW_type };
02369 static KmParameter *_GEANT_GRAPHICS_CONTROL_DOPEN_parameters[] = {
02370 &_GEANT_GRAPHICS_CONTROL_DOPEN_IVIEW };
02371 static char *_GEANT_GRAPHICS_CONTROL_DOPEN_guidance[] = {
02372 " CALL GDOPEN(iview)",
02373 "When a drawing is very complex and requires a long time to be",
02374 "executed, it can be useful to store it in a view bank: after a",
02375 "call to DOPEN and the execution of the drawing (nothing will",
02376 "appear on the screen), and after a necessary call to DCLOSE,",
02377 "the contents of the bank can be displayed in a very fast way",
02378 "through a call to DSHOW; therefore, the detector can be easily",
02379 "zoomed many times in different ways. Please note that the pictures",
02380 "with solid colours can now be stored in a view bank or in 'PICTURE FILES'."
02381 };
02382 static KmCommand _GEANT_GRAPHICS_CONTROL_DOPEN = {
02383 &_GEANT_GRAPHICS_CONTROL_DSHOW, "/GEANT/GRAPHICS_CONTROL/DOPEN", "DOPEN", 0,
02384 2, 1, 1, _GEANT_GRAPHICS_CONTROL_DOPEN_parameters, 0, 0, gxgcon_,
02385 (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 9,
02386 _GEANT_GRAPHICS_CONTROL_DOPEN_guidance, 0, (char**)0, 0, (char**)0, 0,
02387 (char**)0, (char*)0, (int*)0 };
02388
02389 static char *_GEANT_GRAPHICS_CONTROL_guidance[] = {
02390 "Graphics control commands." };
02391 static KmMenu _GEANT_GRAPHICS_CONTROL = { (KmMenu*)0, (KmMenu*)0,
02392 "/GEANT/GRAPHICS_CONTROL", "GRAPHICS_CONTROL", 2,
02393 &_GEANT_GRAPHICS_CONTROL_DOPEN, 1, _GEANT_GRAPHICS_CONTROL_guidance, 0,
02394 (char**)0, 0, (char**)0 };
02395
02396 static KmMenu _GEANT = { (KmMenu*)0, &_GEANT_GRAPHICS_CONTROL, "/GEANT",
02397 "GEANT", 1, (KmCommand*)0, 0, (char**)0, 0, (char**)0, 0, (char**)0 };
02398
02399 klnkmenu( &_GEANT, 950303 );
02400 }
02401
02402
02403 #ifdef F77_LCASE
02404 # define gklist_ gklist
02405 # define gxlist_ gxlist
02406 #endif
02407
02408 #ifdef F77_UCASE
02409 # define gklist_ GKLIST
02410 # define gxlist_ GXLIST
02411 #endif
02412
02413 #ifdef IBM370
02414 # pragma linkage(GKLIST,FORTRAN)
02415 # pragma linkage(GXLIST,FORTRAN)
02416 #endif
02417
02418 extern void gklist_();
02419 extern void gxlist_();
02420
02421 void gklist_()
02422 {
02423
02424 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_1 = { "LRSAVE_1", 8, "user word",
02425 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02426 KmTYPE_CHAR, (void*)0 };
02427 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_2 = { "LRSAVE_2", 8, "user word",
02428 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02429 KmTYPE_CHAR, (void*)0 };
02430 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_3 = { "LRSAVE_3", 8, "user word",
02431 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02432 KmTYPE_CHAR, (void*)0 };
02433 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_4 = { "LRSAVE_4", 8, "user word",
02434 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02435 KmTYPE_CHAR, (void*)0 };
02436 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_5 = { "LRSAVE_5", 8, "user word",
02437 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02438 KmTYPE_CHAR, (void*)0 };
02439 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_6 = { "LRSAVE_6", 8, "user word",
02440 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02441 KmTYPE_CHAR, (void*)0 };
02442 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_7 = { "LRSAVE_7", 8, "user word",
02443 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02444 KmTYPE_CHAR, (void*)0 };
02445 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_8 = { "LRSAVE_8", 8, "user word",
02446 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02447 KmTYPE_CHAR, (void*)0 };
02448 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_9 = { "LRSAVE_9", 8, "user word",
02449 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02450 KmTYPE_CHAR, (void*)0 };
02451 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_10 = { "LRSAVE_10", 9,
02452 "user word", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
02453 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
02454 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_11 = { "LRSAVE_11", 9,
02455 "user word", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
02456 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
02457 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_12 = { "LRSAVE_12", 9,
02458 "user word", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
02459 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
02460 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_13 = { "LRSAVE_13", 9,
02461 "user word", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
02462 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
02463 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_14 = { "LRSAVE_14", 9,
02464 "user word", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
02465 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
02466 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_15 = { "LRSAVE_15", 9,
02467 "user word", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
02468 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
02469 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_16 = { "LRSAVE_16", 9,
02470 "user word", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
02471 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
02472 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_17 = { "LRSAVE_17", 9,
02473 "user word", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
02474 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
02475 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_18 = { "LRSAVE_18", 9,
02476 "user word", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
02477 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
02478 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_19 = { "LRSAVE_19", 9,
02479 "user word", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
02480 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
02481 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_20 = { "LRSAVE_20", 9,
02482 "user word", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
02483 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
02484 static KmParameter *_GEANT_LISTS_RSAV_parameters[] = {
02485 &_GEANT_LISTS_RSAV_LRSAVE_1, &_GEANT_LISTS_RSAV_LRSAVE_2,
02486 &_GEANT_LISTS_RSAV_LRSAVE_3, &_GEANT_LISTS_RSAV_LRSAVE_4,
02487 &_GEANT_LISTS_RSAV_LRSAVE_5, &_GEANT_LISTS_RSAV_LRSAVE_6,
02488 &_GEANT_LISTS_RSAV_LRSAVE_7, &_GEANT_LISTS_RSAV_LRSAVE_8,
02489 &_GEANT_LISTS_RSAV_LRSAVE_9, &_GEANT_LISTS_RSAV_LRSAVE_10,
02490 &_GEANT_LISTS_RSAV_LRSAVE_11, &_GEANT_LISTS_RSAV_LRSAVE_12,
02491 &_GEANT_LISTS_RSAV_LRSAVE_13, &_GEANT_LISTS_RSAV_LRSAVE_14,
02492 &_GEANT_LISTS_RSAV_LRSAVE_15, &_GEANT_LISTS_RSAV_LRSAVE_16,
02493 &_GEANT_LISTS_RSAV_LRSAVE_17, &_GEANT_LISTS_RSAV_LRSAVE_18,
02494 &_GEANT_LISTS_RSAV_LRSAVE_19, &_GEANT_LISTS_RSAV_LRSAVE_20 };
02495 static char *_GEANT_LISTS_RSAV_guidance[] = {
02496 "The command RSAV is similar to the RSAV data records. It can accept",
02497 "up to 20 4-character words. If the first argument is '.', the number",
02498 "of words is reset to 0 and all the words to four blanks." };
02499 static KmCommand _GEANT_LISTS_RSAV = { (KmCommand*)0, "/GEANT/LISTS/RSAV",
02500 "RSAV", 0, 2, 20, 0, _GEANT_LISTS_RSAV_parameters, 0, 0, gxlist_,
02501 (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_LISTS_RSAV_guidance, 0,
02502 (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
02503
02504 static KmParameter _GEANT_LISTS_RGET_LRGET_1 = { "LRGET_1", 7, "user word",
02505 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02506 KmTYPE_CHAR, (void*)0 };
02507 static KmParameter _GEANT_LISTS_RGET_LRGET_2 = { "LRGET_2", 7, "user word",
02508 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02509 KmTYPE_CHAR, (void*)0 };
02510 static KmParameter _GEANT_LISTS_RGET_LRGET_3 = { "LRGET_3", 7, "user word",
02511 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02512 KmTYPE_CHAR, (void*)0 };
02513 static KmParameter _GEANT_LISTS_RGET_LRGET_4 = { "LRGET_4", 7, "user word",
02514 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02515 KmTYPE_CHAR, (void*)0 };
02516 static KmParameter _GEANT_LISTS_RGET_LRGET_5 = { "LRGET_5", 7, "user word",
02517 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02518 KmTYPE_CHAR, (void*)0 };
02519 static KmParameter _GEANT_LISTS_RGET_LRGET_6 = { "LRGET_6", 7, "user word",
02520 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02521 KmTYPE_CHAR, (void*)0 };
02522 static KmParameter _GEANT_LISTS_RGET_LRGET_7 = { "LRGET_7", 7, "user word",
02523 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02524 KmTYPE_CHAR, (void*)0 };
02525 static KmParameter _GEANT_LISTS_RGET_LRGET_8 = { "LRGET_8", 7, "user word",
02526 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02527 KmTYPE_CHAR, (void*)0 };
02528 static KmParameter _GEANT_LISTS_RGET_LRGET_9 = { "LRGET_9", 7, "user word",
02529 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02530 KmTYPE_CHAR, (void*)0 };
02531 static KmParameter _GEANT_LISTS_RGET_LRGET_10 = { "LRGET_10", 8, "user word",
02532 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02533 KmTYPE_CHAR, (void*)0 };
02534 static KmParameter _GEANT_LISTS_RGET_LRGET_11 = { "LRGET_11", 8, "user word",
02535 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02536 KmTYPE_CHAR, (void*)0 };
02537 static KmParameter _GEANT_LISTS_RGET_LRGET_12 = { "LRGET_12", 8, "user word",
02538 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02539 KmTYPE_CHAR, (void*)0 };
02540 static KmParameter _GEANT_LISTS_RGET_LRGET_13 = { "LRGET_13", 8, "user word",
02541 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02542 KmTYPE_CHAR, (void*)0 };
02543 static KmParameter _GEANT_LISTS_RGET_LRGET_14 = { "LRGET_14", 8, "user word",
02544 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02545 KmTYPE_CHAR, (void*)0 };
02546 static KmParameter _GEANT_LISTS_RGET_LRGET_15 = { "LRGET_15", 8, "user word",
02547 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02548 KmTYPE_CHAR, (void*)0 };
02549 static KmParameter _GEANT_LISTS_RGET_LRGET_16 = { "LRGET_16", 8, "user word",
02550 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02551 KmTYPE_CHAR, (void*)0 };
02552 static KmParameter _GEANT_LISTS_RGET_LRGET_17 = { "LRGET_17", 8, "user word",
02553 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02554 KmTYPE_CHAR, (void*)0 };
02555 static KmParameter _GEANT_LISTS_RGET_LRGET_18 = { "LRGET_18", 8, "user word",
02556 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02557 KmTYPE_CHAR, (void*)0 };
02558 static KmParameter _GEANT_LISTS_RGET_LRGET_19 = { "LRGET_19", 8, "user word",
02559 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02560 KmTYPE_CHAR, (void*)0 };
02561 static KmParameter _GEANT_LISTS_RGET_LRGET_20 = { "LRGET_20", 8, "user word",
02562 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02563 KmTYPE_CHAR, (void*)0 };
02564 static KmParameter *_GEANT_LISTS_RGET_parameters[] = {
02565 &_GEANT_LISTS_RGET_LRGET_1, &_GEANT_LISTS_RGET_LRGET_2,
02566 &_GEANT_LISTS_RGET_LRGET_3, &_GEANT_LISTS_RGET_LRGET_4,
02567 &_GEANT_LISTS_RGET_LRGET_5, &_GEANT_LISTS_RGET_LRGET_6,
02568 &_GEANT_LISTS_RGET_LRGET_7, &_GEANT_LISTS_RGET_LRGET_8,
02569 &_GEANT_LISTS_RGET_LRGET_9, &_GEANT_LISTS_RGET_LRGET_10,
02570 &_GEANT_LISTS_RGET_LRGET_11, &_GEANT_LISTS_RGET_LRGET_12,
02571 &_GEANT_LISTS_RGET_LRGET_13, &_GEANT_LISTS_RGET_LRGET_14,
02572 &_GEANT_LISTS_RGET_LRGET_15, &_GEANT_LISTS_RGET_LRGET_16,
02573 &_GEANT_LISTS_RGET_LRGET_17, &_GEANT_LISTS_RGET_LRGET_18,
02574 &_GEANT_LISTS_RGET_LRGET_19, &_GEANT_LISTS_RGET_LRGET_20 };
02575 static char *_GEANT_LISTS_RGET_guidance[] = {
02576 "The command RGET is similar to the RGET data records. It can accept",
02577 "up to 20 4-character words. If the first argument is '.', the number",
02578 "of words is reset to 0 and all the words to four blanks." };
02579 static KmCommand _GEANT_LISTS_RGET = { &_GEANT_LISTS_RSAV,
02580 "/GEANT/LISTS/RGET", "RGET", 0, 2, 20, 0, _GEANT_LISTS_RGET_parameters, 0, 0,
02581 gxlist_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
02582 _GEANT_LISTS_RGET_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
02583 (char*)0, (int*)0 };
02584
02585 static KmParameter _GEANT_LISTS_STAT_LSTAT_1 = { "LSTAT_1", 7, "user word",
02586 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02587 KmTYPE_CHAR, (void*)0 };
02588 static KmParameter _GEANT_LISTS_STAT_LSTAT_2 = { "LSTAT_2", 7, "user word",
02589 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02590 KmTYPE_CHAR, (void*)0 };
02591 static KmParameter _GEANT_LISTS_STAT_LSTAT_3 = { "LSTAT_3", 7, "user word",
02592 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02593 KmTYPE_CHAR, (void*)0 };
02594 static KmParameter _GEANT_LISTS_STAT_LSTAT_4 = { "LSTAT_4", 7, "user word",
02595 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02596 KmTYPE_CHAR, (void*)0 };
02597 static KmParameter _GEANT_LISTS_STAT_LSTAT_5 = { "LSTAT_5", 7, "user word",
02598 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02599 KmTYPE_CHAR, (void*)0 };
02600 static KmParameter _GEANT_LISTS_STAT_LSTAT_6 = { "LSTAT_6", 7, "user word",
02601 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02602 KmTYPE_CHAR, (void*)0 };
02603 static KmParameter _GEANT_LISTS_STAT_LSTAT_7 = { "LSTAT_7", 7, "user word",
02604 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02605 KmTYPE_CHAR, (void*)0 };
02606 static KmParameter _GEANT_LISTS_STAT_LSTAT_8 = { "LSTAT_8", 7, "user word",
02607 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02608 KmTYPE_CHAR, (void*)0 };
02609 static KmParameter _GEANT_LISTS_STAT_LSTAT_9 = { "LSTAT_9", 7, "user word",
02610 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02611 KmTYPE_CHAR, (void*)0 };
02612 static KmParameter _GEANT_LISTS_STAT_LSTAT_10 = { "LSTAT_10", 8, "user word",
02613 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02614 KmTYPE_CHAR, (void*)0 };
02615 static KmParameter _GEANT_LISTS_STAT_LSTAT_11 = { "LSTAT_11", 8, "user word",
02616 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02617 KmTYPE_CHAR, (void*)0 };
02618 static KmParameter _GEANT_LISTS_STAT_LSTAT_12 = { "LSTAT_12", 8, "user word",
02619 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02620 KmTYPE_CHAR, (void*)0 };
02621 static KmParameter _GEANT_LISTS_STAT_LSTAT_13 = { "LSTAT_13", 8, "user word",
02622 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02623 KmTYPE_CHAR, (void*)0 };
02624 static KmParameter _GEANT_LISTS_STAT_LSTAT_14 = { "LSTAT_14", 8, "user word",
02625 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02626 KmTYPE_CHAR, (void*)0 };
02627 static KmParameter _GEANT_LISTS_STAT_LSTAT_15 = { "LSTAT_15", 8, "user word",
02628 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02629 KmTYPE_CHAR, (void*)0 };
02630 static KmParameter _GEANT_LISTS_STAT_LSTAT_16 = { "LSTAT_16", 8, "user word",
02631 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02632 KmTYPE_CHAR, (void*)0 };
02633 static KmParameter _GEANT_LISTS_STAT_LSTAT_17 = { "LSTAT_17", 8, "user word",
02634 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02635 KmTYPE_CHAR, (void*)0 };
02636 static KmParameter _GEANT_LISTS_STAT_LSTAT_18 = { "LSTAT_18", 8, "user word",
02637 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02638 KmTYPE_CHAR, (void*)0 };
02639 static KmParameter _GEANT_LISTS_STAT_LSTAT_19 = { "LSTAT_19", 8, "user word",
02640 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02641 KmTYPE_CHAR, (void*)0 };
02642 static KmParameter _GEANT_LISTS_STAT_LSTAT_20 = { "LSTAT_20", 8, "user word",
02643 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02644 KmTYPE_CHAR, (void*)0 };
02645 static KmParameter *_GEANT_LISTS_STAT_parameters[] = {
02646 &_GEANT_LISTS_STAT_LSTAT_1, &_GEANT_LISTS_STAT_LSTAT_2,
02647 &_GEANT_LISTS_STAT_LSTAT_3, &_GEANT_LISTS_STAT_LSTAT_4,
02648 &_GEANT_LISTS_STAT_LSTAT_5, &_GEANT_LISTS_STAT_LSTAT_6,
02649 &_GEANT_LISTS_STAT_LSTAT_7, &_GEANT_LISTS_STAT_LSTAT_8,
02650 &_GEANT_LISTS_STAT_LSTAT_9, &_GEANT_LISTS_STAT_LSTAT_10,
02651 &_GEANT_LISTS_STAT_LSTAT_11, &_GEANT_LISTS_STAT_LSTAT_12,
02652 &_GEANT_LISTS_STAT_LSTAT_13, &_GEANT_LISTS_STAT_LSTAT_14,
02653 &_GEANT_LISTS_STAT_LSTAT_15, &_GEANT_LISTS_STAT_LSTAT_16,
02654 &_GEANT_LISTS_STAT_LSTAT_17, &_GEANT_LISTS_STAT_LSTAT_18,
02655 &_GEANT_LISTS_STAT_LSTAT_19, &_GEANT_LISTS_STAT_LSTAT_20 };
02656 static char *_GEANT_LISTS_STAT_guidance[] = {
02657 "The command STAT is similar to the STAT data records. It can accept",
02658 "up to 20 4-character words. If the first argument is '.', the number",
02659 "of words is reset to 0 and all the words to four blanks." };
02660 static KmCommand _GEANT_LISTS_STAT = { &_GEANT_LISTS_RGET,
02661 "/GEANT/LISTS/STAT", "STAT", 0, 2, 20, 0, _GEANT_LISTS_STAT_parameters, 0, 0,
02662 gxlist_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
02663 _GEANT_LISTS_STAT_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
02664 (char*)0, (int*)0 };
02665
02666 static KmParameter _GEANT_LISTS_PLOT_LPLOT_1 = { "LPLOT_1", 7, "user word",
02667 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02668 KmTYPE_CHAR, (void*)0 };
02669 static KmParameter _GEANT_LISTS_PLOT_LPLOT_2 = { "LPLOT_2", 7, "user word",
02670 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02671 KmTYPE_CHAR, (void*)0 };
02672 static KmParameter _GEANT_LISTS_PLOT_LPLOT_3 = { "LPLOT_3", 7, "user word",
02673 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02674 KmTYPE_CHAR, (void*)0 };
02675 static KmParameter _GEANT_LISTS_PLOT_LPLOT_4 = { "LPLOT_4", 7, "user word",
02676 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02677 KmTYPE_CHAR, (void*)0 };
02678 static KmParameter _GEANT_LISTS_PLOT_LPLOT_5 = { "LPLOT_5", 7, "user word",
02679 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02680 KmTYPE_CHAR, (void*)0 };
02681 static KmParameter _GEANT_LISTS_PLOT_LPLOT_6 = { "LPLOT_6", 7, "user word",
02682 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02683 KmTYPE_CHAR, (void*)0 };
02684 static KmParameter _GEANT_LISTS_PLOT_LPLOT_7 = { "LPLOT_7", 7, "user word",
02685 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02686 KmTYPE_CHAR, (void*)0 };
02687 static KmParameter _GEANT_LISTS_PLOT_LPLOT_8 = { "LPLOT_8", 7, "user word",
02688 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02689 KmTYPE_CHAR, (void*)0 };
02690 static KmParameter _GEANT_LISTS_PLOT_LPLOT_9 = { "LPLOT_9", 7, "user word",
02691 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02692 KmTYPE_CHAR, (void*)0 };
02693 static KmParameter _GEANT_LISTS_PLOT_LPLOT_10 = { "LPLOT_10", 8, "user word",
02694 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02695 KmTYPE_CHAR, (void*)0 };
02696 static KmParameter _GEANT_LISTS_PLOT_LPLOT_11 = { "LPLOT_11", 8, "user word",
02697 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02698 KmTYPE_CHAR, (void*)0 };
02699 static KmParameter _GEANT_LISTS_PLOT_LPLOT_12 = { "LPLOT_12", 8, "user word",
02700 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02701 KmTYPE_CHAR, (void*)0 };
02702 static KmParameter _GEANT_LISTS_PLOT_LPLOT_13 = { "LPLOT_13", 8, "user word",
02703 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02704 KmTYPE_CHAR, (void*)0 };
02705 static KmParameter _GEANT_LISTS_PLOT_LPLOT_14 = { "LPLOT_14", 8, "user word",
02706 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02707 KmTYPE_CHAR, (void*)0 };
02708 static KmParameter _GEANT_LISTS_PLOT_LPLOT_15 = { "LPLOT_15", 8, "user word",
02709 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02710 KmTYPE_CHAR, (void*)0 };
02711 static KmParameter _GEANT_LISTS_PLOT_LPLOT_16 = { "LPLOT_16", 8, "user word",
02712 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02713 KmTYPE_CHAR, (void*)0 };
02714 static KmParameter _GEANT_LISTS_PLOT_LPLOT_17 = { "LPLOT_17", 8, "user word",
02715 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02716 KmTYPE_CHAR, (void*)0 };
02717 static KmParameter _GEANT_LISTS_PLOT_LPLOT_18 = { "LPLOT_18", 8, "user word",
02718 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02719 KmTYPE_CHAR, (void*)0 };
02720 static KmParameter _GEANT_LISTS_PLOT_LPLOT_19 = { "LPLOT_19", 8, "user word",
02721 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02722 KmTYPE_CHAR, (void*)0 };
02723 static KmParameter _GEANT_LISTS_PLOT_LPLOT_20 = { "LPLOT_20", 8, "user word",
02724 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02725 KmTYPE_CHAR, (void*)0 };
02726 static KmParameter *_GEANT_LISTS_PLOT_parameters[] = {
02727 &_GEANT_LISTS_PLOT_LPLOT_1, &_GEANT_LISTS_PLOT_LPLOT_2,
02728 &_GEANT_LISTS_PLOT_LPLOT_3, &_GEANT_LISTS_PLOT_LPLOT_4,
02729 &_GEANT_LISTS_PLOT_LPLOT_5, &_GEANT_LISTS_PLOT_LPLOT_6,
02730 &_GEANT_LISTS_PLOT_LPLOT_7, &_GEANT_LISTS_PLOT_LPLOT_8,
02731 &_GEANT_LISTS_PLOT_LPLOT_9, &_GEANT_LISTS_PLOT_LPLOT_10,
02732 &_GEANT_LISTS_PLOT_LPLOT_11, &_GEANT_LISTS_PLOT_LPLOT_12,
02733 &_GEANT_LISTS_PLOT_LPLOT_13, &_GEANT_LISTS_PLOT_LPLOT_14,
02734 &_GEANT_LISTS_PLOT_LPLOT_15, &_GEANT_LISTS_PLOT_LPLOT_16,
02735 &_GEANT_LISTS_PLOT_LPLOT_17, &_GEANT_LISTS_PLOT_LPLOT_18,
02736 &_GEANT_LISTS_PLOT_LPLOT_19, &_GEANT_LISTS_PLOT_LPLOT_20 };
02737 static char *_GEANT_LISTS_PLOT_guidance[] = {
02738 "The command PLOT is similar to the PLOT data records. It can accept",
02739 "up to 20 4-character words. If the first argument is '.', the number",
02740 "of words is reset to 0 and all the words to four blanks." };
02741 static KmCommand _GEANT_LISTS_PLOT = { &_GEANT_LISTS_STAT,
02742 "/GEANT/LISTS/PLOT", "PLOT", 0, 2, 20, 0, _GEANT_LISTS_PLOT_parameters, 0, 0,
02743 gxlist_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
02744 _GEANT_LISTS_PLOT_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
02745 (char*)0, (int*)0 };
02746
02747 static KmParameter _GEANT_LISTS_VIEW_LVIEW_1 = { "LVIEW_1", 7, "user word",
02748 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02749 KmTYPE_CHAR, (void*)0 };
02750 static KmParameter _GEANT_LISTS_VIEW_LVIEW_2 = { "LVIEW_2", 7, "user word",
02751 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02752 KmTYPE_CHAR, (void*)0 };
02753 static KmParameter _GEANT_LISTS_VIEW_LVIEW_3 = { "LVIEW_3", 7, "user word",
02754 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02755 KmTYPE_CHAR, (void*)0 };
02756 static KmParameter _GEANT_LISTS_VIEW_LVIEW_4 = { "LVIEW_4", 7, "user word",
02757 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02758 KmTYPE_CHAR, (void*)0 };
02759 static KmParameter _GEANT_LISTS_VIEW_LVIEW_5 = { "LVIEW_5", 7, "user word",
02760 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02761 KmTYPE_CHAR, (void*)0 };
02762 static KmParameter _GEANT_LISTS_VIEW_LVIEW_6 = { "LVIEW_6", 7, "user word",
02763 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02764 KmTYPE_CHAR, (void*)0 };
02765 static KmParameter _GEANT_LISTS_VIEW_LVIEW_7 = { "LVIEW_7", 7, "user word",
02766 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02767 KmTYPE_CHAR, (void*)0 };
02768 static KmParameter _GEANT_LISTS_VIEW_LVIEW_8 = { "LVIEW_8", 7, "user word",
02769 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02770 KmTYPE_CHAR, (void*)0 };
02771 static KmParameter _GEANT_LISTS_VIEW_LVIEW_9 = { "LVIEW_9", 7, "user word",
02772 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02773 KmTYPE_CHAR, (void*)0 };
02774 static KmParameter _GEANT_LISTS_VIEW_LVIEW_10 = { "LVIEW_10", 8, "user word",
02775 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02776 KmTYPE_CHAR, (void*)0 };
02777 static KmParameter _GEANT_LISTS_VIEW_LVIEW_11 = { "LVIEW_11", 8, "user word",
02778 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02779 KmTYPE_CHAR, (void*)0 };
02780 static KmParameter _GEANT_LISTS_VIEW_LVIEW_12 = { "LVIEW_12", 8, "user word",
02781 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02782 KmTYPE_CHAR, (void*)0 };
02783 static KmParameter _GEANT_LISTS_VIEW_LVIEW_13 = { "LVIEW_13", 8, "user word",
02784 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02785 KmTYPE_CHAR, (void*)0 };
02786 static KmParameter _GEANT_LISTS_VIEW_LVIEW_14 = { "LVIEW_14", 8, "user word",
02787 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02788 KmTYPE_CHAR, (void*)0 };
02789 static KmParameter _GEANT_LISTS_VIEW_LVIEW_15 = { "LVIEW_15", 8, "user word",
02790 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02791 KmTYPE_CHAR, (void*)0 };
02792 static KmParameter _GEANT_LISTS_VIEW_LVIEW_16 = { "LVIEW_16", 8, "user word",
02793 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02794 KmTYPE_CHAR, (void*)0 };
02795 static KmParameter _GEANT_LISTS_VIEW_LVIEW_17 = { "LVIEW_17", 8, "user word",
02796 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02797 KmTYPE_CHAR, (void*)0 };
02798 static KmParameter _GEANT_LISTS_VIEW_LVIEW_18 = { "LVIEW_18", 8, "user word",
02799 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02800 KmTYPE_CHAR, (void*)0 };
02801 static KmParameter _GEANT_LISTS_VIEW_LVIEW_19 = { "LVIEW_19", 8, "user word",
02802 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02803 KmTYPE_CHAR, (void*)0 };
02804 static KmParameter _GEANT_LISTS_VIEW_LVIEW_20 = { "LVIEW_20", 8, "user word",
02805 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02806 KmTYPE_CHAR, (void*)0 };
02807 static KmParameter *_GEANT_LISTS_VIEW_parameters[] = {
02808 &_GEANT_LISTS_VIEW_LVIEW_1, &_GEANT_LISTS_VIEW_LVIEW_2,
02809 &_GEANT_LISTS_VIEW_LVIEW_3, &_GEANT_LISTS_VIEW_LVIEW_4,
02810 &_GEANT_LISTS_VIEW_LVIEW_5, &_GEANT_LISTS_VIEW_LVIEW_6,
02811 &_GEANT_LISTS_VIEW_LVIEW_7, &_GEANT_LISTS_VIEW_LVIEW_8,
02812 &_GEANT_LISTS_VIEW_LVIEW_9, &_GEANT_LISTS_VIEW_LVIEW_10,
02813 &_GEANT_LISTS_VIEW_LVIEW_11, &_GEANT_LISTS_VIEW_LVIEW_12,
02814 &_GEANT_LISTS_VIEW_LVIEW_13, &_GEANT_LISTS_VIEW_LVIEW_14,
02815 &_GEANT_LISTS_VIEW_LVIEW_15, &_GEANT_LISTS_VIEW_LVIEW_16,
02816 &_GEANT_LISTS_VIEW_LVIEW_17, &_GEANT_LISTS_VIEW_LVIEW_18,
02817 &_GEANT_LISTS_VIEW_LVIEW_19, &_GEANT_LISTS_VIEW_LVIEW_20 };
02818 static char *_GEANT_LISTS_VIEW_guidance[] = {
02819 "The command VIEW is similar to the VIEW data records. It can accept",
02820 "up to 20 4-character words. If the first argument is '.', the number",
02821 "of words is reset to 0 and all the words to four blanks." };
02822 static KmCommand _GEANT_LISTS_VIEW = { &_GEANT_LISTS_PLOT,
02823 "/GEANT/LISTS/VIEW", "VIEW", 0, 2, 20, 0, _GEANT_LISTS_VIEW_parameters, 0, 0,
02824 gxlist_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
02825 _GEANT_LISTS_VIEW_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
02826 (char*)0, (int*)0 };
02827
02828 static KmParameter _GEANT_LISTS_GEOM_LGEOM_1 = { "LGEOM_1", 7, "user word",
02829 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02830 KmTYPE_CHAR, (void*)0 };
02831 static KmParameter _GEANT_LISTS_GEOM_LGEOM_2 = { "LGEOM_2", 7, "user word",
02832 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02833 KmTYPE_CHAR, (void*)0 };
02834 static KmParameter _GEANT_LISTS_GEOM_LGEOM_3 = { "LGEOM_3", 7, "user word",
02835 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02836 KmTYPE_CHAR, (void*)0 };
02837 static KmParameter _GEANT_LISTS_GEOM_LGEOM_4 = { "LGEOM_4", 7, "user word",
02838 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02839 KmTYPE_CHAR, (void*)0 };
02840 static KmParameter _GEANT_LISTS_GEOM_LGEOM_5 = { "LGEOM_5", 7, "user word",
02841 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02842 KmTYPE_CHAR, (void*)0 };
02843 static KmParameter _GEANT_LISTS_GEOM_LGEOM_6 = { "LGEOM_6", 7, "user word",
02844 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02845 KmTYPE_CHAR, (void*)0 };
02846 static KmParameter _GEANT_LISTS_GEOM_LGEOM_7 = { "LGEOM_7", 7, "user word",
02847 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02848 KmTYPE_CHAR, (void*)0 };
02849 static KmParameter _GEANT_LISTS_GEOM_LGEOM_8 = { "LGEOM_8", 7, "user word",
02850 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02851 KmTYPE_CHAR, (void*)0 };
02852 static KmParameter _GEANT_LISTS_GEOM_LGEOM_9 = { "LGEOM_9", 7, "user word",
02853 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02854 KmTYPE_CHAR, (void*)0 };
02855 static KmParameter _GEANT_LISTS_GEOM_LGEOM_10 = { "LGEOM_10", 8, "user word",
02856 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02857 KmTYPE_CHAR, (void*)0 };
02858 static KmParameter _GEANT_LISTS_GEOM_LGEOM_11 = { "LGEOM_11", 8, "user word",
02859 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02860 KmTYPE_CHAR, (void*)0 };
02861 static KmParameter _GEANT_LISTS_GEOM_LGEOM_12 = { "LGEOM_12", 8, "user word",
02862 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02863 KmTYPE_CHAR, (void*)0 };
02864 static KmParameter _GEANT_LISTS_GEOM_LGEOM_13 = { "LGEOM_13", 8, "user word",
02865 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02866 KmTYPE_CHAR, (void*)0 };
02867 static KmParameter _GEANT_LISTS_GEOM_LGEOM_14 = { "LGEOM_14", 8, "user word",
02868 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02869 KmTYPE_CHAR, (void*)0 };
02870 static KmParameter _GEANT_LISTS_GEOM_LGEOM_15 = { "LGEOM_15", 8, "user word",
02871 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02872 KmTYPE_CHAR, (void*)0 };
02873 static KmParameter _GEANT_LISTS_GEOM_LGEOM_16 = { "LGEOM_16", 8, "user word",
02874 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02875 KmTYPE_CHAR, (void*)0 };
02876 static KmParameter _GEANT_LISTS_GEOM_LGEOM_17 = { "LGEOM_17", 8, "user word",
02877 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02878 KmTYPE_CHAR, (void*)0 };
02879 static KmParameter _GEANT_LISTS_GEOM_LGEOM_18 = { "LGEOM_18", 8, "user word",
02880 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02881 KmTYPE_CHAR, (void*)0 };
02882 static KmParameter _GEANT_LISTS_GEOM_LGEOM_19 = { "LGEOM_19", 8, "user word",
02883 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02884 KmTYPE_CHAR, (void*)0 };
02885 static KmParameter _GEANT_LISTS_GEOM_LGEOM_20 = { "LGEOM_20", 8, "user word",
02886 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02887 KmTYPE_CHAR, (void*)0 };
02888 static KmParameter *_GEANT_LISTS_GEOM_parameters[] = {
02889 &_GEANT_LISTS_GEOM_LGEOM_1, &_GEANT_LISTS_GEOM_LGEOM_2,
02890 &_GEANT_LISTS_GEOM_LGEOM_3, &_GEANT_LISTS_GEOM_LGEOM_4,
02891 &_GEANT_LISTS_GEOM_LGEOM_5, &_GEANT_LISTS_GEOM_LGEOM_6,
02892 &_GEANT_LISTS_GEOM_LGEOM_7, &_GEANT_LISTS_GEOM_LGEOM_8,
02893 &_GEANT_LISTS_GEOM_LGEOM_9, &_GEANT_LISTS_GEOM_LGEOM_10,
02894 &_GEANT_LISTS_GEOM_LGEOM_11, &_GEANT_LISTS_GEOM_LGEOM_12,
02895 &_GEANT_LISTS_GEOM_LGEOM_13, &_GEANT_LISTS_GEOM_LGEOM_14,
02896 &_GEANT_LISTS_GEOM_LGEOM_15, &_GEANT_LISTS_GEOM_LGEOM_16,
02897 &_GEANT_LISTS_GEOM_LGEOM_17, &_GEANT_LISTS_GEOM_LGEOM_18,
02898 &_GEANT_LISTS_GEOM_LGEOM_19, &_GEANT_LISTS_GEOM_LGEOM_20 };
02899 static char *_GEANT_LISTS_GEOM_guidance[] = {
02900 "The command GEOM is similar to the GEOM data records. It can accept",
02901 "up to 20 4-character words. If the first argument is '.', the number",
02902 "of words is reset to 0 and all the words to four blanks." };
02903 static KmCommand _GEANT_LISTS_GEOM = { &_GEANT_LISTS_VIEW,
02904 "/GEANT/LISTS/GEOM", "GEOM", 0, 2, 20, 0, _GEANT_LISTS_GEOM_parameters, 0, 0,
02905 gxlist_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
02906 _GEANT_LISTS_GEOM_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
02907 (char*)0, (int*)0 };
02908
02909 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_1 = { "LPRIN_1", 7, "user word",
02910 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02911 KmTYPE_CHAR, (void*)0 };
02912 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_2 = { "LPRIN_2", 7, "user word",
02913 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02914 KmTYPE_CHAR, (void*)0 };
02915 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_3 = { "LPRIN_3", 7, "user word",
02916 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02917 KmTYPE_CHAR, (void*)0 };
02918 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_4 = { "LPRIN_4", 7, "user word",
02919 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02920 KmTYPE_CHAR, (void*)0 };
02921 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_5 = { "LPRIN_5", 7, "user word",
02922 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02923 KmTYPE_CHAR, (void*)0 };
02924 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_6 = { "LPRIN_6", 7, "user word",
02925 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02926 KmTYPE_CHAR, (void*)0 };
02927 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_7 = { "LPRIN_7", 7, "user word",
02928 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02929 KmTYPE_CHAR, (void*)0 };
02930 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_8 = { "LPRIN_8", 7, "user word",
02931 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02932 KmTYPE_CHAR, (void*)0 };
02933 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_9 = { "LPRIN_9", 7, "user word",
02934 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02935 KmTYPE_CHAR, (void*)0 };
02936 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_10 = { "LPRIN_10", 8, "user word",
02937 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02938 KmTYPE_CHAR, (void*)0 };
02939 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_11 = { "LPRIN_11", 8, "user word",
02940 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02941 KmTYPE_CHAR, (void*)0 };
02942 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_12 = { "LPRIN_12", 8, "user word",
02943 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02944 KmTYPE_CHAR, (void*)0 };
02945 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_13 = { "LPRIN_13", 8, "user word",
02946 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02947 KmTYPE_CHAR, (void*)0 };
02948 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_14 = { "LPRIN_14", 8, "user word",
02949 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02950 KmTYPE_CHAR, (void*)0 };
02951 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_15 = { "LPRIN_15", 8, "user word",
02952 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02953 KmTYPE_CHAR, (void*)0 };
02954 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_16 = { "LPRIN_16", 8, "user word",
02955 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02956 KmTYPE_CHAR, (void*)0 };
02957 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_17 = { "LPRIN_17", 8, "user word",
02958 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02959 KmTYPE_CHAR, (void*)0 };
02960 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_18 = { "LPRIN_18", 8, "user word",
02961 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02962 KmTYPE_CHAR, (void*)0 };
02963 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_19 = { "LPRIN_19", 8, "user word",
02964 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02965 KmTYPE_CHAR, (void*)0 };
02966 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_20 = { "LPRIN_20", 8, "user word",
02967 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02968 KmTYPE_CHAR, (void*)0 };
02969 static KmParameter *_GEANT_LISTS_LPRIN_parameters[] = {
02970 &_GEANT_LISTS_LPRIN_LPRIN_1, &_GEANT_LISTS_LPRIN_LPRIN_2,
02971 &_GEANT_LISTS_LPRIN_LPRIN_3, &_GEANT_LISTS_LPRIN_LPRIN_4,
02972 &_GEANT_LISTS_LPRIN_LPRIN_5, &_GEANT_LISTS_LPRIN_LPRIN_6,
02973 &_GEANT_LISTS_LPRIN_LPRIN_7, &_GEANT_LISTS_LPRIN_LPRIN_8,
02974 &_GEANT_LISTS_LPRIN_LPRIN_9, &_GEANT_LISTS_LPRIN_LPRIN_10,
02975 &_GEANT_LISTS_LPRIN_LPRIN_11, &_GEANT_LISTS_LPRIN_LPRIN_12,
02976 &_GEANT_LISTS_LPRIN_LPRIN_13, &_GEANT_LISTS_LPRIN_LPRIN_14,
02977 &_GEANT_LISTS_LPRIN_LPRIN_15, &_GEANT_LISTS_LPRIN_LPRIN_16,
02978 &_GEANT_LISTS_LPRIN_LPRIN_17, &_GEANT_LISTS_LPRIN_LPRIN_18,
02979 &_GEANT_LISTS_LPRIN_LPRIN_19, &_GEANT_LISTS_LPRIN_LPRIN_20 };
02980 static char *_GEANT_LISTS_LPRIN_guidance[] = {
02981 "The command PRIN is similar to the PRIN data records. It can accept",
02982 "up to 20 4-character words. If the first argument is '.', the number",
02983 "of words is reset to 0 and all the words to four blanks." };
02984 static KmCommand _GEANT_LISTS_LPRIN = { &_GEANT_LISTS_GEOM,
02985 "/GEANT/LISTS/LPRIN", "LPRIN", 0, 2, 20, 0, _GEANT_LISTS_LPRIN_parameters, 0,
02986 0, gxlist_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
02987 _GEANT_LISTS_LPRIN_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
02988 (char*)0, (int*)0 };
02989
02990 static KmParameter _GEANT_LISTS_SETS_LSETS_1 = { "LSETS_1", 7, "user word",
02991 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02992 KmTYPE_CHAR, (void*)0 };
02993 static KmParameter _GEANT_LISTS_SETS_LSETS_2 = { "LSETS_2", 7, "user word",
02994 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02995 KmTYPE_CHAR, (void*)0 };
02996 static KmParameter _GEANT_LISTS_SETS_LSETS_3 = { "LSETS_3", 7, "user word",
02997 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
02998 KmTYPE_CHAR, (void*)0 };
02999 static KmParameter _GEANT_LISTS_SETS_LSETS_4 = { "LSETS_4", 7, "user word",
03000 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03001 KmTYPE_CHAR, (void*)0 };
03002 static KmParameter _GEANT_LISTS_SETS_LSETS_5 = { "LSETS_5", 7, "user word",
03003 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03004 KmTYPE_CHAR, (void*)0 };
03005 static KmParameter _GEANT_LISTS_SETS_LSETS_6 = { "LSETS_6", 7, "user word",
03006 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03007 KmTYPE_CHAR, (void*)0 };
03008 static KmParameter _GEANT_LISTS_SETS_LSETS_7 = { "LSETS_7", 7, "user word",
03009 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03010 KmTYPE_CHAR, (void*)0 };
03011 static KmParameter _GEANT_LISTS_SETS_LSETS_8 = { "LSETS_8", 7, "user word",
03012 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03013 KmTYPE_CHAR, (void*)0 };
03014 static KmParameter _GEANT_LISTS_SETS_LSETS_9 = { "LSETS_9", 7, "user word",
03015 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03016 KmTYPE_CHAR, (void*)0 };
03017 static KmParameter _GEANT_LISTS_SETS_LSETS_10 = { "LSETS_10", 8, "user word",
03018 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03019 KmTYPE_CHAR, (void*)0 };
03020 static KmParameter _GEANT_LISTS_SETS_LSETS_11 = { "LSETS_11", 8, "user word",
03021 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03022 KmTYPE_CHAR, (void*)0 };
03023 static KmParameter _GEANT_LISTS_SETS_LSETS_12 = { "LSETS_12", 8, "user word",
03024 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03025 KmTYPE_CHAR, (void*)0 };
03026 static KmParameter _GEANT_LISTS_SETS_LSETS_13 = { "LSETS_13", 8, "user word",
03027 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03028 KmTYPE_CHAR, (void*)0 };
03029 static KmParameter _GEANT_LISTS_SETS_LSETS_14 = { "LSETS_14", 8, "user word",
03030 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03031 KmTYPE_CHAR, (void*)0 };
03032 static KmParameter _GEANT_LISTS_SETS_LSETS_15 = { "LSETS_15", 8, "user word",
03033 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03034 KmTYPE_CHAR, (void*)0 };
03035 static KmParameter _GEANT_LISTS_SETS_LSETS_16 = { "LSETS_16", 8, "user word",
03036 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03037 KmTYPE_CHAR, (void*)0 };
03038 static KmParameter _GEANT_LISTS_SETS_LSETS_17 = { "LSETS_17", 8, "user word",
03039 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03040 KmTYPE_CHAR, (void*)0 };
03041 static KmParameter _GEANT_LISTS_SETS_LSETS_18 = { "LSETS_18", 8, "user word",
03042 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03043 KmTYPE_CHAR, (void*)0 };
03044 static KmParameter _GEANT_LISTS_SETS_LSETS_19 = { "LSETS_19", 8, "user word",
03045 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03046 KmTYPE_CHAR, (void*)0 };
03047 static KmParameter _GEANT_LISTS_SETS_LSETS_20 = { "LSETS_20", 8, "user word",
03048 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03049 KmTYPE_CHAR, (void*)0 };
03050 static KmParameter *_GEANT_LISTS_SETS_parameters[] = {
03051 &_GEANT_LISTS_SETS_LSETS_1, &_GEANT_LISTS_SETS_LSETS_2,
03052 &_GEANT_LISTS_SETS_LSETS_3, &_GEANT_LISTS_SETS_LSETS_4,
03053 &_GEANT_LISTS_SETS_LSETS_5, &_GEANT_LISTS_SETS_LSETS_6,
03054 &_GEANT_LISTS_SETS_LSETS_7, &_GEANT_LISTS_SETS_LSETS_8,
03055 &_GEANT_LISTS_SETS_LSETS_9, &_GEANT_LISTS_SETS_LSETS_10,
03056 &_GEANT_LISTS_SETS_LSETS_11, &_GEANT_LISTS_SETS_LSETS_12,
03057 &_GEANT_LISTS_SETS_LSETS_13, &_GEANT_LISTS_SETS_LSETS_14,
03058 &_GEANT_LISTS_SETS_LSETS_15, &_GEANT_LISTS_SETS_LSETS_16,
03059 &_GEANT_LISTS_SETS_LSETS_17, &_GEANT_LISTS_SETS_LSETS_18,
03060 &_GEANT_LISTS_SETS_LSETS_19, &_GEANT_LISTS_SETS_LSETS_20 };
03061 static char *_GEANT_LISTS_SETS_guidance[] = {
03062 "The command SETS is similar to the SETS data records. It can accept",
03063 "up to 20 4-character words. If the first argument is '.', the number",
03064 "of words is reset to 0 and all the words to four blanks." };
03065 static KmCommand _GEANT_LISTS_SETS = { &_GEANT_LISTS_LPRIN,
03066 "/GEANT/LISTS/SETS", "SETS", 0, 2, 20, 0, _GEANT_LISTS_SETS_parameters, 0, 0,
03067 gxlist_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
03068 _GEANT_LISTS_SETS_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
03069 (char*)0, (int*)0 };
03070
03071 static KmParameter _GEANT_LISTS_SAVE_LSAVE_1 = { "LSAVE_1", 7, "user word",
03072 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03073 KmTYPE_CHAR, (void*)0 };
03074 static KmParameter _GEANT_LISTS_SAVE_LSAVE_2 = { "LSAVE_2", 7, "user word",
03075 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03076 KmTYPE_CHAR, (void*)0 };
03077 static KmParameter _GEANT_LISTS_SAVE_LSAVE_3 = { "LSAVE_3", 7, "user word",
03078 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03079 KmTYPE_CHAR, (void*)0 };
03080 static KmParameter _GEANT_LISTS_SAVE_LSAVE_4 = { "LSAVE_4", 7, "user word",
03081 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03082 KmTYPE_CHAR, (void*)0 };
03083 static KmParameter _GEANT_LISTS_SAVE_LSAVE_5 = { "LSAVE_5", 7, "user word",
03084 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03085 KmTYPE_CHAR, (void*)0 };
03086 static KmParameter _GEANT_LISTS_SAVE_LSAVE_6 = { "LSAVE_6", 7, "user word",
03087 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03088 KmTYPE_CHAR, (void*)0 };
03089 static KmParameter _GEANT_LISTS_SAVE_LSAVE_7 = { "LSAVE_7", 7, "user word",
03090 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03091 KmTYPE_CHAR, (void*)0 };
03092 static KmParameter _GEANT_LISTS_SAVE_LSAVE_8 = { "LSAVE_8", 7, "user word",
03093 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03094 KmTYPE_CHAR, (void*)0 };
03095 static KmParameter _GEANT_LISTS_SAVE_LSAVE_9 = { "LSAVE_9", 7, "user word",
03096 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03097 KmTYPE_CHAR, (void*)0 };
03098 static KmParameter _GEANT_LISTS_SAVE_LSAVE_10 = { "LSAVE_10", 8, "user word",
03099 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03100 KmTYPE_CHAR, (void*)0 };
03101 static KmParameter _GEANT_LISTS_SAVE_LSAVE_11 = { "LSAVE_11", 8, "user word",
03102 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03103 KmTYPE_CHAR, (void*)0 };
03104 static KmParameter _GEANT_LISTS_SAVE_LSAVE_12 = { "LSAVE_12", 8, "user word",
03105 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03106 KmTYPE_CHAR, (void*)0 };
03107 static KmParameter _GEANT_LISTS_SAVE_LSAVE_13 = { "LSAVE_13", 8, "user word",
03108 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03109 KmTYPE_CHAR, (void*)0 };
03110 static KmParameter _GEANT_LISTS_SAVE_LSAVE_14 = { "LSAVE_14", 8, "user word",
03111 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03112 KmTYPE_CHAR, (void*)0 };
03113 static KmParameter _GEANT_LISTS_SAVE_LSAVE_15 = { "LSAVE_15", 8, "user word",
03114 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03115 KmTYPE_CHAR, (void*)0 };
03116 static KmParameter _GEANT_LISTS_SAVE_LSAVE_16 = { "LSAVE_16", 8, "user word",
03117 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03118 KmTYPE_CHAR, (void*)0 };
03119 static KmParameter _GEANT_LISTS_SAVE_LSAVE_17 = { "LSAVE_17", 8, "user word",
03120 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03121 KmTYPE_CHAR, (void*)0 };
03122 static KmParameter _GEANT_LISTS_SAVE_LSAVE_18 = { "LSAVE_18", 8, "user word",
03123 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03124 KmTYPE_CHAR, (void*)0 };
03125 static KmParameter _GEANT_LISTS_SAVE_LSAVE_19 = { "LSAVE_19", 8, "user word",
03126 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03127 KmTYPE_CHAR, (void*)0 };
03128 static KmParameter _GEANT_LISTS_SAVE_LSAVE_20 = { "LSAVE_20", 8, "user word",
03129 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03130 KmTYPE_CHAR, (void*)0 };
03131 static KmParameter *_GEANT_LISTS_SAVE_parameters[] = {
03132 &_GEANT_LISTS_SAVE_LSAVE_1, &_GEANT_LISTS_SAVE_LSAVE_2,
03133 &_GEANT_LISTS_SAVE_LSAVE_3, &_GEANT_LISTS_SAVE_LSAVE_4,
03134 &_GEANT_LISTS_SAVE_LSAVE_5, &_GEANT_LISTS_SAVE_LSAVE_6,
03135 &_GEANT_LISTS_SAVE_LSAVE_7, &_GEANT_LISTS_SAVE_LSAVE_8,
03136 &_GEANT_LISTS_SAVE_LSAVE_9, &_GEANT_LISTS_SAVE_LSAVE_10,
03137 &_GEANT_LISTS_SAVE_LSAVE_11, &_GEANT_LISTS_SAVE_LSAVE_12,
03138 &_GEANT_LISTS_SAVE_LSAVE_13, &_GEANT_LISTS_SAVE_LSAVE_14,
03139 &_GEANT_LISTS_SAVE_LSAVE_15, &_GEANT_LISTS_SAVE_LSAVE_16,
03140 &_GEANT_LISTS_SAVE_LSAVE_17, &_GEANT_LISTS_SAVE_LSAVE_18,
03141 &_GEANT_LISTS_SAVE_LSAVE_19, &_GEANT_LISTS_SAVE_LSAVE_20 };
03142 static char *_GEANT_LISTS_SAVE_guidance[] = {
03143 "The command SAVE is similar to the SAVE data records. It can accept",
03144 "up to 20 4-character words. If the first argument is '.', the number",
03145 "of words is reset to 0 and all the words to four blanks." };
03146 static KmCommand _GEANT_LISTS_SAVE = { &_GEANT_LISTS_SETS,
03147 "/GEANT/LISTS/SAVE", "SAVE", 0, 2, 20, 0, _GEANT_LISTS_SAVE_parameters, 0, 0,
03148 gxlist_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
03149 _GEANT_LISTS_SAVE_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
03150 (char*)0, (int*)0 };
03151
03152 static KmParameter _GEANT_LISTS_GET_LGET_1 = { "LGET_1", 6, "user word",
03153 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03154 KmTYPE_CHAR, (void*)0 };
03155 static KmParameter _GEANT_LISTS_GET_LGET_2 = { "LGET_2", 6, "user word",
03156 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03157 KmTYPE_CHAR, (void*)0 };
03158 static KmParameter _GEANT_LISTS_GET_LGET_3 = { "LGET_3", 6, "user word",
03159 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03160 KmTYPE_CHAR, (void*)0 };
03161 static KmParameter _GEANT_LISTS_GET_LGET_4 = { "LGET_4", 6, "user word",
03162 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03163 KmTYPE_CHAR, (void*)0 };
03164 static KmParameter _GEANT_LISTS_GET_LGET_5 = { "LGET_5", 6, "user word",
03165 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03166 KmTYPE_CHAR, (void*)0 };
03167 static KmParameter _GEANT_LISTS_GET_LGET_6 = { "LGET_6", 6, "user word",
03168 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03169 KmTYPE_CHAR, (void*)0 };
03170 static KmParameter _GEANT_LISTS_GET_LGET_7 = { "LGET_7", 6, "user word",
03171 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03172 KmTYPE_CHAR, (void*)0 };
03173 static KmParameter _GEANT_LISTS_GET_LGET_8 = { "LGET_8", 6, "user word",
03174 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03175 KmTYPE_CHAR, (void*)0 };
03176 static KmParameter _GEANT_LISTS_GET_LGET_9 = { "LGET_9", 6, "user word",
03177 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03178 KmTYPE_CHAR, (void*)0 };
03179 static KmParameter _GEANT_LISTS_GET_LGET_10 = { "LGET_10", 7, "user word",
03180 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03181 KmTYPE_CHAR, (void*)0 };
03182 static KmParameter _GEANT_LISTS_GET_LGET_11 = { "LGET_11", 7, "user word",
03183 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03184 KmTYPE_CHAR, (void*)0 };
03185 static KmParameter _GEANT_LISTS_GET_LGET_12 = { "LGET_12", 7, "user word",
03186 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03187 KmTYPE_CHAR, (void*)0 };
03188 static KmParameter _GEANT_LISTS_GET_LGET_13 = { "LGET_13", 7, "user word",
03189 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03190 KmTYPE_CHAR, (void*)0 };
03191 static KmParameter _GEANT_LISTS_GET_LGET_14 = { "LGET_14", 7, "user word",
03192 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03193 KmTYPE_CHAR, (void*)0 };
03194 static KmParameter _GEANT_LISTS_GET_LGET_15 = { "LGET_15", 7, "user word",
03195 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03196 KmTYPE_CHAR, (void*)0 };
03197 static KmParameter _GEANT_LISTS_GET_LGET_16 = { "LGET_16", 7, "user word",
03198 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03199 KmTYPE_CHAR, (void*)0 };
03200 static KmParameter _GEANT_LISTS_GET_LGET_17 = { "LGET_17", 7, "user word",
03201 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03202 KmTYPE_CHAR, (void*)0 };
03203 static KmParameter _GEANT_LISTS_GET_LGET_18 = { "LGET_18", 7, "user word",
03204 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03205 KmTYPE_CHAR, (void*)0 };
03206 static KmParameter _GEANT_LISTS_GET_LGET_19 = { "LGET_19", 7, "user word",
03207 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03208 KmTYPE_CHAR, (void*)0 };
03209 static KmParameter _GEANT_LISTS_GET_LGET_20 = { "LGET_20", 7, "user word",
03210 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03211 KmTYPE_CHAR, (void*)0 };
03212 static KmParameter *_GEANT_LISTS_GET_parameters[] = {
03213 &_GEANT_LISTS_GET_LGET_1, &_GEANT_LISTS_GET_LGET_2, &_GEANT_LISTS_GET_LGET_3,
03214 &_GEANT_LISTS_GET_LGET_4, &_GEANT_LISTS_GET_LGET_5, &_GEANT_LISTS_GET_LGET_6,
03215 &_GEANT_LISTS_GET_LGET_7, &_GEANT_LISTS_GET_LGET_8, &_GEANT_LISTS_GET_LGET_9,
03216 &_GEANT_LISTS_GET_LGET_10, &_GEANT_LISTS_GET_LGET_11,
03217 &_GEANT_LISTS_GET_LGET_12, &_GEANT_LISTS_GET_LGET_13,
03218 &_GEANT_LISTS_GET_LGET_14, &_GEANT_LISTS_GET_LGET_15,
03219 &_GEANT_LISTS_GET_LGET_16, &_GEANT_LISTS_GET_LGET_17,
03220 &_GEANT_LISTS_GET_LGET_18, &_GEANT_LISTS_GET_LGET_19,
03221 &_GEANT_LISTS_GET_LGET_20 };
03222 static char *_GEANT_LISTS_GET_guidance[] = {
03223 "The command GET is similar to the GET data records. It can accept",
03224 "up to 20 4-character words. If the first argument is '.', the number",
03225 "of words is reset to 0 and all the words to four blanks." };
03226 static KmCommand _GEANT_LISTS_GET = { &_GEANT_LISTS_SAVE, "/GEANT/LISTS/GET",
03227 "GET", 0, 2, 20, 0, _GEANT_LISTS_GET_parameters, 0, 0, gxlist_, (IntFunc*)0,
03228 (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_LISTS_GET_guidance, 0, (char**)0, 0,
03229 (char**)0, 0, (char**)0, (char*)0, (int*)0 };
03230
03231 static KmParameter _GEANT_LISTS_HSTA_LHSTA_1 = { "LHSTA_1", 7, "user word",
03232 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03233 KmTYPE_CHAR, (void*)0 };
03234 static KmParameter _GEANT_LISTS_HSTA_LHSTA_2 = { "LHSTA_2", 7, "user word",
03235 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03236 KmTYPE_CHAR, (void*)0 };
03237 static KmParameter _GEANT_LISTS_HSTA_LHSTA_3 = { "LHSTA_3", 7, "user word",
03238 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03239 KmTYPE_CHAR, (void*)0 };
03240 static KmParameter _GEANT_LISTS_HSTA_LHSTA_4 = { "LHSTA_4", 7, "user word",
03241 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03242 KmTYPE_CHAR, (void*)0 };
03243 static KmParameter _GEANT_LISTS_HSTA_LHSTA_5 = { "LHSTA_5", 7, "user word",
03244 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03245 KmTYPE_CHAR, (void*)0 };
03246 static KmParameter _GEANT_LISTS_HSTA_LHSTA_6 = { "LHSTA_6", 7, "user word",
03247 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03248 KmTYPE_CHAR, (void*)0 };
03249 static KmParameter _GEANT_LISTS_HSTA_LHSTA_7 = { "LHSTA_7", 7, "user word",
03250 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03251 KmTYPE_CHAR, (void*)0 };
03252 static KmParameter _GEANT_LISTS_HSTA_LHSTA_8 = { "LHSTA_8", 7, "user word",
03253 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03254 KmTYPE_CHAR, (void*)0 };
03255 static KmParameter _GEANT_LISTS_HSTA_LHSTA_9 = { "LHSTA_9", 7, "user word",
03256 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03257 KmTYPE_CHAR, (void*)0 };
03258 static KmParameter _GEANT_LISTS_HSTA_LHSTA_10 = { "LHSTA_10", 8, "user word",
03259 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03260 KmTYPE_CHAR, (void*)0 };
03261 static KmParameter _GEANT_LISTS_HSTA_LHSTA_11 = { "LHSTA_11", 8, "user word",
03262 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03263 KmTYPE_CHAR, (void*)0 };
03264 static KmParameter _GEANT_LISTS_HSTA_LHSTA_12 = { "LHSTA_12", 8, "user word",
03265 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03266 KmTYPE_CHAR, (void*)0 };
03267 static KmParameter _GEANT_LISTS_HSTA_LHSTA_13 = { "LHSTA_13", 8, "user word",
03268 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03269 KmTYPE_CHAR, (void*)0 };
03270 static KmParameter _GEANT_LISTS_HSTA_LHSTA_14 = { "LHSTA_14", 8, "user word",
03271 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03272 KmTYPE_CHAR, (void*)0 };
03273 static KmParameter _GEANT_LISTS_HSTA_LHSTA_15 = { "LHSTA_15", 8, "user word",
03274 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03275 KmTYPE_CHAR, (void*)0 };
03276 static KmParameter _GEANT_LISTS_HSTA_LHSTA_16 = { "LHSTA_16", 8, "user word",
03277 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03278 KmTYPE_CHAR, (void*)0 };
03279 static KmParameter _GEANT_LISTS_HSTA_LHSTA_17 = { "LHSTA_17", 8, "user word",
03280 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03281 KmTYPE_CHAR, (void*)0 };
03282 static KmParameter _GEANT_LISTS_HSTA_LHSTA_18 = { "LHSTA_18", 8, "user word",
03283 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03284 KmTYPE_CHAR, (void*)0 };
03285 static KmParameter _GEANT_LISTS_HSTA_LHSTA_19 = { "LHSTA_19", 8, "user word",
03286 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03287 KmTYPE_CHAR, (void*)0 };
03288 static KmParameter _GEANT_LISTS_HSTA_LHSTA_20 = { "LHSTA_20", 8, "user word",
03289 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03290 KmTYPE_CHAR, (void*)0 };
03291 static KmParameter *_GEANT_LISTS_HSTA_parameters[] = {
03292 &_GEANT_LISTS_HSTA_LHSTA_1, &_GEANT_LISTS_HSTA_LHSTA_2,
03293 &_GEANT_LISTS_HSTA_LHSTA_3, &_GEANT_LISTS_HSTA_LHSTA_4,
03294 &_GEANT_LISTS_HSTA_LHSTA_5, &_GEANT_LISTS_HSTA_LHSTA_6,
03295 &_GEANT_LISTS_HSTA_LHSTA_7, &_GEANT_LISTS_HSTA_LHSTA_8,
03296 &_GEANT_LISTS_HSTA_LHSTA_9, &_GEANT_LISTS_HSTA_LHSTA_10,
03297 &_GEANT_LISTS_HSTA_LHSTA_11, &_GEANT_LISTS_HSTA_LHSTA_12,
03298 &_GEANT_LISTS_HSTA_LHSTA_13, &_GEANT_LISTS_HSTA_LHSTA_14,
03299 &_GEANT_LISTS_HSTA_LHSTA_15, &_GEANT_LISTS_HSTA_LHSTA_16,
03300 &_GEANT_LISTS_HSTA_LHSTA_17, &_GEANT_LISTS_HSTA_LHSTA_18,
03301 &_GEANT_LISTS_HSTA_LHSTA_19, &_GEANT_LISTS_HSTA_LHSTA_20 };
03302 static char *_GEANT_LISTS_HSTA_guidance[] = {
03303 "The command HSTA is similar to the HSTA data records. It can accept",
03304 "up to 20 4-character words. If the first argument is '.', the number",
03305 "of words is reset to 0 and all the words to four blanks." };
03306 static KmCommand _GEANT_LISTS_HSTA = { &_GEANT_LISTS_GET, "/GEANT/LISTS/HSTA",
03307 "HSTA", 0, 2, 20, 0, _GEANT_LISTS_HSTA_parameters, 0, 0, gxlist_,
03308 (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_LISTS_HSTA_guidance, 0,
03309 (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
03310
03311 static KmMenu _GEANT_LISTS = { (KmMenu*)0, (KmMenu*)0, "/GEANT/LISTS",
03312 "LISTS", 2, &_GEANT_LISTS_HSTA, 0, (char**)0, 0, (char**)0, 0, (char**)0 };
03313
03314 static KmMenu _GEANT = { (KmMenu*)0, &_GEANT_LISTS, "/GEANT", "GEANT", 1,
03315 (KmCommand*)0, 0, (char**)0, 0, (char**)0, 0, (char**)0 };
03316
03317 klnkmenu( &_GEANT, 950303 );
03318 }
03319
03320
03321 #ifdef F77_LCASE
03322 # define gkgeom_ gkgeom
03323 # define gxgeom_ gxgeom
03324 #endif
03325
03326 #ifdef F77_UCASE
03327 # define gkgeom_ GKGEOM
03328 # define gxgeom_ GXGEOM
03329 #endif
03330
03331 #ifdef IBM370
03332 # pragma linkage(GKGEOM,FORTRAN)
03333 # pragma linkage(GXGEOM,FORTRAN)
03334 #endif
03335
03336 extern void gkgeom_();
03337 extern void gxgeom_();
03338
03339 void gkgeom_()
03340 {
03341
03342 static KmParInt _GEANT_GEOMETRY_WEUCLID_LUN_type = { "1", "100", "1",
03343 "100", 0 };
03344 static KmParameter _GEANT_GEOMETRY_WEUCLID_LUN = { "LUN", 3,
03345 "Logical unit of the file to be written", (char*)0, (char*)0, 4, 0,
03346 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
03347 &_GEANT_GEOMETRY_WEUCLID_LUN_type };
03348 static KmParameter _GEANT_GEOMETRY_WEUCLID_FNAME = { "FNAME", 5,
03349 "Name of the EUCLID file to be written", (char*)0, (char*)0, 20, 0,
03350 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
03351 static KmParameter _GEANT_GEOMETRY_WEUCLID_TOPVOL = { "TOPVOL", 6,
03352 "Volume name of the starting node", (char*)0, (char*)0, 20, 0, (char**)0, 0,
03353 (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
03354 static KmParInt _GEANT_GEOMETRY_WEUCLID_NUMBER_type = { (char*)0, (char*)0,
03355 (char*)0, (char*)0, 0 };
03356 static KmParameter _GEANT_GEOMETRY_WEUCLID_NUMBER = { "NUMBER", 6,
03357 "Copy number of TOPVOL (relevant for GSPOSP)", "1", (char*)0, 8, 0,
03358 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
03359 &_GEANT_GEOMETRY_WEUCLID_NUMBER_type };
03360 static KmParInt _GEANT_GEOMETRY_WEUCLID_NLEVEL_type = { (char*)0, (char*)0,
03361 (char*)0, (char*)0, 0 };
03362 static KmParameter _GEANT_GEOMETRY_WEUCLID_NLEVEL = { "NLEVEL", 6,
03363 "Number of levels in the tree structure", "15", (char*)0, 8, 0, (char**)0, 0,
03364 (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_WEUCLID_NLEVEL_type };
03365 static KmParameter *_GEANT_GEOMETRY_WEUCLID_parameters[] = {
03366 &_GEANT_GEOMETRY_WEUCLID_LUN, &_GEANT_GEOMETRY_WEUCLID_FNAME,
03367 &_GEANT_GEOMETRY_WEUCLID_TOPVOL, &_GEANT_GEOMETRY_WEUCLID_NUMBER,
03368 &_GEANT_GEOMETRY_WEUCLID_NLEVEL };
03369 static char *_GEANT_GEOMETRY_WEUCLID_guidance[] = {
03370 " CALL GWEUCL(LUN,FNAME)",
03371 "Calls the routine to write the current GEANT geometry into an ASCII file",
03372 "in EUCLID compatible format." };
03373 static KmCommand _GEANT_GEOMETRY_WEUCLID = { (KmCommand*)0,
03374 "/GEANT/GEOMETRY/WEUCLID", "WEUCLID", 0, 2, 5, 3,
03375 _GEANT_GEOMETRY_WEUCLID_parameters, 0, 0, gxgeom_, (IntFunc*)0,
03376 (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_GEOMETRY_WEUCLID_guidance, 0,
03377 (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
03378
03379 static KmParInt _GEANT_GEOMETRY_REUCLID_LUN_type = { "1", "100", "1",
03380 "100", 0 };
03381 static KmParameter _GEANT_GEOMETRY_REUCLID_LUN = { "LUN", 3,
03382 "Logical unit of the file to be read", (char*)0, (char*)0, 4, 0, (char**)0,
03383 0, (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_REUCLID_LUN_type };
03384 static KmParameter _GEANT_GEOMETRY_REUCLID_FNAME = { "FNAME", 5,
03385 "Name of the EUCLID file to be read", (char*)0, (char*)0, 20, 0, (char**)0,
03386 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
03387 static KmParameter *_GEANT_GEOMETRY_REUCLID_parameters[] = {
03388 &_GEANT_GEOMETRY_REUCLID_LUN, &_GEANT_GEOMETRY_REUCLID_FNAME };
03389 static char *_GEANT_GEOMETRY_REUCLID_guidance[] = {
03390 " CALL GREUCL(LUN,FNAME)",
03391 "Calls the routine to read into GEANT a geometry from an ASCII file",
03392 "written by the EUCLID-GEANT interface." };
03393 static KmCommand _GEANT_GEOMETRY_REUCLID = { &_GEANT_GEOMETRY_WEUCLID,
03394 "/GEANT/GEOMETRY/REUCLID", "REUCLID", 0, 2, 2, 2,
03395 _GEANT_GEOMETRY_REUCLID_parameters, 0, 0, gxgeom_, (IntFunc*)0,
03396 (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_GEOMETRY_REUCLID_guidance, 0,
03397 (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
03398
03399 static KmParameter _GEANT_GEOMETRY_CADINT_FNAME = { "FNAME", 5,
03400 "Name of the SET file", "example.set", (char*)0, 20, 0, (char**)0, 0,
03401 (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
03402 static KmParameter _GEANT_GEOMETRY_CADINT_ANAME = { "ANAME", 5,
03403 "Name of the volume", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
03404 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
03405 static KmParInt _GEANT_GEOMETRY_CADINT_NBINS_type = { (char*)0, (char*)0,
03406 (char*)0, (char*)0, 0 };
03407 static KmParameter _GEANT_GEOMETRY_CADINT_NBINS = { "NBINS", 5,
03408 "Number of the instances", "1", (char*)0, 8, 0, (char**)0, 0, (char**)0,
03409 (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_CADINT_NBINS_type };
03410 static KmParInt _GEANT_GEOMETRY_CADINT_LUNIT_type = { (char*)0, (char*)0,
03411 (char*)0, (char*)0, 0 };
03412 static KmParameter _GEANT_GEOMETRY_CADINT_LUNIT = { "LUNIT", 5,
03413 "Logical unit number for SET file", "66", (char*)0, 8, 0, (char**)0, 0,
03414 (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_CADINT_LUNIT_type };
03415 static KmParInt _GEANT_GEOMETRY_CADINT_LUNIT2_type = { (char*)0, (char*)0,
03416 (char*)0, (char*)0, 0 };
03417 static KmParameter _GEANT_GEOMETRY_CADINT_LUNIT2 = { "LUNIT2", 6,
03418 "Logical unit number for material file", "67", (char*)0, 8, 0, (char**)0, 0,
03419 (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_CADINT_LUNIT2_type };
03420 static KmParameter _GEANT_GEOMETRY_CADINT_INST = { "INST", 4,
03421 "Name of your institute", "CERN", (char*)0, 20, 0, (char**)0, 0, (char**)0,
03422 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
03423 static KmParameter _GEANT_GEOMETRY_CADINT_SITE = { "SITE", 4, "Name of site",
03424 "MEYRIN", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03425 KmTYPE_CHAR, (void*)0 };
03426 static KmParameter _GEANT_GEOMETRY_CADINT_DEPT = { "DEPT", 4,
03427 "Name of departement", "CN", (char*)0, 20, 0, (char**)0, 0, (char**)0,
03428 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
03429 static KmParameter _GEANT_GEOMETRY_CADINT_RESP = { "RESP", 4,
03430 "Name of sender", "god_knows_who", (char*)0, 20, 0, (char**)0, 0, (char**)0,
03431 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
03432 static KmParameter *_GEANT_GEOMETRY_CADINT_parameters[] = {
03433 &_GEANT_GEOMETRY_CADINT_FNAME, &_GEANT_GEOMETRY_CADINT_ANAME,
03434 &_GEANT_GEOMETRY_CADINT_NBINS, &_GEANT_GEOMETRY_CADINT_LUNIT,
03435 &_GEANT_GEOMETRY_CADINT_LUNIT2, &_GEANT_GEOMETRY_CADINT_INST,
03436 &_GEANT_GEOMETRY_CADINT_SITE, &_GEANT_GEOMETRY_CADINT_DEPT,
03437 &_GEANT_GEOMETRY_CADINT_RESP };
03438 static char *_GEANT_GEOMETRY_CADINT_guidance[] = {
03439 " CALL GTXSET(fname,aname,nbins,lunit,lunit2,inst,site,dept,resp)",
03440 "This command produces a SET file describing the given volume with",
03441 "the contents currently set visible. (Use the visibility attribute,",
03442 "see SATT SEEN.) The description is given as a flat assembly",
03443 "related to the global coordinate system.",
03444 "The ouput can be read into CAD systems (EUCLID-IS) trough a SET interface.",
03445 "A list of materials of the volumes in the SET file and the GEANT tree",
03446 "is written into a file with the same filename as the SET file,",
03447 "but with extension .mat." };
03448 static KmCommand _GEANT_GEOMETRY_CADINT = { &_GEANT_GEOMETRY_REUCLID,
03449 "/GEANT/GEOMETRY/CADINT", "CADINT", 0, 2, 9, 9,
03450 _GEANT_GEOMETRY_CADINT_parameters, 0, 0, gxgeom_, (IntFunc*)0,
03451 (SUBROUTINE*)0, (pCharFunc*)0, 9, _GEANT_GEOMETRY_CADINT_guidance, 0,
03452 (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
03453
03454 static KmParInt _GEANT_GEOMETRY_EDITV_ISEL_type = { (char*)0, (char*)0,
03455 (char*)0, (char*)0, 0 };
03456 static KmParameter _GEANT_GEOMETRY_EDITV_ISEL = { "ISEL", 4, "Options", "0",
03457 (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
03458 &_GEANT_GEOMETRY_EDITV_ISEL_type };
03459 static KmParameter _GEANT_GEOMETRY_EDITV_NAME = { "NAME", 4, "Volume name",
03460 " ", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
03461 (void*)0 };
03462 static KmParameter *_GEANT_GEOMETRY_EDITV_parameters[] = {
03463 &_GEANT_GEOMETRY_EDITV_ISEL, &_GEANT_GEOMETRY_EDITV_NAME };
03464 static char *_GEANT_GEOMETRY_EDITV_guidance[] = { " CALL GEDITV(isel,name)",
03465 "When the routine prompts for input parameters that do not need",
03466 "to be changed, type return.",
03467 "ISEL is used to select the editing operation to be performed:",
03468 " ISEL=0, CALL GGCLOS",
03469 " ISEL=1, to modify shape parameters PAR given by GSVOLU",
03470 " ISEL=2, to modify NAME given by GSVOLU",
03471 " ISEL=3, to delete NAME given by GSVOLU",
03472 " ISEL=4, to unlink NAME,NR given by GSPOS/GSDVN/GSDV..",
03473 " ISEL=5, to modify X0,Y0,Z0 of NAME,NR given by GSPOS",
03474 " ISEL=6, to modify IROT of NAME,NR given by GSPOS",
03475 " ISEL=7, to modify NDIV given by GSDVN",
03476 " ISEL=8, to modify IAXIS given by GSDVN" };
03477 static KmCommand _GEANT_GEOMETRY_EDITV = { &_GEANT_GEOMETRY_CADINT,
03478 "/GEANT/GEOMETRY/EDITV", "EDITV", 0, 2, 2, 0,
03479 _GEANT_GEOMETRY_EDITV_parameters, 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0,
03480 (pCharFunc*)0, 13, _GEANT_GEOMETRY_EDITV_guidance, 0, (char**)0, 0,
03481 (char**)0, 0, (char**)0, (char*)0, (int*)0 };
03482
03483 static KmParInt _GEANT_GEOMETRY_PTMED_NUMB_type = { (char*)0, (char*)0,
03484 (char*)0, (char*)0, 0 };
03485 static KmParameter _GEANT_GEOMETRY_PTMED_NUMB = { "NUMB", 4, "Medium ID",
03486 (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
03487 &_GEANT_GEOMETRY_PTMED_NUMB_type };
03488 static KmParameter *_GEANT_GEOMETRY_PTMED_parameters[] = {
03489 &_GEANT_GEOMETRY_PTMED_NUMB };
03490 static char *_GEANT_GEOMETRY_PTMED_guidance[] = { " CALL GPTMED(numb)",
03491 "Print tracking media's specifications." };
03492 static KmCommand _GEANT_GEOMETRY_PTMED = { &_GEANT_GEOMETRY_EDITV,
03493 "/GEANT/GEOMETRY/PTMED", "PTMED", 0, 2, 1, 1,
03494 _GEANT_GEOMETRY_PTMED_parameters, 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0,
03495 (pCharFunc*)0, 2, _GEANT_GEOMETRY_PTMED_guidance, 0, (char**)0, 0, (char**)0,
03496 0, (char**)0, (char*)0, (int*)0 };
03497
03498 static KmParInt _GEANT_GEOMETRY_STMED_NTMED_type = { (char*)0, (char*)0,
03499 (char*)0, (char*)0, 0 };
03500 static KmParameter _GEANT_GEOMETRY_STMED_NTMED = { "NTMED", 5,
03501 "Tracking medium number", "1", (char*)0, 8, 0, (char**)0, 0, (char**)0,
03502 (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_STMED_NTMED_type };
03503 static KmParameter _GEANT_GEOMETRY_STMED_NAME = { "NAME", 4,
03504 "Tracking medium name", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
03505 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
03506 static KmParInt _GEANT_GEOMETRY_STMED_NMAT_type = { (char*)0, (char*)0,
03507 (char*)0, (char*)0, 0 };
03508 static KmParameter _GEANT_GEOMETRY_STMED_NMAT = { "NMAT", 4,
03509 "Material number", "1", (char*)0, 8, 0, (char**)0, 0, (char**)0,
03510 (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_STMED_NMAT_type };
03511 static KmParInt _GEANT_GEOMETRY_STMED_ISVOL_type = { (char*)0, (char*)0,
03512 (char*)0, (char*)0, 0 };
03513 static KmParameter _GEANT_GEOMETRY_STMED_ISVOL = { "ISVOL", 5,
03514 "Sensitive volume flag", "0", (char*)0, 8, 0, (char**)0, 0, (char**)0,
03515 (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_STMED_ISVOL_type };
03516 static KmParInt _GEANT_GEOMETRY_STMED_IFIELD_type = { (char*)0, (char*)0,
03517 (char*)0, (char*)0, 0 };
03518 static KmParameter _GEANT_GEOMETRY_STMED_IFIELD = { "IFIELD", 6,
03519 "Magnetic field", "0", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03520 KmTYPE_INT, &_GEANT_GEOMETRY_STMED_IFIELD_type };
03521 static KmParReal _GEANT_GEOMETRY_STMED_FIELDM_type = { (char*)0, (char*)0,
03522 (char*)0, (char*)0, 0 };
03523 static KmParameter _GEANT_GEOMETRY_STMED_FIELDM = { "FIELDM", 6,
03524 "Max. field value (Kilogauss)", "0", (char*)0, 12, 0, (char**)0, 0,
03525 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_GEOMETRY_STMED_FIELDM_type };
03526 static KmParReal _GEANT_GEOMETRY_STMED_TMAXFD_type = { (char*)0, (char*)0,
03527 (char*)0, (char*)0, 0 };
03528 static KmParameter _GEANT_GEOMETRY_STMED_TMAXFD = { "TMAXFD", 6,
03529 "Max. angle due to field (deg/step)", "0.01", (char*)0, 12, 0, (char**)0, 0,
03530 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_GEOMETRY_STMED_TMAXFD_type };
03531 static KmParReal _GEANT_GEOMETRY_STMED_STEMAX_type = { (char*)0, (char*)0,
03532 (char*)0, (char*)0, 0 };
03533 static KmParameter _GEANT_GEOMETRY_STMED_STEMAX = { "STEMAX", 6,
03534 "Max. step allowed", "1.E+10", (char*)0, 12, 0, (char**)0, 0, (char**)0,
03535 (KmParFlag)0, KmTYPE_REAL, &_GEANT_GEOMETRY_STMED_STEMAX_type };
03536 static KmParReal _GEANT_GEOMETRY_STMED_DEEMAX_type = { (char*)0, (char*)0,
03537 (char*)0, (char*)0, 0 };
03538 static KmParameter _GEANT_GEOMETRY_STMED_DEEMAX = { "DEEMAX", 6,
03539 "Max. fraction of energy lost in a step", "0.01", (char*)0, 12, 0, (char**)0,
03540 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_GEOMETRY_STMED_DEEMAX_type };
03541 static KmParReal _GEANT_GEOMETRY_STMED_EPSIL_type = { (char*)0, (char*)0,
03542 (char*)0, (char*)0, 0 };
03543 static KmParameter _GEANT_GEOMETRY_STMED_EPSIL = { "EPSIL", 5,
03544 "Tracking precision (cm)", "0.01", (char*)0, 12, 0, (char**)0, 0, (char**)0,
03545 (KmParFlag)0, KmTYPE_REAL, &_GEANT_GEOMETRY_STMED_EPSIL_type };
03546 static KmParReal _GEANT_GEOMETRY_STMED_STMIN_type = { (char*)0, (char*)0,
03547 (char*)0, (char*)0, 0 };
03548 static KmParameter _GEANT_GEOMETRY_STMED_STMIN = { "STMIN", 5,
03549 "Min. step due to continuos processes (cm)", "0.1", (char*)0, 12, 0,
03550 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
03551 &_GEANT_GEOMETRY_STMED_STMIN_type };
03552 static KmParameter *_GEANT_GEOMETRY_STMED_parameters[] = {
03553 &_GEANT_GEOMETRY_STMED_NTMED, &_GEANT_GEOMETRY_STMED_NAME,
03554 &_GEANT_GEOMETRY_STMED_NMAT, &_GEANT_GEOMETRY_STMED_ISVOL,
03555 &_GEANT_GEOMETRY_STMED_IFIELD, &_GEANT_GEOMETRY_STMED_FIELDM,
03556 &_GEANT_GEOMETRY_STMED_TMAXFD, &_GEANT_GEOMETRY_STMED_STEMAX,
03557 &_GEANT_GEOMETRY_STMED_DEEMAX, &_GEANT_GEOMETRY_STMED_EPSIL,
03558 &_GEANT_GEOMETRY_STMED_STMIN };
03559 static char *_GEANT_GEOMETRY_STMED_guidance[] = {
03560 " CALL GSTMED(ntmed,name,nmat,isvol,ifield,fieldm,tmaxfd,",
03561 " + stemax,deemax,epsil,stmin,0,0)",
03562 "IFIELD = 0 if no magnetic field; IFIELD = -1 if user decision in GUSWIM;",
03563 "IFIELD = 1 if tracking performed with GRKUTA; IFIELD = 2 if tracking",
03564 "performed with GHELIX; IFIELD = 3 if tracking performed with GHELX3." };
03565 static KmCommand _GEANT_GEOMETRY_STMED = { &_GEANT_GEOMETRY_PTMED,
03566 "/GEANT/GEOMETRY/STMED", "STMED", 0, 2, 11, 11,
03567 _GEANT_GEOMETRY_STMED_parameters, 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0,
03568 (pCharFunc*)0, 5, _GEANT_GEOMETRY_STMED_guidance, 0, (char**)0, 0, (char**)0,
03569 0, (char**)0, (char*)0, (int*)0 };
03570
03571 static KmParInt _GEANT_GEOMETRY_PROTM_NUMB_type = { (char*)0, (char*)0,
03572 (char*)0, (char*)0, 0 };
03573 static KmParameter _GEANT_GEOMETRY_PROTM_NUMB = { "NUMB", 4, "Matrix ID",
03574 (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
03575 &_GEANT_GEOMETRY_PROTM_NUMB_type };
03576 static KmParameter *_GEANT_GEOMETRY_PROTM_parameters[] = {
03577 &_GEANT_GEOMETRY_PROTM_NUMB };
03578 static char *_GEANT_GEOMETRY_PROTM_guidance[] = { " CALL GPROTM(numb)",
03579 "Print matrixes' specifications." };
03580 static KmCommand _GEANT_GEOMETRY_PROTM = { &_GEANT_GEOMETRY_STMED,
03581 "/GEANT/GEOMETRY/PROTM", "PROTM", 0, 2, 1, 1,
03582 _GEANT_GEOMETRY_PROTM_parameters, 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0,
03583 (pCharFunc*)0, 2, _GEANT_GEOMETRY_PROTM_guidance, 0, (char**)0, 0, (char**)0,
03584 0, (char**)0, (char*)0, (int*)0 };
03585
03586 static KmParInt _GEANT_GEOMETRY_SROTM_IROT_type = { (char*)0, (char*)0,
03587 (char*)0, (char*)0, 0 };
03588 static KmParameter _GEANT_GEOMETRY_SROTM_IROT = { "IROT", 4,
03589 "Rotation matrix number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
03590 (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_SROTM_IROT_type };
03591 static KmParReal _GEANT_GEOMETRY_SROTM_THETA1_type = { "0.", "180.", "0.",
03592 "180.", 0 };
03593 static KmParameter _GEANT_GEOMETRY_SROTM_THETA1 = { "THETA1", 6,
03594 "Polar angle for axis I", "0.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
03595 (KmParFlag)0, KmTYPE_REAL, &_GEANT_GEOMETRY_SROTM_THETA1_type };
03596 static KmParReal _GEANT_GEOMETRY_SROTM_PHI1_type = { "0.", "360.", "0.",
03597 "360.", 0 };
03598 static KmParameter _GEANT_GEOMETRY_SROTM_PHI1 = { "PHI1", 4,
03599 "Azimuthal angle for axis I", "0.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
03600 (KmParFlag)0, KmTYPE_REAL, &_GEANT_GEOMETRY_SROTM_PHI1_type };
03601 static KmParReal _GEANT_GEOMETRY_SROTM_THETA2_type = { "0.", "180.", "0.",
03602 "180.", 0 };
03603 static KmParameter _GEANT_GEOMETRY_SROTM_THETA2 = { "THETA2", 6,
03604 "Polar angle for axis II", "0.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
03605 (KmParFlag)0, KmTYPE_REAL, &_GEANT_GEOMETRY_SROTM_THETA2_type };
03606 static KmParReal _GEANT_GEOMETRY_SROTM_PHI2_type = { "0.", "360.", "0.",
03607 "360.", 0 };
03608 static KmParameter _GEANT_GEOMETRY_SROTM_PHI2 = { "PHI2", 4,
03609 "Azimuthal angle for axis II", "0.", (char*)0, 12, 0, (char**)0, 0,
03610 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_GEOMETRY_SROTM_PHI2_type };
03611 static KmParReal _GEANT_GEOMETRY_SROTM_THETA3_type = { "0.", "180.", "0.",
03612 "180.", 0 };
03613 static KmParameter _GEANT_GEOMETRY_SROTM_THETA3 = { "THETA3", 6,
03614 "Polar angle for axis III", "0.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
03615 (KmParFlag)0, KmTYPE_REAL, &_GEANT_GEOMETRY_SROTM_THETA3_type };
03616 static KmParReal _GEANT_GEOMETRY_SROTM_PHI3_type = { "0.", "360.", "0.",
03617 "360.", 0 };
03618 static KmParameter _GEANT_GEOMETRY_SROTM_PHI3 = { "PHI3", 4,
03619 "Azimuthal angle for axis III", "0.", (char*)0, 12, 0, (char**)0, 0,
03620 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_GEOMETRY_SROTM_PHI3_type };
03621 static KmParameter *_GEANT_GEOMETRY_SROTM_parameters[] = {
03622 &_GEANT_GEOMETRY_SROTM_IROT, &_GEANT_GEOMETRY_SROTM_THETA1,
03623 &_GEANT_GEOMETRY_SROTM_PHI1, &_GEANT_GEOMETRY_SROTM_THETA2,
03624 &_GEANT_GEOMETRY_SROTM_PHI2, &_GEANT_GEOMETRY_SROTM_THETA3,
03625 &_GEANT_GEOMETRY_SROTM_PHI3 };
03626 static char *_GEANT_GEOMETRY_SROTM_guidance[] = {
03627 " CALL GSROTM(irot,theta1,phi1,theta2,phi2,theta3,phi3)",
03628 "It defines the rotation matrix number IROT." };
03629 static KmCommand _GEANT_GEOMETRY_SROTM = { &_GEANT_GEOMETRY_PROTM,
03630 "/GEANT/GEOMETRY/SROTM", "SROTM", 0, 2, 7, 7,
03631 _GEANT_GEOMETRY_SROTM_parameters, 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0,
03632 (pCharFunc*)0, 2, _GEANT_GEOMETRY_SROTM_guidance, 0, (char**)0, 0, (char**)0,
03633 0, (char**)0, (char*)0, (int*)0 };
03634
03635 static KmParInt _GEANT_GEOMETRY_PVOLU_NUMB_type = { (char*)0, (char*)0,
03636 (char*)0, (char*)0, 0 };
03637 static KmParameter _GEANT_GEOMETRY_PVOLU_NUMB = { "NUMB", 4, "Volume ID",
03638 (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
03639 &_GEANT_GEOMETRY_PVOLU_NUMB_type };
03640 static KmParameter *_GEANT_GEOMETRY_PVOLU_parameters[] = {
03641 &_GEANT_GEOMETRY_PVOLU_NUMB };
03642 static char *_GEANT_GEOMETRY_PVOLU_guidance[] = { " CALL GPVOLU(numb)",
03643 "Prints volumes' specifications." };
03644 static KmCommand _GEANT_GEOMETRY_PVOLU = { &_GEANT_GEOMETRY_SROTM,
03645 "/GEANT/GEOMETRY/PVOLU", "PVOLU", 0, 2, 1, 1,
03646 _GEANT_GEOMETRY_PVOLU_parameters, 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0,
03647 (pCharFunc*)0, 2, _GEANT_GEOMETRY_PVOLU_guidance, 0, (char**)0, 0, (char**)0,
03648 0, (char**)0, (char*)0, (int*)0 };
03649
03650 static KmParameter _GEANT_GEOMETRY_SDVN_NAME = { "NAME", 4, "Volume name",
03651 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03652 KmTYPE_CHAR, (void*)0 };
03653 static KmParameter _GEANT_GEOMETRY_SDVN_MOTHER = { "MOTHER", 6,
03654 "Mother volume name", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
03655 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
03656 static KmParInt _GEANT_GEOMETRY_SDVN_NDIV_type = { (char*)0, (char*)0,
03657 (char*)0, (char*)0, 0 };
03658 static KmParameter _GEANT_GEOMETRY_SDVN_NDIV = { "NDIV", 4,
03659 "Number of divisions", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
03660 (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_SDVN_NDIV_type };
03661 static char *_GEANT_GEOMETRY_SDVN_CAXIS_range[] = { "X", "Y", "Z", "1", "2",
03662 "3" };
03663 static char *_GEANT_GEOMETRY_SDVN_CAXIS_text[] = { (char*)0, (char*)0,
03664 (char*)0, (char*)0, (char*)0, (char*)0 };
03665 static KmParOption _GEANT_GEOMETRY_SDVN_CAXIS_type = {
03666 _GEANT_GEOMETRY_SDVN_CAXIS_text, (int*)0, (int*)0 };
03667 static KmParameter _GEANT_GEOMETRY_SDVN_CAXIS = { "CAXIS", 5, "Axis value",
03668 (char*)0, (char*)0, 8, 6, _GEANT_GEOMETRY_SDVN_CAXIS_range, 6,
03669 _GEANT_GEOMETRY_SDVN_CAXIS_range, (KmParFlag)0, KmTYPE_OPTION,
03670 &_GEANT_GEOMETRY_SDVN_CAXIS_type };
03671 static KmParameter *_GEANT_GEOMETRY_SDVN_parameters[] = {
03672 &_GEANT_GEOMETRY_SDVN_NAME, &_GEANT_GEOMETRY_SDVN_MOTHER,
03673 &_GEANT_GEOMETRY_SDVN_NDIV, &_GEANT_GEOMETRY_SDVN_CAXIS };
03674 static char *_GEANT_GEOMETRY_SDVN_guidance[] = {
03675 " CALL GSDVN(name,mother,ndiv,iaxis)",
03676 "X,Y,Z of CAXIS will be translated to 1,2,3 for IAXIS.",
03677 "It divides a previously defined volume." };
03678 static KmCommand _GEANT_GEOMETRY_SDVN = { &_GEANT_GEOMETRY_PVOLU,
03679 "/GEANT/GEOMETRY/SDVN", "SDVN", 0, 2, 4, 4, _GEANT_GEOMETRY_SDVN_parameters,
03680 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
03681 _GEANT_GEOMETRY_SDVN_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
03682 (char*)0, (int*)0 };
03683
03684 static KmParameter _GEANT_GEOMETRY_SPOS_NAME = { "NAME", 4, "Volume name",
03685 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03686 KmTYPE_CHAR, (void*)0 };
03687 static KmParInt _GEANT_GEOMETRY_SPOS_NUMBER_type = { (char*)0, (char*)0,
03688 (char*)0, (char*)0, 0 };
03689 static KmParameter _GEANT_GEOMETRY_SPOS_NUMBER = { "NUMBER", 6,
03690 "Copy number of the volume", (char*)0, (char*)0, 8, 0, (char**)0, 0,
03691 (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_SPOS_NUMBER_type };
03692 static KmParameter _GEANT_GEOMETRY_SPOS_MOTHER = { "MOTHER", 6,
03693 "Mother volume name", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
03694 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
03695 static KmParReal _GEANT_GEOMETRY_SPOS_X0_type = { (char*)0, (char*)0,
03696 (char*)0, (char*)0, 0 };
03697 static KmParameter _GEANT_GEOMETRY_SPOS_X0 = { "X0", 2,
03698 "X coord. of the volume in mother ref. sys.", (char*)0, (char*)0, 12, 0,
03699 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
03700 &_GEANT_GEOMETRY_SPOS_X0_type };
03701 static KmParReal _GEANT_GEOMETRY_SPOS_Y0_type = { (char*)0, (char*)0,
03702 (char*)0, (char*)0, 0 };
03703 static KmParameter _GEANT_GEOMETRY_SPOS_Y0 = { "Y0", 2,
03704 "Y coord. of the volume in mother ref. sys.", (char*)0, (char*)0, 12, 0,
03705 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
03706 &_GEANT_GEOMETRY_SPOS_Y0_type };
03707 static KmParReal _GEANT_GEOMETRY_SPOS_Z0_type = { (char*)0, (char*)0,
03708 (char*)0, (char*)0, 0 };
03709 static KmParameter _GEANT_GEOMETRY_SPOS_Z0 = { "Z0", 2,
03710 "Z coord. of the volume in mother ref. sys.", (char*)0, (char*)0, 12, 0,
03711 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
03712 &_GEANT_GEOMETRY_SPOS_Z0_type };
03713 static KmParInt _GEANT_GEOMETRY_SPOS_IROT_type = { (char*)0, (char*)0,
03714 (char*)0, (char*)0, 0 };
03715 static KmParameter _GEANT_GEOMETRY_SPOS_IROT = { "IROT", 4,
03716 "Rotation matrix number w.r.t. mother ref. sys.", (char*)0, (char*)0, 8, 0,
03717 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
03718 &_GEANT_GEOMETRY_SPOS_IROT_type };
03719 static KmParameter _GEANT_GEOMETRY_SPOS_ONLY = { "ONLY", 4, "ONLY/MANY flag",
03720 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03721 KmTYPE_CHAR, (void*)0 };
03722 static KmParameter *_GEANT_GEOMETRY_SPOS_parameters[] = {
03723 &_GEANT_GEOMETRY_SPOS_NAME, &_GEANT_GEOMETRY_SPOS_NUMBER,
03724 &_GEANT_GEOMETRY_SPOS_MOTHER, &_GEANT_GEOMETRY_SPOS_X0,
03725 &_GEANT_GEOMETRY_SPOS_Y0, &_GEANT_GEOMETRY_SPOS_Z0,
03726 &_GEANT_GEOMETRY_SPOS_IROT, &_GEANT_GEOMETRY_SPOS_ONLY };
03727 static char *_GEANT_GEOMETRY_SPOS_guidance[] = {
03728 " CALL GSPOS(name,number,mother,x0,y0,z0,irot,only)",
03729 "It positions a previously defined volume in the mother." };
03730 static KmCommand _GEANT_GEOMETRY_SPOS = { &_GEANT_GEOMETRY_SDVN,
03731 "/GEANT/GEOMETRY/SPOS", "SPOS", 0, 2, 8, 8, _GEANT_GEOMETRY_SPOS_parameters,
03732 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 2,
03733 _GEANT_GEOMETRY_SPOS_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
03734 (char*)0, (int*)0 };
03735
03736 static KmParameter _GEANT_GEOMETRY_SVOLU_NAME = { "NAME", 4, "Volume name",
03737 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03738 KmTYPE_CHAR, (void*)0 };
03739 static KmParameter _GEANT_GEOMETRY_SVOLU_SHAPE = { "SHAPE", 5, "Volume type",
03740 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03741 KmTYPE_CHAR, (void*)0 };
03742 static KmParInt _GEANT_GEOMETRY_SVOLU_NUMED_type = { (char*)0, (char*)0,
03743 (char*)0, (char*)0, 0 };
03744 static KmParameter _GEANT_GEOMETRY_SVOLU_NUMED = { "NUMED", 5,
03745 "Tracking medium number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
03746 (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_SVOLU_NUMED_type };
03747 static KmParInt _GEANT_GEOMETRY_SVOLU_NPAR_type = { (char*)0, (char*)0,
03748 (char*)0, (char*)0, 0 };
03749 static KmParameter _GEANT_GEOMETRY_SVOLU_NPAR = { "NPAR", 4,
03750 "Number of shape parameters", (char*)0, (char*)0, 8, 0, (char**)0, 0,
03751 (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_SVOLU_NPAR_type };
03752 static KmParameter _GEANT_GEOMETRY_SVOLU_PAR = { "PAR", 3,
03753 "Vector containing shape parameters", (char*)0, (char*)0, 20, 0, (char**)0,
03754 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
03755 static KmParameter *_GEANT_GEOMETRY_SVOLU_parameters[] = {
03756 &_GEANT_GEOMETRY_SVOLU_NAME, &_GEANT_GEOMETRY_SVOLU_SHAPE,
03757 &_GEANT_GEOMETRY_SVOLU_NUMED, &_GEANT_GEOMETRY_SVOLU_NPAR,
03758 &_GEANT_GEOMETRY_SVOLU_PAR };
03759 static char *_GEANT_GEOMETRY_SVOLU_guidance[] = {
03760 " CALL GSVOLU(name,shape,numed,par,npar,ivolu)",
03761 "where par is a KUIP vector.",
03762 "It creates a new volume in the JVOLUM data structure." };
03763 static KmCommand _GEANT_GEOMETRY_SVOLU = { &_GEANT_GEOMETRY_SPOS,
03764 "/GEANT/GEOMETRY/SVOLU", "SVOLU", 0, 2, 5, 5,
03765 _GEANT_GEOMETRY_SVOLU_parameters, 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0,
03766 (pCharFunc*)0, 3, _GEANT_GEOMETRY_SVOLU_guidance, 0, (char**)0, 0, (char**)0,
03767 0, (char**)0, (char*)0, (int*)0 };
03768
03769 static char *_GEANT_GEOMETRY_OPTI_IOPTI_range[] = { "-1", "2" };
03770 static KmParInt _GEANT_GEOMETRY_OPTI_IOPTI_type = { (char*)0, (char*)0,
03771 (char*)0, (char*)0, 0 };
03772 static KmParameter _GEANT_GEOMETRY_OPTI_IOPTI = { "IOPTI", 5,
03773 "GSORD optimisation level", "0", (char*)0, 8, 2,
03774 _GEANT_GEOMETRY_OPTI_IOPTI_range, 2, _GEANT_GEOMETRY_OPTI_IOPTI_range,
03775 (KmParFlag)2, KmTYPE_INT, &_GEANT_GEOMETRY_OPTI_IOPTI_type };
03776 static KmParameter *_GEANT_GEOMETRY_OPTI_parameters[] = {
03777 &_GEANT_GEOMETRY_OPTI_IOPTI };
03778 static char *_GEANT_GEOMETRY_OPTI_guidance[] = {
03779 "This flag controls the tracking optimisation performed via the",
03780 "GSORD routine:", " 1 no optimisation at all; GSORD calls disabled;",
03781 " 0 no optimisation; only user calls to GSORD kept;",
03782 " 1 all non-GSORDered volumes are ordered along the best axis;",
03783 " 2 all volumes are ordered along the best axis." };
03784 static KmCommand _GEANT_GEOMETRY_OPTI = { &_GEANT_GEOMETRY_SVOLU,
03785 "/GEANT/GEOMETRY/OPTI", "OPTI", 0, 2, 1, 1, _GEANT_GEOMETRY_OPTI_parameters,
03786 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 6,
03787 _GEANT_GEOMETRY_OPTI_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
03788 (char*)0, (int*)0 };
03789
03790 static KmParameter _GEANT_CREATE_SPARA_NAME = { "NAME", 4, "Volume name",
03791 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03792 KmTYPE_CHAR, (void*)0 };
03793 static KmParInt _GEANT_CREATE_SPARA_NUMED_type = { (char*)0, (char*)0,
03794 (char*)0, (char*)0, 0 };
03795 static KmParameter _GEANT_CREATE_SPARA_NUMED = { "NUMED", 5,
03796 "Tracking medium number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
03797 (KmParFlag)0, KmTYPE_INT, &_GEANT_CREATE_SPARA_NUMED_type };
03798 static KmParReal _GEANT_CREATE_SPARA_HALFX_type = { (char*)0, (char*)0,
03799 (char*)0, (char*)0, 0 };
03800 static KmParameter _GEANT_CREATE_SPARA_HALFX = { "HALFX", 5, "Half X length",
03801 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03802 KmTYPE_REAL, &_GEANT_CREATE_SPARA_HALFX_type };
03803 static KmParReal _GEANT_CREATE_SPARA_HALFY_type = { (char*)0, (char*)0,
03804 (char*)0, (char*)0, 0 };
03805 static KmParameter _GEANT_CREATE_SPARA_HALFY = { "HALFY", 5, "Half Y length",
03806 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03807 KmTYPE_REAL, &_GEANT_CREATE_SPARA_HALFY_type };
03808 static KmParReal _GEANT_CREATE_SPARA_HALFZ_type = { (char*)0, (char*)0,
03809 (char*)0, (char*)0, 0 };
03810 static KmParameter _GEANT_CREATE_SPARA_HALFZ = { "HALFZ", 5, "Half Z length",
03811 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03812 KmTYPE_REAL, &_GEANT_CREATE_SPARA_HALFZ_type };
03813 static KmParReal _GEANT_CREATE_SPARA_AXIS_type = { "0.", "360.", "0.",
03814 "360.", 0 };
03815 static KmParameter _GEANT_CREATE_SPARA_AXIS = { "AXIS", 4,
03816 "Angle of Y mid-faces segment to Y axis", (char*)0, (char*)0, 12, 0,
03817 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
03818 &_GEANT_CREATE_SPARA_AXIS_type };
03819 static KmParReal _GEANT_CREATE_SPARA_PHI_type = { "0.", "360.", "0.",
03820 "360.", 0 };
03821 static KmParameter _GEANT_CREATE_SPARA_PHI = { "PHI", 3,
03822 "PHI angle of Low Z mid-face to High Z mid-face segment", (char*)0, (char*)0,
03823 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
03824 &_GEANT_CREATE_SPARA_PHI_type };
03825 static KmParReal _GEANT_CREATE_SPARA_THETA_type = { "0.", "360.", "0.",
03826 "360.", 0 };
03827 static KmParameter _GEANT_CREATE_SPARA_THETA = { "THETA", 5,
03828 "THETA angle of mid-low-Z-face to mid-high-Z-face segment", (char*)0,
03829 (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
03830 &_GEANT_CREATE_SPARA_THETA_type };
03831 static char *_GEANT_CREATE_SPARA_YESNO_range[] = { "YES", "NO" };
03832 static char *_GEANT_CREATE_SPARA_YESNO_text[] = { (char*)0, (char*)0 };
03833 static KmParOption _GEANT_CREATE_SPARA_YESNO_type = {
03834 _GEANT_CREATE_SPARA_YESNO_text, (int*)0, (int*)0 };
03835 static KmParameter _GEANT_CREATE_SPARA_YESNO = { "YESNO", 5, "GSPOSP option",
03836 "NO", (char*)0, 8, 2, _GEANT_CREATE_SPARA_YESNO_range, 2,
03837 _GEANT_CREATE_SPARA_YESNO_range, (KmParFlag)0, KmTYPE_OPTION,
03838 &_GEANT_CREATE_SPARA_YESNO_type };
03839 static KmParameter *_GEANT_CREATE_SPARA_parameters[] = {
03840 &_GEANT_CREATE_SPARA_NAME, &_GEANT_CREATE_SPARA_NUMED,
03841 &_GEANT_CREATE_SPARA_HALFX, &_GEANT_CREATE_SPARA_HALFY,
03842 &_GEANT_CREATE_SPARA_HALFZ, &_GEANT_CREATE_SPARA_AXIS,
03843 &_GEANT_CREATE_SPARA_PHI, &_GEANT_CREATE_SPARA_THETA,
03844 &_GEANT_CREATE_SPARA_YESNO };
03845 static KmCommand _GEANT_CREATE_SPARA = { (KmCommand*)0,
03846 "/GEANT/CREATE/SPARA", "SPARA", 0, 2, 9, 8, _GEANT_CREATE_SPARA_parameters,
03847 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 0, (char**)0, 0,
03848 (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
03849
03850 static KmParameter _GEANT_CREATE_SSPHE_NAME = { "NAME", 4, "Volume name",
03851 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03852 KmTYPE_CHAR, (void*)0 };
03853 static KmParInt _GEANT_CREATE_SSPHE_NUMED_type = { (char*)0, (char*)0,
03854 (char*)0, (char*)0, 0 };
03855 static KmParameter _GEANT_CREATE_SSPHE_NUMED = { "NUMED", 5,
03856 "Tracking medium number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
03857 (KmParFlag)0, KmTYPE_INT, &_GEANT_CREATE_SSPHE_NUMED_type };
03858 static KmParReal _GEANT_CREATE_SSPHE_INRAD_type = { (char*)0, (char*)0,
03859 (char*)0, (char*)0, 0 };
03860 static KmParameter _GEANT_CREATE_SSPHE_INRAD = { "INRAD", 5, "Inside Radius",
03861 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03862 KmTYPE_REAL, &_GEANT_CREATE_SSPHE_INRAD_type };
03863 static KmParReal _GEANT_CREATE_SSPHE_OUTRAD_type = { (char*)0, (char*)0,
03864 (char*)0, (char*)0, 0 };
03865 static KmParameter _GEANT_CREATE_SSPHE_OUTRAD = { "OUTRAD", 6,
03866 "Outside Radius", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
03867 (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SSPHE_OUTRAD_type };
03868 static KmParReal _GEANT_CREATE_SSPHE_SPHI_type = { "0.", "360.", "0.",
03869 "360.", 0 };
03870 static KmParameter _GEANT_CREATE_SSPHE_SPHI = { "SPHI", 4,
03871 "Start of section PHI", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
03872 (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SSPHE_SPHI_type };
03873 static KmParReal _GEANT_CREATE_SSPHE_EPHI_type = { "0.", "360.", "0.",
03874 "360.", 0 };
03875 static KmParameter _GEANT_CREATE_SSPHE_EPHI = { "EPHI", 4,
03876 "End of section PHI", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
03877 (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SSPHE_EPHI_type };
03878 static KmParReal _GEANT_CREATE_SSPHE_STHETA_type = { (char*)0, (char*)0,
03879 (char*)0, (char*)0, 0 };
03880 static KmParameter _GEANT_CREATE_SSPHE_STHETA = { "STHETA", 6,
03881 "Start of section THETA", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
03882 (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SSPHE_STHETA_type };
03883 static KmParReal _GEANT_CREATE_SSPHE_ETHETA_type = { (char*)0, (char*)0,
03884 (char*)0, (char*)0, 0 };
03885 static KmParameter _GEANT_CREATE_SSPHE_ETHETA = { "ETHETA", 6,
03886 "End of section THETA", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
03887 (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SSPHE_ETHETA_type };
03888 static char *_GEANT_CREATE_SSPHE_YESNO_range[] = { "YES", "NO" };
03889 static char *_GEANT_CREATE_SSPHE_YESNO_text[] = { (char*)0, (char*)0 };
03890 static KmParOption _GEANT_CREATE_SSPHE_YESNO_type = {
03891 _GEANT_CREATE_SSPHE_YESNO_text, (int*)0, (int*)0 };
03892 static KmParameter _GEANT_CREATE_SSPHE_YESNO = { "YESNO", 5, "GSPOSP option",
03893 "NO", (char*)0, 8, 2, _GEANT_CREATE_SSPHE_YESNO_range, 2,
03894 _GEANT_CREATE_SSPHE_YESNO_range, (KmParFlag)0, KmTYPE_OPTION,
03895 &_GEANT_CREATE_SSPHE_YESNO_type };
03896 static KmParameter *_GEANT_CREATE_SSPHE_parameters[] = {
03897 &_GEANT_CREATE_SSPHE_NAME, &_GEANT_CREATE_SSPHE_NUMED,
03898 &_GEANT_CREATE_SSPHE_INRAD, &_GEANT_CREATE_SSPHE_OUTRAD,
03899 &_GEANT_CREATE_SSPHE_SPHI, &_GEANT_CREATE_SSPHE_EPHI,
03900 &_GEANT_CREATE_SSPHE_STHETA, &_GEANT_CREATE_SSPHE_ETHETA,
03901 &_GEANT_CREATE_SSPHE_YESNO };
03902 static KmCommand _GEANT_CREATE_SSPHE = { &_GEANT_CREATE_SPARA,
03903 "/GEANT/CREATE/SSPHE", "SSPHE", 0, 2, 9, 8, _GEANT_CREATE_SSPHE_parameters,
03904 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 0, (char**)0, 0,
03905 (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
03906
03907 static KmParameter _GEANT_CREATE_SCONS_NAME = { "NAME", 4, "Volume name",
03908 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03909 KmTYPE_CHAR, (void*)0 };
03910 static KmParInt _GEANT_CREATE_SCONS_NUMED_type = { (char*)0, (char*)0,
03911 (char*)0, (char*)0, 0 };
03912 static KmParameter _GEANT_CREATE_SCONS_NUMED = { "NUMED", 5,
03913 "Tracking medium number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
03914 (KmParFlag)0, KmTYPE_INT, &_GEANT_CREATE_SCONS_NUMED_type };
03915 static KmParReal _GEANT_CREATE_SCONS_INRDW_type = { (char*)0, (char*)0,
03916 (char*)0, (char*)0, 0 };
03917 static KmParameter _GEANT_CREATE_SCONS_INRDW = { "INRDW", 5,
03918 "Inside Radius in Lower Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
03919 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SCONS_INRDW_type };
03920 static KmParReal _GEANT_CREATE_SCONS_OUTRDW_type = { (char*)0, (char*)0,
03921 (char*)0, (char*)0, 0 };
03922 static KmParameter _GEANT_CREATE_SCONS_OUTRDW = { "OUTRDW", 6,
03923 "Outside Radius in Lower Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
03924 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SCONS_OUTRDW_type };
03925 static KmParReal _GEANT_CREATE_SCONS_INRUP_type = { (char*)0, (char*)0,
03926 (char*)0, (char*)0, 0 };
03927 static KmParameter _GEANT_CREATE_SCONS_INRUP = { "INRUP", 5,
03928 "Inside Radius in Upper Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
03929 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SCONS_INRUP_type };
03930 static KmParReal _GEANT_CREATE_SCONS_OUTRUP_type = { (char*)0, (char*)0,
03931 (char*)0, (char*)0, 0 };
03932 static KmParameter _GEANT_CREATE_SCONS_OUTRUP = { "OUTRUP", 6,
03933 "Outside Radius in Upper Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
03934 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SCONS_OUTRUP_type };
03935 static KmParReal _GEANT_CREATE_SCONS_HALFZ_type = { (char*)0, (char*)0,
03936 (char*)0, (char*)0, 0 };
03937 static KmParameter _GEANT_CREATE_SCONS_HALFZ = { "HALFZ", 5, "Half Z length",
03938 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03939 KmTYPE_REAL, &_GEANT_CREATE_SCONS_HALFZ_type };
03940 static KmParReal _GEANT_CREATE_SCONS_SPHI_type = { "0.", "360.", "0.",
03941 "360.", 0 };
03942 static KmParameter _GEANT_CREATE_SCONS_SPHI = { "SPHI", 4,
03943 "Start of section PHI", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
03944 (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SCONS_SPHI_type };
03945 static KmParReal _GEANT_CREATE_SCONS_EPHI_type = { "0.", "360.", "0.",
03946 "360.", 0 };
03947 static KmParameter _GEANT_CREATE_SCONS_EPHI = { "EPHI", 4,
03948 "End of section PHI", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
03949 (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SCONS_EPHI_type };
03950 static char *_GEANT_CREATE_SCONS_YESNO_range[] = { "YES", "NO" };
03951 static char *_GEANT_CREATE_SCONS_YESNO_text[] = { (char*)0, (char*)0 };
03952 static KmParOption _GEANT_CREATE_SCONS_YESNO_type = {
03953 _GEANT_CREATE_SCONS_YESNO_text, (int*)0, (int*)0 };
03954 static KmParameter _GEANT_CREATE_SCONS_YESNO = { "YESNO", 5, "GSPOSP option",
03955 "NO", (char*)0, 8, 2, _GEANT_CREATE_SCONS_YESNO_range, 2,
03956 _GEANT_CREATE_SCONS_YESNO_range, (KmParFlag)0, KmTYPE_OPTION,
03957 &_GEANT_CREATE_SCONS_YESNO_type };
03958 static KmParameter *_GEANT_CREATE_SCONS_parameters[] = {
03959 &_GEANT_CREATE_SCONS_NAME, &_GEANT_CREATE_SCONS_NUMED,
03960 &_GEANT_CREATE_SCONS_INRDW, &_GEANT_CREATE_SCONS_OUTRDW,
03961 &_GEANT_CREATE_SCONS_INRUP, &_GEANT_CREATE_SCONS_OUTRUP,
03962 &_GEANT_CREATE_SCONS_HALFZ, &_GEANT_CREATE_SCONS_SPHI,
03963 &_GEANT_CREATE_SCONS_EPHI, &_GEANT_CREATE_SCONS_YESNO };
03964 static KmCommand _GEANT_CREATE_SCONS = { &_GEANT_CREATE_SSPHE,
03965 "/GEANT/CREATE/SCONS", "SCONS", 0, 2, 10, 9, _GEANT_CREATE_SCONS_parameters,
03966 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 0, (char**)0, 0,
03967 (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
03968
03969 static KmParameter _GEANT_CREATE_SCONE_NAME = { "NAME", 4, "Volume name",
03970 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
03971 KmTYPE_CHAR, (void*)0 };
03972 static KmParInt _GEANT_CREATE_SCONE_NUMED_type = { (char*)0, (char*)0,
03973 (char*)0, (char*)0, 0 };
03974 static KmParameter _GEANT_CREATE_SCONE_NUMED = { "NUMED", 5,
03975 "Tracking medium number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
03976 (KmParFlag)0, KmTYPE_INT, &_GEANT_CREATE_SCONE_NUMED_type };
03977 static KmParReal _GEANT_CREATE_SCONE_INRDW_type = { (char*)0, (char*)0,
03978 (char*)0, (char*)0, 0 };
03979 static KmParameter _GEANT_CREATE_SCONE_INRDW = { "INRDW", 5,
03980 "Inside Radius in Lower Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
03981 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SCONE_INRDW_type };
03982 static KmParReal _GEANT_CREATE_SCONE_OUTRDW_type = { (char*)0, (char*)0,
03983 (char*)0, (char*)0, 0 };
03984 static KmParameter _GEANT_CREATE_SCONE_OUTRDW = { "OUTRDW", 6,
03985 "Outside Radius in Lower Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
03986 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SCONE_OUTRDW_type };
03987 static KmParReal _GEANT_CREATE_SCONE_INRUP_type = { (char*)0, (char*)0,
03988 (char*)0, (char*)0, 0 };
03989 static KmParameter _GEANT_CREATE_SCONE_INRUP = { "INRUP", 5,
03990 "Inside Radius in Upper Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
03991 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SCONE_INRUP_type };
03992 static KmParReal _GEANT_CREATE_SCONE_OUTRUP_type = { (char*)0, (char*)0,
03993 (char*)0, (char*)0, 0 };
03994 static KmParameter _GEANT_CREATE_SCONE_OUTRUP = { "OUTRUP", 6,
03995 "Outside Radius in Upper Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
03996 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SCONE_OUTRUP_type };
03997 static KmParReal _GEANT_CREATE_SCONE_HALFZ_type = { (char*)0, (char*)0,
03998 (char*)0, (char*)0, 0 };
03999 static KmParameter _GEANT_CREATE_SCONE_HALFZ = { "HALFZ", 5, "Half Z length",
04000 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
04001 KmTYPE_REAL, &_GEANT_CREATE_SCONE_HALFZ_type };
04002 static char *_GEANT_CREATE_SCONE_YESNO_range[] = { "YES", "NO" };
04003 static char *_GEANT_CREATE_SCONE_YESNO_text[] = { (char*)0, (char*)0 };
04004 static KmParOption _GEANT_CREATE_SCONE_YESNO_type = {
04005 _GEANT_CREATE_SCONE_YESNO_text, (int*)0, (int*)0 };
04006 static KmParameter _GEANT_CREATE_SCONE_YESNO = { "YESNO", 5, "GSPOSP option",
04007 "NO", (char*)0, 8, 2, _GEANT_CREATE_SCONE_YESNO_range, 2,
04008 _GEANT_CREATE_SCONE_YESNO_range, (KmParFlag)0, KmTYPE_OPTION,
04009 &_GEANT_CREATE_SCONE_YESNO_type };
04010 static KmParameter *_GEANT_CREATE_SCONE_parameters[] = {
04011 &_GEANT_CREATE_SCONE_NAME, &_GEANT_CREATE_SCONE_NUMED,
04012 &_GEANT_CREATE_SCONE_INRDW, &_GEANT_CREATE_SCONE_OUTRDW,
04013 &_GEANT_CREATE_SCONE_INRUP, &_GEANT_CREATE_SCONE_OUTRUP,
04014 &_GEANT_CREATE_SCONE_HALFZ, &_GEANT_CREATE_SCONE_YESNO };
04015 static KmCommand _GEANT_CREATE_SCONE = { &_GEANT_CREATE_SCONS,
04016 "/GEANT/CREATE/SCONE", "SCONE", 0, 2, 8, 7, _GEANT_CREATE_SCONE_parameters,
04017 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 0, (char**)0, 0,
04018 (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
04019
04020 static KmParameter _GEANT_CREATE_STUBS_NAME = { "NAME", 4, "Volume name",
04021 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
04022 KmTYPE_CHAR, (void*)0 };
04023 static KmParInt _GEANT_CREATE_STUBS_NUMED_type = { (char*)0, (char*)0,
04024 (char*)0, (char*)0, 0 };
04025 static KmParameter _GEANT_CREATE_STUBS_NUMED = { "NUMED", 5,
04026 "Tracking medium number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
04027 (KmParFlag)0, KmTYPE_INT, &_GEANT_CREATE_STUBS_NUMED_type };
04028 static KmParReal _GEANT_CREATE_STUBS_INRAD_type = { (char*)0, (char*)0,
04029 (char*)0, (char*)0, 0 };
04030 static KmParameter _GEANT_CREATE_STUBS_INRAD = { "INRAD", 5, "Inside Radius",
04031 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
04032 KmTYPE_REAL, &_GEANT_CREATE_STUBS_INRAD_type };
04033 static KmParReal _GEANT_CREATE_STUBS_OUTRAD_type = { (char*)0, (char*)0,
04034 (char*)0, (char*)0, 0 };
04035 static KmParameter _GEANT_CREATE_STUBS_OUTRAD = { "OUTRAD", 6,
04036 "Outside Radius", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
04037 (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_STUBS_OUTRAD_type };
04038 static KmParReal _GEANT_CREATE_STUBS_HALFZ_type = { (char*)0, (char*)0,
04039 (char*)0, (char*)0, 0 };
04040 static KmParameter _GEANT_CREATE_STUBS_HALFZ = { "HALFZ", 5, "Half Z length",
04041 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
04042 KmTYPE_REAL, &_GEANT_CREATE_STUBS_HALFZ_type };
04043 static KmParReal _GEANT_CREATE_STUBS_SPHI_type = { "0.", "360.", "0.",
04044 "360.", 0 };
04045 static KmParameter _GEANT_CREATE_STUBS_SPHI = { "SPHI", 4,
04046 "Start of section PHI", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
04047 (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_STUBS_SPHI_type };
04048 static KmParReal _GEANT_CREATE_STUBS_EPHI_type = { "0.", "360.", "0.",
04049 "360.", 0 };
04050 static KmParameter _GEANT_CREATE_STUBS_EPHI = { "EPHI", 4,
04051 "End of section PHI", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
04052 (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_STUBS_EPHI_type };
04053 static char *_GEANT_CREATE_STUBS_YESNO_range[] = { "YES", "NO" };
04054 static char *_GEANT_CREATE_STUBS_YESNO_text[] = { (char*)0, (char*)0 };
04055 static KmParOption _GEANT_CREATE_STUBS_YESNO_type = {
04056 _GEANT_CREATE_STUBS_YESNO_text, (int*)0, (int*)0 };
04057 static KmParameter _GEANT_CREATE_STUBS_YESNO = { "YESNO", 5, "GSPOSP option",
04058 "NO", (char*)0, 8, 2, _GEANT_CREATE_STUBS_YESNO_range, 2,
04059 _GEANT_CREATE_STUBS_YESNO_range, (KmParFlag)0, KmTYPE_OPTION,
04060 &_GEANT_CREATE_STUBS_YESNO_type };
04061 static KmParameter *_GEANT_CREATE_STUBS_parameters[] = {
04062 &_GEANT_CREATE_STUBS_NAME, &_GEANT_CREATE_STUBS_NUMED,
04063 &_GEANT_CREATE_STUBS_INRAD, &_GEANT_CREATE_STUBS_OUTRAD,
04064 &_GEANT_CREATE_STUBS_HALFZ, &_GEANT_CREATE_STUBS_SPHI,
04065 &_GEANT_CREATE_STUBS_EPHI, &_GEANT_CREATE_STUBS_YESNO };
04066 static KmCommand _GEANT_CREATE_STUBS = { &_GEANT_CREATE_SCONE,
04067 "/GEANT/CREATE/STUBS", "STUBS", 0, 2, 8, 7, _GEANT_CREATE_STUBS_parameters,
04068 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 0, (char**)0, 0,
04069 (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
04070
04071 static KmParameter _GEANT_CREATE_STUBE_NAME = { "NAME", 4, "Volume name",
04072 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
04073 KmTYPE_CHAR, (void*)0 };
04074 static KmParInt _GEANT_CREATE_STUBE_NUMED_type = { (char*)0, (char*)0,
04075 (char*)0, (char*)0, 0 };
04076 static KmParameter _GEANT_CREATE_STUBE_NUMED = { "NUMED", 5,
04077 "Tracking medium number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
04078 (KmParFlag)0, KmTYPE_INT, &_GEANT_CREATE_STUBE_NUMED_type };
04079 static KmParReal _GEANT_CREATE_STUBE_INRAD_type = { (char*)0, (char*)0,
04080 (char*)0, (char*)0, 0 };
04081 static KmParameter _GEANT_CREATE_STUBE_INRAD = { "INRAD", 5, "Inside Radius",
04082 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
04083 KmTYPE_REAL, &_GEANT_CREATE_STUBE_INRAD_type };
04084 static KmParReal _GEANT_CREATE_STUBE_OUTRAD_type = { (char*)0, (char*)0,
04085 (char*)0, (char*)0, 0 };
04086 static KmParameter _GEANT_CREATE_STUBE_OUTRAD = { "OUTRAD", 6,
04087 "Outside Radius", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
04088 (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_STUBE_OUTRAD_type };
04089 static KmParReal _GEANT_CREATE_STUBE_HALFZ_type = { (char*)0, (char*)0,
04090 (char*)0, (char*)0, 0 };
04091 static KmParameter _GEANT_CREATE_STUBE_HALFZ = { "HALFZ", 5, "Half Z length",
04092 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
04093 KmTYPE_REAL, &_GEANT_CREATE_STUBE_HALFZ_type };
04094 static char *_GEANT_CREATE_STUBE_YESNO_range[] = { "YES", "NO" };
04095 static char *_GEANT_CREATE_STUBE_YESNO_text[] = { (char*)0, (char*)0 };
04096 static KmParOption _GEANT_CREATE_STUBE_YESNO_type = {
04097 _GEANT_CREATE_STUBE_YESNO_text, (int*)0, (int*)0 };
04098 static KmParameter _GEANT_CREATE_STUBE_YESNO = { "YESNO", 5, "GSPOSP option",
04099 "NO", (char*)0, 8, 2, _GEANT_CREATE_STUBE_YESNO_range, 2,
04100 _GEANT_CREATE_STUBE_YESNO_range, (KmParFlag)0, KmTYPE_OPTION,
04101 &_GEANT_CREATE_STUBE_YESNO_type };
04102 static KmParameter *_GEANT_CREATE_STUBE_parameters[] = {
04103 &_GEANT_CREATE_STUBE_NAME, &_GEANT_CREATE_STUBE_NUMED,
04104 &_GEANT_CREATE_STUBE_INRAD, &_GEANT_CREATE_STUBE_OUTRAD,
04105 &_GEANT_CREATE_STUBE_HALFZ, &_GEANT_CREATE_STUBE_YESNO };
04106 static KmCommand _GEANT_CREATE_STUBE = { &_GEANT_CREATE_STUBS,
04107 "/GEANT/CREATE/STUBE", "STUBE", 0, 2, 6, 5, _GEANT_CREATE_STUBE_parameters,
04108 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 0, (char**)0, 0,
04109 (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
04110
04111 static KmParameter _GEANT_CREATE_STRD2_NAME = { "NAME", 4, "Volume name",
04112 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
04113 KmTYPE_CHAR, (void*)0 };
04114 static KmParInt _GEANT_CREATE_STRD2_NUMED_type = { (char*)0, (char*)0,
04115 (char*)0, (char*)0, 0 };
04116 static KmParameter _GEANT_CREATE_STRD2_NUMED = { "NUMED", 5,
04117 "Tracking medium number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
04118 (KmParFlag)0, KmTYPE_INT, &_GEANT_CREATE_STRD2_NUMED_type };
04119 static KmParReal _GEANT_CREATE_STRD2_HLFDWX_type = { (char*)0, (char*)0,
04120 (char*)0, (char*)0, 0 };
04121 static KmParameter _GEANT_CREATE_STRD2_HLFDWX = { "HLFDWX", 6,
04122 "Half X length in Lower Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
04123 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_STRD2_HLFDWX_type };
04124 static KmParReal _GEANT_CREATE_STRD2_HLFUPX_type = { (char*)0, (char*)0,
04125 (char*)0, (char*)0, 0 };
04126 static KmParameter _GEANT_CREATE_STRD2_HLFUPX = { "HLFUPX", 6,
04127 "Half X length in Upper Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
04128 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_STRD2_HLFUPX_type };
04129 static KmParReal _GEANT_CREATE_STRD2_HLFDWY_type = { (char*)0, (char*)0,
04130 (char*)0, (char*)0, 0 };
04131 static KmParameter _GEANT_CREATE_STRD2_HLFDWY = { "HLFDWY", 6,
04132 "Half Y length in Lower Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
04133 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_STRD2_HLFDWY_type };
04134 static KmParReal _GEANT_CREATE_STRD2_HLFUPY_type = { (char*)0, (char*)0,
04135 (char*)0, (char*)0, 0 };
04136 static KmParameter _GEANT_CREATE_STRD2_HLFUPY = { "HLFUPY", 6,
04137 "Half Y length in Upper Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
04138 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_STRD2_HLFUPY_type };
04139 static KmParReal _GEANT_CREATE_STRD2_HALFZ_type = { (char*)0, (char*)0,
04140 (char*)0, (char*)0, 0 };
04141 static KmParameter _GEANT_CREATE_STRD2_HALFZ = { "HALFZ", 5, "Half Z length",
04142 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
04143 KmTYPE_REAL, &_GEANT_CREATE_STRD2_HALFZ_type };
04144 static char *_GEANT_CREATE_STRD2_YESNO_range[] = { "YES", "NO" };
04145 static char *_GEANT_CREATE_STRD2_YESNO_text[] = { (char*)0, (char*)0 };
04146 static KmParOption _GEANT_CREATE_STRD2_YESNO_type = {
04147 _GEANT_CREATE_STRD2_YESNO_text, (int*)0, (int*)0 };
04148 static KmParameter _GEANT_CREATE_STRD2_YESNO = { "YESNO", 5, "GSPOSP option",
04149 "NO", (char*)0, 8, 2, _GEANT_CREATE_STRD2_YESNO_range, 2,
04150 _GEANT_CREATE_STRD2_YESNO_range, (KmParFlag)0, KmTYPE_OPTION,
04151 &_GEANT_CREATE_STRD2_YESNO_type };
04152 static KmParameter *_GEANT_CREATE_STRD2_parameters[] = {
04153 &_GEANT_CREATE_STRD2_NAME, &_GEANT_CREATE_STRD2_NUMED,
04154 &_GEANT_CREATE_STRD2_HLFDWX, &_GEANT_CREATE_STRD2_HLFUPX,
04155 &_GEANT_CREATE_STRD2_HLFDWY, &_GEANT_CREATE_STRD2_HLFUPY,
04156 &_GEANT_CREATE_STRD2_HALFZ, &_GEANT_CREATE_STRD2_YESNO };
04157 static KmCommand _GEANT_CREATE_STRD2 = { &_GEANT_CREATE_STUBE,
04158 "/GEANT/CREATE/STRD2", "STRD2", 0, 2, 8, 7, _GEANT_CREATE_STRD2_parameters,
04159 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 0, (char**)0, 0,
04160 (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
04161
04162 static KmParameter _GEANT_CREATE_STRD1_NAME = { "NAME", 4, "Volume name",
04163 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
04164 KmTYPE_CHAR, (void*)0 };
04165 static KmParInt _GEANT_CREATE_STRD1_NUMED_type = { (char*)0, (char*)0,
04166 (char*)0, (char*)0, 0 };
04167 static KmParameter _GEANT_CREATE_STRD1_NUMED = { "NUMED", 5,
04168 "Tracking medium number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
04169 (KmParFlag)0, KmTYPE_INT, &_GEANT_CREATE_STRD1_NUMED_type };
04170 static KmParReal _GEANT_CREATE_STRD1_HLFDWX_type = { (char*)0, (char*)0,
04171 (char*)0, (char*)0, 0 };
04172 static KmParameter _GEANT_CREATE_STRD1_HLFDWX = { "HLFDWX", 6,
04173 "Half X length in Lower Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
04174 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_STRD1_HLFDWX_type };
04175 static KmParReal _GEANT_CREATE_STRD1_HLFUPX_type = { (char*)0, (char*)0,
04176 (char*)0, (char*)0, 0 };
04177 static KmParameter _GEANT_CREATE_STRD1_HLFUPX = { "HLFUPX", 6,
04178 "Half X length in Upper Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
04179 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_STRD1_HLFUPX_type };
04180 static KmParReal _GEANT_CREATE_STRD1_HALFY_type = { (char*)0, (char*)0,
04181 (char*)0, (char*)0, 0 };
04182 static KmParameter _GEANT_CREATE_STRD1_HALFY = { "HALFY", 5, "Half Y length",
04183 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
04184 KmTYPE_REAL, &_GEANT_CREATE_STRD1_HALFY_type };
04185 static KmParReal _GEANT_CREATE_STRD1_HALFZ_type = { (char*)0, (char*)0,
04186 (char*)0, (char*)0, 0 };
04187 static KmParameter _GEANT_CREATE_STRD1_HALFZ = { "HALFZ", 5, "Half Z length",
04188 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
04189 KmTYPE_REAL, &_GEANT_CREATE_STRD1_HALFZ_type };
04190 static char *_GEANT_CREATE_STRD1_YESNO_range[] = { "YES", "NO" };
04191 static char *_GEANT_CREATE_STRD1_YESNO_text[] = { (char*)0, (char*)0 };
04192 static KmParOption _GEANT_CREATE_STRD1_YESNO_type = {
04193 _GEANT_CREATE_STRD1_YESNO_text, (int*)0, (int*)0 };
04194 static KmParameter _GEANT_CREATE_STRD1_YESNO = { "YESNO", 5, "GSPOSP option",
04195 "NO", (char*)0, 8, 2, _GEANT_CREATE_STRD1_YESNO_range, 2,
04196 _GEANT_CREATE_STRD1_YESNO_range, (KmParFlag)0, KmTYPE_OPTION,
04197 &_GEANT_CREATE_STRD1_YESNO_type };
04198 static KmParameter *_GEANT_CREATE_STRD1_parameters[] = {
04199 &_GEANT_CREATE_STRD1_NAME, &_GEANT_CREATE_STRD1_NUMED,
04200 &_GEANT_CREATE_STRD1_HLFDWX, &_GEANT_CREATE_STRD1_HLFUPX,
04201 &_GEANT_CREATE_STRD1_HALFY, &_GEANT_CREATE_STRD1_HALFZ,
04202 &_GEANT_CREATE_STRD1_YESNO };
04203 static KmCommand _GEANT_CREATE_STRD1 = { &_GEANT_CREATE_STRD2,
04204 "/GEANT/CREATE/STRD1", "STRD1", 0, 2, 7, 6, _GEANT_CREATE_STRD1_parameters,
04205 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 0, (char**)0, 0,
04206 (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
04207
04208 static KmParameter _GEANT_CREATE_SBOX_NAME = { "NAME", 4, "Volume name",
04209 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
04210 KmTYPE_CHAR, (void*)0 };
04211 static KmParInt _GEANT_CREATE_SBOX_NUMED_type = { (char*)0, (char*)0,
04212 (char*)0, (char*)0, 0 };
04213 static KmParameter _GEANT_CREATE_SBOX_NUMED = { "NUMED", 5,
04214 "Tracking medium number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
04215 (KmParFlag)0, KmTYPE_INT, &_GEANT_CREATE_SBOX_NUMED_type };
04216 static KmParReal _GEANT_CREATE_SBOX_HALFX_type = { (char*)0, (char*)0,
04217 (char*)0, (char*)0, 0 };
04218 static KmParameter _GEANT_CREATE_SBOX_HALFX = { "HALFX", 5, "Half X length",
04219 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
04220 KmTYPE_REAL, &_GEANT_CREATE_SBOX_HALFX_type };
04221 static KmParReal _GEANT_CREATE_SBOX_HALFY_type = { (char*)0, (char*)0,
04222 (char*)0, (char*)0, 0 };
04223 static KmParameter _GEANT_CREATE_SBOX_HALFY = { "HALFY", 5, "Half Y length",
04224 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
04225 KmTYPE_REAL, &_GEANT_CREATE_SBOX_HALFY_type };
04226 static KmParReal _GEANT_CREATE_SBOX_HALFZ_type = { (char*)0, (char*)0,
04227 (char*)0, (char*)0, 0 };
04228 static KmParameter _GEANT_CREATE_SBOX_HALFZ = { "HALFZ", 5, "Half Z length",
04229 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
04230 KmTYPE_REAL, &_GEANT_CREATE_SBOX_HALFZ_type };
04231 static char *_GEANT_CREATE_SBOX_YESNO_range[] = { "YES", "NO" };
04232 static char *_GEANT_CREATE_SBOX_YESNO_text[] = { (char*)0, (char*)0 };
04233 static KmParOption _GEANT_CREATE_SBOX_YESNO_type = {
04234 _GEANT_CREATE_SBOX_YESNO_text, (int*)0, (int*)0 };
04235 static KmParameter _GEANT_CREATE_SBOX_YESNO = { "YESNO", 5, "GSPOSP option",
04236 "NO", (char*)0, 8, 2, _GEANT_CREATE_SBOX_YESNO_range, 2,
04237 _GEANT_CREATE_SBOX_YESNO_range, (KmParFlag)0, KmTYPE_OPTION,
04238 &_GEANT_CREATE_SBOX_YESNO_type };
04239 static KmParameter *_GEANT_CREATE_SBOX_parameters[] = {
04240 &_GEANT_CREATE_SBOX_NAME, &_GEANT_CREATE_SBOX_NUMED,
04241 &_GEANT_CREATE_SBOX_HALFX, &_GEANT_CREATE_SBOX_HALFY,
04242 &_GEANT_CREATE_SBOX_HALFZ, &_GEANT_CREATE_SBOX_YESNO };
04243 static KmCommand _GEANT_CREATE_SBOX = { &_GEANT_CREATE_STRD1,
04244 "/GEANT/CREATE/SBOX", "SBOX", 0, 2, 6, 5, _GEANT_CREATE_SBOX_parameters, 0,
04245 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 0, (char**)0, 0,
04246 (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
04247
04248 static char *_GEANT_CREATE_guidance[] = {
04249 "It creates volumes of the given shape interactively.",
04250 "CALL GSVOLU(name,shape,numed,par,npar,ivolu)", "where par is a KUIP vector"
04251 };
04252 static KmMenu _GEANT_CREATE = { (KmMenu*)0, (KmMenu*)0, "/GEANT/CREATE",
04253 "CREATE", 2, &_GEANT_CREATE_SBOX, 3, _GEANT_CREATE_guidance, 0, (char**)0, 0,
04254 (char**)0 };
04255
04256 static char *_GEANT_GEOMETRY_guidance[] = { "Geometry commands." };
04257 static KmMenu _GEANT_GEOMETRY = { &_GEANT_CREATE, (KmMenu*)0,
04258 "/GEANT/GEOMETRY", "GEOMETRY", 2, &_GEANT_GEOMETRY_OPTI, 1,
04259 _GEANT_GEOMETRY_guidance, 0, (char**)0, 0, (char**)0 };
04260
04261 static KmMenu _GEANT = { (KmMenu*)0, &_GEANT_GEOMETRY, "/GEANT", "GEANT", 1,
04262 (KmCommand*)0, 0, (char**)0, 0, (char**)0, 0, (char**)0 };
04263
04264 klnkmenu( &_GEANT, 950303 );
04265 }
04266
04267
04268 #ifdef F77_LCASE
04269 # define gkcont_ gkcont
04270 # define gxcont_ gxcont
04271 #endif
04272
04273 #ifdef F77_UCASE
04274 # define gkcont_ GKCONT
04275 # define gxcont_ GXCONT
04276 #endif
04277
04278 #ifdef IBM370
04279 # pragma linkage(GKCONT,FORTRAN)
04280 # pragma linkage(GXCONT,FORTRAN)
04281 #endif
04282
04283 extern void gkcont_();
04284 extern void gxcont_();
04285
04286 void gkcont_()
04287 {
04288
04289 static char *_GEANT_CONTROL_DEBUG_IDEB_range[] = { "ON", "OFF" };
04290 static char *_GEANT_CONTROL_DEBUG_IDEB_text[] = { (char*)0, (char*)0 };
04291 static KmParOption _GEANT_CONTROL_DEBUG_IDEB_type = {
04292 _GEANT_CONTROL_DEBUG_IDEB_text, (int*)0, (int*)0 };
04293 static KmParameter _GEANT_CONTROL_DEBUG_IDEB = { "IDEB", 4, "Debug option",
04294 "ON", (char*)0, 8, 2, _GEANT_CONTROL_DEBUG_IDEB_range, 2,
04295 _GEANT_CONTROL_DEBUG_IDEB_range, (KmParFlag)0, KmTYPE_OPTION,
04296 &_GEANT_CONTROL_DEBUG_IDEB_type };
04297 static KmParameter *_GEANT_CONTROL_DEBUG_parameters[] = {
04298 &_GEANT_CONTROL_DEBUG_IDEB };
04299 static char *_GEANT_CONTROL_DEBUG_guidance[] = { "If ideb='ON ' then :",
04300 " idebug=1, idemin=1, idemax=1000000, itime=1", "else :",
04301 " idebug=0, idemin=0, idemax=0" };
04302 static KmCommand _GEANT_CONTROL_DEBUG = { (KmCommand*)0,
04303 "/GEANT/CONTROL/DEBUG", "DEBUG", 0, 2, 1, 0, _GEANT_CONTROL_DEBUG_parameters,
04304 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
04305 _GEANT_CONTROL_DEBUG_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
04306 (char*)0, (int*)0 };
04307
04308 static KmParInt _GEANT_CONTROL_PRKINE_NUMB_type = { (char*)0, (char*)0,
04309 (char*)0, (char*)0, 0 };
04310 static KmParameter _GEANT_CONTROL_PRKINE_NUMB = { "NUMB", 4, "Track number",
04311 (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
04312 &_GEANT_CONTROL_PRKINE_NUMB_type };
04313 static KmParameter *_GEANT_CONTROL_PRKINE_parameters[] = {
04314 &_GEANT_CONTROL_PRKINE_NUMB };
04315 static char *_GEANT_CONTROL_PRKINE_guidance[] = { "CALL GPKINE(numb)" };
04316 static KmCommand _GEANT_CONTROL_PRKINE = { &_GEANT_CONTROL_DEBUG,
04317 "/GEANT/CONTROL/PRKINE", "PRKINE", 0, 2, 1, 1,
04318 _GEANT_CONTROL_PRKINE_parameters, 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0,
04319 (pCharFunc*)0, 1, _GEANT_CONTROL_PRKINE_guidance, 0, (char**)0, 0, (char**)0,
04320 0, (char**)0, (char*)0, (int*)0 };
04321
04322 static KmParInt _GEANT_CONTROL_PPART_NUMB_type = { (char*)0, (char*)0,
04323 (char*)0, (char*)0, 0 };
04324 static KmParameter _GEANT_CONTROL_PPART_NUMB = { "NUMB", 4, "Particle number",
04325 (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
04326 &_GEANT_CONTROL_PPART_NUMB_type };
04327 static KmParameter *_GEANT_CONTROL_PPART_parameters[] = {
04328 &_GEANT_CONTROL_PPART_NUMB };
04329 static char *_GEANT_CONTROL_PPART_guidance[] = { "CALL GPPART(numb)" };
04330 static KmCommand _GEANT_CONTROL_PPART = { &_GEANT_CONTROL_PRKINE,
04331 "/GEANT/CONTROL/PPART", "PPART", 0, 2, 1, 1, _GEANT_CONTROL_PPART_parameters,
04332 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
04333 _GEANT_CONTROL_PPART_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
04334 (char*)0, (int*)0 };
04335
04336 static KmParInt _GEANT_CONTROL_SPART_IPART_type = { (char*)0, (char*)0,
04337 (char*)0, (char*)0, 0 };
04338 static KmParameter _GEANT_CONTROL_SPART_IPART = { "IPART", 5,
04339 "Particle number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
04340 (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_SPART_IPART_type };
04341 static KmParameter _GEANT_CONTROL_SPART_NAPART = { "NAPART", 6,
04342 "Particle name", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
04343 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
04344 static KmParInt _GEANT_CONTROL_SPART_ITRTYP_type = { (char*)0, (char*)0,
04345 (char*)0, (char*)0, 0 };
04346 static KmParameter _GEANT_CONTROL_SPART_ITRTYP = { "ITRTYP", 6, " ", (char*)0,
04347 (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
04348 &_GEANT_CONTROL_SPART_ITRTYP_type };
04349 static KmParReal _GEANT_CONTROL_SPART_AMASS_type = { (char*)0, (char*)0,
04350 (char*)0, (char*)0, 0 };
04351 static KmParameter _GEANT_CONTROL_SPART_AMASS = { "AMASS", 5, "Mass",
04352 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
04353 KmTYPE_REAL, &_GEANT_CONTROL_SPART_AMASS_type };
04354 static KmParReal _GEANT_CONTROL_SPART_CHARGE_type = { (char*)0, (char*)0,
04355 (char*)0, (char*)0, 0 };
04356 static KmParameter _GEANT_CONTROL_SPART_CHARGE = { "CHARGE", 6, "Charge",
04357 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
04358 KmTYPE_REAL, &_GEANT_CONTROL_SPART_CHARGE_type };
04359 static KmParReal _GEANT_CONTROL_SPART_TLIFE_type = { (char*)0, (char*)0,
04360 (char*)0, (char*)0, 0 };
04361 static KmParameter _GEANT_CONTROL_SPART_TLIFE = { "TLIFE", 5, "Lifetime",
04362 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
04363 KmTYPE_REAL, &_GEANT_CONTROL_SPART_TLIFE_type };
04364 static KmParReal _GEANT_CONTROL_SPART_UBUF_type = { (char*)0, (char*)0,
04365 (char*)0, (char*)0, 0 };
04366 static KmParameter _GEANT_CONTROL_SPART_UBUF = { "UBUF", 4, " ", (char*)0,
04367 (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
04368 &_GEANT_CONTROL_SPART_UBUF_type };
04369 static KmParInt _GEANT_CONTROL_SPART_NWBUF_type = { (char*)0, (char*)0,
04370 (char*)0, (char*)0, 0 };
04371 static KmParameter _GEANT_CONTROL_SPART_NWBUF = { "NWBUF", 5, " ", (char*)0,
04372 (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
04373 &_GEANT_CONTROL_SPART_NWBUF_type };
04374 static KmParReal _GEANT_CONTROL_SPART_BRATIO_type = { (char*)0, (char*)0,
04375 (char*)0, (char*)0, 0 };
04376 static KmParameter _GEANT_CONTROL_SPART_BRATIO = { "BRATIO", 6,
04377 "Branching ratios", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
04378 (KmParFlag)0, KmTYPE_REAL, &_GEANT_CONTROL_SPART_BRATIO_type };
04379 static KmParInt _GEANT_CONTROL_SPART_MODE_type = { (char*)0, (char*)0,
04380 (char*)0, (char*)0, 0 };
04381 static KmParameter _GEANT_CONTROL_SPART_MODE = { "MODE", 4, "Decay mode",
04382 (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
04383 &_GEANT_CONTROL_SPART_MODE_type };
04384 static KmParameter *_GEANT_CONTROL_SPART_parameters[] = {
04385 &_GEANT_CONTROL_SPART_IPART, &_GEANT_CONTROL_SPART_NAPART,
04386 &_GEANT_CONTROL_SPART_ITRTYP, &_GEANT_CONTROL_SPART_AMASS,
04387 &_GEANT_CONTROL_SPART_CHARGE, &_GEANT_CONTROL_SPART_TLIFE,
04388 &_GEANT_CONTROL_SPART_UBUF, &_GEANT_CONTROL_SPART_NWBUF,
04389 &_GEANT_CONTROL_SPART_BRATIO, &_GEANT_CONTROL_SPART_MODE };
04390 static char *_GEANT_CONTROL_SPART_guidance[] = {
04391 "CALL GSPART(ipart,napart,itrtyp,amass,charge,tlife,ubuf,nwbuf);",
04392 "CALL GSDK(ipart,bratio,mode)" };
04393 static KmCommand _GEANT_CONTROL_SPART = { &_GEANT_CONTROL_PPART,
04394 "/GEANT/CONTROL/SPART", "SPART", 0, 2, 10, 10,
04395 _GEANT_CONTROL_SPART_parameters, 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0,
04396 (pCharFunc*)0, 2, _GEANT_CONTROL_SPART_guidance, 0, (char**)0, 0, (char**)0,
04397 0, (char**)0, (char*)0, (int*)0 };
04398
04399 static KmParInt _GEANT_CONTROL_STPAR_ITMED_type = { (char*)0, (char*)0,
04400 (char*)0, (char*)0, 0 };
04401 static KmParameter _GEANT_CONTROL_STPAR_ITMED = { "ITMED", 5, "Medium number",
04402 (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
04403 &_GEANT_CONTROL_STPAR_ITMED_type };
04404 static KmParameter _GEANT_CONTROL_STPAR_CHPAR = { "CHPAR", 5,
04405 "Cut or mechanism", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
04406 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
04407 static KmParReal _GEANT_CONTROL_STPAR_PARVAL_type = { (char*)0, (char*)0,
04408 (char*)0, (char*)0, 0 };
04409 static KmParameter _GEANT_CONTROL_STPAR_PARVAL = { "PARVAL", 6, "Value",
04410 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
04411 KmTYPE_REAL, &_GEANT_CONTROL_STPAR_PARVAL_type };
04412 static KmParameter *_GEANT_CONTROL_STPAR_parameters[] = {
04413 &_GEANT_CONTROL_STPAR_ITMED, &_GEANT_CONTROL_STPAR_CHPAR,
04414 &_GEANT_CONTROL_STPAR_PARVAL };
04415 static char *_GEANT_CONTROL_STPAR_guidance[] = {
04416 "CALL GSTPAR(itmed,chpar,parval)" };
04417 static KmCommand _GEANT_CONTROL_STPAR = { &_GEANT_CONTROL_SPART,
04418 "/GEANT/CONTROL/STPAR", "STPAR", 0, 2, 3, 3, _GEANT_CONTROL_STPAR_parameters,
04419 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
04420 _GEANT_CONTROL_STPAR_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
04421 (char*)0, (int*)0 };
04422
04423 static KmParInt _GEANT_CONTROL_DRMAT_IMATE_type = { (char*)0, (char*)0,
04424 (char*)0, (char*)0, 0 };
04425 static KmParameter _GEANT_CONTROL_DRMAT_IMATE = { "IMATE", 5,
04426 "Material number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
04427 (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_DRMAT_IMATE_type };
04428 static KmParInt _GEANT_CONTROL_DRMAT_IPART_type = { (char*)0, (char*)0,
04429 (char*)0, (char*)0, 0 };
04430 static KmParameter _GEANT_CONTROL_DRMAT_IPART = { "IPART", 5,
04431 "Particle number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
04432 (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_DRMAT_IPART_type };
04433 static KmParameter _GEANT_CONTROL_DRMAT_MECAN = { "MECAN", 5,
04434 "List of mechanism", "ALL", (char*)0, 20, 0, (char**)0, 0, (char**)0,
04435 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
04436 static KmParameter *_GEANT_CONTROL_DRMAT_parameters[] = {
04437 &_GEANT_CONTROL_DRMAT_IMATE, &_GEANT_CONTROL_DRMAT_IPART,
04438 &_GEANT_CONTROL_DRMAT_MECAN };
04439 static char *_GEANT_CONTROL_DRMAT_guidance[] = {
04440 "CALL GDRMAT(imate,ipart,mecan,nmec)",
04441 "If MECAN = 'ALL' all the mechanisms are plotted. If the material number",
04442 "is negative, the cross sections relative to material ABS(IMATE) will",
04443 "be plotted in barns rather than in 1/cm.",
04444 "Note that it is not possible to plot anything if GSTMED has not been\
04445 called", "for the material number IMATE." };
04446 static KmCommand _GEANT_CONTROL_DRMAT = { &_GEANT_CONTROL_STPAR,
04447 "/GEANT/CONTROL/DRMAT", "DRMAT", 0, 2, 3, 2, _GEANT_CONTROL_DRMAT_parameters,
04448 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 6,
04449 _GEANT_CONTROL_DRMAT_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
04450 (char*)0, (int*)0 };
04451
04452 static KmParInt _GEANT_CONTROL_PLMAT_IMATE_type = { (char*)0, (char*)0,
04453 (char*)0, (char*)0, 0 };
04454 static KmParameter _GEANT_CONTROL_PLMAT_IMATE = { "IMATE", 5,
04455 "Material number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
04456 (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_PLMAT_IMATE_type };
04457 static KmParInt _GEANT_CONTROL_PLMAT_IPART_type = { (char*)0, (char*)0,
04458 (char*)0, (char*)0, 0 };
04459 static KmParameter _GEANT_CONTROL_PLMAT_IPART = { "IPART", 5,
04460 "Particle number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
04461 (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_PLMAT_IPART_type };
04462 static KmParameter _GEANT_CONTROL_PLMAT_MECAN = { "MECAN", 5, "Mechanism",
04463 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
04464 KmTYPE_CHAR, (void*)0 };
04465 static KmParInt _GEANT_CONTROL_PLMAT_IDM_type = { (char*)0, (char*)0,
04466 (char*)0, (char*)0, 0 };
04467 static KmParameter _GEANT_CONTROL_PLMAT_IDM = { "IDM", 3, "ID mode option",
04468 "0", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
04469 &_GEANT_CONTROL_PLMAT_IDM_type };
04470 static KmParameter *_GEANT_CONTROL_PLMAT_parameters[] = {
04471 &_GEANT_CONTROL_PLMAT_IMATE, &_GEANT_CONTROL_PLMAT_IPART,
04472 &_GEANT_CONTROL_PLMAT_MECAN, &_GEANT_CONTROL_PLMAT_IDM };
04473 static char *_GEANT_CONTROL_PLMAT_guidance[] = {
04474 "CALL GPLMAT(imate,ipart,mecan,nekbin,elow,idm)",
04475 " IDM convention for histogramming mode :",
04476 " IDM.gt.0 fill, print, keep histogram(s)",
04477 " IDM.eq.0 fill, print, delete histogram(s)",
04478 " IDM.lt.0 fill, noprint, keep histogram(s)",
04479 "If MECAN = 'ALL' all the mechanisms are histogrammed. If the material\
04480 number",
04481 "is negative, the cross sections relative to material ABS(IMATE) will",
04482 "be histogrammed in barns rather than in 1/cm." };
04483 static KmCommand _GEANT_CONTROL_PLMAT = { &_GEANT_CONTROL_DRMAT,
04484 "/GEANT/CONTROL/PLMAT", "PLMAT", 0, 2, 4, 3, _GEANT_CONTROL_PLMAT_parameters,
04485 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 8,
04486 _GEANT_CONTROL_PLMAT_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
04487 (char*)0, (int*)0 };
04488
04489 static KmParInt _GEANT_CONTROL_PRMAT_IMATE_type = { (char*)0, (char*)0,
04490 (char*)0, (char*)0, 0 };
04491 static KmParameter _GEANT_CONTROL_PRMAT_IMATE = { "IMATE", 5,
04492 "Material number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
04493 (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_PRMAT_IMATE_type };
04494 static KmParInt _GEANT_CONTROL_PRMAT_IPART_type = { (char*)0, (char*)0,
04495 (char*)0, (char*)0, 0 };
04496 static KmParameter _GEANT_CONTROL_PRMAT_IPART = { "IPART", 5,
04497 "Particle number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
04498 (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_PRMAT_IPART_type };
04499 static KmParameter _GEANT_CONTROL_PRMAT_MECAN = { "MECAN", 5, "Mechanism",
04500 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
04501 KmTYPE_CHAR, (void*)0 };
04502 static KmParameter *_GEANT_CONTROL_PRMAT_parameters[] = {
04503 &_GEANT_CONTROL_PRMAT_IMATE, &_GEANT_CONTROL_PRMAT_IPART,
04504 &_GEANT_CONTROL_PRMAT_MECAN };
04505 static char *_GEANT_CONTROL_PRMAT_guidance[] = {
04506 " CALL GPRMAT(imate,ipart,mecan,nekbin,elow)" };
04507 static KmCommand _GEANT_CONTROL_PRMAT = { &_GEANT_CONTROL_PLMAT,
04508 "/GEANT/CONTROL/PRMAT", "PRMAT", 0, 2, 3, 3, _GEANT_CONTROL_PRMAT_parameters,
04509 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
04510 _GEANT_CONTROL_PRMAT_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
04511 (char*)0, (int*)0 };
04512
04513 static KmParInt _GEANT_CONTROL_PMATE_NUMB_type = { (char*)0, (char*)0,
04514 (char*)0, (char*)0, 0 };
04515 static KmParameter _GEANT_CONTROL_PMATE_NUMB = { "NUMB", 4, "Material number",
04516 (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
04517 &_GEANT_CONTROL_PMATE_NUMB_type };
04518 static KmParameter *_GEANT_CONTROL_PMATE_parameters[] = {
04519 &_GEANT_CONTROL_PMATE_NUMB };
04520 static char *_GEANT_CONTROL_PMATE_guidance[] = { " CALL GPMATE(numb)" };
04521 static KmCommand _GEANT_CONTROL_PMATE = { &_GEANT_CONTROL_PRMAT,
04522 "/GEANT/CONTROL/PMATE", "PMATE", 0, 2, 1, 1, _GEANT_CONTROL_PMATE_parameters,
04523 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
04524 _GEANT_CONTROL_PMATE_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
04525 (char*)0, (int*)0 };
04526
04527 static KmParInt _GEANT_CONTROL_SMIXT_IMAT_type = { (char*)0, (char*)0,
04528 (char*)0, (char*)0, 0 };
04529 static KmParameter _GEANT_CONTROL_SMIXT_IMAT = { "IMAT", 4, "Material number",
04530 (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
04531 &_GEANT_CONTROL_SMIXT_IMAT_type };
04532 static KmParameter _GEANT_CONTROL_SMIXT_NAMATE = { "NAMATE", 6,
04533 "Material name", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
04534 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
04535 static KmParReal _GEANT_CONTROL_SMIXT_A_type = { (char*)0, (char*)0,
04536 (char*)0, (char*)0, 0 };
04537 static KmParameter _GEANT_CONTROL_SMIXT_A = { "A", 1, "Atomic weight",
04538 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
04539 KmTYPE_REAL, &_GEANT_CONTROL_SMIXT_A_type };
04540 static KmParReal _GEANT_CONTROL_SMIXT_Z_type = { (char*)0, (char*)0,
04541 (char*)0, (char*)0, 0 };
04542 static KmParameter _GEANT_CONTROL_SMIXT_Z = { "Z", 1, "Atomic number",
04543 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
04544 KmTYPE_REAL, &_GEANT_CONTROL_SMIXT_Z_type };
04545 static KmParReal _GEANT_CONTROL_SMIXT_DENS_type = { (char*)0, (char*)0,
04546 (char*)0, (char*)0, 0 };
04547 static KmParameter _GEANT_CONTROL_SMIXT_DENS = { "DENS", 4, "Density",
04548 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
04549 KmTYPE_REAL, &_GEANT_CONTROL_SMIXT_DENS_type };
04550 static KmParInt _GEANT_CONTROL_SMIXT_NLMAT_type = { (char*)0, (char*)0,
04551 (char*)0, (char*)0, 0 };
04552 static KmParameter _GEANT_CONTROL_SMIXT_NLMAT = { "NLMAT", 5, "Flag for WMAT",
04553 (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
04554 &_GEANT_CONTROL_SMIXT_NLMAT_type };
04555 static KmParReal _GEANT_CONTROL_SMIXT_WMAT_type = { (char*)0, (char*)0,
04556 (char*)0, (char*)0, 0 };
04557 static KmParameter _GEANT_CONTROL_SMIXT_WMAT = { "WMAT", 4,
04558 "Relative weights or n. of atoms in molecule", (char*)0, (char*)0, 12, 0,
04559 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
04560 &_GEANT_CONTROL_SMIXT_WMAT_type };
04561 static KmParameter *_GEANT_CONTROL_SMIXT_parameters[] = {
04562 &_GEANT_CONTROL_SMIXT_IMAT, &_GEANT_CONTROL_SMIXT_NAMATE,
04563 &_GEANT_CONTROL_SMIXT_A, &_GEANT_CONTROL_SMIXT_Z, &_GEANT_CONTROL_SMIXT_DENS,
04564 &_GEANT_CONTROL_SMIXT_NLMAT, &_GEANT_CONTROL_SMIXT_WMAT };
04565 static char *_GEANT_CONTROL_SMIXT_guidance[] = {
04566 " CALL GSMIXT(imat,namate,a,z,dens,nlmat,wmat)" };
04567 static KmCommand _GEANT_CONTROL_SMIXT = { &_GEANT_CONTROL_PMATE,
04568 "/GEANT/CONTROL/SMIXT", "SMIXT", 0, 2, 7, 7, _GEANT_CONTROL_SMIXT_parameters,
04569 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
04570 _GEANT_CONTROL_SMIXT_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
04571 (char*)0, (int*)0 };
04572
04573 static KmParInt _GEANT_CONTROL_SMATE_IMAT_type = { (char*)0, (char*)0,
04574 (char*)0, (char*)0, 0 };
04575 static KmParameter _GEANT_CONTROL_SMATE_IMAT = { "IMAT", 4, "Material number",
04576 (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
04577 &_GEANT_CONTROL_SMATE_IMAT_type };
04578 static KmParameter _GEANT_CONTROL_SMATE_NAMATE = { "NAMATE", 6,
04579 "Material name", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
04580 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
04581 static KmParReal _GEANT_CONTROL_SMATE_A_type = { (char*)0, (char*)0,
04582 (char*)0, (char*)0, 0 };
04583 static KmParameter _GEANT_CONTROL_SMATE_A = { "A", 1, "Atomic weight",
04584 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
04585 KmTYPE_REAL, &_GEANT_CONTROL_SMATE_A_type };
04586 static KmParReal _GEANT_CONTROL_SMATE_Z_type = { (char*)0, (char*)0,
04587 (char*)0, (char*)0, 0 };
04588 static KmParameter _GEANT_CONTROL_SMATE_Z = { "Z", 1, "Atomic number",
04589 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
04590 KmTYPE_REAL, &_GEANT_CONTROL_SMATE_Z_type };
04591 static KmParReal _GEANT_CONTROL_SMATE_DENS_type = { (char*)0, (char*)0,
04592 (char*)0, (char*)0, 0 };
04593 static KmParameter _GEANT_CONTROL_SMATE_DENS = { "DENS", 4, "Density",
04594 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
04595 KmTYPE_REAL, &_GEANT_CONTROL_SMATE_DENS_type };
04596 static KmParReal _GEANT_CONTROL_SMATE_RADL_type = { (char*)0, (char*)0,
04597 (char*)0, (char*)0, 0 };
04598 static KmParameter _GEANT_CONTROL_SMATE_RADL = { "RADL", 4,
04599 "Radiation lenght", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
04600 (KmParFlag)0, KmTYPE_REAL, &_GEANT_CONTROL_SMATE_RADL_type };
04601 static KmParReal _GEANT_CONTROL_SMATE_ABSL_type = { (char*)0, (char*)0,
04602 (char*)0, (char*)0, 0 };
04603 static KmParameter _GEANT_CONTROL_SMATE_ABSL = { "ABSL", 4,
04604 "Absorption lenght", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
04605 (KmParFlag)0, KmTYPE_REAL, &_GEANT_CONTROL_SMATE_ABSL_type };
04606 static KmParReal _GEANT_CONTROL_SMATE_UBUF_type = { (char*)0, (char*)0,
04607 (char*)0, (char*)0, 0 };
04608 static KmParameter _GEANT_CONTROL_SMATE_UBUF = { "UBUF", 4, " ", (char*)0,
04609 (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
04610 &_GEANT_CONTROL_SMATE_UBUF_type };
04611 static KmParInt _GEANT_CONTROL_SMATE_NWBUF_type = { (char*)0, (char*)0,
04612 (char*)0, (char*)0, 0 };
04613 static KmParameter _GEANT_CONTROL_SMATE_NWBUF = { "NWBUF", 5, " ", (char*)0,
04614 (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
04615 &_GEANT_CONTROL_SMATE_NWBUF_type };
04616 static KmParameter *_GEANT_CONTROL_SMATE_parameters[] = {
04617 &_GEANT_CONTROL_SMATE_IMAT, &_GEANT_CONTROL_SMATE_NAMATE,
04618 &_GEANT_CONTROL_SMATE_A, &_GEANT_CONTROL_SMATE_Z, &_GEANT_CONTROL_SMATE_DENS,
04619 &_GEANT_CONTROL_SMATE_RADL, &_GEANT_CONTROL_SMATE_ABSL,
04620 &_GEANT_CONTROL_SMATE_UBUF, &_GEANT_CONTROL_SMATE_NWBUF };
04621 static char *_GEANT_CONTROL_SMATE_guidance[] = {
04622 " CALL GSMATE(imat,namate,a,z,dens,radl,absl,ubuf,nwbuf)" };
04623 static KmCommand _GEANT_CONTROL_SMATE = { &_GEANT_CONTROL_SMIXT,
04624 "/GEANT/CONTROL/SMATE", "SMATE", 0, 2, 9, 9, _GEANT_CONTROL_SMATE_parameters,
04625 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
04626 _GEANT_CONTROL_SMATE_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
04627 (char*)0, (int*)0 };
04628
04629 static KmParameter _GEANT_CONTROL_PDIGI_CHUSET = { "CHUSET", 6, "User set",
04630 "*", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
04631 (void*)0 };
04632 static KmParameter _GEANT_CONTROL_PDIGI_CHUDET = { "CHUDET", 6,
04633 "User detector", "*", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
04634 KmTYPE_CHAR, (void*)0 };
04635 static KmParameter *_GEANT_CONTROL_PDIGI_parameters[] = {
04636 &_GEANT_CONTROL_PDIGI_CHUSET, &_GEANT_CONTROL_PDIGI_CHUDET };
04637 static char *_GEANT_CONTROL_PDIGI_guidance[] = { " CALL GPDIGI(chuset,chudet)"
04638 };
04639 static KmCommand _GEANT_CONTROL_PDIGI = { &_GEANT_CONTROL_SMATE,
04640 "/GEANT/CONTROL/PDIGI", "PDIGI", 0, 2, 2, 0, _GEANT_CONTROL_PDIGI_parameters,
04641 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
04642 _GEANT_CONTROL_PDIGI_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
04643 (char*)0, (int*)0 };
04644
04645 static KmParameter _GEANT_CONTROL_PHITS_CHUSET = { "CHUSET", 6, "User set",
04646 "*", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
04647 (void*)0 };
04648 static KmParameter _GEANT_CONTROL_PHITS_CHUDET = { "CHUDET", 6,
04649 "User detector", "*", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
04650 KmTYPE_CHAR, (void*)0 };
04651 static KmParInt _GEANT_CONTROL_PHITS_NUMHI_type = { (char*)0, (char*)0,
04652 (char*)0, (char*)0, 0 };
04653 static KmParameter _GEANT_CONTROL_PHITS_NUMHI = { "NUMHI", 5, "Hit number",
04654 "0", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
04655 &_GEANT_CONTROL_PHITS_NUMHI_type };
04656 static KmParameter *_GEANT_CONTROL_PHITS_parameters[] = {
04657 &_GEANT_CONTROL_PHITS_CHUSET, &_GEANT_CONTROL_PHITS_CHUDET,
04658 &_GEANT_CONTROL_PHITS_NUMHI };
04659 static char *_GEANT_CONTROL_PHITS_guidance[] = { " CALL GPHITS(chuset,chudet)"
04660 };
04661 static KmCommand _GEANT_CONTROL_PHITS = { &_GEANT_CONTROL_PDIGI,
04662 "/GEANT/CONTROL/PHITS", "PHITS", 0, 2, 3, 0, _GEANT_CONTROL_PHITS_parameters,
04663 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
04664 _GEANT_CONTROL_PHITS_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
04665 (char*)0, (int*)0 };
04666
04667 static KmParInt _GEANT_CONTROL_OUTPUT_LP_LOUT_type = { (char*)0, (char*)0,
04668 (char*)0, (char*)0, 0 };
04669 static KmParameter _GEANT_CONTROL_OUTPUT_LP_LOUT = { "LOUT", 4,
04670 "New output unit", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
04671 (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_OUTPUT_LP_LOUT_type };
04672 static KmParameter *_GEANT_CONTROL_OUTPUT_LP_parameters[] = {
04673 &_GEANT_CONTROL_OUTPUT_LP_LOUT };
04674 static char *_GEANT_CONTROL_OUTPUT_LP_guidance[] = {
04675 "To change lout in /GCUNIT/",
04676 "Note: unit numbers 5,11,12,13,14,15 are reserved and cannot be used." };
04677 static KmCommand _GEANT_CONTROL_OUTPUT_LP = { &_GEANT_CONTROL_PHITS,
04678 "/GEANT/CONTROL/OUTPUT_LP", "OUTPUT_LP", 0, 2, 1, 1,
04679 _GEANT_CONTROL_OUTPUT_LP_parameters, 0, 0, gxcont_, (IntFunc*)0,
04680 (SUBROUTINE*)0, (pCharFunc*)0, 2, _GEANT_CONTROL_OUTPUT_LP_guidance, 0,
04681 (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
04682
04683 static KmParameter _GEANT_CONTROL_PRINT_NAME = { "NAME", 4, "Name", (char*)0,
04684 (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
04685 (void*)0 };
04686 static KmParInt _GEANT_CONTROL_PRINT_NUMBER_type = { (char*)0, (char*)0,
04687 (char*)0, (char*)0, 0 };
04688 static KmParameter _GEANT_CONTROL_PRINT_NUMBER = { "NUMBER", 6, "Number", "0",
04689 (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
04690 &_GEANT_CONTROL_PRINT_NUMBER_type };
04691 static KmParameter *_GEANT_CONTROL_PRINT_parameters[] = {
04692 &_GEANT_CONTROL_PRINT_NAME, &_GEANT_CONTROL_PRINT_NUMBER };
04693 static char *_GEANT_CONTROL_PRINT_guidance[] = { " CALL GPRINT(name,number)" };
04694 static KmCommand _GEANT_CONTROL_PRINT = { &_GEANT_CONTROL_OUTPUT_LP,
04695 "/GEANT/CONTROL/PRINT", "PRINT", 0, 2, 2, 2, _GEANT_CONTROL_PRINT_parameters,
04696 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
04697 _GEANT_CONTROL_PRINT_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
04698 (char*)0, (int*)0 };
04699
04700 static KmParInt _GEANT_CONTROL_MZLOGL_LEVEL_type = { (char*)0, (char*)0,
04701 (char*)0, (char*)0, 0 };
04702 static KmParameter _GEANT_CONTROL_MZLOGL_LEVEL = { "LEVEL", 5, "MZ log level",
04703 "0", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
04704 &_GEANT_CONTROL_MZLOGL_LEVEL_type };
04705 static KmParameter *_GEANT_CONTROL_MZLOGL_parameters[] = {
04706 &_GEANT_CONTROL_MZLOGL_LEVEL };
04707 static char *_GEANT_CONTROL_MZLOGL_guidance[] = {
04708 "Set the log level for the MZ package of ZEBRA: CALL MZLOGL(0,level)",
04709 " LEVEL = -3 no messages at all", " -2 error messages only",
04710 " -1 terse logging", " 0 normal",
04711 " +1 log rare events", " +2 log calls to MZ routines" };
04712 static KmCommand _GEANT_CONTROL_MZLOGL = { &_GEANT_CONTROL_PRINT,
04713 "/GEANT/CONTROL/MZLOGL", "MZLOGL", 0, 2, 1, 1,
04714 _GEANT_CONTROL_MZLOGL_parameters, 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0,
04715 (pCharFunc*)0, 7, _GEANT_CONTROL_MZLOGL_guidance, 0, (char**)0, 0, (char**)0,
04716 0, (char**)0, (char*)0, (int*)0 };
04717
04718 static KmParInt _GEANT_CONTROL_SWITCH_ISWI_type = { (char*)0, (char*)0,
04719 (char*)0, (char*)0, 0 };
04720 static KmParameter _GEANT_CONTROL_SWITCH_ISWI = { "ISWI", 4, "Switch number",
04721 (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
04722 &_GEANT_CONTROL_SWITCH_ISWI_type };
04723 static KmParInt _GEANT_CONTROL_SWITCH_IVAL_type = { (char*)0, (char*)0,
04724 (char*)0, (char*)0, 0 };
04725 static KmParameter _GEANT_CONTROL_SWITCH_IVAL = { "IVAL", 4,
04726 "New switch value", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
04727 (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_SWITCH_IVAL_type };
04728 static KmParameter *_GEANT_CONTROL_SWITCH_parameters[] = {
04729 &_GEANT_CONTROL_SWITCH_ISWI, &_GEANT_CONTROL_SWITCH_IVAL };
04730 static char *_GEANT_CONTROL_SWITCH_guidance[] = {
04731 "Change one element of array ISWIT(10) in /GCFLAG/" };
04732 static KmCommand _GEANT_CONTROL_SWITCH = { &_GEANT_CONTROL_MZLOGL,
04733 "/GEANT/CONTROL/SWITCH", "SWITCH", 0, 2, 2, 2,
04734 _GEANT_CONTROL_SWITCH_parameters, 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0,
04735 (pCharFunc*)0, 1, _GEANT_CONTROL_SWITCH_guidance, 0, (char**)0, 0, (char**)0,
04736 0, (char**)0, (char*)0, (int*)0 };
04737
04738 static KmParInt _GEANT_CONTROL_RNDM_ISEED1_type = { (char*)0, (char*)0,
04739 (char*)0, (char*)0, 0 };
04740 static KmParameter _GEANT_CONTROL_RNDM_ISEED1 = { "ISEED1", 6,
04741 "First seed for the random number generator", (char*)0, (char*)0, 8, 0,
04742 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
04743 &_GEANT_CONTROL_RNDM_ISEED1_type };
04744 static KmParInt _GEANT_CONTROL_RNDM_ISEED2_type = { (char*)0, (char*)0,
04745 (char*)0, (char*)0, 0 };
04746 static KmParameter _GEANT_CONTROL_RNDM_ISEED2 = { "ISEED2", 6,
04747 "Second seed for the random number generator", (char*)0, (char*)0, 8, 0,
04748 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
04749 &_GEANT_CONTROL_RNDM_ISEED2_type };
04750 static KmParameter *_GEANT_CONTROL_RNDM_parameters[] = {
04751 &_GEANT_CONTROL_RNDM_ISEED1, &_GEANT_CONTROL_RNDM_ISEED2 };
04752 static char *_GEANT_CONTROL_RNDM_guidance[] = {
04753 "Set the seeds for the random number generator. If no numbers are",
04754 "given, the currents seeds are printed." };
04755 static KmCommand _GEANT_CONTROL_RNDM = { &_GEANT_CONTROL_SWITCH,
04756 "/GEANT/CONTROL/RNDM", "RNDM", 0, 2, 2, 0, _GEANT_CONTROL_RNDM_parameters, 0,
04757 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 2,
04758 _GEANT_CONTROL_RNDM_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
04759 (char*)0, (int*)0 };
04760
04761 static KmParInt _GEANT_CONTROL_TRIGGER_N_type = { (char*)0, (char*)0,
04762 (char*)0, (char*)0, 0 };
04763 static KmParameter _GEANT_CONTROL_TRIGGER_N = { "N", 1, "Number of events",
04764 "1", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
04765 &_GEANT_CONTROL_TRIGGER_N_type };
04766 static KmParameter *_GEANT_CONTROL_TRIGGER_parameters[] = {
04767 &_GEANT_CONTROL_TRIGGER_N };
04768 static char *_GEANT_CONTROL_TRIGGER_guidance[] = {
04769 "Start one or more new events." };
04770 static KmCommand _GEANT_CONTROL_TRIGGER = { &_GEANT_CONTROL_RNDM,
04771 "/GEANT/CONTROL/TRIGGER", "TRIGGER", 0, 2, 1, 0,
04772 _GEANT_CONTROL_TRIGGER_parameters, 0, 0, gxcont_, (IntFunc*)0,
04773 (SUBROUTINE*)0, (pCharFunc*)0, 1, _GEANT_CONTROL_TRIGGER_guidance, 0,
04774 (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
04775
04776 static char *_GEANT_CONTROL_TRACK_guidance[] = {
04777 "Restart tracking, clearing the track and hit",
04778 "banks, but keeping the kinematics." };
04779 static KmCommand _GEANT_CONTROL_TRACK = { &_GEANT_CONTROL_TRIGGER,
04780 "/GEANT/CONTROL/TRACK", "TRACK", 0, 2, 0, 0, (KmParameter**)0, 0, 0, gxcont_,
04781 (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 2, _GEANT_CONTROL_TRACK_guidance,
04782 0, (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
04783
04784 static KmParReal _GEANT_CONTROL_GTIME_TIMINT_type = { (char*)0, (char*)0,
04785 (char*)0, (char*)0, 0 };
04786 static KmParameter _GEANT_CONTROL_GTIME_TIMINT = { "TIMINT", 6,
04787 "Total time after initialisation", (char*)0, (char*)0, 12, 0, (char**)0, 0,
04788 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CONTROL_GTIME_TIMINT_type };
04789 static KmParReal _GEANT_CONTROL_GTIME_TIMEND_type = { (char*)0, (char*)0,
04790 (char*)0, (char*)0, 0 };
04791 static KmParameter _GEANT_CONTROL_GTIME_TIMEND = { "TIMEND", 6,
04792 "Time reserved for the termination phase", (char*)0, (char*)0, 12, 0,
04793 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
04794 &_GEANT_CONTROL_GTIME_TIMEND_type };
04795 static KmParInt _GEANT_CONTROL_GTIME_ITIME_type = { (char*)0, (char*)0,
04796 (char*)0, (char*)0, 0 };
04797 static KmParameter _GEANT_CONTROL_GTIME_ITIME = { "ITIME", 5,
04798 "Frequency of control printing", (char*)0, (char*)0, 8, 0, (char**)0, 0,
04799 (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_GTIME_ITIME_type };
04800 static KmParameter *_GEANT_CONTROL_GTIME_parameters[] = {
04801 &_GEANT_CONTROL_GTIME_TIMINT, &_GEANT_CONTROL_GTIME_TIMEND,
04802 &_GEANT_CONTROL_GTIME_ITIME };
04803 static char *_GEANT_CONTROL_GTIME_guidance[] = {
04804 "These commands have limited use in the interactive version. In",
04805 "particular the value of TIMINT is disregarded by GEANT." };
04806 static KmCommand _GEANT_CONTROL_GTIME = { &_GEANT_CONTROL_TRACK,
04807 "/GEANT/CONTROL/GTIME", "GTIME", 0, 2, 3, 3, _GEANT_CONTROL_GTIME_parameters,
04808 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 2,
04809 _GEANT_CONTROL_GTIME_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
04810 (char*)0, (int*)0 };
04811
04812 static char *_GEANT_CONTROL_SORD_ISTORD_range[] = { "1", "0" };
04813 static KmParInt _GEANT_CONTROL_SORD_ISTORD_type = { (char*)0, (char*)0,
04814 (char*)0, (char*)0, 0 };
04815 static KmParameter _GEANT_CONTROL_SORD_ISTORD = { "ISTORD", 6,
04816 "Flag to control user ordering of the stack", "1", (char*)0, 8, 2,
04817 _GEANT_CONTROL_SORD_ISTORD_range, 2, _GEANT_CONTROL_SORD_ISTORD_range,
04818 (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_SORD_ISTORD_type };
04819 static KmParameter *_GEANT_CONTROL_SORD_parameters[] = {
04820 &_GEANT_CONTROL_SORD_ISTORD };
04821 static char *_GEANT_CONTROL_SORD_guidance[] = {
04822 "If ISTORD is set to 1, the particle with the highest value of the",
04823 "user weight UPWGHT will be selected to be tracked next." };
04824 static KmCommand _GEANT_CONTROL_SORD = { &_GEANT_CONTROL_GTIME,
04825 "/GEANT/CONTROL/SORD", "SORD", 0, 2, 1, 1, _GEANT_CONTROL_SORD_parameters, 0,
04826 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 2,
04827 _GEANT_CONTROL_SORD_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
04828 (char*)0, (int*)0 };
04829
04830 static KmParInt _GEANT_CONTROL_RUNG_IDRUN_type = { (char*)0, (char*)0,
04831 (char*)0, (char*)0, 0 };
04832 static KmParameter _GEANT_CONTROL_RUNG_IDRUN = { "IDRUN", 5,
04833 "User run number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
04834 (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_RUNG_IDRUN_type };
04835 static KmParInt _GEANT_CONTROL_RUNG_IDEVT_type = { (char*)0, (char*)0,
04836 (char*)0, (char*)0, 0 };
04837 static KmParameter _GEANT_CONTROL_RUNG_IDEVT = { "IDEVT", 5,
04838 "User starting event number", (char*)0, (char*)0, 8, 0, (char**)0, 0,
04839 (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_RUNG_IDEVT_type };
04840 static KmParameter *_GEANT_CONTROL_RUNG_parameters[] = {
04841 &_GEANT_CONTROL_RUNG_IDRUN, &_GEANT_CONTROL_RUNG_IDEVT };
04842 static char *_GEANT_CONTROL_RUNG_guidance[] = {
04843 "Set the run number and the starting value for the user event number." };
04844 static KmCommand _GEANT_CONTROL_RUNG = { &_GEANT_CONTROL_SORD,
04845 "/GEANT/CONTROL/RUNG", "RUNG", 0, 2, 2, 2, _GEANT_CONTROL_RUNG_parameters, 0,
04846 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
04847 _GEANT_CONTROL_RUNG_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
04848 (char*)0, (int*)0 };
04849
04850 static KmParInt _GEANT_CONTROL_KINE_IKINE_type = { (char*)0, (char*)0,
04851 (char*)0, (char*)0, 0 };
04852 static KmParameter _GEANT_CONTROL_KINE_IKINE = { "IKINE", 5, "IKINE", "1",
04853 (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
04854 &_GEANT_CONTROL_KINE_IKINE_type };
04855 static KmParReal _GEANT_CONTROL_KINE_PKINE1_type = { (char*)0, (char*)0,
04856 (char*)0, (char*)0, 0 };
04857 static KmParameter _GEANT_CONTROL_KINE_PKINE1 = { "PKINE1", 6, "PKINE(1)",
04858 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
04859 KmTYPE_REAL, &_GEANT_CONTROL_KINE_PKINE1_type };
04860 static KmParReal _GEANT_CONTROL_KINE_PKINE2_type = { (char*)0, (char*)0,
04861 (char*)0, (char*)0, 0 };
04862 static KmParameter _GEANT_CONTROL_KINE_PKINE2 = { "PKINE2", 6, "PKINE(2)",
04863 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
04864 KmTYPE_REAL, &_GEANT_CONTROL_KINE_PKINE2_type };
04865 static KmParReal _GEANT_CONTROL_KINE_PKINE3_type = { (char*)0, (char*)0,
04866 (char*)0, (char*)0, 0 };
04867 static KmParameter _GEANT_CONTROL_KINE_PKINE3 = { "PKINE3", 6, "PKINE(3)",
04868 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
04869 KmTYPE_REAL, &_GEANT_CONTROL_KINE_PKINE3_type };
04870 static KmParReal _GEANT_CONTROL_KINE_PKINE4_type = { (char*)0, (char*)0,
04871 (char*)0, (char*)0, 0 };
04872 static KmParameter _GEANT_CONTROL_KINE_PKINE4 = { "PKINE4", 6, "PKINE(4)",
04873 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
04874 KmTYPE_REAL, &_GEANT_CONTROL_KINE_PKINE4_type };
04875 static KmParReal _GEANT_CONTROL_KINE_PKINE5_type = { (char*)0, (char*)0,
04876 (char*)0, (char*)0, 0 };
04877 static KmParameter _GEANT_CONTROL_KINE_PKINE5 = { "PKINE5", 6, "PKINE(5)",
04878 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
04879 KmTYPE_REAL, &_GEANT_CONTROL_KINE_PKINE5_type };
04880 static KmParReal _GEANT_CONTROL_KINE_PKINE6_type = { (char*)0, (char*)0,
04881 (char*)0, (char*)0, 0 };
04882 static KmParameter _GEANT_CONTROL_KINE_PKINE6 = { "PKINE6", 6, "PKINE(6)",
04883 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
04884 KmTYPE_REAL, &_GEANT_CONTROL_KINE_PKINE6_type };
04885 static KmParReal _GEANT_CONTROL_KINE_PKINE7_type = { (char*)0, (char*)0,
04886 (char*)0, (char*)0, 0 };
04887 static KmParameter _GEANT_CONTROL_KINE_PKINE7 = { "PKINE7", 6, "PKINE(7)",
04888 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
04889 KmTYPE_REAL, &_GEANT_CONTROL_KINE_PKINE7_type };
04890 static KmParReal _GEANT_CONTROL_KINE_PKINE8_type = { (char*)0, (char*)0,
04891 (char*)0, (char*)0, 0 };
04892 static KmParameter _GEANT_CONTROL_KINE_PKINE8 = { "PKINE8", 6, "PKINE(8)",
04893 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
04894 KmTYPE_REAL, &_GEANT_CONTROL_KINE_PKINE8_type };
04895 static KmParReal _GEANT_CONTROL_KINE_PKINE9_type = { (char*)0, (char*)0,
04896 (char*)0, (char*)0, 0 };
04897 static KmParameter _GEANT_CONTROL_KINE_PKINE9 = { "PKINE9", 6, "PKINE(9)",
04898 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
04899 KmTYPE_REAL, &_GEANT_CONTROL_KINE_PKINE9_type };
04900 static KmParReal _GEANT_CONTROL_KINE_PKINE10_type = { (char*)0, (char*)0,
04901 (char*)0, (char*)0, 0 };
04902 static KmParameter _GEANT_CONTROL_KINE_PKINE10 = { "PKINE10", 7, "PKINE(10)",
04903 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
04904 KmTYPE_REAL, &_GEANT_CONTROL_KINE_PKINE10_type };
04905 static KmParameter *_GEANT_CONTROL_KINE_parameters[] = {
04906 &_GEANT_CONTROL_KINE_IKINE, &_GEANT_CONTROL_KINE_PKINE1,
04907 &_GEANT_CONTROL_KINE_PKINE2, &_GEANT_CONTROL_KINE_PKINE3,
04908 &_GEANT_CONTROL_KINE_PKINE4, &_GEANT_CONTROL_KINE_PKINE5,
04909 &_GEANT_CONTROL_KINE_PKINE6, &_GEANT_CONTROL_KINE_PKINE7,
04910 &_GEANT_CONTROL_KINE_PKINE8, &_GEANT_CONTROL_KINE_PKINE9,
04911 &_GEANT_CONTROL_KINE_PKINE10 };
04912 static char *_GEANT_CONTROL_KINE_guidance[] = {
04913 "Set the variables in /GCFLAG/ IKINE, PKINE(10)" };
04914 static KmCommand _GEANT_CONTROL_KINE = { &_GEANT_CONTROL_RUNG,
04915 "/GEANT/CONTROL/KINE", "KINE", 0, 2, 11, 1, _GEANT_CONTROL_KINE_parameters,
04916 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
04917 _GEANT_CONTROL_KINE_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
04918 (char*)0, (int*)0 };
04919
04920 static char *_GEANT_CONTROL_guidance[] = { "Control commands." };
04921 static KmMenu _GEANT_CONTROL = { (KmMenu*)0, (KmMenu*)0, "/GEANT/CONTROL",
04922 "CONTROL", 2, &_GEANT_CONTROL_KINE, 1, _GEANT_CONTROL_guidance, 0, (char**)0,
04923 0, (char**)0 };
04924
04925 static KmMenu _GEANT = { (KmMenu*)0, &_GEANT_CONTROL, "/GEANT", "GEANT", 1,
04926 (KmCommand*)0, 0, (char**)0, 0, (char**)0, 0, (char**)0 };
04927
04928 klnkmenu( &_GEANT, 950303 );
04929 }
04930
04931
04932 #ifdef F77_LCASE
04933 # define gkdz_ gkdz
04934 # define gxdz_ gxdz
04935 #endif
04936
04937 #ifdef F77_UCASE
04938 # define gkdz_ GKDZ
04939 # define gxdz_ GXDZ
04940 #endif
04941
04942 #ifdef IBM370
04943 # pragma linkage(GKDZ,FORTRAN)
04944 # pragma linkage(GXDZ,FORTRAN)
04945 #endif
04946
04947 extern void gkdz_();
04948 extern void gxdz_();
04949
04950 void gkdz_()
04951 {
04952
04953 static KmParameter _GEANT_DZ_DIRZ_PATH = { "PATH", 4,
04954 "Name of the RZ directory to analyse", (char*)0, (char*)0, 20, 0, (char**)0,
04955 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
04956 static KmParameter *_GEANT_DZ_DIRZ_parameters[] = { &_GEANT_DZ_DIRZ_PATH };
04957 static char *_GEANT_DZ_DIRZ_guidance[] = {
04958 "Facility to display RZ directory trees.",
04959 " CALL DZDIRZ(0,LDUMMY,0,path,'N',1,0,1)" };
04960 static KmCommand _GEANT_DZ_DIRZ = { (KmCommand*)0, "/GEANT/DZ/DIRZ", "DIRZ",
04961 0, 2, 1, 0, _GEANT_DZ_DIRZ_parameters, 0, 0, gxdz_, (IntFunc*)0,
04962 (SUBROUTINE*)0, (pCharFunc*)0, 2, _GEANT_DZ_DIRZ_guidance, 0, (char**)0, 0,
04963 (char**)0, 0, (char**)0, (char*)0, (int*)0 };
04964
04965 static KmParameter _GEANT_DZ_DISP_BANK = { "BANK", 4, "Name of the bank",
04966 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
04967 KmTYPE_CHAR, (void*)0 };
04968 static KmParameter _GEANT_DZ_DISP_PATH = { "PATH", 4, "Name of the doc file",
04969 " ", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
04970 (void*)0 };
04971 static KmParInt _GEANT_DZ_DISP_NUMBER_type = { (char*)0, (char*)0,
04972 (char*)0, (char*)0, 0 };
04973 static KmParameter _GEANT_DZ_DISP_NUMBER = { "NUMBER", 6,
04974 "Number of the bank", "1", (char*)0, 8, 0, (char**)0, 0, (char**)0,
04975 (KmParFlag)0, KmTYPE_INT, &_GEANT_DZ_DISP_NUMBER_type };
04976 static KmParameter *_GEANT_DZ_DISP_parameters[] = { &_GEANT_DZ_DISP_BANK,
04977 &_GEANT_DZ_DISP_PATH, &_GEANT_DZ_DISP_NUMBER };
04978 static char *_GEANT_DZ_DISP_guidance[] = { "Interactive bank display tool.",
04979 " CALL DZDISP(IXSTOR,LBANK,path,'N',1,0,1,IWTYPE)" };
04980 static KmCommand _GEANT_DZ_DISP = { &_GEANT_DZ_DIRZ, "/GEANT/DZ/DISP", "DISP",
04981 0, 2, 3, 1, _GEANT_DZ_DISP_parameters, 0, 0, gxdz_, (IntFunc*)0,
04982 (SUBROUTINE*)0, (pCharFunc*)0, 2, _GEANT_DZ_DISP_guidance, 0, (char**)0, 0,
04983 (char**)0, 0, (char**)0, (char*)0, (int*)0 };
04984
04985 static KmParInt _GEANT_DZ_DDIV_IDIV_type = { (char*)0, (char*)0, (char*)0,
04986 (char*)0, 0 };
04987 static KmParameter _GEANT_DZ_DDIV_IDIV = { "IDIV", 4, "Division number", "2",
04988 (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
04989 &_GEANT_DZ_DDIV_IDIV_type };
04990 static KmParameter _GEANT_DZ_DDIV_PATH = { "PATH", 4, "Name of the doc file",
04991 " ", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
04992 (void*)0 };
04993 static KmParameter *_GEANT_DZ_DDIV_parameters[] = { &_GEANT_DZ_DDIV_IDIV,
04994 &_GEANT_DZ_DDIV_PATH };
04995 static char *_GEANT_DZ_DDIV_guidance[] = {
04996 "Facility to display the layout of stores and divisions.",
04997 " CALL DZDDIV(idiv,LDUMMY,path,'IN',1,0,1,IWTYPE)" };
04998 static KmCommand _GEANT_DZ_DDIV = { &_GEANT_DZ_DISP, "/GEANT/DZ/DDIV", "DDIV",
04999 0, 2, 2, 0, _GEANT_DZ_DDIV_parameters, 0, 0, gxdz_, (IntFunc*)0,
05000 (SUBROUTINE*)0, (pCharFunc*)0, 2, _GEANT_DZ_DDIV_guidance, 0, (char**)0, 0,
05001 (char**)0, 0, (char**)0, (char*)0, (int*)0 };
05002
05003 static KmParInt _GEANT_DZ_STORE_IXSTOR_type = { "0", "24", "0", "24", 0 };
05004 static KmParameter _GEANT_DZ_STORE_IXSTOR = { "IXSTOR", 6, "Store number",
05005 "0", (char*)0, 3, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
05006 &_GEANT_DZ_STORE_IXSTOR_type };
05007 static KmParameter *_GEANT_DZ_STORE_parameters[] = { &_GEANT_DZ_STORE_IXSTOR };
05008 static char *_GEANT_DZ_STORE_guidance[] = {
05009 "Display the structure of the ZEBRA store IXSTOR.",
05010 "Output the parameters characterizing the store, followed by a",
05011 "list of all divisions and all link areas associated with the store in",
05012 "question." };
05013 static KmCommand _GEANT_DZ_STORE = { &_GEANT_DZ_DDIV, "/GEANT/DZ/STORE",
05014 "STORE", 0, 2, 1, 0, _GEANT_DZ_STORE_parameters, 0, 0, gxdz_, (IntFunc*)0,
05015 (SUBROUTINE*)0, (pCharFunc*)0, 4, _GEANT_DZ_STORE_guidance, 0, (char**)0, 0,
05016 (char**)0, 0, (char**)0, (char*)0, (int*)0 };
05017
05018 static KmParInt _GEANT_DZ_VERIFY_IDIV_type = { "0", "24", "0", "24", 0 };
05019 static KmParameter _GEANT_DZ_VERIFY_IDIV = { "IDIV", 4, "Division number ",
05020 "0", (char*)0, 3, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
05021 &_GEANT_DZ_VERIFY_IDIV_type };
05022 static KmParOption _GEANT_DZ_VERIFY_CHOPT_type = { (char**)0, (int*)0, (int*)0
05023 };
05024 static KmParameter _GEANT_DZ_VERIFY_CHOPT = { "CHOPT", 5, "Options", "CLSU",
05025 (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_OPTION,
05026 &_GEANT_DZ_VERIFY_CHOPT_type };
05027 static KmParameter *_GEANT_DZ_VERIFY_parameters[] = { &_GEANT_DZ_VERIFY_IDIV,
05028 &_GEANT_DZ_VERIFY_CHOPT };
05029 static char *_GEANT_DZ_VERIFY_guidance[] = {
05030 "Check the structure of one or more ZEBRA divisions.",
05031 "The verification detail depends on the settings in CHOPT.",
05032 " CHOPT='C' Check chaining of banks only",
05033 " CHOPT='L' Check validity of the structural links (implies 'C')",
05034 " CHOPT='S' Check the store parameters",
05035 " CHOPT='U' Check the validity of the up and origin (implies 'C')",
05036 " CHOPT='F' Errors are considered fatal and generate a call to ZFATAL" };
05037 static KmCommand _GEANT_DZ_VERIFY = { &_GEANT_DZ_STORE, "/GEANT/DZ/VERIFY",
05038 "VERIFY", 0, 2, 2, 0, _GEANT_DZ_VERIFY_parameters, 0, 0, gxdz_, (IntFunc*)0,
05039 (SUBROUTINE*)0, (pCharFunc*)0, 7, _GEANT_DZ_VERIFY_guidance, 0, (char**)0, 0,
05040 (char**)0, 0, (char**)0, (char*)0, (int*)0 };
05041
05042 static KmParInt _GEANT_DZ_SNAP_IDIV_type = { "0", "24", "0", "24", 0 };
05043 static KmParameter _GEANT_DZ_SNAP_IDIV = { "IDIV", 4, "Division number ", "2",
05044 (char*)0, 3, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
05045 &_GEANT_DZ_SNAP_IDIV_type };
05046 static KmParOption _GEANT_DZ_SNAP_CHOPT_type = { (char**)0, (int*)0, (int*)0 };
05047 static KmParameter _GEANT_DZ_SNAP_CHOPT = { "CHOPT", 5, "Options", "M",
05048 (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_OPTION,
05049 &_GEANT_DZ_SNAP_CHOPT_type };
05050 static KmParameter *_GEANT_DZ_SNAP_parameters[] = { &_GEANT_DZ_SNAP_IDIV,
05051 &_GEANT_DZ_SNAP_CHOPT };
05052 static char *_GEANT_DZ_SNAP_guidance[] = { "Snap of one or more divisions.",
05053 "Provides a snapshot of one or more divisions in a ZEBRA store.",
05054 "The kind of information provided is controlled by CHOPT.",
05055 " CHOPT='M' Print Map entry for each bank",
05056 " CHOPT='E' Extend map entry to dump all links of each bank",
05057 " (otherwise only as many links as will fit on a line)",
05058 " CHOPT='F' Full. Dump all active banks, links and data",
05059 " CHOPT='K' Kill. Dropped banks to be treated as active",
05060 " (dropped banks are not normally dumped under D or F option)",
05061 " CHOPT='L' Dump all Link areas associated with the store",
05062 " CHOPT='W' Dump the Working space, links and data",
05063 " CHOPT='Z' Dump the information in hexadecimal." };
05064 static KmCommand _GEANT_DZ_SNAP = { &_GEANT_DZ_VERIFY, "/GEANT/DZ/SNAP",
05065 "SNAP", 0, 2, 2, 0, _GEANT_DZ_SNAP_parameters, 0, 0, gxdz_, (IntFunc*)0,
05066 (SUBROUTINE*)0, (pCharFunc*)0, 12, _GEANT_DZ_SNAP_guidance, 0, (char**)0, 0,
05067 (char**)0, 0, (char**)0, (char*)0, (int*)0 };
05068
05069 static KmParameter _GEANT_DZ_SHOW_NAME = { "NAME", 4, "Bank name", (char*)0,
05070 (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
05071 (void*)0 };
05072 static KmParInt _GEANT_DZ_SHOW_NUMBER_type = { (char*)0, (char*)0,
05073 (char*)0, (char*)0, 0 };
05074 static KmParameter _GEANT_DZ_SHOW_NUMBER = { "NUMBER", 6, "Bank number", "1",
05075 (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
05076 &_GEANT_DZ_SHOW_NUMBER_type };
05077 static KmParOption _GEANT_DZ_SHOW_CHOPT_type = { (char**)0, (int*)0, (int*)0 };
05078 static KmParameter _GEANT_DZ_SHOW_CHOPT = { "CHOPT", 5, "Options", "BSV",
05079 (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_OPTION,
05080 &_GEANT_DZ_SHOW_CHOPT_type };
05081 static KmParameter *_GEANT_DZ_SHOW_parameters[] = { &_GEANT_DZ_SHOW_NAME,
05082 &_GEANT_DZ_SHOW_NUMBER, &_GEANT_DZ_SHOW_CHOPT };
05083 static char *_GEANT_DZ_SHOW_guidance[] = {
05084 "Display the contents of a bank or a data structure",
05085 "identified by its NAME and NUMBER.",
05086 "The output format of the data part is controlled by the internal",
05087 "or external I/O characteristic.", " CHOPT='B' Print the bank.",
05088 " CHOPT='S' Print the bank contents from left to right Sideways",
05089 " with up to ten elements per line.",
05090 " CHOPT='V' Print the vertical (down) structure.",
05091 " CHOPT='D' Print the bank contents from top to bottom Downwards",
05092 " with five elements per line.",
05093 " CHOPT='L' Print the linear structure.",
05094 " CHOPT='Z' Print the data part of each bank in hexadecimal format" };
05095 static KmCommand _GEANT_DZ_SHOW = { &_GEANT_DZ_SNAP, "/GEANT/DZ/SHOW", "SHOW",
05096 0, 2, 3, 1, _GEANT_DZ_SHOW_parameters, 0, 0, gxdz_, (IntFunc*)0,
05097 (SUBROUTINE*)0, (pCharFunc*)0, 12, _GEANT_DZ_SHOW_guidance, 0, (char**)0, 0,
05098 (char**)0, 0, (char**)0, (char*)0, (int*)0 };
05099
05100 static KmParameter _GEANT_DZ_SURV_NAME = { "NAME", 4, "Bank name", (char*)0,
05101 (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
05102 (void*)0 };
05103 static KmParInt _GEANT_DZ_SURV_NUMBER_type = { (char*)0, (char*)0,
05104 (char*)0, (char*)0, 0 };
05105 static KmParameter _GEANT_DZ_SURV_NUMBER = { "NUMBER", 6, "Bank number", "1",
05106 (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
05107 &_GEANT_DZ_SURV_NUMBER_type };
05108 static KmParameter *_GEANT_DZ_SURV_parameters[] = { &_GEANT_DZ_SURV_NAME,
05109 &_GEANT_DZ_SURV_NUMBER };
05110 static char *_GEANT_DZ_SURV_guidance[] = {
05111 "Print a survey of the structure identified by NAME, NUMBER." };
05112 static KmCommand _GEANT_DZ_SURV = { &_GEANT_DZ_SHOW, "/GEANT/DZ/SURV", "SURV",
05113 0, 2, 2, 1, _GEANT_DZ_SURV_parameters, 0, 0, gxdz_, (IntFunc*)0,
05114 (SUBROUTINE*)0, (pCharFunc*)0, 1, _GEANT_DZ_SURV_guidance, 0, (char**)0, 0,
05115 (char**)0, 0, (char**)0, (char*)0, (int*)0 };
05116
05117 static KmMenu _GEANT_DZ = { (KmMenu*)0, (KmMenu*)0, "/GEANT/DZ", "DZ", 2,
05118 &_GEANT_DZ_SURV, 0, (char**)0, 0, (char**)0, 0, (char**)0 };
05119
05120 static KmMenu _GEANT = { (KmMenu*)0, &_GEANT_DZ, "/GEANT", "GEANT", 1,
05121 (KmCommand*)0, 0, (char**)0, 0, (char**)0, 0, (char**)0 };
05122
05123 klnkmenu( &_GEANT, 950303 );
05124 }
05125
05126
05127 #ifdef F77_LCASE
05128 # define gkfz_ gkfz
05129 # define gxfz_ gxfz
05130 #endif
05131
05132 #ifdef F77_UCASE
05133 # define gkfz_ GKFZ
05134 # define gxfz_ GXFZ
05135 #endif
05136
05137 #ifdef IBM370
05138 # pragma linkage(GKFZ,FORTRAN)
05139 # pragma linkage(GXFZ,FORTRAN)
05140 #endif
05141
05142 extern void gkfz_();
05143 extern void gxfz_();
05144
05145 void gkfz_()
05146 {
05147
05148 static KmParInt _GEANT_FZ_FZCLOSE_LUN_type = { (char*)0, (char*)0,
05149 (char*)0, (char*)0, 0 };
05150 static KmParameter _GEANT_FZ_FZCLOSE_LUN = { "LUN", 3,
05151 "Fortran unit of the FZ to close", (char*)0, (char*)0, 8, 0, (char**)0, 0,
05152 (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_FZ_FZCLOSE_LUN_type };
05153 static KmParameter *_GEANT_FZ_FZCLOSE_parameters[] = { &_GEANT_FZ_FZCLOSE_LUN
05154 };
05155 static char *_GEANT_FZ_FZCLOSE_guidance[] = { "Equivalent to a call to:",
05156 " CALL GCLOSE(LUN,IER)" };
05157 static KmCommand _GEANT_FZ_FZCLOSE = { (KmCommand*)0, "/GEANT/FZ/FZCLOSE",
05158 "FZCLOSE", 0, 2, 1, 1, _GEANT_FZ_FZCLOSE_parameters, 0, 0, gxfz_,
05159 (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 2, _GEANT_FZ_FZCLOSE_guidance, 0,
05160 (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
05161
05162 static KmParInt _GEANT_FZ_FZOUT_LUN_type = { (char*)0, (char*)0, (char*)0,
05163 (char*)0, 0 };
05164 static KmParameter _GEANT_FZ_FZOUT_LUN = { "LUN", 3,
05165 "Fortran unit of the FZ file", (char*)0, (char*)0, 8, 0, (char**)0, 0,
05166 (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_FZ_FZOUT_LUN_type };
05167 static KmParameter _GEANT_FZ_FZOUT_KEYSU = { "KEYSU", 5,
05168 "Name of the data structure to be saved", (char*)0, (char*)0, 20, 0,
05169 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
05170 static KmParInt _GEANT_FZ_FZOUT_IDENT_type = { (char*)0, (char*)0,
05171 (char*)0, (char*)0, 0 };
05172 static KmParameter _GEANT_FZ_FZOUT_IDENT = { "IDENT", 5,
05173 "Version of the data structure to be saved", "1", (char*)0, 8, 0, (char**)0,
05174 0, (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_FZ_FZOUT_IDENT_type };
05175 static KmParameter *_GEANT_FZ_FZOUT_parameters[] = { &_GEANT_FZ_FZOUT_LUN,
05176 &_GEANT_FZ_FZOUT_KEYSU, &_GEANT_FZ_FZOUT_IDENT };
05177 static char *_GEANT_FZ_FZOUT_guidance[] = { "Equivalent to a call to:",
05178 " CALL GFOUT(LUN,KEYSU,1,IDENT,' ',IER)" };
05179 static KmCommand _GEANT_FZ_FZOUT = { &_GEANT_FZ_FZCLOSE, "/GEANT/FZ/FZOUT",
05180 "FZOUT", 0, 2, 3, 2, _GEANT_FZ_FZOUT_parameters, 0, 0, gxfz_, (IntFunc*)0,
05181 (SUBROUTINE*)0, (pCharFunc*)0, 2, _GEANT_FZ_FZOUT_guidance, 0, (char**)0, 0,
05182 (char**)0, 0, (char**)0, (char*)0, (int*)0 };
05183
05184 static KmParInt _GEANT_FZ_FZOPEN_LUN_type = { (char*)0, (char*)0, (char*)0,
05185 (char*)0, 0 };
05186 static KmParameter _GEANT_FZ_FZOPEN_LUN = { "LUN", 3,
05187 "Fortran unit with which to open the file", (char*)0, (char*)0, 8, 0,
05188 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_FZ_FZOPEN_LUN_type
05189 };
05190 static KmParameter _GEANT_FZ_FZOPEN_FILE = { "FILE", 4,
05191 "Name of the file to be opened", (char*)0, (char*)0, 20, 0, (char**)0, 0,
05192 (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
05193 static KmParameter _GEANT_FZ_FZOPEN_LUNTYP = { "LUNTYP", 6,
05194 "Type of FZ file to be opened by GOPEN", "XI", (char*)0, 20, 0, (char**)0, 0,
05195 (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
05196 static KmParInt _GEANT_FZ_FZOPEN_LEN_type = { (char*)0, (char*)0, (char*)0,
05197 (char*)0, 0 };
05198 static KmParameter _GEANT_FZ_FZOPEN_LEN = { "LEN", 3,
05199 "Recordlenght of the file", "0", (char*)0, 8, 0, (char**)0, 0, (char**)0,
05200 (KmParFlag)0, KmTYPE_INT, &_GEANT_FZ_FZOPEN_LEN_type };
05201 static KmParOption _GEANT_FZ_FZOPEN_CHOPT_type = { (char**)0, (int*)0, (int*)0
05202 };
05203 static KmParameter _GEANT_FZ_FZOPEN_CHOPT = { "CHOPT", 5,
05204 "Optional parameter to specify the action", " ", (char*)0, 20, 0, (char**)0,
05205 0, (char**)0, (KmParFlag)0, KmTYPE_OPTION, &_GEANT_FZ_FZOPEN_CHOPT_type };
05206 static KmParameter *_GEANT_FZ_FZOPEN_parameters[] = { &_GEANT_FZ_FZOPEN_LUN,
05207 &_GEANT_FZ_FZOPEN_FILE, &_GEANT_FZ_FZOPEN_LUNTYP, &_GEANT_FZ_FZOPEN_LEN,
05208 &_GEANT_FZ_FZOPEN_CHOPT };
05209 static char *_GEANT_FZ_FZOPEN_guidance[] = { "Equivalent to a call to:",
05210 " CALL GOPEN(LUN,FILE,LUNTYP,LEN,IER)",
05211 "If CHOPT = I then a call to GFIN or GFOUT will be performed in addition",
05212 "according to the value of LUNTYP, with the key INIT to save or retrieve",
05213 "the whole initialization data structure." };
05214 static KmCommand _GEANT_FZ_FZOPEN = { &_GEANT_FZ_FZOUT, "/GEANT/FZ/FZOPEN",
05215 "FZOPEN", 0, 2, 5, 4, _GEANT_FZ_FZOPEN_parameters, 0, 0, gxfz_, (IntFunc*)0,
05216 (SUBROUTINE*)0, (pCharFunc*)0, 5, _GEANT_FZ_FZOPEN_guidance, 0, (char**)0, 0,
05217 (char**)0, 0, (char**)0, (char*)0, (int*)0 };
05218
05219 static KmParInt _GEANT_FZ_FZIN_LUN_type = { (char*)0, (char*)0, (char*)0,
05220 (char*)0, 0 };
05221 static KmParameter _GEANT_FZ_FZIN_LUN = { "LUN", 3,
05222 "Fortran unit of the FZ file", (char*)0, (char*)0, 8, 0, (char**)0, 0,
05223 (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_FZ_FZIN_LUN_type };
05224 static KmParameter _GEANT_FZ_FZIN_KEYSU = { "KEYSU", 5,
05225 "Name of the data structure to be retrieved", (char*)0, (char*)0, 20, 0,
05226 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
05227 static KmParInt _GEANT_FZ_FZIN_IDENT_type = { (char*)0, (char*)0, (char*)0,
05228 (char*)0, 0 };
05229 static KmParameter _GEANT_FZ_FZIN_IDENT = { "IDENT", 5,
05230 "Version of the data structure to be retrieved", "0", (char*)0, 8, 0,
05231 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_FZ_FZIN_IDENT_type
05232 };
05233 static KmParameter *_GEANT_FZ_FZIN_parameters[] = { &_GEANT_FZ_FZIN_LUN,
05234 &_GEANT_FZ_FZIN_KEYSU, &_GEANT_FZ_FZIN_IDENT };
05235 static char *_GEANT_FZ_FZIN_guidance[] = { "Equivalent to a call to:",
05236 " CALL GFIN(LUN,KEYSU,1,IDENT,' ',IER)" };
05237 static KmCommand _GEANT_FZ_FZIN = { &_GEANT_FZ_FZOPEN, "/GEANT/FZ/FZIN",
05238 "FZIN", 0, 2, 3, 2, _GEANT_FZ_FZIN_parameters, 0, 0, gxfz_, (IntFunc*)0,
05239 (SUBROUTINE*)0, (pCharFunc*)0, 2, _GEANT_FZ_FZIN_guidance, 0, (char**)0, 0,
05240 (char**)0, 0, (char**)0, (char*)0, (int*)0 };
05241
05242 static char *_GEANT_FZ_guidance[] = { "ZEBRA/FZ commands" };
05243 static KmMenu _GEANT_FZ = { (KmMenu*)0, (KmMenu*)0, "/GEANT/FZ", "FZ", 2,
05244 &_GEANT_FZ_FZIN, 1, _GEANT_FZ_guidance, 0, (char**)0, 0, (char**)0 };
05245
05246 static KmMenu _GEANT = { (KmMenu*)0, &_GEANT_FZ, "/GEANT", "GEANT", 1,
05247 (KmCommand*)0, 0, (char**)0, 0, (char**)0, 0, (char**)0 };
05248
05249 klnkmenu( &_GEANT, 950303 );
05250 }
05251
05252
05253 #ifdef F77_LCASE
05254 # define gkrz_ gkrz
05255 # define gxrz_ gxrz
05256 #endif
05257
05258 #ifdef F77_UCASE
05259 # define gkrz_ GKRZ
05260 # define gxrz_ GXRZ
05261 #endif
05262
05263 #ifdef IBM370
05264 # pragma linkage(GKRZ,FORTRAN)
05265 # pragma linkage(GXRZ,FORTRAN)
05266 #endif
05267
05268 extern void gkrz_();
05269 extern void gxrz_();
05270
05271 void gkrz_()
05272 {
05273
05274 static KmParameter _GEANT_RZ_FREE_CHDIR = { "CHDIR", 5, "Lock identifier",
05275 "RZFILE", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
05276 KmTYPE_CHAR, (void*)0 };
05277 static KmParameter *_GEANT_RZ_FREE_parameters[] = { &_GEANT_RZ_FREE_CHDIR };
05278 static char *_GEANT_RZ_FREE_guidance[] = { "Free an RZ directory." };
05279 static KmCommand _GEANT_RZ_FREE = { (KmCommand*)0, "/GEANT/RZ/FREE", "FREE",
05280 0, 2, 1, 1, _GEANT_RZ_FREE_parameters, 0, 0, gxrz_, (IntFunc*)0,
05281 (SUBROUTINE*)0, (pCharFunc*)0, 1, _GEANT_RZ_FREE_guidance, 0, (char**)0, 0,
05282 (char**)0, 0, (char**)0, (char*)0, (int*)0 };
05283
05284 static KmParameter _GEANT_RZ_LOCK_CHDIR = { "CHDIR", 5, "Lock identifier",
05285 "RZFILE", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
05286 KmTYPE_CHAR, (void*)0 };
05287 static KmParameter *_GEANT_RZ_LOCK_parameters[] = { &_GEANT_RZ_LOCK_CHDIR };
05288 static char *_GEANT_RZ_LOCK_guidance[] = { "Lock an RZ directory." };
05289 static KmCommand _GEANT_RZ_LOCK = { &_GEANT_RZ_FREE, "/GEANT/RZ/LOCK", "LOCK",
05290 0, 2, 1, 1, _GEANT_RZ_LOCK_parameters, 0, 0, gxrz_, (IntFunc*)0,
05291 (SUBROUTINE*)0, (pCharFunc*)0, 1, _GEANT_RZ_LOCK_guidance, 0, (char**)0, 0,
05292 (char**)0, 0, (char**)0, (char*)0, (int*)0 };
05293
05294 static KmParameter _GEANT_RZ_SCR_OBJECT = { "OBJECT", 6, "Structure name",
05295 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
05296 KmTYPE_CHAR, (void*)0 };
05297 static KmParInt _GEANT_RZ_SCR_IDVERS_type = { (char*)0, (char*)0, (char*)0,
05298 (char*)0, 0 };
05299 static KmParameter _GEANT_RZ_SCR_IDVERS = { "IDVERS", 6, "Version number",
05300 "1", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
05301 &_GEANT_RZ_SCR_IDVERS_type };
05302 static KmParameter *_GEANT_RZ_SCR_parameters[] = { &_GEANT_RZ_SCR_OBJECT,
05303 &_GEANT_RZ_SCR_IDVERS };
05304 static char *_GEANT_RZ_SCR_guidance[] = {
05305 "Delete entry identified by OBJECT,IDVERS on RZ file.",
05306 "OBJECT may be : MATE,TMED,VOLU,ROTM,SETS,PART,SCAN, *",
05307 "If OBJECT= * delete all entries with IDVERS." };
05308 static KmCommand _GEANT_RZ_SCR = { &_GEANT_RZ_LOCK, "/GEANT/RZ/SCR", "SCR", 0,
05309 2, 2, 1, _GEANT_RZ_SCR_parameters, 0, 0, gxrz_, (IntFunc*)0, (SUBROUTINE*)0,
05310 (pCharFunc*)0, 3, _GEANT_RZ_SCR_guidance, 0, (char**)0, 0, (char**)0, 0,
05311 (char**)0, (char*)0, (int*)0 };
05312
05313 static KmParInt _GEANT_RZ_PURGE_NKEEP_type = { (char*)0, (char*)0,
05314 (char*)0, (char*)0, 0 };
05315 static KmParameter _GEANT_RZ_PURGE_NKEEP = { "NKEEP", 5,
05316 "Number of cycles to keep", "1", (char*)0, 8, 0, (char**)0, 0, (char**)0,
05317 (KmParFlag)0, KmTYPE_INT, &_GEANT_RZ_PURGE_NKEEP_type };
05318 static KmParameter *_GEANT_RZ_PURGE_parameters[] = { &_GEANT_RZ_PURGE_NKEEP };
05319 static char *_GEANT_RZ_PURGE_guidance[] = { "Purge an RZ directory." };
05320 static KmCommand _GEANT_RZ_PURGE = { &_GEANT_RZ_SCR, "/GEANT/RZ/PURGE",
05321 "PURGE", 0, 2, 1, 0, _GEANT_RZ_PURGE_parameters, 0, 0, gxrz_, (IntFunc*)0,
05322 (SUBROUTINE*)0, (pCharFunc*)0, 1, _GEANT_RZ_PURGE_guidance, 0, (char**)0, 0,
05323 (char**)0, 0, (char**)0, (char*)0, (int*)0 };
05324
05325 static KmParameter _GEANT_RZ_LDIR_CHPATH = { "CHPATH", 6, "Path name", " ",
05326 (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
05327 (void*)0 };
05328 static KmParOption _GEANT_RZ_LDIR_CHOPT_type = { (char**)0, (int*)0, (int*)0 };
05329 static KmParameter _GEANT_RZ_LDIR_CHOPT = { "CHOPT", 5, "CHOPT", " ",
05330 (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_OPTION,
05331 &_GEANT_RZ_LDIR_CHOPT_type };
05332 static KmParameter *_GEANT_RZ_LDIR_parameters[] = { &_GEANT_RZ_LDIR_CHPATH,
05333 &_GEANT_RZ_LDIR_CHOPT };
05334 static char *_GEANT_RZ_LDIR_guidance[] = {
05335 "List the contents of a directory (memory or disk).",
05336 "To list all RZ files currently open, type 'LD //'." };
05337 static KmCommand _GEANT_RZ_LDIR = { &_GEANT_RZ_PURGE, "/GEANT/RZ/LDIR",
05338 "LDIR", 0, 2, 2, 0, _GEANT_RZ_LDIR_parameters, 0, 0, gxrz_, (IntFunc*)0,
05339 (SUBROUTINE*)0, (pCharFunc*)0, 2, _GEANT_RZ_LDIR_guidance, 0, (char**)0, 0,
05340 (char**)0, 0, (char**)0, (char*)0, (int*)0 };
05341
05342 static KmParameter _GEANT_RZ_OUT_OBJECT = { "OBJECT", 6, "Structure name",
05343 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
05344 KmTYPE_CHAR, (void*)0 };
05345 static KmParInt _GEANT_RZ_OUT_IDVERS_type = { (char*)0, (char*)0, (char*)0,
05346 (char*)0, 0 };
05347 static KmParameter _GEANT_RZ_OUT_IDVERS = { "IDVERS", 6, "Version number",
05348 "1", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
05349 &_GEANT_RZ_OUT_IDVERS_type };
05350 static KmParOption _GEANT_RZ_OUT_CHOPT_type = { (char**)0, (int*)0, (int*)0 };
05351 static KmParameter _GEANT_RZ_OUT_CHOPT = { "CHOPT", 5, "Option", " ",
05352 (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_OPTION,
05353 &_GEANT_RZ_OUT_CHOPT_type };
05354 static KmParameter *_GEANT_RZ_OUT_parameters[] = { &_GEANT_RZ_OUT_OBJECT,
05355 &_GEANT_RZ_OUT_IDVERS, &_GEANT_RZ_OUT_CHOPT };
05356 static char *_GEANT_RZ_OUT_guidance[] = {
05357 "Write data structure identified by OBJECT,IDVERS to RZ file.",
05358 " MATE write JMATE structure", " TMED write JTMED structure",
05359 " VOLU write JVOLUM structure", " ROTM write JROTM structure",
05360 " SETS write JSET structure", " PART write JPART structure",
05361 " SCAN write LSCAN structure", " INIT write all above data structures" };
05362 static KmCommand _GEANT_RZ_OUT = { &_GEANT_RZ_LDIR, "/GEANT/RZ/OUT", "OUT", 0,
05363 2, 3, 1, _GEANT_RZ_OUT_parameters, 0, 0, gxrz_, (IntFunc*)0, (SUBROUTINE*)0,
05364 (pCharFunc*)0, 9, _GEANT_RZ_OUT_guidance, 0, (char**)0, 0, (char**)0, 0,
05365 (char**)0, (char*)0, (int*)0 };
05366
05367 static KmParameter _GEANT_RZ_IN_OBJECT = { "OBJECT", 6, "Structure name",
05368 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
05369 KmTYPE_CHAR, (void*)0 };
05370 static KmParInt _GEANT_RZ_IN_IDVERS_type = { (char*)0, (char*)0, (char*)0,
05371 (char*)0, 0 };
05372 static KmParameter _GEANT_RZ_IN_IDVERS = { "IDVERS", 6, "Version number", "1",
05373 (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
05374 &_GEANT_RZ_IN_IDVERS_type };
05375 static KmParOption _GEANT_RZ_IN_CHOPT_type = { (char**)0, (int*)0, (int*)0 };
05376 static KmParameter _GEANT_RZ_IN_CHOPT = { "CHOPT", 5, "Option", " ", (char*)0,
05377 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_OPTION,
05378 &_GEANT_RZ_IN_CHOPT_type };
05379 static KmParameter *_GEANT_RZ_IN_parameters[] = { &_GEANT_RZ_IN_OBJECT,
05380 &_GEANT_RZ_IN_IDVERS, &_GEANT_RZ_IN_CHOPT };
05381 static char *_GEANT_RZ_IN_guidance[] = {
05382 "Read data structure identified by OBJECT,IDVERS into memory.",
05383 " MATE read JMATE structure", " TMED read JTMED structure",
05384 " VOLU read JVOLUM structure", " ROTM read JROTM structure",
05385 " SETS read JSET structure", " PART read JPART structure",
05386 " SCAN read LSCAN structure", " INIT read all above data structures" };
05387 static KmCommand _GEANT_RZ_IN = { &_GEANT_RZ_OUT, "/GEANT/RZ/IN", "IN", 0, 2,
05388 3, 1, _GEANT_RZ_IN_parameters, 0, 0, gxrz_, (IntFunc*)0, (SUBROUTINE*)0,
05389 (pCharFunc*)0, 9, _GEANT_RZ_IN_guidance, 0, (char**)0, 0, (char**)0, 0,
05390 (char**)0, (char*)0, (int*)0 };
05391
05392 static KmParameter _GEANT_RZ_CDIR_CHPATH = { "CHPATH", 6, "Path name", " ",
05393 (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
05394 (void*)0 };
05395 static KmParOption _GEANT_RZ_CDIR_CHOPT_type = { (char**)0, (int*)0, (int*)0 };
05396 static KmParameter _GEANT_RZ_CDIR_CHOPT = { "CHOPT", 5, "CHOPT", " ",
05397 (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_OPTION,
05398 &_GEANT_RZ_CDIR_CHOPT_type };
05399 static KmParameter *_GEANT_RZ_CDIR_parameters[] = { &_GEANT_RZ_CDIR_CHPATH,
05400 &_GEANT_RZ_CDIR_CHOPT };
05401 static char *_GEANT_RZ_CDIR_guidance[] = {
05402 "Change or print the current directory.",
05403 " Ex. CD dir1 ; make DIR1 the new CWD",
05404 " CD //file1/dir2 ; make //FILE1/DIR2 the new CWD",
05405 " CD ; print the name of the CWD" };
05406 static KmCommand _GEANT_RZ_CDIR = { &_GEANT_RZ_IN, "/GEANT/RZ/CDIR", "CDIR",
05407 0, 2, 2, 0, _GEANT_RZ_CDIR_parameters, 0, 0, gxrz_, (IntFunc*)0,
05408 (SUBROUTINE*)0, (pCharFunc*)0, 4, _GEANT_RZ_CDIR_guidance, 0, (char**)0, 0,
05409 (char**)0, 0, (char**)0, (char*)0, (int*)0 };
05410
05411 static KmParameter _GEANT_RZ_MDIR_CHDIR = { "CHDIR", 5, "Directory name",
05412 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
05413 KmTYPE_CHAR, (void*)0 };
05414 static KmParOption _GEANT_RZ_MDIR_CHOPT_type = { (char**)0, (int*)0, (int*)0 };
05415 static KmParameter _GEANT_RZ_MDIR_CHOPT = { "CHOPT", 5, "Options", " ",
05416 (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_OPTION,
05417 &_GEANT_RZ_MDIR_CHOPT_type };
05418 static KmParameter *_GEANT_RZ_MDIR_parameters[] = { &_GEANT_RZ_MDIR_CHDIR,
05419 &_GEANT_RZ_MDIR_CHOPT };
05420 static char *_GEANT_RZ_MDIR_guidance[] = {
05421 "To create a new RZ directory below the current directory.", "with",
05422 " RZTAGS(1)='Object'", " RZTAGS(2)='Idvers-NR '" };
05423 static KmCommand _GEANT_RZ_MDIR = { &_GEANT_RZ_CDIR, "/GEANT/RZ/MDIR", "MDIR",
05424 0, 2, 2, 1, _GEANT_RZ_MDIR_parameters, 0, 0, gxrz_, (IntFunc*)0,
05425 (SUBROUTINE*)0, (pCharFunc*)0, 4, _GEANT_RZ_MDIR_guidance, 0, (char**)0, 0,
05426 (char**)0, 0, (char**)0, (char*)0, (int*)0 };
05427
05428 static KmParInt _GEANT_RZ_REND_LUNRZ_type = { (char*)0, (char*)0, (char*)0,
05429 (char*)0, 0 };
05430 static KmParameter _GEANT_RZ_REND_LUNRZ = { "LUNRZ", 5, "Logical unit number",
05431 (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
05432 &_GEANT_RZ_REND_LUNRZ_type };
05433 static KmParameter *_GEANT_RZ_REND_parameters[] = { &_GEANT_RZ_REND_LUNRZ };
05434 static char *_GEANT_RZ_REND_guidance[] = {
05435 "Close an RZ file opened by GRFILE on logical unit LUNRZ.",
05436 " CALL GREND(LUNRZ)" };
05437 static KmCommand _GEANT_RZ_REND = { &_GEANT_RZ_MDIR, "/GEANT/RZ/REND", "REND",
05438 0, 2, 1, 1, _GEANT_RZ_REND_parameters, 0, 0, gxrz_, (IntFunc*)0,
05439 (SUBROUTINE*)0, (pCharFunc*)0, 2, _GEANT_RZ_REND_guidance, 0, (char**)0, 0,
05440 (char**)0, 0, (char**)0, (char*)0, (int*)0 };
05441
05442 static KmParInt _GEANT_RZ_FILE_LUN_type = { (char*)0, (char*)0, (char*)0,
05443 (char*)0, 0 };
05444 static KmParameter _GEANT_RZ_FILE_LUN = { "LUN", 3, "Logical unit number",
05445 (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
05446 &_GEANT_RZ_FILE_LUN_type };
05447 static KmParameter _GEANT_RZ_FILE_FNAME = { "FNAME", 5, "File name", (char*)0,
05448 (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
05449 (void*)0 };
05450 static char *_GEANT_RZ_FILE_CHOPT_range[] = { " ", "A", "N", "U" };
05451 static char *_GEANT_RZ_FILE_CHOPT_text[] = { (char*)0, (char*)0, (char*)0,
05452 (char*)0 };
05453 static KmParOption _GEANT_RZ_FILE_CHOPT_type = { _GEANT_RZ_FILE_CHOPT_text,
05454 (int*)0, (int*)0 };
05455 static KmParameter _GEANT_RZ_FILE_CHOPT = { "CHOPT", 5, "Options", " ",
05456 (char*)0, 8, 4, _GEANT_RZ_FILE_CHOPT_range, 4, _GEANT_RZ_FILE_CHOPT_range,
05457 (KmParFlag)0, KmTYPE_OPTION, &_GEANT_RZ_FILE_CHOPT_type };
05458 static KmParameter *_GEANT_RZ_FILE_parameters[] = { &_GEANT_RZ_FILE_LUN,
05459 &_GEANT_RZ_FILE_FNAME, &_GEANT_RZ_FILE_CHOPT };
05460 static char *_GEANT_RZ_FILE_guidance[] = { "Open a GRZ file.",
05461 " CHOPT=' ' readonly mode", " CHOPT='U' update mode",
05462 " CHOPT='N' create new file",
05463 " CHOPT='I' Read all structures from existing file",
05464 " CHOPT='O' Write all structures on file" };
05465 static KmCommand _GEANT_RZ_FILE = { &_GEANT_RZ_REND, "/GEANT/RZ/FILE", "FILE",
05466 0, 2, 3, 2, _GEANT_RZ_FILE_parameters, 0, 0, gxrz_, (IntFunc*)0,
05467 (SUBROUTINE*)0, (pCharFunc*)0, 6, _GEANT_RZ_FILE_guidance, 0, (char**)0, 0,
05468 (char**)0, 0, (char**)0, (char*)0, (int*)0 };
05469
05470 static KmParInt _GEANT_RZ_PQUEST_IQ1_type = { (char*)0, (char*)0, (char*)0,
05471 (char*)0, 0 };
05472 static KmParameter _GEANT_RZ_PQUEST_IQ1 = { "IQ1", 3,
05473 "Lower limit for IQ index", "1", (char*)0, 8, 0, (char**)0, 0, (char**)0,
05474 (KmParFlag)0, KmTYPE_INT, &_GEANT_RZ_PQUEST_IQ1_type };
05475 static KmParInt _GEANT_RZ_PQUEST_IQ2_type = { (char*)0, (char*)0, (char*)0,
05476 (char*)0, 0 };
05477 static KmParameter _GEANT_RZ_PQUEST_IQ2 = { "IQ2", 3,
05478 "Upper limit for IQ index", "20", (char*)0, 8, 0, (char**)0, 0, (char**)0,
05479 (KmParFlag)0, KmTYPE_INT, &_GEANT_RZ_PQUEST_IQ2_type };
05480 static KmParameter *_GEANT_RZ_PQUEST_parameters[] = { &_GEANT_RZ_PQUEST_IQ1,
05481 &_GEANT_RZ_PQUEST_IQ2 };
05482 static char *_GEANT_RZ_PQUEST_guidance[] = {
05483 "Print the array IQUEST in /QUEST/." };
05484 static KmCommand _GEANT_RZ_PQUEST = { &_GEANT_RZ_FILE, "/GEANT/RZ/PQUEST",
05485 "PQUEST", 0, 2, 2, 0, _GEANT_RZ_PQUEST_parameters, 0, 0, gxrz_, (IntFunc*)0,
05486 (SUBROUTINE*)0, (pCharFunc*)0, 1, _GEANT_RZ_PQUEST_guidance, 0, (char**)0, 0,
05487 (char**)0, 0, (char**)0, (char*)0, (int*)0 };
05488
05489 static char *_GEANT_RZ_guidance[] = { "ZEBRA/RZ commands." };
05490 static KmMenu _GEANT_RZ = { (KmMenu*)0, (KmMenu*)0, "/GEANT/RZ", "RZ", 2,
05491 &_GEANT_RZ_PQUEST, 1, _GEANT_RZ_guidance, 0, (char**)0, 0, (char**)0 };
05492
05493 static KmMenu _GEANT = { (KmMenu*)0, &_GEANT_RZ, "/GEANT", "GEANT", 1,
05494 (KmCommand*)0, 0, (char**)0, 0, (char**)0, 0, (char**)0 };
05495
05496 klnkmenu( &_GEANT, 950303 );
05497 }
05498
05499
05500 #ifdef F77_LCASE
05501 # define gkscan_ gkscan
05502 # define gxscan_ gxscan
05503 #endif
05504
05505 #ifdef F77_UCASE
05506 # define gkscan_ GKSCAN
05507 # define gxscan_ GXSCAN
05508 #endif
05509
05510 #ifdef IBM370
05511 # pragma linkage(GKSCAN,FORTRAN)
05512 # pragma linkage(GXSCAN,FORTRAN)
05513 #endif
05514
05515 extern void gkscan_();
05516 extern void gxscan_();
05517
05518 void gkscan_()
05519 {
05520
05521 static KmParInt _GEANT_SCAN_HSCAN_IDPHI_type = { (char*)0, (char*)0,
05522 (char*)0, (char*)0, 0 };
05523 static KmParameter _GEANT_SCAN_HSCAN_IDPHI = { "IDPHI", 5,
05524 "Histogram/phi identifier", "1000", (char*)0, 8, 0, (char**)0, 0, (char**)0,
05525 (KmParFlag)0, KmTYPE_INT, &_GEANT_SCAN_HSCAN_IDPHI_type };
05526 static KmParameter _GEANT_SCAN_HSCAN_VOLUME = { "VOLUME", 6, "Volume name",
05527 "XXXX", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
05528 (void*)0 };
05529 static char *_GEANT_SCAN_HSCAN_CHOPT_range[] = { " ", "O", "P", "I", "X", "L"
05530 };
05531 static char *_GEANT_SCAN_HSCAN_CHOPT_text[] = { (char*)0, (char*)0, (char*)0,
05532 (char*)0, (char*)0, (char*)0 };
05533 static KmParOption _GEANT_SCAN_HSCAN_CHOPT_type = {
05534 _GEANT_SCAN_HSCAN_CHOPT_text, (int*)0, (int*)0 };
05535 static KmParameter _GEANT_SCAN_HSCAN_CHOPT = { "CHOPT", 5, "List of options",
05536 "OPX", (char*)0, 8, 6, _GEANT_SCAN_HSCAN_CHOPT_range, 6,
05537 _GEANT_SCAN_HSCAN_CHOPT_range, (KmParFlag)0, KmTYPE_OPTION,
05538 &_GEANT_SCAN_HSCAN_CHOPT_type };
05539 static KmParameter *_GEANT_SCAN_HSCAN_parameters[] = {
05540 &_GEANT_SCAN_HSCAN_IDPHI, &_GEANT_SCAN_HSCAN_VOLUME, &_GEANT_SCAN_HSCAN_CHOPT
05541 };
05542 static char *_GEANT_SCAN_HSCAN_guidance[] = {
05543 "Generates and plots an histogram of physics quantities such as",
05544 "the total number of radiation lengths or interaction lengths",
05545 "as a function of the SCAN parameter TETA for a given value of PHI.",
05546 " CHOPT='O' histogram is generated at Exit of VOLUME.",
05547 " CHOPT='I' histogram is generated at Entry of VOLUME.",
05548 " CHOPT='X' radiation lengths", " CHOPT='L' Interaction lengths",
05549 " CHOPT='P' Plot the histogram", "If VOLUME='XXXX' Mother volume is used.",
05550 "The histogram identifier IDPHI is used to also identify which",
05551 "PHI division to plot: IPHI=MOD(IDPHI,1000).",
05552 "If IPHI=0, then all PHI divisions are generated (not plotted)",
05553 "with histogram identifiers IDPHI+PHI division number." };
05554 static KmCommand _GEANT_SCAN_HSCAN = { (KmCommand*)0, "/GEANT/SCAN/HSCAN",
05555 "HSCAN", 0, 2, 3, 1, _GEANT_SCAN_HSCAN_parameters, 0, 0, gxscan_,
05556 (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 13, _GEANT_SCAN_HSCAN_guidance,
05557 0, (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
05558
05559 static KmParInt _GEANT_SCAN_LSCAN_ID_type = { (char*)0, (char*)0, (char*)0,
05560 (char*)0, 0 };
05561 static KmParameter _GEANT_SCAN_LSCAN_ID = { "ID", 2, "Lego plot identifier",
05562 "2000", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
05563 &_GEANT_SCAN_LSCAN_ID_type };
05564 static KmParameter _GEANT_SCAN_LSCAN_VOLUME = { "VOLUME", 6, "Volume name",
05565 "XXXX", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
05566 (void*)0 };
05567 static char *_GEANT_SCAN_LSCAN_CHOPT_range[] = { " ", "O", "P", "I", "X", "L"
05568 };
05569 static char *_GEANT_SCAN_LSCAN_CHOPT_text[] = { (char*)0, (char*)0, (char*)0,
05570 (char*)0, (char*)0, (char*)0 };
05571 static KmParOption _GEANT_SCAN_LSCAN_CHOPT_type = {
05572 _GEANT_SCAN_LSCAN_CHOPT_text, (int*)0, (int*)0 };
05573 static KmParameter _GEANT_SCAN_LSCAN_CHOPT = { "CHOPT", 5, "List of options",
05574 "OPX", (char*)0, 8, 6, _GEANT_SCAN_LSCAN_CHOPT_range, 6,
05575 _GEANT_SCAN_LSCAN_CHOPT_range, (KmParFlag)0, KmTYPE_OPTION,
05576 &_GEANT_SCAN_LSCAN_CHOPT_type };
05577 static KmParameter *_GEANT_SCAN_LSCAN_parameters[] = { &_GEANT_SCAN_LSCAN_ID,
05578 &_GEANT_SCAN_LSCAN_VOLUME, &_GEANT_SCAN_LSCAN_CHOPT };
05579 static char *_GEANT_SCAN_LSCAN_guidance[] = {
05580 "Generates and plot a table of physics quantities such as",
05581 "the total number of radiation lengths or interaction lengths",
05582 "in function of the SCAN parameters TETA,PHI.",
05583 " CHOPT='O' table is generated at Exit of VOLUME.",
05584 " CHOPT='I' table is generated at Entry of VOLUME.",
05585 " CHOPT='X' radiation lengths", " CHOPT='L' Interaction lengths",
05586 " CHOPT='P' Plot the table", "If VOLUME='XXXX' Mother volume is used." };
05587 static KmCommand _GEANT_SCAN_LSCAN = { &_GEANT_SCAN_HSCAN,
05588 "/GEANT/SCAN/LSCAN", "LSCAN", 0, 2, 3, 1, _GEANT_SCAN_LSCAN_parameters, 0, 0,
05589 gxscan_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 9,
05590 _GEANT_SCAN_LSCAN_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
05591 (char*)0, (int*)0 };
05592
05593 static KmParInt _GEANT_SCAN_PCUTS_IPARAM_type = { "0", "1", "0", "1", 0 };
05594 static KmParameter _GEANT_SCAN_PCUTS_IPARAM = { "IPARAM", 6,
05595 "Parametrization Flag", (char*)0, (char*)0, 2, 0, (char**)0, 0, (char**)0,
05596 (KmParFlag)0, KmTYPE_INT, &_GEANT_SCAN_PCUTS_IPARAM_type };
05597 static KmParReal _GEANT_SCAN_PCUTS_PCUTGA_type = { (char*)0, (char*)0,
05598 (char*)0, (char*)0, 0 };
05599 static KmParameter _GEANT_SCAN_PCUTS_PCUTGA = { "PCUTGA", 6,
05600 "Parametrization Cut for gammas", (char*)0, (char*)0, 12, 0, (char**)0, 0,
05601 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_SCAN_PCUTS_PCUTGA_type };
05602 static KmParReal _GEANT_SCAN_PCUTS_PCUTEL_type = { (char*)0, (char*)0,
05603 (char*)0, (char*)0, 0 };
05604 static KmParameter _GEANT_SCAN_PCUTS_PCUTEL = { "PCUTEL", 6,
05605 "Parametrization Cut for electrons", (char*)0, (char*)0, 12, 0, (char**)0, 0,
05606 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_SCAN_PCUTS_PCUTEL_type };
05607 static KmParReal _GEANT_SCAN_PCUTS_PCUTHA_type = { (char*)0, (char*)0,
05608 (char*)0, (char*)0, 0 };
05609 static KmParameter _GEANT_SCAN_PCUTS_PCUTHA = { "PCUTHA", 6,
05610 "Parametrization Cut for charged hadrons", (char*)0, (char*)0, 12, 0,
05611 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
05612 &_GEANT_SCAN_PCUTS_PCUTHA_type };
05613 static KmParReal _GEANT_SCAN_PCUTS_PCUTNE_type = { (char*)0, (char*)0,
05614 (char*)0, (char*)0, 0 };
05615 static KmParameter _GEANT_SCAN_PCUTS_PCUTNE = { "PCUTNE", 6,
05616 "Parametrization Cut for neutral hadrons", (char*)0, (char*)0, 12, 0,
05617 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
05618 &_GEANT_SCAN_PCUTS_PCUTNE_type };
05619 static KmParReal _GEANT_SCAN_PCUTS_PCUTMU_type = { (char*)0, (char*)0,
05620 (char*)0, (char*)0, 0 };
05621 static KmParameter _GEANT_SCAN_PCUTS_PCUTMU = { "PCUTMU", 6,
05622 "Parametrization Cut for muons", (char*)0, (char*)0, 12, 0, (char**)0, 0,
05623 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_SCAN_PCUTS_PCUTMU_type };
05624 static KmParameter *_GEANT_SCAN_PCUTS_parameters[] = {
05625 &_GEANT_SCAN_PCUTS_IPARAM, &_GEANT_SCAN_PCUTS_PCUTGA,
05626 &_GEANT_SCAN_PCUTS_PCUTEL, &_GEANT_SCAN_PCUTS_PCUTHA,
05627 &_GEANT_SCAN_PCUTS_PCUTNE, &_GEANT_SCAN_PCUTS_PCUTMU };
05628 static char *_GEANT_SCAN_PCUTS_guidance[] = {
05629 "Control parametrization at tracking time.",
05630 " IPARAM=0 No parametrization is performed",
05631 " IPARAM=1 Parametrization is performed",
05632 "If parametrization is active and a particle falls below its",
05633 "parametrization cut, then the particle will be replaced by",
05634 "a parametrized shower which will be tracked in the SCAN", "geometry." };
05635 static KmCommand _GEANT_SCAN_PCUTS = { &_GEANT_SCAN_LSCAN,
05636 "/GEANT/SCAN/PCUTS", "PCUTS", 0, 2, 6, 0, _GEANT_SCAN_PCUTS_parameters, 0, 0,
05637 gxscan_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 7,
05638 _GEANT_SCAN_PCUTS_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
05639 (char*)0, (int*)0 };
05640
05641 static char *_GEANT_SCAN_STURN_CHOPT_range[] = { "ON", "OFF", "INIT" };
05642 static char *_GEANT_SCAN_STURN_CHOPT_text[] = { (char*)0, (char*)0, (char*)0 };
05643 static KmParOption _GEANT_SCAN_STURN_CHOPT_type = {
05644 _GEANT_SCAN_STURN_CHOPT_text, (int*)0, (int*)0 };
05645 static KmParameter _GEANT_SCAN_STURN_CHOPT = { "CHOPT", 5,
05646 "SCAN mode setting", (char*)0, (char*)0, 8, 3, _GEANT_SCAN_STURN_CHOPT_range,
05647 3, _GEANT_SCAN_STURN_CHOPT_range, (KmParFlag)0, KmTYPE_OPTION,
05648 &_GEANT_SCAN_STURN_CHOPT_type };
05649 static KmParameter *_GEANT_SCAN_STURN_parameters[] = {
05650 &_GEANT_SCAN_STURN_CHOPT };
05651 static char *_GEANT_SCAN_STURN_guidance[] = {
05652 "Switch on/off SCAN mode. If SCAN mode is on, SCAN geantinos",
05653 "are generated and tracked to fill (or complete) the current",
05654 "scan data structure. If SCAN mode is off, normal kinematics",
05655 "generation and tracking will take place. If INIT is given,",
05656 "the current SCAN data structure (if any) will be dropped",
05657 "and SCAN mode will be turned on." };
05658 static KmCommand _GEANT_SCAN_STURN = { &_GEANT_SCAN_PCUTS,
05659 "/GEANT/SCAN/STURN", "STURN", 0, 2, 1, 1, _GEANT_SCAN_STURN_parameters, 0, 0,
05660 gxscan_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 6,
05661 _GEANT_SCAN_STURN_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
05662 (char*)0, (int*)0 };
05663
05664 static KmParReal _GEANT_SCAN_SFACTORS_FACTX0_type = { (char*)0, (char*)0,
05665 (char*)0, (char*)0, 0 };
05666 static KmParameter _GEANT_SCAN_SFACTORS_FACTX0 = { "FACTX0", 6,
05667 "Scale factor for SX0", "100.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
05668 (KmParFlag)0, KmTYPE_REAL, &_GEANT_SCAN_SFACTORS_FACTX0_type };
05669 static KmParReal _GEANT_SCAN_SFACTORS_FACTL_type = { (char*)0, (char*)0,
05670 (char*)0, (char*)0, 0 };
05671 static KmParameter _GEANT_SCAN_SFACTORS_FACTL = { "FACTL", 5,
05672 "Scale factor for SL", "1000.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
05673 (KmParFlag)0, KmTYPE_REAL, &_GEANT_SCAN_SFACTORS_FACTL_type };
05674 static KmParReal _GEANT_SCAN_SFACTORS_FACTR_type = { (char*)0, (char*)0,
05675 (char*)0, (char*)0, 0 };
05676 static KmParameter _GEANT_SCAN_SFACTORS_FACTR = { "FACTR", 5,
05677 "Scale factor for R", "100.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
05678 (KmParFlag)0, KmTYPE_REAL, &_GEANT_SCAN_SFACTORS_FACTR_type };
05679 static KmParameter *_GEANT_SCAN_SFACTORS_parameters[] = {
05680 &_GEANT_SCAN_SFACTORS_FACTX0, &_GEANT_SCAN_SFACTORS_FACTL,
05681 &_GEANT_SCAN_SFACTORS_FACTR };
05682 static char *_GEANT_SCAN_SFACTORS_guidance[] = {
05683 "Set scale factors for SX0,SL and R. The given scale factors must be",
05684 "such that:", " SX0*FACTX0 < 2**15-1 (32767)",
05685 " SL*FACTL < 2**10-1 (1023)", " SR*FACTR < 2**17-1 (131071)" };
05686 static KmCommand _GEANT_SCAN_SFACTORS = { &_GEANT_SCAN_STURN,
05687 "/GEANT/SCAN/SFACTORS", "SFACTORS", 0, 2, 3, 3,
05688 _GEANT_SCAN_SFACTORS_parameters, 0, 0, gxscan_, (IntFunc*)0, (SUBROUTINE*)0,
05689 (pCharFunc*)0, 5, _GEANT_SCAN_SFACTORS_guidance, 0, (char**)0, 0, (char**)0,
05690 0, (char**)0, (char*)0, (int*)0 };
05691
05692 static KmParReal _GEANT_SCAN_VERTEX_VX_type = { (char*)0, (char*)0,
05693 (char*)0, (char*)0, 0 };
05694 static KmParameter _GEANT_SCAN_VERTEX_VX = { "VX", 2, "Scan X-origin", "0.",
05695 (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
05696 &_GEANT_SCAN_VERTEX_VX_type };
05697 static KmParReal _GEANT_SCAN_VERTEX_VY_type = { (char*)0, (char*)0,
05698 (char*)0, (char*)0, 0 };
05699 static KmParameter _GEANT_SCAN_VERTEX_VY = { "VY", 2, "Scan Y-origin", "0.",
05700 (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
05701 &_GEANT_SCAN_VERTEX_VY_type };
05702 static KmParReal _GEANT_SCAN_VERTEX_VZ_type = { (char*)0, (char*)0,
05703 (char*)0, (char*)0, 0 };
05704 static KmParameter _GEANT_SCAN_VERTEX_VZ = { "VZ", 2, "Scan Z-origin", "0.",
05705 (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
05706 &_GEANT_SCAN_VERTEX_VZ_type };
05707 static KmParameter *_GEANT_SCAN_VERTEX_parameters[] = {
05708 &_GEANT_SCAN_VERTEX_VX, &_GEANT_SCAN_VERTEX_VY, &_GEANT_SCAN_VERTEX_VZ };
05709 static char *_GEANT_SCAN_VERTEX_guidance[] = {
05710 "All Geantinos tracked will start from position VX,VY,VZ." };
05711 static KmCommand _GEANT_SCAN_VERTEX = { &_GEANT_SCAN_SFACTORS,
05712 "/GEANT/SCAN/VERTEX", "VERTEX", 0, 2, 3, 3, _GEANT_SCAN_VERTEX_parameters, 0,
05713 0, gxscan_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
05714 _GEANT_SCAN_VERTEX_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
05715 (char*)0, (int*)0 };
05716
05717 static KmParameter _GEANT_SCAN_SLIST_LIST = { "LIST", 4,
05718 "List of master volumes", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
05719 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
05720 static KmParameter *_GEANT_SCAN_SLIST_parameters[] = { &_GEANT_SCAN_SLIST_LIST
05721 };
05722 static char *_GEANT_SCAN_SLIST_guidance[] = {
05723 "Only boundary crossings of volumes given in LIST will be seen",
05724 "in the SCAN geometry. If no parameters are given, the current",
05725 "SCAN volumes will be listed. If a full stop (.) is given, the list",
05726 "of scan volumes will be erased." };
05727 static KmCommand _GEANT_SCAN_SLIST = { &_GEANT_SCAN_VERTEX,
05728 "/GEANT/SCAN/SLIST", "SLIST", 0, 2, 1, 1, _GEANT_SCAN_SLIST_parameters, 0, 0,
05729 gxscan_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
05730 _GEANT_SCAN_SLIST_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
05731 (char*)0, (int*)0 };
05732
05733 static KmParInt _GEANT_SCAN_TETA_NTETA_type = { (char*)0, (char*)0,
05734 (char*)0, (char*)0, 0 };
05735 static KmParameter _GEANT_SCAN_TETA_NTETA = { "NTETA", 5,
05736 "Number of TETA divisions", "90", (char*)0, 8, 0, (char**)0, 0, (char**)0,
05737 (KmParFlag)0, KmTYPE_INT, &_GEANT_SCAN_TETA_NTETA_type };
05738 static KmParReal _GEANT_SCAN_TETA_TETMIN_type = { (char*)0, (char*)0,
05739 (char*)0, (char*)0, 0 };
05740 static KmParameter _GEANT_SCAN_TETA_TETMIN = { "TETMIN", 6,
05741 "Minimum value of TETA", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
05742 (KmParFlag)0, KmTYPE_REAL, &_GEANT_SCAN_TETA_TETMIN_type };
05743 static KmParReal _GEANT_SCAN_TETA_TETMAX_type = { (char*)0, (char*)0,
05744 (char*)0, (char*)0, 0 };
05745 static KmParameter _GEANT_SCAN_TETA_TETMAX = { "TETMAX", 6,
05746 "Maximum value of TETA", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
05747 (KmParFlag)0, KmTYPE_REAL, &_GEANT_SCAN_TETA_TETMAX_type };
05748 static KmParInt _GEANT_SCAN_TETA_DIVTYP_type = { "1", "3", "1", "3", 0 };
05749 static KmParameter _GEANT_SCAN_TETA_DIVTYP = { "DIVTYP", 6,
05750 "Type of TETA division", (char*)0, (char*)0, 2, 0, (char**)0, 0, (char**)0,
05751 (KmParFlag)0, KmTYPE_INT, &_GEANT_SCAN_TETA_DIVTYP_type };
05752 static KmParameter *_GEANT_SCAN_TETA_parameters[] = { &_GEANT_SCAN_TETA_NTETA,
05753 &_GEANT_SCAN_TETA_TETMIN, &_GEANT_SCAN_TETA_TETMAX, &_GEANT_SCAN_TETA_DIVTYP
05754 };
05755 static char *_GEANT_SCAN_TETA_guidance[] = {
05756 "To specify number of divisions along TETA.",
05757 "If DIVTYP=1 divisions in pseudo-rapidity ETA.",
05758 "If DIVTYP=2 divisions in degrees following the THETA angle.",
05759 "If DIVTYP=3 divisions in cos(TETA).",
05760 "If no parameter is given, the current values of the parameters",
05761 "are displayed." };
05762 static KmCommand _GEANT_SCAN_TETA = { &_GEANT_SCAN_SLIST, "/GEANT/SCAN/TETA",
05763 "TETA", 0, 2, 4, 1, _GEANT_SCAN_TETA_parameters, 0, 0, gxscan_, (IntFunc*)0,
05764 (SUBROUTINE*)0, (pCharFunc*)0, 6, _GEANT_SCAN_TETA_guidance, 0, (char**)0, 0,
05765 (char**)0, 0, (char**)0, (char*)0, (int*)0 };
05766
05767 static KmParInt _GEANT_SCAN_PHI_NPHI_type = { (char*)0, (char*)0, (char*)0,
05768 (char*)0, 0 };
05769 static KmParameter _GEANT_SCAN_PHI_NPHI = { "NPHI", 4,
05770 "Number of PHI divisions", "90", (char*)0, 8, 0, (char**)0, 0, (char**)0,
05771 (KmParFlag)0, KmTYPE_INT, &_GEANT_SCAN_PHI_NPHI_type };
05772 static KmParReal _GEANT_SCAN_PHI_PHIMIN_type = { "0.", "360.", "0.", "360.",
05773 0 };
05774 static KmParameter _GEANT_SCAN_PHI_PHIMIN = { "PHIMIN", 6,
05775 "Minimum PHI in degrees", "0.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
05776 (KmParFlag)0, KmTYPE_REAL, &_GEANT_SCAN_PHI_PHIMIN_type };
05777 static KmParReal _GEANT_SCAN_PHI_PHIMAX_type = { "0.", "360.", "0.", "360.",
05778 0 };
05779 static KmParameter _GEANT_SCAN_PHI_PHIMAX = { "PHIMAX", 6,
05780 "Maximum PHI in degrees", "360.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
05781 (KmParFlag)0, KmTYPE_REAL, &_GEANT_SCAN_PHI_PHIMAX_type };
05782 static KmParameter *_GEANT_SCAN_PHI_parameters[] = { &_GEANT_SCAN_PHI_NPHI,
05783 &_GEANT_SCAN_PHI_PHIMIN, &_GEANT_SCAN_PHI_PHIMAX };
05784 static char *_GEANT_SCAN_PHI_guidance[] = {
05785 "To specify number of divisions along PHI. If no parameter is",
05786 "given, the current values of the parameters are displayed." };
05787 static KmCommand _GEANT_SCAN_PHI = { &_GEANT_SCAN_TETA, "/GEANT/SCAN/PHI",
05788 "PHI", 0, 2, 3, 1, _GEANT_SCAN_PHI_parameters, 0, 0, gxscan_, (IntFunc*)0,
05789 (SUBROUTINE*)0, (pCharFunc*)0, 2, _GEANT_SCAN_PHI_guidance, 0, (char**)0, 0,
05790 (char**)0, 0, (char**)0, (char*)0, (int*)0 };
05791
05792 static char *_GEANT_SCAN_guidance[] = {
05793 "To define parameters for the SCAN geometry. If the routine GUSTEP",
05794 "and GUKINE are properly instrumented (see examples in GEANX),",
05795 "when the TRI command is entered NTETA Geantinos will be",
05796 "tracked through the real detector starting at the vertex position",
05797 "defined by the command vertex. A simplified version of the geometry",
05798 "is automatically generated in (ETA,PHI) or (THETA,PHI) following",
05799 "the option given in the command TETA. The data structure LSCAN",
05800 "generated may be saved on an RZ file for subsequent processing.",
05801 "This data structure may be used for fast parametrization techniques." };
05802 static KmMenu _GEANT_SCAN = { (KmMenu*)0, (KmMenu*)0, "/GEANT/SCAN", "SCAN",
05803 2, &_GEANT_SCAN_PHI, 9, _GEANT_SCAN_guidance, 0, (char**)0, 0, (char**)0 };
05804
05805 static KmMenu _GEANT = { (KmMenu*)0, &_GEANT_SCAN, "/GEANT", "GEANT", 1,
05806 (KmCommand*)0, 0, (char**)0, 0, (char**)0, 0, (char**)0 };
05807
05808 klnkmenu( &_GEANT, 950303 );
05809 }
05810
05811
05812 #ifdef F77_LCASE
05813 # define gkphys_ gkphys
05814 # define gxphys_ gxphys
05815 #endif
05816
05817 #ifdef F77_UCASE
05818 # define gkphys_ GKPHYS
05819 # define gxphys_ GXPHYS
05820 #endif
05821
05822 #ifdef IBM370
05823 # pragma linkage(GKPHYS,FORTRAN)
05824 # pragma linkage(GXPHYS,FORTRAN)
05825 #endif
05826
05827 extern void gkphys_();
05828 extern void gxphys_();
05829
05830 void gkphys_()
05831 {
05832
05833 static char *_GEANT_PHYSICS_PHYSI_guidance[] = {
05834 "Call the GEANT initialisation routine GPHYSI to recompute",
05835 "the tables of cross-sections and energy loss. This command",
05836 "must be invoked after CUTS, LOSS or ERAN commands." };
05837 static KmCommand _GEANT_PHYSICS_PHYSI = { (KmCommand*)0,
05838 "/GEANT/PHYSICS/PHYSI", "PHYSI", 0, 2, 0, 0, (KmParameter**)0, 0, 0, gxphys_,
05839 (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_PHYSICS_PHYSI_guidance,
05840 0, (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
05841
05842 static KmParInt _GEANT_PHYSICS_DRPRT_IPART_type = { (char*)0, (char*)0,
05843 (char*)0, (char*)0, 0 };
05844 static KmParameter _GEANT_PHYSICS_DRPRT_IPART = { "IPART", 5,
05845 "GEANT particle number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
05846 (KmParFlag)0, KmTYPE_INT, &_GEANT_PHYSICS_DRPRT_IPART_type };
05847 static KmParInt _GEANT_PHYSICS_DRPRT_IMATE_type = { (char*)0, (char*)0,
05848 (char*)0, (char*)0, 0 };
05849 static KmParameter _GEANT_PHYSICS_DRPRT_IMATE = { "IMATE", 5,
05850 "GEANT material number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
05851 (KmParFlag)0, KmTYPE_INT, &_GEANT_PHYSICS_DRPRT_IMATE_type };
05852 static KmParReal _GEANT_PHYSICS_DRPRT_STEP_type = { (char*)0, (char*)0,
05853 (char*)0, (char*)0, 0 };
05854 static KmParameter _GEANT_PHYSICS_DRPRT_STEP = { "STEP", 4,
05855 "step length in centimeters", (char*)0, (char*)0, 12, 0, (char**)0, 0,
05856 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_DRPRT_STEP_type };
05857 static KmParInt _GEANT_PHYSICS_DRPRT_NPOINT_type = { "2", "100", "2",
05858 "100", 0 };
05859 static KmParameter _GEANT_PHYSICS_DRPRT_NPOINT = { "NPOINT", 6,
05860 "number of logarithmically spaced energy points", "10", (char*)0, 4, 0,
05861 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
05862 &_GEANT_PHYSICS_DRPRT_NPOINT_type };
05863 static KmParameter *_GEANT_PHYSICS_DRPRT_parameters[] = {
05864 &_GEANT_PHYSICS_DRPRT_IPART, &_GEANT_PHYSICS_DRPRT_IMATE,
05865 &_GEANT_PHYSICS_DRPRT_STEP, &_GEANT_PHYSICS_DRPRT_NPOINT };
05866 static char *_GEANT_PHYSICS_DRPRT_guidance[] = {
05867 "This routine prints the relevant parameters linked with the energy loss",
05868 "fluctuation." };
05869 static KmCommand _GEANT_PHYSICS_DRPRT = { &_GEANT_PHYSICS_PHYSI,
05870 "/GEANT/PHYSICS/DRPRT", "DRPRT", 0, 2, 4, 3, _GEANT_PHYSICS_DRPRT_parameters,
05871 0, 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 2,
05872 _GEANT_PHYSICS_DRPRT_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
05873 (char*)0, (int*)0 };
05874
05875 static KmParReal _GEANT_PHYSICS_CUTS_CUTGAM_type = { (char*)0, (char*)0,
05876 (char*)0, (char*)0, 0 };
05877 static KmParameter _GEANT_PHYSICS_CUTS_CUTGAM = { "CUTGAM", 6,
05878 "Cut for gammas", "0.001", (char*)0, 12, 0, (char**)0, 0, (char**)0,
05879 (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_CUTS_CUTGAM_type };
05880 static KmParReal _GEANT_PHYSICS_CUTS_CUTELE_type = { (char*)0, (char*)0,
05881 (char*)0, (char*)0, 0 };
05882 static KmParameter _GEANT_PHYSICS_CUTS_CUTELE = { "CUTELE", 6,
05883 "Cut for electrons", "0.001", (char*)0, 12, 0, (char**)0, 0, (char**)0,
05884 (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_CUTS_CUTELE_type };
05885 static KmParReal _GEANT_PHYSICS_CUTS_CUTHAD_type = { (char*)0, (char*)0,
05886 (char*)0, (char*)0, 0 };
05887 static KmParameter _GEANT_PHYSICS_CUTS_CUTHAD = { "CUTHAD", 6,
05888 "Cut for charged hadrons", "0.01", (char*)0, 12, 0, (char**)0, 0, (char**)0,
05889 (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_CUTS_CUTHAD_type };
05890 static KmParReal _GEANT_PHYSICS_CUTS_CUTNEU_type = { (char*)0, (char*)0,
05891 (char*)0, (char*)0, 0 };
05892 static KmParameter _GEANT_PHYSICS_CUTS_CUTNEU = { "CUTNEU", 6,
05893 "Cut for neutral hadrons", "0.01", (char*)0, 12, 0, (char**)0, 0, (char**)0,
05894 (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_CUTS_CUTNEU_type };
05895 static KmParReal _GEANT_PHYSICS_CUTS_CUTMUO_type = { (char*)0, (char*)0,
05896 (char*)0, (char*)0, 0 };
05897 static KmParameter _GEANT_PHYSICS_CUTS_CUTMUO = { "CUTMUO", 6,
05898 "Cut for muons", "0.01", (char*)0, 12, 0, (char**)0, 0, (char**)0,
05899 (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_CUTS_CUTMUO_type };
05900 static KmParReal _GEANT_PHYSICS_CUTS_BCUTE_type = { (char*)0, (char*)0,
05901 (char*)0, (char*)0, 0 };
05902 static KmParameter _GEANT_PHYSICS_CUTS_BCUTE = { "BCUTE", 5,
05903 "Cut for electron brems.", "-1.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
05904 (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_CUTS_BCUTE_type };
05905 static KmParReal _GEANT_PHYSICS_CUTS_BCUTM_type = { (char*)0, (char*)0,
05906 (char*)0, (char*)0, 0 };
05907 static KmParameter _GEANT_PHYSICS_CUTS_BCUTM = { "BCUTM", 5,
05908 "Cut for muon brems.", "-1.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
05909 (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_CUTS_BCUTM_type };
05910 static KmParReal _GEANT_PHYSICS_CUTS_DCUTE_type = { (char*)0, (char*)0,
05911 (char*)0, (char*)0, 0 };
05912 static KmParameter _GEANT_PHYSICS_CUTS_DCUTE = { "DCUTE", 5,
05913 "Cut for electron delta-rays", "-1.", (char*)0, 12, 0, (char**)0, 0,
05914 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_CUTS_DCUTE_type };
05915 static KmParReal _GEANT_PHYSICS_CUTS_DCUTM_type = { (char*)0, (char*)0,
05916 (char*)0, (char*)0, 0 };
05917 static KmParameter _GEANT_PHYSICS_CUTS_DCUTM = { "DCUTM", 5,
05918 "Cut for muon delta-rays", "-1.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
05919 (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_CUTS_DCUTM_type };
05920 static KmParReal _GEANT_PHYSICS_CUTS_PPCUTM_type = { (char*)0, (char*)0,
05921 (char*)0, (char*)0, 0 };
05922 static KmParameter _GEANT_PHYSICS_CUTS_PPCUTM = { "PPCUTM", 6,
05923 "Cut for e+e- pairs by muons", "0.01", (char*)0, 12, 0, (char**)0, 0,
05924 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_CUTS_PPCUTM_type };
05925 static KmParReal _GEANT_PHYSICS_CUTS_TOFMAX_type = { (char*)0, (char*)0,
05926 (char*)0, (char*)0, 0 };
05927 static KmParameter _GEANT_PHYSICS_CUTS_TOFMAX = { "TOFMAX", 6,
05928 "Time of flight cut", "1.E+10", (char*)0, 12, 0, (char**)0, 0, (char**)0,
05929 (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_CUTS_TOFMAX_type };
05930 static KmParReal _GEANT_PHYSICS_CUTS_GCUTS_type = { (char*)0, (char*)0,
05931 (char*)0, (char*)0, 0 };
05932 static KmParameter _GEANT_PHYSICS_CUTS_GCUTS = { "GCUTS", 5, "5 user words",
05933 "0.", (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
05934 &_GEANT_PHYSICS_CUTS_GCUTS_type };
05935 static KmParameter *_GEANT_PHYSICS_CUTS_parameters[] = {
05936 &_GEANT_PHYSICS_CUTS_CUTGAM, &_GEANT_PHYSICS_CUTS_CUTELE,
05937 &_GEANT_PHYSICS_CUTS_CUTHAD, &_GEANT_PHYSICS_CUTS_CUTNEU,
05938 &_GEANT_PHYSICS_CUTS_CUTMUO, &_GEANT_PHYSICS_CUTS_BCUTE,
05939 &_GEANT_PHYSICS_CUTS_BCUTM, &_GEANT_PHYSICS_CUTS_DCUTE,
05940 &_GEANT_PHYSICS_CUTS_DCUTM, &_GEANT_PHYSICS_CUTS_PPCUTM,
05941 &_GEANT_PHYSICS_CUTS_TOFMAX, &_GEANT_PHYSICS_CUTS_GCUTS };
05942 static char *_GEANT_PHYSICS_CUTS_guidance[] = {
05943 "To change physics cuts. If no parameter is given, the list",
05944 "of the current cuts is printed.",
05945 " If the default values (-1.) for BCUTE ,BCUTM ,DCUTE ,DCUTM",
05946 " are not modified, they will be set to CUTGAM,CUTGAM,CUTELE,CUTELE",
05947 " respectively.", "If one of the parameters from CUTGAM to PPCUTM included",
05948 "is modified, cross-sections and energy loss tables must be",
05949 "recomputed via the command 'PHYSI'." };
05950 static KmCommand _GEANT_PHYSICS_CUTS = { &_GEANT_PHYSICS_DRPRT,
05951 "/GEANT/PHYSICS/CUTS", "CUTS", 0, 2, 12, 0, _GEANT_PHYSICS_CUTS_parameters,
05952 0, 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 8,
05953 _GEANT_PHYSICS_CUTS_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
05954 (char*)0, (int*)0 };
05955
05956 static char *_GEANT_PHYSICS_SYNC_ISYNC_range[] = { "0", "1" };
05957 static KmParInt _GEANT_PHYSICS_SYNC_ISYNC_type = { (char*)0, (char*)0,
05958 (char*)0, (char*)0, 0 };
05959 static KmParameter _GEANT_PHYSICS_SYNC_ISYNC = { "ISYNC", 5, "Flag ISYNC",
05960 "1", (char*)0, 8, 2, _GEANT_PHYSICS_SYNC_ISYNC_range, 2,
05961 _GEANT_PHYSICS_SYNC_ISYNC_range, (KmParFlag)0, KmTYPE_INT,
05962 &_GEANT_PHYSICS_SYNC_ISYNC_type };
05963 static KmParameter *_GEANT_PHYSICS_SYNC_parameters[] = {
05964 &_GEANT_PHYSICS_SYNC_ISYNC };
05965 static char *_GEANT_PHYSICS_SYNC_guidance[] = {
05966 "To control synchrotron radiation:", " ISYNC=0 no synchrotron radiation;",
05967 " =1 synchrotron radiation." };
05968 static KmCommand _GEANT_PHYSICS_SYNC = { &_GEANT_PHYSICS_CUTS,
05969 "/GEANT/PHYSICS/SYNC", "SYNC", 0, 2, 1, 0, _GEANT_PHYSICS_SYNC_parameters, 0,
05970 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
05971 _GEANT_PHYSICS_SYNC_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
05972 (char*)0, (int*)0 };
05973
05974 static char *_GEANT_PHYSICS_STRA_ISTRA_range[] = { "0", "1", "2" };
05975 static KmParInt _GEANT_PHYSICS_STRA_ISTRA_type = { (char*)0, (char*)0,
05976 (char*)0, (char*)0, 0 };
05977 static KmParameter _GEANT_PHYSICS_STRA_ISTRA = { "ISTRA", 5, "Flag ISTRA",
05978 "0", (char*)0, 8, 3, _GEANT_PHYSICS_STRA_ISTRA_range, 3,
05979 _GEANT_PHYSICS_STRA_ISTRA_range, (KmParFlag)0, KmTYPE_INT,
05980 &_GEANT_PHYSICS_STRA_ISTRA_type };
05981 static KmParameter *_GEANT_PHYSICS_STRA_parameters[] = {
05982 &_GEANT_PHYSICS_STRA_ISTRA };
05983 static char *_GEANT_PHYSICS_STRA_guidance[] = {
05984 "To control energy loss fluctuation model:", " ISTRA=0 Urban model;",
05985 " =1 PAI model;", " =2 PAI+ASHO model (not active at the moment)."
05986 };
05987 static KmCommand _GEANT_PHYSICS_STRA = { &_GEANT_PHYSICS_SYNC,
05988 "/GEANT/PHYSICS/STRA", "STRA", 0, 2, 1, 0, _GEANT_PHYSICS_STRA_parameters, 0,
05989 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
05990 _GEANT_PHYSICS_STRA_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
05991 (char*)0, (int*)0 };
05992
05993 static char *_GEANT_PHYSICS_RAYL_IRAYL_range[] = { "0", "1" };
05994 static KmParInt _GEANT_PHYSICS_RAYL_IRAYL_type = { (char*)0, (char*)0,
05995 (char*)0, (char*)0, 0 };
05996 static KmParameter _GEANT_PHYSICS_RAYL_IRAYL = { "IRAYL", 5, "Flag IRAYL",
05997 "1", (char*)0, 8, 2, _GEANT_PHYSICS_RAYL_IRAYL_range, 2,
05998 _GEANT_PHYSICS_RAYL_IRAYL_range, (KmParFlag)0, KmTYPE_INT,
05999 &_GEANT_PHYSICS_RAYL_IRAYL_type };
06000 static KmParameter *_GEANT_PHYSICS_RAYL_parameters[] = {
06001 &_GEANT_PHYSICS_RAYL_IRAYL };
06002 static char *_GEANT_PHYSICS_RAYL_guidance[] = {
06003 "To control Rayleigh scattering.", " IRAYL=0 no Rayleigh scattering.",
06004 " =1 Rayleigh." };
06005 static KmCommand _GEANT_PHYSICS_RAYL = { &_GEANT_PHYSICS_STRA,
06006 "/GEANT/PHYSICS/RAYL", "RAYL", 0, 2, 1, 0, _GEANT_PHYSICS_RAYL_parameters, 0,
06007 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
06008 _GEANT_PHYSICS_RAYL_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
06009 (char*)0, (int*)0 };
06010
06011 static char *_GEANT_PHYSICS_PHOT_IPHOT_range[] = { "0", "1", "2" };
06012 static KmParInt _GEANT_PHYSICS_PHOT_IPHOT_type = { (char*)0, (char*)0,
06013 (char*)0, (char*)0, 0 };
06014 static KmParameter _GEANT_PHYSICS_PHOT_IPHOT = { "IPHOT", 5, "Flag IPHOT",
06015 "1", (char*)0, 8, 3, _GEANT_PHYSICS_PHOT_IPHOT_range, 3,
06016 _GEANT_PHYSICS_PHOT_IPHOT_range, (KmParFlag)0, KmTYPE_INT,
06017 &_GEANT_PHYSICS_PHOT_IPHOT_type };
06018 static KmParameter *_GEANT_PHYSICS_PHOT_parameters[] = {
06019 &_GEANT_PHYSICS_PHOT_IPHOT };
06020 static char *_GEANT_PHYSICS_PHOT_guidance[] = { "To control Photo effect.",
06021 " IPHOT=0 no photo electric effect.",
06022 " =1 Photo effect. Electron processed.",
06023 " =2 Photo effect. No electron stored." };
06024 static KmCommand _GEANT_PHYSICS_PHOT = { &_GEANT_PHYSICS_RAYL,
06025 "/GEANT/PHYSICS/PHOT", "PHOT", 0, 2, 1, 0, _GEANT_PHYSICS_PHOT_parameters, 0,
06026 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
06027 _GEANT_PHYSICS_PHOT_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
06028 (char*)0, (int*)0 };
06029
06030 static char *_GEANT_PHYSICS_PFIS_IPFIS_range[] = { "0", "1", "2" };
06031 static KmParInt _GEANT_PHYSICS_PFIS_IPFIS_type = { (char*)0, (char*)0,
06032 (char*)0, (char*)0, 0 };
06033 static KmParameter _GEANT_PHYSICS_PFIS_IPFIS = { "IPFIS", 5, "Flag IPFIS",
06034 "1", (char*)0, 8, 3, _GEANT_PHYSICS_PFIS_IPFIS_range, 3,
06035 _GEANT_PHYSICS_PFIS_IPFIS_range, (KmParFlag)0, KmTYPE_INT,
06036 &_GEANT_PHYSICS_PFIS_IPFIS_type };
06037 static KmParameter *_GEANT_PHYSICS_PFIS_parameters[] = {
06038 &_GEANT_PHYSICS_PFIS_IPFIS };
06039 static char *_GEANT_PHYSICS_PFIS_guidance[] = {
06040 "To control photo fission mechanism.", " IPFIS=0 no photo fission.",
06041 " =1 Photo fission. secondaries processed.",
06042 " =2 Photo fission. No secondaries stored." };
06043 static KmCommand _GEANT_PHYSICS_PFIS = { &_GEANT_PHYSICS_PHOT,
06044 "/GEANT/PHYSICS/PFIS", "PFIS", 0, 2, 1, 0, _GEANT_PHYSICS_PFIS_parameters, 0,
06045 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
06046 _GEANT_PHYSICS_PFIS_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
06047 (char*)0, (int*)0 };
06048
06049 static char *_GEANT_PHYSICS_PAIR_IPAIR_range[] = { "0", "1", "2" };
06050 static KmParInt _GEANT_PHYSICS_PAIR_IPAIR_type = { (char*)0, (char*)0,
06051 (char*)0, (char*)0, 0 };
06052 static KmParameter _GEANT_PHYSICS_PAIR_IPAIR = { "IPAIR", 5, "Flag IPAIR",
06053 "1", (char*)0, 8, 3, _GEANT_PHYSICS_PAIR_IPAIR_range, 3,
06054 _GEANT_PHYSICS_PAIR_IPAIR_range, (KmParFlag)0, KmTYPE_INT,
06055 &_GEANT_PHYSICS_PAIR_IPAIR_type };
06056 static KmParameter *_GEANT_PHYSICS_PAIR_parameters[] = {
06057 &_GEANT_PHYSICS_PAIR_IPAIR };
06058 static char *_GEANT_PHYSICS_PAIR_guidance[] = {
06059 "To control pair production mechanism.", " IPAIR=0 no pair production.",
06060 " =1 Pair production. secondaries processed.",
06061 " =2 Pair production. No secondaries stored." };
06062 static KmCommand _GEANT_PHYSICS_PAIR = { &_GEANT_PHYSICS_PFIS,
06063 "/GEANT/PHYSICS/PAIR", "PAIR", 0, 2, 1, 0, _GEANT_PHYSICS_PAIR_parameters, 0,
06064 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
06065 _GEANT_PHYSICS_PAIR_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
06066 (char*)0, (int*)0 };
06067
06068 static char *_GEANT_PHYSICS_MUNU_IMUNU_range[] = { "0", "1", "2" };
06069 static KmParInt _GEANT_PHYSICS_MUNU_IMUNU_type = { (char*)0, (char*)0,
06070 (char*)0, (char*)0, 0 };
06071 static KmParameter _GEANT_PHYSICS_MUNU_IMUNU = { "IMUNU", 5, "Flag IMUNU",
06072 "1", (char*)0, 8, 3, _GEANT_PHYSICS_MUNU_IMUNU_range, 3,
06073 _GEANT_PHYSICS_MUNU_IMUNU_range, (KmParFlag)0, KmTYPE_INT,
06074 &_GEANT_PHYSICS_MUNU_IMUNU_type };
06075 static KmParameter *_GEANT_PHYSICS_MUNU_parameters[] = {
06076 &_GEANT_PHYSICS_MUNU_IMUNU };
06077 static char *_GEANT_PHYSICS_MUNU_guidance[] = {
06078 "To control muon nuclear interactions.",
06079 " IMUNU=0 no muon-nuclear interactions.",
06080 " =1 Nuclear interactions. Secondaries processed.",
06081 " =2 Nuclear interactions. Secondaries not processed." };
06082 static KmCommand _GEANT_PHYSICS_MUNU = { &_GEANT_PHYSICS_PAIR,
06083 "/GEANT/PHYSICS/MUNU", "MUNU", 0, 2, 1, 0, _GEANT_PHYSICS_MUNU_parameters, 0,
06084 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
06085 _GEANT_PHYSICS_MUNU_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
06086 (char*)0, (int*)0 };
06087
06088 static char *_GEANT_PHYSICS_MULS_IMULS_range[] = { "0", "1", "2", "3" };
06089 static KmParInt _GEANT_PHYSICS_MULS_IMULS_type = { (char*)0, (char*)0,
06090 (char*)0, (char*)0, 0 };
06091 static KmParameter _GEANT_PHYSICS_MULS_IMULS = { "IMULS", 5, "Flag IMULS",
06092 "1", (char*)0, 8, 4, _GEANT_PHYSICS_MULS_IMULS_range, 4,
06093 _GEANT_PHYSICS_MULS_IMULS_range, (KmParFlag)0, KmTYPE_INT,
06094 &_GEANT_PHYSICS_MULS_IMULS_type };
06095 static KmParameter *_GEANT_PHYSICS_MULS_parameters[] = {
06096 &_GEANT_PHYSICS_MULS_IMULS };
06097 static char *_GEANT_PHYSICS_MULS_guidance[] = {
06098 "To control multiple scattering.", " IMULS=0 no multiple scattering.",
06099 " =1 Moliere or Coulomb scattering.",
06100 " =2 Moliere or Coulomb scattering.", " =3 Gaussian scattering." };
06101 static KmCommand _GEANT_PHYSICS_MULS = { &_GEANT_PHYSICS_MUNU,
06102 "/GEANT/PHYSICS/MULS", "MULS", 0, 2, 1, 0, _GEANT_PHYSICS_MULS_parameters, 0,
06103 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 5,
06104 _GEANT_PHYSICS_MULS_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
06105 (char*)0, (int*)0 };
06106
06107 static char *_GEANT_PHYSICS_LOSS_ILOSS_range[] = { "0", "1", "2", "3", "4" };
06108 static KmParInt _GEANT_PHYSICS_LOSS_ILOSS_type = { (char*)0, (char*)0,
06109 (char*)0, (char*)0, 0 };
06110 static KmParameter _GEANT_PHYSICS_LOSS_ILOSS = { "ILOSS", 5, "Flag ILOSS",
06111 "2", (char*)0, 8, 5, _GEANT_PHYSICS_LOSS_ILOSS_range, 5,
06112 _GEANT_PHYSICS_LOSS_ILOSS_range, (KmParFlag)0, KmTYPE_INT,
06113 &_GEANT_PHYSICS_LOSS_ILOSS_type };
06114 static KmParameter *_GEANT_PHYSICS_LOSS_parameters[] = {
06115 &_GEANT_PHYSICS_LOSS_ILOSS };
06116 static char *_GEANT_PHYSICS_LOSS_guidance[] = { "To control energy loss.",
06117 " ILOSS=0 no energy loss;", " =1 restricted energy loss fluctuations;",
06118 " =2 complete energy loss fluctuations;", " =3 same as 1;",
06119 " =4 no energy loss fluctuations.",
06120 "If the value ILOSS is changed, then cross-sections and energy loss",
06121 "tables must be recomputed via the command 'PHYSI'." };
06122 static KmCommand _GEANT_PHYSICS_LOSS = { &_GEANT_PHYSICS_MULS,
06123 "/GEANT/PHYSICS/LOSS", "LOSS", 0, 2, 1, 0, _GEANT_PHYSICS_LOSS_parameters, 0,
06124 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 8,
06125 _GEANT_PHYSICS_LOSS_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
06126 (char*)0, (int*)0 };
06127
06128 static KmParInt _GEANT_PHYSICS_LABS_LABS_type = { (char*)0, (char*)0,
06129 (char*)0, (char*)0, 0 };
06130 static KmParameter _GEANT_PHYSICS_LABS_LABS = { "LABS", 4, "Flag LABS", "0",
06131 (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
06132 &_GEANT_PHYSICS_LABS_LABS_type };
06133 static KmParameter *_GEANT_PHYSICS_LABS_parameters[] = {
06134 &_GEANT_PHYSICS_LABS_LABS };
06135 static char *_GEANT_PHYSICS_LABS_guidance[] = {
06136 "To control absorbtion of Cerenkov photons:",
06137 " LABS=0 no absorbtion of photons;", " LABS=1 absorbtion of photons;" };
06138 static KmCommand _GEANT_PHYSICS_LABS = { &_GEANT_PHYSICS_LOSS,
06139 "/GEANT/PHYSICS/LABS", "LABS", 0, 2, 1, 0, _GEANT_PHYSICS_LABS_parameters, 0,
06140 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
06141 _GEANT_PHYSICS_LABS_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
06142 (char*)0, (int*)0 };
06143
06144 static KmParInt _GEANT_PHYSICS_HADR_IHADR_type = { (char*)0, (char*)0,
06145 (char*)0, (char*)0, 0 };
06146 static KmParameter _GEANT_PHYSICS_HADR_IHADR = { "IHADR", 5, "Flag IHADR",
06147 "1", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
06148 &_GEANT_PHYSICS_HADR_IHADR_type };
06149 static KmParameter *_GEANT_PHYSICS_HADR_parameters[] = {
06150 &_GEANT_PHYSICS_HADR_IHADR };
06151 static char *_GEANT_PHYSICS_HADR_guidance[] = {
06152 "To control hadronic interactions.", " IHADR=0 no hadronic interactions.",
06153 " =1 Hadronic interactions. secondaries processed.",
06154 " =2 Hadronic interactions. No secondaries stored." };
06155 static KmCommand _GEANT_PHYSICS_HADR = { &_GEANT_PHYSICS_LABS,
06156 "/GEANT/PHYSICS/HADR", "HADR", 0, 2, 1, 0, _GEANT_PHYSICS_HADR_parameters, 0,
06157 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
06158 _GEANT_PHYSICS_HADR_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
06159 (char*)0, (int*)0 };
06160
06161 static KmParReal _GEANT_PHYSICS_ERAN_EKMIN_type = { (char*)0, (char*)0,
06162 (char*)0, (char*)0, 0 };
06163 static KmParameter _GEANT_PHYSICS_ERAN_EKMIN = { "EKMIN", 5,
06164 "Minimum energy of the tables", "1E-5", (char*)0, 12, 0, (char**)0, 0,
06165 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_ERAN_EKMIN_type };
06166 static KmParReal _GEANT_PHYSICS_ERAN_EKMAX_type = { (char*)0, (char*)0,
06167 (char*)0, (char*)0, 0 };
06168 static KmParameter _GEANT_PHYSICS_ERAN_EKMAX = { "EKMAX", 5,
06169 "Maximum energy of the tables", "1E+4", (char*)0, 12, 0, (char**)0, 0,
06170 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_ERAN_EKMAX_type };
06171 static KmParInt _GEANT_PHYSICS_ERAN_NEKBIN_type = { "1", "200", "1", "200",
06172 0 };
06173 static KmParameter _GEANT_PHYSICS_ERAN_NEKBIN = { "NEKBIN", 6,
06174 "Number of bins in the tables", "90", (char*)0, 4, 0, (char**)0, 0,
06175 (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_PHYSICS_ERAN_NEKBIN_type };
06176 static KmParameter *_GEANT_PHYSICS_ERAN_parameters[] = {
06177 &_GEANT_PHYSICS_ERAN_EKMIN, &_GEANT_PHYSICS_ERAN_EKMAX,
06178 &_GEANT_PHYSICS_ERAN_NEKBIN };
06179 static char *_GEANT_PHYSICS_ERAN_guidance[] = {
06180 "To define the range and binning of internal tables." };
06181 static KmCommand _GEANT_PHYSICS_ERAN = { &_GEANT_PHYSICS_HADR,
06182 "/GEANT/PHYSICS/ERAN", "ERAN", 0, 2, 3, 0, _GEANT_PHYSICS_ERAN_parameters, 0,
06183 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
06184 _GEANT_PHYSICS_ERAN_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
06185 (char*)0, (int*)0 };
06186
06187 static char *_GEANT_PHYSICS_DRAY_IDRAY_range[] = { "0", "1", "2" };
06188 static KmParInt _GEANT_PHYSICS_DRAY_IDRAY_type = { (char*)0, (char*)0,
06189 (char*)0, (char*)0, 0 };
06190 static KmParameter _GEANT_PHYSICS_DRAY_IDRAY = { "IDRAY", 5, "Flag IDRAY",
06191 "1", (char*)0, 8, 3, _GEANT_PHYSICS_DRAY_IDRAY_range, 3,
06192 _GEANT_PHYSICS_DRAY_IDRAY_range, (KmParFlag)0, KmTYPE_INT,
06193 &_GEANT_PHYSICS_DRAY_IDRAY_type };
06194 static KmParameter *_GEANT_PHYSICS_DRAY_parameters[] = {
06195 &_GEANT_PHYSICS_DRAY_IDRAY };
06196 static char *_GEANT_PHYSICS_DRAY_guidance[] = {
06197 "To control delta rays mechanism.", " IDRAY=0 no delta rays.",
06198 " =1 Delta rays. secondaries processed.",
06199 " =2 Delta rays. No secondaries stored." };
06200 static KmCommand _GEANT_PHYSICS_DRAY = { &_GEANT_PHYSICS_ERAN,
06201 "/GEANT/PHYSICS/DRAY", "DRAY", 0, 2, 1, 0, _GEANT_PHYSICS_DRAY_parameters, 0,
06202 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
06203 _GEANT_PHYSICS_DRAY_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
06204 (char*)0, (int*)0 };
06205
06206 static char *_GEANT_PHYSICS_DCAY_IDCAY_range[] = { "0", "1", "2" };
06207 static KmParInt _GEANT_PHYSICS_DCAY_IDCAY_type = { (char*)0, (char*)0,
06208 (char*)0, (char*)0, 0 };
06209 static KmParameter _GEANT_PHYSICS_DCAY_IDCAY = { "IDCAY", 5, "Flag IDCAY",
06210 "1", (char*)0, 8, 3, _GEANT_PHYSICS_DCAY_IDCAY_range, 3,
06211 _GEANT_PHYSICS_DCAY_IDCAY_range, (KmParFlag)0, KmTYPE_INT,
06212 &_GEANT_PHYSICS_DCAY_IDCAY_type };
06213 static KmParameter *_GEANT_PHYSICS_DCAY_parameters[] = {
06214 &_GEANT_PHYSICS_DCAY_IDCAY };
06215 static char *_GEANT_PHYSICS_DCAY_guidance[] = { "To control Decay mechanism.",
06216 " IDCAY=0 no decays.", " =1 Decays. secondaries processed.",
06217 " =2 Decays. No secondaries stored." };
06218 static KmCommand _GEANT_PHYSICS_DCAY = { &_GEANT_PHYSICS_DRAY,
06219 "/GEANT/PHYSICS/DCAY", "DCAY", 0, 2, 1, 0, _GEANT_PHYSICS_DCAY_parameters, 0,
06220 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
06221 _GEANT_PHYSICS_DCAY_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
06222 (char*)0, (int*)0 };
06223
06224 static char *_GEANT_PHYSICS_COMP_ICOMP_range[] = { "0", "1", "2" };
06225 static KmParInt _GEANT_PHYSICS_COMP_ICOMP_type = { (char*)0, (char*)0,
06226 (char*)0, (char*)0, 0 };
06227 static KmParameter _GEANT_PHYSICS_COMP_ICOMP = { "ICOMP", 5, "Flag ICOMP",
06228 "1", (char*)0, 8, 3, _GEANT_PHYSICS_COMP_ICOMP_range, 3,
06229 _GEANT_PHYSICS_COMP_ICOMP_range, (KmParFlag)0, KmTYPE_INT,
06230 &_GEANT_PHYSICS_COMP_ICOMP_type };
06231 static KmParameter *_GEANT_PHYSICS_COMP_parameters[] = {
06232 &_GEANT_PHYSICS_COMP_ICOMP };
06233 static char *_GEANT_PHYSICS_COMP_guidance[] = {
06234 "To control Compton scattering", " ICOMP=0 no Compton",
06235 " =1 Compton. Electron processed.",
06236 " =2 Compton. No electron stored." };
06237 static KmCommand _GEANT_PHYSICS_COMP = { &_GEANT_PHYSICS_DCAY,
06238 "/GEANT/PHYSICS/COMP", "COMP", 0, 2, 1, 0, _GEANT_PHYSICS_COMP_parameters, 0,
06239 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
06240 _GEANT_PHYSICS_COMP_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
06241 (char*)0, (int*)0 };
06242
06243 static char *_GEANT_PHYSICS_CKOV_ICKOV_range[] = { "0", "1", "2" };
06244 static KmParInt _GEANT_PHYSICS_CKOV_ICKOV_type = { (char*)0, (char*)0,
06245 (char*)0, (char*)0, 0 };
06246 static KmParameter _GEANT_PHYSICS_CKOV_ICKOV = { "ICKOV", 5, "Flag ICKOV",
06247 "0", (char*)0, 8, 3, _GEANT_PHYSICS_CKOV_ICKOV_range, 3,
06248 _GEANT_PHYSICS_CKOV_ICKOV_range, (KmParFlag)0, KmTYPE_INT,
06249 &_GEANT_PHYSICS_CKOV_ICKOV_type };
06250 static KmParameter *_GEANT_PHYSICS_CKOV_parameters[] = {
06251 &_GEANT_PHYSICS_CKOV_ICKOV };
06252 static char *_GEANT_PHYSICS_CKOV_guidance[] = {
06253 "To control Cerenkov production", " ICOMP=0 no Cerenkov;",
06254 " =1 Cerenkov;", " =2 Cerenkov with primary stopped at each step."
06255 };
06256 static KmCommand _GEANT_PHYSICS_CKOV = { &_GEANT_PHYSICS_COMP,
06257 "/GEANT/PHYSICS/CKOV", "CKOV", 0, 2, 1, 0, _GEANT_PHYSICS_CKOV_parameters, 0,
06258 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
06259 _GEANT_PHYSICS_CKOV_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
06260 (char*)0, (int*)0 };
06261
06262 static char *_GEANT_PHYSICS_BREM_IBREM_range[] = { "0", "1", "2" };
06263 static KmParInt _GEANT_PHYSICS_BREM_IBREM_type = { (char*)0, (char*)0,
06264 (char*)0, (char*)0, 0 };
06265 static KmParameter _GEANT_PHYSICS_BREM_IBREM = { "IBREM", 5, "Flag IBREM",
06266 "1", (char*)0, 8, 3, _GEANT_PHYSICS_BREM_IBREM_range, 3,
06267 _GEANT_PHYSICS_BREM_IBREM_range, (KmParFlag)0, KmTYPE_INT,
06268 &_GEANT_PHYSICS_BREM_IBREM_type };
06269 static KmParameter *_GEANT_PHYSICS_BREM_parameters[] = {
06270 &_GEANT_PHYSICS_BREM_IBREM };
06271 static char *_GEANT_PHYSICS_BREM_guidance[] = { "To control bremstrahlung.",
06272 " IBREM=0 no bremstrahlung", " =1 bremstrahlung. Photon processed.",
06273 " =2 bremstrahlung. No photon stored." };
06274 static KmCommand _GEANT_PHYSICS_BREM = { &_GEANT_PHYSICS_CKOV,
06275 "/GEANT/PHYSICS/BREM", "BREM", 0, 2, 1, 0, _GEANT_PHYSICS_BREM_parameters, 0,
06276 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
06277 _GEANT_PHYSICS_BREM_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
06278 (char*)0, (int*)0 };
06279
06280 static char *_GEANT_PHYSICS_AUTO_IAUTO_range[] = { "0", "1" };
06281 static KmParInt _GEANT_PHYSICS_AUTO_IAUTO_type = { (char*)0, (char*)0,
06282 (char*)0, (char*)0, 0 };
06283 static KmParameter _GEANT_PHYSICS_AUTO_IAUTO = { "IAUTO", 5, "Flag IAUTO",
06284 "1", (char*)0, 8, 2, _GEANT_PHYSICS_AUTO_IAUTO_range, 2,
06285 _GEANT_PHYSICS_AUTO_IAUTO_range, (KmParFlag)0, KmTYPE_INT,
06286 &_GEANT_PHYSICS_AUTO_IAUTO_type };
06287 static KmParameter *_GEANT_PHYSICS_AUTO_parameters[] = {
06288 &_GEANT_PHYSICS_AUTO_IAUTO };
06289 static char *_GEANT_PHYSICS_AUTO_guidance[] = {
06290 "To control automatic calculation of tracking medium parameters:",
06291 " IAUTO=0 no automatic calculation;", " =1 automati calculation." };
06292 static KmCommand _GEANT_PHYSICS_AUTO = { &_GEANT_PHYSICS_BREM,
06293 "/GEANT/PHYSICS/AUTO", "AUTO", 0, 2, 1, 0, _GEANT_PHYSICS_AUTO_parameters, 0,
06294 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
06295 _GEANT_PHYSICS_AUTO_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
06296 (char*)0, (int*)0 };
06297
06298 static char *_GEANT_PHYSICS_ANNI_IANNI_range[] = { "0", "1", "2" };
06299 static KmParInt _GEANT_PHYSICS_ANNI_IANNI_type = { (char*)0, (char*)0,
06300 (char*)0, (char*)0, 0 };
06301 static KmParameter _GEANT_PHYSICS_ANNI_IANNI = { "IANNI", 5, "Flag IANNI",
06302 "1", (char*)0, 8, 3, _GEANT_PHYSICS_ANNI_IANNI_range, 3,
06303 _GEANT_PHYSICS_ANNI_IANNI_range, (KmParFlag)0, KmTYPE_INT,
06304 &_GEANT_PHYSICS_ANNI_IANNI_type };
06305 static KmParameter *_GEANT_PHYSICS_ANNI_parameters[] = {
06306 &_GEANT_PHYSICS_ANNI_IANNI };
06307 static char *_GEANT_PHYSICS_ANNI_guidance[] = {
06308 "To control positron annihilation.", " IANNI=0 no annihilation",
06309 " =1 annihilation. Decays processed.",
06310 " =2 annihilation. No decay products stored." };
06311 static KmCommand _GEANT_PHYSICS_ANNI = { &_GEANT_PHYSICS_AUTO,
06312 "/GEANT/PHYSICS/ANNI", "ANNI", 0, 2, 1, 0, _GEANT_PHYSICS_ANNI_parameters, 0,
06313 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
06314 _GEANT_PHYSICS_ANNI_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
06315 (char*)0, (int*)0 };
06316
06317 static char *_GEANT_PHYSICS_guidance[] = {
06318 "Commands to set physics parameters." };
06319 static KmMenu _GEANT_PHYSICS = { (KmMenu*)0, (KmMenu*)0, "/GEANT/PHYSICS",
06320 "PHYSICS", 2, &_GEANT_PHYSICS_ANNI, 1, _GEANT_PHYSICS_guidance, 0, (char**)0,
06321 0, (char**)0 };
06322
06323 static KmMenu _GEANT = { (KmMenu*)0, &_GEANT_PHYSICS, "/GEANT", "GEANT", 1,
06324 (KmCommand*)0, 0, (char**)0, 0, (char**)0, 0, (char**)0 };
06325
06326 klnkmenu( &_GEANT, 950303 );
06327 }
06328
06329
06330 #ifdef F77_LCASE
06331 # define gkfort_ gkfort
06332 # define gxfort_ gxfort
06333 #endif
06334
06335 #ifdef F77_UCASE
06336 # define gkfort_ GKFORT
06337 # define gxfort_ GXFORT
06338 #endif
06339
06340 #ifdef IBM370
06341 # pragma linkage(GKFORT,FORTRAN)
06342 # pragma linkage(GXFORT,FORTRAN)
06343 #endif
06344
06345 extern void gkfort_();
06346 extern void gxfort_();
06347
06348 void gkfort_()
06349 {
06350
06351 static KmParameter _FORTRAN_FORTRAN_FNAME = { "FNAME", 5, "File name",
06352 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
06353 KmTYPE_CHAR, (void*)0 };
06354 static KmParameter *_FORTRAN_FORTRAN_parameters[] = { &_FORTRAN_FORTRAN_FNAME
06355 };
06356 static char *_FORTRAN_FORTRAN_guidance[] = {
06357 "The routines in the file FNAME will be compiled by COMIS.",
06358 "If routines with names: UGEOM,GUKINE,GUOUT,UGLAST are found,",
06359 "then they will be automatically called by GXINT instead of",
06360 "the routines with the same names compiled with the standard",
06361 "Fortran compiler and linked with the application.",
06362 "The user callable routines from the GEANT library as well as",
06363 "routines from PACKLIB (HBOOK,HPLOT,HIGZ,ZEBRA) may be called",
06364 "from these user routines. All GEANT common blocks may be", "referenced.",
06365 "In case where the routine UGEOM is called several times,",
06366 "it is important to DROP all the initialisation data structures",
06367 "JVOLUM,JMATE,JTMED,etc already in memory by using the routine GIDROP.",
06368 " Example of an interactive session where the routine UGEOM is modified:",
06369 "", " GEANT > Edit ugeom.for", " GEANT > Fortran ugeom.for",
06370 " GEANT > Call GIDROP", " GEANT > Call UGEOM", " GEANT > Dtree",
06371 " GEANT > Edit ugeom.for", " GEANT > Fortran ugeom.for",
06372 " GEANT > Call GIDROP", " GEANT > Call UGEOM", " GEANT > Dtree",
06373 "If FNAME='-', calls to user routines is reset and standard",
06374 "routines called instead." };
06375 static KmCommand _FORTRAN_FORTRAN = { (KmCommand*)0, "/FORTRAN/FORTRAN",
06376 "FORTRAN", 0, 1, 1, 1, _FORTRAN_FORTRAN_parameters, 0, 0, gxfort_,
06377 (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 26, _FORTRAN_FORTRAN_guidance, 0,
06378 (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
06379
06380 static KmMenu _FORTRAN = { (KmMenu*)0, (KmMenu*)0, "/FORTRAN", "FORTRAN", 1,
06381 &_FORTRAN_FORTRAN, 0, (char**)0, 0, (char**)0, 0, (char**)0 };
06382
06383 klnkmenu( &_FORTRAN, 950303 );
06384 }
06385
06386 #endif
06387 #if defined(CERNLIB_KUIP95A)
06388
06389
06390
06391
06392
06393
06394
06395
06396
06397
06398
06399 #if !defined(F77_LCASE) && !defined(F77_UCASE) && !defined(F77_USCORE)
06400 # if defined(__EXTENDED__) && !defined(IBM370) && !defined(_IBMR2)
06401 # define IBM370
06402 # endif
06403 # if defined(CRAY) || defined(IBM370) || defined(vms)
06404 # define F77_UCASE
06405 # else
06406 # if ( defined(apollo) || defined(__apollo) ) && defined(APOFTN)
06407 # define F77_LCASE
06408 # else
06409 # define F77_USCORE
06410 # endif
06411 # endif
06412 #endif
06413
06414 typedef int IntFunc();
06415 typedef char* CharFunc();
06416 typedef char** pCharFunc();
06417 typedef void SUBROUTINE();
06418 #ifdef IBM370
06419 # pragma linkage(SUBROUTINE,FORTRAN)
06420 #endif
06421
06422 extern void klnkmenu();
06423 extern void klnkbrcl();
06424 extern void klnkkmcl();
06425 extern void klnkicon();
06426 extern void klnkbutt();
06427
06428 typedef unsigned long KmPixmap;
06429 typedef void *KmWidget;
06430 typedef void *KmCalldata;
06431
06432 typedef enum {
06433 BRACT_OPEN = 0,
06434 BRACT_ROOT = 1,
06435 BRACT_CONT = 2,
06436 BRACT_GRAF = 3
06437 } BrActTag;
06438
06439 typedef enum {
06440 BrActUpdate = 0x01,
06441 BrActSeparator = 0x02,
06442 BrActToggle = 0x04,
06443 BrActToggleOn = 0x08,
06444 BrActSensitive = 0x10
06445 } BrActFlag;
06446
06447
06448 typedef struct _BrAction {
06449 struct _BrAction *next;
06450 BrActFlag flags;
06451 char *text;
06452 char *user_text;
06453 char *accel;
06454 char *exec;
06455 SUBROUTINE *call_F;
06456 IntFunc *call_C;
06457 BrActTag tag;
06458 struct _BrClass *class;
06459 } BrAction;
06460
06461 typedef struct _BrClass {
06462 struct _BrClass *next;
06463 char *name;
06464 char *title;
06465 SUBROUTINE *scan_km_F;
06466 pCharFunc *scan_km_C;
06467 SUBROUTINE *scan_br_F;
06468 pCharFunc *scan_br_C;
06469 BrAction *root;
06470 BrAction *open;
06471 } BrClass;
06472
06473
06474 typedef struct _KmIcon {
06475 struct _KmIcon *next;
06476 char *name;
06477 int width;
06478 int height;
06479 char *bitmap;
06480 KmPixmap pix;
06481 KmPixmap hi_pix;
06482 } KmIcon;
06483
06484 typedef struct _KmClass {
06485 struct _KmClass *next;
06486 int is_dir;
06487 char *name;
06488 char *title;
06489 char *big_icon;
06490 KmIcon *bicon;
06491 char *sm_icon;
06492 KmIcon *sicon;
06493 SUBROUTINE *user_icon_F;
06494 IntFunc *user_icon_C;
06495 BrAction *cont;
06496 BrAction *graf;
06497 int obj_count;
06498 } KmClass;
06499
06500
06501 typedef enum {
06502 KmButtSensitive = 0x00,
06503 KmButtNonSensitive = 0x01,
06504 KmButtToggleSensitive = 0x02,
06505 KmButtSensitivityMask = 0x03,
06506 KmButtSeparator = 0x04,
06507 KmButtBrowser = 0x08
06508 } KmButtFlag;
06509
06510 typedef struct _KmButton {
06511 struct _KmButton *next;
06512 char *menu;
06513 char *label;
06514 SUBROUTINE *call_F;
06515 IntFunc *call_C;
06516 char *action;
06517 char *mnemo;
06518 char *accel;
06519 char *accel_text;
06520 KmButtFlag flags;
06521 KmWidget widget;
06522 } KmButton;
06523
06524
06525 extern struct {
06526
06527 IntFunc *graf_info_C;
06528 SUBROUTINE *graf_size_F;
06529 SUBROUTINE *graf_pick_F;
06530 SUBROUTINE *graf_attr_F;
06531 SUBROUTINE *graf_close_F;
06532
06533 pCharFunc *user_FallBk_C;
06534 IntFunc *user_TopWid_C;
06535 } klnkaddr;
06536
06537
06538 typedef enum {
06539 KmFLAG_FORGET = 0x01,
06540 KmFLAG_MINUS = 0x02,
06541 KmFLAG_QUOTE = 0x04,
06542 KmFLAG_VARARG = 0x08,
06543 KmFLAG_CONST = 0x10,
06544 KmFLAG_HIDDEN = 0x20,
06545 KmFLAG_SEPARATE = 0x40
06546 } KmParFlag;
06547
06548 typedef enum {
06549 KmTYPE_CHAR = 'C',
06550 KmTYPE_FILE = 'F',
06551 KmTYPE_INT = 'I',
06552 KmTYPE_OPTION = 'O',
06553 KmTYPE_REAL = 'R'
06554 } KmParType;
06555
06556
06557 typedef struct {
06558 char *filter_default;
06559 char *filter_current;
06560 } KmParFile;
06561
06562 typedef struct {
06563 char *range_lower;
06564 char *range_upper;
06565 char *slider_lower;
06566 char *slider_upper;
06567 int decimals;
06568 } KmParInt;
06569
06570 typedef struct {
06571 char **text;
06572 int *mutex;
06573 int *radio;
06574 } KmParOption;
06575
06576
06577 typedef KmParInt KmParReal;
06578
06579 typedef struct {
06580 char *name;
06581 int abbrev;
06582 char *prompt;
06583 char *dfault;
06584 char *last;
06585 int width;
06586 int range_count;
06587 char **range_value;
06588 int select_count;
06589 char **select_value;
06590 KmParFlag flags;
06591 KmParType type;
06592 void *ptype;
06593 } KmParameter;
06594
06595
06596 typedef struct _KmCommand {
06597 struct _KmCommand *next;
06598 char *path;
06599 char *name;
06600 int hidden;
06601 int level;
06602 int total;
06603 int mandatory;
06604 KmParameter **par;
06605 int list_par;
06606 int xcount;
06607 SUBROUTINE *action_F;
06608 IntFunc *action_C;
06609 SUBROUTINE *user_help_F;
06610 pCharFunc *user_help_C;
06611 int nguidance;
06612 char **guidance;
06613 int argc;
06614 char **argv;
06615 char *argline;
06616 int *argoffs;
06617 } KmCommand;
06618
06619
06620 typedef struct _KmMenu {
06621 struct _KmMenu *next;
06622 struct _KmMenu *down;
06623 char *path;
06624 char *name;
06625 int level;
06626 KmCommand *cmds;
06627 int nguidance;
06628 char **guidance;
06629 } KmMenu;
06630
06631 extern void klnkbrcl();
06632 extern void klnkicon();
06633 extern void klnkkmcl();
06634 extern void klnkmenu();
06635
06636
06637 #ifdef F77_LCASE
06638 # define gkdraw_ gkdraw
06639 # define gxdraw_ gxdraw
06640 # define gxpick_ gxpick
06641 #endif
06642
06643 #ifdef F77_UCASE
06644 # define gkdraw_ GKDRAW
06645 # define gxdraw_ GXDRAW
06646 # define gxpick_ GXPICK
06647 #endif
06648
06649 #ifdef IBM370
06650 # pragma linkage(GKDRAW,FORTRAN)
06651 # pragma linkage(GXDRAW,FORTRAN)
06652 # pragma linkage(GXPICK,FORTRAN)
06653 #endif
06654
06655 extern void gkdraw_();
06656 extern void gxdraw_();
06657 extern void gxpick_();
06658
06659 void gkdraw_()
06660 {
06661
06662 static KmParReal _GEANT_CVOL_VALCUT_XCUT_type = { (char*)0, (char*)0,
06663 (char*)0, (char*)0, 0 };
06664 static KmParameter _GEANT_CVOL_VALCUT_XCUT = { "XCUT", 4,
06665 "x coordinate of cutted value", "0.", (char*)0, 12, 0, (char**)0, 0,
06666 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CVOL_VALCUT_XCUT_type };
06667 static KmParReal _GEANT_CVOL_VALCUT_YCUT_type = { (char*)0, (char*)0,
06668 (char*)0, (char*)0, 0 };
06669 static KmParameter _GEANT_CVOL_VALCUT_YCUT = { "YCUT", 4,
06670 "y coordinate of cutted value", "0.", (char*)0, 12, 0, (char**)0, 0,
06671 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CVOL_VALCUT_YCUT_type };
06672 static KmParReal _GEANT_CVOL_VALCUT_ZCUT_type = { (char*)0, (char*)0,
06673 (char*)0, (char*)0, 0 };
06674 static KmParameter _GEANT_CVOL_VALCUT_ZCUT = { "ZCUT", 4,
06675 "z coordinate of cutted value", "0.", (char*)0, 12, 0, (char**)0, 0,
06676 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CVOL_VALCUT_ZCUT_type };
06677 static KmParameter *_GEANT_CVOL_VALCUT_parameters[] = {
06678 &_GEANT_CVOL_VALCUT_XCUT, &_GEANT_CVOL_VALCUT_YCUT, &_GEANT_CVOL_VALCUT_ZCUT
06679 };
06680 static char *_GEANT_CVOL_VALCUT_guidance[] = {
06681 "It allows the cutting in the ray-tracing. All the volumes are cutted",
06682 "from XCUT to +BIG along the x axis, from YCUT to +BIG along the y axis",
06683 "and from ZCUT to +BIG along the z axis." };
06684 static KmCommand _GEANT_CVOL_VALCUT = { (KmCommand*)0, "/GEANT/CVOL/VALCUT",
06685 "VALCUT", 0, 2, 3, 3, _GEANT_CVOL_VALCUT_parameters, 0, 0, gxdraw_,
06686 (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_CVOL_VALCUT_guidance,
06687 0, (char**)0, (char*)0, (int*)0 };
06688
06689 static KmParameter _GEANT_CVOL_SPHE_CNVV = { "CNVV", 4,
06690 " Name of volume to be clipped ", "* ", (char*)0, 20, 0,
06691 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
06692 static KmParReal _GEANT_CVOL_SPHE_RMAX_type = { (char*)0, (char*)0,
06693 (char*)0, (char*)0, 0 };
06694 static KmParameter _GEANT_CVOL_SPHE_RMAX = { "RMAX", 4,
06695 " External radius of sphere ", "0.1", (char*)0, 12, 0, (char**)0,
06696 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CVOL_SPHE_RMAX_type };
06697 static KmParReal _GEANT_CVOL_SPHE_XMED_type = { (char*)0, (char*)0,
06698 (char*)0, (char*)0, 0 };
06699 static KmParameter _GEANT_CVOL_SPHE_XMED = { "XMED", 4,
06700 " Center X coordinate ", "-10000.", (char*)0, 12, 0,
06701 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
06702 &_GEANT_CVOL_SPHE_XMED_type };
06703 static KmParReal _GEANT_CVOL_SPHE_YMED_type = { (char*)0, (char*)0,
06704 (char*)0, (char*)0, 0 };
06705 static KmParameter _GEANT_CVOL_SPHE_YMED = { "YMED", 4,
06706 " Center Y coordinate ", "-10000.", (char*)0, 12, 0,
06707 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
06708 &_GEANT_CVOL_SPHE_YMED_type };
06709 static KmParReal _GEANT_CVOL_SPHE_ZMED_type = { (char*)0, (char*)0,
06710 (char*)0, (char*)0, 0 };
06711 static KmParameter _GEANT_CVOL_SPHE_ZMED = { "ZMED", 4,
06712 " Center Z coordinate ", "-10000.", (char*)0, 12, 0,
06713 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
06714 &_GEANT_CVOL_SPHE_ZMED_type };
06715 static KmParameter *_GEANT_CVOL_SPHE_parameters[] = { &_GEANT_CVOL_SPHE_CNVV,
06716 &_GEANT_CVOL_SPHE_RMAX, &_GEANT_CVOL_SPHE_XMED, &_GEANT_CVOL_SPHE_YMED,
06717 &_GEANT_CVOL_SPHE_ZMED };
06718 static char *_GEANT_CVOL_SPHE_guidance[] = {
06719 "This command performs a boolean subtraction between the volume",
06720 "CNVV and a sphere; the sphere has the given parameters and is placed in",
06721 "the MARS according to the given coordinates of its center.",
06722 "See also CVOL. The following commands clip by a sphere,",
06723 "positioned according to the given parameters, the volume specified",
06724 "by NAME (a valid string for the NAME of the volume",
06725 "can be found using the DTREE command).", "EXAMPLE -", " dopt hide on",
06726 " satt * seen -2", " draw NAME 40 40 0 10 10 .01 .01", " next",
06727 " sphe * 500 0 0 500", " draw NAME 40 40 0 10 10 .01 .01", " box ." };
06728 static KmCommand _GEANT_CVOL_SPHE = { &_GEANT_CVOL_VALCUT, "/GEANT/CVOL/SPHE",
06729 "SPHE", 0, 2, 5, 1, _GEANT_CVOL_SPHE_parameters, 0, 0, gxdraw_, (IntFunc*)0,
06730 (SUBROUTINE*)0, (pCharFunc*)0, 15, _GEANT_CVOL_SPHE_guidance, 0, (char**)0,
06731 (char*)0, (int*)0 };
06732
06733 static KmParameter _GEANT_CVOL_CONE_CNVV = { "CNVV", 4,
06734 " Name of volume to be clipped ", "* ", (char*)0, 20, 0,
06735 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
06736 static KmParReal _GEANT_CVOL_CONE_RMAX1_type = { (char*)0, (char*)0,
06737 (char*)0, (char*)0, 0 };
06738 static KmParameter _GEANT_CVOL_CONE_RMAX1 = { "RMAX1", 5,
06739 " Min external radius ", "0.1", (char*)0, 12, 0, (char**)0,
06740 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CVOL_CONE_RMAX1_type };
06741 static KmParReal _GEANT_CVOL_CONE_RMAX2_type = { (char*)0, (char*)0,
06742 (char*)0, (char*)0, 0 };
06743 static KmParameter _GEANT_CVOL_CONE_RMAX2 = { "RMAX2", 5,
06744 " Max external radius ", "0.1", (char*)0, 12, 0, (char**)0,
06745 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CVOL_CONE_RMAX2_type };
06746 static KmParReal _GEANT_CVOL_CONE_ZDEM_type = { (char*)0, (char*)0,
06747 (char*)0, (char*)0, 0 };
06748 static KmParameter _GEANT_CVOL_CONE_ZDEM = { "ZDEM", 4,
06749 " Half length of cone axis ", "0.1", (char*)0, 12, 0, (char**)0,
06750 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CVOL_CONE_ZDEM_type };
06751 static KmParReal _GEANT_CVOL_CONE_XMED_type = { (char*)0, (char*)0,
06752 (char*)0, (char*)0, 0 };
06753 static KmParameter _GEANT_CVOL_CONE_XMED = { "XMED", 4,
06754 " Center X coordinate ", "-10000.", (char*)0, 12, 0,
06755 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
06756 &_GEANT_CVOL_CONE_XMED_type };
06757 static KmParReal _GEANT_CVOL_CONE_YMED_type = { (char*)0, (char*)0,
06758 (char*)0, (char*)0, 0 };
06759 static KmParameter _GEANT_CVOL_CONE_YMED = { "YMED", 4,
06760 " Center Y coordinate ", "-10000.", (char*)0, 12, 0,
06761 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
06762 &_GEANT_CVOL_CONE_YMED_type };
06763 static KmParReal _GEANT_CVOL_CONE_ZMED_type = { (char*)0, (char*)0,
06764 (char*)0, (char*)0, 0 };
06765 static KmParameter _GEANT_CVOL_CONE_ZMED = { "ZMED", 4,
06766 " Center Z coordinate ", "-10000.", (char*)0, 12, 0,
06767 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
06768 &_GEANT_CVOL_CONE_ZMED_type };
06769 static KmParameter *_GEANT_CVOL_CONE_parameters[] = { &_GEANT_CVOL_CONE_CNVV,
06770 &_GEANT_CVOL_CONE_RMAX1, &_GEANT_CVOL_CONE_RMAX2, &_GEANT_CVOL_CONE_ZDEM,
06771 &_GEANT_CVOL_CONE_XMED, &_GEANT_CVOL_CONE_YMED, &_GEANT_CVOL_CONE_ZMED };
06772 static char *_GEANT_CVOL_CONE_guidance[] = {
06773 "This command performs a boolean subtraction between the volume",
06774 "CNVV and a cone; the cone has the given parameters and is placed in",
06775 "the MARS according to the given coordinates of its center.",
06776 "See also CVOL.", "The following commands will clip by a cone,",
06777 "positioned according the given parameters, the volume specified",
06778 "by NAME (a valid string for the NAME of the volume",
06779 "can be found using the DTREE command).", " EXAMPLE -", " dopt hide on",
06780 " satt * seen -2", " draw NAME 40 40 0 10 10 .01 .01", " next",
06781 " cone * 1 750 1000 0 0 1000", " draw NAME 40 40 0 10 10 .01 .01", " box ." };
06782 static KmCommand _GEANT_CVOL_CONE = { &_GEANT_CVOL_SPHE, "/GEANT/CVOL/CONE",
06783 "CONE", 0, 2, 7, 1, _GEANT_CVOL_CONE_parameters, 0, 0, gxdraw_, (IntFunc*)0,
06784 (SUBROUTINE*)0, (pCharFunc*)0, 16, _GEANT_CVOL_CONE_guidance, 0, (char**)0,
06785 (char*)0, (int*)0 };
06786
06787 static KmParameter _GEANT_CVOL_TUBE_CNVV = { "CNVV", 4,
06788 " Name of volume to be clipped ", "* ", (char*)0, 20, 0,
06789 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
06790 static KmParReal _GEANT_CVOL_TUBE_RMAX_type = { (char*)0, (char*)0,
06791 (char*)0, (char*)0, 0 };
06792 static KmParameter _GEANT_CVOL_TUBE_RMAX = { "RMAX", 4,
06793 " External radius of tube ", "0.1", (char*)0, 12, 0, (char**)0,
06794 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CVOL_TUBE_RMAX_type };
06795 static KmParReal _GEANT_CVOL_TUBE_ZDEM_type = { (char*)0, (char*)0,
06796 (char*)0, (char*)0, 0 };
06797 static KmParameter _GEANT_CVOL_TUBE_ZDEM = { "ZDEM", 4,
06798 " Half length of tube axis ", "0.1", (char*)0, 12, 0, (char**)0,
06799 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CVOL_TUBE_ZDEM_type };
06800 static KmParReal _GEANT_CVOL_TUBE_XMED_type = { (char*)0, (char*)0,
06801 (char*)0, (char*)0, 0 };
06802 static KmParameter _GEANT_CVOL_TUBE_XMED = { "XMED", 4,
06803 " Center X coordinate ", "-10000.", (char*)0, 12, 0,
06804 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
06805 &_GEANT_CVOL_TUBE_XMED_type };
06806 static KmParReal _GEANT_CVOL_TUBE_YMED_type = { (char*)0, (char*)0,
06807 (char*)0, (char*)0, 0 };
06808 static KmParameter _GEANT_CVOL_TUBE_YMED = { "YMED", 4,
06809 " Center Y coordinate ", "-10000.", (char*)0, 12, 0,
06810 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
06811 &_GEANT_CVOL_TUBE_YMED_type };
06812 static KmParReal _GEANT_CVOL_TUBE_ZMED_type = { (char*)0, (char*)0,
06813 (char*)0, (char*)0, 0 };
06814 static KmParameter _GEANT_CVOL_TUBE_ZMED = { "ZMED", 4,
06815 " Center Z coordinate ", "-10000.", (char*)0, 12, 0,
06816 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
06817 &_GEANT_CVOL_TUBE_ZMED_type };
06818 static KmParameter *_GEANT_CVOL_TUBE_parameters[] = { &_GEANT_CVOL_TUBE_CNVV,
06819 &_GEANT_CVOL_TUBE_RMAX, &_GEANT_CVOL_TUBE_ZDEM, &_GEANT_CVOL_TUBE_XMED,
06820 &_GEANT_CVOL_TUBE_YMED, &_GEANT_CVOL_TUBE_ZMED };
06821 static char *_GEANT_CVOL_TUBE_guidance[] = {
06822 "This command performs a boolean subtraction between the volume",
06823 "CNVV and a tube; the tube has the given parameters and is placed in",
06824 "the MARS according the given coordinates of its center.", "See also CVOL.",
06825 "The following commands will clip, by a tube,",
06826 "positioned according to the given parameters, the volume specified",
06827 "by NAME (a valid string for the NAME of the volume",
06828 "can be found using the DTREE command).", " EXAMPLE -", " dopt hide on",
06829 " satt * seen -2", " draw NAME 40 40 0 10 10 .01 .01", " next",
06830 " tube * 500 1000 500 0 0", " draw NAME 40 40 0 10 10 .01 .01", " box ." };
06831 static KmCommand _GEANT_CVOL_TUBE = { &_GEANT_CVOL_CONE, "/GEANT/CVOL/TUBE",
06832 "TUBE", 0, 2, 6, 1, _GEANT_CVOL_TUBE_parameters, 0, 0, gxdraw_, (IntFunc*)0,
06833 (SUBROUTINE*)0, (pCharFunc*)0, 16, _GEANT_CVOL_TUBE_guidance, 0, (char**)0,
06834 (char*)0, (int*)0 };
06835
06836 static KmParameter _GEANT_CVOL_BOX_CNNV = { "CNNV", 4,
06837 " Name of volume to be clipped ", "* ", (char*)0, 20, 0,
06838 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
06839 static KmParReal _GEANT_CVOL_BOX_XMIN_type = { (char*)0, (char*)0, (char*)0,
06840 (char*)0, 0 };
06841 static KmParameter _GEANT_CVOL_BOX_XMIN = { "XMIN", 4,
06842 " Lower limit of the Shape X coordinate ", "-10000.", (char*)0, 12, 0,
06843 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
06844 &_GEANT_CVOL_BOX_XMIN_type };
06845 static KmParReal _GEANT_CVOL_BOX_XMAX_type = { (char*)0, (char*)0, (char*)0,
06846 (char*)0, 0 };
06847 static KmParameter _GEANT_CVOL_BOX_XMAX = { "XMAX", 4,
06848 " Upper limit of the Shape X coordinate ", "-9999.", (char*)0, 12, 0,
06849 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
06850 &_GEANT_CVOL_BOX_XMAX_type };
06851 static KmParReal _GEANT_CVOL_BOX_YMIN_type = { (char*)0, (char*)0, (char*)0,
06852 (char*)0, 0 };
06853 static KmParameter _GEANT_CVOL_BOX_YMIN = { "YMIN", 4,
06854 " Lower limit of the Shape Y coordinate ", "-10000.", (char*)0, 12, 0,
06855 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
06856 &_GEANT_CVOL_BOX_YMIN_type };
06857 static KmParReal _GEANT_CVOL_BOX_YMAX_type = { (char*)0, (char*)0, (char*)0,
06858 (char*)0, 0 };
06859 static KmParameter _GEANT_CVOL_BOX_YMAX = { "YMAX", 4,
06860 " Upper limit of the Shape Y coordinate ", "-9999.", (char*)0, 12, 0,
06861 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
06862 &_GEANT_CVOL_BOX_YMAX_type };
06863 static KmParReal _GEANT_CVOL_BOX_ZMIN_type = { (char*)0, (char*)0, (char*)0,
06864 (char*)0, 0 };
06865 static KmParameter _GEANT_CVOL_BOX_ZMIN = { "ZMIN", 4,
06866 " Lower limit of the Shape Z coordinate ", "-10000.", (char*)0, 12, 0,
06867 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
06868 &_GEANT_CVOL_BOX_ZMIN_type };
06869 static KmParReal _GEANT_CVOL_BOX_ZMAX_type = { (char*)0, (char*)0, (char*)0,
06870 (char*)0, 0 };
06871 static KmParameter _GEANT_CVOL_BOX_ZMAX = { "ZMAX", 4,
06872 " Upper limit of the Shape Z coordinate ", "-9999.", (char*)0, 12, 0,
06873 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
06874 &_GEANT_CVOL_BOX_ZMAX_type };
06875 static KmParameter *_GEANT_CVOL_BOX_parameters[] = { &_GEANT_CVOL_BOX_CNNV,
06876 &_GEANT_CVOL_BOX_XMIN, &_GEANT_CVOL_BOX_XMAX, &_GEANT_CVOL_BOX_YMIN,
06877 &_GEANT_CVOL_BOX_YMAX, &_GEANT_CVOL_BOX_ZMIN, &_GEANT_CVOL_BOX_ZMAX };
06878 static char *_GEANT_CVOL_BOX_guidance[] = {
06879 "This command performs a boolean subtraction between the volume",
06880 "CNVV and a box placed in the MARS according the values of the given",
06881 "coordinates. See also CVOL.", "The following commands will clip by a box,",
06882 "with a vertex at the origin, the volume specified by NAME (a valid",
06883 "string for the NAME of the volume can be found using the DTREE command).",
06884 " EXAMPLE -", " dopt hide on", " satt * seen -2",
06885 " draw NAME 40 40 0 10 10 .01 .01", " next",
06886 " box NAME 0 1000 0 1000 0 1000", " draw NAME 40 40 0 10 10 .01 .01",
06887 " box ." };
06888 static KmCommand _GEANT_CVOL_BOX = { &_GEANT_CVOL_TUBE, "/GEANT/CVOL/BOX",
06889 "BOX", 0, 2, 7, 1, _GEANT_CVOL_BOX_parameters, 0, 0, gxdraw_, (IntFunc*)0,
06890 (SUBROUTINE*)0, (pCharFunc*)0, 14, _GEANT_CVOL_BOX_guidance, 0, (char**)0,
06891 (char*)0, (int*)0 };
06892
06893 static KmParameter _GEANT_DRAWING_DUVIEW_NAME = { "NAME", 4, "Detector name",
06894 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
06895 KmTYPE_CHAR, (void*)0 };
06896 static KmParameter _GEANT_DRAWING_DUVIEW_TYPE = { "TYPE", 4, "View name",
06897 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
06898 KmTYPE_CHAR, (void*)0 };
06899 static KmParameter _GEANT_DRAWING_DUVIEW_CPXTYP = { "CPXTYP", 6,
06900 "Complexity name", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
06901 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
06902 static KmParInt _GEANT_DRAWING_DUVIEW_IVIEW_type = { (char*)0, (char*)0,
06903 (char*)0, (char*)0, 0 };
06904 static KmParameter _GEANT_DRAWING_DUVIEW_IVIEW = { "IVIEW", 5,
06905 "View number where picture is stored", "0", (char*)0, 8, 0, (char**)0, 0,
06906 (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_DRAWING_DUVIEW_IVIEW_type };
06907 static KmParameter *_GEANT_DRAWING_DUVIEW_parameters[] = {
06908 &_GEANT_DRAWING_DUVIEW_NAME, &_GEANT_DRAWING_DUVIEW_TYPE,
06909 &_GEANT_DRAWING_DUVIEW_CPXTYP, &_GEANT_DRAWING_DUVIEW_IVIEW };
06910 static char *_GEANT_DRAWING_DUVIEW_guidance[] = {
06911 " CALL GUVIEW(name,type,cpxtyp,iview)" };
06912 static KmCommand _GEANT_DRAWING_DUVIEW = { (KmCommand*)0,
06913 "/GEANT/DRAWING/DUVIEW", "DUVIEW", 0, 2, 4, 3,
06914 _GEANT_DRAWING_DUVIEW_parameters, 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0,
06915 (pCharFunc*)0, 1, _GEANT_DRAWING_DUVIEW_guidance, 0, (char**)0, (char*)0,
06916 (int*)0 };
06917
06918 static KmParameter _GEANT_DRAWING_DCHIT_CHUSET = { "CHUSET", 6,
06919 "User set identifier", "*", (char*)0, 20, 0, (char**)0, 0, (char**)0,
06920 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
06921 static KmParameter _GEANT_DRAWING_DCHIT_CHUDET = { "CHUDET", 6,
06922 "User detector identifier", "*", (char*)0, 20, 0, (char**)0, 0, (char**)0,
06923 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
06924 static KmParInt _GEANT_DRAWING_DCHIT_ITRA_type = { (char*)0, (char*)0,
06925 (char*)0, (char*)0, 0 };
06926 static KmParameter _GEANT_DRAWING_DCHIT_ITRA = { "ITRA", 4,
06927 "Number of the selected track", "0", (char*)0, 8, 0, (char**)0, 0, (char**)0,
06928 (KmParFlag)0, KmTYPE_INT, &_GEANT_DRAWING_DCHIT_ITRA_type };
06929 static KmParInt _GEANT_DRAWING_DCHIT_ISYMB_type = { (char*)0, (char*)0,
06930 (char*)0, (char*)0, 0 };
06931 static KmParameter _GEANT_DRAWING_DCHIT_ISYMB = { "ISYMB", 5,
06932 "Character selection number", "0", (char*)0, 8, 0, (char**)0, 0, (char**)0,
06933 (KmParFlag)0, KmTYPE_INT, &_GEANT_DRAWING_DCHIT_ISYMB_type };
06934 static KmParReal _GEANT_DRAWING_DCHIT_SIZMAX_type = { (char*)0, (char*)0,
06935 (char*)0, (char*)0, 0 };
06936 static KmParameter _GEANT_DRAWING_DCHIT_SIZMAX = { "SIZMAX", 6,
06937 "Maximum character size (cm)", "1", (char*)0, 12, 0, (char**)0, 0, (char**)0,
06938 (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DCHIT_SIZMAX_type };
06939 static KmParInt _GEANT_DRAWING_DCHIT_IHIT_type = { (char*)0, (char*)0,
06940 (char*)0, (char*)0, 0 };
06941 static KmParameter _GEANT_DRAWING_DCHIT_IHIT = { "IHIT", 4,
06942 "Index of array HITS", "4", (char*)0, 8, 0, (char**)0, 0, (char**)0,
06943 (KmParFlag)0, KmTYPE_INT, &_GEANT_DRAWING_DCHIT_IHIT_type };
06944 static KmParReal _GEANT_DRAWING_DCHIT_HITMIN_type = { (char*)0, (char*)0,
06945 (char*)0, (char*)0, 0 };
06946 static KmParameter _GEANT_DRAWING_DCHIT_HITMIN = { "HITMIN", 6,
06947 "Lower boundary of HITS(IHIT)", "0", (char*)0, 12, 0, (char**)0, 0,
06948 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DCHIT_HITMIN_type };
06949 static KmParReal _GEANT_DRAWING_DCHIT_HITMAX_type = { (char*)0, (char*)0,
06950 (char*)0, (char*)0, 0 };
06951 static KmParameter _GEANT_DRAWING_DCHIT_HITMAX = { "HITMAX", 6,
06952 "Upper boundary of HITS(IHIT)", "0", (char*)0, 12, 0, (char**)0, 0,
06953 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DCHIT_HITMAX_type };
06954 static KmParameter *_GEANT_DRAWING_DCHIT_parameters[] = {
06955 &_GEANT_DRAWING_DCHIT_CHUSET, &_GEANT_DRAWING_DCHIT_CHUDET,
06956 &_GEANT_DRAWING_DCHIT_ITRA, &_GEANT_DRAWING_DCHIT_ISYMB,
06957 &_GEANT_DRAWING_DCHIT_SIZMAX, &_GEANT_DRAWING_DCHIT_IHIT,
06958 &_GEANT_DRAWING_DCHIT_HITMIN, &_GEANT_DRAWING_DCHIT_HITMAX };
06959 static char *_GEANT_DRAWING_DCHIT_guidance[] = {
06960 " CALL GDCHIT(chuset,chudet,itra,isymb,sizmax,ihit,hitmin,hitmax)",
06961 "The character plotted at each hit point may be chosen via",
06962 "CSYMB; isymb is composed as:",
06963 " -1 (small) hardware points (fast)",
06964 " 0 software crosses (default)",
06965 " 840,850 empty/full circles (slow)",
06966 " 841,851 empty/full squares (slow)",
06967 " 842,852 empty/full triangles (up) (slow)",
06968 " 843,853 empty diamond/full triangle (down) (slow)",
06969 " 844,854 empty/full stars (slow)",
06970 "Except for isymb=-1 the SIZE of the character on the screen",
06971 "is a function of HITS(IHIT), the array containing the calorimeter",
06972 "quantity, with HITMIN and HITMAX defining its range.",
06973 "The maximum character size (used in overflow) is SIZMAX.",
06974 " SIZE = SIZMAX * ( HITS(IHIT) - HITMIN ) / HITMAX" };
06975 static KmCommand _GEANT_DRAWING_DCHIT = { &_GEANT_DRAWING_DUVIEW,
06976 "/GEANT/DRAWING/DCHIT", "DCHIT", 0, 2, 8, 0, _GEANT_DRAWING_DCHIT_parameters,
06977 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 15,
06978 _GEANT_DRAWING_DCHIT_guidance, 0, (char**)0, (char*)0, (int*)0 };
06979
06980 static KmParameter _GEANT_DRAWING_KHITS_CHUSET = { "CHUSET", 6,
06981 "User set identifier", "*", (char*)0, 20, 0, (char**)0, 0, (char**)0,
06982 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
06983 static KmParameter _GEANT_DRAWING_KHITS_CHUDET = { "CHUDET", 6,
06984 "User detector identifier", "*", (char*)0, 20, 0, (char**)0, 0, (char**)0,
06985 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
06986 static KmParReal _GEANT_DRAWING_KHITS_EPSILO_type = { (char*)0, (char*)0,
06987 (char*)0, (char*)0, 0 };
06988 static KmParameter _GEANT_DRAWING_KHITS_EPSILO = { "EPSILO", 6,
06989 "Pick aperture", "0.1", (char*)0, 12, 0, (char**)0, 0, (char**)0,
06990 (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_KHITS_EPSILO_type };
06991 static KmParameter *_GEANT_DRAWING_KHITS_parameters[] = {
06992 &_GEANT_DRAWING_KHITS_CHUSET, &_GEANT_DRAWING_KHITS_CHUDET,
06993 &_GEANT_DRAWING_KHITS_EPSILO };
06994 static char *_GEANT_DRAWING_KHITS_guidance[] = {
06995 " CALL GKHITS(chuset,chudet,epsilo)",
06996 "The picking of hit points requires the appropriate JSET data structure",
06997 "have been filled",
06998 "and is repeated until the character typed is 'Q' or 'q' (GKS) or the",
06999 "right button of the mouse is clicked (X11).",
07000 "If the character typed to pick is 'K' or 'k' then the",
07001 "kinematics of the corresponding track is also printed.",
07002 "The search is made of all the hits of all tracks in",
07003 "detector CHUDET of set CHUSET.",
07004 "EPSILO is the pick aperture; if EPSILO<0 its absolute value is taken",
07005 "and in addition the pick aperture is drawn; if EPSILO=0",
07006 "there is an infinite pick aperture and",
07007 "over all the hits the one nearest to the pick point is taken." };
07008 static KmCommand _GEANT_DRAWING_KHITS = { &_GEANT_DRAWING_DCHIT,
07009 "/GEANT/DRAWING/KHITS", "KHITS", 0, 2, 3, 0, _GEANT_DRAWING_KHITS_parameters,
07010 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 13,
07011 _GEANT_DRAWING_KHITS_guidance, 0, (char**)0, (char*)0, (int*)0 };
07012
07013 static KmParameter _GEANT_DRAWING_DHITS_CHUSET = { "CHUSET", 6,
07014 "User set identifier", "*", (char*)0, 20, 0, (char**)0, 0, (char**)0,
07015 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
07016 static KmParameter _GEANT_DRAWING_DHITS_CHUDET = { "CHUDET", 6,
07017 "User detector identifier", "*", (char*)0, 20, 0, (char**)0, 0, (char**)0,
07018 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
07019 static KmParInt _GEANT_DRAWING_DHITS_ITRA_type = { (char*)0, (char*)0,
07020 (char*)0, (char*)0, 0 };
07021 static KmParameter _GEANT_DRAWING_DHITS_ITRA = { "ITRA", 4,
07022 "Number of the selected track", "0", (char*)0, 8, 0, (char**)0, 0, (char**)0,
07023 (KmParFlag)0, KmTYPE_INT, &_GEANT_DRAWING_DHITS_ITRA_type };
07024 static KmParInt _GEANT_DRAWING_DHITS_ISYMB_type = { (char*)0, (char*)0,
07025 (char*)0, (char*)0, 0 };
07026 static KmParameter _GEANT_DRAWING_DHITS_ISYMB = { "ISYMB", 5,
07027 "Character selection number", "0", (char*)0, 8, 0, (char**)0, 0, (char**)0,
07028 (KmParFlag)0, KmTYPE_INT, &_GEANT_DRAWING_DHITS_ISYMB_type };
07029 static KmParReal _GEANT_DRAWING_DHITS_SSYMB_type = { (char*)0, (char*)0,
07030 (char*)0, (char*)0, 0 };
07031 static KmParameter _GEANT_DRAWING_DHITS_SSYMB = { "SSYMB", 5,
07032 "Size of characters (cm)", "0.1", (char*)0, 12, 0, (char**)0, 0, (char**)0,
07033 (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DHITS_SSYMB_type };
07034 static KmParameter *_GEANT_DRAWING_DHITS_parameters[] = {
07035 &_GEANT_DRAWING_DHITS_CHUSET, &_GEANT_DRAWING_DHITS_CHUDET,
07036 &_GEANT_DRAWING_DHITS_ITRA, &_GEANT_DRAWING_DHITS_ISYMB,
07037 &_GEANT_DRAWING_DHITS_SSYMB };
07038 static char *_GEANT_DRAWING_DHITS_guidance[] = {
07039 "CALL GDHITS(chuset,chudet,itra,isymb,ssymb).",
07040 "The character plotted at each hit point may be chosen by isymb :",
07041 " -1 (small) hardware points (fast)",
07042 " 0 software crosses (default)",
07043 " 840,850 empty/full circles (slow)",
07044 " 841,851 empty/full squares (slow)",
07045 " 842,852 empty/full triangles (up) (slow)",
07046 " 843,853 empty diamond/full triangle (down) (slow)",
07047 " 844,854 empty/full stars (slow)",
07048 "Except for isymb=-1, the size of the character on the screen can be",
07049 "chosen by SSYMB cm. The hit colour will follow the value of TXCI (text",
07050 "colour) for isymb>0, the value of PMCI (polymarkers colour) for isymb<0,",
07051 "the value of PLCI (polyline colour) for isymb=0." };
07052 static KmCommand _GEANT_DRAWING_DHITS = { &_GEANT_DRAWING_KHITS,
07053 "/GEANT/DRAWING/DHITS", "DHITS", 0, 2, 5, 0, _GEANT_DRAWING_DHITS_parameters,
07054 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 13,
07055 _GEANT_DRAWING_DHITS_guidance, 0, (char**)0, (char*)0, (int*)0 };
07056
07057 static KmParInt _GEANT_DRAWING_DPART_ITRA_type = { (char*)0, (char*)0,
07058 (char*)0, (char*)0, 0 };
07059 static KmParameter _GEANT_DRAWING_DPART_ITRA = { "ITRA", 4, "Track number",
07060 "0", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
07061 &_GEANT_DRAWING_DPART_ITRA_type };
07062 static KmParInt _GEANT_DRAWING_DPART_ISEL_type = { (char*)0, (char*)0,
07063 (char*)0, (char*)0, 0 };
07064 static KmParameter _GEANT_DRAWING_DPART_ISEL = { "ISEL", 4, "Option flag",
07065 "11", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
07066 &_GEANT_DRAWING_DPART_ISEL_type };
07067 static KmParReal _GEANT_DRAWING_DPART_SIZE_type = { (char*)0, (char*)0,
07068 (char*)0, (char*)0, 0 };
07069 static KmParameter _GEANT_DRAWING_DPART_SIZE = { "SIZE", 4,
07070 "Character size (cm) for particle names", "0.25", (char*)0, 12, 0, (char**)0,
07071 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DPART_SIZE_type };
07072 static KmParameter *_GEANT_DRAWING_DPART_parameters[] = {
07073 &_GEANT_DRAWING_DPART_ITRA, &_GEANT_DRAWING_DPART_ISEL,
07074 &_GEANT_DRAWING_DPART_SIZE };
07075 static char *_GEANT_DRAWING_DPART_guidance[] = {
07076 " CALL GDPART(itra,isel,size)", " isel=x1 to draw the track number",
07077 " isel=1x to draw the particle name" };
07078 static KmCommand _GEANT_DRAWING_DPART = { &_GEANT_DRAWING_DHITS,
07079 "/GEANT/DRAWING/DPART", "DPART", 0, 2, 3, 0, _GEANT_DRAWING_DPART_parameters,
07080 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
07081 _GEANT_DRAWING_DPART_guidance, 0, (char**)0, (char*)0, (int*)0 };
07082
07083 static KmParReal _GEANT_DRAWING_KXYZ_EPSILO_type = { (char*)0, (char*)0,
07084 (char*)0, (char*)0, 0 };
07085 static KmParameter _GEANT_DRAWING_KXYZ_EPSILO = { "EPSILO", 6, "Delta angle",
07086 "0.25", (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
07087 &_GEANT_DRAWING_KXYZ_EPSILO_type };
07088 static KmParameter *_GEANT_DRAWING_KXYZ_parameters[] = {
07089 &_GEANT_DRAWING_KXYZ_EPSILO };
07090 static char *_GEANT_DRAWING_KXYZ_guidance[] = { " CALL GKXYZ(epsilo)",
07091 "The picking of track points requires the JXYZ data structure",
07092 "and is repeated until the character typed is 'Q' or 'q' (GKS)",
07093 "or the right button of the mouse is clicked (X11).",
07094 "EPSILO is the delta angle used for picking; if EPSILO=0",
07095 "there is no optimization performed and",
07096 "over all the track points the one nearest to the pick", "point is taken." };
07097 static KmCommand _GEANT_DRAWING_KXYZ = { &_GEANT_DRAWING_DPART,
07098 "/GEANT/DRAWING/KXYZ", "KXYZ", 0, 2, 1, 0, _GEANT_DRAWING_KXYZ_parameters, 0,
07099 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 8,
07100 _GEANT_DRAWING_KXYZ_guidance, 0, (char**)0, (char*)0, (int*)0 };
07101
07102 static KmParInt _GEANT_DRAWING_DXYZ_ITRA_type = { (char*)0, (char*)0,
07103 (char*)0, (char*)0, 0 };
07104 static KmParameter _GEANT_DRAWING_DXYZ_ITRA = { "ITRA", 4, "Track number",
07105 "0", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
07106 &_GEANT_DRAWING_DXYZ_ITRA_type };
07107 static KmParameter *_GEANT_DRAWING_DXYZ_parameters[] = {
07108 &_GEANT_DRAWING_DXYZ_ITRA };
07109 static char *_GEANT_DRAWING_DXYZ_guidance[] = { " CALL GDXYZ(itra)",
07110 "Draw tracks previously stored via GSXYZ." };
07111 static KmCommand _GEANT_DRAWING_DXYZ = { &_GEANT_DRAWING_KXYZ,
07112 "/GEANT/DRAWING/DXYZ", "DXYZ", 0, 2, 1, 0, _GEANT_DRAWING_DXYZ_parameters, 0,
07113 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 2,
07114 _GEANT_DRAWING_DXYZ_guidance, 0, (char**)0, (char*)0, (int*)0 };
07115
07116 static KmParReal _GEANT_DRAWING_ZOOM_ZFU_type = { (char*)0, (char*)0,
07117 (char*)0, (char*)0, 0 };
07118 static KmParameter _GEANT_DRAWING_ZOOM_ZFU = { "ZFU", 3,
07119 "Zoom factor for U-coord. (horizontal)", "2.", (char*)0, 12, 0, (char**)0, 0,
07120 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_ZOOM_ZFU_type };
07121 static KmParReal _GEANT_DRAWING_ZOOM_ZFV_type = { (char*)0, (char*)0,
07122 (char*)0, (char*)0, 0 };
07123 static KmParameter _GEANT_DRAWING_ZOOM_ZFV = { "ZFV", 3,
07124 "Zoom factor for V-coord. (vertical)", "2.", (char*)0, 12, 0, (char**)0, 0,
07125 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_ZOOM_ZFV_type };
07126 static KmParInt _GEANT_DRAWING_ZOOM_ISEL_type = { (char*)0, (char*)0,
07127 (char*)0, (char*)0, 0 };
07128 static KmParameter _GEANT_DRAWING_ZOOM_ISEL = { "ISEL", 4, "Options", "1",
07129 (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
07130 &_GEANT_DRAWING_ZOOM_ISEL_type };
07131 static KmParReal _GEANT_DRAWING_ZOOM_UZ0_type = { "0.", "20.", "0.", "20.",
07132 0 };
07133 static KmParameter _GEANT_DRAWING_ZOOM_UZ0 = { "UZ0", 3,
07134 "U-coord. of the centre of zoom rectangle", "10.", (char*)0, 12, 0,
07135 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
07136 &_GEANT_DRAWING_ZOOM_UZ0_type };
07137 static KmParReal _GEANT_DRAWING_ZOOM_VZ0_type = { "0.", "20.", "0.", "20.",
07138 0 };
07139 static KmParameter _GEANT_DRAWING_ZOOM_VZ0 = { "VZ0", 3,
07140 "V-coord. of the centre of zoom rectangle", "10.", (char*)0, 12, 0,
07141 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
07142 &_GEANT_DRAWING_ZOOM_VZ0_type };
07143 static KmParReal _GEANT_DRAWING_ZOOM_U0_type = { "0.", "20.", "0.", "20.", 0
07144 };
07145 static KmParameter _GEANT_DRAWING_ZOOM_U0 = { "U0", 2,
07146 "U-coord. of the centre of resulting zoomed rectangle", "10.", (char*)0, 12,
07147 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
07148 &_GEANT_DRAWING_ZOOM_U0_type };
07149 static KmParReal _GEANT_DRAWING_ZOOM_V0_type = { "0.", "20.", "0.", "20.", 0
07150 };
07151 static KmParameter _GEANT_DRAWING_ZOOM_V0 = { "V0", 2,
07152 "V-coord. of the centre of resulting zoomed rectangle", "10.", (char*)0, 12,
07153 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
07154 &_GEANT_DRAWING_ZOOM_V0_type };
07155 static KmParameter *_GEANT_DRAWING_ZOOM_parameters[] = {
07156 &_GEANT_DRAWING_ZOOM_ZFU, &_GEANT_DRAWING_ZOOM_ZFV,
07157 &_GEANT_DRAWING_ZOOM_ISEL, &_GEANT_DRAWING_ZOOM_UZ0,
07158 &_GEANT_DRAWING_ZOOM_VZ0, &_GEANT_DRAWING_ZOOM_U0, &_GEANT_DRAWING_ZOOM_V0 };
07159 static char *_GEANT_DRAWING_ZOOM_guidance[] = {
07160 " CALL GDZOOM(zfu,zfv,uz0,vz0,u0,v0)",
07161 "This command sets the zoom parameters that will be used by",
07162 "subsequent calls to the drawing routines. Each zoom operation is always",
07163 "relative to the status of the current zoom parameters.",
07164 "The scale factors in u,v are respectively zfu,zfv.",
07165 "zfu=0 (or zfv=0) will act as a reset (i.e. unzoomed viewing).",
07166 "The zoom is computed around uz0,vz0 (user coordinates),",
07167 "and the resulting picture will be centered at u0,v0.",
07168 "The use of the space bar is replaced by the left button of the mouse",
07169 "running with X11:", "If isel=0 :", " 1. position the cursor at (uz0,vz0)",
07170 " 2. type the space bar (GKS)", "(u0,v0 are chosen at centre of screen)",
07171 "If isel=1 :", " 1. position the cursor at first corner of zoom rectangle",
07172 " 2. type the space bar (GKS)",
07173 " 3. position the cursor at second corner of zoom rectangle",
07174 " 4. type the space bar (GKS)",
07175 "(zfu,zfv are chosen according to the zoom rectangle;",
07176 "uz0,vz0 are chosen at the centre of the zoom rectangle;",
07177 "u0,v0 are chosen at centre of screen)", "If isel=2 :",
07178 " 1. position the cursor at (uz0,vz0)", " 2. type the space bar (GKS)",
07179 " 3. position the cursor at (u0,v0)", " 4. type the space bar (GKS)",
07180 "If isel=1000+n and running with X-windows:",
07181 " 1. n must be the identifier of an active view bank",
07182 " 2. clicking on the left button of the mouse will display",
07183 " a zoomed view (computed around the cursor position) of",
07184 " the previous drawing in a new window",
07185 " 3. it is now possible to iterate the zooming from the new window",
07186 " 4. clicking on the right button will return the control to the",
07187 " main window",
07188 " 5. clicking on the left button it is possible to open new windows",
07189 " zooming in other points of the detector",
07190 " 6. clicking on the right button when the main window is active",
07191 " will return the control to the 'command mode'." };
07192 static KmCommand _GEANT_DRAWING_ZOOM = { &_GEANT_DRAWING_DXYZ,
07193 "/GEANT/DRAWING/ZOOM", "ZOOM", 0, 2, 7, 0, _GEANT_DRAWING_ZOOM_parameters, 0,
07194 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 39,
07195 _GEANT_DRAWING_ZOOM_guidance, 0, (char**)0, (char*)0, (int*)0 };
07196
07197 static KmParInt _GEANT_DRAWING_LENS_KNUM_type = { (char*)0, (char*)0,
07198 (char*)0, (char*)0, 0 };
07199 static KmParameter _GEANT_DRAWING_LENS_KNUM = { "KNUM", 4,
07200 "View bank identifier", "1", (char*)0, 8, 0, (char**)0, 0, (char**)0,
07201 (KmParFlag)0, KmTYPE_INT, &_GEANT_DRAWING_LENS_KNUM_type };
07202 static KmParameter _GEANT_DRAWING_LENS_KSAM = { "KSAM", 4,
07203 "Sample mode ", "OFF ", (char*)0, 20, 0, (char**)0, 0, (char**)0,
07204 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
07205 static KmParameter *_GEANT_DRAWING_LENS_parameters[] = {
07206 &_GEANT_DRAWING_LENS_KNUM, &_GEANT_DRAWING_LENS_KSAM };
07207 static char *_GEANT_DRAWING_LENS_guidance[] = {
07208 "Interactive zooming for detectors and events when running",
07209 "with X-windows. Using this command, when showing the contents of a",
07210 "view bank, it is possible to click (left button) in two points of the",
07211 "drawing (which will represent the left upper corner and the right",
07212 "bottom corner of the part to be zoomed). After the second click",
07213 "a new 'window' will appear to fit the frame defined",
07214 "by the two clicks and it will show a zoomed view as seen from a",
07215 "lens with those dimensions. Clicking now the central button will",
07216 "translate the lens over the drawing, while clicking the right button",
07217 "will stop it. Moreover, clicking the left button of the",
07218 "mouse, the lens will increase (or decrease) its magnification",
07219 "power according to the backward-to-forward movement of the mouse.",
07220 "A click on the right button will stop this action and it is possible",
07221 "to restart the translation of the lens or, clicking",
07222 "on the right button again, to make the lens disappear. It is then possible",
07223 "to open another 'window-lens' with different dimensions. Thus,",
07224 "this command can be useful to scan detailed parts of a detector or",
07225 "to scan hits and showers for events. Clicking the right",
07226 "button when no lens is displayed will return the control to the",
07227 "'command mode'. The LENS is also available in sample mode when KSAM is",
07228 "'ON'.", "The following commands will fill a view bank and will",
07229 "allow to scan the detector and an event previously stored",
07230 "via the use of LENS (when running", "with X-windows):", " EXAMPLE -",
07231 " satt * seen 1", " dopen 1", " draw NAME 40 40 0 10 10 .01 .01", " dxyz 0",
07232 " dhits * * 0 0 .2", " dclose", " dsh 1", " lens 1 on" };
07233 static KmCommand _GEANT_DRAWING_LENS = { &_GEANT_DRAWING_ZOOM,
07234 "/GEANT/DRAWING/LENS", "LENS", 0, 2, 2, 1, _GEANT_DRAWING_LENS_parameters, 0,
07235 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 34,
07236 _GEANT_DRAWING_LENS_guidance, 0, (char**)0, (char*)0, (int*)0 };
07237
07238 static KmParameter _GEANT_DRAWING_PERSP_NAME = { "NAME", 4, "Volume name",
07239 " ", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
07240 (void*)0 };
07241 static KmParReal _GEANT_DRAWING_PERSP_DISTT_type = { (char*)0, (char*)0,
07242 (char*)0, (char*)0, 0 };
07243 static KmParameter _GEANT_DRAWING_PERSP_DISTT = { "DISTT", 5,
07244 "Volume distance from observer", "1000.", (char*)0, 12, 0, (char**)0, 0,
07245 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_PERSP_DISTT_type };
07246 static KmParameter _GEANT_DRAWING_PERSP_SAMP = { "SAMP", 4,
07247 "Control to the mouse", "OFF ", (char*)0, 20, 0, (char**)0, 0, (char**)0,
07248 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
07249 static KmParameter *_GEANT_DRAWING_PERSP_parameters[] = {
07250 &_GEANT_DRAWING_PERSP_NAME, &_GEANT_DRAWING_PERSP_DISTT,
07251 &_GEANT_DRAWING_PERSP_SAMP };
07252 static char *_GEANT_DRAWING_PERSP_guidance[] = {
07253 "To control the perspective according to the variation of the distance",
07254 "between the observer and the object (if PROJ has the value PERS).",
07255 "If SAMP is ON the control of the distance is given via the mouse." };
07256 static KmCommand _GEANT_DRAWING_PERSP = { &_GEANT_DRAWING_LENS,
07257 "/GEANT/DRAWING/PERSP", "PERSP", 0, 2, 3, 2, _GEANT_DRAWING_PERSP_parameters,
07258 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
07259 _GEANT_DRAWING_PERSP_guidance, 0, (char**)0, (char*)0, (int*)0 };
07260
07261 static KmParameter _GEANT_DRAWING_MOVE3D_NAME = { "NAME", 4, "Volume name",
07262 " ", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
07263 (void*)0 };
07264 static KmParReal _GEANT_DRAWING_MOVE3D_THETA_type = { "0.", "180.", "0.",
07265 "180.", 0 };
07266 static KmParameter _GEANT_DRAWING_MOVE3D_THETA = { "THETA", 5,
07267 "Viewing angle theta (for 3D projection)", "40.", (char*)0, 12, 0, (char**)0,
07268 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_MOVE3D_THETA_type };
07269 static KmParReal _GEANT_DRAWING_MOVE3D_PHI_type = { "0.", "360.", "0.",
07270 "360.", 0 };
07271 static KmParameter _GEANT_DRAWING_MOVE3D_PHI = { "PHI", 3,
07272 "Viewing angle phi (for 3D projection)", "40.", (char*)0, 12, 0, (char**)0,
07273 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_MOVE3D_PHI_type };
07274 static KmParReal _GEANT_DRAWING_MOVE3D_PSI_type = { "0.", "180.", "0.",
07275 "180.", 0 };
07276 static KmParameter _GEANT_DRAWING_MOVE3D_PSI = { "PSI", 3,
07277 "Viewing angle psi (for 2D rotation)", "0.", (char*)0, 12, 0, (char**)0, 0,
07278 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_MOVE3D_PSI_type };
07279 static KmParReal _GEANT_DRAWING_MOVE3D_U0_type = { "0.", "20.", "0.", "20.",
07280 0 };
07281 static KmParameter _GEANT_DRAWING_MOVE3D_U0 = { "U0", 2,
07282 "U-coord. (horizontal) of volume origin", "10.", (char*)0, 12, 0, (char**)0,
07283 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_MOVE3D_U0_type };
07284 static KmParReal _GEANT_DRAWING_MOVE3D_V0_type = { "0.", "20.", "0.", "20.",
07285 0 };
07286 static KmParameter _GEANT_DRAWING_MOVE3D_V0 = { "V0", 2,
07287 "V-coord. (vertical) of volume origin", "10.", (char*)0, 12, 0, (char**)0, 0,
07288 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_MOVE3D_V0_type };
07289 static KmParReal _GEANT_DRAWING_MOVE3D_SU_type = { (char*)0, (char*)0,
07290 (char*)0, (char*)0, 0 };
07291 static KmParameter _GEANT_DRAWING_MOVE3D_SU = { "SU", 2,
07292 "Scale factor for U-coord.", "0.01", (char*)0, 12, 0, (char**)0, 0,
07293 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_MOVE3D_SU_type };
07294 static KmParReal _GEANT_DRAWING_MOVE3D_SV_type = { (char*)0, (char*)0,
07295 (char*)0, (char*)0, 0 };
07296 static KmParameter _GEANT_DRAWING_MOVE3D_SV = { "SV", 2,
07297 "Scale factor for V-coord.", "0.01", (char*)0, 12, 0, (char**)0, 0,
07298 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_MOVE3D_SV_type };
07299 static KmParReal _GEANT_DRAWING_MOVE3D_SZ_type = { "0.1", "10.", "0.1",
07300 "10.", 1 };
07301 static KmParameter _GEANT_DRAWING_MOVE3D_SZ = { "SZ", 2, "Scale zoom factor",
07302 "1.", (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
07303 &_GEANT_DRAWING_MOVE3D_SZ_type };
07304 static char *_GEANT_DRAWING_MOVE3D_NOPT_range[] = { "T", "H" };
07305 static char *_GEANT_DRAWING_MOVE3D_NOPT_text[] = { (char*)0, (char*)0 };
07306 static KmParOption _GEANT_DRAWING_MOVE3D_NOPT_type = {
07307 _GEANT_DRAWING_MOVE3D_NOPT_text, (int*)0, (int*)0 };
07308 static KmParameter _GEANT_DRAWING_MOVE3D_NOPT = { "NOPT", 4,
07309 "T=tracks,H=hits", " ", (char*)0, 8, 2, _GEANT_DRAWING_MOVE3D_NOPT_range,
07310 2, _GEANT_DRAWING_MOVE3D_NOPT_range, (KmParFlag)0, KmTYPE_OPTION,
07311 &_GEANT_DRAWING_MOVE3D_NOPT_type };
07312 static KmParameter *_GEANT_DRAWING_MOVE3D_parameters[] = {
07313 &_GEANT_DRAWING_MOVE3D_NAME, &_GEANT_DRAWING_MOVE3D_THETA,
07314 &_GEANT_DRAWING_MOVE3D_PHI, &_GEANT_DRAWING_MOVE3D_PSI,
07315 &_GEANT_DRAWING_MOVE3D_U0, &_GEANT_DRAWING_MOVE3D_V0,
07316 &_GEANT_DRAWING_MOVE3D_SU, &_GEANT_DRAWING_MOVE3D_SV,
07317 &_GEANT_DRAWING_MOVE3D_SZ, &_GEANT_DRAWING_MOVE3D_NOPT };
07318 static char *_GEANT_DRAWING_MOVE3D_guidance[] = {
07319 "Same functionality of the command MOVE interfaced with MOTIF." };
07320 static KmCommand _GEANT_DRAWING_MOVE3D = { &_GEANT_DRAWING_PERSP,
07321 "/GEANT/DRAWING/MOVE3D", "MOVE3D", 0, 2, 10, 1,
07322 _GEANT_DRAWING_MOVE3D_parameters, 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0,
07323 (pCharFunc*)0, 1, _GEANT_DRAWING_MOVE3D_guidance, 0, (char**)0, (char*)0,
07324 (int*)0 };
07325
07326 static KmParameter _GEANT_DRAWING_MOVE_NAME = { "NAME", 4, "Volume name",
07327 " ", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
07328 (void*)0 };
07329 static KmParameter _GEANT_DRAWING_MOVE_NOPT = { "NOPT", 4,
07330 "S=sample mode,T=tracks,H=hits", " ", (char*)0, 20, 0, (char**)0, 0,
07331 (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
07332 static KmParameter *_GEANT_DRAWING_MOVE_parameters[] = {
07333 &_GEANT_DRAWING_MOVE_NAME, &_GEANT_DRAWING_MOVE_NOPT };
07334 static char *_GEANT_DRAWING_MOVE_guidance[] = {
07335 "Positioning some daughter volumes inside a 'mother', it can be",
07336 "important to check if overlaps between such volumes have occurred.",
07337 "Instead of putting the drawing in a view bank, zooming, and iterating",
07338 "the process for different viewing angles of the same detector, the",
07339 "MOVE facility has been developed (for machines running with X11):",
07340 "it is sufficient to draw a view of the volumes to be analysed (after",
07341 "setting the proper SEEN, COLO, etc. attributes) and then to enter",
07342 "'MOVE' followed by the same 'NAME' used for the last command DRAW.",
07343 "The detector will appear in a panel with five buttons at the",
07344 "bottom: THETA, PHI, TRASL, ZOOM, OFF. Clicking on the left button",
07345 "of the mouse, when the cursor is inside the THETA area, will rotate the",
07346 "detector along the polar angle theta according to the",
07347 "backward-to-forward movement of the mouse",
07348 "(clicking up and down the left button if",
07349 "not in sample mode); clicking on the right button of",
07350 "the mouse will stop the rotation; clicking now on the",
07351 "left button of the mouse when inside the PHI area will activate a",
07352 "rotation along the polar angle phi. In the same way, activating the",
07353 "TRASL button, the detector can be translated in the u,v plane",
07354 "of the screen according to the 2D-movement of the mouse. Finally,",
07355 "activating the ZOOM button, the detector will be zoomed (or unzoomed)",
07356 "according to the backward-to-forward movement of the mouse. Clicking on\
07357 the", "OFF button will return the control to the 'command mode'. The MOVE",
07358 "command will work also with hidden line removal and shading options",
07359 "(when SHAD is on the background will be black);",
07360 "moreover, if the volumes are clipped, exploded, shifted, etc., they",
07361 "will be 'MOVED' with these features as well.",
07362 "Tracks and hits of a previously stored physical event can be moved",
07363 "together with the detector, allowing a dynamical 3-D analysis of the",
07364 "simulated events. Clicking the central button of the mouse when a good",
07365 "view of the event is found, will stop any movement and the mouse will",
07366 "allow the normal picking capabilities first for the tracks and then for",
07367 "the hits. After clicking of the right button, the normal",
07368 "movement will restart to find another interesting view of the event",
07369 "and to iterate the process.", "The MOVE is also available in sample mode.",
07370 "The following commands will produce a drawing of a volume",
07371 "and then will give the control to the MOVE panel; try the following",
07372 "possibilities:", " EXAMPLE 1 -", " dopt hide off", " satt * seen -2",
07373 " draw NAME 40 40 0 10 10 .01 .01", " move NAME", " EXAMPLE 2 -",
07374 " dopt hide on", " satt * seen -2", " draw NAME 40 40 0 10 10 .01 .01",
07375 " move NAME", " EXAMPLE 3 -", " dopt shad on", " satt * colo 3",
07376 " satt * fill 2", " dopt edge off", " draw NAME 40 40 0 10 10 .01 .01",
07377 " move NAME" };
07378 static KmCommand _GEANT_DRAWING_MOVE = { &_GEANT_DRAWING_MOVE3D,
07379 "/GEANT/DRAWING/MOVE", "MOVE", 0, 2, 2, 1, _GEANT_DRAWING_MOVE_parameters, 0,
07380 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 56,
07381 _GEANT_DRAWING_MOVE_guidance, 0, (char**)0, (char*)0, (int*)0 };
07382
07383 static char *_GEANT_DRAWING_PICK_guidance[] = {
07384 "Activates graphic input to identify detector elements",
07385 "in a cut view. Clicking on the left button of the mouse when",
07386 "the cursor is in a given point of the drawing and clicking again",
07387 "(outside the detector) will produce the following effect:",
07388 "a line joininig the two points will be drawn together with",
07389 "the name and the medium number of the volume picked",
07390 "with the first clicking close to the second point." };
07391 static KmCommand _GEANT_DRAWING_PICK = { &_GEANT_DRAWING_MOVE,
07392 "/GEANT/DRAWING/PICK", "PICK", 0, 2, 0, 0, (KmParameter**)0, 0, 0, gxpick_,
07393 (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 7, _GEANT_DRAWING_PICK_guidance,
07394 0, (char**)0, (char*)0, (int*)0 };
07395
07396 static char *_GEANT_DRAWING_MEASURE_guidance[] = {
07397 "Position the cursor on the first point (u1,v1) and hit the space bar(GKS).",
07398 "Position the cursor on the second point (u2,v2) and hit the space\
07399 bar(GKS).",
07400 "Clicking the left button of the mouse (X11) will have the same effect as",
07401 "hiting the space bar (GKS).",
07402 "The command will compute and print the distance in space separating",
07403 "the two points on the projection view. It can be useful to measure",
07404 "distances either between volumes or between tracks or hits." };
07405 static KmCommand _GEANT_DRAWING_MEASURE = { &_GEANT_DRAWING_PICK,
07406 "/GEANT/DRAWING/MEASURE", "MEASURE", 0, 2, 0, 0, (KmParameter**)0, 0, 0,
07407 gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 7,
07408 _GEANT_DRAWING_MEASURE_guidance, 0, (char**)0, (char*)0, (int*)0 };
07409
07410 static KmParInt _GEANT_DRAWING_DHEAD_ISEL_type = { (char*)0, (char*)0,
07411 (char*)0, (char*)0, 0 };
07412 static KmParameter _GEANT_DRAWING_DHEAD_ISEL = { "ISEL", 4, "Option flag",
07413 "111110", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
07414 &_GEANT_DRAWING_DHEAD_ISEL_type };
07415 static KmParameter _GEANT_DRAWING_DHEAD_NAME = { "NAME", 4, "Title", " ",
07416 (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
07417 (void*)0 };
07418 static KmParReal _GEANT_DRAWING_DHEAD_CHRSIZ_type = { (char*)0, (char*)0,
07419 (char*)0, (char*)0, 0 };
07420 static KmParameter _GEANT_DRAWING_DHEAD_CHRSIZ = { "CHRSIZ", 6,
07421 "Character size (cm) of title NAME", "0.6", (char*)0, 12, 0, (char**)0, 0,
07422 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DHEAD_CHRSIZ_type };
07423 static KmParameter *_GEANT_DRAWING_DHEAD_parameters[] = {
07424 &_GEANT_DRAWING_DHEAD_ISEL, &_GEANT_DRAWING_DHEAD_NAME,
07425 &_GEANT_DRAWING_DHEAD_CHRSIZ };
07426 static char *_GEANT_DRAWING_DHEAD_guidance[] = {
07427 " CALL GDHEAD(isel,name,chrsiz)", "ISEL =",
07428 " 0 to have only the header lines",
07429 " xxxxx1 to add the text name centered on top of header",
07430 " xxxx1x to add global detector name (first volume) on left",
07431 " xxx1xx to add date on right",
07432 " xx1xxx to select thick characters for text on top of header",
07433 " x1xxxx to add the text 'EVENT NR x' on top of header",
07434 " 1xxxxx to add the text 'RUN NR x' on top of header",
07435 "NOTE that ISEL=x1xxx1 or ISEL=1xxxx1 are illegal choices,",
07436 "i.e. they generate overwritten text.", "NAME is the title",
07437 "and CHRSIZ the character size in cm of text name." };
07438 static KmCommand _GEANT_DRAWING_DHEAD = { &_GEANT_DRAWING_MEASURE,
07439 "/GEANT/DRAWING/DHEAD", "DHEAD", 0, 2, 3, 0, _GEANT_DRAWING_DHEAD_parameters,
07440 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 13,
07441 _GEANT_DRAWING_DHEAD_guidance, 0, (char**)0, (char*)0, (int*)0 };
07442
07443 static KmParReal _GEANT_DRAWING_DMAN_U_type = { (char*)0, (char*)0,
07444 (char*)0, (char*)0, 0 };
07445 static KmParameter _GEANT_DRAWING_DMAN_U = { "U", 1,
07446 "U-coord. (horizontal) of the centre of man", (char*)0, (char*)0, 12, 0,
07447 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
07448 &_GEANT_DRAWING_DMAN_U_type };
07449 static KmParReal _GEANT_DRAWING_DMAN_V_type = { (char*)0, (char*)0,
07450 (char*)0, (char*)0, 0 };
07451 static KmParameter _GEANT_DRAWING_DMAN_V = { "V", 1,
07452 "V-coord. (vertical) of the centre of man", (char*)0, (char*)0, 12, 0,
07453 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
07454 &_GEANT_DRAWING_DMAN_V_type };
07455 static char *_GEANT_DRAWING_DMAN_TYPE_range[] = { "MAN", "WM1", "WM2", "WM3" };
07456 static char *_GEANT_DRAWING_DMAN_TYPE_text[] = { (char*)0, (char*)0, (char*)0,
07457 (char*)0 };
07458 static KmParOption _GEANT_DRAWING_DMAN_TYPE_type = {
07459 _GEANT_DRAWING_DMAN_TYPE_text, (int*)0, (int*)0 };
07460 static KmParameter _GEANT_DRAWING_DMAN_TYPE = { "TYPE", 4,
07461 "Man, Wm1, Wm2, Wm3", "MAN", (char*)0, 8, 4, _GEANT_DRAWING_DMAN_TYPE_range,
07462 4, _GEANT_DRAWING_DMAN_TYPE_range, (KmParFlag)0, KmTYPE_OPTION,
07463 &_GEANT_DRAWING_DMAN_TYPE_type };
07464 static KmParameter *_GEANT_DRAWING_DMAN_parameters[] = {
07465 &_GEANT_DRAWING_DMAN_U, &_GEANT_DRAWING_DMAN_V, &_GEANT_DRAWING_DMAN_TYPE };
07466 static char *_GEANT_DRAWING_DMAN_guidance[] = {
07467 " CALL GDMAN(u,v),CALL GDWMN1(u,v),CALL GDWMN2(u,v),CALL GDWMN2(u,v)",
07468 "It superimposes the picure of a man or of a woman, chosen among",
07469 "three different ones, with the same scale factors as the detector",
07470 "in the current drawing." };
07471 static KmCommand _GEANT_DRAWING_DMAN = { &_GEANT_DRAWING_DHEAD,
07472 "/GEANT/DRAWING/DMAN", "DMAN", 0, 2, 3, 3, _GEANT_DRAWING_DMAN_parameters, 0,
07473 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
07474 _GEANT_DRAWING_DMAN_guidance, 0, (char**)0, (char*)0, (int*)0 };
07475
07476 static KmParReal _GEANT_DRAWING_DAXIS_X0_type = { (char*)0, (char*)0,
07477 (char*)0, (char*)0, 0 };
07478 static KmParameter _GEANT_DRAWING_DAXIS_X0 = { "X0", 2,
07479 "X-coord. of axis origin", (char*)0, (char*)0, 12, 0, (char**)0, 0,
07480 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DAXIS_X0_type };
07481 static KmParReal _GEANT_DRAWING_DAXIS_Y0_type = { (char*)0, (char*)0,
07482 (char*)0, (char*)0, 0 };
07483 static KmParameter _GEANT_DRAWING_DAXIS_Y0 = { "Y0", 2,
07484 "Y-coord. of axis origin", (char*)0, (char*)0, 12, 0, (char**)0, 0,
07485 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DAXIS_Y0_type };
07486 static KmParReal _GEANT_DRAWING_DAXIS_Z0_type = { (char*)0, (char*)0,
07487 (char*)0, (char*)0, 0 };
07488 static KmParameter _GEANT_DRAWING_DAXIS_Z0 = { "Z0", 2,
07489 "Z-coord. of axis origin", (char*)0, (char*)0, 12, 0, (char**)0, 0,
07490 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DAXIS_Z0_type };
07491 static KmParReal _GEANT_DRAWING_DAXIS_DX_type = { (char*)0, (char*)0,
07492 (char*)0, (char*)0, 0 };
07493 static KmParameter _GEANT_DRAWING_DAXIS_DX = { "DX", 2, "Axis size", (char*)0,
07494 (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
07495 &_GEANT_DRAWING_DAXIS_DX_type };
07496 static KmParameter *_GEANT_DRAWING_DAXIS_parameters[] = {
07497 &_GEANT_DRAWING_DAXIS_X0, &_GEANT_DRAWING_DAXIS_Y0, &_GEANT_DRAWING_DAXIS_Z0,
07498 &_GEANT_DRAWING_DAXIS_DX };
07499 static char *_GEANT_DRAWING_DAXIS_guidance[] = { " CALL GDAXIS(x0,y0,z0,dx)",
07500 "This commmand superimposes the axis of the MARS on the",
07501 "current picture. It is useful for finding immediately the",
07502 "orientation of the current drawing of the detector in the space." };
07503 static KmCommand _GEANT_DRAWING_DAXIS = { &_GEANT_DRAWING_DMAN,
07504 "/GEANT/DRAWING/DAXIS", "DAXIS", 0, 2, 4, 4, _GEANT_DRAWING_DAXIS_parameters,
07505 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
07506 _GEANT_DRAWING_DAXIS_guidance, 0, (char**)0, (char*)0, (int*)0 };
07507
07508 static KmParReal _GEANT_DRAWING_DSCALE_U_type = { (char*)0, (char*)0,
07509 (char*)0, (char*)0, 0 };
07510 static KmParameter _GEANT_DRAWING_DSCALE_U = { "U", 1,
07511 "U-coord. (horizontal) of the centre of scale", (char*)0, (char*)0, 12, 0,
07512 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
07513 &_GEANT_DRAWING_DSCALE_U_type };
07514 static KmParReal _GEANT_DRAWING_DSCALE_V_type = { (char*)0, (char*)0,
07515 (char*)0, (char*)0, 0 };
07516 static KmParameter _GEANT_DRAWING_DSCALE_V = { "V", 1,
07517 "V-coord. (vertical) of the centre of scale", (char*)0, (char*)0, 12, 0,
07518 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
07519 &_GEANT_DRAWING_DSCALE_V_type };
07520 static KmParameter *_GEANT_DRAWING_DSCALE_parameters[] = {
07521 &_GEANT_DRAWING_DSCALE_U, &_GEANT_DRAWING_DSCALE_V };
07522 static char *_GEANT_DRAWING_DSCALE_guidance[] = { " CALL GDSCAL(u,v)",
07523 "It draws a scale centered in U,V." };
07524 static KmCommand _GEANT_DRAWING_DSCALE = { &_GEANT_DRAWING_DAXIS,
07525 "/GEANT/DRAWING/DSCALE", "DSCALE", 0, 2, 2, 2,
07526 _GEANT_DRAWING_DSCALE_parameters, 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0,
07527 (pCharFunc*)0, 2, _GEANT_DRAWING_DSCALE_guidance, 0, (char**)0, (char*)0,
07528 (int*)0 };
07529
07530 static KmParameter _GEANT_DRAWING_DVECTOR_XVECT = { "XVECT", 5,
07531 "Vector containing X-coord. (horizontal)", (char*)0, (char*)0, 20, 0,
07532 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
07533 static KmParameter _GEANT_DRAWING_DVECTOR_YVECT = { "YVECT", 5,
07534 "Vector containing Y-coord. (vertical)", (char*)0, (char*)0, 20, 0,
07535 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
07536 static KmParInt _GEANT_DRAWING_DVECTOR_NPOINT_type = { (char*)0, (char*)0,
07537 (char*)0, (char*)0, 0 };
07538 static KmParameter _GEANT_DRAWING_DVECTOR_NPOINT = { "NPOINT", 6,
07539 "Number of coord.", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
07540 (KmParFlag)0, KmTYPE_INT, &_GEANT_DRAWING_DVECTOR_NPOINT_type };
07541 static KmParameter *_GEANT_DRAWING_DVECTOR_parameters[] = {
07542 &_GEANT_DRAWING_DVECTOR_XVECT, &_GEANT_DRAWING_DVECTOR_YVECT,
07543 &_GEANT_DRAWING_DVECTOR_NPOINT };
07544 static char *_GEANT_DRAWING_DVECTOR_guidance[] = {
07545 "Draw a polyline of 'npoint' point via",
07546 "a call to GDRAWV(xvect,yvect,npoint)",
07547 "where xvect and yvect are two KUIP vectors" };
07548 static KmCommand _GEANT_DRAWING_DVECTOR = { &_GEANT_DRAWING_DSCALE,
07549 "/GEANT/DRAWING/DVECTOR", "DVECTOR", 0, 2, 3, 3,
07550 _GEANT_DRAWING_DVECTOR_parameters, 0, 0, gxdraw_, (IntFunc*)0,
07551 (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_DRAWING_DVECTOR_guidance, 0,
07552 (char**)0, (char*)0, (int*)0 };
07553
07554 static KmParReal _GEANT_DRAWING_DTEXT_X0_type = { "0.", "20.", "0.", "20.",
07555 0 };
07556 static KmParameter _GEANT_DRAWING_DTEXT_X0 = { "X0", 2,
07557 "X-coord. (horizontal) of text string", "10.", (char*)0, 12, 0, (char**)0, 0,
07558 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DTEXT_X0_type };
07559 static KmParReal _GEANT_DRAWING_DTEXT_Y0_type = { "0.", "20.", "0.", "20.",
07560 0 };
07561 static KmParameter _GEANT_DRAWING_DTEXT_Y0 = { "Y0", 2,
07562 "Y-coord. (vertical) of text string", "10.", (char*)0, 12, 0, (char**)0, 0,
07563 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DTEXT_Y0_type };
07564 static KmParameter _GEANT_DRAWING_DTEXT_TEXT = { "TEXT", 4, "Text string",
07565 "GEANT", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
07566 (void*)0 };
07567 static KmParReal _GEANT_DRAWING_DTEXT_SIZE_type = { (char*)0, (char*)0,
07568 (char*)0, (char*)0, 0 };
07569 static KmParameter _GEANT_DRAWING_DTEXT_SIZE = { "SIZE", 4,
07570 "Character size (cm)", ".5", (char*)0, 12, 0, (char**)0, 0, (char**)0,
07571 (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DTEXT_SIZE_type };
07572 static KmParReal _GEANT_DRAWING_DTEXT_ANGLE_type = { "0.", "360.", "0.",
07573 "360.", 0 };
07574 static KmParameter _GEANT_DRAWING_DTEXT_ANGLE = { "ANGLE", 5,
07575 "Rotation angle (deg)", "0.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
07576 (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DTEXT_ANGLE_type };
07577 static KmParInt _GEANT_DRAWING_DTEXT_LWID_type = { (char*)0, (char*)0,
07578 (char*)0, (char*)0, 0 };
07579 static KmParameter _GEANT_DRAWING_DTEXT_LWID = { "LWID", 4, "Line width", "4",
07580 (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
07581 &_GEANT_DRAWING_DTEXT_LWID_type };
07582 static char *_GEANT_DRAWING_DTEXT_CENT_range[] = { "CENT", "LEFT", "RIGH" };
07583 static char *_GEANT_DRAWING_DTEXT_CENT_text[] = { (char*)0, (char*)0, (char*)0
07584 };
07585 static KmParOption _GEANT_DRAWING_DTEXT_CENT_type = {
07586 _GEANT_DRAWING_DTEXT_CENT_text, (int*)0, (int*)0 };
07587 static KmParameter _GEANT_DRAWING_DTEXT_CENT = { "CENT", 4,
07588 "Centering option", "CENT", (char*)0, 8, 3, _GEANT_DRAWING_DTEXT_CENT_range,
07589 3, _GEANT_DRAWING_DTEXT_CENT_range, (KmParFlag)0, KmTYPE_OPTION,
07590 &_GEANT_DRAWING_DTEXT_CENT_type };
07591 static KmParameter *_GEANT_DRAWING_DTEXT_parameters[] = {
07592 &_GEANT_DRAWING_DTEXT_X0, &_GEANT_DRAWING_DTEXT_Y0,
07593 &_GEANT_DRAWING_DTEXT_TEXT, &_GEANT_DRAWING_DTEXT_SIZE,
07594 &_GEANT_DRAWING_DTEXT_ANGLE, &_GEANT_DRAWING_DTEXT_LWID,
07595 &_GEANT_DRAWING_DTEXT_CENT };
07596 static char *_GEANT_DRAWING_DTEXT_guidance[] = {
07597 " CALL GDRAWT(x0,y0,text,size,angle,lwid,opt)",
07598 "It allows one to draw some text in the current picture.",
07599 "Now more than 160 colours are available. The text colour",
07600 "must be set via the command IGSET. The size of the",
07601 "text will follow the zooming factors in the view banks." };
07602 static KmCommand _GEANT_DRAWING_DTEXT = { &_GEANT_DRAWING_DVECTOR,
07603 "/GEANT/DRAWING/DTEXT", "DTEXT", 0, 2, 7, 7, _GEANT_DRAWING_DTEXT_parameters,
07604 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 5,
07605 _GEANT_DRAWING_DTEXT_guidance, 0, (char**)0, (char*)0, (int*)0 };
07606
07607 static KmParameter _GEANT_DRAWING_DFSPC_NAME = { "NAME", 4, "Volume name",
07608 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
07609 KmTYPE_CHAR, (void*)0 };
07610 static char *_GEANT_DRAWING_DFSPC_CSORT_range[] = { "Y", "N", "0", "1" };
07611 static char *_GEANT_DRAWING_DFSPC_CSORT_text[] = { (char*)0, (char*)0,
07612 (char*)0, (char*)0 };
07613 static KmParOption _GEANT_DRAWING_DFSPC_CSORT_type = {
07614 _GEANT_DRAWING_DFSPC_CSORT_text, (int*)0, (int*)0 };
07615 static KmParameter _GEANT_DRAWING_DFSPC_CSORT = { "CSORT", 5,
07616 "Alphabetic sorting flag", "N", (char*)0, 8, 4,
07617 _GEANT_DRAWING_DFSPC_CSORT_range, 4, _GEANT_DRAWING_DFSPC_CSORT_range,
07618 (KmParFlag)0, KmTYPE_OPTION, &_GEANT_DRAWING_DFSPC_CSORT_type };
07619 static char *_GEANT_DRAWING_DFSPC_CINTER_range[] = { "I", "B", "0", "1" };
07620 static char *_GEANT_DRAWING_DFSPC_CINTER_text[] = { (char*)0, (char*)0,
07621 (char*)0, (char*)0 };
07622 static KmParOption _GEANT_DRAWING_DFSPC_CINTER_type = {
07623 _GEANT_DRAWING_DFSPC_CINTER_text, (int*)0, (int*)0 };
07624 static KmParameter _GEANT_DRAWING_DFSPC_CINTER = { "CINTER", 6,
07625 "Interactive/Batch version", "I", (char*)0, 8, 4,
07626 _GEANT_DRAWING_DFSPC_CINTER_range, 4, _GEANT_DRAWING_DFSPC_CINTER_range,
07627 (KmParFlag)0, KmTYPE_OPTION, &_GEANT_DRAWING_DFSPC_CINTER_type };
07628 static KmParameter *_GEANT_DRAWING_DFSPC_parameters[] = {
07629 &_GEANT_DRAWING_DFSPC_NAME, &_GEANT_DRAWING_DFSPC_CSORT,
07630 &_GEANT_DRAWING_DFSPC_CINTER };
07631 static char *_GEANT_DRAWING_DFSPC_guidance[] = {
07632 " CALL GDFSPC(name,isort,inter)",
07633 "Same as DSPEC, but it will draw the specifications for all the volumes.",
07634 "If the alphabetic sorting flag is YES, all pictures will be drawn in\
07635 ascending", "alphabetic order; isort is set to 1.",
07636 "If INTERACTIVE, (inter=1), the routine will prompt the user at each plot",
07637 "before doing a clear screen, otherwise it will clear automatically",
07638 "the screen before starting a new frame." };
07639 static KmCommand _GEANT_DRAWING_DFSPC = { &_GEANT_DRAWING_DTEXT,
07640 "/GEANT/DRAWING/DFSPC", "DFSPC", 0, 2, 3, 1, _GEANT_DRAWING_DFSPC_parameters,
07641 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 7,
07642 _GEANT_DRAWING_DFSPC_guidance, 0, (char**)0, (char*)0, (int*)0 };
07643
07644 static KmParameter _GEANT_DRAWING_D3DSPEC_NAME = { "NAME", 4, "Volume name",
07645 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
07646 KmTYPE_CHAR, (void*)0 };
07647 static KmParReal _GEANT_DRAWING_D3DSPEC_TETA3_type = { "0.", "180.", "0.",
07648 "180.", 0 };
07649 static KmParameter _GEANT_DRAWING_D3DSPEC_TETA3 = { "TETA3", 5, "Theta angle",
07650 "40.", (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
07651 &_GEANT_DRAWING_D3DSPEC_TETA3_type };
07652 static KmParReal _GEANT_DRAWING_D3DSPEC_PHI3_type = { "0.", "360.", "0.",
07653 "360.", 0 };
07654 static KmParameter _GEANT_DRAWING_D3DSPEC_PHI3 = { "PHI3", 4, "Phi angle",
07655 "40.", (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
07656 &_GEANT_DRAWING_D3DSPEC_PHI3_type };
07657 static KmParReal _GEANT_DRAWING_D3DSPEC_PSI3_type = { "0.", "360.", "0.",
07658 "360.", 0 };
07659 static KmParameter _GEANT_DRAWING_D3DSPEC_PSI3 = { "PSI3", 4, "Psi angle",
07660 "0.", (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
07661 &_GEANT_DRAWING_D3DSPEC_PSI3_type };
07662 static KmParReal _GEANT_DRAWING_D3DSPEC_U03_type = { "-40.", "40.", "-40.",
07663 "40.", 0 };
07664 static KmParameter _GEANT_DRAWING_D3DSPEC_U03 = { "U03", 3,
07665 "U-coord. (horizontal) of volume origin", "10.", (char*)0, 12, 0, (char**)0,
07666 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_D3DSPEC_U03_type };
07667 static KmParReal _GEANT_DRAWING_D3DSPEC_V03_type = { "-40.", "40.", "-40.",
07668 "40.", 0 };
07669 static KmParameter _GEANT_DRAWING_D3DSPEC_V03 = { "V03", 3,
07670 "V-coord. (vertical) of volume origin", "10.", (char*)0, 12, 0, (char**)0, 0,
07671 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_D3DSPEC_V03_type };
07672 static KmParReal _GEANT_DRAWING_D3DSPEC_ZM3_type = { "0.00001", "10.",
07673 "0.00001", "10.", 5 };
07674 static KmParameter _GEANT_DRAWING_D3DSPEC_ZM3 = { "ZM3", 3,
07675 "Zoom factor for current size factors", "1.", (char*)0, 12, 0, (char**)0, 0,
07676 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_D3DSPEC_ZM3_type };
07677 static KmParameter *_GEANT_DRAWING_D3DSPEC_parameters[] = {
07678 &_GEANT_DRAWING_D3DSPEC_NAME, &_GEANT_DRAWING_D3DSPEC_TETA3,
07679 &_GEANT_DRAWING_D3DSPEC_PHI3, &_GEANT_DRAWING_D3DSPEC_PSI3,
07680 &_GEANT_DRAWING_D3DSPEC_U03, &_GEANT_DRAWING_D3DSPEC_V03,
07681 &_GEANT_DRAWING_D3DSPEC_ZM3 };
07682 static char *_GEANT_DRAWING_D3DSPEC_guidance[] = {
07683 "Trough a call to GSPE3D, this command allows one to show",
07684 "the volume (3D views in real time), together with",
07685 "its geometrical specifications (if using MOTIF). The 3D drawing will",
07686 "be performed according the current values of the options HIDE and",
07687 "SHAD and according the current CVOL clipping parameters for that", "volume."
07688 };
07689 static KmCommand _GEANT_DRAWING_D3DSPEC = { &_GEANT_DRAWING_DFSPC,
07690 "/GEANT/DRAWING/D3DSPEC", "D3DSPEC", 0, 2, 7, 1,
07691 _GEANT_DRAWING_D3DSPEC_parameters, 0, 0, gxdraw_, (IntFunc*)0,
07692 (SUBROUTINE*)0, (pCharFunc*)0, 6, _GEANT_DRAWING_D3DSPEC_guidance, 0,
07693 (char**)0, (char*)0, (int*)0 };
07694
07695 static KmParameter _GEANT_DRAWING_DSPEC_NAME = { "NAME", 4, "Volume name",
07696 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
07697 KmTYPE_CHAR, (void*)0 };
07698 static KmParameter *_GEANT_DRAWING_DSPEC_parameters[] = {
07699 &_GEANT_DRAWING_DSPEC_NAME };
07700 static char *_GEANT_DRAWING_DSPEC_guidance[] = {
07701 "Trough a call to GDSPEC(name), this command allows one to show three",
07702 "views of the volume (two cut-views and a 3D view), together with",
07703 "its geometrical specifications. The 3D drawing will",
07704 "be performed according the current values of the options HIDE and",
07705 "SHAD and according the current CVOL clipping parameters for that", "volume."
07706 };
07707 static KmCommand _GEANT_DRAWING_DSPEC = { &_GEANT_DRAWING_D3DSPEC,
07708 "/GEANT/DRAWING/DSPEC", "DSPEC", 0, 2, 1, 1, _GEANT_DRAWING_DSPEC_parameters,
07709 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 6,
07710 _GEANT_DRAWING_DSPEC_guidance, 0, (char**)0, (char*)0, (int*)0 };
07711
07712 static KmParameter _GEANT_DRAWING_DTREE_NAME = { "NAME", 4, "Volume name",
07713 " ", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
07714 (void*)0 };
07715 static KmParInt _GEANT_DRAWING_DTREE_LEVMAX_type = { "-15", "15", "-15",
07716 "15", 0 };
07717 static KmParameter _GEANT_DRAWING_DTREE_LEVMAX = { "LEVMAX", 6, "Depth level",
07718 "3", (char*)0, 3, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
07719 &_GEANT_DRAWING_DTREE_LEVMAX_type };
07720 static KmParInt _GEANT_DRAWING_DTREE_ISELT_type = { (char*)0, (char*)0,
07721 (char*)0, (char*)0, 0 };
07722 static KmParameter _GEANT_DRAWING_DTREE_ISELT = { "ISELT", 5, "Options ",
07723 "111", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
07724 &_GEANT_DRAWING_DTREE_ISELT_type };
07725 static KmParameter *_GEANT_DRAWING_DTREE_parameters[] = {
07726 &_GEANT_DRAWING_DTREE_NAME, &_GEANT_DRAWING_DTREE_LEVMAX,
07727 &_GEANT_DRAWING_DTREE_ISELT };
07728 static char *_GEANT_DRAWING_DTREE_guidance[] = {
07729 "This command allows the drawing of the logical tree,",
07730 "displaying the name, the multiplicity and other information about the\
07731 volumes,", "via a call to GDTREE(name,levmax,isel):",
07732 "if the third parameter is not given (default), the command will",
07733 "produce the drawing of the tree displaying, for each volume, the",
07734 "number of the following levels (red arrows) and of the preceeding",
07735 "levels (green arrows); then the control is automatically given to the",
07736 "mouse: clicking on the left button when the cursor is inside a volume's",
07737 "pave will perform a DSPEC for that volume; doing the same when the cursor",
07738 "is on a red arrow, will perform a DTREE for the relative volume (the",
07739 "number of levels displayed depending on the clicked arrow); doing the",
07740 "same for the 'i-th' green arrow of a given volume, will perform a DTREE",
07741 "for its mother-volume staying 'i' levels before.",
07742 "If running with X-windows, the drawing of the specification (DSPEC)",
07743 "is performed",
07744 "in a different window to speed up the scanning of the tree.",
07745 "Iterating this procedure it is possible to analyse very easily and quickly",
07746 "any kind of tree. Clicking the right button of the mouse will return",
07747 "the control to the command mode.", "If the ISELT parameter is given,",
07748 "then the TREE will work as in the",
07749 "previous version, with ISELT up to 10001.",
07750 "The following command will perform a drawing of the tree and give the",
07751 "control to the user via the mouse:", " EXAMPLE -", " dtree NAME 3" };
07752 static KmCommand _GEANT_DRAWING_DTREE = { &_GEANT_DRAWING_DSPEC,
07753 "/GEANT/DRAWING/DTREE", "DTREE", 0, 2, 3, 0, _GEANT_DRAWING_DTREE_parameters,
07754 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 26,
07755 _GEANT_DRAWING_DTREE_guidance, 0, (char**)0, (char*)0, (int*)0 };
07756
07757 static KmParReal _GEANT_DRAWING_BOMB_BOOM_type = { "-10.", "10.", "-10.",
07758 "10.", 0 };
07759 static KmParameter _GEANT_DRAWING_BOMB_BOOM = { "BOOM", 4,
07760 " Exploding factor for volumes position ", "0.", (char*)0, 12, 0, (char**)0,
07761 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_BOMB_BOOM_type };
07762 static KmParameter *_GEANT_DRAWING_BOMB_parameters[] = {
07763 &_GEANT_DRAWING_BOMB_BOOM };
07764 static char *_GEANT_DRAWING_BOMB_guidance[] = {
07765 "To 'explode' the detector. If BOOM is positive (values smaller",
07766 "than 1. are suggested, but any value is possible)",
07767 "all the volumes are shifted by a distance",
07768 "proportional to BOOM along the direction between their centre",
07769 "and the origin of the MARS; the volumes which are symmetric",
07770 "with respect to this origin are simply not shown.",
07771 "BOOM equal to 0 resets the normal mode.",
07772 "A negative (greater than -1.) value of",
07773 "BOOM will cause an 'implosion'; for even lower values of BOOM",
07774 "the volumes' positions will be reflected respect to the origin.",
07775 "This command can be useful to improve the 3D effect for very",
07776 "complex detectors. The following commands will make explode the",
07777 "detector:", " EXAMPLE -", " dopt hide on", " satt * seen 1",
07778 " draw NAME 40 40 0 10 10 .01 .01", " bomb 1", " next",
07779 " draw NAME 40 40 0 10 10 .01 .01" };
07780 static KmCommand _GEANT_DRAWING_BOMB = { &_GEANT_DRAWING_DTREE,
07781 "/GEANT/DRAWING/BOMB", "BOMB", 0, 2, 1, 1, _GEANT_DRAWING_BOMB_parameters, 0,
07782 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 20,
07783 _GEANT_DRAWING_BOMB_guidance, 0, (char**)0, (char*)0, (int*)0 };
07784
07785 static KmParameter _GEANT_DRAWING_SHIFT_CNVN = { "CNVN", 4,
07786 " Name of volume to be shifted ", "*", (char*)0, 20, 0, (char**)0, 0,
07787 (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
07788 static KmParReal _GEANT_DRAWING_SHIFT_XXXX_type = { (char*)0, (char*)0,
07789 (char*)0, (char*)0, 0 };
07790 static KmParameter _GEANT_DRAWING_SHIFT_XXXX = { "XXXX", 4,
07791 " Shift along X axis ", "0.", (char*)0, 12, 0, (char**)0, 0,
07792 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_SHIFT_XXXX_type };
07793 static KmParReal _GEANT_DRAWING_SHIFT_YYYY_type = { (char*)0, (char*)0,
07794 (char*)0, (char*)0, 0 };
07795 static KmParameter _GEANT_DRAWING_SHIFT_YYYY = { "YYYY", 4,
07796 " Shift along Y axis ", "0.", (char*)0, 12, 0, (char**)0, 0,
07797 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_SHIFT_YYYY_type };
07798 static KmParReal _GEANT_DRAWING_SHIFT_ZZZZ_type = { (char*)0, (char*)0,
07799 (char*)0, (char*)0, 0 };
07800 static KmParameter _GEANT_DRAWING_SHIFT_ZZZZ = { "ZZZZ", 4,
07801 " Shift along Z axis ", "0.", (char*)0, 12, 0, (char**)0, 0,
07802 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_SHIFT_ZZZZ_type };
07803 static KmParameter *_GEANT_DRAWING_SHIFT_parameters[] = {
07804 &_GEANT_DRAWING_SHIFT_CNVN, &_GEANT_DRAWING_SHIFT_XXXX,
07805 &_GEANT_DRAWING_SHIFT_YYYY, &_GEANT_DRAWING_SHIFT_ZZZZ };
07806 static char *_GEANT_DRAWING_SHIFT_guidance[] = {
07807 "To draw a volume shifted from its initial position when hidden",
07808 "line removal is ON. It can be useful if you want to extract a",
07809 "volume or some volumes from the detector to show them more clearly.",
07810 "The last requested SHIFT for each volume",
07811 "NAME is performed. Moreover, the SHIFT of",
07812 "each volume will be performed starting from where its mother has",
07813 "been shifted, so that it's easier to SHIFT nicely sets",
07814 "of volumes using the mother-daughter relationships.",
07815 "If '.' is given as the name of the volume",
07816 "to be shifted, the shifts for all volumes will be reset.",
07817 "The following commands will produce the translation along",
07818 "the Z-axis of the previously drawn volume:", " EXAMPLE -", " dopt hide on",
07819 " satt * seen -2", " draw NAME 40 40 0 10 10 .01 .01", " shift NAME 0 0 10" };
07820 static KmCommand _GEANT_DRAWING_SHIFT = { &_GEANT_DRAWING_BOMB,
07821 "/GEANT/DRAWING/SHIFT", "SHIFT", 0, 2, 4, 4, _GEANT_DRAWING_SHIFT_parameters,
07822 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 17,
07823 _GEANT_DRAWING_SHIFT_guidance, 0, (char**)0, (char*)0, (int*)0 };
07824
07825 static KmParameter _GEANT_DRAWING_DXCUT_NAME = { "NAME", 4, "Volume name",
07826 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
07827 KmTYPE_CHAR, (void*)0 };
07828 static KmParReal _GEANT_DRAWING_DXCUT_CUTTHE_type = { "0.", "360.", "0.",
07829 "360.", 0 };
07830 static KmParameter _GEANT_DRAWING_DXCUT_CUTTHE = { "CUTTHE", 6,
07831 "Theta angle of the line normal to cut plane", (char*)0, (char*)0, 12, 0,
07832 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
07833 &_GEANT_DRAWING_DXCUT_CUTTHE_type };
07834 static KmParReal _GEANT_DRAWING_DXCUT_CUTPHI_type = { "0.", "360.", "0.",
07835 "360.", 0 };
07836 static KmParameter _GEANT_DRAWING_DXCUT_CUTPHI = { "CUTPHI", 6,
07837 "Phi angle of the line normal to cut plane", (char*)0, (char*)0, 12, 0,
07838 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
07839 &_GEANT_DRAWING_DXCUT_CUTPHI_type };
07840 static KmParReal _GEANT_DRAWING_DXCUT_CUTVAL_type = { (char*)0, (char*)0,
07841 (char*)0, (char*)0, 0 };
07842 static KmParameter _GEANT_DRAWING_DXCUT_CUTVAL = { "CUTVAL", 6,
07843 "Cut plane distance from the origin along the axis", (char*)0, (char*)0, 12,
07844 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
07845 &_GEANT_DRAWING_DXCUT_CUTVAL_type };
07846 static KmParReal _GEANT_DRAWING_DXCUT_THETA_type = { "0.", "360.", "0.",
07847 "360.", 0 };
07848 static KmParameter _GEANT_DRAWING_DXCUT_THETA = { "THETA", 5,
07849 "Viewing angle theta (for 3D projection)", (char*)0, (char*)0, 12, 0,
07850 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
07851 &_GEANT_DRAWING_DXCUT_THETA_type };
07852 static KmParReal _GEANT_DRAWING_DXCUT_PHI_type = { "0.", "360.", "0.",
07853 "360.", 0 };
07854 static KmParameter _GEANT_DRAWING_DXCUT_PHI = { "PHI", 3,
07855 "Viewing angle phi (for 3D projection)", (char*)0, (char*)0, 12, 0,
07856 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
07857 &_GEANT_DRAWING_DXCUT_PHI_type };
07858 static KmParReal _GEANT_DRAWING_DXCUT_U0_type = { (char*)0, (char*)0,
07859 (char*)0, (char*)0, 0 };
07860 static KmParameter _GEANT_DRAWING_DXCUT_U0 = { "U0", 2,
07861 "U-coord. (horizontal) of volume origin", (char*)0, (char*)0, 12, 0,
07862 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
07863 &_GEANT_DRAWING_DXCUT_U0_type };
07864 static KmParReal _GEANT_DRAWING_DXCUT_V0_type = { (char*)0, (char*)0,
07865 (char*)0, (char*)0, 0 };
07866 static KmParameter _GEANT_DRAWING_DXCUT_V0 = { "V0", 2,
07867 "V-coord. (vertical) of volume origin", (char*)0, (char*)0, 12, 0, (char**)0,
07868 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DXCUT_V0_type };
07869 static KmParReal _GEANT_DRAWING_DXCUT_SU_type = { (char*)0, (char*)0,
07870 (char*)0, (char*)0, 0 };
07871 static KmParameter _GEANT_DRAWING_DXCUT_SU = { "SU", 2,
07872 "Scale factor for U-coord.", (char*)0, (char*)0, 12, 0, (char**)0, 0,
07873 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DXCUT_SU_type };
07874 static KmParReal _GEANT_DRAWING_DXCUT_SV_type = { (char*)0, (char*)0,
07875 (char*)0, (char*)0, 0 };
07876 static KmParameter _GEANT_DRAWING_DXCUT_SV = { "SV", 2,
07877 "Scale factor for V-coord.", (char*)0, (char*)0, 12, 0, (char**)0, 0,
07878 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DXCUT_SV_type };
07879 static KmParameter *_GEANT_DRAWING_DXCUT_parameters[] = {
07880 &_GEANT_DRAWING_DXCUT_NAME, &_GEANT_DRAWING_DXCUT_CUTTHE,
07881 &_GEANT_DRAWING_DXCUT_CUTPHI, &_GEANT_DRAWING_DXCUT_CUTVAL,
07882 &_GEANT_DRAWING_DXCUT_THETA, &_GEANT_DRAWING_DXCUT_PHI,
07883 &_GEANT_DRAWING_DXCUT_U0, &_GEANT_DRAWING_DXCUT_V0, &_GEANT_DRAWING_DXCUT_SU,
07884 &_GEANT_DRAWING_DXCUT_SV };
07885 static char *_GEANT_DRAWING_DXCUT_guidance[] = {
07886 " CALL GDRAWX(name,cutthe,cutphi,cutval,theta,phi,u0,v0,su,sv)",
07887 "The cut plane is normal to the line given by the cut angles",
07888 "cutthe and cutphi and placed at the distance cutval from the origin.",
07889 "The resulting picture is seen from the viewing angles theta,phi.",
07890 "If optional parameters are missing, the current values in /GCDRAW/",
07891 "are taken." };
07892 static KmCommand _GEANT_DRAWING_DXCUT = { &_GEANT_DRAWING_SHIFT,
07893 "/GEANT/DRAWING/DXCUT", "DXCUT", 0, 2, 10, 4,
07894 _GEANT_DRAWING_DXCUT_parameters, 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0,
07895 (pCharFunc*)0, 6, _GEANT_DRAWING_DXCUT_guidance, 0, (char**)0, (char*)0,
07896 (int*)0 };
07897
07898 static KmParameter _GEANT_DRAWING_DCUT_NAME = { "NAME", 4, "Volume name",
07899 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
07900 KmTYPE_CHAR, (void*)0 };
07901 static char *_GEANT_DRAWING_DCUT_CAXIS_range[] = { "X", "Y", "Z" };
07902 static char *_GEANT_DRAWING_DCUT_CAXIS_text[] = { (char*)0, (char*)0, (char*)0
07903 };
07904 static KmParOption _GEANT_DRAWING_DCUT_CAXIS_type = {
07905 _GEANT_DRAWING_DCUT_CAXIS_text, (int*)0, (int*)0 };
07906 static KmParameter _GEANT_DRAWING_DCUT_CAXIS = { "CAXIS", 5, "Axis value",
07907 (char*)0, (char*)0, 8, 3, _GEANT_DRAWING_DCUT_CAXIS_range, 3,
07908 _GEANT_DRAWING_DCUT_CAXIS_range, (KmParFlag)0, KmTYPE_OPTION,
07909 &_GEANT_DRAWING_DCUT_CAXIS_type };
07910 static KmParReal _GEANT_DRAWING_DCUT_CUTVAL_type = { (char*)0, (char*)0,
07911 (char*)0, (char*)0, 0 };
07912 static KmParameter _GEANT_DRAWING_DCUT_CUTVAL = { "CUTVAL", 6,
07913 "Cut plane distance from the origin along the axis", (char*)0, (char*)0, 12,
07914 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
07915 &_GEANT_DRAWING_DCUT_CUTVAL_type };
07916 static KmParReal _GEANT_DRAWING_DCUT_U0_type = { (char*)0, (char*)0,
07917 (char*)0, (char*)0, 0 };
07918 static KmParameter _GEANT_DRAWING_DCUT_U0 = { "U0", 2,
07919 "U-coord. (horizontal) of volume origin", (char*)0, (char*)0, 12, 0,
07920 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
07921 &_GEANT_DRAWING_DCUT_U0_type };
07922 static KmParReal _GEANT_DRAWING_DCUT_V0_type = { (char*)0, (char*)0,
07923 (char*)0, (char*)0, 0 };
07924 static KmParameter _GEANT_DRAWING_DCUT_V0 = { "V0", 2,
07925 "V-coord. (vertical) of volume origin", (char*)0, (char*)0, 12, 0, (char**)0,
07926 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DCUT_V0_type };
07927 static KmParReal _GEANT_DRAWING_DCUT_SU_type = { (char*)0, (char*)0,
07928 (char*)0, (char*)0, 0 };
07929 static KmParameter _GEANT_DRAWING_DCUT_SU = { "SU", 2,
07930 "Scale factor for U-coord.", (char*)0, (char*)0, 12, 0, (char**)0, 0,
07931 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DCUT_SU_type };
07932 static KmParReal _GEANT_DRAWING_DCUT_SV_type = { (char*)0, (char*)0,
07933 (char*)0, (char*)0, 0 };
07934 static KmParameter _GEANT_DRAWING_DCUT_SV = { "SV", 2,
07935 "Scale factor for V-coord.", (char*)0, (char*)0, 12, 0, (char**)0, 0,
07936 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DCUT_SV_type };
07937 static KmParameter *_GEANT_DRAWING_DCUT_parameters[] = {
07938 &_GEANT_DRAWING_DCUT_NAME, &_GEANT_DRAWING_DCUT_CAXIS,
07939 &_GEANT_DRAWING_DCUT_CUTVAL, &_GEANT_DRAWING_DCUT_U0,
07940 &_GEANT_DRAWING_DCUT_V0, &_GEANT_DRAWING_DCUT_SU, &_GEANT_DRAWING_DCUT_SV };
07941 static char *_GEANT_DRAWING_DCUT_guidance[] = {
07942 " CALL GDRAWC(name,iaxis,cutval,u0,v0,su,sv)",
07943 "The cut plane is normal to caxis (X,Y,Z), corresponding to iaxis (1,2,3),",
07944 "and placed at the distance cutval from the origin.",
07945 "The resulting picture is seen from the the same axis.",
07946 "If optional parameters are missing, the current values in /GCDRAW/",
07947 "are taken.",
07948 "When HIDE Mode is ON, it is possible to get the same effect with",
07949 "the CVOL/BOX command." };
07950 static KmCommand _GEANT_DRAWING_DCUT = { &_GEANT_DRAWING_DXCUT,
07951 "/GEANT/DRAWING/DCUT", "DCUT", 0, 2, 7, 3, _GEANT_DRAWING_DCUT_parameters, 0,
07952 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 8,
07953 _GEANT_DRAWING_DCUT_guidance, 0, (char**)0, (char*)0, (int*)0 };
07954
07955 static KmParInt _GEANT_DRAWING_DVOLUME_N_type = { (char*)0, (char*)0,
07956 (char*)0, (char*)0, 0 };
07957 static KmParameter _GEANT_DRAWING_DVOLUME_N = { "N", 1,
07958 "Number of elements in arrays LNAMES and LNUMBS", "1", (char*)0, 8, 0,
07959 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
07960 &_GEANT_DRAWING_DVOLUME_N_type };
07961 static KmParameter _GEANT_DRAWING_DVOLUME_NAMNUM = { "NAMNUM", 6,
07962 "Volume names and numbers (ex. \"NAME1,NR1,NAME2,NR2\")", (char*)0, (char*)0,
07963 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
07964 static char *_GEANT_DRAWING_DVOLUME_CHNRS_range[] = { "MARS", "DRS" };
07965 static char *_GEANT_DRAWING_DVOLUME_CHNRS_text[] = { (char*)0, (char*)0 };
07966 static KmParOption _GEANT_DRAWING_DVOLUME_CHNRS_type = {
07967 _GEANT_DRAWING_DVOLUME_CHNRS_text, (int*)0, (int*)0 };
07968 static KmParameter _GEANT_DRAWING_DVOLUME_CHNRS = { "CHNRS", 5,
07969 "Reference system used", "MARS", (char*)0, 8, 2,
07970 _GEANT_DRAWING_DVOLUME_CHNRS_range, 2, _GEANT_DRAWING_DVOLUME_CHNRS_range,
07971 (KmParFlag)0, KmTYPE_OPTION, &_GEANT_DRAWING_DVOLUME_CHNRS_type };
07972 static KmParReal _GEANT_DRAWING_DVOLUME_THETA_type = { "0.", "360.", "0.",
07973 "360.", 0 };
07974 static KmParameter _GEANT_DRAWING_DVOLUME_THETA = { "THETA", 5,
07975 "Viewing angle theta (for 3D projection)", (char*)0, (char*)0, 12, 0,
07976 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
07977 &_GEANT_DRAWING_DVOLUME_THETA_type };
07978 static KmParReal _GEANT_DRAWING_DVOLUME_PHI_type = { "0.", "360.", "0.",
07979 "360.", 0 };
07980 static KmParameter _GEANT_DRAWING_DVOLUME_PHI = { "PHI", 3,
07981 "Viewing angle phi (for 3D projection)", (char*)0, (char*)0, 12, 0,
07982 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
07983 &_GEANT_DRAWING_DVOLUME_PHI_type };
07984 static KmParReal _GEANT_DRAWING_DVOLUME_PSI_type = { "0.", "180.", "0.",
07985 "180.", 0 };
07986 static KmParameter _GEANT_DRAWING_DVOLUME_PSI = { "PSI", 3,
07987 "Viewing angle psi (for 2D rotation)", (char*)0, (char*)0, 12, 0, (char**)0,
07988 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DVOLUME_PSI_type };
07989 static KmParReal _GEANT_DRAWING_DVOLUME_U0_type = { (char*)0, (char*)0,
07990 (char*)0, (char*)0, 0 };
07991 static KmParameter _GEANT_DRAWING_DVOLUME_U0 = { "U0", 2,
07992 "U-coord. (horizontal) of volume origin", (char*)0, (char*)0, 12, 0,
07993 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
07994 &_GEANT_DRAWING_DVOLUME_U0_type };
07995 static KmParReal _GEANT_DRAWING_DVOLUME_V0_type = { (char*)0, (char*)0,
07996 (char*)0, (char*)0, 0 };
07997 static KmParameter _GEANT_DRAWING_DVOLUME_V0 = { "V0", 2,
07998 "V-coord. (vertical) of volume origin", (char*)0, (char*)0, 12, 0, (char**)0,
07999 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DVOLUME_V0_type };
08000 static KmParReal _GEANT_DRAWING_DVOLUME_SU_type = { (char*)0, (char*)0,
08001 (char*)0, (char*)0, 0 };
08002 static KmParameter _GEANT_DRAWING_DVOLUME_SU = { "SU", 2,
08003 "Scale factor for U-coord.", (char*)0, (char*)0, 12, 0, (char**)0, 0,
08004 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DVOLUME_SU_type };
08005 static KmParReal _GEANT_DRAWING_DVOLUME_SV_type = { (char*)0, (char*)0,
08006 (char*)0, (char*)0, 0 };
08007 static KmParameter _GEANT_DRAWING_DVOLUME_SV = { "SV", 2,
08008 "Scale factor for V-coord.", (char*)0, (char*)0, 12, 0, (char**)0, 0,
08009 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DVOLUME_SV_type };
08010 static KmParameter *_GEANT_DRAWING_DVOLUME_parameters[] = {
08011 &_GEANT_DRAWING_DVOLUME_N, &_GEANT_DRAWING_DVOLUME_NAMNUM,
08012 &_GEANT_DRAWING_DVOLUME_CHNRS, &_GEANT_DRAWING_DVOLUME_THETA,
08013 &_GEANT_DRAWING_DVOLUME_PHI, &_GEANT_DRAWING_DVOLUME_PSI,
08014 &_GEANT_DRAWING_DVOLUME_U0, &_GEANT_DRAWING_DVOLUME_V0,
08015 &_GEANT_DRAWING_DVOLUME_SU, &_GEANT_DRAWING_DVOLUME_SV };
08016 static char *_GEANT_DRAWING_DVOLUME_guidance[] = {
08017 " CALL GDRVOL(n,lnames,lnumbs,nrs,theta,phi,psi,u0,v0,su,sv)",
08018 "N is the number of levels from the top of the geometry structure",
08019 "to the volume lnames(n),lnumbs(n) to be drawn.",
08020 "NAMNUM contain the arrays lnames and lnumbs,",
08021 "identifying the path, in pairs and separated by commas; for",
08022 "example (with n=2) :", "'lname(1),lnumbs(1),lname(2),lnumbs(2) '",
08023 "CHNRS is the name of the reference system used: MARS for MAster Reference",
08024 "System or DRS for Daughter Reference System.",
08025 "NRS=0 for MARS or NRS<>0 for DRS",
08026 "If optional parameters are missing, the current values in /GCDRAW/",
08027 "are taken." };
08028 static KmCommand _GEANT_DRAWING_DVOLUME = { &_GEANT_DRAWING_DCUT,
08029 "/GEANT/DRAWING/DVOLUME", "DVOLUME", 0, 2, 10, 3,
08030 _GEANT_DRAWING_DVOLUME_parameters, 0, 0, gxdraw_, (IntFunc*)0,
08031 (SUBROUTINE*)0, (pCharFunc*)0, 12, _GEANT_DRAWING_DVOLUME_guidance, 0,
08032 (char**)0, (char*)0, (int*)0 };
08033
08034 static KmParReal _GEANT_DRAWING_RANG5D_X1MIN_type = { (char*)0, (char*)0,
08035 (char*)0, (char*)0, 0 };
08036 static KmParameter _GEANT_DRAWING_RANG5D_X1MIN = { "X1MIN", 5,
08037 "x coordinate min", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
08038 (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_RANG5D_X1MIN_type };
08039 static KmParReal _GEANT_DRAWING_RANG5D_X1MAX_type = { (char*)0, (char*)0,
08040 (char*)0, (char*)0, 0 };
08041 static KmParameter _GEANT_DRAWING_RANG5D_X1MAX = { "X1MAX", 5,
08042 "x coordinate max", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
08043 (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_RANG5D_X1MAX_type };
08044 static KmParReal _GEANT_DRAWING_RANG5D_Y1MIN_type = { (char*)0, (char*)0,
08045 (char*)0, (char*)0, 0 };
08046 static KmParameter _GEANT_DRAWING_RANG5D_Y1MIN = { "Y1MIN", 5,
08047 "y coordinate min", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
08048 (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_RANG5D_Y1MIN_type };
08049 static KmParReal _GEANT_DRAWING_RANG5D_Y1MAX_type = { (char*)0, (char*)0,
08050 (char*)0, (char*)0, 0 };
08051 static KmParameter _GEANT_DRAWING_RANG5D_Y1MAX = { "Y1MAX", 5,
08052 "y coordinate max", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
08053 (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_RANG5D_Y1MAX_type };
08054 static KmParReal _GEANT_DRAWING_RANG5D_Z1MIN_type = { (char*)0, (char*)0,
08055 (char*)0, (char*)0, 0 };
08056 static KmParameter _GEANT_DRAWING_RANG5D_Z1MIN = { "Z1MIN", 5,
08057 "z coordinate min", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
08058 (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_RANG5D_Z1MIN_type };
08059 static KmParReal _GEANT_DRAWING_RANG5D_Z1MAX_type = { (char*)0, (char*)0,
08060 (char*)0, (char*)0, 0 };
08061 static KmParameter _GEANT_DRAWING_RANG5D_Z1MAX = { "Z1MAX", 5,
08062 "z coordinate max", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
08063 (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_RANG5D_Z1MAX_type };
08064 static KmParameter *_GEANT_DRAWING_RANG5D_parameters[] = {
08065 &_GEANT_DRAWING_RANG5D_X1MIN, &_GEANT_DRAWING_RANG5D_X1MAX,
08066 &_GEANT_DRAWING_RANG5D_Y1MIN, &_GEANT_DRAWING_RANG5D_Y1MAX,
08067 &_GEANT_DRAWING_RANG5D_Z1MIN, &_GEANT_DRAWING_RANG5D_Z1MAX };
08068 static char *_GEANT_DRAWING_RANG5D_guidance[] = {
08069 "It sets the range for the x,y,z variables." };
08070 static KmCommand _GEANT_DRAWING_RANG5D = { &_GEANT_DRAWING_DVOLUME,
08071 "/GEANT/DRAWING/RANG5D", "RANG5D", 0, 2, 6, 6,
08072 _GEANT_DRAWING_RANG5D_parameters, 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0,
08073 (pCharFunc*)0, 1, _GEANT_DRAWING_RANG5D_guidance, 0, (char**)0, (char*)0,
08074 (int*)0 };
08075
08076 static KmParReal _GEANT_DRAWING_VAR5D_TSEQTO_type = { (char*)0, (char*)0,
08077 (char*)0, (char*)0, 0 };
08078 static KmParameter _GEANT_DRAWING_VAR5D_TSEQTO = { "TSEQTO", 6,
08079 "total sequential time", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
08080 (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_VAR5D_TSEQTO_type };
08081 static KmParInt _GEANT_DRAWING_VAR5D_NPROC_type = { (char*)0, (char*)0,
08082 (char*)0, (char*)0, 0 };
08083 static KmParameter _GEANT_DRAWING_VAR5D_NPROC = { "NPROC", 5,
08084 "number of processors", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
08085 (KmParFlag)0, KmTYPE_INT, &_GEANT_DRAWING_VAR5D_NPROC_type };
08086 static KmParInt _GEANT_DRAWING_VAR5D_NMPTOT_type = { (char*)0, (char*)0,
08087 (char*)0, (char*)0, 0 };
08088 static KmParameter _GEANT_DRAWING_VAR5D_NMPTOT = { "NMPTOT", 6,
08089 "number of message passing", (char*)0, (char*)0, 8, 0, (char**)0, 0,
08090 (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_DRAWING_VAR5D_NMPTOT_type };
08091 static KmParReal _GEANT_DRAWING_VAR5D_TOTMBY_type = { (char*)0, (char*)0,
08092 (char*)0, (char*)0, 0 };
08093 static KmParameter _GEANT_DRAWING_VAR5D_TOTMBY = { "TOTMBY", 6,
08094 "total megabytes transfert", (char*)0, (char*)0, 12, 0, (char**)0, 0,
08095 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_VAR5D_TOTMBY_type };
08096 static KmParReal _GEANT_DRAWING_VAR5D_TSEQ_type = { (char*)0, (char*)0,
08097 (char*)0, (char*)0, 0 };
08098 static KmParameter _GEANT_DRAWING_VAR5D_TSEQ = { "TSEQ", 4,
08099 "not parallelized code", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
08100 (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_VAR5D_TSEQ_type };
08101 static KmParReal _GEANT_DRAWING_VAR5D_TLAT_type = { (char*)0, (char*)0,
08102 (char*)0, (char*)0, 0 };
08103 static KmParameter _GEANT_DRAWING_VAR5D_TLAT = { "TLAT", 4, "latency time",
08104 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
08105 KmTYPE_REAL, &_GEANT_DRAWING_VAR5D_TLAT_type };
08106 static KmParReal _GEANT_DRAWING_VAR5D_TNET_type = { (char*)0, (char*)0,
08107 (char*)0, (char*)0, 0 };
08108 static KmParameter _GEANT_DRAWING_VAR5D_TNET = { "TNET", 4,
08109 "network speed in Mbytes/sec", (char*)0, (char*)0, 12, 0, (char**)0, 0,
08110 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_VAR5D_TNET_type };
08111 static KmParameter *_GEANT_DRAWING_VAR5D_parameters[] = {
08112 &_GEANT_DRAWING_VAR5D_TSEQTO, &_GEANT_DRAWING_VAR5D_NPROC,
08113 &_GEANT_DRAWING_VAR5D_NMPTOT, &_GEANT_DRAWING_VAR5D_TOTMBY,
08114 &_GEANT_DRAWING_VAR5D_TSEQ, &_GEANT_DRAWING_VAR5D_TLAT,
08115 &_GEANT_DRAWING_VAR5D_TNET };
08116 static char *_GEANT_DRAWING_VAR5D_guidance[] = {
08117 "It sets the values of the parameters expressed in the formula and",
08118 "specify which variables must be assumed as x,y,z (setting their value",
08119 "to 1001,1002,1003, respectively)." };
08120 static KmCommand _GEANT_DRAWING_VAR5D = { &_GEANT_DRAWING_RANG5D,
08121 "/GEANT/DRAWING/VAR5D", "VAR5D", 0, 2, 7, 7, _GEANT_DRAWING_VAR5D_parameters,
08122 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
08123 _GEANT_DRAWING_VAR5D_guidance, 0, (char**)0, (char*)0, (int*)0 };
08124
08125 static KmParReal _GEANT_DRAWING_SPOT_XLPOS_type = { (char*)0, (char*)0,
08126 (char*)0, (char*)0, 0 };
08127 static KmParameter _GEANT_DRAWING_SPOT_XLPOS = { "XLPOS", 5,
08128 "x coordinate of light source", (char*)0, (char*)0, 12, 0, (char**)0, 0,
08129 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_SPOT_XLPOS_type };
08130 static KmParReal _GEANT_DRAWING_SPOT_YLPOS_type = { (char*)0, (char*)0,
08131 (char*)0, (char*)0, 0 };
08132 static KmParameter _GEANT_DRAWING_SPOT_YLPOS = { "YLPOS", 5,
08133 "y coordinate of light source", (char*)0, (char*)0, 12, 0, (char**)0, 0,
08134 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_SPOT_YLPOS_type };
08135 static KmParReal _GEANT_DRAWING_SPOT_ZLPOS_type = { (char*)0, (char*)0,
08136 (char*)0, (char*)0, 0 };
08137 static KmParameter _GEANT_DRAWING_SPOT_ZLPOS = { "ZLPOS", 5,
08138 "z coordinate of light source", (char*)0, (char*)0, 12, 0, (char**)0, 0,
08139 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_SPOT_ZLPOS_type };
08140 static KmParInt _GEANT_DRAWING_SPOT_INTEN_type = { (char*)0, (char*)0,
08141 (char*)0, (char*)0, 0 };
08142 static KmParameter _GEANT_DRAWING_SPOT_INTEN = { "INTEN", 5,
08143 "intensity of light source", (char*)0, (char*)0, 8, 0, (char**)0, 0,
08144 (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_DRAWING_SPOT_INTEN_type };
08145 static KmParameter *_GEANT_DRAWING_SPOT_parameters[] = {
08146 &_GEANT_DRAWING_SPOT_XLPOS, &_GEANT_DRAWING_SPOT_YLPOS,
08147 &_GEANT_DRAWING_SPOT_ZLPOS, &_GEANT_DRAWING_SPOT_INTEN };
08148 static char *_GEANT_DRAWING_SPOT_guidance[] = {
08149 "This point-like light source can be moved in the space and its intensity",
08150 "can be changed (INTEN going from 0 to 10) relatively to the ambience light."
08151 };
08152 static KmCommand _GEANT_DRAWING_SPOT = { &_GEANT_DRAWING_VAR5D,
08153 "/GEANT/DRAWING/SPOT", "SPOT", 0, 2, 4, 4, _GEANT_DRAWING_SPOT_parameters, 0,
08154 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 2,
08155 _GEANT_DRAWING_SPOT_guidance, 0, (char**)0, (char*)0, (int*)0 };
08156
08157 static KmParameter _GEANT_DRAWING_DRAW_NAME = { "NAME", 4, "Volume name",
08158 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
08159 KmTYPE_CHAR, (void*)0 };
08160 static KmParReal _GEANT_DRAWING_DRAW_THETA_type = { "0.", "180.", "0.",
08161 "180.", 0 };
08162 static KmParameter _GEANT_DRAWING_DRAW_THETA = { "THETA", 5,
08163 "Viewing angle theta (for 3D projection)", (char*)0, (char*)0, 12, 0,
08164 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
08165 &_GEANT_DRAWING_DRAW_THETA_type };
08166 static KmParReal _GEANT_DRAWING_DRAW_PHI_type = { "0.", "360.", "0.",
08167 "360.", 0 };
08168 static KmParameter _GEANT_DRAWING_DRAW_PHI = { "PHI", 3,
08169 "Viewing angle phi (for 3D projection)", (char*)0, (char*)0, 12, 0,
08170 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
08171 &_GEANT_DRAWING_DRAW_PHI_type };
08172 static KmParReal _GEANT_DRAWING_DRAW_PSI_type = { "0.", "360.", "0.",
08173 "360.", 0 };
08174 static KmParameter _GEANT_DRAWING_DRAW_PSI = { "PSI", 3,
08175 "Viewing angle psi (for 2D rotation)", (char*)0, (char*)0, 12, 0, (char**)0,
08176 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DRAW_PSI_type };
08177 static KmParReal _GEANT_DRAWING_DRAW_U0_type = { (char*)0, (char*)0,
08178 (char*)0, (char*)0, 0 };
08179 static KmParameter _GEANT_DRAWING_DRAW_U0 = { "U0", 2,
08180 "U-coord. (horizontal) of volume origin", (char*)0, (char*)0, 12, 0,
08181 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
08182 &_GEANT_DRAWING_DRAW_U0_type };
08183 static KmParReal _GEANT_DRAWING_DRAW_V0_type = { (char*)0, (char*)0,
08184 (char*)0, (char*)0, 0 };
08185 static KmParameter _GEANT_DRAWING_DRAW_V0 = { "V0", 2,
08186 "V-coord. (vertical) of volume origin", (char*)0, (char*)0, 12, 0, (char**)0,
08187 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DRAW_V0_type };
08188 static KmParReal _GEANT_DRAWING_DRAW_SU_type = { (char*)0, (char*)0,
08189 (char*)0, (char*)0, 0 };
08190 static KmParameter _GEANT_DRAWING_DRAW_SU = { "SU", 2,
08191 "Scale factor for U-coord.", (char*)0, (char*)0, 12, 0, (char**)0, 0,
08192 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DRAW_SU_type };
08193 static KmParReal _GEANT_DRAWING_DRAW_SV_type = { (char*)0, (char*)0,
08194 (char*)0, (char*)0, 0 };
08195 static KmParameter _GEANT_DRAWING_DRAW_SV = { "SV", 2,
08196 "Scale factor for V-coord.", (char*)0, (char*)0, 12, 0, (char**)0, 0,
08197 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DRAW_SV_type };
08198 static KmParameter *_GEANT_DRAWING_DRAW_parameters[] = {
08199 &_GEANT_DRAWING_DRAW_NAME, &_GEANT_DRAWING_DRAW_THETA,
08200 &_GEANT_DRAWING_DRAW_PHI, &_GEANT_DRAWING_DRAW_PSI, &_GEANT_DRAWING_DRAW_U0,
08201 &_GEANT_DRAWING_DRAW_V0, &_GEANT_DRAWING_DRAW_SU, &_GEANT_DRAWING_DRAW_SV };
08202 static char *_GEANT_DRAWING_DRAW_guidance[] = {
08203 " CALL GDRAW(name,theta,phi,psi,u0,v0,su,sv)",
08204 "If optional parameters are missing, the corresponding values are",
08205 "taken from the common /GCDRAW/. This command will draw the volumes,",
08206 "selected with their graphical attributes, set by the SATT",
08207 "facility. The drawing may be performed with hidden line removal",
08208 "and with shading effects according to the value of the options HIDE",
08209 "and SHAD; if the option SHAD is ON, the contour's edges can be",
08210 "drawn or not. If the option HIDE is ON, the detector can be",
08211 "exploded (BOMB), clipped with different shapes (CVOL), and some",
08212 "of its parts can be shifted from their original",
08213 "position (SHIFT). When HIDE is ON, if",
08214 "the drawing requires more than the available memory, the program",
08215 "will evaluate and display the number of missing words",
08216 "(so that the user can increase the",
08217 "size of its ZEBRA store). Finally, at the end of each drawing (with HIDE\
08218 on),", "the program will print messages about the memory used and",
08219 "statistics on the volumes' visibility.",
08220 "The following commands will produce the drawing of a green",
08221 "volume, specified by NAME, without using the hidden line removal",
08222 "technique, using the hidden line removal technique,",
08223 "with different linewidth and colour (red), with",
08224 "solid colour, with shading of surfaces, and without edges.",
08225 "Finally, some examples are given for the ray-tracing. (A possible",
08226 "string for the NAME of the volume can be found using the command DTREE).",
08227 " EXAMPLE -", " satt * seen -2", " satt NAME colo 3",
08228 " draw NAME 40 40 0 10 10 .01 .01", " next", " dopt hide on",
08229 " draw NAME 40 40 0 10 10 .01 .01", " next", " satt NAME colo 2",
08230 " satt NAME lwid 4", " draw NAME 40 40 0 10 10 .01 .01", " next",
08231 " dopt shad on", " satt * lwid 1", " satt NAME fill 1",
08232 " draw NAME 40 40 0 10 10 .01 .01", " next", " satt NAME fill 3",
08233 " draw NAME 40 40 0 10 10 .01 .01", " next", " dopt edge off",
08234 " draw NAME 40 40 0 10 10 .01 .01", " dopt rayt on", " satt * fill 20",
08235 " dopt mapp 1", " draw NAME 40 40 0 10 10 .01 .01", " dopt proj pers",
08236 " persp NAME 500", " draw NAME 40 40 0 10 10 1 1", " valcut 100 100 100",
08237 " dopt mapp 0", " dopt user on", " satt NAM1 seen 0", " satt NAM2 colo 2",
08238 " draw NAME 40 40 0 10 10 5 5" };
08239 static KmCommand _GEANT_DRAWING_DRAW = { &_GEANT_DRAWING_SPOT,
08240 "/GEANT/DRAWING/DRAW", "DRAW", 0, 2, 8, 1, _GEANT_DRAWING_DRAW_parameters, 0,
08241 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 59,
08242 _GEANT_DRAWING_DRAW_guidance, 0, (char**)0, (char*)0, (int*)0 };
08243
08244 static char *_GEANT_DRAWING_guidance[] = {
08245 "Drawing commands. These commands allow the visualization in several ways",
08246 "of the volumes defined in the geometrical data structure. It is possible",
08247 "to draw the logical tree of volumes belonging to the detector (DTREE),",
08248 "to show their geometrical specification (DSPEC,DFSPC), to draw them",
08249 "and their cut views (DRAW, DCUT). Moreover, it is possible to execute",
08250 "these commands when the hidden line removal option is activated; in",
08251 "this case, the volumes can be also either translated in the space",
08252 "(SHIFT), or clipped by boolean operation (CVOL). In addition, it is",
08253 "possible to fill the surfaces of the volumes",
08254 "with solid colours when the shading option (SHAD) is activated.",
08255 "Several tools (ZOOM, LENS) have been developed to zoom detailed parts",
08256 "of the detectors or to scan physical events as well.",
08257 "Finally, the command MOVE will allow the rotation, translation and zooming",
08258 "on real time parts of the detectors or tracks and hits of a simulated\
08259 event.",
08260 "Ray-tracing commands. In case the command (DOPT RAYT ON) is executed,",
08261 "the drawing is performed by the Geant ray-tracing;",
08262 "automatically, the color is assigned according to the tracking medium of\
08263 each",
08264 "volume and the volumes with a density lower/equal than the air are\
08265 considered",
08266 "transparent; if the option (USER) is set (ON) (again via the command\
08267 (DOPT)),",
08268 "the user can set color and visibility for the desired volumes via the\
08269 command",
08270 "(SATT), as usual, relatively to the attributes (COLO) and (SEEN).",
08271 "The resolution can be set via the command (SATT * FILL VALUE), where\
08272 (VALUE)",
08273 "is the ratio between the number of pixels drawn and 20 (user coordinates).",
08274 "Parallel view and perspective view are possible (DOPT PROJ PARA/PERS); in\
08275 the",
08276 "first case, we assume that the first mother volume of the tree is a box\
08277 with",
08278 "dimensions 10000 X 10000 X 10000 cm and the view point (infinetely far) is",
08279 "5000 cm far from the origin along the Z axis of the user coordinates; in\
08280 the",
08281 "second case, the distance between the observer and the origin of the world",
08282 "reference system is set in cm by the command (PERSP NAME VALUE);\
08283 grand-angle",
08284 "or telescopic effects can be achieved changing the scale factors in the\
08285 command", "(DRAW). When the final picture does not occupy the full window,",
08286 "mapping the space before tracing can speed up the drawing, but can also",
08287 "produce less precise results; values from 1 to 4 are allowed in the\
08288 command",
08289 "(DOPT MAPP VALUE), the mapping being more precise for increasing (VALUE);\
08290 for",
08291 "(VALUE = 0) no mapping is performed (therefore max precision and lowest\
08292 speed).",
08293 "The command (VALCUT) allows the cutting of the detector by three planes",
08294 "ortogonal to the x,y,z axis. The attribute (LSTY) can be set by the\
08295 command",
08296 "SATT for any desired volume and can assume values from 0 to 7; it\
08297 determines",
08298 "the different light processing to be performed for different materials:",
08299 "0 = dark-matt, 1 = bright-matt, 2 = plastic, 3 = ceramic, 4 =\
08300 rough-metals,",
08301 "5 = shiny-metals, 6 = glass, 7 = mirror. The detector is assumed to be in\
08302 the",
08303 "dark, the ambient light luminosity is 0.2 for each basic hue (the\
08304 saturation",
08305 "is 0.9) and the observer is assumed to have a light source (therefore he\
08306 will",
08307 "produce parallel light in the case of parallel view and point-like-source",
08308 "light in the case of perspective view)." };
08309 static KmMenu _GEANT_DRAWING = { (KmMenu*)0, (KmMenu*)0, "/GEANT/DRAWING",
08310 "DRAWING", 2, &_GEANT_DRAWING_DRAW, 45, _GEANT_DRAWING_guidance };
08311
08312 static char *_GEANT_CVOL_guidance[] = { "Clipping commands.",
08313 "The hidden line removal technique is necessary to visualize properly",
08314 "very complex detectors. At the same time, it can be useful to visualize",
08315 "the inner elements of a detector in detail. For this purpose, the",
08316 "commands menu CVOL has been developed: these commands allow",
08317 "subtractions (via boolean operation) of given shapes from any part of",
08318 "the detector, therefore showing its inner contents. It is possible",
08319 "to clip each different volume by means of a different shape (BOX ,",
08320 "TUBE, CONE, SPHE are available). If '*' is given as the name of the",
08321 "volume to be clipped, all volumes are clipped by the given shape.",
08322 "A volume can be clipped at most twice (even by",
08323 "different shapes); if a volume is explicitely clipped",
08324 "twice, the '*' will not act on it anymore. Giving '.' as the name",
08325 "of the volume to be clipped will reset the clipping." };
08326 static KmMenu _GEANT_CVOL = { &_GEANT_DRAWING, (KmMenu*)0, "/GEANT/CVOL",
08327 "CVOL", 2, &_GEANT_CVOL_BOX, 14, _GEANT_CVOL_guidance };
08328
08329 static char *_GEANT_guidance[] = { "GEANT specific commands." };
08330 static KmMenu _GEANT = { (KmMenu*)0, &_GEANT_CVOL, "/GEANT", "GEANT", 1,
08331 (KmCommand*)0, 1, _GEANT_guidance };
08332
08333 klnkmenu( &_GEANT, 921023 );
08334 }
08335
08336
08337 #ifdef F77_LCASE
08338 # define gkgcon_ gkgcon
08339 # define gxgcon_ gxgcon
08340 #endif
08341
08342 #ifdef F77_UCASE
08343 # define gkgcon_ GKGCON
08344 # define gxgcon_ GXGCON
08345 #endif
08346
08347 #ifdef IBM370
08348 # pragma linkage(GKGCON,FORTRAN)
08349 # pragma linkage(GXGCON,FORTRAN)
08350 #endif
08351
08352 extern void gkgcon_();
08353 extern void gxgcon_();
08354
08355 void gkgcon_()
08356 {
08357
08358 static KmParInt _GEANT_GRAPHICS_CONTROL_MAP_COLOR_ICADD_type = { (char*)0,
08359 (char*)0, (char*)0, (char*)0, 0 };
08360 static KmParameter _GEANT_GRAPHICS_CONTROL_MAP_COLOR_ICADD = { "ICADD", 5,
08361 "Colour table index", "0", (char*)0, 8, 0, (char**)0, 0, (char**)0,
08362 (KmParFlag)0, KmTYPE_INT, &_GEANT_GRAPHICS_CONTROL_MAP_COLOR_ICADD_type };
08363 static KmParInt _GEANT_GRAPHICS_CONTROL_MAP_COLOR_ICVAL_type = { (char*)0,
08364 (char*)0, (char*)0, (char*)0, 0 };
08365 static KmParameter _GEANT_GRAPHICS_CONTROL_MAP_COLOR_ICVAL = { "ICVAL", 5,
08366 "Colour table value", "0", (char*)0, 8, 0, (char**)0, 0, (char**)0,
08367 (KmParFlag)0, KmTYPE_INT, &_GEANT_GRAPHICS_CONTROL_MAP_COLOR_ICVAL_type };
08368 static KmParameter *_GEANT_GRAPHICS_CONTROL_MAP_COLOR_parameters[] = {
08369 &_GEANT_GRAPHICS_CONTROL_MAP_COLOR_ICADD,
08370 &_GEANT_GRAPHICS_CONTROL_MAP_COLOR_ICVAL };
08371 static char *_GEANT_GRAPHICS_CONTROL_MAP_COLOR_guidance[] = {
08372 "Sets the color table LOOKTB(ICADD)=ICVAL.",
08373 "If ICADD=0 then LOOKTB(1:16) is taken.",
08374 "If ICVAL is omitted the current value of LOOKTB(ICADD) is shown." };
08375 static KmCommand _GEANT_GRAPHICS_CONTROL_MAP_COLOR = { (KmCommand*)0,
08376 "/GEANT/GRAPHICS_CONTROL/MAP_COLOR", "MAP_COLOR", 0, 2, 2, 0,
08377 _GEANT_GRAPHICS_CONTROL_MAP_COLOR_parameters, 0, 0, gxgcon_, (IntFunc*)0,
08378 (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_GRAPHICS_CONTROL_MAP_COLOR_guidance,
08379 0, (char**)0, (char*)0, (int*)0 };
08380
08381 static KmParReal _GEANT_GRAPHICS_CONTROL_SPERS_DPERS_type = { (char*)0,
08382 (char*)0, (char*)0, (char*)0, 0 };
08383 static KmParameter _GEANT_GRAPHICS_CONTROL_SPERS_DPERS = { "DPERS", 5,
08384 "Distance from the origin", (char*)0, (char*)0, 12, 0, (char**)0, 0,
08385 (char**)0, (KmParFlag)0, KmTYPE_REAL,
08386 &_GEANT_GRAPHICS_CONTROL_SPERS_DPERS_type };
08387 static KmParameter *_GEANT_GRAPHICS_CONTROL_SPERS_parameters[] = {
08388 &_GEANT_GRAPHICS_CONTROL_SPERS_DPERS };
08389 static char *_GEANT_GRAPHICS_CONTROL_SPERS_guidance[] = {
08390 "Set the variable dpers in /GCDRAW/, representing",
08391 "the distance from the origin when using option PERSpective." };
08392 static KmCommand _GEANT_GRAPHICS_CONTROL_SPERS = {
08393 &_GEANT_GRAPHICS_CONTROL_MAP_COLOR, "/GEANT/GRAPHICS_CONTROL/SPERS", "SPERS",
08394 0, 2, 1, 1, _GEANT_GRAPHICS_CONTROL_SPERS_parameters, 0, 0, gxgcon_,
08395 (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 2,
08396 _GEANT_GRAPHICS_CONTROL_SPERS_guidance, 0, (char**)0, (char*)0, (int*)0 };
08397
08398 static KmParReal _GEANT_GRAPHICS_CONTROL_SIZE_XSIZE_type = { (char*)0,
08399 (char*)0, (char*)0, (char*)0, 0 };
08400 static KmParameter _GEANT_GRAPHICS_CONTROL_SIZE_XSIZE = { "XSIZE", 5,
08401 "Size along X", "20.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
08402 (KmParFlag)0, KmTYPE_REAL, &_GEANT_GRAPHICS_CONTROL_SIZE_XSIZE_type };
08403 static KmParReal _GEANT_GRAPHICS_CONTROL_SIZE_YSIZE_type = { (char*)0,
08404 (char*)0, (char*)0, (char*)0, 0 };
08405 static KmParameter _GEANT_GRAPHICS_CONTROL_SIZE_YSIZE = { "YSIZE", 5,
08406 "Size along Y", "20.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
08407 (KmParFlag)0, KmTYPE_REAL, &_GEANT_GRAPHICS_CONTROL_SIZE_YSIZE_type };
08408 static KmParameter *_GEANT_GRAPHICS_CONTROL_SIZE_parameters[] = {
08409 &_GEANT_GRAPHICS_CONTROL_SIZE_XSIZE, &_GEANT_GRAPHICS_CONTROL_SIZE_YSIZE };
08410 static char *_GEANT_GRAPHICS_CONTROL_SIZE_guidance[] = {
08411 "Set the size of the picture.",
08412 "On the terminal, the pictures will have the ratio YSIZE/XSIZE, and,",
08413 "if a metafile is produced, pictures will be YSIZE by XSIZE cm.",
08414 "This command sets the parameters for the normalisation transformation",
08415 "number 1 to [0-XSIZE], [0-YSIZE]." };
08416 static KmCommand _GEANT_GRAPHICS_CONTROL_SIZE = {
08417 &_GEANT_GRAPHICS_CONTROL_SPERS, "/GEANT/GRAPHICS_CONTROL/SIZE", "SIZE", 0, 2,
08418 2, 0, _GEANT_GRAPHICS_CONTROL_SIZE_parameters, 0, 0, gxgcon_, (IntFunc*)0,
08419 (SUBROUTINE*)0, (pCharFunc*)0, 5, _GEANT_GRAPHICS_CONTROL_SIZE_guidance, 0,
08420 (char**)0, (char*)0, (int*)0 };
08421
08422 static KmParameter _GEANT_GRAPHICS_CONTROL_DOPT_IOPT = { "IOPT", 4,
08423 "Option name", "*", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
08424 KmTYPE_CHAR, (void*)0 };
08425 static KmParameter _GEANT_GRAPHICS_CONTROL_DOPT_IVAL = { "IVAL", 4,
08426 "Option value", "*", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
08427 KmTYPE_CHAR, (void*)0 };
08428 static KmParameter *_GEANT_GRAPHICS_CONTROL_DOPT_parameters[] = {
08429 &_GEANT_GRAPHICS_CONTROL_DOPT_IOPT, &_GEANT_GRAPHICS_CONTROL_DOPT_IVAL };
08430 static char *_GEANT_GRAPHICS_CONTROL_DOPT_guidance[] = {
08431 " CALL GDOPT(iopt,ival)", "To set/modify the drawing options.",
08432 " IOPT IVAL Action", " THRZ ON Draw tracks in R vs Z",
08433 " OFF (D) Draw tracks in X,Y,Z", " 180",
08434 " 360", " PROJ PARA (D) Parallel projection",
08435 " PERS Perspective",
08436 " TRAK LINE (D) Trajectory drawn with lines",
08437 " POIN \" \" with markers",
08438 " HIDE ON Hidden line removal using the CG package",
08439 " OFF (D) No hidden line removal",
08440 " SHAD ON Fill area and shading of surfaces.",
08441 " OFF (D) Normal hidden line removal.",
08442 " RAYT ON Ray-tracing on.",
08443 " OFF (D) Ray-tracing off.",
08444 " EDGE OFF Does not draw contours when shad is on.",
08445 " ON (D) Normal shading.",
08446 " MAPP 1,2,3,4 Mapping before ray-tracing.",
08447 " 0 (D) No mapping.",
08448 " USER ON User graphics options in the raytracing.",
08449 " OFF (D) Automatic graphics options." };
08450 static KmCommand _GEANT_GRAPHICS_CONTROL_DOPT = {
08451 &_GEANT_GRAPHICS_CONTROL_SIZE, "/GEANT/GRAPHICS_CONTROL/DOPT", "DOPT", 0, 2,
08452 2, 0, _GEANT_GRAPHICS_CONTROL_DOPT_parameters, 0, 0, gxgcon_, (IntFunc*)0,
08453 (SUBROUTINE*)0, (pCharFunc*)0, 23, _GEANT_GRAPHICS_CONTROL_DOPT_guidance, 0,
08454 (char**)0, (char*)0, (int*)0 };
08455
08456 static char *_GEANT_GRAPHICS_CONTROL_NEXT_guidance[] = {
08457 "Clear screen (start a new picture on graphics file, if opened)." };
08458 static KmCommand _GEANT_GRAPHICS_CONTROL_NEXT = {
08459 &_GEANT_GRAPHICS_CONTROL_DOPT, "/GEANT/GRAPHICS_CONTROL/NEXT", "NEXT", 0, 2,
08460 0, 0, (KmParameter**)0, 0, 0, gxgcon_, (IntFunc*)0, (SUBROUTINE*)0,
08461 (pCharFunc*)0, 1, _GEANT_GRAPHICS_CONTROL_NEXT_guidance, 0, (char**)0,
08462 (char*)0, (int*)0 };
08463
08464 static KmParInt _GEANT_GRAPHICS_CONTROL_LWID_LWIDTH_type = { (char*)0,
08465 (char*)0, (char*)0, (char*)0, 0 };
08466 static KmParameter _GEANT_GRAPHICS_CONTROL_LWID_LWIDTH = { "LWIDTH", 6,
08467 "Line width code", "1", (char*)0, 8, 0, (char**)0, 0, (char**)0,
08468 (KmParFlag)0, KmTYPE_INT, &_GEANT_GRAPHICS_CONTROL_LWID_LWIDTH_type };
08469 static KmParameter *_GEANT_GRAPHICS_CONTROL_LWID_parameters[] = {
08470 &_GEANT_GRAPHICS_CONTROL_LWID_LWIDTH };
08471 static char *_GEANT_GRAPHICS_CONTROL_LWID_guidance[] = {
08472 " CALL GDLW(-abs(lwidth))" };
08473 static KmCommand _GEANT_GRAPHICS_CONTROL_LWID = {
08474 &_GEANT_GRAPHICS_CONTROL_NEXT, "/GEANT/GRAPHICS_CONTROL/LWID", "LWID", 0, 2,
08475 1, 1, _GEANT_GRAPHICS_CONTROL_LWID_parameters, 0, 0, gxgcon_, (IntFunc*)0,
08476 (SUBROUTINE*)0, (pCharFunc*)0, 1, _GEANT_GRAPHICS_CONTROL_LWID_guidance, 0,
08477 (char**)0, (char*)0, (int*)0 };
08478
08479 static KmParInt _GEANT_GRAPHICS_CONTROL_COLOR_ICOL_type = { (char*)0,
08480 (char*)0, (char*)0, (char*)0, 0 };
08481 static KmParameter _GEANT_GRAPHICS_CONTROL_COLOR_ICOL = { "ICOL", 4,
08482 "Colour code", "1", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
08483 KmTYPE_INT, &_GEANT_GRAPHICS_CONTROL_COLOR_ICOL_type };
08484 static KmParameter *_GEANT_GRAPHICS_CONTROL_COLOR_parameters[] = {
08485 &_GEANT_GRAPHICS_CONTROL_COLOR_ICOL };
08486 static char *_GEANT_GRAPHICS_CONTROL_COLOR_guidance[] = {
08487 " CALL GDCOL(-abs(icol))" };
08488 static KmCommand _GEANT_GRAPHICS_CONTROL_COLOR = {
08489 &_GEANT_GRAPHICS_CONTROL_LWID, "/GEANT/GRAPHICS_CONTROL/COLOR", "COLOR", 0,
08490 2, 1, 1, _GEANT_GRAPHICS_CONTROL_COLOR_parameters, 0, 0, gxgcon_,
08491 (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
08492 _GEANT_GRAPHICS_CONTROL_COLOR_guidance, 0, (char**)0, (char*)0, (int*)0 };
08493
08494 static KmParReal _GEANT_GRAPHICS_CONTROL_SCALE_GSCU_type = { (char*)0,
08495 (char*)0, (char*)0, (char*)0, 0 };
08496 static KmParameter _GEANT_GRAPHICS_CONTROL_SCALE_GSCU = { "GSCU", 4,
08497 "Scale factor for U-coord.", (char*)0, (char*)0, 12, 0, (char**)0, 0,
08498 (char**)0, (KmParFlag)0, KmTYPE_REAL,
08499 &_GEANT_GRAPHICS_CONTROL_SCALE_GSCU_type };
08500 static KmParReal _GEANT_GRAPHICS_CONTROL_SCALE_GSCV_type = { (char*)0,
08501 (char*)0, (char*)0, (char*)0, 0 };
08502 static KmParameter _GEANT_GRAPHICS_CONTROL_SCALE_GSCV = { "GSCV", 4,
08503 "Scale factor for V-coord.", (char*)0, (char*)0, 12, 0, (char**)0, 0,
08504 (char**)0, (KmParFlag)0, KmTYPE_REAL,
08505 &_GEANT_GRAPHICS_CONTROL_SCALE_GSCV_type };
08506 static KmParameter *_GEANT_GRAPHICS_CONTROL_SCALE_parameters[] = {
08507 &_GEANT_GRAPHICS_CONTROL_SCALE_GSCU, &_GEANT_GRAPHICS_CONTROL_SCALE_GSCV };
08508 static char *_GEANT_GRAPHICS_CONTROL_SCALE_guidance[] = {
08509 "Change the scale factors GSCU and GSCV in /GCDRAW/." };
08510 static KmCommand _GEANT_GRAPHICS_CONTROL_SCALE = {
08511 &_GEANT_GRAPHICS_CONTROL_COLOR, "/GEANT/GRAPHICS_CONTROL/SCALE", "SCALE", 0,
08512 2, 2, 2, _GEANT_GRAPHICS_CONTROL_SCALE_parameters, 0, 0, gxgcon_,
08513 (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
08514 _GEANT_GRAPHICS_CONTROL_SCALE_guidance, 0, (char**)0, (char*)0, (int*)0 };
08515
08516 static KmParameter _GEANT_GRAPHICS_CONTROL_SATT_NAME = { "NAME", 4,
08517 "Volume name", "* ", (char*)0, 20, 0, (char**)0, 0, (char**)0,
08518 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
08519 static KmParameter _GEANT_GRAPHICS_CONTROL_SATT_IOPT = { "IOPT", 4,
08520 "Name of the attribute to be set", "DEFA", (char*)0, 20, 0, (char**)0, 0,
08521 (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
08522 static KmParInt _GEANT_GRAPHICS_CONTROL_SATT_IVAL_type = { (char*)0,
08523 (char*)0, (char*)0, (char*)0, 0 };
08524 static KmParameter _GEANT_GRAPHICS_CONTROL_SATT_IVAL = { "IVAL", 4,
08525 "Value to which the attribute is to be set", "10000", (char*)0, 8, 0,
08526 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
08527 &_GEANT_GRAPHICS_CONTROL_SATT_IVAL_type };
08528 static KmParameter *_GEANT_GRAPHICS_CONTROL_SATT_parameters[] = {
08529 &_GEANT_GRAPHICS_CONTROL_SATT_NAME, &_GEANT_GRAPHICS_CONTROL_SATT_IOPT,
08530 &_GEANT_GRAPHICS_CONTROL_SATT_IVAL };
08531 static char *_GEANT_GRAPHICS_CONTROL_SATT_guidance[] = {
08532 " CALL GSATT(name,iopt,ival)", "name='*' stands for all the volumes.",
08533 "iopt can be chosen among the following :",
08534 " 'WORK' 0=volume name is inactive for the tracking",
08535 " 1=volume name is active for the tracking (default)",
08536 " 'SEEN' 0=volume name is invisible",
08537 " 1=volume name is visible (default)",
08538 " -1=volume invisible with all its descendants in the tree",
08539 " -2=volume visible but not its descendants in the tree",
08540 " 'LSTY' line style 1,2,3,... (default=1)",
08541 " LSTY=7 will produce a very precise approximation for",
08542 " revolution bodies.",
08543 " 'LWID' line width -7,...,1,2,3,..7 (default=1)",
08544 " LWID<0 will act as abs(LWID) was set for the volume",
08545 " and for all the levels below it. When SHAD is 'ON', LWID",
08546 " represent the linewidth of the scan lines filling the surfaces",
08547 " (whereas the FILL value represent their number). Therefore",
08548 " tuning this parameter will help to obtain the desired",
08549 " quality/performance ratio.",
08550 " 'COLO' colour code -166,...,1,2,..166 (default=1)",
08551 " n=1=black",
08552 " n=2=red; n=17+m, m=0,25, increasing luminosity according to\
08553 'm';",
08554 " n=3=green; n=67+m, m=0,25, increasing luminosity according to\
08555 'm';",
08556 " n=4=blue; n=117+m, m=0,25, increasing luminosity according to\
08557 'm';",
08558 " n=5=yellow; n=42+m, m=0,25, increasing luminosity according to\
08559 'm';",
08560 " n=6=violet; n=142+m, m=0,25, increasing luminosity according to\
08561 'm';",
08562 " n=7=lightblue; n=92+m, m=0,25, increasing luminosity according to\
08563 'm';", " colour=n*10+m, m=1,2,...9, will produce the same colour",
08564 " as 'n', but with increasing luminosity according to 'm';",
08565 " COLO<0 will act as if abs(COLO) was set for the volume",
08566 " and for all the levels below it.",
08567 " When for a volume the attribute FILL is > 1 (and the",
08568 " option SHAD is on), the ABS of its colour code must be < 8",
08569 " because an automatic shading of its faces will be",
08570 " performed.",
08571 " 'FILL' (1992) fill area -7,...,0,1,...7 (default=0)",
08572 " when option SHAD is 'on' the FILL attribute of any",
08573 " volume can be set different from 0 (normal drawing);",
08574 " if it is set to 1, the faces of such volume will be filled",
08575 " with solid colours; if ABS(FILL) is > 1, then a light",
08576 " source is placed along the observer line, and the faces of",
08577 " such volumes will be painted by colours whose luminosity",
08578 " will depend on the amount of light reflected;",
08579 " if ABS(FILL) = 1, then it is possible to use all the 166",
08580 " colours of the colour table, becouse the automatic shading",
08581 " is not performed;",
08582 " for increasing values of FILL the drawing will be performed",
08583 " with higher and higher resolution improving the quality (the",
08584 " number of scan lines used to fill the faces increases with\
08585 FILL);", " it is possible to set different values of FILL",
08586 " for different volumes, in order to optimize at the same time",
08587 " the performance and the quality of the picture;",
08588 " FILL<0 will act as if abs(FILL) was set for the volume",
08589 " and for all the levels below it.",
08590 " This kind of drawing can be saved in 'picture files'",
08591 " or in view banks.", " 0=drawing without fill area",
08592 " 1=faces filled with solid colours and resolution = 6",
08593 " 2=lowest resolution (very fast)",
08594 " 3=default resolution", " 4=.................",
08595 " 5=.................", " 6=.................",
08596 " 7=max resolution",
08597 " Finally, if a coloured background is desired, the FILL",
08598 " attribute for the first volume of the tree must be set",
08599 " equal to -abs(colo), colo being >0 and <166.",
08600 " 'SET ' set number associated to volume name",
08601 " 'DET ' detector number associated to volume name",
08602 " 'DTYP' detector type (1,2)" };
08603 static KmCommand _GEANT_GRAPHICS_CONTROL_SATT = {
08604 &_GEANT_GRAPHICS_CONTROL_SCALE, "/GEANT/GRAPHICS_CONTROL/SATT", "SATT", 0, 2,
08605 3, 0, _GEANT_GRAPHICS_CONTROL_SATT_parameters, 0, 0, gxgcon_, (IntFunc*)0,
08606 (SUBROUTINE*)0, (pCharFunc*)0, 70, _GEANT_GRAPHICS_CONTROL_SATT_guidance, 0,
08607 (char**)0, (char*)0, (int*)0 };
08608
08609 static KmParReal _GEANT_GRAPHICS_CONTROL_SSETVA_RVAL_type = { "-10.", "10.",
08610 "-10.", "10.", 0 };
08611 static KmParameter _GEANT_GRAPHICS_CONTROL_SSETVA_RVAL = { "RVAL", 4,
08612 "Attribute value", "1.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
08613 (KmParFlag)0, KmTYPE_REAL, &_GEANT_GRAPHICS_CONTROL_SSETVA_RVAL_type };
08614 static KmParameter *_GEANT_GRAPHICS_CONTROL_SSETVA_parameters[] = {
08615 &_GEANT_GRAPHICS_CONTROL_SSETVA_RVAL };
08616 static char *_GEANT_GRAPHICS_CONTROL_SSETVA_guidance[] = {
08617 "Set current attribute value." };
08618 static KmCommand _GEANT_GRAPHICS_CONTROL_SSETVA = {
08619 &_GEANT_GRAPHICS_CONTROL_SATT, "/GEANT/GRAPHICS_CONTROL/SSETVA", "SSETVA", 0,
08620 2, 1, 0, _GEANT_GRAPHICS_CONTROL_SSETVA_parameters, 0, 0, gxgcon_,
08621 (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
08622 _GEANT_GRAPHICS_CONTROL_SSETVA_guidance, 0, (char**)0, (char*)0, (int*)0 };
08623
08624 static KmParameter _GEANT_GRAPHICS_CONTROL_SSETAT_IOPT = { "IOPT", 4,
08625 "Attribute name", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
08626 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
08627 static KmParameter *_GEANT_GRAPHICS_CONTROL_SSETAT_parameters[] = {
08628 &_GEANT_GRAPHICS_CONTROL_SSETAT_IOPT };
08629 static char *_GEANT_GRAPHICS_CONTROL_SSETAT_guidance[] = {
08630 "Set current attribute." };
08631 static KmCommand _GEANT_GRAPHICS_CONTROL_SSETAT = {
08632 &_GEANT_GRAPHICS_CONTROL_SSETVA, "/GEANT/GRAPHICS_CONTROL/SSETAT", "SSETAT",
08633 0, 2, 1, 1, _GEANT_GRAPHICS_CONTROL_SSETAT_parameters, 0, 0, gxgcon_,
08634 (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
08635 _GEANT_GRAPHICS_CONTROL_SSETAT_guidance, 0, (char**)0, (char*)0, (int*)0 };
08636
08637 static char *_GEANT_GRAPHICS_CONTROL_RESETWK_guidance[] = { "CALL GRESWK",
08638 "It deactivate the previosly activated workstation and reactivate the",
08639 "default one." };
08640 static KmCommand _GEANT_GRAPHICS_CONTROL_RESETWK = {
08641 &_GEANT_GRAPHICS_CONTROL_SSETAT, "/GEANT/GRAPHICS_CONTROL/RESETWK",
08642 "RESETWK", 0, 2, 0, 0, (KmParameter**)0, 0, 0, gxgcon_, (IntFunc*)0,
08643 (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_GRAPHICS_CONTROL_RESETWK_guidance,
08644 0, (char**)0, (char*)0, (int*)0 };
08645
08646 static char *_GEANT_GRAPHICS_CONTROL_CHANGEWK_guidance[] = { "CALL GCHNWK",
08647 "It open a new workstation (if not already opened) and activate it",
08648 "(deactivating the default one)." };
08649 static KmCommand _GEANT_GRAPHICS_CONTROL_CHANGEWK = {
08650 &_GEANT_GRAPHICS_CONTROL_RESETWK, "/GEANT/GRAPHICS_CONTROL/CHANGEWK",
08651 "CHANGEWK", 0, 2, 0, 0, (KmParameter**)0, 0, 0, gxgcon_, (IntFunc*)0,
08652 (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_GRAPHICS_CONTROL_CHANGEWK_guidance,
08653 0, (char**)0, (char*)0, (int*)0 };
08654
08655 static char *_GEANT_GRAPHICS_CONTROL_DCLOSE_guidance[] = { " CALL GDCLOS",
08656 "It closes the currently open view bank; it must be called after the",
08657 "end of the drawing to be stored." };
08658 static KmCommand _GEANT_GRAPHICS_CONTROL_DCLOSE = {
08659 &_GEANT_GRAPHICS_CONTROL_CHANGEWK, "/GEANT/GRAPHICS_CONTROL/DCLOSE",
08660 "DCLOSE", 0, 2, 0, 0, (KmParameter**)0, 0, 0, gxgcon_, (IntFunc*)0,
08661 (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_GRAPHICS_CONTROL_DCLOSE_guidance, 0,
08662 (char**)0, (char*)0, (int*)0 };
08663
08664 static KmParInt _GEANT_GRAPHICS_CONTROL_DELETE_IVIEW_type = { (char*)0,
08665 (char*)0, (char*)0, (char*)0, 0 };
08666 static KmParameter _GEANT_GRAPHICS_CONTROL_DELETE_IVIEW = { "IVIEW", 5,
08667 "View number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
08668 (KmParFlag)0, KmTYPE_INT, &_GEANT_GRAPHICS_CONTROL_DELETE_IVIEW_type };
08669 static KmParameter *_GEANT_GRAPHICS_CONTROL_DELETE_parameters[] = {
08670 &_GEANT_GRAPHICS_CONTROL_DELETE_IVIEW };
08671 static char *_GEANT_GRAPHICS_CONTROL_DELETE_guidance[] = {
08672 " CALL GDELET(iview)", "It deletes a view bank from memory." };
08673 static KmCommand _GEANT_GRAPHICS_CONTROL_DELETE = {
08674 &_GEANT_GRAPHICS_CONTROL_DCLOSE, "/GEANT/GRAPHICS_CONTROL/DELETE", "DELETE",
08675 0, 2, 1, 1, _GEANT_GRAPHICS_CONTROL_DELETE_parameters, 0, 0, gxgcon_,
08676 (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 2,
08677 _GEANT_GRAPHICS_CONTROL_DELETE_guidance, 0, (char**)0, (char*)0, (int*)0 };
08678
08679 static KmParInt _GEANT_GRAPHICS_CONTROL_DSHOW_IVIEW_type = { (char*)0,
08680 (char*)0, (char*)0, (char*)0, 0 };
08681 static KmParameter _GEANT_GRAPHICS_CONTROL_DSHOW_IVIEW = { "IVIEW", 5,
08682 "View number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
08683 (KmParFlag)0, KmTYPE_INT, &_GEANT_GRAPHICS_CONTROL_DSHOW_IVIEW_type };
08684 static KmParameter *_GEANT_GRAPHICS_CONTROL_DSHOW_parameters[] = {
08685 &_GEANT_GRAPHICS_CONTROL_DSHOW_IVIEW };
08686 static char *_GEANT_GRAPHICS_CONTROL_DSHOW_guidance[] = {
08687 " CALL GDSHOW(iview)",
08688 "It shows on the screen the contents of a view bank. It",
08689 "can be called after a view bank has been closed." };
08690 static KmCommand _GEANT_GRAPHICS_CONTROL_DSHOW = {
08691 &_GEANT_GRAPHICS_CONTROL_DELETE, "/GEANT/GRAPHICS_CONTROL/DSHOW", "DSHOW", 0,
08692 2, 1, 0, _GEANT_GRAPHICS_CONTROL_DSHOW_parameters, 0, 0, gxgcon_,
08693 (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
08694 _GEANT_GRAPHICS_CONTROL_DSHOW_guidance, 0, (char**)0, (char*)0, (int*)0 };
08695
08696 static KmParInt _GEANT_GRAPHICS_CONTROL_DOPEN_IVIEW_type = { (char*)0,
08697 (char*)0, (char*)0, (char*)0, 0 };
08698 static KmParameter _GEANT_GRAPHICS_CONTROL_DOPEN_IVIEW = { "IVIEW", 5,
08699 "View number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
08700 (KmParFlag)0, KmTYPE_INT, &_GEANT_GRAPHICS_CONTROL_DOPEN_IVIEW_type };
08701 static KmParameter *_GEANT_GRAPHICS_CONTROL_DOPEN_parameters[] = {
08702 &_GEANT_GRAPHICS_CONTROL_DOPEN_IVIEW };
08703 static char *_GEANT_GRAPHICS_CONTROL_DOPEN_guidance[] = {
08704 " CALL GDOPEN(iview)",
08705 "When a drawing is very complex and requires a long time to be",
08706 "executed, it can be useful to store it in a view bank: after a",
08707 "call to DOPEN and the execution of the drawing (nothing will",
08708 "appear on the screen), and after a necessary call to DCLOSE,",
08709 "the contents of the bank can be displayed in a very fast way",
08710 "through a call to DSHOW; therefore, the detector can be easily",
08711 "zoomed many times in different ways. Please note that the pictures",
08712 "with solid colours can now be stored in a view bank or in 'PICTURE FILES'."
08713 };
08714 static KmCommand _GEANT_GRAPHICS_CONTROL_DOPEN = {
08715 &_GEANT_GRAPHICS_CONTROL_DSHOW, "/GEANT/GRAPHICS_CONTROL/DOPEN", "DOPEN", 0,
08716 2, 1, 1, _GEANT_GRAPHICS_CONTROL_DOPEN_parameters, 0, 0, gxgcon_,
08717 (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 9,
08718 _GEANT_GRAPHICS_CONTROL_DOPEN_guidance, 0, (char**)0, (char*)0, (int*)0 };
08719
08720 static char *_GEANT_GRAPHICS_CONTROL_guidance[] = {
08721 "Graphics control commands." };
08722 static KmMenu _GEANT_GRAPHICS_CONTROL = { (KmMenu*)0, (KmMenu*)0,
08723 "/GEANT/GRAPHICS_CONTROL", "GRAPHICS_CONTROL", 2,
08724 &_GEANT_GRAPHICS_CONTROL_DOPEN, 1, _GEANT_GRAPHICS_CONTROL_guidance };
08725
08726 static KmMenu _GEANT = { (KmMenu*)0, &_GEANT_GRAPHICS_CONTROL, "/GEANT",
08727 "GEANT", 1, (KmCommand*)0, 0, (char**)0 };
08728
08729 klnkmenu( &_GEANT, 921023 );
08730 }
08731
08732
08733 #ifdef F77_LCASE
08734 # define gklist_ gklist
08735 # define gxlist_ gxlist
08736 #endif
08737
08738 #ifdef F77_UCASE
08739 # define gklist_ GKLIST
08740 # define gxlist_ GXLIST
08741 #endif
08742
08743 #ifdef IBM370
08744 # pragma linkage(GKLIST,FORTRAN)
08745 # pragma linkage(GXLIST,FORTRAN)
08746 #endif
08747
08748 extern void gklist_();
08749 extern void gxlist_();
08750
08751 void gklist_()
08752 {
08753
08754 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_1 = { "LRSAVE_1", 8, "user word",
08755 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
08756 KmTYPE_CHAR, (void*)0 };
08757 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_2 = { "LRSAVE_2", 8, "user word",
08758 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
08759 KmTYPE_CHAR, (void*)0 };
08760 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_3 = { "LRSAVE_3", 8, "user word",
08761 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
08762 KmTYPE_CHAR, (void*)0 };
08763 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_4 = { "LRSAVE_4", 8, "user word",
08764 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
08765 KmTYPE_CHAR, (void*)0 };
08766 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_5 = { "LRSAVE_5", 8, "user word",
08767 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
08768 KmTYPE_CHAR, (void*)0 };
08769 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_6 = { "LRSAVE_6", 8, "user word",
08770 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
08771 KmTYPE_CHAR, (void*)0 };
08772 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_7 = { "LRSAVE_7", 8, "user word",
08773 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
08774 KmTYPE_CHAR, (void*)0 };
08775 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_8 = { "LRSAVE_8", 8, "user word",
08776 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
08777 KmTYPE_CHAR, (void*)0 };
08778 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_9 = { "LRSAVE_9", 8, "user word",
08779 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
08780 KmTYPE_CHAR, (void*)0 };
08781 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_10 = { "LRSAVE_10", 9,
08782 "user word", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
08783 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
08784 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_11 = { "LRSAVE_11", 9,
08785 "user word", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
08786 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
08787 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_12 = { "LRSAVE_12", 9,
08788 "user word", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
08789 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
08790 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_13 = { "LRSAVE_13", 9,
08791 "user word", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
08792 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
08793 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_14 = { "LRSAVE_14", 9,
08794 "user word", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
08795 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
08796 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_15 = { "LRSAVE_15", 9,
08797 "user word", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
08798 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
08799 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_16 = { "LRSAVE_16", 9,
08800 "user word", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
08801 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
08802 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_17 = { "LRSAVE_17", 9,
08803 "user word", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
08804 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
08805 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_18 = { "LRSAVE_18", 9,
08806 "user word", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
08807 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
08808 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_19 = { "LRSAVE_19", 9,
08809 "user word", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
08810 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
08811 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_20 = { "LRSAVE_20", 9,
08812 "user word", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
08813 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
08814 static KmParameter *_GEANT_LISTS_RSAV_parameters[] = {
08815 &_GEANT_LISTS_RSAV_LRSAVE_1, &_GEANT_LISTS_RSAV_LRSAVE_2,
08816 &_GEANT_LISTS_RSAV_LRSAVE_3, &_GEANT_LISTS_RSAV_LRSAVE_4,
08817 &_GEANT_LISTS_RSAV_LRSAVE_5, &_GEANT_LISTS_RSAV_LRSAVE_6,
08818 &_GEANT_LISTS_RSAV_LRSAVE_7, &_GEANT_LISTS_RSAV_LRSAVE_8,
08819 &_GEANT_LISTS_RSAV_LRSAVE_9, &_GEANT_LISTS_RSAV_LRSAVE_10,
08820 &_GEANT_LISTS_RSAV_LRSAVE_11, &_GEANT_LISTS_RSAV_LRSAVE_12,
08821 &_GEANT_LISTS_RSAV_LRSAVE_13, &_GEANT_LISTS_RSAV_LRSAVE_14,
08822 &_GEANT_LISTS_RSAV_LRSAVE_15, &_GEANT_LISTS_RSAV_LRSAVE_16,
08823 &_GEANT_LISTS_RSAV_LRSAVE_17, &_GEANT_LISTS_RSAV_LRSAVE_18,
08824 &_GEANT_LISTS_RSAV_LRSAVE_19, &_GEANT_LISTS_RSAV_LRSAVE_20 };
08825 static char *_GEANT_LISTS_RSAV_guidance[] = {
08826 "The command RSAV is similar to the RSAV data records. It can accept",
08827 "up to 20 4-character words. If the first argument is '.', the number",
08828 "of words is reset to 0 and all the words to four blanks." };
08829 static KmCommand _GEANT_LISTS_RSAV = { (KmCommand*)0, "/GEANT/LISTS/RSAV",
08830 "RSAV", 0, 2, 20, 0, _GEANT_LISTS_RSAV_parameters, 0, 0, gxlist_,
08831 (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_LISTS_RSAV_guidance, 0,
08832 (char**)0, (char*)0, (int*)0 };
08833
08834 static KmParameter _GEANT_LISTS_RGET_LRGET_1 = { "LRGET_1", 7, "user word",
08835 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
08836 KmTYPE_CHAR, (void*)0 };
08837 static KmParameter _GEANT_LISTS_RGET_LRGET_2 = { "LRGET_2", 7, "user word",
08838 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
08839 KmTYPE_CHAR, (void*)0 };
08840 static KmParameter _GEANT_LISTS_RGET_LRGET_3 = { "LRGET_3", 7, "user word",
08841 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
08842 KmTYPE_CHAR, (void*)0 };
08843 static KmParameter _GEANT_LISTS_RGET_LRGET_4 = { "LRGET_4", 7, "user word",
08844 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
08845 KmTYPE_CHAR, (void*)0 };
08846 static KmParameter _GEANT_LISTS_RGET_LRGET_5 = { "LRGET_5", 7, "user word",
08847 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
08848 KmTYPE_CHAR, (void*)0 };
08849 static KmParameter _GEANT_LISTS_RGET_LRGET_6 = { "LRGET_6", 7, "user word",
08850 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
08851 KmTYPE_CHAR, (void*)0 };
08852 static KmParameter _GEANT_LISTS_RGET_LRGET_7 = { "LRGET_7", 7, "user word",
08853 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
08854 KmTYPE_CHAR, (void*)0 };
08855 static KmParameter _GEANT_LISTS_RGET_LRGET_8 = { "LRGET_8", 7, "user word",
08856 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
08857 KmTYPE_CHAR, (void*)0 };
08858 static KmParameter _GEANT_LISTS_RGET_LRGET_9 = { "LRGET_9", 7, "user word",
08859 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
08860 KmTYPE_CHAR, (void*)0 };
08861 static KmParameter _GEANT_LISTS_RGET_LRGET_10 = { "LRGET_10", 8, "user word",
08862 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
08863 KmTYPE_CHAR, (void*)0 };
08864 static KmParameter _GEANT_LISTS_RGET_LRGET_11 = { "LRGET_11", 8, "user word",
08865 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
08866 KmTYPE_CHAR, (void*)0 };
08867 static KmParameter _GEANT_LISTS_RGET_LRGET_12 = { "LRGET_12", 8, "user word",
08868 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
08869 KmTYPE_CHAR, (void*)0 };
08870 static KmParameter _GEANT_LISTS_RGET_LRGET_13 = { "LRGET_13", 8, "user word",
08871 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
08872 KmTYPE_CHAR, (void*)0 };
08873 static KmParameter _GEANT_LISTS_RGET_LRGET_14 = { "LRGET_14", 8, "user word",
08874 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
08875 KmTYPE_CHAR, (void*)0 };
08876 static KmParameter _GEANT_LISTS_RGET_LRGET_15 = { "LRGET_15", 8, "user word",
08877 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
08878 KmTYPE_CHAR, (void*)0 };
08879 static KmParameter _GEANT_LISTS_RGET_LRGET_16 = { "LRGET_16", 8, "user word",
08880 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
08881 KmTYPE_CHAR, (void*)0 };
08882 static KmParameter _GEANT_LISTS_RGET_LRGET_17 = { "LRGET_17", 8, "user word",
08883 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
08884 KmTYPE_CHAR, (void*)0 };
08885 static KmParameter _GEANT_LISTS_RGET_LRGET_18 = { "LRGET_18", 8, "user word",
08886 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
08887 KmTYPE_CHAR, (void*)0 };
08888 static KmParameter _GEANT_LISTS_RGET_LRGET_19 = { "LRGET_19", 8, "user word",
08889 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
08890 KmTYPE_CHAR, (void*)0 };
08891 static KmParameter _GEANT_LISTS_RGET_LRGET_20 = { "LRGET_20", 8, "user word",
08892 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
08893 KmTYPE_CHAR, (void*)0 };
08894 static KmParameter *_GEANT_LISTS_RGET_parameters[] = {
08895 &_GEANT_LISTS_RGET_LRGET_1, &_GEANT_LISTS_RGET_LRGET_2,
08896 &_GEANT_LISTS_RGET_LRGET_3, &_GEANT_LISTS_RGET_LRGET_4,
08897 &_GEANT_LISTS_RGET_LRGET_5, &_GEANT_LISTS_RGET_LRGET_6,
08898 &_GEANT_LISTS_RGET_LRGET_7, &_GEANT_LISTS_RGET_LRGET_8,
08899 &_GEANT_LISTS_RGET_LRGET_9, &_GEANT_LISTS_RGET_LRGET_10,
08900 &_GEANT_LISTS_RGET_LRGET_11, &_GEANT_LISTS_RGET_LRGET_12,
08901 &_GEANT_LISTS_RGET_LRGET_13, &_GEANT_LISTS_RGET_LRGET_14,
08902 &_GEANT_LISTS_RGET_LRGET_15, &_GEANT_LISTS_RGET_LRGET_16,
08903 &_GEANT_LISTS_RGET_LRGET_17, &_GEANT_LISTS_RGET_LRGET_18,
08904 &_GEANT_LISTS_RGET_LRGET_19, &_GEANT_LISTS_RGET_LRGET_20 };
08905 static char *_GEANT_LISTS_RGET_guidance[] = {
08906 "The command RGET is similar to the RGET data records. It can accept",
08907 "up to 20 4-character words. If the first argument is '.', the number",
08908 "of words is reset to 0 and all the words to four blanks." };
08909 static KmCommand _GEANT_LISTS_RGET = { &_GEANT_LISTS_RSAV,
08910 "/GEANT/LISTS/RGET", "RGET", 0, 2, 20, 0, _GEANT_LISTS_RGET_parameters, 0, 0,
08911 gxlist_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
08912 _GEANT_LISTS_RGET_guidance, 0, (char**)0, (char*)0, (int*)0 };
08913
08914 static KmParameter _GEANT_LISTS_STAT_LSTAT_1 = { "LSTAT_1", 7, "user word",
08915 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
08916 KmTYPE_CHAR, (void*)0 };
08917 static KmParameter _GEANT_LISTS_STAT_LSTAT_2 = { "LSTAT_2", 7, "user word",
08918 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
08919 KmTYPE_CHAR, (void*)0 };
08920 static KmParameter _GEANT_LISTS_STAT_LSTAT_3 = { "LSTAT_3", 7, "user word",
08921 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
08922 KmTYPE_CHAR, (void*)0 };
08923 static KmParameter _GEANT_LISTS_STAT_LSTAT_4 = { "LSTAT_4", 7, "user word",
08924 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
08925 KmTYPE_CHAR, (void*)0 };
08926 static KmParameter _GEANT_LISTS_STAT_LSTAT_5 = { "LSTAT_5", 7, "user word",
08927 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
08928 KmTYPE_CHAR, (void*)0 };
08929 static KmParameter _GEANT_LISTS_STAT_LSTAT_6 = { "LSTAT_6", 7, "user word",
08930 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
08931 KmTYPE_CHAR, (void*)0 };
08932 static KmParameter _GEANT_LISTS_STAT_LSTAT_7 = { "LSTAT_7", 7, "user word",
08933 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
08934 KmTYPE_CHAR, (void*)0 };
08935 static KmParameter _GEANT_LISTS_STAT_LSTAT_8 = { "LSTAT_8", 7, "user word",
08936 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
08937 KmTYPE_CHAR, (void*)0 };
08938 static KmParameter _GEANT_LISTS_STAT_LSTAT_9 = { "LSTAT_9", 7, "user word",
08939 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
08940 KmTYPE_CHAR, (void*)0 };
08941 static KmParameter _GEANT_LISTS_STAT_LSTAT_10 = { "LSTAT_10", 8, "user word",
08942 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
08943 KmTYPE_CHAR, (void*)0 };
08944 static KmParameter _GEANT_LISTS_STAT_LSTAT_11 = { "LSTAT_11", 8, "user word",
08945 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
08946 KmTYPE_CHAR, (void*)0 };
08947 static KmParameter _GEANT_LISTS_STAT_LSTAT_12 = { "LSTAT_12", 8, "user word",
08948 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
08949 KmTYPE_CHAR, (void*)0 };
08950 static KmParameter _GEANT_LISTS_STAT_LSTAT_13 = { "LSTAT_13", 8, "user word",
08951 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
08952 KmTYPE_CHAR, (void*)0 };
08953 static KmParameter _GEANT_LISTS_STAT_LSTAT_14 = { "LSTAT_14", 8, "user word",
08954 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
08955 KmTYPE_CHAR, (void*)0 };
08956 static KmParameter _GEANT_LISTS_STAT_LSTAT_15 = { "LSTAT_15", 8, "user word",
08957 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
08958 KmTYPE_CHAR, (void*)0 };
08959 static KmParameter _GEANT_LISTS_STAT_LSTAT_16 = { "LSTAT_16", 8, "user word",
08960 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
08961 KmTYPE_CHAR, (void*)0 };
08962 static KmParameter _GEANT_LISTS_STAT_LSTAT_17 = { "LSTAT_17", 8, "user word",
08963 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
08964 KmTYPE_CHAR, (void*)0 };
08965 static KmParameter _GEANT_LISTS_STAT_LSTAT_18 = { "LSTAT_18", 8, "user word",
08966 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
08967 KmTYPE_CHAR, (void*)0 };
08968 static KmParameter _GEANT_LISTS_STAT_LSTAT_19 = { "LSTAT_19", 8, "user word",
08969 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
08970 KmTYPE_CHAR, (void*)0 };
08971 static KmParameter _GEANT_LISTS_STAT_LSTAT_20 = { "LSTAT_20", 8, "user word",
08972 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
08973 KmTYPE_CHAR, (void*)0 };
08974 static KmParameter *_GEANT_LISTS_STAT_parameters[] = {
08975 &_GEANT_LISTS_STAT_LSTAT_1, &_GEANT_LISTS_STAT_LSTAT_2,
08976 &_GEANT_LISTS_STAT_LSTAT_3, &_GEANT_LISTS_STAT_LSTAT_4,
08977 &_GEANT_LISTS_STAT_LSTAT_5, &_GEANT_LISTS_STAT_LSTAT_6,
08978 &_GEANT_LISTS_STAT_LSTAT_7, &_GEANT_LISTS_STAT_LSTAT_8,
08979 &_GEANT_LISTS_STAT_LSTAT_9, &_GEANT_LISTS_STAT_LSTAT_10,
08980 &_GEANT_LISTS_STAT_LSTAT_11, &_GEANT_LISTS_STAT_LSTAT_12,
08981 &_GEANT_LISTS_STAT_LSTAT_13, &_GEANT_LISTS_STAT_LSTAT_14,
08982 &_GEANT_LISTS_STAT_LSTAT_15, &_GEANT_LISTS_STAT_LSTAT_16,
08983 &_GEANT_LISTS_STAT_LSTAT_17, &_GEANT_LISTS_STAT_LSTAT_18,
08984 &_GEANT_LISTS_STAT_LSTAT_19, &_GEANT_LISTS_STAT_LSTAT_20 };
08985 static char *_GEANT_LISTS_STAT_guidance[] = {
08986 "The command STAT is similar to the STAT data records. It can accept",
08987 "up to 20 4-character words. If the first argument is '.', the number",
08988 "of words is reset to 0 and all the words to four blanks." };
08989 static KmCommand _GEANT_LISTS_STAT = { &_GEANT_LISTS_RGET,
08990 "/GEANT/LISTS/STAT", "STAT", 0, 2, 20, 0, _GEANT_LISTS_STAT_parameters, 0, 0,
08991 gxlist_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
08992 _GEANT_LISTS_STAT_guidance, 0, (char**)0, (char*)0, (int*)0 };
08993
08994 static KmParameter _GEANT_LISTS_PLOT_LPLOT_1 = { "LPLOT_1", 7, "user word",
08995 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
08996 KmTYPE_CHAR, (void*)0 };
08997 static KmParameter _GEANT_LISTS_PLOT_LPLOT_2 = { "LPLOT_2", 7, "user word",
08998 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
08999 KmTYPE_CHAR, (void*)0 };
09000 static KmParameter _GEANT_LISTS_PLOT_LPLOT_3 = { "LPLOT_3", 7, "user word",
09001 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09002 KmTYPE_CHAR, (void*)0 };
09003 static KmParameter _GEANT_LISTS_PLOT_LPLOT_4 = { "LPLOT_4", 7, "user word",
09004 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09005 KmTYPE_CHAR, (void*)0 };
09006 static KmParameter _GEANT_LISTS_PLOT_LPLOT_5 = { "LPLOT_5", 7, "user word",
09007 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09008 KmTYPE_CHAR, (void*)0 };
09009 static KmParameter _GEANT_LISTS_PLOT_LPLOT_6 = { "LPLOT_6", 7, "user word",
09010 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09011 KmTYPE_CHAR, (void*)0 };
09012 static KmParameter _GEANT_LISTS_PLOT_LPLOT_7 = { "LPLOT_7", 7, "user word",
09013 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09014 KmTYPE_CHAR, (void*)0 };
09015 static KmParameter _GEANT_LISTS_PLOT_LPLOT_8 = { "LPLOT_8", 7, "user word",
09016 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09017 KmTYPE_CHAR, (void*)0 };
09018 static KmParameter _GEANT_LISTS_PLOT_LPLOT_9 = { "LPLOT_9", 7, "user word",
09019 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09020 KmTYPE_CHAR, (void*)0 };
09021 static KmParameter _GEANT_LISTS_PLOT_LPLOT_10 = { "LPLOT_10", 8, "user word",
09022 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09023 KmTYPE_CHAR, (void*)0 };
09024 static KmParameter _GEANT_LISTS_PLOT_LPLOT_11 = { "LPLOT_11", 8, "user word",
09025 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09026 KmTYPE_CHAR, (void*)0 };
09027 static KmParameter _GEANT_LISTS_PLOT_LPLOT_12 = { "LPLOT_12", 8, "user word",
09028 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09029 KmTYPE_CHAR, (void*)0 };
09030 static KmParameter _GEANT_LISTS_PLOT_LPLOT_13 = { "LPLOT_13", 8, "user word",
09031 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09032 KmTYPE_CHAR, (void*)0 };
09033 static KmParameter _GEANT_LISTS_PLOT_LPLOT_14 = { "LPLOT_14", 8, "user word",
09034 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09035 KmTYPE_CHAR, (void*)0 };
09036 static KmParameter _GEANT_LISTS_PLOT_LPLOT_15 = { "LPLOT_15", 8, "user word",
09037 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09038 KmTYPE_CHAR, (void*)0 };
09039 static KmParameter _GEANT_LISTS_PLOT_LPLOT_16 = { "LPLOT_16", 8, "user word",
09040 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09041 KmTYPE_CHAR, (void*)0 };
09042 static KmParameter _GEANT_LISTS_PLOT_LPLOT_17 = { "LPLOT_17", 8, "user word",
09043 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09044 KmTYPE_CHAR, (void*)0 };
09045 static KmParameter _GEANT_LISTS_PLOT_LPLOT_18 = { "LPLOT_18", 8, "user word",
09046 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09047 KmTYPE_CHAR, (void*)0 };
09048 static KmParameter _GEANT_LISTS_PLOT_LPLOT_19 = { "LPLOT_19", 8, "user word",
09049 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09050 KmTYPE_CHAR, (void*)0 };
09051 static KmParameter _GEANT_LISTS_PLOT_LPLOT_20 = { "LPLOT_20", 8, "user word",
09052 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09053 KmTYPE_CHAR, (void*)0 };
09054 static KmParameter *_GEANT_LISTS_PLOT_parameters[] = {
09055 &_GEANT_LISTS_PLOT_LPLOT_1, &_GEANT_LISTS_PLOT_LPLOT_2,
09056 &_GEANT_LISTS_PLOT_LPLOT_3, &_GEANT_LISTS_PLOT_LPLOT_4,
09057 &_GEANT_LISTS_PLOT_LPLOT_5, &_GEANT_LISTS_PLOT_LPLOT_6,
09058 &_GEANT_LISTS_PLOT_LPLOT_7, &_GEANT_LISTS_PLOT_LPLOT_8,
09059 &_GEANT_LISTS_PLOT_LPLOT_9, &_GEANT_LISTS_PLOT_LPLOT_10,
09060 &_GEANT_LISTS_PLOT_LPLOT_11, &_GEANT_LISTS_PLOT_LPLOT_12,
09061 &_GEANT_LISTS_PLOT_LPLOT_13, &_GEANT_LISTS_PLOT_LPLOT_14,
09062 &_GEANT_LISTS_PLOT_LPLOT_15, &_GEANT_LISTS_PLOT_LPLOT_16,
09063 &_GEANT_LISTS_PLOT_LPLOT_17, &_GEANT_LISTS_PLOT_LPLOT_18,
09064 &_GEANT_LISTS_PLOT_LPLOT_19, &_GEANT_LISTS_PLOT_LPLOT_20 };
09065 static char *_GEANT_LISTS_PLOT_guidance[] = {
09066 "The command PLOT is similar to the PLOT data records. It can accept",
09067 "up to 20 4-character words. If the first argument is '.', the number",
09068 "of words is reset to 0 and all the words to four blanks." };
09069 static KmCommand _GEANT_LISTS_PLOT = { &_GEANT_LISTS_STAT,
09070 "/GEANT/LISTS/PLOT", "PLOT", 0, 2, 20, 0, _GEANT_LISTS_PLOT_parameters, 0, 0,
09071 gxlist_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
09072 _GEANT_LISTS_PLOT_guidance, 0, (char**)0, (char*)0, (int*)0 };
09073
09074 static KmParameter _GEANT_LISTS_VIEW_LVIEW_1 = { "LVIEW_1", 7, "user word",
09075 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09076 KmTYPE_CHAR, (void*)0 };
09077 static KmParameter _GEANT_LISTS_VIEW_LVIEW_2 = { "LVIEW_2", 7, "user word",
09078 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09079 KmTYPE_CHAR, (void*)0 };
09080 static KmParameter _GEANT_LISTS_VIEW_LVIEW_3 = { "LVIEW_3", 7, "user word",
09081 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09082 KmTYPE_CHAR, (void*)0 };
09083 static KmParameter _GEANT_LISTS_VIEW_LVIEW_4 = { "LVIEW_4", 7, "user word",
09084 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09085 KmTYPE_CHAR, (void*)0 };
09086 static KmParameter _GEANT_LISTS_VIEW_LVIEW_5 = { "LVIEW_5", 7, "user word",
09087 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09088 KmTYPE_CHAR, (void*)0 };
09089 static KmParameter _GEANT_LISTS_VIEW_LVIEW_6 = { "LVIEW_6", 7, "user word",
09090 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09091 KmTYPE_CHAR, (void*)0 };
09092 static KmParameter _GEANT_LISTS_VIEW_LVIEW_7 = { "LVIEW_7", 7, "user word",
09093 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09094 KmTYPE_CHAR, (void*)0 };
09095 static KmParameter _GEANT_LISTS_VIEW_LVIEW_8 = { "LVIEW_8", 7, "user word",
09096 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09097 KmTYPE_CHAR, (void*)0 };
09098 static KmParameter _GEANT_LISTS_VIEW_LVIEW_9 = { "LVIEW_9", 7, "user word",
09099 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09100 KmTYPE_CHAR, (void*)0 };
09101 static KmParameter _GEANT_LISTS_VIEW_LVIEW_10 = { "LVIEW_10", 8, "user word",
09102 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09103 KmTYPE_CHAR, (void*)0 };
09104 static KmParameter _GEANT_LISTS_VIEW_LVIEW_11 = { "LVIEW_11", 8, "user word",
09105 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09106 KmTYPE_CHAR, (void*)0 };
09107 static KmParameter _GEANT_LISTS_VIEW_LVIEW_12 = { "LVIEW_12", 8, "user word",
09108 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09109 KmTYPE_CHAR, (void*)0 };
09110 static KmParameter _GEANT_LISTS_VIEW_LVIEW_13 = { "LVIEW_13", 8, "user word",
09111 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09112 KmTYPE_CHAR, (void*)0 };
09113 static KmParameter _GEANT_LISTS_VIEW_LVIEW_14 = { "LVIEW_14", 8, "user word",
09114 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09115 KmTYPE_CHAR, (void*)0 };
09116 static KmParameter _GEANT_LISTS_VIEW_LVIEW_15 = { "LVIEW_15", 8, "user word",
09117 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09118 KmTYPE_CHAR, (void*)0 };
09119 static KmParameter _GEANT_LISTS_VIEW_LVIEW_16 = { "LVIEW_16", 8, "user word",
09120 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09121 KmTYPE_CHAR, (void*)0 };
09122 static KmParameter _GEANT_LISTS_VIEW_LVIEW_17 = { "LVIEW_17", 8, "user word",
09123 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09124 KmTYPE_CHAR, (void*)0 };
09125 static KmParameter _GEANT_LISTS_VIEW_LVIEW_18 = { "LVIEW_18", 8, "user word",
09126 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09127 KmTYPE_CHAR, (void*)0 };
09128 static KmParameter _GEANT_LISTS_VIEW_LVIEW_19 = { "LVIEW_19", 8, "user word",
09129 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09130 KmTYPE_CHAR, (void*)0 };
09131 static KmParameter _GEANT_LISTS_VIEW_LVIEW_20 = { "LVIEW_20", 8, "user word",
09132 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09133 KmTYPE_CHAR, (void*)0 };
09134 static KmParameter *_GEANT_LISTS_VIEW_parameters[] = {
09135 &_GEANT_LISTS_VIEW_LVIEW_1, &_GEANT_LISTS_VIEW_LVIEW_2,
09136 &_GEANT_LISTS_VIEW_LVIEW_3, &_GEANT_LISTS_VIEW_LVIEW_4,
09137 &_GEANT_LISTS_VIEW_LVIEW_5, &_GEANT_LISTS_VIEW_LVIEW_6,
09138 &_GEANT_LISTS_VIEW_LVIEW_7, &_GEANT_LISTS_VIEW_LVIEW_8,
09139 &_GEANT_LISTS_VIEW_LVIEW_9, &_GEANT_LISTS_VIEW_LVIEW_10,
09140 &_GEANT_LISTS_VIEW_LVIEW_11, &_GEANT_LISTS_VIEW_LVIEW_12,
09141 &_GEANT_LISTS_VIEW_LVIEW_13, &_GEANT_LISTS_VIEW_LVIEW_14,
09142 &_GEANT_LISTS_VIEW_LVIEW_15, &_GEANT_LISTS_VIEW_LVIEW_16,
09143 &_GEANT_LISTS_VIEW_LVIEW_17, &_GEANT_LISTS_VIEW_LVIEW_18,
09144 &_GEANT_LISTS_VIEW_LVIEW_19, &_GEANT_LISTS_VIEW_LVIEW_20 };
09145 static char *_GEANT_LISTS_VIEW_guidance[] = {
09146 "The command VIEW is similar to the VIEW data records. It can accept",
09147 "up to 20 4-character words. If the first argument is '.', the number",
09148 "of words is reset to 0 and all the words to four blanks." };
09149 static KmCommand _GEANT_LISTS_VIEW = { &_GEANT_LISTS_PLOT,
09150 "/GEANT/LISTS/VIEW", "VIEW", 0, 2, 20, 0, _GEANT_LISTS_VIEW_parameters, 0, 0,
09151 gxlist_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
09152 _GEANT_LISTS_VIEW_guidance, 0, (char**)0, (char*)0, (int*)0 };
09153
09154 static KmParameter _GEANT_LISTS_GEOM_LGEOM_1 = { "LGEOM_1", 7, "user word",
09155 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09156 KmTYPE_CHAR, (void*)0 };
09157 static KmParameter _GEANT_LISTS_GEOM_LGEOM_2 = { "LGEOM_2", 7, "user word",
09158 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09159 KmTYPE_CHAR, (void*)0 };
09160 static KmParameter _GEANT_LISTS_GEOM_LGEOM_3 = { "LGEOM_3", 7, "user word",
09161 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09162 KmTYPE_CHAR, (void*)0 };
09163 static KmParameter _GEANT_LISTS_GEOM_LGEOM_4 = { "LGEOM_4", 7, "user word",
09164 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09165 KmTYPE_CHAR, (void*)0 };
09166 static KmParameter _GEANT_LISTS_GEOM_LGEOM_5 = { "LGEOM_5", 7, "user word",
09167 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09168 KmTYPE_CHAR, (void*)0 };
09169 static KmParameter _GEANT_LISTS_GEOM_LGEOM_6 = { "LGEOM_6", 7, "user word",
09170 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09171 KmTYPE_CHAR, (void*)0 };
09172 static KmParameter _GEANT_LISTS_GEOM_LGEOM_7 = { "LGEOM_7", 7, "user word",
09173 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09174 KmTYPE_CHAR, (void*)0 };
09175 static KmParameter _GEANT_LISTS_GEOM_LGEOM_8 = { "LGEOM_8", 7, "user word",
09176 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09177 KmTYPE_CHAR, (void*)0 };
09178 static KmParameter _GEANT_LISTS_GEOM_LGEOM_9 = { "LGEOM_9", 7, "user word",
09179 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09180 KmTYPE_CHAR, (void*)0 };
09181 static KmParameter _GEANT_LISTS_GEOM_LGEOM_10 = { "LGEOM_10", 8, "user word",
09182 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09183 KmTYPE_CHAR, (void*)0 };
09184 static KmParameter _GEANT_LISTS_GEOM_LGEOM_11 = { "LGEOM_11", 8, "user word",
09185 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09186 KmTYPE_CHAR, (void*)0 };
09187 static KmParameter _GEANT_LISTS_GEOM_LGEOM_12 = { "LGEOM_12", 8, "user word",
09188 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09189 KmTYPE_CHAR, (void*)0 };
09190 static KmParameter _GEANT_LISTS_GEOM_LGEOM_13 = { "LGEOM_13", 8, "user word",
09191 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09192 KmTYPE_CHAR, (void*)0 };
09193 static KmParameter _GEANT_LISTS_GEOM_LGEOM_14 = { "LGEOM_14", 8, "user word",
09194 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09195 KmTYPE_CHAR, (void*)0 };
09196 static KmParameter _GEANT_LISTS_GEOM_LGEOM_15 = { "LGEOM_15", 8, "user word",
09197 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09198 KmTYPE_CHAR, (void*)0 };
09199 static KmParameter _GEANT_LISTS_GEOM_LGEOM_16 = { "LGEOM_16", 8, "user word",
09200 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09201 KmTYPE_CHAR, (void*)0 };
09202 static KmParameter _GEANT_LISTS_GEOM_LGEOM_17 = { "LGEOM_17", 8, "user word",
09203 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09204 KmTYPE_CHAR, (void*)0 };
09205 static KmParameter _GEANT_LISTS_GEOM_LGEOM_18 = { "LGEOM_18", 8, "user word",
09206 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09207 KmTYPE_CHAR, (void*)0 };
09208 static KmParameter _GEANT_LISTS_GEOM_LGEOM_19 = { "LGEOM_19", 8, "user word",
09209 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09210 KmTYPE_CHAR, (void*)0 };
09211 static KmParameter _GEANT_LISTS_GEOM_LGEOM_20 = { "LGEOM_20", 8, "user word",
09212 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09213 KmTYPE_CHAR, (void*)0 };
09214 static KmParameter *_GEANT_LISTS_GEOM_parameters[] = {
09215 &_GEANT_LISTS_GEOM_LGEOM_1, &_GEANT_LISTS_GEOM_LGEOM_2,
09216 &_GEANT_LISTS_GEOM_LGEOM_3, &_GEANT_LISTS_GEOM_LGEOM_4,
09217 &_GEANT_LISTS_GEOM_LGEOM_5, &_GEANT_LISTS_GEOM_LGEOM_6,
09218 &_GEANT_LISTS_GEOM_LGEOM_7, &_GEANT_LISTS_GEOM_LGEOM_8,
09219 &_GEANT_LISTS_GEOM_LGEOM_9, &_GEANT_LISTS_GEOM_LGEOM_10,
09220 &_GEANT_LISTS_GEOM_LGEOM_11, &_GEANT_LISTS_GEOM_LGEOM_12,
09221 &_GEANT_LISTS_GEOM_LGEOM_13, &_GEANT_LISTS_GEOM_LGEOM_14,
09222 &_GEANT_LISTS_GEOM_LGEOM_15, &_GEANT_LISTS_GEOM_LGEOM_16,
09223 &_GEANT_LISTS_GEOM_LGEOM_17, &_GEANT_LISTS_GEOM_LGEOM_18,
09224 &_GEANT_LISTS_GEOM_LGEOM_19, &_GEANT_LISTS_GEOM_LGEOM_20 };
09225 static char *_GEANT_LISTS_GEOM_guidance[] = {
09226 "The command GEOM is similar to the GEOM data records. It can accept",
09227 "up to 20 4-character words. If the first argument is '.', the number",
09228 "of words is reset to 0 and all the words to four blanks." };
09229 static KmCommand _GEANT_LISTS_GEOM = { &_GEANT_LISTS_VIEW,
09230 "/GEANT/LISTS/GEOM", "GEOM", 0, 2, 20, 0, _GEANT_LISTS_GEOM_parameters, 0, 0,
09231 gxlist_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
09232 _GEANT_LISTS_GEOM_guidance, 0, (char**)0, (char*)0, (int*)0 };
09233
09234 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_1 = { "LPRIN_1", 7, "user word",
09235 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09236 KmTYPE_CHAR, (void*)0 };
09237 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_2 = { "LPRIN_2", 7, "user word",
09238 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09239 KmTYPE_CHAR, (void*)0 };
09240 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_3 = { "LPRIN_3", 7, "user word",
09241 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09242 KmTYPE_CHAR, (void*)0 };
09243 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_4 = { "LPRIN_4", 7, "user word",
09244 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09245 KmTYPE_CHAR, (void*)0 };
09246 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_5 = { "LPRIN_5", 7, "user word",
09247 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09248 KmTYPE_CHAR, (void*)0 };
09249 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_6 = { "LPRIN_6", 7, "user word",
09250 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09251 KmTYPE_CHAR, (void*)0 };
09252 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_7 = { "LPRIN_7", 7, "user word",
09253 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09254 KmTYPE_CHAR, (void*)0 };
09255 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_8 = { "LPRIN_8", 7, "user word",
09256 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09257 KmTYPE_CHAR, (void*)0 };
09258 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_9 = { "LPRIN_9", 7, "user word",
09259 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09260 KmTYPE_CHAR, (void*)0 };
09261 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_10 = { "LPRIN_10", 8, "user word",
09262 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09263 KmTYPE_CHAR, (void*)0 };
09264 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_11 = { "LPRIN_11", 8, "user word",
09265 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09266 KmTYPE_CHAR, (void*)0 };
09267 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_12 = { "LPRIN_12", 8, "user word",
09268 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09269 KmTYPE_CHAR, (void*)0 };
09270 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_13 = { "LPRIN_13", 8, "user word",
09271 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09272 KmTYPE_CHAR, (void*)0 };
09273 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_14 = { "LPRIN_14", 8, "user word",
09274 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09275 KmTYPE_CHAR, (void*)0 };
09276 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_15 = { "LPRIN_15", 8, "user word",
09277 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09278 KmTYPE_CHAR, (void*)0 };
09279 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_16 = { "LPRIN_16", 8, "user word",
09280 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09281 KmTYPE_CHAR, (void*)0 };
09282 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_17 = { "LPRIN_17", 8, "user word",
09283 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09284 KmTYPE_CHAR, (void*)0 };
09285 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_18 = { "LPRIN_18", 8, "user word",
09286 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09287 KmTYPE_CHAR, (void*)0 };
09288 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_19 = { "LPRIN_19", 8, "user word",
09289 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09290 KmTYPE_CHAR, (void*)0 };
09291 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_20 = { "LPRIN_20", 8, "user word",
09292 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09293 KmTYPE_CHAR, (void*)0 };
09294 static KmParameter *_GEANT_LISTS_LPRIN_parameters[] = {
09295 &_GEANT_LISTS_LPRIN_LPRIN_1, &_GEANT_LISTS_LPRIN_LPRIN_2,
09296 &_GEANT_LISTS_LPRIN_LPRIN_3, &_GEANT_LISTS_LPRIN_LPRIN_4,
09297 &_GEANT_LISTS_LPRIN_LPRIN_5, &_GEANT_LISTS_LPRIN_LPRIN_6,
09298 &_GEANT_LISTS_LPRIN_LPRIN_7, &_GEANT_LISTS_LPRIN_LPRIN_8,
09299 &_GEANT_LISTS_LPRIN_LPRIN_9, &_GEANT_LISTS_LPRIN_LPRIN_10,
09300 &_GEANT_LISTS_LPRIN_LPRIN_11, &_GEANT_LISTS_LPRIN_LPRIN_12,
09301 &_GEANT_LISTS_LPRIN_LPRIN_13, &_GEANT_LISTS_LPRIN_LPRIN_14,
09302 &_GEANT_LISTS_LPRIN_LPRIN_15, &_GEANT_LISTS_LPRIN_LPRIN_16,
09303 &_GEANT_LISTS_LPRIN_LPRIN_17, &_GEANT_LISTS_LPRIN_LPRIN_18,
09304 &_GEANT_LISTS_LPRIN_LPRIN_19, &_GEANT_LISTS_LPRIN_LPRIN_20 };
09305 static char *_GEANT_LISTS_LPRIN_guidance[] = {
09306 "The command PRIN is similar to the PRIN data records. It can accept",
09307 "up to 20 4-character words. If the first argument is '.', the number",
09308 "of words is reset to 0 and all the words to four blanks." };
09309 static KmCommand _GEANT_LISTS_LPRIN = { &_GEANT_LISTS_GEOM,
09310 "/GEANT/LISTS/LPRIN", "LPRIN", 0, 2, 20, 0, _GEANT_LISTS_LPRIN_parameters, 0,
09311 0, gxlist_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
09312 _GEANT_LISTS_LPRIN_guidance, 0, (char**)0, (char*)0, (int*)0 };
09313
09314 static KmParameter _GEANT_LISTS_SETS_LSETS_1 = { "LSETS_1", 7, "user word",
09315 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09316 KmTYPE_CHAR, (void*)0 };
09317 static KmParameter _GEANT_LISTS_SETS_LSETS_2 = { "LSETS_2", 7, "user word",
09318 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09319 KmTYPE_CHAR, (void*)0 };
09320 static KmParameter _GEANT_LISTS_SETS_LSETS_3 = { "LSETS_3", 7, "user word",
09321 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09322 KmTYPE_CHAR, (void*)0 };
09323 static KmParameter _GEANT_LISTS_SETS_LSETS_4 = { "LSETS_4", 7, "user word",
09324 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09325 KmTYPE_CHAR, (void*)0 };
09326 static KmParameter _GEANT_LISTS_SETS_LSETS_5 = { "LSETS_5", 7, "user word",
09327 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09328 KmTYPE_CHAR, (void*)0 };
09329 static KmParameter _GEANT_LISTS_SETS_LSETS_6 = { "LSETS_6", 7, "user word",
09330 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09331 KmTYPE_CHAR, (void*)0 };
09332 static KmParameter _GEANT_LISTS_SETS_LSETS_7 = { "LSETS_7", 7, "user word",
09333 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09334 KmTYPE_CHAR, (void*)0 };
09335 static KmParameter _GEANT_LISTS_SETS_LSETS_8 = { "LSETS_8", 7, "user word",
09336 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09337 KmTYPE_CHAR, (void*)0 };
09338 static KmParameter _GEANT_LISTS_SETS_LSETS_9 = { "LSETS_9", 7, "user word",
09339 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09340 KmTYPE_CHAR, (void*)0 };
09341 static KmParameter _GEANT_LISTS_SETS_LSETS_10 = { "LSETS_10", 8, "user word",
09342 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09343 KmTYPE_CHAR, (void*)0 };
09344 static KmParameter _GEANT_LISTS_SETS_LSETS_11 = { "LSETS_11", 8, "user word",
09345 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09346 KmTYPE_CHAR, (void*)0 };
09347 static KmParameter _GEANT_LISTS_SETS_LSETS_12 = { "LSETS_12", 8, "user word",
09348 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09349 KmTYPE_CHAR, (void*)0 };
09350 static KmParameter _GEANT_LISTS_SETS_LSETS_13 = { "LSETS_13", 8, "user word",
09351 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09352 KmTYPE_CHAR, (void*)0 };
09353 static KmParameter _GEANT_LISTS_SETS_LSETS_14 = { "LSETS_14", 8, "user word",
09354 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09355 KmTYPE_CHAR, (void*)0 };
09356 static KmParameter _GEANT_LISTS_SETS_LSETS_15 = { "LSETS_15", 8, "user word",
09357 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09358 KmTYPE_CHAR, (void*)0 };
09359 static KmParameter _GEANT_LISTS_SETS_LSETS_16 = { "LSETS_16", 8, "user word",
09360 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09361 KmTYPE_CHAR, (void*)0 };
09362 static KmParameter _GEANT_LISTS_SETS_LSETS_17 = { "LSETS_17", 8, "user word",
09363 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09364 KmTYPE_CHAR, (void*)0 };
09365 static KmParameter _GEANT_LISTS_SETS_LSETS_18 = { "LSETS_18", 8, "user word",
09366 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09367 KmTYPE_CHAR, (void*)0 };
09368 static KmParameter _GEANT_LISTS_SETS_LSETS_19 = { "LSETS_19", 8, "user word",
09369 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09370 KmTYPE_CHAR, (void*)0 };
09371 static KmParameter _GEANT_LISTS_SETS_LSETS_20 = { "LSETS_20", 8, "user word",
09372 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09373 KmTYPE_CHAR, (void*)0 };
09374 static KmParameter *_GEANT_LISTS_SETS_parameters[] = {
09375 &_GEANT_LISTS_SETS_LSETS_1, &_GEANT_LISTS_SETS_LSETS_2,
09376 &_GEANT_LISTS_SETS_LSETS_3, &_GEANT_LISTS_SETS_LSETS_4,
09377 &_GEANT_LISTS_SETS_LSETS_5, &_GEANT_LISTS_SETS_LSETS_6,
09378 &_GEANT_LISTS_SETS_LSETS_7, &_GEANT_LISTS_SETS_LSETS_8,
09379 &_GEANT_LISTS_SETS_LSETS_9, &_GEANT_LISTS_SETS_LSETS_10,
09380 &_GEANT_LISTS_SETS_LSETS_11, &_GEANT_LISTS_SETS_LSETS_12,
09381 &_GEANT_LISTS_SETS_LSETS_13, &_GEANT_LISTS_SETS_LSETS_14,
09382 &_GEANT_LISTS_SETS_LSETS_15, &_GEANT_LISTS_SETS_LSETS_16,
09383 &_GEANT_LISTS_SETS_LSETS_17, &_GEANT_LISTS_SETS_LSETS_18,
09384 &_GEANT_LISTS_SETS_LSETS_19, &_GEANT_LISTS_SETS_LSETS_20 };
09385 static char *_GEANT_LISTS_SETS_guidance[] = {
09386 "The command SETS is similar to the SETS data records. It can accept",
09387 "up to 20 4-character words. If the first argument is '.', the number",
09388 "of words is reset to 0 and all the words to four blanks." };
09389 static KmCommand _GEANT_LISTS_SETS = { &_GEANT_LISTS_LPRIN,
09390 "/GEANT/LISTS/SETS", "SETS", 0, 2, 20, 0, _GEANT_LISTS_SETS_parameters, 0, 0,
09391 gxlist_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
09392 _GEANT_LISTS_SETS_guidance, 0, (char**)0, (char*)0, (int*)0 };
09393
09394 static KmParameter _GEANT_LISTS_SAVE_LSAVE_1 = { "LSAVE_1", 7, "user word",
09395 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09396 KmTYPE_CHAR, (void*)0 };
09397 static KmParameter _GEANT_LISTS_SAVE_LSAVE_2 = { "LSAVE_2", 7, "user word",
09398 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09399 KmTYPE_CHAR, (void*)0 };
09400 static KmParameter _GEANT_LISTS_SAVE_LSAVE_3 = { "LSAVE_3", 7, "user word",
09401 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09402 KmTYPE_CHAR, (void*)0 };
09403 static KmParameter _GEANT_LISTS_SAVE_LSAVE_4 = { "LSAVE_4", 7, "user word",
09404 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09405 KmTYPE_CHAR, (void*)0 };
09406 static KmParameter _GEANT_LISTS_SAVE_LSAVE_5 = { "LSAVE_5", 7, "user word",
09407 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09408 KmTYPE_CHAR, (void*)0 };
09409 static KmParameter _GEANT_LISTS_SAVE_LSAVE_6 = { "LSAVE_6", 7, "user word",
09410 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09411 KmTYPE_CHAR, (void*)0 };
09412 static KmParameter _GEANT_LISTS_SAVE_LSAVE_7 = { "LSAVE_7", 7, "user word",
09413 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09414 KmTYPE_CHAR, (void*)0 };
09415 static KmParameter _GEANT_LISTS_SAVE_LSAVE_8 = { "LSAVE_8", 7, "user word",
09416 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09417 KmTYPE_CHAR, (void*)0 };
09418 static KmParameter _GEANT_LISTS_SAVE_LSAVE_9 = { "LSAVE_9", 7, "user word",
09419 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09420 KmTYPE_CHAR, (void*)0 };
09421 static KmParameter _GEANT_LISTS_SAVE_LSAVE_10 = { "LSAVE_10", 8, "user word",
09422 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09423 KmTYPE_CHAR, (void*)0 };
09424 static KmParameter _GEANT_LISTS_SAVE_LSAVE_11 = { "LSAVE_11", 8, "user word",
09425 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09426 KmTYPE_CHAR, (void*)0 };
09427 static KmParameter _GEANT_LISTS_SAVE_LSAVE_12 = { "LSAVE_12", 8, "user word",
09428 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09429 KmTYPE_CHAR, (void*)0 };
09430 static KmParameter _GEANT_LISTS_SAVE_LSAVE_13 = { "LSAVE_13", 8, "user word",
09431 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09432 KmTYPE_CHAR, (void*)0 };
09433 static KmParameter _GEANT_LISTS_SAVE_LSAVE_14 = { "LSAVE_14", 8, "user word",
09434 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09435 KmTYPE_CHAR, (void*)0 };
09436 static KmParameter _GEANT_LISTS_SAVE_LSAVE_15 = { "LSAVE_15", 8, "user word",
09437 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09438 KmTYPE_CHAR, (void*)0 };
09439 static KmParameter _GEANT_LISTS_SAVE_LSAVE_16 = { "LSAVE_16", 8, "user word",
09440 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09441 KmTYPE_CHAR, (void*)0 };
09442 static KmParameter _GEANT_LISTS_SAVE_LSAVE_17 = { "LSAVE_17", 8, "user word",
09443 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09444 KmTYPE_CHAR, (void*)0 };
09445 static KmParameter _GEANT_LISTS_SAVE_LSAVE_18 = { "LSAVE_18", 8, "user word",
09446 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09447 KmTYPE_CHAR, (void*)0 };
09448 static KmParameter _GEANT_LISTS_SAVE_LSAVE_19 = { "LSAVE_19", 8, "user word",
09449 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09450 KmTYPE_CHAR, (void*)0 };
09451 static KmParameter _GEANT_LISTS_SAVE_LSAVE_20 = { "LSAVE_20", 8, "user word",
09452 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09453 KmTYPE_CHAR, (void*)0 };
09454 static KmParameter *_GEANT_LISTS_SAVE_parameters[] = {
09455 &_GEANT_LISTS_SAVE_LSAVE_1, &_GEANT_LISTS_SAVE_LSAVE_2,
09456 &_GEANT_LISTS_SAVE_LSAVE_3, &_GEANT_LISTS_SAVE_LSAVE_4,
09457 &_GEANT_LISTS_SAVE_LSAVE_5, &_GEANT_LISTS_SAVE_LSAVE_6,
09458 &_GEANT_LISTS_SAVE_LSAVE_7, &_GEANT_LISTS_SAVE_LSAVE_8,
09459 &_GEANT_LISTS_SAVE_LSAVE_9, &_GEANT_LISTS_SAVE_LSAVE_10,
09460 &_GEANT_LISTS_SAVE_LSAVE_11, &_GEANT_LISTS_SAVE_LSAVE_12,
09461 &_GEANT_LISTS_SAVE_LSAVE_13, &_GEANT_LISTS_SAVE_LSAVE_14,
09462 &_GEANT_LISTS_SAVE_LSAVE_15, &_GEANT_LISTS_SAVE_LSAVE_16,
09463 &_GEANT_LISTS_SAVE_LSAVE_17, &_GEANT_LISTS_SAVE_LSAVE_18,
09464 &_GEANT_LISTS_SAVE_LSAVE_19, &_GEANT_LISTS_SAVE_LSAVE_20 };
09465 static char *_GEANT_LISTS_SAVE_guidance[] = {
09466 "The command SAVE is similar to the SAVE data records. It can accept",
09467 "up to 20 4-character words. If the first argument is '.', the number",
09468 "of words is reset to 0 and all the words to four blanks." };
09469 static KmCommand _GEANT_LISTS_SAVE = { &_GEANT_LISTS_SETS,
09470 "/GEANT/LISTS/SAVE", "SAVE", 0, 2, 20, 0, _GEANT_LISTS_SAVE_parameters, 0, 0,
09471 gxlist_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
09472 _GEANT_LISTS_SAVE_guidance, 0, (char**)0, (char*)0, (int*)0 };
09473
09474 static KmParameter _GEANT_LISTS_GET_LGET_1 = { "LGET_1", 6, "user word",
09475 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09476 KmTYPE_CHAR, (void*)0 };
09477 static KmParameter _GEANT_LISTS_GET_LGET_2 = { "LGET_2", 6, "user word",
09478 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09479 KmTYPE_CHAR, (void*)0 };
09480 static KmParameter _GEANT_LISTS_GET_LGET_3 = { "LGET_3", 6, "user word",
09481 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09482 KmTYPE_CHAR, (void*)0 };
09483 static KmParameter _GEANT_LISTS_GET_LGET_4 = { "LGET_4", 6, "user word",
09484 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09485 KmTYPE_CHAR, (void*)0 };
09486 static KmParameter _GEANT_LISTS_GET_LGET_5 = { "LGET_5", 6, "user word",
09487 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09488 KmTYPE_CHAR, (void*)0 };
09489 static KmParameter _GEANT_LISTS_GET_LGET_6 = { "LGET_6", 6, "user word",
09490 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09491 KmTYPE_CHAR, (void*)0 };
09492 static KmParameter _GEANT_LISTS_GET_LGET_7 = { "LGET_7", 6, "user word",
09493 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09494 KmTYPE_CHAR, (void*)0 };
09495 static KmParameter _GEANT_LISTS_GET_LGET_8 = { "LGET_8", 6, "user word",
09496 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09497 KmTYPE_CHAR, (void*)0 };
09498 static KmParameter _GEANT_LISTS_GET_LGET_9 = { "LGET_9", 6, "user word",
09499 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09500 KmTYPE_CHAR, (void*)0 };
09501 static KmParameter _GEANT_LISTS_GET_LGET_10 = { "LGET_10", 7, "user word",
09502 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09503 KmTYPE_CHAR, (void*)0 };
09504 static KmParameter _GEANT_LISTS_GET_LGET_11 = { "LGET_11", 7, "user word",
09505 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09506 KmTYPE_CHAR, (void*)0 };
09507 static KmParameter _GEANT_LISTS_GET_LGET_12 = { "LGET_12", 7, "user word",
09508 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09509 KmTYPE_CHAR, (void*)0 };
09510 static KmParameter _GEANT_LISTS_GET_LGET_13 = { "LGET_13", 7, "user word",
09511 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09512 KmTYPE_CHAR, (void*)0 };
09513 static KmParameter _GEANT_LISTS_GET_LGET_14 = { "LGET_14", 7, "user word",
09514 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09515 KmTYPE_CHAR, (void*)0 };
09516 static KmParameter _GEANT_LISTS_GET_LGET_15 = { "LGET_15", 7, "user word",
09517 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09518 KmTYPE_CHAR, (void*)0 };
09519 static KmParameter _GEANT_LISTS_GET_LGET_16 = { "LGET_16", 7, "user word",
09520 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09521 KmTYPE_CHAR, (void*)0 };
09522 static KmParameter _GEANT_LISTS_GET_LGET_17 = { "LGET_17", 7, "user word",
09523 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09524 KmTYPE_CHAR, (void*)0 };
09525 static KmParameter _GEANT_LISTS_GET_LGET_18 = { "LGET_18", 7, "user word",
09526 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09527 KmTYPE_CHAR, (void*)0 };
09528 static KmParameter _GEANT_LISTS_GET_LGET_19 = { "LGET_19", 7, "user word",
09529 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09530 KmTYPE_CHAR, (void*)0 };
09531 static KmParameter _GEANT_LISTS_GET_LGET_20 = { "LGET_20", 7, "user word",
09532 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09533 KmTYPE_CHAR, (void*)0 };
09534 static KmParameter *_GEANT_LISTS_GET_parameters[] = {
09535 &_GEANT_LISTS_GET_LGET_1, &_GEANT_LISTS_GET_LGET_2, &_GEANT_LISTS_GET_LGET_3,
09536 &_GEANT_LISTS_GET_LGET_4, &_GEANT_LISTS_GET_LGET_5, &_GEANT_LISTS_GET_LGET_6,
09537 &_GEANT_LISTS_GET_LGET_7, &_GEANT_LISTS_GET_LGET_8, &_GEANT_LISTS_GET_LGET_9,
09538 &_GEANT_LISTS_GET_LGET_10, &_GEANT_LISTS_GET_LGET_11,
09539 &_GEANT_LISTS_GET_LGET_12, &_GEANT_LISTS_GET_LGET_13,
09540 &_GEANT_LISTS_GET_LGET_14, &_GEANT_LISTS_GET_LGET_15,
09541 &_GEANT_LISTS_GET_LGET_16, &_GEANT_LISTS_GET_LGET_17,
09542 &_GEANT_LISTS_GET_LGET_18, &_GEANT_LISTS_GET_LGET_19,
09543 &_GEANT_LISTS_GET_LGET_20 };
09544 static char *_GEANT_LISTS_GET_guidance[] = {
09545 "The command GET is similar to the GET data records. It can accept",
09546 "up to 20 4-character words. If the first argument is '.', the number",
09547 "of words is reset to 0 and all the words to four blanks." };
09548 static KmCommand _GEANT_LISTS_GET = { &_GEANT_LISTS_SAVE, "/GEANT/LISTS/GET",
09549 "GET", 0, 2, 20, 0, _GEANT_LISTS_GET_parameters, 0, 0, gxlist_, (IntFunc*)0,
09550 (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_LISTS_GET_guidance, 0, (char**)0,
09551 (char*)0, (int*)0 };
09552
09553 static KmParameter _GEANT_LISTS_HSTA_LHSTA_1 = { "LHSTA_1", 7, "user word",
09554 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09555 KmTYPE_CHAR, (void*)0 };
09556 static KmParameter _GEANT_LISTS_HSTA_LHSTA_2 = { "LHSTA_2", 7, "user word",
09557 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09558 KmTYPE_CHAR, (void*)0 };
09559 static KmParameter _GEANT_LISTS_HSTA_LHSTA_3 = { "LHSTA_3", 7, "user word",
09560 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09561 KmTYPE_CHAR, (void*)0 };
09562 static KmParameter _GEANT_LISTS_HSTA_LHSTA_4 = { "LHSTA_4", 7, "user word",
09563 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09564 KmTYPE_CHAR, (void*)0 };
09565 static KmParameter _GEANT_LISTS_HSTA_LHSTA_5 = { "LHSTA_5", 7, "user word",
09566 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09567 KmTYPE_CHAR, (void*)0 };
09568 static KmParameter _GEANT_LISTS_HSTA_LHSTA_6 = { "LHSTA_6", 7, "user word",
09569 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09570 KmTYPE_CHAR, (void*)0 };
09571 static KmParameter _GEANT_LISTS_HSTA_LHSTA_7 = { "LHSTA_7", 7, "user word",
09572 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09573 KmTYPE_CHAR, (void*)0 };
09574 static KmParameter _GEANT_LISTS_HSTA_LHSTA_8 = { "LHSTA_8", 7, "user word",
09575 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09576 KmTYPE_CHAR, (void*)0 };
09577 static KmParameter _GEANT_LISTS_HSTA_LHSTA_9 = { "LHSTA_9", 7, "user word",
09578 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09579 KmTYPE_CHAR, (void*)0 };
09580 static KmParameter _GEANT_LISTS_HSTA_LHSTA_10 = { "LHSTA_10", 8, "user word",
09581 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09582 KmTYPE_CHAR, (void*)0 };
09583 static KmParameter _GEANT_LISTS_HSTA_LHSTA_11 = { "LHSTA_11", 8, "user word",
09584 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09585 KmTYPE_CHAR, (void*)0 };
09586 static KmParameter _GEANT_LISTS_HSTA_LHSTA_12 = { "LHSTA_12", 8, "user word",
09587 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09588 KmTYPE_CHAR, (void*)0 };
09589 static KmParameter _GEANT_LISTS_HSTA_LHSTA_13 = { "LHSTA_13", 8, "user word",
09590 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09591 KmTYPE_CHAR, (void*)0 };
09592 static KmParameter _GEANT_LISTS_HSTA_LHSTA_14 = { "LHSTA_14", 8, "user word",
09593 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09594 KmTYPE_CHAR, (void*)0 };
09595 static KmParameter _GEANT_LISTS_HSTA_LHSTA_15 = { "LHSTA_15", 8, "user word",
09596 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09597 KmTYPE_CHAR, (void*)0 };
09598 static KmParameter _GEANT_LISTS_HSTA_LHSTA_16 = { "LHSTA_16", 8, "user word",
09599 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09600 KmTYPE_CHAR, (void*)0 };
09601 static KmParameter _GEANT_LISTS_HSTA_LHSTA_17 = { "LHSTA_17", 8, "user word",
09602 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09603 KmTYPE_CHAR, (void*)0 };
09604 static KmParameter _GEANT_LISTS_HSTA_LHSTA_18 = { "LHSTA_18", 8, "user word",
09605 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09606 KmTYPE_CHAR, (void*)0 };
09607 static KmParameter _GEANT_LISTS_HSTA_LHSTA_19 = { "LHSTA_19", 8, "user word",
09608 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09609 KmTYPE_CHAR, (void*)0 };
09610 static KmParameter _GEANT_LISTS_HSTA_LHSTA_20 = { "LHSTA_20", 8, "user word",
09611 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09612 KmTYPE_CHAR, (void*)0 };
09613 static KmParameter *_GEANT_LISTS_HSTA_parameters[] = {
09614 &_GEANT_LISTS_HSTA_LHSTA_1, &_GEANT_LISTS_HSTA_LHSTA_2,
09615 &_GEANT_LISTS_HSTA_LHSTA_3, &_GEANT_LISTS_HSTA_LHSTA_4,
09616 &_GEANT_LISTS_HSTA_LHSTA_5, &_GEANT_LISTS_HSTA_LHSTA_6,
09617 &_GEANT_LISTS_HSTA_LHSTA_7, &_GEANT_LISTS_HSTA_LHSTA_8,
09618 &_GEANT_LISTS_HSTA_LHSTA_9, &_GEANT_LISTS_HSTA_LHSTA_10,
09619 &_GEANT_LISTS_HSTA_LHSTA_11, &_GEANT_LISTS_HSTA_LHSTA_12,
09620 &_GEANT_LISTS_HSTA_LHSTA_13, &_GEANT_LISTS_HSTA_LHSTA_14,
09621 &_GEANT_LISTS_HSTA_LHSTA_15, &_GEANT_LISTS_HSTA_LHSTA_16,
09622 &_GEANT_LISTS_HSTA_LHSTA_17, &_GEANT_LISTS_HSTA_LHSTA_18,
09623 &_GEANT_LISTS_HSTA_LHSTA_19, &_GEANT_LISTS_HSTA_LHSTA_20 };
09624 static char *_GEANT_LISTS_HSTA_guidance[] = {
09625 "The command HSTA is similar to the HSTA data records. It can accept",
09626 "up to 20 4-character words. If the first argument is '.', the number",
09627 "of words is reset to 0 and all the words to four blanks." };
09628 static KmCommand _GEANT_LISTS_HSTA = { &_GEANT_LISTS_GET, "/GEANT/LISTS/HSTA",
09629 "HSTA", 0, 2, 20, 0, _GEANT_LISTS_HSTA_parameters, 0, 0, gxlist_,
09630 (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_LISTS_HSTA_guidance, 0,
09631 (char**)0, (char*)0, (int*)0 };
09632
09633 static KmMenu _GEANT_LISTS = { (KmMenu*)0, (KmMenu*)0, "/GEANT/LISTS",
09634 "LISTS", 2, &_GEANT_LISTS_HSTA, 0, (char**)0 };
09635
09636 static KmMenu _GEANT = { (KmMenu*)0, &_GEANT_LISTS, "/GEANT", "GEANT", 1,
09637 (KmCommand*)0, 0, (char**)0 };
09638
09639 klnkmenu( &_GEANT, 921023 );
09640 }
09641
09642
09643 #ifdef F77_LCASE
09644 # define gkgeom_ gkgeom
09645 # define gxgeom_ gxgeom
09646 #endif
09647
09648 #ifdef F77_UCASE
09649 # define gkgeom_ GKGEOM
09650 # define gxgeom_ GXGEOM
09651 #endif
09652
09653 #ifdef IBM370
09654 # pragma linkage(GKGEOM,FORTRAN)
09655 # pragma linkage(GXGEOM,FORTRAN)
09656 #endif
09657
09658 extern void gkgeom_();
09659 extern void gxgeom_();
09660
09661 void gkgeom_()
09662 {
09663
09664 static KmParInt _GEANT_GEOMETRY_WEUCLID_LUN_type = { "1", "100", "1",
09665 "100", 0 };
09666 static KmParameter _GEANT_GEOMETRY_WEUCLID_LUN = { "LUN", 3,
09667 "Logical unit of the file to be written", (char*)0, (char*)0, 4, 0,
09668 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
09669 &_GEANT_GEOMETRY_WEUCLID_LUN_type };
09670 static KmParameter _GEANT_GEOMETRY_WEUCLID_FNAME = { "FNAME", 5,
09671 "Name of the EUCLID file to be written", (char*)0, (char*)0, 20, 0,
09672 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
09673 static KmParameter _GEANT_GEOMETRY_WEUCLID_TOPVOL = { "TOPVOL", 6,
09674 "Volume name of the starting node", (char*)0, (char*)0, 20, 0, (char**)0, 0,
09675 (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
09676 static KmParInt _GEANT_GEOMETRY_WEUCLID_NUMBER_type = { (char*)0, (char*)0,
09677 (char*)0, (char*)0, 0 };
09678 static KmParameter _GEANT_GEOMETRY_WEUCLID_NUMBER = { "NUMBER", 6,
09679 "Copy number of TOPVOL (relevant for GSPOSP)", "1", (char*)0, 8, 0,
09680 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
09681 &_GEANT_GEOMETRY_WEUCLID_NUMBER_type };
09682 static KmParInt _GEANT_GEOMETRY_WEUCLID_NLEVEL_type = { (char*)0, (char*)0,
09683 (char*)0, (char*)0, 0 };
09684 static KmParameter _GEANT_GEOMETRY_WEUCLID_NLEVEL = { "NLEVEL", 6,
09685 "Number of levels in the tree structure", "15", (char*)0, 8, 0, (char**)0, 0,
09686 (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_WEUCLID_NLEVEL_type };
09687 static KmParameter *_GEANT_GEOMETRY_WEUCLID_parameters[] = {
09688 &_GEANT_GEOMETRY_WEUCLID_LUN, &_GEANT_GEOMETRY_WEUCLID_FNAME,
09689 &_GEANT_GEOMETRY_WEUCLID_TOPVOL, &_GEANT_GEOMETRY_WEUCLID_NUMBER,
09690 &_GEANT_GEOMETRY_WEUCLID_NLEVEL };
09691 static char *_GEANT_GEOMETRY_WEUCLID_guidance[] = {
09692 " CALL GWEUCL(LUN,FNAME)",
09693 "Calls the routine to write the current GEANT geometry into an ASCII file",
09694 "in EUCLID compatible format." };
09695 static KmCommand _GEANT_GEOMETRY_WEUCLID = { (KmCommand*)0,
09696 "/GEANT/GEOMETRY/WEUCLID", "WEUCLID", 0, 2, 5, 3,
09697 _GEANT_GEOMETRY_WEUCLID_parameters, 0, 0, gxgeom_, (IntFunc*)0,
09698 (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_GEOMETRY_WEUCLID_guidance, 0,
09699 (char**)0, (char*)0, (int*)0 };
09700
09701 static KmParInt _GEANT_GEOMETRY_REUCLID_LUN_type = { "1", "100", "1",
09702 "100", 0 };
09703 static KmParameter _GEANT_GEOMETRY_REUCLID_LUN = { "LUN", 3,
09704 "Logical unit of the file to be read", (char*)0, (char*)0, 4, 0, (char**)0,
09705 0, (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_REUCLID_LUN_type };
09706 static KmParameter _GEANT_GEOMETRY_REUCLID_FNAME = { "FNAME", 5,
09707 "Name of the EUCLID file to be read", (char*)0, (char*)0, 20, 0, (char**)0,
09708 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
09709 static KmParameter *_GEANT_GEOMETRY_REUCLID_parameters[] = {
09710 &_GEANT_GEOMETRY_REUCLID_LUN, &_GEANT_GEOMETRY_REUCLID_FNAME };
09711 static char *_GEANT_GEOMETRY_REUCLID_guidance[] = {
09712 " CALL GREUCL(LUN,FNAME)",
09713 "Calls the routine to read into GEANT a geometry from an ASCII file",
09714 "written by the EUCLID-GEANT interface." };
09715 static KmCommand _GEANT_GEOMETRY_REUCLID = { &_GEANT_GEOMETRY_WEUCLID,
09716 "/GEANT/GEOMETRY/REUCLID", "REUCLID", 0, 2, 2, 2,
09717 _GEANT_GEOMETRY_REUCLID_parameters, 0, 0, gxgeom_, (IntFunc*)0,
09718 (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_GEOMETRY_REUCLID_guidance, 0,
09719 (char**)0, (char*)0, (int*)0 };
09720
09721 static KmParameter _GEANT_GEOMETRY_CADINT_FNAME = { "FNAME", 5,
09722 "Name of the SET file", "example.set", (char*)0, 20, 0, (char**)0, 0,
09723 (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
09724 static KmParameter _GEANT_GEOMETRY_CADINT_ANAME = { "ANAME", 5,
09725 "Name of the volume", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
09726 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
09727 static KmParInt _GEANT_GEOMETRY_CADINT_NBINS_type = { (char*)0, (char*)0,
09728 (char*)0, (char*)0, 0 };
09729 static KmParameter _GEANT_GEOMETRY_CADINT_NBINS = { "NBINS", 5,
09730 "Number of the instances", "1", (char*)0, 8, 0, (char**)0, 0, (char**)0,
09731 (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_CADINT_NBINS_type };
09732 static KmParInt _GEANT_GEOMETRY_CADINT_LUNIT_type = { (char*)0, (char*)0,
09733 (char*)0, (char*)0, 0 };
09734 static KmParameter _GEANT_GEOMETRY_CADINT_LUNIT = { "LUNIT", 5,
09735 "Logical unit number for SET file", "66", (char*)0, 8, 0, (char**)0, 0,
09736 (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_CADINT_LUNIT_type };
09737 static KmParInt _GEANT_GEOMETRY_CADINT_LUNIT2_type = { (char*)0, (char*)0,
09738 (char*)0, (char*)0, 0 };
09739 static KmParameter _GEANT_GEOMETRY_CADINT_LUNIT2 = { "LUNIT2", 6,
09740 "Logical unit number for material file", "67", (char*)0, 8, 0, (char**)0, 0,
09741 (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_CADINT_LUNIT2_type };
09742 static KmParameter _GEANT_GEOMETRY_CADINT_INST = { "INST", 4,
09743 "Name of your institute", "CERN", (char*)0, 20, 0, (char**)0, 0, (char**)0,
09744 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
09745 static KmParameter _GEANT_GEOMETRY_CADINT_SITE = { "SITE", 4, "Name of site",
09746 "MEYRIN", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09747 KmTYPE_CHAR, (void*)0 };
09748 static KmParameter _GEANT_GEOMETRY_CADINT_DEPT = { "DEPT", 4,
09749 "Name of departement", "CN", (char*)0, 20, 0, (char**)0, 0, (char**)0,
09750 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
09751 static KmParameter _GEANT_GEOMETRY_CADINT_RESP = { "RESP", 4,
09752 "Name of sender", "god_knows_who", (char*)0, 20, 0, (char**)0, 0, (char**)0,
09753 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
09754 static KmParameter *_GEANT_GEOMETRY_CADINT_parameters[] = {
09755 &_GEANT_GEOMETRY_CADINT_FNAME, &_GEANT_GEOMETRY_CADINT_ANAME,
09756 &_GEANT_GEOMETRY_CADINT_NBINS, &_GEANT_GEOMETRY_CADINT_LUNIT,
09757 &_GEANT_GEOMETRY_CADINT_LUNIT2, &_GEANT_GEOMETRY_CADINT_INST,
09758 &_GEANT_GEOMETRY_CADINT_SITE, &_GEANT_GEOMETRY_CADINT_DEPT,
09759 &_GEANT_GEOMETRY_CADINT_RESP };
09760 static char *_GEANT_GEOMETRY_CADINT_guidance[] = {
09761 " CALL GTXSET(fname,aname,nbins,lunit,lunit2,inst,site,dept,resp)",
09762 "This command produces a SET file describing the given volume with",
09763 "the contents currently set visible. (Use the visibility attribute,",
09764 "see SATT SEEN.) The description is given as a flat assembly",
09765 "related to the global coordinate system.",
09766 "The ouput can be read into CAD systems (EUCLID-IS) trough a SET interface.",
09767 "A list of materials of the volumes in the SET file and the GEANT tree",
09768 "is written into a file with the same filename as the SET file,",
09769 "but with extension .mat." };
09770 static KmCommand _GEANT_GEOMETRY_CADINT = { &_GEANT_GEOMETRY_REUCLID,
09771 "/GEANT/GEOMETRY/CADINT", "CADINT", 0, 2, 9, 9,
09772 _GEANT_GEOMETRY_CADINT_parameters, 0, 0, gxgeom_, (IntFunc*)0,
09773 (SUBROUTINE*)0, (pCharFunc*)0, 9, _GEANT_GEOMETRY_CADINT_guidance, 0,
09774 (char**)0, (char*)0, (int*)0 };
09775
09776 static KmParInt _GEANT_GEOMETRY_EDITV_ISEL_type = { (char*)0, (char*)0,
09777 (char*)0, (char*)0, 0 };
09778 static KmParameter _GEANT_GEOMETRY_EDITV_ISEL = { "ISEL", 4, "Options", "0",
09779 (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
09780 &_GEANT_GEOMETRY_EDITV_ISEL_type };
09781 static KmParameter _GEANT_GEOMETRY_EDITV_NAME = { "NAME", 4, "Volume name",
09782 " ", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
09783 (void*)0 };
09784 static KmParameter *_GEANT_GEOMETRY_EDITV_parameters[] = {
09785 &_GEANT_GEOMETRY_EDITV_ISEL, &_GEANT_GEOMETRY_EDITV_NAME };
09786 static char *_GEANT_GEOMETRY_EDITV_guidance[] = { " CALL GEDITV(isel,name)",
09787 "When the routine prompts for input parameters that do not need",
09788 "to be changed, type return.",
09789 "ISEL is used to select the editing operation to be performed:",
09790 " ISEL=0, CALL GGCLOS",
09791 " ISEL=1, to modify shape parameters PAR given by GSVOLU",
09792 " ISEL=2, to modify NAME given by GSVOLU",
09793 " ISEL=3, to delete NAME given by GSVOLU",
09794 " ISEL=4, to unlink NAME,NR given by GSPOS/GSDVN/GSDV..",
09795 " ISEL=5, to modify X0,Y0,Z0 of NAME,NR given by GSPOS",
09796 " ISEL=6, to modify IROT of NAME,NR given by GSPOS",
09797 " ISEL=7, to modify NDIV given by GSDVN",
09798 " ISEL=8, to modify IAXIS given by GSDVN" };
09799 static KmCommand _GEANT_GEOMETRY_EDITV = { &_GEANT_GEOMETRY_CADINT,
09800 "/GEANT/GEOMETRY/EDITV", "EDITV", 0, 2, 2, 0,
09801 _GEANT_GEOMETRY_EDITV_parameters, 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0,
09802 (pCharFunc*)0, 13, _GEANT_GEOMETRY_EDITV_guidance, 0, (char**)0, (char*)0,
09803 (int*)0 };
09804
09805 static KmParInt _GEANT_GEOMETRY_PTMED_NUMB_type = { (char*)0, (char*)0,
09806 (char*)0, (char*)0, 0 };
09807 static KmParameter _GEANT_GEOMETRY_PTMED_NUMB = { "NUMB", 4, "Medium ID",
09808 (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
09809 &_GEANT_GEOMETRY_PTMED_NUMB_type };
09810 static KmParameter *_GEANT_GEOMETRY_PTMED_parameters[] = {
09811 &_GEANT_GEOMETRY_PTMED_NUMB };
09812 static char *_GEANT_GEOMETRY_PTMED_guidance[] = { " CALL GPTMED(numb)",
09813 "Print tracking media's specifications." };
09814 static KmCommand _GEANT_GEOMETRY_PTMED = { &_GEANT_GEOMETRY_EDITV,
09815 "/GEANT/GEOMETRY/PTMED", "PTMED", 0, 2, 1, 1,
09816 _GEANT_GEOMETRY_PTMED_parameters, 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0,
09817 (pCharFunc*)0, 2, _GEANT_GEOMETRY_PTMED_guidance, 0, (char**)0, (char*)0,
09818 (int*)0 };
09819
09820 static KmParInt _GEANT_GEOMETRY_STMED_NTMED_type = { (char*)0, (char*)0,
09821 (char*)0, (char*)0, 0 };
09822 static KmParameter _GEANT_GEOMETRY_STMED_NTMED = { "NTMED", 5,
09823 "Tracking medium number", "1", (char*)0, 8, 0, (char**)0, 0, (char**)0,
09824 (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_STMED_NTMED_type };
09825 static KmParameter _GEANT_GEOMETRY_STMED_NAME = { "NAME", 4,
09826 "Tracking medium name", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
09827 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
09828 static KmParInt _GEANT_GEOMETRY_STMED_NMAT_type = { (char*)0, (char*)0,
09829 (char*)0, (char*)0, 0 };
09830 static KmParameter _GEANT_GEOMETRY_STMED_NMAT = { "NMAT", 4,
09831 "Material number", "1", (char*)0, 8, 0, (char**)0, 0, (char**)0,
09832 (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_STMED_NMAT_type };
09833 static KmParInt _GEANT_GEOMETRY_STMED_ISVOL_type = { (char*)0, (char*)0,
09834 (char*)0, (char*)0, 0 };
09835 static KmParameter _GEANT_GEOMETRY_STMED_ISVOL = { "ISVOL", 5,
09836 "Sensitive volume flag", "0", (char*)0, 8, 0, (char**)0, 0, (char**)0,
09837 (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_STMED_ISVOL_type };
09838 static KmParInt _GEANT_GEOMETRY_STMED_IFIELD_type = { (char*)0, (char*)0,
09839 (char*)0, (char*)0, 0 };
09840 static KmParameter _GEANT_GEOMETRY_STMED_IFIELD = { "IFIELD", 6,
09841 "Magnetic field", "0", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09842 KmTYPE_INT, &_GEANT_GEOMETRY_STMED_IFIELD_type };
09843 static KmParReal _GEANT_GEOMETRY_STMED_FIELDM_type = { (char*)0, (char*)0,
09844 (char*)0, (char*)0, 0 };
09845 static KmParameter _GEANT_GEOMETRY_STMED_FIELDM = { "FIELDM", 6,
09846 "Max. field value (Kilogauss)", "0", (char*)0, 12, 0, (char**)0, 0,
09847 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_GEOMETRY_STMED_FIELDM_type };
09848 static KmParReal _GEANT_GEOMETRY_STMED_TMAXFD_type = { (char*)0, (char*)0,
09849 (char*)0, (char*)0, 0 };
09850 static KmParameter _GEANT_GEOMETRY_STMED_TMAXFD = { "TMAXFD", 6,
09851 "Max. angle due to field (deg/step)", "0.01", (char*)0, 12, 0, (char**)0, 0,
09852 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_GEOMETRY_STMED_TMAXFD_type };
09853 static KmParReal _GEANT_GEOMETRY_STMED_STEMAX_type = { (char*)0, (char*)0,
09854 (char*)0, (char*)0, 0 };
09855 static KmParameter _GEANT_GEOMETRY_STMED_STEMAX = { "STEMAX", 6,
09856 "Max. step allowed", "1.E+10", (char*)0, 12, 0, (char**)0, 0, (char**)0,
09857 (KmParFlag)0, KmTYPE_REAL, &_GEANT_GEOMETRY_STMED_STEMAX_type };
09858 static KmParReal _GEANT_GEOMETRY_STMED_DEEMAX_type = { (char*)0, (char*)0,
09859 (char*)0, (char*)0, 0 };
09860 static KmParameter _GEANT_GEOMETRY_STMED_DEEMAX = { "DEEMAX", 6,
09861 "Max. fraction of energy lost in a step", "0.01", (char*)0, 12, 0, (char**)0,
09862 0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_GEOMETRY_STMED_DEEMAX_type };
09863 static KmParReal _GEANT_GEOMETRY_STMED_EPSIL_type = { (char*)0, (char*)0,
09864 (char*)0, (char*)0, 0 };
09865 static KmParameter _GEANT_GEOMETRY_STMED_EPSIL = { "EPSIL", 5,
09866 "Tracking precision (cm)", "0.01", (char*)0, 12, 0, (char**)0, 0, (char**)0,
09867 (KmParFlag)0, KmTYPE_REAL, &_GEANT_GEOMETRY_STMED_EPSIL_type };
09868 static KmParReal _GEANT_GEOMETRY_STMED_STMIN_type = { (char*)0, (char*)0,
09869 (char*)0, (char*)0, 0 };
09870 static KmParameter _GEANT_GEOMETRY_STMED_STMIN = { "STMIN", 5,
09871 "Min. step due to continuos processes (cm)", "0.1", (char*)0, 12, 0,
09872 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
09873 &_GEANT_GEOMETRY_STMED_STMIN_type };
09874 static KmParameter *_GEANT_GEOMETRY_STMED_parameters[] = {
09875 &_GEANT_GEOMETRY_STMED_NTMED, &_GEANT_GEOMETRY_STMED_NAME,
09876 &_GEANT_GEOMETRY_STMED_NMAT, &_GEANT_GEOMETRY_STMED_ISVOL,
09877 &_GEANT_GEOMETRY_STMED_IFIELD, &_GEANT_GEOMETRY_STMED_FIELDM,
09878 &_GEANT_GEOMETRY_STMED_TMAXFD, &_GEANT_GEOMETRY_STMED_STEMAX,
09879 &_GEANT_GEOMETRY_STMED_DEEMAX, &_GEANT_GEOMETRY_STMED_EPSIL,
09880 &_GEANT_GEOMETRY_STMED_STMIN };
09881 static char *_GEANT_GEOMETRY_STMED_guidance[] = {
09882 " CALL GSTMED(ntmed,name,nmat,isvol,ifield,fieldm,tmaxfd,",
09883 " + stemax,deemax,epsil,stmin,0,0)",
09884 "IFIELD = 0 if no magnetic field; IFIELD = -1 if user decision in GUSWIM;",
09885 "IFIELD = 1 if tracking performed with GRKUTA; IFIELD = 2 if tracking",
09886 "performed with GHELIX; IFIELD = 3 if tracking performed with GHELX3." };
09887 static KmCommand _GEANT_GEOMETRY_STMED = { &_GEANT_GEOMETRY_PTMED,
09888 "/GEANT/GEOMETRY/STMED", "STMED", 0, 2, 11, 11,
09889 _GEANT_GEOMETRY_STMED_parameters, 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0,
09890 (pCharFunc*)0, 5, _GEANT_GEOMETRY_STMED_guidance, 0, (char**)0, (char*)0,
09891 (int*)0 };
09892
09893 static KmParInt _GEANT_GEOMETRY_PROTM_NUMB_type = { (char*)0, (char*)0,
09894 (char*)0, (char*)0, 0 };
09895 static KmParameter _GEANT_GEOMETRY_PROTM_NUMB = { "NUMB", 4, "Matrix ID",
09896 (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
09897 &_GEANT_GEOMETRY_PROTM_NUMB_type };
09898 static KmParameter *_GEANT_GEOMETRY_PROTM_parameters[] = {
09899 &_GEANT_GEOMETRY_PROTM_NUMB };
09900 static char *_GEANT_GEOMETRY_PROTM_guidance[] = { " CALL GPROTM(numb)",
09901 "Print matrixes' specifications." };
09902 static KmCommand _GEANT_GEOMETRY_PROTM = { &_GEANT_GEOMETRY_STMED,
09903 "/GEANT/GEOMETRY/PROTM", "PROTM", 0, 2, 1, 1,
09904 _GEANT_GEOMETRY_PROTM_parameters, 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0,
09905 (pCharFunc*)0, 2, _GEANT_GEOMETRY_PROTM_guidance, 0, (char**)0, (char*)0,
09906 (int*)0 };
09907
09908 static KmParInt _GEANT_GEOMETRY_SROTM_IROT_type = { (char*)0, (char*)0,
09909 (char*)0, (char*)0, 0 };
09910 static KmParameter _GEANT_GEOMETRY_SROTM_IROT = { "IROT", 4,
09911 "Rotation matrix number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
09912 (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_SROTM_IROT_type };
09913 static KmParReal _GEANT_GEOMETRY_SROTM_THETA1_type = { "0.", "180.", "0.",
09914 "180.", 0 };
09915 static KmParameter _GEANT_GEOMETRY_SROTM_THETA1 = { "THETA1", 6,
09916 "Polar angle for axis I", "0.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
09917 (KmParFlag)0, KmTYPE_REAL, &_GEANT_GEOMETRY_SROTM_THETA1_type };
09918 static KmParReal _GEANT_GEOMETRY_SROTM_PHI1_type = { "0.", "360.", "0.",
09919 "360.", 0 };
09920 static KmParameter _GEANT_GEOMETRY_SROTM_PHI1 = { "PHI1", 4,
09921 "Azimuthal angle for axis I", "0.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
09922 (KmParFlag)0, KmTYPE_REAL, &_GEANT_GEOMETRY_SROTM_PHI1_type };
09923 static KmParReal _GEANT_GEOMETRY_SROTM_THETA2_type = { "0.", "180.", "0.",
09924 "180.", 0 };
09925 static KmParameter _GEANT_GEOMETRY_SROTM_THETA2 = { "THETA2", 6,
09926 "Polar angle for axis II", "0.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
09927 (KmParFlag)0, KmTYPE_REAL, &_GEANT_GEOMETRY_SROTM_THETA2_type };
09928 static KmParReal _GEANT_GEOMETRY_SROTM_PHI2_type = { "0.", "360.", "0.",
09929 "360.", 0 };
09930 static KmParameter _GEANT_GEOMETRY_SROTM_PHI2 = { "PHI2", 4,
09931 "Azimuthal angle for axis II", "0.", (char*)0, 12, 0, (char**)0, 0,
09932 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_GEOMETRY_SROTM_PHI2_type };
09933 static KmParReal _GEANT_GEOMETRY_SROTM_THETA3_type = { "0.", "180.", "0.",
09934 "180.", 0 };
09935 static KmParameter _GEANT_GEOMETRY_SROTM_THETA3 = { "THETA3", 6,
09936 "Polar angle for axis III", "0.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
09937 (KmParFlag)0, KmTYPE_REAL, &_GEANT_GEOMETRY_SROTM_THETA3_type };
09938 static KmParReal _GEANT_GEOMETRY_SROTM_PHI3_type = { "0.", "360.", "0.",
09939 "360.", 0 };
09940 static KmParameter _GEANT_GEOMETRY_SROTM_PHI3 = { "PHI3", 4,
09941 "Azimuthal angle for axis III", "0.", (char*)0, 12, 0, (char**)0, 0,
09942 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_GEOMETRY_SROTM_PHI3_type };
09943 static KmParameter *_GEANT_GEOMETRY_SROTM_parameters[] = {
09944 &_GEANT_GEOMETRY_SROTM_IROT, &_GEANT_GEOMETRY_SROTM_THETA1,
09945 &_GEANT_GEOMETRY_SROTM_PHI1, &_GEANT_GEOMETRY_SROTM_THETA2,
09946 &_GEANT_GEOMETRY_SROTM_PHI2, &_GEANT_GEOMETRY_SROTM_THETA3,
09947 &_GEANT_GEOMETRY_SROTM_PHI3 };
09948 static char *_GEANT_GEOMETRY_SROTM_guidance[] = {
09949 " CALL GSROTM(irot,theta1,phi1,theta2,phi2,theta3,phi3)",
09950 "It defines the rotation matrix number IROT." };
09951 static KmCommand _GEANT_GEOMETRY_SROTM = { &_GEANT_GEOMETRY_PROTM,
09952 "/GEANT/GEOMETRY/SROTM", "SROTM", 0, 2, 7, 7,
09953 _GEANT_GEOMETRY_SROTM_parameters, 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0,
09954 (pCharFunc*)0, 2, _GEANT_GEOMETRY_SROTM_guidance, 0, (char**)0, (char*)0,
09955 (int*)0 };
09956
09957 static KmParInt _GEANT_GEOMETRY_PVOLU_NUMB_type = { (char*)0, (char*)0,
09958 (char*)0, (char*)0, 0 };
09959 static KmParameter _GEANT_GEOMETRY_PVOLU_NUMB = { "NUMB", 4, "Volume ID",
09960 (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
09961 &_GEANT_GEOMETRY_PVOLU_NUMB_type };
09962 static KmParameter *_GEANT_GEOMETRY_PVOLU_parameters[] = {
09963 &_GEANT_GEOMETRY_PVOLU_NUMB };
09964 static char *_GEANT_GEOMETRY_PVOLU_guidance[] = { " CALL GPVOLU(numb)",
09965 "Prints volumes' specifications." };
09966 static KmCommand _GEANT_GEOMETRY_PVOLU = { &_GEANT_GEOMETRY_SROTM,
09967 "/GEANT/GEOMETRY/PVOLU", "PVOLU", 0, 2, 1, 1,
09968 _GEANT_GEOMETRY_PVOLU_parameters, 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0,
09969 (pCharFunc*)0, 2, _GEANT_GEOMETRY_PVOLU_guidance, 0, (char**)0, (char*)0,
09970 (int*)0 };
09971
09972 static KmParameter _GEANT_GEOMETRY_SDVN_NAME = { "NAME", 4, "Volume name",
09973 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
09974 KmTYPE_CHAR, (void*)0 };
09975 static KmParameter _GEANT_GEOMETRY_SDVN_MOTHER = { "MOTHER", 6,
09976 "Mother volume name", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
09977 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
09978 static KmParInt _GEANT_GEOMETRY_SDVN_NDIV_type = { (char*)0, (char*)0,
09979 (char*)0, (char*)0, 0 };
09980 static KmParameter _GEANT_GEOMETRY_SDVN_NDIV = { "NDIV", 4,
09981 "Number of divisions", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
09982 (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_SDVN_NDIV_type };
09983 static char *_GEANT_GEOMETRY_SDVN_CAXIS_range[] = { "X", "Y", "Z", "1", "2",
09984 "3" };
09985 static char *_GEANT_GEOMETRY_SDVN_CAXIS_text[] = { (char*)0, (char*)0,
09986 (char*)0, (char*)0, (char*)0, (char*)0 };
09987 static KmParOption _GEANT_GEOMETRY_SDVN_CAXIS_type = {
09988 _GEANT_GEOMETRY_SDVN_CAXIS_text, (int*)0, (int*)0 };
09989 static KmParameter _GEANT_GEOMETRY_SDVN_CAXIS = { "CAXIS", 5, "Axis value",
09990 (char*)0, (char*)0, 8, 6, _GEANT_GEOMETRY_SDVN_CAXIS_range, 6,
09991 _GEANT_GEOMETRY_SDVN_CAXIS_range, (KmParFlag)0, KmTYPE_OPTION,
09992 &_GEANT_GEOMETRY_SDVN_CAXIS_type };
09993 static KmParameter *_GEANT_GEOMETRY_SDVN_parameters[] = {
09994 &_GEANT_GEOMETRY_SDVN_NAME, &_GEANT_GEOMETRY_SDVN_MOTHER,
09995 &_GEANT_GEOMETRY_SDVN_NDIV, &_GEANT_GEOMETRY_SDVN_CAXIS };
09996 static char *_GEANT_GEOMETRY_SDVN_guidance[] = {
09997 " CALL GSDVN(name,mother,ndiv,iaxis)",
09998 "X,Y,Z of CAXIS will be translated to 1,2,3 for IAXIS.",
09999 "It divides a previously defined volume." };
10000 static KmCommand _GEANT_GEOMETRY_SDVN = { &_GEANT_GEOMETRY_PVOLU,
10001 "/GEANT/GEOMETRY/SDVN", "SDVN", 0, 2, 4, 4, _GEANT_GEOMETRY_SDVN_parameters,
10002 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
10003 _GEANT_GEOMETRY_SDVN_guidance, 0, (char**)0, (char*)0, (int*)0 };
10004
10005 static KmParameter _GEANT_GEOMETRY_SPOS_NAME = { "NAME", 4, "Volume name",
10006 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10007 KmTYPE_CHAR, (void*)0 };
10008 static KmParInt _GEANT_GEOMETRY_SPOS_NUMBER_type = { (char*)0, (char*)0,
10009 (char*)0, (char*)0, 0 };
10010 static KmParameter _GEANT_GEOMETRY_SPOS_NUMBER = { "NUMBER", 6,
10011 "Copy number of the volume", (char*)0, (char*)0, 8, 0, (char**)0, 0,
10012 (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_SPOS_NUMBER_type };
10013 static KmParameter _GEANT_GEOMETRY_SPOS_MOTHER = { "MOTHER", 6,
10014 "Mother volume name", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
10015 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
10016 static KmParReal _GEANT_GEOMETRY_SPOS_X0_type = { (char*)0, (char*)0,
10017 (char*)0, (char*)0, 0 };
10018 static KmParameter _GEANT_GEOMETRY_SPOS_X0 = { "X0", 2,
10019 "X coord. of the volume in mother ref. sys.", (char*)0, (char*)0, 12, 0,
10020 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
10021 &_GEANT_GEOMETRY_SPOS_X0_type };
10022 static KmParReal _GEANT_GEOMETRY_SPOS_Y0_type = { (char*)0, (char*)0,
10023 (char*)0, (char*)0, 0 };
10024 static KmParameter _GEANT_GEOMETRY_SPOS_Y0 = { "Y0", 2,
10025 "Y coord. of the volume in mother ref. sys.", (char*)0, (char*)0, 12, 0,
10026 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
10027 &_GEANT_GEOMETRY_SPOS_Y0_type };
10028 static KmParReal _GEANT_GEOMETRY_SPOS_Z0_type = { (char*)0, (char*)0,
10029 (char*)0, (char*)0, 0 };
10030 static KmParameter _GEANT_GEOMETRY_SPOS_Z0 = { "Z0", 2,
10031 "Z coord. of the volume in mother ref. sys.", (char*)0, (char*)0, 12, 0,
10032 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
10033 &_GEANT_GEOMETRY_SPOS_Z0_type };
10034 static KmParInt _GEANT_GEOMETRY_SPOS_IROT_type = { (char*)0, (char*)0,
10035 (char*)0, (char*)0, 0 };
10036 static KmParameter _GEANT_GEOMETRY_SPOS_IROT = { "IROT", 4,
10037 "Rotation matrix number w.r.t. mother ref. sys.", (char*)0, (char*)0, 8, 0,
10038 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
10039 &_GEANT_GEOMETRY_SPOS_IROT_type };
10040 static KmParameter _GEANT_GEOMETRY_SPOS_ONLY = { "ONLY", 4, "ONLY/MANY flag",
10041 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10042 KmTYPE_CHAR, (void*)0 };
10043 static KmParameter *_GEANT_GEOMETRY_SPOS_parameters[] = {
10044 &_GEANT_GEOMETRY_SPOS_NAME, &_GEANT_GEOMETRY_SPOS_NUMBER,
10045 &_GEANT_GEOMETRY_SPOS_MOTHER, &_GEANT_GEOMETRY_SPOS_X0,
10046 &_GEANT_GEOMETRY_SPOS_Y0, &_GEANT_GEOMETRY_SPOS_Z0,
10047 &_GEANT_GEOMETRY_SPOS_IROT, &_GEANT_GEOMETRY_SPOS_ONLY };
10048 static char *_GEANT_GEOMETRY_SPOS_guidance[] = {
10049 " CALL GSPOS(name,number,mother,x0,y0,z0,irot,only)",
10050 "It positions a previously defined volume in the mother." };
10051 static KmCommand _GEANT_GEOMETRY_SPOS = { &_GEANT_GEOMETRY_SDVN,
10052 "/GEANT/GEOMETRY/SPOS", "SPOS", 0, 2, 8, 8, _GEANT_GEOMETRY_SPOS_parameters,
10053 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 2,
10054 _GEANT_GEOMETRY_SPOS_guidance, 0, (char**)0, (char*)0, (int*)0 };
10055
10056 static KmParameter _GEANT_GEOMETRY_SVOLU_NAME = { "NAME", 4, "Volume name",
10057 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10058 KmTYPE_CHAR, (void*)0 };
10059 static KmParameter _GEANT_GEOMETRY_SVOLU_SHAPE = { "SHAPE", 5, "Volume type",
10060 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10061 KmTYPE_CHAR, (void*)0 };
10062 static KmParInt _GEANT_GEOMETRY_SVOLU_NUMED_type = { (char*)0, (char*)0,
10063 (char*)0, (char*)0, 0 };
10064 static KmParameter _GEANT_GEOMETRY_SVOLU_NUMED = { "NUMED", 5,
10065 "Tracking medium number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
10066 (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_SVOLU_NUMED_type };
10067 static KmParInt _GEANT_GEOMETRY_SVOLU_NPAR_type = { (char*)0, (char*)0,
10068 (char*)0, (char*)0, 0 };
10069 static KmParameter _GEANT_GEOMETRY_SVOLU_NPAR = { "NPAR", 4,
10070 "Number of shape parameters", (char*)0, (char*)0, 8, 0, (char**)0, 0,
10071 (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_SVOLU_NPAR_type };
10072 static KmParameter _GEANT_GEOMETRY_SVOLU_PAR = { "PAR", 3,
10073 "Vector containing shape parameters", (char*)0, (char*)0, 20, 0, (char**)0,
10074 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
10075 static KmParameter *_GEANT_GEOMETRY_SVOLU_parameters[] = {
10076 &_GEANT_GEOMETRY_SVOLU_NAME, &_GEANT_GEOMETRY_SVOLU_SHAPE,
10077 &_GEANT_GEOMETRY_SVOLU_NUMED, &_GEANT_GEOMETRY_SVOLU_NPAR,
10078 &_GEANT_GEOMETRY_SVOLU_PAR };
10079 static char *_GEANT_GEOMETRY_SVOLU_guidance[] = {
10080 " CALL GSVOLU(name,shape,numed,par,npar,ivolu)",
10081 "where par is a KUIP vector.",
10082 "It creates a new volume in the JVOLUM data structure." };
10083 static KmCommand _GEANT_GEOMETRY_SVOLU = { &_GEANT_GEOMETRY_SPOS,
10084 "/GEANT/GEOMETRY/SVOLU", "SVOLU", 0, 2, 5, 5,
10085 _GEANT_GEOMETRY_SVOLU_parameters, 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0,
10086 (pCharFunc*)0, 3, _GEANT_GEOMETRY_SVOLU_guidance, 0, (char**)0, (char*)0,
10087 (int*)0 };
10088
10089 static char *_GEANT_GEOMETRY_OPTI_IOPTI_range[] = { "-1", "2" };
10090 static KmParInt _GEANT_GEOMETRY_OPTI_IOPTI_type = { (char*)0, (char*)0,
10091 (char*)0, (char*)0, 0 };
10092 static KmParameter _GEANT_GEOMETRY_OPTI_IOPTI = { "IOPTI", 5,
10093 "GSORD optimisation level", "0", (char*)0, 8, 2,
10094 _GEANT_GEOMETRY_OPTI_IOPTI_range, 2, _GEANT_GEOMETRY_OPTI_IOPTI_range,
10095 (KmParFlag)2, KmTYPE_INT, &_GEANT_GEOMETRY_OPTI_IOPTI_type };
10096 static KmParameter *_GEANT_GEOMETRY_OPTI_parameters[] = {
10097 &_GEANT_GEOMETRY_OPTI_IOPTI };
10098 static char *_GEANT_GEOMETRY_OPTI_guidance[] = {
10099 "This flag controls the tracking optimisation performed via the",
10100 "GSORD routine:", " 1 no optimisation at all; GSORD calls disabled;",
10101 " 0 no optimisation; only user calls to GSORD kept;",
10102 " 1 all non-GSORDered volumes are ordered along the best axis;",
10103 " 2 all volumes are ordered along the best axis." };
10104 static KmCommand _GEANT_GEOMETRY_OPTI = { &_GEANT_GEOMETRY_SVOLU,
10105 "/GEANT/GEOMETRY/OPTI", "OPTI", 0, 2, 1, 1, _GEANT_GEOMETRY_OPTI_parameters,
10106 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 6,
10107 _GEANT_GEOMETRY_OPTI_guidance, 0, (char**)0, (char*)0, (int*)0 };
10108
10109 static KmParameter _GEANT_CREATE_SPARA_NAME = { "NAME", 4, "Volume name",
10110 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10111 KmTYPE_CHAR, (void*)0 };
10112 static KmParInt _GEANT_CREATE_SPARA_NUMED_type = { (char*)0, (char*)0,
10113 (char*)0, (char*)0, 0 };
10114 static KmParameter _GEANT_CREATE_SPARA_NUMED = { "NUMED", 5,
10115 "Tracking medium number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
10116 (KmParFlag)0, KmTYPE_INT, &_GEANT_CREATE_SPARA_NUMED_type };
10117 static KmParReal _GEANT_CREATE_SPARA_HALFX_type = { (char*)0, (char*)0,
10118 (char*)0, (char*)0, 0 };
10119 static KmParameter _GEANT_CREATE_SPARA_HALFX = { "HALFX", 5, "Half X length",
10120 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10121 KmTYPE_REAL, &_GEANT_CREATE_SPARA_HALFX_type };
10122 static KmParReal _GEANT_CREATE_SPARA_HALFY_type = { (char*)0, (char*)0,
10123 (char*)0, (char*)0, 0 };
10124 static KmParameter _GEANT_CREATE_SPARA_HALFY = { "HALFY", 5, "Half Y length",
10125 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10126 KmTYPE_REAL, &_GEANT_CREATE_SPARA_HALFY_type };
10127 static KmParReal _GEANT_CREATE_SPARA_HALFZ_type = { (char*)0, (char*)0,
10128 (char*)0, (char*)0, 0 };
10129 static KmParameter _GEANT_CREATE_SPARA_HALFZ = { "HALFZ", 5, "Half Z length",
10130 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10131 KmTYPE_REAL, &_GEANT_CREATE_SPARA_HALFZ_type };
10132 static KmParReal _GEANT_CREATE_SPARA_AXIS_type = { "0.", "360.", "0.",
10133 "360.", 0 };
10134 static KmParameter _GEANT_CREATE_SPARA_AXIS = { "AXIS", 4,
10135 "Angle of Y mid-faces segment to Y axis", (char*)0, (char*)0, 12, 0,
10136 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
10137 &_GEANT_CREATE_SPARA_AXIS_type };
10138 static KmParReal _GEANT_CREATE_SPARA_PHI_type = { "0.", "360.", "0.",
10139 "360.", 0 };
10140 static KmParameter _GEANT_CREATE_SPARA_PHI = { "PHI", 3,
10141 "PHI angle of Low Z mid-face to High Z mid-face segment", (char*)0, (char*)0,
10142 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
10143 &_GEANT_CREATE_SPARA_PHI_type };
10144 static KmParReal _GEANT_CREATE_SPARA_THETA_type = { "0.", "360.", "0.",
10145 "360.", 0 };
10146 static KmParameter _GEANT_CREATE_SPARA_THETA = { "THETA", 5,
10147 "THETA angle of mid-low-Z-face to mid-high-Z-face segment", (char*)0,
10148 (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
10149 &_GEANT_CREATE_SPARA_THETA_type };
10150 static char *_GEANT_CREATE_SPARA_YESNO_range[] = { "YES", "NO" };
10151 static char *_GEANT_CREATE_SPARA_YESNO_text[] = { (char*)0, (char*)0 };
10152 static KmParOption _GEANT_CREATE_SPARA_YESNO_type = {
10153 _GEANT_CREATE_SPARA_YESNO_text, (int*)0, (int*)0 };
10154 static KmParameter _GEANT_CREATE_SPARA_YESNO = { "YESNO", 5, "GSPOSP option",
10155 "NO", (char*)0, 8, 2, _GEANT_CREATE_SPARA_YESNO_range, 2,
10156 _GEANT_CREATE_SPARA_YESNO_range, (KmParFlag)0, KmTYPE_OPTION,
10157 &_GEANT_CREATE_SPARA_YESNO_type };
10158 static KmParameter *_GEANT_CREATE_SPARA_parameters[] = {
10159 &_GEANT_CREATE_SPARA_NAME, &_GEANT_CREATE_SPARA_NUMED,
10160 &_GEANT_CREATE_SPARA_HALFX, &_GEANT_CREATE_SPARA_HALFY,
10161 &_GEANT_CREATE_SPARA_HALFZ, &_GEANT_CREATE_SPARA_AXIS,
10162 &_GEANT_CREATE_SPARA_PHI, &_GEANT_CREATE_SPARA_THETA,
10163 &_GEANT_CREATE_SPARA_YESNO };
10164 static KmCommand _GEANT_CREATE_SPARA = { (KmCommand*)0,
10165 "/GEANT/CREATE/SPARA", "SPARA", 0, 2, 9, 8, _GEANT_CREATE_SPARA_parameters,
10166 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 0, (char**)0, 0,
10167 (char**)0, (char*)0, (int*)0 };
10168
10169 static KmParameter _GEANT_CREATE_SSPHE_NAME = { "NAME", 4, "Volume name",
10170 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10171 KmTYPE_CHAR, (void*)0 };
10172 static KmParInt _GEANT_CREATE_SSPHE_NUMED_type = { (char*)0, (char*)0,
10173 (char*)0, (char*)0, 0 };
10174 static KmParameter _GEANT_CREATE_SSPHE_NUMED = { "NUMED", 5,
10175 "Tracking medium number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
10176 (KmParFlag)0, KmTYPE_INT, &_GEANT_CREATE_SSPHE_NUMED_type };
10177 static KmParReal _GEANT_CREATE_SSPHE_INRAD_type = { (char*)0, (char*)0,
10178 (char*)0, (char*)0, 0 };
10179 static KmParameter _GEANT_CREATE_SSPHE_INRAD = { "INRAD", 5, "Inside Radius",
10180 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10181 KmTYPE_REAL, &_GEANT_CREATE_SSPHE_INRAD_type };
10182 static KmParReal _GEANT_CREATE_SSPHE_OUTRAD_type = { (char*)0, (char*)0,
10183 (char*)0, (char*)0, 0 };
10184 static KmParameter _GEANT_CREATE_SSPHE_OUTRAD = { "OUTRAD", 6,
10185 "Outside Radius", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
10186 (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SSPHE_OUTRAD_type };
10187 static KmParReal _GEANT_CREATE_SSPHE_SPHI_type = { "0.", "360.", "0.",
10188 "360.", 0 };
10189 static KmParameter _GEANT_CREATE_SSPHE_SPHI = { "SPHI", 4,
10190 "Start of section PHI", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
10191 (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SSPHE_SPHI_type };
10192 static KmParReal _GEANT_CREATE_SSPHE_EPHI_type = { "0.", "360.", "0.",
10193 "360.", 0 };
10194 static KmParameter _GEANT_CREATE_SSPHE_EPHI = { "EPHI", 4,
10195 "End of section PHI", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
10196 (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SSPHE_EPHI_type };
10197 static KmParReal _GEANT_CREATE_SSPHE_STHETA_type = { (char*)0, (char*)0,
10198 (char*)0, (char*)0, 0 };
10199 static KmParameter _GEANT_CREATE_SSPHE_STHETA = { "STHETA", 6,
10200 "Start of section THETA", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
10201 (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SSPHE_STHETA_type };
10202 static KmParReal _GEANT_CREATE_SSPHE_ETHETA_type = { (char*)0, (char*)0,
10203 (char*)0, (char*)0, 0 };
10204 static KmParameter _GEANT_CREATE_SSPHE_ETHETA = { "ETHETA", 6,
10205 "End of section THETA", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
10206 (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SSPHE_ETHETA_type };
10207 static char *_GEANT_CREATE_SSPHE_YESNO_range[] = { "YES", "NO" };
10208 static char *_GEANT_CREATE_SSPHE_YESNO_text[] = { (char*)0, (char*)0 };
10209 static KmParOption _GEANT_CREATE_SSPHE_YESNO_type = {
10210 _GEANT_CREATE_SSPHE_YESNO_text, (int*)0, (int*)0 };
10211 static KmParameter _GEANT_CREATE_SSPHE_YESNO = { "YESNO", 5, "GSPOSP option",
10212 "NO", (char*)0, 8, 2, _GEANT_CREATE_SSPHE_YESNO_range, 2,
10213 _GEANT_CREATE_SSPHE_YESNO_range, (KmParFlag)0, KmTYPE_OPTION,
10214 &_GEANT_CREATE_SSPHE_YESNO_type };
10215 static KmParameter *_GEANT_CREATE_SSPHE_parameters[] = {
10216 &_GEANT_CREATE_SSPHE_NAME, &_GEANT_CREATE_SSPHE_NUMED,
10217 &_GEANT_CREATE_SSPHE_INRAD, &_GEANT_CREATE_SSPHE_OUTRAD,
10218 &_GEANT_CREATE_SSPHE_SPHI, &_GEANT_CREATE_SSPHE_EPHI,
10219 &_GEANT_CREATE_SSPHE_STHETA, &_GEANT_CREATE_SSPHE_ETHETA,
10220 &_GEANT_CREATE_SSPHE_YESNO };
10221 static KmCommand _GEANT_CREATE_SSPHE = { &_GEANT_CREATE_SPARA,
10222 "/GEANT/CREATE/SSPHE", "SSPHE", 0, 2, 9, 8, _GEANT_CREATE_SSPHE_parameters,
10223 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 0, (char**)0, 0,
10224 (char**)0, (char*)0, (int*)0 };
10225
10226 static KmParameter _GEANT_CREATE_SCONS_NAME = { "NAME", 4, "Volume name",
10227 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10228 KmTYPE_CHAR, (void*)0 };
10229 static KmParInt _GEANT_CREATE_SCONS_NUMED_type = { (char*)0, (char*)0,
10230 (char*)0, (char*)0, 0 };
10231 static KmParameter _GEANT_CREATE_SCONS_NUMED = { "NUMED", 5,
10232 "Tracking medium number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
10233 (KmParFlag)0, KmTYPE_INT, &_GEANT_CREATE_SCONS_NUMED_type };
10234 static KmParReal _GEANT_CREATE_SCONS_INRDW_type = { (char*)0, (char*)0,
10235 (char*)0, (char*)0, 0 };
10236 static KmParameter _GEANT_CREATE_SCONS_INRDW = { "INRDW", 5,
10237 "Inside Radius in Lower Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
10238 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SCONS_INRDW_type };
10239 static KmParReal _GEANT_CREATE_SCONS_OUTRDW_type = { (char*)0, (char*)0,
10240 (char*)0, (char*)0, 0 };
10241 static KmParameter _GEANT_CREATE_SCONS_OUTRDW = { "OUTRDW", 6,
10242 "Outside Radius in Lower Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
10243 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SCONS_OUTRDW_type };
10244 static KmParReal _GEANT_CREATE_SCONS_INRUP_type = { (char*)0, (char*)0,
10245 (char*)0, (char*)0, 0 };
10246 static KmParameter _GEANT_CREATE_SCONS_INRUP = { "INRUP", 5,
10247 "Inside Radius in Upper Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
10248 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SCONS_INRUP_type };
10249 static KmParReal _GEANT_CREATE_SCONS_OUTRUP_type = { (char*)0, (char*)0,
10250 (char*)0, (char*)0, 0 };
10251 static KmParameter _GEANT_CREATE_SCONS_OUTRUP = { "OUTRUP", 6,
10252 "Outside Radius in Upper Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
10253 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SCONS_OUTRUP_type };
10254 static KmParReal _GEANT_CREATE_SCONS_HALFZ_type = { (char*)0, (char*)0,
10255 (char*)0, (char*)0, 0 };
10256 static KmParameter _GEANT_CREATE_SCONS_HALFZ = { "HALFZ", 5, "Half Z length",
10257 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10258 KmTYPE_REAL, &_GEANT_CREATE_SCONS_HALFZ_type };
10259 static KmParReal _GEANT_CREATE_SCONS_SPHI_type = { "0.", "360.", "0.",
10260 "360.", 0 };
10261 static KmParameter _GEANT_CREATE_SCONS_SPHI = { "SPHI", 4,
10262 "Start of section PHI", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
10263 (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SCONS_SPHI_type };
10264 static KmParReal _GEANT_CREATE_SCONS_EPHI_type = { "0.", "360.", "0.",
10265 "360.", 0 };
10266 static KmParameter _GEANT_CREATE_SCONS_EPHI = { "EPHI", 4,
10267 "End of section PHI", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
10268 (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SCONS_EPHI_type };
10269 static char *_GEANT_CREATE_SCONS_YESNO_range[] = { "YES", "NO" };
10270 static char *_GEANT_CREATE_SCONS_YESNO_text[] = { (char*)0, (char*)0 };
10271 static KmParOption _GEANT_CREATE_SCONS_YESNO_type = {
10272 _GEANT_CREATE_SCONS_YESNO_text, (int*)0, (int*)0 };
10273 static KmParameter _GEANT_CREATE_SCONS_YESNO = { "YESNO", 5, "GSPOSP option",
10274 "NO", (char*)0, 8, 2, _GEANT_CREATE_SCONS_YESNO_range, 2,
10275 _GEANT_CREATE_SCONS_YESNO_range, (KmParFlag)0, KmTYPE_OPTION,
10276 &_GEANT_CREATE_SCONS_YESNO_type };
10277 static KmParameter *_GEANT_CREATE_SCONS_parameters[] = {
10278 &_GEANT_CREATE_SCONS_NAME, &_GEANT_CREATE_SCONS_NUMED,
10279 &_GEANT_CREATE_SCONS_INRDW, &_GEANT_CREATE_SCONS_OUTRDW,
10280 &_GEANT_CREATE_SCONS_INRUP, &_GEANT_CREATE_SCONS_OUTRUP,
10281 &_GEANT_CREATE_SCONS_HALFZ, &_GEANT_CREATE_SCONS_SPHI,
10282 &_GEANT_CREATE_SCONS_EPHI, &_GEANT_CREATE_SCONS_YESNO };
10283 static KmCommand _GEANT_CREATE_SCONS = { &_GEANT_CREATE_SSPHE,
10284 "/GEANT/CREATE/SCONS", "SCONS", 0, 2, 10, 9, _GEANT_CREATE_SCONS_parameters,
10285 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 0, (char**)0, 0,
10286 (char**)0, (char*)0, (int*)0 };
10287
10288 static KmParameter _GEANT_CREATE_SCONE_NAME = { "NAME", 4, "Volume name",
10289 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10290 KmTYPE_CHAR, (void*)0 };
10291 static KmParInt _GEANT_CREATE_SCONE_NUMED_type = { (char*)0, (char*)0,
10292 (char*)0, (char*)0, 0 };
10293 static KmParameter _GEANT_CREATE_SCONE_NUMED = { "NUMED", 5,
10294 "Tracking medium number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
10295 (KmParFlag)0, KmTYPE_INT, &_GEANT_CREATE_SCONE_NUMED_type };
10296 static KmParReal _GEANT_CREATE_SCONE_INRDW_type = { (char*)0, (char*)0,
10297 (char*)0, (char*)0, 0 };
10298 static KmParameter _GEANT_CREATE_SCONE_INRDW = { "INRDW", 5,
10299 "Inside Radius in Lower Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
10300 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SCONE_INRDW_type };
10301 static KmParReal _GEANT_CREATE_SCONE_OUTRDW_type = { (char*)0, (char*)0,
10302 (char*)0, (char*)0, 0 };
10303 static KmParameter _GEANT_CREATE_SCONE_OUTRDW = { "OUTRDW", 6,
10304 "Outside Radius in Lower Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
10305 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SCONE_OUTRDW_type };
10306 static KmParReal _GEANT_CREATE_SCONE_INRUP_type = { (char*)0, (char*)0,
10307 (char*)0, (char*)0, 0 };
10308 static KmParameter _GEANT_CREATE_SCONE_INRUP = { "INRUP", 5,
10309 "Inside Radius in Upper Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
10310 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SCONE_INRUP_type };
10311 static KmParReal _GEANT_CREATE_SCONE_OUTRUP_type = { (char*)0, (char*)0,
10312 (char*)0, (char*)0, 0 };
10313 static KmParameter _GEANT_CREATE_SCONE_OUTRUP = { "OUTRUP", 6,
10314 "Outside Radius in Upper Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
10315 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SCONE_OUTRUP_type };
10316 static KmParReal _GEANT_CREATE_SCONE_HALFZ_type = { (char*)0, (char*)0,
10317 (char*)0, (char*)0, 0 };
10318 static KmParameter _GEANT_CREATE_SCONE_HALFZ = { "HALFZ", 5, "Half Z length",
10319 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10320 KmTYPE_REAL, &_GEANT_CREATE_SCONE_HALFZ_type };
10321 static char *_GEANT_CREATE_SCONE_YESNO_range[] = { "YES", "NO" };
10322 static char *_GEANT_CREATE_SCONE_YESNO_text[] = { (char*)0, (char*)0 };
10323 static KmParOption _GEANT_CREATE_SCONE_YESNO_type = {
10324 _GEANT_CREATE_SCONE_YESNO_text, (int*)0, (int*)0 };
10325 static KmParameter _GEANT_CREATE_SCONE_YESNO = { "YESNO", 5, "GSPOSP option",
10326 "NO", (char*)0, 8, 2, _GEANT_CREATE_SCONE_YESNO_range, 2,
10327 _GEANT_CREATE_SCONE_YESNO_range, (KmParFlag)0, KmTYPE_OPTION,
10328 &_GEANT_CREATE_SCONE_YESNO_type };
10329 static KmParameter *_GEANT_CREATE_SCONE_parameters[] = {
10330 &_GEANT_CREATE_SCONE_NAME, &_GEANT_CREATE_SCONE_NUMED,
10331 &_GEANT_CREATE_SCONE_INRDW, &_GEANT_CREATE_SCONE_OUTRDW,
10332 &_GEANT_CREATE_SCONE_INRUP, &_GEANT_CREATE_SCONE_OUTRUP,
10333 &_GEANT_CREATE_SCONE_HALFZ, &_GEANT_CREATE_SCONE_YESNO };
10334 static KmCommand _GEANT_CREATE_SCONE = { &_GEANT_CREATE_SCONS,
10335 "/GEANT/CREATE/SCONE", "SCONE", 0, 2, 8, 7, _GEANT_CREATE_SCONE_parameters,
10336 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 0, (char**)0, 0,
10337 (char**)0, (char*)0, (int*)0 };
10338
10339 static KmParameter _GEANT_CREATE_STUBS_NAME = { "NAME", 4, "Volume name",
10340 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10341 KmTYPE_CHAR, (void*)0 };
10342 static KmParInt _GEANT_CREATE_STUBS_NUMED_type = { (char*)0, (char*)0,
10343 (char*)0, (char*)0, 0 };
10344 static KmParameter _GEANT_CREATE_STUBS_NUMED = { "NUMED", 5,
10345 "Tracking medium number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
10346 (KmParFlag)0, KmTYPE_INT, &_GEANT_CREATE_STUBS_NUMED_type };
10347 static KmParReal _GEANT_CREATE_STUBS_INRAD_type = { (char*)0, (char*)0,
10348 (char*)0, (char*)0, 0 };
10349 static KmParameter _GEANT_CREATE_STUBS_INRAD = { "INRAD", 5, "Inside Radius",
10350 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10351 KmTYPE_REAL, &_GEANT_CREATE_STUBS_INRAD_type };
10352 static KmParReal _GEANT_CREATE_STUBS_OUTRAD_type = { (char*)0, (char*)0,
10353 (char*)0, (char*)0, 0 };
10354 static KmParameter _GEANT_CREATE_STUBS_OUTRAD = { "OUTRAD", 6,
10355 "Outside Radius", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
10356 (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_STUBS_OUTRAD_type };
10357 static KmParReal _GEANT_CREATE_STUBS_HALFZ_type = { (char*)0, (char*)0,
10358 (char*)0, (char*)0, 0 };
10359 static KmParameter _GEANT_CREATE_STUBS_HALFZ = { "HALFZ", 5, "Half Z length",
10360 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10361 KmTYPE_REAL, &_GEANT_CREATE_STUBS_HALFZ_type };
10362 static KmParReal _GEANT_CREATE_STUBS_SPHI_type = { "0.", "360.", "0.",
10363 "360.", 0 };
10364 static KmParameter _GEANT_CREATE_STUBS_SPHI = { "SPHI", 4,
10365 "Start of section PHI", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
10366 (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_STUBS_SPHI_type };
10367 static KmParReal _GEANT_CREATE_STUBS_EPHI_type = { "0.", "360.", "0.",
10368 "360.", 0 };
10369 static KmParameter _GEANT_CREATE_STUBS_EPHI = { "EPHI", 4,
10370 "End of section PHI", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
10371 (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_STUBS_EPHI_type };
10372 static char *_GEANT_CREATE_STUBS_YESNO_range[] = { "YES", "NO" };
10373 static char *_GEANT_CREATE_STUBS_YESNO_text[] = { (char*)0, (char*)0 };
10374 static KmParOption _GEANT_CREATE_STUBS_YESNO_type = {
10375 _GEANT_CREATE_STUBS_YESNO_text, (int*)0, (int*)0 };
10376 static KmParameter _GEANT_CREATE_STUBS_YESNO = { "YESNO", 5, "GSPOSP option",
10377 "NO", (char*)0, 8, 2, _GEANT_CREATE_STUBS_YESNO_range, 2,
10378 _GEANT_CREATE_STUBS_YESNO_range, (KmParFlag)0, KmTYPE_OPTION,
10379 &_GEANT_CREATE_STUBS_YESNO_type };
10380 static KmParameter *_GEANT_CREATE_STUBS_parameters[] = {
10381 &_GEANT_CREATE_STUBS_NAME, &_GEANT_CREATE_STUBS_NUMED,
10382 &_GEANT_CREATE_STUBS_INRAD, &_GEANT_CREATE_STUBS_OUTRAD,
10383 &_GEANT_CREATE_STUBS_HALFZ, &_GEANT_CREATE_STUBS_SPHI,
10384 &_GEANT_CREATE_STUBS_EPHI, &_GEANT_CREATE_STUBS_YESNO };
10385 static KmCommand _GEANT_CREATE_STUBS = { &_GEANT_CREATE_SCONE,
10386 "/GEANT/CREATE/STUBS", "STUBS", 0, 2, 8, 7, _GEANT_CREATE_STUBS_parameters,
10387 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 0, (char**)0, 0,
10388 (char**)0, (char*)0, (int*)0 };
10389
10390 static KmParameter _GEANT_CREATE_STUBE_NAME = { "NAME", 4, "Volume name",
10391 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10392 KmTYPE_CHAR, (void*)0 };
10393 static KmParInt _GEANT_CREATE_STUBE_NUMED_type = { (char*)0, (char*)0,
10394 (char*)0, (char*)0, 0 };
10395 static KmParameter _GEANT_CREATE_STUBE_NUMED = { "NUMED", 5,
10396 "Tracking medium number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
10397 (KmParFlag)0, KmTYPE_INT, &_GEANT_CREATE_STUBE_NUMED_type };
10398 static KmParReal _GEANT_CREATE_STUBE_INRAD_type = { (char*)0, (char*)0,
10399 (char*)0, (char*)0, 0 };
10400 static KmParameter _GEANT_CREATE_STUBE_INRAD = { "INRAD", 5, "Inside Radius",
10401 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10402 KmTYPE_REAL, &_GEANT_CREATE_STUBE_INRAD_type };
10403 static KmParReal _GEANT_CREATE_STUBE_OUTRAD_type = { (char*)0, (char*)0,
10404 (char*)0, (char*)0, 0 };
10405 static KmParameter _GEANT_CREATE_STUBE_OUTRAD = { "OUTRAD", 6,
10406 "Outside Radius", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
10407 (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_STUBE_OUTRAD_type };
10408 static KmParReal _GEANT_CREATE_STUBE_HALFZ_type = { (char*)0, (char*)0,
10409 (char*)0, (char*)0, 0 };
10410 static KmParameter _GEANT_CREATE_STUBE_HALFZ = { "HALFZ", 5, "Half Z length",
10411 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10412 KmTYPE_REAL, &_GEANT_CREATE_STUBE_HALFZ_type };
10413 static char *_GEANT_CREATE_STUBE_YESNO_range[] = { "YES", "NO" };
10414 static char *_GEANT_CREATE_STUBE_YESNO_text[] = { (char*)0, (char*)0 };
10415 static KmParOption _GEANT_CREATE_STUBE_YESNO_type = {
10416 _GEANT_CREATE_STUBE_YESNO_text, (int*)0, (int*)0 };
10417 static KmParameter _GEANT_CREATE_STUBE_YESNO = { "YESNO", 5, "GSPOSP option",
10418 "NO", (char*)0, 8, 2, _GEANT_CREATE_STUBE_YESNO_range, 2,
10419 _GEANT_CREATE_STUBE_YESNO_range, (KmParFlag)0, KmTYPE_OPTION,
10420 &_GEANT_CREATE_STUBE_YESNO_type };
10421 static KmParameter *_GEANT_CREATE_STUBE_parameters[] = {
10422 &_GEANT_CREATE_STUBE_NAME, &_GEANT_CREATE_STUBE_NUMED,
10423 &_GEANT_CREATE_STUBE_INRAD, &_GEANT_CREATE_STUBE_OUTRAD,
10424 &_GEANT_CREATE_STUBE_HALFZ, &_GEANT_CREATE_STUBE_YESNO };
10425 static KmCommand _GEANT_CREATE_STUBE = { &_GEANT_CREATE_STUBS,
10426 "/GEANT/CREATE/STUBE", "STUBE", 0, 2, 6, 5, _GEANT_CREATE_STUBE_parameters,
10427 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 0, (char**)0, 0,
10428 (char**)0, (char*)0, (int*)0 };
10429
10430 static KmParameter _GEANT_CREATE_STRD2_NAME = { "NAME", 4, "Volume name",
10431 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10432 KmTYPE_CHAR, (void*)0 };
10433 static KmParInt _GEANT_CREATE_STRD2_NUMED_type = { (char*)0, (char*)0,
10434 (char*)0, (char*)0, 0 };
10435 static KmParameter _GEANT_CREATE_STRD2_NUMED = { "NUMED", 5,
10436 "Tracking medium number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
10437 (KmParFlag)0, KmTYPE_INT, &_GEANT_CREATE_STRD2_NUMED_type };
10438 static KmParReal _GEANT_CREATE_STRD2_HLFDWX_type = { (char*)0, (char*)0,
10439 (char*)0, (char*)0, 0 };
10440 static KmParameter _GEANT_CREATE_STRD2_HLFDWX = { "HLFDWX", 6,
10441 "Half X length in Lower Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
10442 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_STRD2_HLFDWX_type };
10443 static KmParReal _GEANT_CREATE_STRD2_HLFUPX_type = { (char*)0, (char*)0,
10444 (char*)0, (char*)0, 0 };
10445 static KmParameter _GEANT_CREATE_STRD2_HLFUPX = { "HLFUPX", 6,
10446 "Half X length in Upper Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
10447 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_STRD2_HLFUPX_type };
10448 static KmParReal _GEANT_CREATE_STRD2_HLFDWY_type = { (char*)0, (char*)0,
10449 (char*)0, (char*)0, 0 };
10450 static KmParameter _GEANT_CREATE_STRD2_HLFDWY = { "HLFDWY", 6,
10451 "Half Y length in Lower Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
10452 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_STRD2_HLFDWY_type };
10453 static KmParReal _GEANT_CREATE_STRD2_HLFUPY_type = { (char*)0, (char*)0,
10454 (char*)0, (char*)0, 0 };
10455 static KmParameter _GEANT_CREATE_STRD2_HLFUPY = { "HLFUPY", 6,
10456 "Half Y length in Upper Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
10457 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_STRD2_HLFUPY_type };
10458 static KmParReal _GEANT_CREATE_STRD2_HALFZ_type = { (char*)0, (char*)0,
10459 (char*)0, (char*)0, 0 };
10460 static KmParameter _GEANT_CREATE_STRD2_HALFZ = { "HALFZ", 5, "Half Z length",
10461 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10462 KmTYPE_REAL, &_GEANT_CREATE_STRD2_HALFZ_type };
10463 static char *_GEANT_CREATE_STRD2_YESNO_range[] = { "YES", "NO" };
10464 static char *_GEANT_CREATE_STRD2_YESNO_text[] = { (char*)0, (char*)0 };
10465 static KmParOption _GEANT_CREATE_STRD2_YESNO_type = {
10466 _GEANT_CREATE_STRD2_YESNO_text, (int*)0, (int*)0 };
10467 static KmParameter _GEANT_CREATE_STRD2_YESNO = { "YESNO", 5, "GSPOSP option",
10468 "NO", (char*)0, 8, 2, _GEANT_CREATE_STRD2_YESNO_range, 2,
10469 _GEANT_CREATE_STRD2_YESNO_range, (KmParFlag)0, KmTYPE_OPTION,
10470 &_GEANT_CREATE_STRD2_YESNO_type };
10471 static KmParameter *_GEANT_CREATE_STRD2_parameters[] = {
10472 &_GEANT_CREATE_STRD2_NAME, &_GEANT_CREATE_STRD2_NUMED,
10473 &_GEANT_CREATE_STRD2_HLFDWX, &_GEANT_CREATE_STRD2_HLFUPX,
10474 &_GEANT_CREATE_STRD2_HLFDWY, &_GEANT_CREATE_STRD2_HLFUPY,
10475 &_GEANT_CREATE_STRD2_HALFZ, &_GEANT_CREATE_STRD2_YESNO };
10476 static KmCommand _GEANT_CREATE_STRD2 = { &_GEANT_CREATE_STUBE,
10477 "/GEANT/CREATE/STRD2", "STRD2", 0, 2, 8, 7, _GEANT_CREATE_STRD2_parameters,
10478 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 0, (char**)0, 0,
10479 (char**)0, (char*)0, (int*)0 };
10480
10481 static KmParameter _GEANT_CREATE_STRD1_NAME = { "NAME", 4, "Volume name",
10482 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10483 KmTYPE_CHAR, (void*)0 };
10484 static KmParInt _GEANT_CREATE_STRD1_NUMED_type = { (char*)0, (char*)0,
10485 (char*)0, (char*)0, 0 };
10486 static KmParameter _GEANT_CREATE_STRD1_NUMED = { "NUMED", 5,
10487 "Tracking medium number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
10488 (KmParFlag)0, KmTYPE_INT, &_GEANT_CREATE_STRD1_NUMED_type };
10489 static KmParReal _GEANT_CREATE_STRD1_HLFDWX_type = { (char*)0, (char*)0,
10490 (char*)0, (char*)0, 0 };
10491 static KmParameter _GEANT_CREATE_STRD1_HLFDWX = { "HLFDWX", 6,
10492 "Half X length in Lower Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
10493 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_STRD1_HLFDWX_type };
10494 static KmParReal _GEANT_CREATE_STRD1_HLFUPX_type = { (char*)0, (char*)0,
10495 (char*)0, (char*)0, 0 };
10496 static KmParameter _GEANT_CREATE_STRD1_HLFUPX = { "HLFUPX", 6,
10497 "Half X length in Upper Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
10498 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_STRD1_HLFUPX_type };
10499 static KmParReal _GEANT_CREATE_STRD1_HALFY_type = { (char*)0, (char*)0,
10500 (char*)0, (char*)0, 0 };
10501 static KmParameter _GEANT_CREATE_STRD1_HALFY = { "HALFY", 5, "Half Y length",
10502 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10503 KmTYPE_REAL, &_GEANT_CREATE_STRD1_HALFY_type };
10504 static KmParReal _GEANT_CREATE_STRD1_HALFZ_type = { (char*)0, (char*)0,
10505 (char*)0, (char*)0, 0 };
10506 static KmParameter _GEANT_CREATE_STRD1_HALFZ = { "HALFZ", 5, "Half Z length",
10507 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10508 KmTYPE_REAL, &_GEANT_CREATE_STRD1_HALFZ_type };
10509 static char *_GEANT_CREATE_STRD1_YESNO_range[] = { "YES", "NO" };
10510 static char *_GEANT_CREATE_STRD1_YESNO_text[] = { (char*)0, (char*)0 };
10511 static KmParOption _GEANT_CREATE_STRD1_YESNO_type = {
10512 _GEANT_CREATE_STRD1_YESNO_text, (int*)0, (int*)0 };
10513 static KmParameter _GEANT_CREATE_STRD1_YESNO = { "YESNO", 5, "GSPOSP option",
10514 "NO", (char*)0, 8, 2, _GEANT_CREATE_STRD1_YESNO_range, 2,
10515 _GEANT_CREATE_STRD1_YESNO_range, (KmParFlag)0, KmTYPE_OPTION,
10516 &_GEANT_CREATE_STRD1_YESNO_type };
10517 static KmParameter *_GEANT_CREATE_STRD1_parameters[] = {
10518 &_GEANT_CREATE_STRD1_NAME, &_GEANT_CREATE_STRD1_NUMED,
10519 &_GEANT_CREATE_STRD1_HLFDWX, &_GEANT_CREATE_STRD1_HLFUPX,
10520 &_GEANT_CREATE_STRD1_HALFY, &_GEANT_CREATE_STRD1_HALFZ,
10521 &_GEANT_CREATE_STRD1_YESNO };
10522 static KmCommand _GEANT_CREATE_STRD1 = { &_GEANT_CREATE_STRD2,
10523 "/GEANT/CREATE/STRD1", "STRD1", 0, 2, 7, 6, _GEANT_CREATE_STRD1_parameters,
10524 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 0, (char**)0, 0,
10525 (char**)0, (char*)0, (int*)0 };
10526
10527 static KmParameter _GEANT_CREATE_SBOX_NAME = { "NAME", 4, "Volume name",
10528 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10529 KmTYPE_CHAR, (void*)0 };
10530 static KmParInt _GEANT_CREATE_SBOX_NUMED_type = { (char*)0, (char*)0,
10531 (char*)0, (char*)0, 0 };
10532 static KmParameter _GEANT_CREATE_SBOX_NUMED = { "NUMED", 5,
10533 "Tracking medium number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
10534 (KmParFlag)0, KmTYPE_INT, &_GEANT_CREATE_SBOX_NUMED_type };
10535 static KmParReal _GEANT_CREATE_SBOX_HALFX_type = { (char*)0, (char*)0,
10536 (char*)0, (char*)0, 0 };
10537 static KmParameter _GEANT_CREATE_SBOX_HALFX = { "HALFX", 5, "Half X length",
10538 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10539 KmTYPE_REAL, &_GEANT_CREATE_SBOX_HALFX_type };
10540 static KmParReal _GEANT_CREATE_SBOX_HALFY_type = { (char*)0, (char*)0,
10541 (char*)0, (char*)0, 0 };
10542 static KmParameter _GEANT_CREATE_SBOX_HALFY = { "HALFY", 5, "Half Y length",
10543 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10544 KmTYPE_REAL, &_GEANT_CREATE_SBOX_HALFY_type };
10545 static KmParReal _GEANT_CREATE_SBOX_HALFZ_type = { (char*)0, (char*)0,
10546 (char*)0, (char*)0, 0 };
10547 static KmParameter _GEANT_CREATE_SBOX_HALFZ = { "HALFZ", 5, "Half Z length",
10548 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10549 KmTYPE_REAL, &_GEANT_CREATE_SBOX_HALFZ_type };
10550 static char *_GEANT_CREATE_SBOX_YESNO_range[] = { "YES", "NO" };
10551 static char *_GEANT_CREATE_SBOX_YESNO_text[] = { (char*)0, (char*)0 };
10552 static KmParOption _GEANT_CREATE_SBOX_YESNO_type = {
10553 _GEANT_CREATE_SBOX_YESNO_text, (int*)0, (int*)0 };
10554 static KmParameter _GEANT_CREATE_SBOX_YESNO = { "YESNO", 5, "GSPOSP option",
10555 "NO", (char*)0, 8, 2, _GEANT_CREATE_SBOX_YESNO_range, 2,
10556 _GEANT_CREATE_SBOX_YESNO_range, (KmParFlag)0, KmTYPE_OPTION,
10557 &_GEANT_CREATE_SBOX_YESNO_type };
10558 static KmParameter *_GEANT_CREATE_SBOX_parameters[] = {
10559 &_GEANT_CREATE_SBOX_NAME, &_GEANT_CREATE_SBOX_NUMED,
10560 &_GEANT_CREATE_SBOX_HALFX, &_GEANT_CREATE_SBOX_HALFY,
10561 &_GEANT_CREATE_SBOX_HALFZ, &_GEANT_CREATE_SBOX_YESNO };
10562 static KmCommand _GEANT_CREATE_SBOX = { &_GEANT_CREATE_STRD1,
10563 "/GEANT/CREATE/SBOX", "SBOX", 0, 2, 6, 5, _GEANT_CREATE_SBOX_parameters, 0,
10564 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 0, (char**)0, 0,
10565 (char**)0, (char*)0, (int*)0 };
10566
10567 static char *_GEANT_CREATE_guidance[] = {
10568 "It creates volumes of the given shape interactively.",
10569 "CALL GSVOLU(name,shape,numed,par,npar,ivolu)", "where par is a KUIP vector"
10570 };
10571 static KmMenu _GEANT_CREATE = { (KmMenu*)0, (KmMenu*)0, "/GEANT/CREATE",
10572 "CREATE", 2, &_GEANT_CREATE_SBOX, 3, _GEANT_CREATE_guidance };
10573
10574 static char *_GEANT_GEOMETRY_guidance[] = { "Geometry commands." };
10575 static KmMenu _GEANT_GEOMETRY = { &_GEANT_CREATE, (KmMenu*)0,
10576 "/GEANT/GEOMETRY", "GEOMETRY", 2, &_GEANT_GEOMETRY_OPTI, 1,
10577 _GEANT_GEOMETRY_guidance };
10578
10579 static KmMenu _GEANT = { (KmMenu*)0, &_GEANT_GEOMETRY, "/GEANT", "GEANT", 1,
10580 (KmCommand*)0, 0, (char**)0 };
10581
10582 klnkmenu( &_GEANT, 921023 );
10583 }
10584
10585
10586 #ifdef F77_LCASE
10587 # define gkcont_ gkcont
10588 # define gxcont_ gxcont
10589 #endif
10590
10591 #ifdef F77_UCASE
10592 # define gkcont_ GKCONT
10593 # define gxcont_ GXCONT
10594 #endif
10595
10596 #ifdef IBM370
10597 # pragma linkage(GKCONT,FORTRAN)
10598 # pragma linkage(GXCONT,FORTRAN)
10599 #endif
10600
10601 extern void gkcont_();
10602 extern void gxcont_();
10603
10604 void gkcont_()
10605 {
10606
10607 static char *_GEANT_CONTROL_DEBUG_IDEB_range[] = { "ON", "OFF" };
10608 static char *_GEANT_CONTROL_DEBUG_IDEB_text[] = { (char*)0, (char*)0 };
10609 static KmParOption _GEANT_CONTROL_DEBUG_IDEB_type = {
10610 _GEANT_CONTROL_DEBUG_IDEB_text, (int*)0, (int*)0 };
10611 static KmParameter _GEANT_CONTROL_DEBUG_IDEB = { "IDEB", 4, "Debug option",
10612 "ON", (char*)0, 8, 2, _GEANT_CONTROL_DEBUG_IDEB_range, 2,
10613 _GEANT_CONTROL_DEBUG_IDEB_range, (KmParFlag)0, KmTYPE_OPTION,
10614 &_GEANT_CONTROL_DEBUG_IDEB_type };
10615 static KmParameter *_GEANT_CONTROL_DEBUG_parameters[] = {
10616 &_GEANT_CONTROL_DEBUG_IDEB };
10617 static char *_GEANT_CONTROL_DEBUG_guidance[] = { "If ideb='ON ' then :",
10618 " idebug=1, idemin=1, idemax=1000000, itime=1", "else :",
10619 " idebug=0, idemin=0, idemax=0" };
10620 static KmCommand _GEANT_CONTROL_DEBUG = { (KmCommand*)0,
10621 "/GEANT/CONTROL/DEBUG", "DEBUG", 0, 2, 1, 0, _GEANT_CONTROL_DEBUG_parameters,
10622 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
10623 _GEANT_CONTROL_DEBUG_guidance, 0, (char**)0, (char*)0, (int*)0 };
10624
10625 static KmParInt _GEANT_CONTROL_PRKINE_NUMB_type = { (char*)0, (char*)0,
10626 (char*)0, (char*)0, 0 };
10627 static KmParameter _GEANT_CONTROL_PRKINE_NUMB = { "NUMB", 4, "Track number",
10628 (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
10629 &_GEANT_CONTROL_PRKINE_NUMB_type };
10630 static KmParameter *_GEANT_CONTROL_PRKINE_parameters[] = {
10631 &_GEANT_CONTROL_PRKINE_NUMB };
10632 static char *_GEANT_CONTROL_PRKINE_guidance[] = { "CALL GPKINE(numb)" };
10633 static KmCommand _GEANT_CONTROL_PRKINE = { &_GEANT_CONTROL_DEBUG,
10634 "/GEANT/CONTROL/PRKINE", "PRKINE", 0, 2, 1, 1,
10635 _GEANT_CONTROL_PRKINE_parameters, 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0,
10636 (pCharFunc*)0, 1, _GEANT_CONTROL_PRKINE_guidance, 0, (char**)0, (char*)0,
10637 (int*)0 };
10638
10639 static KmParInt _GEANT_CONTROL_PPART_NUMB_type = { (char*)0, (char*)0,
10640 (char*)0, (char*)0, 0 };
10641 static KmParameter _GEANT_CONTROL_PPART_NUMB = { "NUMB", 4, "Particle number",
10642 (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
10643 &_GEANT_CONTROL_PPART_NUMB_type };
10644 static KmParameter *_GEANT_CONTROL_PPART_parameters[] = {
10645 &_GEANT_CONTROL_PPART_NUMB };
10646 static char *_GEANT_CONTROL_PPART_guidance[] = { "CALL GPPART(numb)" };
10647 static KmCommand _GEANT_CONTROL_PPART = { &_GEANT_CONTROL_PRKINE,
10648 "/GEANT/CONTROL/PPART", "PPART", 0, 2, 1, 1, _GEANT_CONTROL_PPART_parameters,
10649 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
10650 _GEANT_CONTROL_PPART_guidance, 0, (char**)0, (char*)0, (int*)0 };
10651
10652 static KmParInt _GEANT_CONTROL_SPART_IPART_type = { (char*)0, (char*)0,
10653 (char*)0, (char*)0, 0 };
10654 static KmParameter _GEANT_CONTROL_SPART_IPART = { "IPART", 5,
10655 "Particle number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
10656 (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_SPART_IPART_type };
10657 static KmParameter _GEANT_CONTROL_SPART_NAPART = { "NAPART", 6,
10658 "Particle name", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
10659 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
10660 static KmParInt _GEANT_CONTROL_SPART_ITRTYP_type = { (char*)0, (char*)0,
10661 (char*)0, (char*)0, 0 };
10662 static KmParameter _GEANT_CONTROL_SPART_ITRTYP = { "ITRTYP", 6, " ", (char*)0,
10663 (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
10664 &_GEANT_CONTROL_SPART_ITRTYP_type };
10665 static KmParReal _GEANT_CONTROL_SPART_AMASS_type = { (char*)0, (char*)0,
10666 (char*)0, (char*)0, 0 };
10667 static KmParameter _GEANT_CONTROL_SPART_AMASS = { "AMASS", 5, "Mass",
10668 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10669 KmTYPE_REAL, &_GEANT_CONTROL_SPART_AMASS_type };
10670 static KmParReal _GEANT_CONTROL_SPART_CHARGE_type = { (char*)0, (char*)0,
10671 (char*)0, (char*)0, 0 };
10672 static KmParameter _GEANT_CONTROL_SPART_CHARGE = { "CHARGE", 6, "Charge",
10673 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10674 KmTYPE_REAL, &_GEANT_CONTROL_SPART_CHARGE_type };
10675 static KmParReal _GEANT_CONTROL_SPART_TLIFE_type = { (char*)0, (char*)0,
10676 (char*)0, (char*)0, 0 };
10677 static KmParameter _GEANT_CONTROL_SPART_TLIFE = { "TLIFE", 5, "Lifetime",
10678 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10679 KmTYPE_REAL, &_GEANT_CONTROL_SPART_TLIFE_type };
10680 static KmParReal _GEANT_CONTROL_SPART_UBUF_type = { (char*)0, (char*)0,
10681 (char*)0, (char*)0, 0 };
10682 static KmParameter _GEANT_CONTROL_SPART_UBUF = { "UBUF", 4, " ", (char*)0,
10683 (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
10684 &_GEANT_CONTROL_SPART_UBUF_type };
10685 static KmParInt _GEANT_CONTROL_SPART_NWBUF_type = { (char*)0, (char*)0,
10686 (char*)0, (char*)0, 0 };
10687 static KmParameter _GEANT_CONTROL_SPART_NWBUF = { "NWBUF", 5, " ", (char*)0,
10688 (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
10689 &_GEANT_CONTROL_SPART_NWBUF_type };
10690 static KmParReal _GEANT_CONTROL_SPART_BRATIO_type = { (char*)0, (char*)0,
10691 (char*)0, (char*)0, 0 };
10692 static KmParameter _GEANT_CONTROL_SPART_BRATIO = { "BRATIO", 6,
10693 "Branching ratios", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
10694 (KmParFlag)0, KmTYPE_REAL, &_GEANT_CONTROL_SPART_BRATIO_type };
10695 static KmParInt _GEANT_CONTROL_SPART_MODE_type = { (char*)0, (char*)0,
10696 (char*)0, (char*)0, 0 };
10697 static KmParameter _GEANT_CONTROL_SPART_MODE = { "MODE", 4, "Decay mode",
10698 (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
10699 &_GEANT_CONTROL_SPART_MODE_type };
10700 static KmParameter *_GEANT_CONTROL_SPART_parameters[] = {
10701 &_GEANT_CONTROL_SPART_IPART, &_GEANT_CONTROL_SPART_NAPART,
10702 &_GEANT_CONTROL_SPART_ITRTYP, &_GEANT_CONTROL_SPART_AMASS,
10703 &_GEANT_CONTROL_SPART_CHARGE, &_GEANT_CONTROL_SPART_TLIFE,
10704 &_GEANT_CONTROL_SPART_UBUF, &_GEANT_CONTROL_SPART_NWBUF,
10705 &_GEANT_CONTROL_SPART_BRATIO, &_GEANT_CONTROL_SPART_MODE };
10706 static char *_GEANT_CONTROL_SPART_guidance[] = {
10707 "CALL GSPART(ipart,napart,itrtyp,amass,charge,tlife,ubuf,nwbuf);",
10708 "CALL GSDK(ipart,bratio,mode)" };
10709 static KmCommand _GEANT_CONTROL_SPART = { &_GEANT_CONTROL_PPART,
10710 "/GEANT/CONTROL/SPART", "SPART", 0, 2, 10, 10,
10711 _GEANT_CONTROL_SPART_parameters, 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0,
10712 (pCharFunc*)0, 2, _GEANT_CONTROL_SPART_guidance, 0, (char**)0, (char*)0,
10713 (int*)0 };
10714
10715 static KmParInt _GEANT_CONTROL_STPAR_ITMED_type = { (char*)0, (char*)0,
10716 (char*)0, (char*)0, 0 };
10717 static KmParameter _GEANT_CONTROL_STPAR_ITMED = { "ITMED", 5, "Medium number",
10718 (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
10719 &_GEANT_CONTROL_STPAR_ITMED_type };
10720 static KmParameter _GEANT_CONTROL_STPAR_CHPAR = { "CHPAR", 5,
10721 "Cut or mechanism", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
10722 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
10723 static KmParReal _GEANT_CONTROL_STPAR_PARVAL_type = { (char*)0, (char*)0,
10724 (char*)0, (char*)0, 0 };
10725 static KmParameter _GEANT_CONTROL_STPAR_PARVAL = { "PARVAL", 6, "Value",
10726 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10727 KmTYPE_REAL, &_GEANT_CONTROL_STPAR_PARVAL_type };
10728 static KmParameter *_GEANT_CONTROL_STPAR_parameters[] = {
10729 &_GEANT_CONTROL_STPAR_ITMED, &_GEANT_CONTROL_STPAR_CHPAR,
10730 &_GEANT_CONTROL_STPAR_PARVAL };
10731 static char *_GEANT_CONTROL_STPAR_guidance[] = {
10732 "CALL GSTPAR(itmed,chpar,parval)" };
10733 static KmCommand _GEANT_CONTROL_STPAR = { &_GEANT_CONTROL_SPART,
10734 "/GEANT/CONTROL/STPAR", "STPAR", 0, 2, 3, 3, _GEANT_CONTROL_STPAR_parameters,
10735 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
10736 _GEANT_CONTROL_STPAR_guidance, 0, (char**)0, (char*)0, (int*)0 };
10737
10738 static KmParInt _GEANT_CONTROL_DRMAT_IMATE_type = { (char*)0, (char*)0,
10739 (char*)0, (char*)0, 0 };
10740 static KmParameter _GEANT_CONTROL_DRMAT_IMATE = { "IMATE", 5,
10741 "Material number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
10742 (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_DRMAT_IMATE_type };
10743 static KmParInt _GEANT_CONTROL_DRMAT_IPART_type = { (char*)0, (char*)0,
10744 (char*)0, (char*)0, 0 };
10745 static KmParameter _GEANT_CONTROL_DRMAT_IPART = { "IPART", 5,
10746 "Particle number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
10747 (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_DRMAT_IPART_type };
10748 static KmParameter _GEANT_CONTROL_DRMAT_MECAN = { "MECAN", 5,
10749 "List of mechanism", "ALL", (char*)0, 20, 0, (char**)0, 0, (char**)0,
10750 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
10751 static KmParameter *_GEANT_CONTROL_DRMAT_parameters[] = {
10752 &_GEANT_CONTROL_DRMAT_IMATE, &_GEANT_CONTROL_DRMAT_IPART,
10753 &_GEANT_CONTROL_DRMAT_MECAN };
10754 static char *_GEANT_CONTROL_DRMAT_guidance[] = {
10755 "CALL GDRMAT(imate,ipart,mecan,nmec)",
10756 "If MECAN = 'ALL' all the mechanisms are plotted. If the material number",
10757 "is negative, the cross sections relative to material ABS(IMATE) will",
10758 "be plotted in barns rather than in 1/cm.",
10759 "Note that it is not possible to plot anything if GSTMED has not been\
10760 called", "for the material number IMATE." };
10761 static KmCommand _GEANT_CONTROL_DRMAT = { &_GEANT_CONTROL_STPAR,
10762 "/GEANT/CONTROL/DRMAT", "DRMAT", 0, 2, 3, 2, _GEANT_CONTROL_DRMAT_parameters,
10763 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 6,
10764 _GEANT_CONTROL_DRMAT_guidance, 0, (char**)0, (char*)0, (int*)0 };
10765
10766 static KmParInt _GEANT_CONTROL_PLMAT_IMATE_type = { (char*)0, (char*)0,
10767 (char*)0, (char*)0, 0 };
10768 static KmParameter _GEANT_CONTROL_PLMAT_IMATE = { "IMATE", 5,
10769 "Material number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
10770 (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_PLMAT_IMATE_type };
10771 static KmParInt _GEANT_CONTROL_PLMAT_IPART_type = { (char*)0, (char*)0,
10772 (char*)0, (char*)0, 0 };
10773 static KmParameter _GEANT_CONTROL_PLMAT_IPART = { "IPART", 5,
10774 "Particle number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
10775 (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_PLMAT_IPART_type };
10776 static KmParameter _GEANT_CONTROL_PLMAT_MECAN = { "MECAN", 5, "Mechanism",
10777 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10778 KmTYPE_CHAR, (void*)0 };
10779 static KmParInt _GEANT_CONTROL_PLMAT_IDM_type = { (char*)0, (char*)0,
10780 (char*)0, (char*)0, 0 };
10781 static KmParameter _GEANT_CONTROL_PLMAT_IDM = { "IDM", 3, "ID mode option",
10782 "0", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
10783 &_GEANT_CONTROL_PLMAT_IDM_type };
10784 static KmParameter *_GEANT_CONTROL_PLMAT_parameters[] = {
10785 &_GEANT_CONTROL_PLMAT_IMATE, &_GEANT_CONTROL_PLMAT_IPART,
10786 &_GEANT_CONTROL_PLMAT_MECAN, &_GEANT_CONTROL_PLMAT_IDM };
10787 static char *_GEANT_CONTROL_PLMAT_guidance[] = {
10788 "CALL GPLMAT(imate,ipart,mecan,nekbin,elow,idm)",
10789 " IDM convention for histogramming mode :",
10790 " IDM.gt.0 fill, print, keep histogram(s)",
10791 " IDM.eq.0 fill, print, delete histogram(s)",
10792 " IDM.lt.0 fill, noprint, keep histogram(s)",
10793 "If MECAN = 'ALL' all the mechanisms are histogrammed. If the material\
10794 number",
10795 "is negative, the cross sections relative to material ABS(IMATE) will",
10796 "be histogrammed in barns rather than in 1/cm." };
10797 static KmCommand _GEANT_CONTROL_PLMAT = { &_GEANT_CONTROL_DRMAT,
10798 "/GEANT/CONTROL/PLMAT", "PLMAT", 0, 2, 4, 3, _GEANT_CONTROL_PLMAT_parameters,
10799 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 8,
10800 _GEANT_CONTROL_PLMAT_guidance, 0, (char**)0, (char*)0, (int*)0 };
10801
10802 static KmParInt _GEANT_CONTROL_PRMAT_IMATE_type = { (char*)0, (char*)0,
10803 (char*)0, (char*)0, 0 };
10804 static KmParameter _GEANT_CONTROL_PRMAT_IMATE = { "IMATE", 5,
10805 "Material number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
10806 (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_PRMAT_IMATE_type };
10807 static KmParInt _GEANT_CONTROL_PRMAT_IPART_type = { (char*)0, (char*)0,
10808 (char*)0, (char*)0, 0 };
10809 static KmParameter _GEANT_CONTROL_PRMAT_IPART = { "IPART", 5,
10810 "Particle number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
10811 (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_PRMAT_IPART_type };
10812 static KmParameter _GEANT_CONTROL_PRMAT_MECAN = { "MECAN", 5, "Mechanism",
10813 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10814 KmTYPE_CHAR, (void*)0 };
10815 static KmParameter *_GEANT_CONTROL_PRMAT_parameters[] = {
10816 &_GEANT_CONTROL_PRMAT_IMATE, &_GEANT_CONTROL_PRMAT_IPART,
10817 &_GEANT_CONTROL_PRMAT_MECAN };
10818 static char *_GEANT_CONTROL_PRMAT_guidance[] = {
10819 " CALL GPRMAT(imate,ipart,mecan,nekbin,elow)" };
10820 static KmCommand _GEANT_CONTROL_PRMAT = { &_GEANT_CONTROL_PLMAT,
10821 "/GEANT/CONTROL/PRMAT", "PRMAT", 0, 2, 3, 3, _GEANT_CONTROL_PRMAT_parameters,
10822 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
10823 _GEANT_CONTROL_PRMAT_guidance, 0, (char**)0, (char*)0, (int*)0 };
10824
10825 static KmParInt _GEANT_CONTROL_PMATE_NUMB_type = { (char*)0, (char*)0,
10826 (char*)0, (char*)0, 0 };
10827 static KmParameter _GEANT_CONTROL_PMATE_NUMB = { "NUMB", 4, "Material number",
10828 (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
10829 &_GEANT_CONTROL_PMATE_NUMB_type };
10830 static KmParameter *_GEANT_CONTROL_PMATE_parameters[] = {
10831 &_GEANT_CONTROL_PMATE_NUMB };
10832 static char *_GEANT_CONTROL_PMATE_guidance[] = { " CALL GPMATE(numb)" };
10833 static KmCommand _GEANT_CONTROL_PMATE = { &_GEANT_CONTROL_PRMAT,
10834 "/GEANT/CONTROL/PMATE", "PMATE", 0, 2, 1, 1, _GEANT_CONTROL_PMATE_parameters,
10835 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
10836 _GEANT_CONTROL_PMATE_guidance, 0, (char**)0, (char*)0, (int*)0 };
10837
10838 static KmParInt _GEANT_CONTROL_SMIXT_IMAT_type = { (char*)0, (char*)0,
10839 (char*)0, (char*)0, 0 };
10840 static KmParameter _GEANT_CONTROL_SMIXT_IMAT = { "IMAT", 4, "Material number",
10841 (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
10842 &_GEANT_CONTROL_SMIXT_IMAT_type };
10843 static KmParameter _GEANT_CONTROL_SMIXT_NAMATE = { "NAMATE", 6,
10844 "Material name", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
10845 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
10846 static KmParReal _GEANT_CONTROL_SMIXT_A_type = { (char*)0, (char*)0,
10847 (char*)0, (char*)0, 0 };
10848 static KmParameter _GEANT_CONTROL_SMIXT_A = { "A", 1, "Atomic weight",
10849 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10850 KmTYPE_REAL, &_GEANT_CONTROL_SMIXT_A_type };
10851 static KmParReal _GEANT_CONTROL_SMIXT_Z_type = { (char*)0, (char*)0,
10852 (char*)0, (char*)0, 0 };
10853 static KmParameter _GEANT_CONTROL_SMIXT_Z = { "Z", 1, "Atomic number",
10854 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10855 KmTYPE_REAL, &_GEANT_CONTROL_SMIXT_Z_type };
10856 static KmParReal _GEANT_CONTROL_SMIXT_DENS_type = { (char*)0, (char*)0,
10857 (char*)0, (char*)0, 0 };
10858 static KmParameter _GEANT_CONTROL_SMIXT_DENS = { "DENS", 4, "Density",
10859 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10860 KmTYPE_REAL, &_GEANT_CONTROL_SMIXT_DENS_type };
10861 static KmParInt _GEANT_CONTROL_SMIXT_NLMAT_type = { (char*)0, (char*)0,
10862 (char*)0, (char*)0, 0 };
10863 static KmParameter _GEANT_CONTROL_SMIXT_NLMAT = { "NLMAT", 5, "Flag for WMAT",
10864 (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
10865 &_GEANT_CONTROL_SMIXT_NLMAT_type };
10866 static KmParReal _GEANT_CONTROL_SMIXT_WMAT_type = { (char*)0, (char*)0,
10867 (char*)0, (char*)0, 0 };
10868 static KmParameter _GEANT_CONTROL_SMIXT_WMAT = { "WMAT", 4,
10869 "Relative weights or n. of atoms in molecule", (char*)0, (char*)0, 12, 0,
10870 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
10871 &_GEANT_CONTROL_SMIXT_WMAT_type };
10872 static KmParameter *_GEANT_CONTROL_SMIXT_parameters[] = {
10873 &_GEANT_CONTROL_SMIXT_IMAT, &_GEANT_CONTROL_SMIXT_NAMATE,
10874 &_GEANT_CONTROL_SMIXT_A, &_GEANT_CONTROL_SMIXT_Z, &_GEANT_CONTROL_SMIXT_DENS,
10875 &_GEANT_CONTROL_SMIXT_NLMAT, &_GEANT_CONTROL_SMIXT_WMAT };
10876 static char *_GEANT_CONTROL_SMIXT_guidance[] = {
10877 " CALL GSMIXT(imat,namate,a,z,dens,nlmat,wmat)" };
10878 static KmCommand _GEANT_CONTROL_SMIXT = { &_GEANT_CONTROL_PMATE,
10879 "/GEANT/CONTROL/SMIXT", "SMIXT", 0, 2, 7, 7, _GEANT_CONTROL_SMIXT_parameters,
10880 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
10881 _GEANT_CONTROL_SMIXT_guidance, 0, (char**)0, (char*)0, (int*)0 };
10882
10883 static KmParInt _GEANT_CONTROL_SMATE_IMAT_type = { (char*)0, (char*)0,
10884 (char*)0, (char*)0, 0 };
10885 static KmParameter _GEANT_CONTROL_SMATE_IMAT = { "IMAT", 4, "Material number",
10886 (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
10887 &_GEANT_CONTROL_SMATE_IMAT_type };
10888 static KmParameter _GEANT_CONTROL_SMATE_NAMATE = { "NAMATE", 6,
10889 "Material name", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
10890 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
10891 static KmParReal _GEANT_CONTROL_SMATE_A_type = { (char*)0, (char*)0,
10892 (char*)0, (char*)0, 0 };
10893 static KmParameter _GEANT_CONTROL_SMATE_A = { "A", 1, "Atomic weight",
10894 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10895 KmTYPE_REAL, &_GEANT_CONTROL_SMATE_A_type };
10896 static KmParReal _GEANT_CONTROL_SMATE_Z_type = { (char*)0, (char*)0,
10897 (char*)0, (char*)0, 0 };
10898 static KmParameter _GEANT_CONTROL_SMATE_Z = { "Z", 1, "Atomic number",
10899 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10900 KmTYPE_REAL, &_GEANT_CONTROL_SMATE_Z_type };
10901 static KmParReal _GEANT_CONTROL_SMATE_DENS_type = { (char*)0, (char*)0,
10902 (char*)0, (char*)0, 0 };
10903 static KmParameter _GEANT_CONTROL_SMATE_DENS = { "DENS", 4, "Density",
10904 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10905 KmTYPE_REAL, &_GEANT_CONTROL_SMATE_DENS_type };
10906 static KmParReal _GEANT_CONTROL_SMATE_RADL_type = { (char*)0, (char*)0,
10907 (char*)0, (char*)0, 0 };
10908 static KmParameter _GEANT_CONTROL_SMATE_RADL = { "RADL", 4,
10909 "Radiation lenght", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
10910 (KmParFlag)0, KmTYPE_REAL, &_GEANT_CONTROL_SMATE_RADL_type };
10911 static KmParReal _GEANT_CONTROL_SMATE_ABSL_type = { (char*)0, (char*)0,
10912 (char*)0, (char*)0, 0 };
10913 static KmParameter _GEANT_CONTROL_SMATE_ABSL = { "ABSL", 4,
10914 "Absorption lenght", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
10915 (KmParFlag)0, KmTYPE_REAL, &_GEANT_CONTROL_SMATE_ABSL_type };
10916 static KmParReal _GEANT_CONTROL_SMATE_UBUF_type = { (char*)0, (char*)0,
10917 (char*)0, (char*)0, 0 };
10918 static KmParameter _GEANT_CONTROL_SMATE_UBUF = { "UBUF", 4, " ", (char*)0,
10919 (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
10920 &_GEANT_CONTROL_SMATE_UBUF_type };
10921 static KmParInt _GEANT_CONTROL_SMATE_NWBUF_type = { (char*)0, (char*)0,
10922 (char*)0, (char*)0, 0 };
10923 static KmParameter _GEANT_CONTROL_SMATE_NWBUF = { "NWBUF", 5, " ", (char*)0,
10924 (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
10925 &_GEANT_CONTROL_SMATE_NWBUF_type };
10926 static KmParameter *_GEANT_CONTROL_SMATE_parameters[] = {
10927 &_GEANT_CONTROL_SMATE_IMAT, &_GEANT_CONTROL_SMATE_NAMATE,
10928 &_GEANT_CONTROL_SMATE_A, &_GEANT_CONTROL_SMATE_Z, &_GEANT_CONTROL_SMATE_DENS,
10929 &_GEANT_CONTROL_SMATE_RADL, &_GEANT_CONTROL_SMATE_ABSL,
10930 &_GEANT_CONTROL_SMATE_UBUF, &_GEANT_CONTROL_SMATE_NWBUF };
10931 static char *_GEANT_CONTROL_SMATE_guidance[] = {
10932 " CALL GSMATE(imat,namate,a,z,dens,radl,absl,ubuf,nwbuf)" };
10933 static KmCommand _GEANT_CONTROL_SMATE = { &_GEANT_CONTROL_SMIXT,
10934 "/GEANT/CONTROL/SMATE", "SMATE", 0, 2, 9, 9, _GEANT_CONTROL_SMATE_parameters,
10935 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
10936 _GEANT_CONTROL_SMATE_guidance, 0, (char**)0, (char*)0, (int*)0 };
10937
10938 static KmParameter _GEANT_CONTROL_PDIGI_CHUSET = { "CHUSET", 6, "User set",
10939 "*", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
10940 (void*)0 };
10941 static KmParameter _GEANT_CONTROL_PDIGI_CHUDET = { "CHUDET", 6,
10942 "User detector", "*", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10943 KmTYPE_CHAR, (void*)0 };
10944 static KmParameter *_GEANT_CONTROL_PDIGI_parameters[] = {
10945 &_GEANT_CONTROL_PDIGI_CHUSET, &_GEANT_CONTROL_PDIGI_CHUDET };
10946 static char *_GEANT_CONTROL_PDIGI_guidance[] = { " CALL GPDIGI(chuset,chudet)"
10947 };
10948 static KmCommand _GEANT_CONTROL_PDIGI = { &_GEANT_CONTROL_SMATE,
10949 "/GEANT/CONTROL/PDIGI", "PDIGI", 0, 2, 2, 0, _GEANT_CONTROL_PDIGI_parameters,
10950 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
10951 _GEANT_CONTROL_PDIGI_guidance, 0, (char**)0, (char*)0, (int*)0 };
10952
10953 static KmParameter _GEANT_CONTROL_PHITS_CHUSET = { "CHUSET", 6, "User set",
10954 "*", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
10955 (void*)0 };
10956 static KmParameter _GEANT_CONTROL_PHITS_CHUDET = { "CHUDET", 6,
10957 "User detector", "*", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10958 KmTYPE_CHAR, (void*)0 };
10959 static KmParInt _GEANT_CONTROL_PHITS_NUMHI_type = { (char*)0, (char*)0,
10960 (char*)0, (char*)0, 0 };
10961 static KmParameter _GEANT_CONTROL_PHITS_NUMHI = { "NUMHI", 5, "Hit number",
10962 "0", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
10963 &_GEANT_CONTROL_PHITS_NUMHI_type };
10964 static KmParameter *_GEANT_CONTROL_PHITS_parameters[] = {
10965 &_GEANT_CONTROL_PHITS_CHUSET, &_GEANT_CONTROL_PHITS_CHUDET,
10966 &_GEANT_CONTROL_PHITS_NUMHI };
10967 static char *_GEANT_CONTROL_PHITS_guidance[] = { " CALL GPHITS(chuset,chudet)"
10968 };
10969 static KmCommand _GEANT_CONTROL_PHITS = { &_GEANT_CONTROL_PDIGI,
10970 "/GEANT/CONTROL/PHITS", "PHITS", 0, 2, 3, 0, _GEANT_CONTROL_PHITS_parameters,
10971 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
10972 _GEANT_CONTROL_PHITS_guidance, 0, (char**)0, (char*)0, (int*)0 };
10973
10974 static KmParInt _GEANT_CONTROL_OUTPUT_LP_LOUT_type = { (char*)0, (char*)0,
10975 (char*)0, (char*)0, 0 };
10976 static KmParameter _GEANT_CONTROL_OUTPUT_LP_LOUT = { "LOUT", 4,
10977 "New output unit", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
10978 (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_OUTPUT_LP_LOUT_type };
10979 static KmParameter *_GEANT_CONTROL_OUTPUT_LP_parameters[] = {
10980 &_GEANT_CONTROL_OUTPUT_LP_LOUT };
10981 static char *_GEANT_CONTROL_OUTPUT_LP_guidance[] = {
10982 "To change lout in /GCUNIT/",
10983 "Note: unit numbers 5,11,12,13,14,15 are reserved and cannot be used." };
10984 static KmCommand _GEANT_CONTROL_OUTPUT_LP = { &_GEANT_CONTROL_PHITS,
10985 "/GEANT/CONTROL/OUTPUT_LP", "OUTPUT_LP", 0, 2, 1, 1,
10986 _GEANT_CONTROL_OUTPUT_LP_parameters, 0, 0, gxcont_, (IntFunc*)0,
10987 (SUBROUTINE*)0, (pCharFunc*)0, 2, _GEANT_CONTROL_OUTPUT_LP_guidance, 0,
10988 (char**)0, (char*)0, (int*)0 };
10989
10990 static KmParameter _GEANT_CONTROL_PRINT_NAME = { "NAME", 4, "Name", (char*)0,
10991 (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
10992 (void*)0 };
10993 static KmParInt _GEANT_CONTROL_PRINT_NUMBER_type = { (char*)0, (char*)0,
10994 (char*)0, (char*)0, 0 };
10995 static KmParameter _GEANT_CONTROL_PRINT_NUMBER = { "NUMBER", 6, "Number", "0",
10996 (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
10997 &_GEANT_CONTROL_PRINT_NUMBER_type };
10998 static KmParameter *_GEANT_CONTROL_PRINT_parameters[] = {
10999 &_GEANT_CONTROL_PRINT_NAME, &_GEANT_CONTROL_PRINT_NUMBER };
11000 static char *_GEANT_CONTROL_PRINT_guidance[] = { " CALL GPRINT(name,number)" };
11001 static KmCommand _GEANT_CONTROL_PRINT = { &_GEANT_CONTROL_OUTPUT_LP,
11002 "/GEANT/CONTROL/PRINT", "PRINT", 0, 2, 2, 2, _GEANT_CONTROL_PRINT_parameters,
11003 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
11004 _GEANT_CONTROL_PRINT_guidance, 0, (char**)0, (char*)0, (int*)0 };
11005
11006 static KmParInt _GEANT_CONTROL_MZLOGL_LEVEL_type = { (char*)0, (char*)0,
11007 (char*)0, (char*)0, 0 };
11008 static KmParameter _GEANT_CONTROL_MZLOGL_LEVEL = { "LEVEL", 5, "MZ log level",
11009 "0", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
11010 &_GEANT_CONTROL_MZLOGL_LEVEL_type };
11011 static KmParameter *_GEANT_CONTROL_MZLOGL_parameters[] = {
11012 &_GEANT_CONTROL_MZLOGL_LEVEL };
11013 static char *_GEANT_CONTROL_MZLOGL_guidance[] = {
11014 "Set the log level for the MZ package of ZEBRA: CALL MZLOGL(0,level)",
11015 " LEVEL = -3 no messages at all", " -2 error messages only",
11016 " -1 terse logging", " 0 normal",
11017 " +1 log rare events", " +2 log calls to MZ routines" };
11018 static KmCommand _GEANT_CONTROL_MZLOGL = { &_GEANT_CONTROL_PRINT,
11019 "/GEANT/CONTROL/MZLOGL", "MZLOGL", 0, 2, 1, 1,
11020 _GEANT_CONTROL_MZLOGL_parameters, 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0,
11021 (pCharFunc*)0, 7, _GEANT_CONTROL_MZLOGL_guidance, 0, (char**)0, (char*)0,
11022 (int*)0 };
11023
11024 static KmParInt _GEANT_CONTROL_SWITCH_ISWI_type = { (char*)0, (char*)0,
11025 (char*)0, (char*)0, 0 };
11026 static KmParameter _GEANT_CONTROL_SWITCH_ISWI = { "ISWI", 4, "Switch number",
11027 (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
11028 &_GEANT_CONTROL_SWITCH_ISWI_type };
11029 static KmParInt _GEANT_CONTROL_SWITCH_IVAL_type = { (char*)0, (char*)0,
11030 (char*)0, (char*)0, 0 };
11031 static KmParameter _GEANT_CONTROL_SWITCH_IVAL = { "IVAL", 4,
11032 "New switch value", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
11033 (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_SWITCH_IVAL_type };
11034 static KmParameter *_GEANT_CONTROL_SWITCH_parameters[] = {
11035 &_GEANT_CONTROL_SWITCH_ISWI, &_GEANT_CONTROL_SWITCH_IVAL };
11036 static char *_GEANT_CONTROL_SWITCH_guidance[] = {
11037 "Change one element of array ISWIT(10) in /GCFLAG/" };
11038 static KmCommand _GEANT_CONTROL_SWITCH = { &_GEANT_CONTROL_MZLOGL,
11039 "/GEANT/CONTROL/SWITCH", "SWITCH", 0, 2, 2, 2,
11040 _GEANT_CONTROL_SWITCH_parameters, 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0,
11041 (pCharFunc*)0, 1, _GEANT_CONTROL_SWITCH_guidance, 0, (char**)0, (char*)0,
11042 (int*)0 };
11043
11044 static KmParInt _GEANT_CONTROL_RNDM_ISEED1_type = { (char*)0, (char*)0,
11045 (char*)0, (char*)0, 0 };
11046 static KmParameter _GEANT_CONTROL_RNDM_ISEED1 = { "ISEED1", 6,
11047 "First seed for the random number generator", (char*)0, (char*)0, 8, 0,
11048 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
11049 &_GEANT_CONTROL_RNDM_ISEED1_type };
11050 static KmParInt _GEANT_CONTROL_RNDM_ISEED2_type = { (char*)0, (char*)0,
11051 (char*)0, (char*)0, 0 };
11052 static KmParameter _GEANT_CONTROL_RNDM_ISEED2 = { "ISEED2", 6,
11053 "Second seed for the random number generator", (char*)0, (char*)0, 8, 0,
11054 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
11055 &_GEANT_CONTROL_RNDM_ISEED2_type };
11056 static KmParameter *_GEANT_CONTROL_RNDM_parameters[] = {
11057 &_GEANT_CONTROL_RNDM_ISEED1, &_GEANT_CONTROL_RNDM_ISEED2 };
11058 static char *_GEANT_CONTROL_RNDM_guidance[] = {
11059 "Set the seeds for the random number generator. If no numbers are",
11060 "given, the currents seeds are printed." };
11061 static KmCommand _GEANT_CONTROL_RNDM = { &_GEANT_CONTROL_SWITCH,
11062 "/GEANT/CONTROL/RNDM", "RNDM", 0, 2, 2, 0, _GEANT_CONTROL_RNDM_parameters, 0,
11063 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 2,
11064 _GEANT_CONTROL_RNDM_guidance, 0, (char**)0, (char*)0, (int*)0 };
11065
11066 static KmParInt _GEANT_CONTROL_TRIGGER_N_type = { (char*)0, (char*)0,
11067 (char*)0, (char*)0, 0 };
11068 static KmParameter _GEANT_CONTROL_TRIGGER_N = { "N", 1, "Number of events",
11069 "1", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
11070 &_GEANT_CONTROL_TRIGGER_N_type };
11071 static KmParameter *_GEANT_CONTROL_TRIGGER_parameters[] = {
11072 &_GEANT_CONTROL_TRIGGER_N };
11073 static char *_GEANT_CONTROL_TRIGGER_guidance[] = {
11074 "Start one or more new events." };
11075 static KmCommand _GEANT_CONTROL_TRIGGER = { &_GEANT_CONTROL_RNDM,
11076 "/GEANT/CONTROL/TRIGGER", "TRIGGER", 0, 2, 1, 0,
11077 _GEANT_CONTROL_TRIGGER_parameters, 0, 0, gxcont_, (IntFunc*)0,
11078 (SUBROUTINE*)0, (pCharFunc*)0, 1, _GEANT_CONTROL_TRIGGER_guidance, 0,
11079 (char**)0, (char*)0, (int*)0 };
11080
11081 static char *_GEANT_CONTROL_TRACK_guidance[] = {
11082 "Restart tracking, clearing the track and hit",
11083 "banks, but keeping the kinematics." };
11084 static KmCommand _GEANT_CONTROL_TRACK = { &_GEANT_CONTROL_TRIGGER,
11085 "/GEANT/CONTROL/TRACK", "TRACK", 0, 2, 0, 0, (KmParameter**)0, 0, 0, gxcont_,
11086 (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 2, _GEANT_CONTROL_TRACK_guidance,
11087 0, (char**)0, (char*)0, (int*)0 };
11088
11089 static KmParReal _GEANT_CONTROL_GTIME_TIMINT_type = { (char*)0, (char*)0,
11090 (char*)0, (char*)0, 0 };
11091 static KmParameter _GEANT_CONTROL_GTIME_TIMINT = { "TIMINT", 6,
11092 "Total time after initialisation", (char*)0, (char*)0, 12, 0, (char**)0, 0,
11093 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CONTROL_GTIME_TIMINT_type };
11094 static KmParReal _GEANT_CONTROL_GTIME_TIMEND_type = { (char*)0, (char*)0,
11095 (char*)0, (char*)0, 0 };
11096 static KmParameter _GEANT_CONTROL_GTIME_TIMEND = { "TIMEND", 6,
11097 "Time reserved for the termination phase", (char*)0, (char*)0, 12, 0,
11098 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
11099 &_GEANT_CONTROL_GTIME_TIMEND_type };
11100 static KmParInt _GEANT_CONTROL_GTIME_ITIME_type = { (char*)0, (char*)0,
11101 (char*)0, (char*)0, 0 };
11102 static KmParameter _GEANT_CONTROL_GTIME_ITIME = { "ITIME", 5,
11103 "Frequency of control printing", (char*)0, (char*)0, 8, 0, (char**)0, 0,
11104 (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_GTIME_ITIME_type };
11105 static KmParameter *_GEANT_CONTROL_GTIME_parameters[] = {
11106 &_GEANT_CONTROL_GTIME_TIMINT, &_GEANT_CONTROL_GTIME_TIMEND,
11107 &_GEANT_CONTROL_GTIME_ITIME };
11108 static char *_GEANT_CONTROL_GTIME_guidance[] = {
11109 "These commands have limited use in the interactive version. In",
11110 "particular the value of TIMINT is disregarded by GEANT." };
11111 static KmCommand _GEANT_CONTROL_GTIME = { &_GEANT_CONTROL_TRACK,
11112 "/GEANT/CONTROL/GTIME", "GTIME", 0, 2, 3, 3, _GEANT_CONTROL_GTIME_parameters,
11113 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 2,
11114 _GEANT_CONTROL_GTIME_guidance, 0, (char**)0, (char*)0, (int*)0 };
11115
11116 static char *_GEANT_CONTROL_SORD_ISTORD_range[] = { "1", "0" };
11117 static KmParInt _GEANT_CONTROL_SORD_ISTORD_type = { (char*)0, (char*)0,
11118 (char*)0, (char*)0, 0 };
11119 static KmParameter _GEANT_CONTROL_SORD_ISTORD = { "ISTORD", 6,
11120 "Flag to control user ordering of the stack", "1", (char*)0, 8, 2,
11121 _GEANT_CONTROL_SORD_ISTORD_range, 2, _GEANT_CONTROL_SORD_ISTORD_range,
11122 (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_SORD_ISTORD_type };
11123 static KmParameter *_GEANT_CONTROL_SORD_parameters[] = {
11124 &_GEANT_CONTROL_SORD_ISTORD };
11125 static char *_GEANT_CONTROL_SORD_guidance[] = {
11126 "If ISTORD is set to 1, the particle with the highest value of the",
11127 "user weight UPWGHT will be selected to be tracked next." };
11128 static KmCommand _GEANT_CONTROL_SORD = { &_GEANT_CONTROL_GTIME,
11129 "/GEANT/CONTROL/SORD", "SORD", 0, 2, 1, 1, _GEANT_CONTROL_SORD_parameters, 0,
11130 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 2,
11131 _GEANT_CONTROL_SORD_guidance, 0, (char**)0, (char*)0, (int*)0 };
11132
11133 static KmParInt _GEANT_CONTROL_RUNG_IDRUN_type = { (char*)0, (char*)0,
11134 (char*)0, (char*)0, 0 };
11135 static KmParameter _GEANT_CONTROL_RUNG_IDRUN = { "IDRUN", 5,
11136 "User run number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
11137 (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_RUNG_IDRUN_type };
11138 static KmParInt _GEANT_CONTROL_RUNG_IDEVT_type = { (char*)0, (char*)0,
11139 (char*)0, (char*)0, 0 };
11140 static KmParameter _GEANT_CONTROL_RUNG_IDEVT = { "IDEVT", 5,
11141 "User starting event number", (char*)0, (char*)0, 8, 0, (char**)0, 0,
11142 (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_RUNG_IDEVT_type };
11143 static KmParameter *_GEANT_CONTROL_RUNG_parameters[] = {
11144 &_GEANT_CONTROL_RUNG_IDRUN, &_GEANT_CONTROL_RUNG_IDEVT };
11145 static char *_GEANT_CONTROL_RUNG_guidance[] = {
11146 "Set the run number and the starting value for the user event number." };
11147 static KmCommand _GEANT_CONTROL_RUNG = { &_GEANT_CONTROL_SORD,
11148 "/GEANT/CONTROL/RUNG", "RUNG", 0, 2, 2, 2, _GEANT_CONTROL_RUNG_parameters, 0,
11149 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
11150 _GEANT_CONTROL_RUNG_guidance, 0, (char**)0, (char*)0, (int*)0 };
11151
11152 static KmParInt _GEANT_CONTROL_KINE_IKINE_type = { (char*)0, (char*)0,
11153 (char*)0, (char*)0, 0 };
11154 static KmParameter _GEANT_CONTROL_KINE_IKINE = { "IKINE", 5, "IKINE", "1",
11155 (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
11156 &_GEANT_CONTROL_KINE_IKINE_type };
11157 static KmParReal _GEANT_CONTROL_KINE_PKINE1_type = { (char*)0, (char*)0,
11158 (char*)0, (char*)0, 0 };
11159 static KmParameter _GEANT_CONTROL_KINE_PKINE1 = { "PKINE1", 6, "PKINE(1)",
11160 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
11161 KmTYPE_REAL, &_GEANT_CONTROL_KINE_PKINE1_type };
11162 static KmParReal _GEANT_CONTROL_KINE_PKINE2_type = { (char*)0, (char*)0,
11163 (char*)0, (char*)0, 0 };
11164 static KmParameter _GEANT_CONTROL_KINE_PKINE2 = { "PKINE2", 6, "PKINE(2)",
11165 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
11166 KmTYPE_REAL, &_GEANT_CONTROL_KINE_PKINE2_type };
11167 static KmParReal _GEANT_CONTROL_KINE_PKINE3_type = { (char*)0, (char*)0,
11168 (char*)0, (char*)0, 0 };
11169 static KmParameter _GEANT_CONTROL_KINE_PKINE3 = { "PKINE3", 6, "PKINE(3)",
11170 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
11171 KmTYPE_REAL, &_GEANT_CONTROL_KINE_PKINE3_type };
11172 static KmParReal _GEANT_CONTROL_KINE_PKINE4_type = { (char*)0, (char*)0,
11173 (char*)0, (char*)0, 0 };
11174 static KmParameter _GEANT_CONTROL_KINE_PKINE4 = { "PKINE4", 6, "PKINE(4)",
11175 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
11176 KmTYPE_REAL, &_GEANT_CONTROL_KINE_PKINE4_type };
11177 static KmParReal _GEANT_CONTROL_KINE_PKINE5_type = { (char*)0, (char*)0,
11178 (char*)0, (char*)0, 0 };
11179 static KmParameter _GEANT_CONTROL_KINE_PKINE5 = { "PKINE5", 6, "PKINE(5)",
11180 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
11181 KmTYPE_REAL, &_GEANT_CONTROL_KINE_PKINE5_type };
11182 static KmParReal _GEANT_CONTROL_KINE_PKINE6_type = { (char*)0, (char*)0,
11183 (char*)0, (char*)0, 0 };
11184 static KmParameter _GEANT_CONTROL_KINE_PKINE6 = { "PKINE6", 6, "PKINE(6)",
11185 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
11186 KmTYPE_REAL, &_GEANT_CONTROL_KINE_PKINE6_type };
11187 static KmParReal _GEANT_CONTROL_KINE_PKINE7_type = { (char*)0, (char*)0,
11188 (char*)0, (char*)0, 0 };
11189 static KmParameter _GEANT_CONTROL_KINE_PKINE7 = { "PKINE7", 6, "PKINE(7)",
11190 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
11191 KmTYPE_REAL, &_GEANT_CONTROL_KINE_PKINE7_type };
11192 static KmParReal _GEANT_CONTROL_KINE_PKINE8_type = { (char*)0, (char*)0,
11193 (char*)0, (char*)0, 0 };
11194 static KmParameter _GEANT_CONTROL_KINE_PKINE8 = { "PKINE8", 6, "PKINE(8)",
11195 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
11196 KmTYPE_REAL, &_GEANT_CONTROL_KINE_PKINE8_type };
11197 static KmParReal _GEANT_CONTROL_KINE_PKINE9_type = { (char*)0, (char*)0,
11198 (char*)0, (char*)0, 0 };
11199 static KmParameter _GEANT_CONTROL_KINE_PKINE9 = { "PKINE9", 6, "PKINE(9)",
11200 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
11201 KmTYPE_REAL, &_GEANT_CONTROL_KINE_PKINE9_type };
11202 static KmParReal _GEANT_CONTROL_KINE_PKINE10_type = { (char*)0, (char*)0,
11203 (char*)0, (char*)0, 0 };
11204 static KmParameter _GEANT_CONTROL_KINE_PKINE10 = { "PKINE10", 7, "PKINE(10)",
11205 (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
11206 KmTYPE_REAL, &_GEANT_CONTROL_KINE_PKINE10_type };
11207 static KmParameter *_GEANT_CONTROL_KINE_parameters[] = {
11208 &_GEANT_CONTROL_KINE_IKINE, &_GEANT_CONTROL_KINE_PKINE1,
11209 &_GEANT_CONTROL_KINE_PKINE2, &_GEANT_CONTROL_KINE_PKINE3,
11210 &_GEANT_CONTROL_KINE_PKINE4, &_GEANT_CONTROL_KINE_PKINE5,
11211 &_GEANT_CONTROL_KINE_PKINE6, &_GEANT_CONTROL_KINE_PKINE7,
11212 &_GEANT_CONTROL_KINE_PKINE8, &_GEANT_CONTROL_KINE_PKINE9,
11213 &_GEANT_CONTROL_KINE_PKINE10 };
11214 static char *_GEANT_CONTROL_KINE_guidance[] = {
11215 "Set the variables in /GCFLAG/ IKINE, PKINE(10)" };
11216 static KmCommand _GEANT_CONTROL_KINE = { &_GEANT_CONTROL_RUNG,
11217 "/GEANT/CONTROL/KINE", "KINE", 0, 2, 11, 1, _GEANT_CONTROL_KINE_parameters,
11218 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
11219 _GEANT_CONTROL_KINE_guidance, 0, (char**)0, (char*)0, (int*)0 };
11220
11221 static char *_GEANT_CONTROL_guidance[] = { "Control commands." };
11222 static KmMenu _GEANT_CONTROL = { (KmMenu*)0, (KmMenu*)0, "/GEANT/CONTROL",
11223 "CONTROL", 2, &_GEANT_CONTROL_KINE, 1, _GEANT_CONTROL_guidance };
11224
11225 static KmMenu _GEANT = { (KmMenu*)0, &_GEANT_CONTROL, "/GEANT", "GEANT", 1,
11226 (KmCommand*)0, 0, (char**)0 };
11227
11228 klnkmenu( &_GEANT, 921023 );
11229 }
11230
11231
11232 #ifdef F77_LCASE
11233 # define gkdz_ gkdz
11234 # define gxdz_ gxdz
11235 #endif
11236
11237 #ifdef F77_UCASE
11238 # define gkdz_ GKDZ
11239 # define gxdz_ GXDZ
11240 #endif
11241
11242 #ifdef IBM370
11243 # pragma linkage(GKDZ,FORTRAN)
11244 # pragma linkage(GXDZ,FORTRAN)
11245 #endif
11246
11247 extern void gkdz_();
11248 extern void gxdz_();
11249
11250 void gkdz_()
11251 {
11252
11253 static KmParameter _GEANT_DZ_DIRZ_PATH = { "PATH", 4,
11254 "Name of the RZ directory to analyse", (char*)0, (char*)0, 20, 0, (char**)0,
11255 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
11256 static KmParameter *_GEANT_DZ_DIRZ_parameters[] = { &_GEANT_DZ_DIRZ_PATH };
11257 static char *_GEANT_DZ_DIRZ_guidance[] = {
11258 "Facility to display RZ directory trees.",
11259 " CALL DZDIRZ(0,LDUMMY,0,path,'N',1,0,1)" };
11260 static KmCommand _GEANT_DZ_DIRZ = { (KmCommand*)0, "/GEANT/DZ/DIRZ", "DIRZ",
11261 0, 2, 1, 0, _GEANT_DZ_DIRZ_parameters, 0, 0, gxdz_, (IntFunc*)0,
11262 (SUBROUTINE*)0, (pCharFunc*)0, 2, _GEANT_DZ_DIRZ_guidance, 0, (char**)0,
11263 (char*)0, (int*)0 };
11264
11265 static KmParameter _GEANT_DZ_DISP_BANK = { "BANK", 4, "Name of the bank",
11266 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
11267 KmTYPE_CHAR, (void*)0 };
11268 static KmParameter _GEANT_DZ_DISP_PATH = { "PATH", 4, "Name of the doc file",
11269 " ", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
11270 (void*)0 };
11271 static KmParInt _GEANT_DZ_DISP_NUMBER_type = { (char*)0, (char*)0,
11272 (char*)0, (char*)0, 0 };
11273 static KmParameter _GEANT_DZ_DISP_NUMBER = { "NUMBER", 6,
11274 "Number of the bank", "1", (char*)0, 8, 0, (char**)0, 0, (char**)0,
11275 (KmParFlag)0, KmTYPE_INT, &_GEANT_DZ_DISP_NUMBER_type };
11276 static KmParameter *_GEANT_DZ_DISP_parameters[] = { &_GEANT_DZ_DISP_BANK,
11277 &_GEANT_DZ_DISP_PATH, &_GEANT_DZ_DISP_NUMBER };
11278 static char *_GEANT_DZ_DISP_guidance[] = { "Interactive bank display tool.",
11279 " CALL DZDISP(IXSTOR,LBANK,path,'N',1,0,1,IWTYPE)" };
11280 static KmCommand _GEANT_DZ_DISP = { &_GEANT_DZ_DIRZ, "/GEANT/DZ/DISP", "DISP",
11281 0, 2, 3, 1, _GEANT_DZ_DISP_parameters, 0, 0, gxdz_, (IntFunc*)0,
11282 (SUBROUTINE*)0, (pCharFunc*)0, 2, _GEANT_DZ_DISP_guidance, 0, (char**)0,
11283 (char*)0, (int*)0 };
11284
11285 static KmParInt _GEANT_DZ_DDIV_IDIV_type = { (char*)0, (char*)0, (char*)0,
11286 (char*)0, 0 };
11287 static KmParameter _GEANT_DZ_DDIV_IDIV = { "IDIV", 4, "Division number", "2",
11288 (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
11289 &_GEANT_DZ_DDIV_IDIV_type };
11290 static KmParameter _GEANT_DZ_DDIV_PATH = { "PATH", 4, "Name of the doc file",
11291 " ", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
11292 (void*)0 };
11293 static KmParameter *_GEANT_DZ_DDIV_parameters[] = { &_GEANT_DZ_DDIV_IDIV,
11294 &_GEANT_DZ_DDIV_PATH };
11295 static char *_GEANT_DZ_DDIV_guidance[] = {
11296 "Facility to display the layout of stores and divisions.",
11297 " CALL DZDDIV(idiv,LDUMMY,path,'IN',1,0,1,IWTYPE)" };
11298 static KmCommand _GEANT_DZ_DDIV = { &_GEANT_DZ_DISP, "/GEANT/DZ/DDIV", "DDIV",
11299 0, 2, 2, 0, _GEANT_DZ_DDIV_parameters, 0, 0, gxdz_, (IntFunc*)0,
11300 (SUBROUTINE*)0, (pCharFunc*)0, 2, _GEANT_DZ_DDIV_guidance, 0, (char**)0,
11301 (char*)0, (int*)0 };
11302
11303 static KmParInt _GEANT_DZ_STORE_IXSTOR_type = { "0", "24", "0", "24", 0 };
11304 static KmParameter _GEANT_DZ_STORE_IXSTOR = { "IXSTOR", 6, "Store number",
11305 "0", (char*)0, 3, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
11306 &_GEANT_DZ_STORE_IXSTOR_type };
11307 static KmParameter *_GEANT_DZ_STORE_parameters[] = { &_GEANT_DZ_STORE_IXSTOR };
11308 static char *_GEANT_DZ_STORE_guidance[] = {
11309 "Display the structure of the ZEBRA store IXSTOR.",
11310 "Output the parameters characterizing the store, followed by a",
11311 "list of all divisions and all link areas associated with the store in",
11312 "question." };
11313 static KmCommand _GEANT_DZ_STORE = { &_GEANT_DZ_DDIV, "/GEANT/DZ/STORE",
11314 "STORE", 0, 2, 1, 0, _GEANT_DZ_STORE_parameters, 0, 0, gxdz_, (IntFunc*)0,
11315 (SUBROUTINE*)0, (pCharFunc*)0, 4, _GEANT_DZ_STORE_guidance, 0, (char**)0,
11316 (char*)0, (int*)0 };
11317
11318 static KmParInt _GEANT_DZ_VERIFY_IDIV_type = { "0", "24", "0", "24", 0 };
11319 static KmParameter _GEANT_DZ_VERIFY_IDIV = { "IDIV", 4, "Division number ",
11320 "0", (char*)0, 3, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
11321 &_GEANT_DZ_VERIFY_IDIV_type };
11322 static KmParOption _GEANT_DZ_VERIFY_CHOPT_type = { (char**)0, (int*)0, (int*)0
11323 };
11324 static KmParameter _GEANT_DZ_VERIFY_CHOPT = { "CHOPT", 5, "Options", "CLSU",
11325 (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_OPTION,
11326 &_GEANT_DZ_VERIFY_CHOPT_type };
11327 static KmParameter *_GEANT_DZ_VERIFY_parameters[] = { &_GEANT_DZ_VERIFY_IDIV,
11328 &_GEANT_DZ_VERIFY_CHOPT };
11329 static char *_GEANT_DZ_VERIFY_guidance[] = {
11330 "Check the structure of one or more ZEBRA divisions.",
11331 "The verification detail depends on the settings in CHOPT.",
11332 " CHOPT='C' Check chaining of banks only",
11333 " CHOPT='L' Check validity of the structural links (implies 'C')",
11334 " CHOPT='S' Check the store parameters",
11335 " CHOPT='U' Check the validity of the up and origin (implies 'C')",
11336 " CHOPT='F' Errors are considered fatal and generate a call to ZFATAL" };
11337 static KmCommand _GEANT_DZ_VERIFY = { &_GEANT_DZ_STORE, "/GEANT/DZ/VERIFY",
11338 "VERIFY", 0, 2, 2, 0, _GEANT_DZ_VERIFY_parameters, 0, 0, gxdz_, (IntFunc*)0,
11339 (SUBROUTINE*)0, (pCharFunc*)0, 7, _GEANT_DZ_VERIFY_guidance, 0, (char**)0,
11340 (char*)0, (int*)0 };
11341
11342 static KmParInt _GEANT_DZ_SNAP_IDIV_type = { "0", "24", "0", "24", 0 };
11343 static KmParameter _GEANT_DZ_SNAP_IDIV = { "IDIV", 4, "Division number ", "2",
11344 (char*)0, 3, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
11345 &_GEANT_DZ_SNAP_IDIV_type };
11346 static KmParOption _GEANT_DZ_SNAP_CHOPT_type = { (char**)0, (int*)0, (int*)0 };
11347 static KmParameter _GEANT_DZ_SNAP_CHOPT = { "CHOPT", 5, "Options", "M",
11348 (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_OPTION,
11349 &_GEANT_DZ_SNAP_CHOPT_type };
11350 static KmParameter *_GEANT_DZ_SNAP_parameters[] = { &_GEANT_DZ_SNAP_IDIV,
11351 &_GEANT_DZ_SNAP_CHOPT };
11352 static char *_GEANT_DZ_SNAP_guidance[] = { "Snap of one or more divisions.",
11353 "Provides a snapshot of one or more divisions in a ZEBRA store.",
11354 "The kind of information provided is controlled by CHOPT.",
11355 " CHOPT='M' Print Map entry for each bank",
11356 " CHOPT='E' Extend map entry to dump all links of each bank",
11357 " (otherwise only as many links as will fit on a line)",
11358 " CHOPT='F' Full. Dump all active banks, links and data",
11359 " CHOPT='K' Kill. Dropped banks to be treated as active",
11360 " (dropped banks are not normally dumped under D or F option)",
11361 " CHOPT='L' Dump all Link areas associated with the store",
11362 " CHOPT='W' Dump the Working space, links and data",
11363 " CHOPT='Z' Dump the information in hexadecimal." };
11364 static KmCommand _GEANT_DZ_SNAP = { &_GEANT_DZ_VERIFY, "/GEANT/DZ/SNAP",
11365 "SNAP", 0, 2, 2, 0, _GEANT_DZ_SNAP_parameters, 0, 0, gxdz_, (IntFunc*)0,
11366 (SUBROUTINE*)0, (pCharFunc*)0, 12, _GEANT_DZ_SNAP_guidance, 0, (char**)0,
11367 (char*)0, (int*)0 };
11368
11369 static KmParameter _GEANT_DZ_SHOW_NAME = { "NAME", 4, "Bank name", (char*)0,
11370 (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
11371 (void*)0 };
11372 static KmParInt _GEANT_DZ_SHOW_NUMBER_type = { (char*)0, (char*)0,
11373 (char*)0, (char*)0, 0 };
11374 static KmParameter _GEANT_DZ_SHOW_NUMBER = { "NUMBER", 6, "Bank number", "1",
11375 (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
11376 &_GEANT_DZ_SHOW_NUMBER_type };
11377 static KmParOption _GEANT_DZ_SHOW_CHOPT_type = { (char**)0, (int*)0, (int*)0 };
11378 static KmParameter _GEANT_DZ_SHOW_CHOPT = { "CHOPT", 5, "Options", "BSV",
11379 (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_OPTION,
11380 &_GEANT_DZ_SHOW_CHOPT_type };
11381 static KmParameter *_GEANT_DZ_SHOW_parameters[] = { &_GEANT_DZ_SHOW_NAME,
11382 &_GEANT_DZ_SHOW_NUMBER, &_GEANT_DZ_SHOW_CHOPT };
11383 static char *_GEANT_DZ_SHOW_guidance[] = {
11384 "Display the contents of a bank or a data structure",
11385 "identified by its NAME and NUMBER.",
11386 "The output format of the data part is controlled by the internal",
11387 "or external I/O characteristic.", " CHOPT='B' Print the bank.",
11388 " CHOPT='S' Print the bank contents from left to right Sideways",
11389 " with up to ten elements per line.",
11390 " CHOPT='V' Print the vertical (down) structure.",
11391 " CHOPT='D' Print the bank contents from top to bottom Downwards",
11392 " with five elements per line.",
11393 " CHOPT='L' Print the linear structure.",
11394 " CHOPT='Z' Print the data part of each bank in hexadecimal format" };
11395 static KmCommand _GEANT_DZ_SHOW = { &_GEANT_DZ_SNAP, "/GEANT/DZ/SHOW", "SHOW",
11396 0, 2, 3, 1, _GEANT_DZ_SHOW_parameters, 0, 0, gxdz_, (IntFunc*)0,
11397 (SUBROUTINE*)0, (pCharFunc*)0, 12, _GEANT_DZ_SHOW_guidance, 0, (char**)0,
11398 (char*)0, (int*)0 };
11399
11400 static KmParameter _GEANT_DZ_SURV_NAME = { "NAME", 4, "Bank name", (char*)0,
11401 (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
11402 (void*)0 };
11403 static KmParInt _GEANT_DZ_SURV_NUMBER_type = { (char*)0, (char*)0,
11404 (char*)0, (char*)0, 0 };
11405 static KmParameter _GEANT_DZ_SURV_NUMBER = { "NUMBER", 6, "Bank number", "1",
11406 (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
11407 &_GEANT_DZ_SURV_NUMBER_type };
11408 static KmParameter *_GEANT_DZ_SURV_parameters[] = { &_GEANT_DZ_SURV_NAME,
11409 &_GEANT_DZ_SURV_NUMBER };
11410 static char *_GEANT_DZ_SURV_guidance[] = {
11411 "Print a survey of the structure identified by NAME, NUMBER." };
11412 static KmCommand _GEANT_DZ_SURV = { &_GEANT_DZ_SHOW, "/GEANT/DZ/SURV", "SURV",
11413 0, 2, 2, 1, _GEANT_DZ_SURV_parameters, 0, 0, gxdz_, (IntFunc*)0,
11414 (SUBROUTINE*)0, (pCharFunc*)0, 1, _GEANT_DZ_SURV_guidance, 0, (char**)0,
11415 (char*)0, (int*)0 };
11416
11417 static KmMenu _GEANT_DZ = { (KmMenu*)0, (KmMenu*)0, "/GEANT/DZ", "DZ", 2,
11418 &_GEANT_DZ_SURV, 0, (char**)0 };
11419
11420 static KmMenu _GEANT = { (KmMenu*)0, &_GEANT_DZ, "/GEANT", "GEANT", 1,
11421 (KmCommand*)0, 0, (char**)0 };
11422
11423 klnkmenu( &_GEANT, 921023 );
11424 }
11425
11426
11427 #ifdef F77_LCASE
11428 # define gkfz_ gkfz
11429 # define gxfz_ gxfz
11430 #endif
11431
11432 #ifdef F77_UCASE
11433 # define gkfz_ GKFZ
11434 # define gxfz_ GXFZ
11435 #endif
11436
11437 #ifdef IBM370
11438 # pragma linkage(GKFZ,FORTRAN)
11439 # pragma linkage(GXFZ,FORTRAN)
11440 #endif
11441
11442 extern void gkfz_();
11443 extern void gxfz_();
11444
11445 void gkfz_()
11446 {
11447
11448 static KmParInt _GEANT_FZ_FZCLOSE_LUN_type = { (char*)0, (char*)0,
11449 (char*)0, (char*)0, 0 };
11450 static KmParameter _GEANT_FZ_FZCLOSE_LUN = { "LUN", 3,
11451 "Fortran unit of the FZ to close", (char*)0, (char*)0, 8, 0, (char**)0, 0,
11452 (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_FZ_FZCLOSE_LUN_type };
11453 static KmParameter *_GEANT_FZ_FZCLOSE_parameters[] = { &_GEANT_FZ_FZCLOSE_LUN
11454 };
11455 static char *_GEANT_FZ_FZCLOSE_guidance[] = { "Equivalent to a call to:",
11456 " CALL GCLOSE(LUN,IER)" };
11457 static KmCommand _GEANT_FZ_FZCLOSE = { (KmCommand*)0, "/GEANT/FZ/FZCLOSE",
11458 "FZCLOSE", 0, 2, 1, 1, _GEANT_FZ_FZCLOSE_parameters, 0, 0, gxfz_,
11459 (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 2, _GEANT_FZ_FZCLOSE_guidance, 0,
11460 (char**)0, (char*)0, (int*)0 };
11461
11462 static KmParInt _GEANT_FZ_FZOUT_LUN_type = { (char*)0, (char*)0, (char*)0,
11463 (char*)0, 0 };
11464 static KmParameter _GEANT_FZ_FZOUT_LUN = { "LUN", 3,
11465 "Fortran unit of the FZ file", (char*)0, (char*)0, 8, 0, (char**)0, 0,
11466 (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_FZ_FZOUT_LUN_type };
11467 static KmParameter _GEANT_FZ_FZOUT_KEYSU = { "KEYSU", 5,
11468 "Name of the data structure to be saved", (char*)0, (char*)0, 20, 0,
11469 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
11470 static KmParInt _GEANT_FZ_FZOUT_IDENT_type = { (char*)0, (char*)0,
11471 (char*)0, (char*)0, 0 };
11472 static KmParameter _GEANT_FZ_FZOUT_IDENT = { "IDENT", 5,
11473 "Version of the data structure to be saved", "1", (char*)0, 8, 0, (char**)0,
11474 0, (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_FZ_FZOUT_IDENT_type };
11475 static KmParameter *_GEANT_FZ_FZOUT_parameters[] = { &_GEANT_FZ_FZOUT_LUN,
11476 &_GEANT_FZ_FZOUT_KEYSU, &_GEANT_FZ_FZOUT_IDENT };
11477 static char *_GEANT_FZ_FZOUT_guidance[] = { "Equivalent to a call to:",
11478 " CALL GFOUT(LUN,KEYSU,1,IDENT,' ',IER)" };
11479 static KmCommand _GEANT_FZ_FZOUT = { &_GEANT_FZ_FZCLOSE, "/GEANT/FZ/FZOUT",
11480 "FZOUT", 0, 2, 3, 2, _GEANT_FZ_FZOUT_parameters, 0, 0, gxfz_, (IntFunc*)0,
11481 (SUBROUTINE*)0, (pCharFunc*)0, 2, _GEANT_FZ_FZOUT_guidance, 0, (char**)0,
11482 (char*)0, (int*)0 };
11483
11484 static KmParInt _GEANT_FZ_FZOPEN_LUN_type = { (char*)0, (char*)0, (char*)0,
11485 (char*)0, 0 };
11486 static KmParameter _GEANT_FZ_FZOPEN_LUN = { "LUN", 3,
11487 "Fortran unit with which to open the file", (char*)0, (char*)0, 8, 0,
11488 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_FZ_FZOPEN_LUN_type
11489 };
11490 static KmParameter _GEANT_FZ_FZOPEN_FILE = { "FILE", 4,
11491 "Name of the file to be opened", (char*)0, (char*)0, 20, 0, (char**)0, 0,
11492 (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
11493 static KmParameter _GEANT_FZ_FZOPEN_LUNTYP = { "LUNTYP", 6,
11494 "Type of FZ file to be opened by GOPEN", "XI", (char*)0, 20, 0, (char**)0, 0,
11495 (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
11496 static KmParInt _GEANT_FZ_FZOPEN_LEN_type = { (char*)0, (char*)0, (char*)0,
11497 (char*)0, 0 };
11498 static KmParameter _GEANT_FZ_FZOPEN_LEN = { "LEN", 3,
11499 "Recordlenght of the file", "0", (char*)0, 8, 0, (char**)0, 0, (char**)0,
11500 (KmParFlag)0, KmTYPE_INT, &_GEANT_FZ_FZOPEN_LEN_type };
11501 static KmParOption _GEANT_FZ_FZOPEN_CHOPT_type = { (char**)0, (int*)0, (int*)0
11502 };
11503 static KmParameter _GEANT_FZ_FZOPEN_CHOPT = { "CHOPT", 5,
11504 "Optional parameter to specify the action", " ", (char*)0, 20, 0, (char**)0,
11505 0, (char**)0, (KmParFlag)0, KmTYPE_OPTION, &_GEANT_FZ_FZOPEN_CHOPT_type };
11506 static KmParameter *_GEANT_FZ_FZOPEN_parameters[] = { &_GEANT_FZ_FZOPEN_LUN,
11507 &_GEANT_FZ_FZOPEN_FILE, &_GEANT_FZ_FZOPEN_LUNTYP, &_GEANT_FZ_FZOPEN_LEN,
11508 &_GEANT_FZ_FZOPEN_CHOPT };
11509 static char *_GEANT_FZ_FZOPEN_guidance[] = { "Equivalent to a call to:",
11510 " CALL GOPEN(LUN,FILE,LUNTYP,LEN,IER)",
11511 "If CHOPT = I then a call to GFIN or GFOUT will be performed in addition",
11512 "according to the value of LUNTYP, with the key INIT to save or retrieve",
11513 "the whole initialization data structure." };
11514 static KmCommand _GEANT_FZ_FZOPEN = { &_GEANT_FZ_FZOUT, "/GEANT/FZ/FZOPEN",
11515 "FZOPEN", 0, 2, 5, 4, _GEANT_FZ_FZOPEN_parameters, 0, 0, gxfz_, (IntFunc*)0,
11516 (SUBROUTINE*)0, (pCharFunc*)0, 5, _GEANT_FZ_FZOPEN_guidance, 0, (char**)0,
11517 (char*)0, (int*)0 };
11518
11519 static KmParInt _GEANT_FZ_FZIN_LUN_type = { (char*)0, (char*)0, (char*)0,
11520 (char*)0, 0 };
11521 static KmParameter _GEANT_FZ_FZIN_LUN = { "LUN", 3,
11522 "Fortran unit of the FZ file", (char*)0, (char*)0, 8, 0, (char**)0, 0,
11523 (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_FZ_FZIN_LUN_type };
11524 static KmParameter _GEANT_FZ_FZIN_KEYSU = { "KEYSU", 5,
11525 "Name of the data structure to be retrieved", (char*)0, (char*)0, 20, 0,
11526 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
11527 static KmParInt _GEANT_FZ_FZIN_IDENT_type = { (char*)0, (char*)0, (char*)0,
11528 (char*)0, 0 };
11529 static KmParameter _GEANT_FZ_FZIN_IDENT = { "IDENT", 5,
11530 "Version of the data structure to be retrieved", "0", (char*)0, 8, 0,
11531 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_FZ_FZIN_IDENT_type
11532 };
11533 static KmParameter *_GEANT_FZ_FZIN_parameters[] = { &_GEANT_FZ_FZIN_LUN,
11534 &_GEANT_FZ_FZIN_KEYSU, &_GEANT_FZ_FZIN_IDENT };
11535 static char *_GEANT_FZ_FZIN_guidance[] = { "Equivalent to a call to:",
11536 " CALL GFIN(LUN,KEYSU,1,IDENT,' ',IER)" };
11537 static KmCommand _GEANT_FZ_FZIN = { &_GEANT_FZ_FZOPEN, "/GEANT/FZ/FZIN",
11538 "FZIN", 0, 2, 3, 2, _GEANT_FZ_FZIN_parameters, 0, 0, gxfz_, (IntFunc*)0,
11539 (SUBROUTINE*)0, (pCharFunc*)0, 2, _GEANT_FZ_FZIN_guidance, 0, (char**)0,
11540 (char*)0, (int*)0 };
11541
11542 static char *_GEANT_FZ_guidance[] = { "ZEBRA/FZ commands" };
11543 static KmMenu _GEANT_FZ = { (KmMenu*)0, (KmMenu*)0, "/GEANT/FZ", "FZ", 2,
11544 &_GEANT_FZ_FZIN, 1, _GEANT_FZ_guidance };
11545
11546 static KmMenu _GEANT = { (KmMenu*)0, &_GEANT_FZ, "/GEANT", "GEANT", 1,
11547 (KmCommand*)0, 0, (char**)0 };
11548
11549 klnkmenu( &_GEANT, 921023 );
11550 }
11551
11552
11553 #ifdef F77_LCASE
11554 # define gkrz_ gkrz
11555 # define gxrz_ gxrz
11556 #endif
11557
11558 #ifdef F77_UCASE
11559 # define gkrz_ GKRZ
11560 # define gxrz_ GXRZ
11561 #endif
11562
11563 #ifdef IBM370
11564 # pragma linkage(GKRZ,FORTRAN)
11565 # pragma linkage(GXRZ,FORTRAN)
11566 #endif
11567
11568 extern void gkrz_();
11569 extern void gxrz_();
11570
11571 void gkrz_()
11572 {
11573
11574 static KmParameter _GEANT_RZ_FREE_CHDIR = { "CHDIR", 5, "Lock identifier",
11575 "RZFILE", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
11576 KmTYPE_CHAR, (void*)0 };
11577 static KmParameter *_GEANT_RZ_FREE_parameters[] = { &_GEANT_RZ_FREE_CHDIR };
11578 static char *_GEANT_RZ_FREE_guidance[] = { "Free an RZ directory." };
11579 static KmCommand _GEANT_RZ_FREE = { (KmCommand*)0, "/GEANT/RZ/FREE", "FREE",
11580 0, 2, 1, 1, _GEANT_RZ_FREE_parameters, 0, 0, gxrz_, (IntFunc*)0,
11581 (SUBROUTINE*)0, (pCharFunc*)0, 1, _GEANT_RZ_FREE_guidance, 0, (char**)0,
11582 (char*)0, (int*)0 };
11583
11584 static KmParameter _GEANT_RZ_LOCK_CHDIR = { "CHDIR", 5, "Lock identifier",
11585 "RZFILE", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
11586 KmTYPE_CHAR, (void*)0 };
11587 static KmParameter *_GEANT_RZ_LOCK_parameters[] = { &_GEANT_RZ_LOCK_CHDIR };
11588 static char *_GEANT_RZ_LOCK_guidance[] = { "Lock an RZ directory." };
11589 static KmCommand _GEANT_RZ_LOCK = { &_GEANT_RZ_FREE, "/GEANT/RZ/LOCK", "LOCK",
11590 0, 2, 1, 1, _GEANT_RZ_LOCK_parameters, 0, 0, gxrz_, (IntFunc*)0,
11591 (SUBROUTINE*)0, (pCharFunc*)0, 1, _GEANT_RZ_LOCK_guidance, 0, (char**)0,
11592 (char*)0, (int*)0 };
11593
11594 static KmParameter _GEANT_RZ_SCR_OBJECT = { "OBJECT", 6, "Structure name",
11595 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
11596 KmTYPE_CHAR, (void*)0 };
11597 static KmParInt _GEANT_RZ_SCR_IDVERS_type = { (char*)0, (char*)0, (char*)0,
11598 (char*)0, 0 };
11599 static KmParameter _GEANT_RZ_SCR_IDVERS = { "IDVERS", 6, "Version number",
11600 "1", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
11601 &_GEANT_RZ_SCR_IDVERS_type };
11602 static KmParameter *_GEANT_RZ_SCR_parameters[] = { &_GEANT_RZ_SCR_OBJECT,
11603 &_GEANT_RZ_SCR_IDVERS };
11604 static char *_GEANT_RZ_SCR_guidance[] = {
11605 "Delete entry identified by OBJECT,IDVERS on RZ file.",
11606 "OBJECT may be : MATE,TMED,VOLU,ROTM,SETS,PART,SCAN, *",
11607 "If OBJECT= * delete all entries with IDVERS." };
11608 static KmCommand _GEANT_RZ_SCR = { &_GEANT_RZ_LOCK, "/GEANT/RZ/SCR", "SCR", 0,
11609 2, 2, 1, _GEANT_RZ_SCR_parameters, 0, 0, gxrz_, (IntFunc*)0, (SUBROUTINE*)0,
11610 (pCharFunc*)0, 3, _GEANT_RZ_SCR_guidance, 0, (char**)0, (char*)0, (int*)0 };
11611
11612 static KmParInt _GEANT_RZ_PURGE_NKEEP_type = { (char*)0, (char*)0,
11613 (char*)0, (char*)0, 0 };
11614 static KmParameter _GEANT_RZ_PURGE_NKEEP = { "NKEEP", 5,
11615 "Number of cycles to keep", "1", (char*)0, 8, 0, (char**)0, 0, (char**)0,
11616 (KmParFlag)0, KmTYPE_INT, &_GEANT_RZ_PURGE_NKEEP_type };
11617 static KmParameter *_GEANT_RZ_PURGE_parameters[] = { &_GEANT_RZ_PURGE_NKEEP };
11618 static char *_GEANT_RZ_PURGE_guidance[] = { "Purge an RZ directory." };
11619 static KmCommand _GEANT_RZ_PURGE = { &_GEANT_RZ_SCR, "/GEANT/RZ/PURGE",
11620 "PURGE", 0, 2, 1, 0, _GEANT_RZ_PURGE_parameters, 0, 0, gxrz_, (IntFunc*)0,
11621 (SUBROUTINE*)0, (pCharFunc*)0, 1, _GEANT_RZ_PURGE_guidance, 0, (char**)0,
11622 (char*)0, (int*)0 };
11623
11624 static KmParameter _GEANT_RZ_LDIR_CHPATH = { "CHPATH", 6, "Path name", " ",
11625 (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
11626 (void*)0 };
11627 static KmParOption _GEANT_RZ_LDIR_CHOPT_type = { (char**)0, (int*)0, (int*)0 };
11628 static KmParameter _GEANT_RZ_LDIR_CHOPT = { "CHOPT", 5, "CHOPT", " ",
11629 (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_OPTION,
11630 &_GEANT_RZ_LDIR_CHOPT_type };
11631 static KmParameter *_GEANT_RZ_LDIR_parameters[] = { &_GEANT_RZ_LDIR_CHPATH,
11632 &_GEANT_RZ_LDIR_CHOPT };
11633 static char *_GEANT_RZ_LDIR_guidance[] = {
11634 "List the contents of a directory (memory or disk).",
11635 "To list all RZ files currently open, type 'LD //'." };
11636 static KmCommand _GEANT_RZ_LDIR = { &_GEANT_RZ_PURGE, "/GEANT/RZ/LDIR",
11637 "LDIR", 0, 2, 2, 0, _GEANT_RZ_LDIR_parameters, 0, 0, gxrz_, (IntFunc*)0,
11638 (SUBROUTINE*)0, (pCharFunc*)0, 2, _GEANT_RZ_LDIR_guidance, 0, (char**)0,
11639 (char*)0, (int*)0 };
11640
11641 static KmParameter _GEANT_RZ_OUT_OBJECT = { "OBJECT", 6, "Structure name",
11642 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
11643 KmTYPE_CHAR, (void*)0 };
11644 static KmParInt _GEANT_RZ_OUT_IDVERS_type = { (char*)0, (char*)0, (char*)0,
11645 (char*)0, 0 };
11646 static KmParameter _GEANT_RZ_OUT_IDVERS = { "IDVERS", 6, "Version number",
11647 "1", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
11648 &_GEANT_RZ_OUT_IDVERS_type };
11649 static KmParOption _GEANT_RZ_OUT_CHOPT_type = { (char**)0, (int*)0, (int*)0 };
11650 static KmParameter _GEANT_RZ_OUT_CHOPT = { "CHOPT", 5, "Option", " ",
11651 (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_OPTION,
11652 &_GEANT_RZ_OUT_CHOPT_type };
11653 static KmParameter *_GEANT_RZ_OUT_parameters[] = { &_GEANT_RZ_OUT_OBJECT,
11654 &_GEANT_RZ_OUT_IDVERS, &_GEANT_RZ_OUT_CHOPT };
11655 static char *_GEANT_RZ_OUT_guidance[] = {
11656 "Write data structure identified by OBJECT,IDVERS to RZ file.",
11657 " MATE write JMATE structure", " TMED write JTMED structure",
11658 " VOLU write JVOLUM structure", " ROTM write JROTM structure",
11659 " SETS write JSET structure", " PART write JPART structure",
11660 " SCAN write LSCAN structure", " INIT write all above data structures" };
11661 static KmCommand _GEANT_RZ_OUT = { &_GEANT_RZ_LDIR, "/GEANT/RZ/OUT", "OUT", 0,
11662 2, 3, 1, _GEANT_RZ_OUT_parameters, 0, 0, gxrz_, (IntFunc*)0, (SUBROUTINE*)0,
11663 (pCharFunc*)0, 9, _GEANT_RZ_OUT_guidance, 0, (char**)0, (char*)0, (int*)0 };
11664
11665 static KmParameter _GEANT_RZ_IN_OBJECT = { "OBJECT", 6, "Structure name",
11666 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
11667 KmTYPE_CHAR, (void*)0 };
11668 static KmParInt _GEANT_RZ_IN_IDVERS_type = { (char*)0, (char*)0, (char*)0,
11669 (char*)0, 0 };
11670 static KmParameter _GEANT_RZ_IN_IDVERS = { "IDVERS", 6, "Version number", "1",
11671 (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
11672 &_GEANT_RZ_IN_IDVERS_type };
11673 static KmParOption _GEANT_RZ_IN_CHOPT_type = { (char**)0, (int*)0, (int*)0 };
11674 static KmParameter _GEANT_RZ_IN_CHOPT = { "CHOPT", 5, "Option", " ", (char*)0,
11675 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_OPTION,
11676 &_GEANT_RZ_IN_CHOPT_type };
11677 static KmParameter *_GEANT_RZ_IN_parameters[] = { &_GEANT_RZ_IN_OBJECT,
11678 &_GEANT_RZ_IN_IDVERS, &_GEANT_RZ_IN_CHOPT };
11679 static char *_GEANT_RZ_IN_guidance[] = {
11680 "Read data structure identified by OBJECT,IDVERS into memory.",
11681 " MATE read JMATE structure", " TMED read JTMED structure",
11682 " VOLU read JVOLUM structure", " ROTM read JROTM structure",
11683 " SETS read JSET structure", " PART read JPART structure",
11684 " SCAN read LSCAN structure", " INIT read all above data structures" };
11685 static KmCommand _GEANT_RZ_IN = { &_GEANT_RZ_OUT, "/GEANT/RZ/IN", "IN", 0, 2,
11686 3, 1, _GEANT_RZ_IN_parameters, 0, 0, gxrz_, (IntFunc*)0, (SUBROUTINE*)0,
11687 (pCharFunc*)0, 9, _GEANT_RZ_IN_guidance, 0, (char**)0, (char*)0, (int*)0 };
11688
11689 static KmParameter _GEANT_RZ_CDIR_CHPATH = { "CHPATH", 6, "Path name", " ",
11690 (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
11691 (void*)0 };
11692 static KmParOption _GEANT_RZ_CDIR_CHOPT_type = { (char**)0, (int*)0, (int*)0 };
11693 static KmParameter _GEANT_RZ_CDIR_CHOPT = { "CHOPT", 5, "CHOPT", " ",
11694 (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_OPTION,
11695 &_GEANT_RZ_CDIR_CHOPT_type };
11696 static KmParameter *_GEANT_RZ_CDIR_parameters[] = { &_GEANT_RZ_CDIR_CHPATH,
11697 &_GEANT_RZ_CDIR_CHOPT };
11698 static char *_GEANT_RZ_CDIR_guidance[] = {
11699 "Change or print the current directory.",
11700 " Ex. CD dir1 ; make DIR1 the new CWD",
11701 " CD //file1/dir2 ; make //FILE1/DIR2 the new CWD",
11702 " CD ; print the name of the CWD" };
11703 static KmCommand _GEANT_RZ_CDIR = { &_GEANT_RZ_IN, "/GEANT/RZ/CDIR", "CDIR",
11704 0, 2, 2, 0, _GEANT_RZ_CDIR_parameters, 0, 0, gxrz_, (IntFunc*)0,
11705 (SUBROUTINE*)0, (pCharFunc*)0, 4, _GEANT_RZ_CDIR_guidance, 0, (char**)0,
11706 (char*)0, (int*)0 };
11707
11708 static KmParameter _GEANT_RZ_MDIR_CHDIR = { "CHDIR", 5, "Directory name",
11709 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
11710 KmTYPE_CHAR, (void*)0 };
11711 static KmParOption _GEANT_RZ_MDIR_CHOPT_type = { (char**)0, (int*)0, (int*)0 };
11712 static KmParameter _GEANT_RZ_MDIR_CHOPT = { "CHOPT", 5, "Options", " ",
11713 (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_OPTION,
11714 &_GEANT_RZ_MDIR_CHOPT_type };
11715 static KmParameter *_GEANT_RZ_MDIR_parameters[] = { &_GEANT_RZ_MDIR_CHDIR,
11716 &_GEANT_RZ_MDIR_CHOPT };
11717 static char *_GEANT_RZ_MDIR_guidance[] = {
11718 "To create a new RZ directory below the current directory.", "with",
11719 " RZTAGS(1)='Object'", " RZTAGS(2)='Idvers-NR '" };
11720 static KmCommand _GEANT_RZ_MDIR = { &_GEANT_RZ_CDIR, "/GEANT/RZ/MDIR", "MDIR",
11721 0, 2, 2, 1, _GEANT_RZ_MDIR_parameters, 0, 0, gxrz_, (IntFunc*)0,
11722 (SUBROUTINE*)0, (pCharFunc*)0, 4, _GEANT_RZ_MDIR_guidance, 0, (char**)0,
11723 (char*)0, (int*)0 };
11724
11725 static KmParInt _GEANT_RZ_REND_LUNRZ_type = { (char*)0, (char*)0, (char*)0,
11726 (char*)0, 0 };
11727 static KmParameter _GEANT_RZ_REND_LUNRZ = { "LUNRZ", 5, "Logical unit number",
11728 (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
11729 &_GEANT_RZ_REND_LUNRZ_type };
11730 static KmParameter *_GEANT_RZ_REND_parameters[] = { &_GEANT_RZ_REND_LUNRZ };
11731 static char *_GEANT_RZ_REND_guidance[] = {
11732 "Close an RZ file opened by GRFILE on logical unit LUNRZ.",
11733 " CALL GREND(LUNRZ)" };
11734 static KmCommand _GEANT_RZ_REND = { &_GEANT_RZ_MDIR, "/GEANT/RZ/REND", "REND",
11735 0, 2, 1, 1, _GEANT_RZ_REND_parameters, 0, 0, gxrz_, (IntFunc*)0,
11736 (SUBROUTINE*)0, (pCharFunc*)0, 2, _GEANT_RZ_REND_guidance, 0, (char**)0,
11737 (char*)0, (int*)0 };
11738
11739 static KmParInt _GEANT_RZ_FILE_LUN_type = { (char*)0, (char*)0, (char*)0,
11740 (char*)0, 0 };
11741 static KmParameter _GEANT_RZ_FILE_LUN = { "LUN", 3, "Logical unit number",
11742 (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
11743 &_GEANT_RZ_FILE_LUN_type };
11744 static KmParameter _GEANT_RZ_FILE_FNAME = { "FNAME", 5, "File name", (char*)0,
11745 (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
11746 (void*)0 };
11747 static char *_GEANT_RZ_FILE_CHOPT_range[] = { " ", "A", "N", "U" };
11748 static char *_GEANT_RZ_FILE_CHOPT_text[] = { (char*)0, (char*)0, (char*)0,
11749 (char*)0 };
11750 static KmParOption _GEANT_RZ_FILE_CHOPT_type = { _GEANT_RZ_FILE_CHOPT_text,
11751 (int*)0, (int*)0 };
11752 static KmParameter _GEANT_RZ_FILE_CHOPT = { "CHOPT", 5, "Options", " ",
11753 (char*)0, 8, 4, _GEANT_RZ_FILE_CHOPT_range, 4, _GEANT_RZ_FILE_CHOPT_range,
11754 (KmParFlag)0, KmTYPE_OPTION, &_GEANT_RZ_FILE_CHOPT_type };
11755 static KmParameter *_GEANT_RZ_FILE_parameters[] = { &_GEANT_RZ_FILE_LUN,
11756 &_GEANT_RZ_FILE_FNAME, &_GEANT_RZ_FILE_CHOPT };
11757 static char *_GEANT_RZ_FILE_guidance[] = { "Open a GRZ file.",
11758 " CHOPT=' ' readonly mode", " CHOPT='U' update mode",
11759 " CHOPT='N' create new file",
11760 " CHOPT='I' Read all structures from existing file",
11761 " CHOPT='O' Write all structures on file" };
11762 static KmCommand _GEANT_RZ_FILE = { &_GEANT_RZ_REND, "/GEANT/RZ/FILE", "FILE",
11763 0, 2, 3, 2, _GEANT_RZ_FILE_parameters, 0, 0, gxrz_, (IntFunc*)0,
11764 (SUBROUTINE*)0, (pCharFunc*)0, 6, _GEANT_RZ_FILE_guidance, 0, (char**)0,
11765 (char*)0, (int*)0 };
11766
11767 static KmParInt _GEANT_RZ_PQUEST_IQ1_type = { (char*)0, (char*)0, (char*)0,
11768 (char*)0, 0 };
11769 static KmParameter _GEANT_RZ_PQUEST_IQ1 = { "IQ1", 3,
11770 "Lower limit for IQ index", "1", (char*)0, 8, 0, (char**)0, 0, (char**)0,
11771 (KmParFlag)0, KmTYPE_INT, &_GEANT_RZ_PQUEST_IQ1_type };
11772 static KmParInt _GEANT_RZ_PQUEST_IQ2_type = { (char*)0, (char*)0, (char*)0,
11773 (char*)0, 0 };
11774 static KmParameter _GEANT_RZ_PQUEST_IQ2 = { "IQ2", 3,
11775 "Upper limit for IQ index", "20", (char*)0, 8, 0, (char**)0, 0, (char**)0,
11776 (KmParFlag)0, KmTYPE_INT, &_GEANT_RZ_PQUEST_IQ2_type };
11777 static KmParameter *_GEANT_RZ_PQUEST_parameters[] = { &_GEANT_RZ_PQUEST_IQ1,
11778 &_GEANT_RZ_PQUEST_IQ2 };
11779 static char *_GEANT_RZ_PQUEST_guidance[] = {
11780 "Print the array IQUEST in /QUEST/." };
11781 static KmCommand _GEANT_RZ_PQUEST = { &_GEANT_RZ_FILE, "/GEANT/RZ/PQUEST",
11782 "PQUEST", 0, 2, 2, 0, _GEANT_RZ_PQUEST_parameters, 0, 0, gxrz_, (IntFunc*)0,
11783 (SUBROUTINE*)0, (pCharFunc*)0, 1, _GEANT_RZ_PQUEST_guidance, 0, (char**)0,
11784 (char*)0, (int*)0 };
11785
11786 static char *_GEANT_RZ_guidance[] = { "ZEBRA/RZ commands." };
11787 static KmMenu _GEANT_RZ = { (KmMenu*)0, (KmMenu*)0, "/GEANT/RZ", "RZ", 2,
11788 &_GEANT_RZ_PQUEST, 1, _GEANT_RZ_guidance };
11789
11790 static KmMenu _GEANT = { (KmMenu*)0, &_GEANT_RZ, "/GEANT", "GEANT", 1,
11791 (KmCommand*)0, 0, (char**)0 };
11792
11793 klnkmenu( &_GEANT, 921023 );
11794 }
11795
11796
11797 #ifdef F77_LCASE
11798 # define gkscan_ gkscan
11799 # define gxscan_ gxscan
11800 #endif
11801
11802 #ifdef F77_UCASE
11803 # define gkscan_ GKSCAN
11804 # define gxscan_ GXSCAN
11805 #endif
11806
11807 #ifdef IBM370
11808 # pragma linkage(GKSCAN,FORTRAN)
11809 # pragma linkage(GXSCAN,FORTRAN)
11810 #endif
11811
11812 extern void gkscan_();
11813 extern void gxscan_();
11814
11815 void gkscan_()
11816 {
11817
11818 static KmParInt _GEANT_SCAN_HSCAN_IDPHI_type = { (char*)0, (char*)0,
11819 (char*)0, (char*)0, 0 };
11820 static KmParameter _GEANT_SCAN_HSCAN_IDPHI = { "IDPHI", 5,
11821 "Histogram/phi identifier", "1000", (char*)0, 8, 0, (char**)0, 0, (char**)0,
11822 (KmParFlag)0, KmTYPE_INT, &_GEANT_SCAN_HSCAN_IDPHI_type };
11823 static KmParameter _GEANT_SCAN_HSCAN_VOLUME = { "VOLUME", 6, "Volume name",
11824 "XXXX", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
11825 (void*)0 };
11826 static char *_GEANT_SCAN_HSCAN_CHOPT_range[] = { " ", "O", "P", "I", "X", "L"
11827 };
11828 static char *_GEANT_SCAN_HSCAN_CHOPT_text[] = { (char*)0, (char*)0, (char*)0,
11829 (char*)0, (char*)0, (char*)0 };
11830 static KmParOption _GEANT_SCAN_HSCAN_CHOPT_type = {
11831 _GEANT_SCAN_HSCAN_CHOPT_text, (int*)0, (int*)0 };
11832 static KmParameter _GEANT_SCAN_HSCAN_CHOPT = { "CHOPT", 5, "List of options",
11833 "OPX", (char*)0, 8, 6, _GEANT_SCAN_HSCAN_CHOPT_range, 6,
11834 _GEANT_SCAN_HSCAN_CHOPT_range, (KmParFlag)0, KmTYPE_OPTION,
11835 &_GEANT_SCAN_HSCAN_CHOPT_type };
11836 static KmParameter *_GEANT_SCAN_HSCAN_parameters[] = {
11837 &_GEANT_SCAN_HSCAN_IDPHI, &_GEANT_SCAN_HSCAN_VOLUME, &_GEANT_SCAN_HSCAN_CHOPT
11838 };
11839 static char *_GEANT_SCAN_HSCAN_guidance[] = {
11840 "Generates and plots an histogram of physics quantities such as",
11841 "the total number of radiation lengths or interaction lengths",
11842 "as a function of the SCAN parameter TETA for a given value of PHI.",
11843 " CHOPT='O' histogram is generated at Exit of VOLUME.",
11844 " CHOPT='I' histogram is generated at Entry of VOLUME.",
11845 " CHOPT='X' radiation lengths", " CHOPT='L' Interaction lengths",
11846 " CHOPT='P' Plot the histogram", "If VOLUME='XXXX' Mother volume is used.",
11847 "The histogram identifier IDPHI is used to also identify which",
11848 "PHI division to plot: IPHI=MOD(IDPHI,1000).",
11849 "If IPHI=0, then all PHI divisions are generated (not plotted)",
11850 "with histogram identifiers IDPHI+PHI division number." };
11851 static KmCommand _GEANT_SCAN_HSCAN = { (KmCommand*)0, "/GEANT/SCAN/HSCAN",
11852 "HSCAN", 0, 2, 3, 1, _GEANT_SCAN_HSCAN_parameters, 0, 0, gxscan_,
11853 (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 13, _GEANT_SCAN_HSCAN_guidance,
11854 0, (char**)0, (char*)0, (int*)0 };
11855
11856 static KmParInt _GEANT_SCAN_LSCAN_ID_type = { (char*)0, (char*)0, (char*)0,
11857 (char*)0, 0 };
11858 static KmParameter _GEANT_SCAN_LSCAN_ID = { "ID", 2, "Lego plot identifier",
11859 "2000", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
11860 &_GEANT_SCAN_LSCAN_ID_type };
11861 static KmParameter _GEANT_SCAN_LSCAN_VOLUME = { "VOLUME", 6, "Volume name",
11862 "XXXX", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
11863 (void*)0 };
11864 static char *_GEANT_SCAN_LSCAN_CHOPT_range[] = { " ", "O", "P", "I", "X", "L"
11865 };
11866 static char *_GEANT_SCAN_LSCAN_CHOPT_text[] = { (char*)0, (char*)0, (char*)0,
11867 (char*)0, (char*)0, (char*)0 };
11868 static KmParOption _GEANT_SCAN_LSCAN_CHOPT_type = {
11869 _GEANT_SCAN_LSCAN_CHOPT_text, (int*)0, (int*)0 };
11870 static KmParameter _GEANT_SCAN_LSCAN_CHOPT = { "CHOPT", 5, "List of options",
11871 "OPX", (char*)0, 8, 6, _GEANT_SCAN_LSCAN_CHOPT_range, 6,
11872 _GEANT_SCAN_LSCAN_CHOPT_range, (KmParFlag)0, KmTYPE_OPTION,
11873 &_GEANT_SCAN_LSCAN_CHOPT_type };
11874 static KmParameter *_GEANT_SCAN_LSCAN_parameters[] = { &_GEANT_SCAN_LSCAN_ID,
11875 &_GEANT_SCAN_LSCAN_VOLUME, &_GEANT_SCAN_LSCAN_CHOPT };
11876 static char *_GEANT_SCAN_LSCAN_guidance[] = {
11877 "Generates and plot a table of physics quantities such as",
11878 "the total number of radiation lengths or interaction lengths",
11879 "in function of the SCAN parameters TETA,PHI.",
11880 " CHOPT='O' table is generated at Exit of VOLUME.",
11881 " CHOPT='I' table is generated at Entry of VOLUME.",
11882 " CHOPT='X' radiation lengths", " CHOPT='L' Interaction lengths",
11883 " CHOPT='P' Plot the table", "If VOLUME='XXXX' Mother volume is used." };
11884 static KmCommand _GEANT_SCAN_LSCAN = { &_GEANT_SCAN_HSCAN,
11885 "/GEANT/SCAN/LSCAN", "LSCAN", 0, 2, 3, 1, _GEANT_SCAN_LSCAN_parameters, 0, 0,
11886 gxscan_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 9,
11887 _GEANT_SCAN_LSCAN_guidance, 0, (char**)0, (char*)0, (int*)0 };
11888
11889 static KmParInt _GEANT_SCAN_PCUTS_IPARAM_type = { "0", "1", "0", "1", 0 };
11890 static KmParameter _GEANT_SCAN_PCUTS_IPARAM = { "IPARAM", 6,
11891 "Parametrization Flag", (char*)0, (char*)0, 2, 0, (char**)0, 0, (char**)0,
11892 (KmParFlag)0, KmTYPE_INT, &_GEANT_SCAN_PCUTS_IPARAM_type };
11893 static KmParReal _GEANT_SCAN_PCUTS_PCUTGA_type = { (char*)0, (char*)0,
11894 (char*)0, (char*)0, 0 };
11895 static KmParameter _GEANT_SCAN_PCUTS_PCUTGA = { "PCUTGA", 6,
11896 "Parametrization Cut for gammas", (char*)0, (char*)0, 12, 0, (char**)0, 0,
11897 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_SCAN_PCUTS_PCUTGA_type };
11898 static KmParReal _GEANT_SCAN_PCUTS_PCUTEL_type = { (char*)0, (char*)0,
11899 (char*)0, (char*)0, 0 };
11900 static KmParameter _GEANT_SCAN_PCUTS_PCUTEL = { "PCUTEL", 6,
11901 "Parametrization Cut for electrons", (char*)0, (char*)0, 12, 0, (char**)0, 0,
11902 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_SCAN_PCUTS_PCUTEL_type };
11903 static KmParReal _GEANT_SCAN_PCUTS_PCUTHA_type = { (char*)0, (char*)0,
11904 (char*)0, (char*)0, 0 };
11905 static KmParameter _GEANT_SCAN_PCUTS_PCUTHA = { "PCUTHA", 6,
11906 "Parametrization Cut for charged hadrons", (char*)0, (char*)0, 12, 0,
11907 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
11908 &_GEANT_SCAN_PCUTS_PCUTHA_type };
11909 static KmParReal _GEANT_SCAN_PCUTS_PCUTNE_type = { (char*)0, (char*)0,
11910 (char*)0, (char*)0, 0 };
11911 static KmParameter _GEANT_SCAN_PCUTS_PCUTNE = { "PCUTNE", 6,
11912 "Parametrization Cut for neutral hadrons", (char*)0, (char*)0, 12, 0,
11913 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
11914 &_GEANT_SCAN_PCUTS_PCUTNE_type };
11915 static KmParReal _GEANT_SCAN_PCUTS_PCUTMU_type = { (char*)0, (char*)0,
11916 (char*)0, (char*)0, 0 };
11917 static KmParameter _GEANT_SCAN_PCUTS_PCUTMU = { "PCUTMU", 6,
11918 "Parametrization Cut for muons", (char*)0, (char*)0, 12, 0, (char**)0, 0,
11919 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_SCAN_PCUTS_PCUTMU_type };
11920 static KmParameter *_GEANT_SCAN_PCUTS_parameters[] = {
11921 &_GEANT_SCAN_PCUTS_IPARAM, &_GEANT_SCAN_PCUTS_PCUTGA,
11922 &_GEANT_SCAN_PCUTS_PCUTEL, &_GEANT_SCAN_PCUTS_PCUTHA,
11923 &_GEANT_SCAN_PCUTS_PCUTNE, &_GEANT_SCAN_PCUTS_PCUTMU };
11924 static char *_GEANT_SCAN_PCUTS_guidance[] = {
11925 "Control parametrization at tracking time.",
11926 " IPARAM=0 No parametrization is performed",
11927 " IPARAM=1 Parametrization is performed",
11928 "If parametrization is active and a particle falls below its",
11929 "parametrization cut, then the particle will be replaced by",
11930 "a parametrized shower which will be tracked in the SCAN", "geometry." };
11931 static KmCommand _GEANT_SCAN_PCUTS = { &_GEANT_SCAN_LSCAN,
11932 "/GEANT/SCAN/PCUTS", "PCUTS", 0, 2, 6, 0, _GEANT_SCAN_PCUTS_parameters, 0, 0,
11933 gxscan_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 7,
11934 _GEANT_SCAN_PCUTS_guidance, 0, (char**)0, (char*)0, (int*)0 };
11935
11936 static char *_GEANT_SCAN_STURN_CHOPT_range[] = { "ON", "OFF", "INIT" };
11937 static char *_GEANT_SCAN_STURN_CHOPT_text[] = { (char*)0, (char*)0, (char*)0 };
11938 static KmParOption _GEANT_SCAN_STURN_CHOPT_type = {
11939 _GEANT_SCAN_STURN_CHOPT_text, (int*)0, (int*)0 };
11940 static KmParameter _GEANT_SCAN_STURN_CHOPT = { "CHOPT", 5,
11941 "SCAN mode setting", (char*)0, (char*)0, 8, 3, _GEANT_SCAN_STURN_CHOPT_range,
11942 3, _GEANT_SCAN_STURN_CHOPT_range, (KmParFlag)0, KmTYPE_OPTION,
11943 &_GEANT_SCAN_STURN_CHOPT_type };
11944 static KmParameter *_GEANT_SCAN_STURN_parameters[] = {
11945 &_GEANT_SCAN_STURN_CHOPT };
11946 static char *_GEANT_SCAN_STURN_guidance[] = {
11947 "Switch on/off SCAN mode. If SCAN mode is on, SCAN geantinos",
11948 "are generated and tracked to fill (or complete) the current",
11949 "scan data structure. If SCAN mode is off, normal kinematics",
11950 "generation and tracking will take place. If INIT is given,",
11951 "the current SCAN data structure (if any) will be dropped",
11952 "and SCAN mode will be turned on." };
11953 static KmCommand _GEANT_SCAN_STURN = { &_GEANT_SCAN_PCUTS,
11954 "/GEANT/SCAN/STURN", "STURN", 0, 2, 1, 1, _GEANT_SCAN_STURN_parameters, 0, 0,
11955 gxscan_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 6,
11956 _GEANT_SCAN_STURN_guidance, 0, (char**)0, (char*)0, (int*)0 };
11957
11958 static KmParReal _GEANT_SCAN_SFACTORS_FACTX0_type = { (char*)0, (char*)0,
11959 (char*)0, (char*)0, 0 };
11960 static KmParameter _GEANT_SCAN_SFACTORS_FACTX0 = { "FACTX0", 6,
11961 "Scale factor for SX0", "100.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
11962 (KmParFlag)0, KmTYPE_REAL, &_GEANT_SCAN_SFACTORS_FACTX0_type };
11963 static KmParReal _GEANT_SCAN_SFACTORS_FACTL_type = { (char*)0, (char*)0,
11964 (char*)0, (char*)0, 0 };
11965 static KmParameter _GEANT_SCAN_SFACTORS_FACTL = { "FACTL", 5,
11966 "Scale factor for SL", "1000.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
11967 (KmParFlag)0, KmTYPE_REAL, &_GEANT_SCAN_SFACTORS_FACTL_type };
11968 static KmParReal _GEANT_SCAN_SFACTORS_FACTR_type = { (char*)0, (char*)0,
11969 (char*)0, (char*)0, 0 };
11970 static KmParameter _GEANT_SCAN_SFACTORS_FACTR = { "FACTR", 5,
11971 "Scale factor for R", "100.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
11972 (KmParFlag)0, KmTYPE_REAL, &_GEANT_SCAN_SFACTORS_FACTR_type };
11973 static KmParameter *_GEANT_SCAN_SFACTORS_parameters[] = {
11974 &_GEANT_SCAN_SFACTORS_FACTX0, &_GEANT_SCAN_SFACTORS_FACTL,
11975 &_GEANT_SCAN_SFACTORS_FACTR };
11976 static char *_GEANT_SCAN_SFACTORS_guidance[] = {
11977 "Set scale factors for SX0,SL and R. The given scale factors must be",
11978 "such that:", " SX0*FACTX0 < 2**15-1 (32767)",
11979 " SL*FACTL < 2**10-1 (1023)", " SR*FACTR < 2**17-1 (131071)" };
11980 static KmCommand _GEANT_SCAN_SFACTORS = { &_GEANT_SCAN_STURN,
11981 "/GEANT/SCAN/SFACTORS", "SFACTORS", 0, 2, 3, 3,
11982 _GEANT_SCAN_SFACTORS_parameters, 0, 0, gxscan_, (IntFunc*)0, (SUBROUTINE*)0,
11983 (pCharFunc*)0, 5, _GEANT_SCAN_SFACTORS_guidance, 0, (char**)0, (char*)0,
11984 (int*)0 };
11985
11986 static KmParReal _GEANT_SCAN_VERTEX_VX_type = { (char*)0, (char*)0,
11987 (char*)0, (char*)0, 0 };
11988 static KmParameter _GEANT_SCAN_VERTEX_VX = { "VX", 2, "Scan X-origin", "0.",
11989 (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
11990 &_GEANT_SCAN_VERTEX_VX_type };
11991 static KmParReal _GEANT_SCAN_VERTEX_VY_type = { (char*)0, (char*)0,
11992 (char*)0, (char*)0, 0 };
11993 static KmParameter _GEANT_SCAN_VERTEX_VY = { "VY", 2, "Scan Y-origin", "0.",
11994 (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
11995 &_GEANT_SCAN_VERTEX_VY_type };
11996 static KmParReal _GEANT_SCAN_VERTEX_VZ_type = { (char*)0, (char*)0,
11997 (char*)0, (char*)0, 0 };
11998 static KmParameter _GEANT_SCAN_VERTEX_VZ = { "VZ", 2, "Scan Z-origin", "0.",
11999 (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
12000 &_GEANT_SCAN_VERTEX_VZ_type };
12001 static KmParameter *_GEANT_SCAN_VERTEX_parameters[] = {
12002 &_GEANT_SCAN_VERTEX_VX, &_GEANT_SCAN_VERTEX_VY, &_GEANT_SCAN_VERTEX_VZ };
12003 static char *_GEANT_SCAN_VERTEX_guidance[] = {
12004 "All Geantinos tracked will start from position VX,VY,VZ." };
12005 static KmCommand _GEANT_SCAN_VERTEX = { &_GEANT_SCAN_SFACTORS,
12006 "/GEANT/SCAN/VERTEX", "VERTEX", 0, 2, 3, 3, _GEANT_SCAN_VERTEX_parameters, 0,
12007 0, gxscan_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
12008 _GEANT_SCAN_VERTEX_guidance, 0, (char**)0, (char*)0, (int*)0 };
12009
12010 static KmParameter _GEANT_SCAN_SLIST_LIST = { "LIST", 4,
12011 "List of master volumes", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
12012 (KmParFlag)0, KmTYPE_CHAR, (void*)0 };
12013 static KmParameter *_GEANT_SCAN_SLIST_parameters[] = { &_GEANT_SCAN_SLIST_LIST
12014 };
12015 static char *_GEANT_SCAN_SLIST_guidance[] = {
12016 "Only boundary crossings of volumes given in LIST will be seen",
12017 "in the SCAN geometry. If no parameters are given, the current",
12018 "SCAN volumes will be listed. If a full stop (.) is given, the list",
12019 "of scan volumes will be erased." };
12020 static KmCommand _GEANT_SCAN_SLIST = { &_GEANT_SCAN_VERTEX,
12021 "/GEANT/SCAN/SLIST", "SLIST", 0, 2, 1, 1, _GEANT_SCAN_SLIST_parameters, 0, 0,
12022 gxscan_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
12023 _GEANT_SCAN_SLIST_guidance, 0, (char**)0, (char*)0, (int*)0 };
12024
12025 static KmParInt _GEANT_SCAN_TETA_NTETA_type = { (char*)0, (char*)0,
12026 (char*)0, (char*)0, 0 };
12027 static KmParameter _GEANT_SCAN_TETA_NTETA = { "NTETA", 5,
12028 "Number of TETA divisions", "90", (char*)0, 8, 0, (char**)0, 0, (char**)0,
12029 (KmParFlag)0, KmTYPE_INT, &_GEANT_SCAN_TETA_NTETA_type };
12030 static KmParReal _GEANT_SCAN_TETA_TETMIN_type = { (char*)0, (char*)0,
12031 (char*)0, (char*)0, 0 };
12032 static KmParameter _GEANT_SCAN_TETA_TETMIN = { "TETMIN", 6,
12033 "Minimum value of TETA", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
12034 (KmParFlag)0, KmTYPE_REAL, &_GEANT_SCAN_TETA_TETMIN_type };
12035 static KmParReal _GEANT_SCAN_TETA_TETMAX_type = { (char*)0, (char*)0,
12036 (char*)0, (char*)0, 0 };
12037 static KmParameter _GEANT_SCAN_TETA_TETMAX = { "TETMAX", 6,
12038 "Maximum value of TETA", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
12039 (KmParFlag)0, KmTYPE_REAL, &_GEANT_SCAN_TETA_TETMAX_type };
12040 static KmParInt _GEANT_SCAN_TETA_DIVTYP_type = { "1", "3", "1", "3", 0 };
12041 static KmParameter _GEANT_SCAN_TETA_DIVTYP = { "DIVTYP", 6,
12042 "Type of TETA division", (char*)0, (char*)0, 2, 0, (char**)0, 0, (char**)0,
12043 (KmParFlag)0, KmTYPE_INT, &_GEANT_SCAN_TETA_DIVTYP_type };
12044 static KmParameter *_GEANT_SCAN_TETA_parameters[] = { &_GEANT_SCAN_TETA_NTETA,
12045 &_GEANT_SCAN_TETA_TETMIN, &_GEANT_SCAN_TETA_TETMAX, &_GEANT_SCAN_TETA_DIVTYP
12046 };
12047 static char *_GEANT_SCAN_TETA_guidance[] = {
12048 "To specify number of divisions along TETA.",
12049 "If DIVTYP=1 divisions in pseudo-rapidity ETA.",
12050 "If DIVTYP=2 divisions in degrees following the THETA angle.",
12051 "If DIVTYP=3 divisions in cos(TETA).",
12052 "If no parameter is given, the current values of the parameters",
12053 "are displayed." };
12054 static KmCommand _GEANT_SCAN_TETA = { &_GEANT_SCAN_SLIST, "/GEANT/SCAN/TETA",
12055 "TETA", 0, 2, 4, 1, _GEANT_SCAN_TETA_parameters, 0, 0, gxscan_, (IntFunc*)0,
12056 (SUBROUTINE*)0, (pCharFunc*)0, 6, _GEANT_SCAN_TETA_guidance, 0, (char**)0,
12057 (char*)0, (int*)0 };
12058
12059 static KmParInt _GEANT_SCAN_PHI_NPHI_type = { (char*)0, (char*)0, (char*)0,
12060 (char*)0, 0 };
12061 static KmParameter _GEANT_SCAN_PHI_NPHI = { "NPHI", 4,
12062 "Number of PHI divisions", "90", (char*)0, 8, 0, (char**)0, 0, (char**)0,
12063 (KmParFlag)0, KmTYPE_INT, &_GEANT_SCAN_PHI_NPHI_type };
12064 static KmParReal _GEANT_SCAN_PHI_PHIMIN_type = { "0.", "360.", "0.", "360.",
12065 0 };
12066 static KmParameter _GEANT_SCAN_PHI_PHIMIN = { "PHIMIN", 6,
12067 "Minimum PHI in degrees", "0.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
12068 (KmParFlag)0, KmTYPE_REAL, &_GEANT_SCAN_PHI_PHIMIN_type };
12069 static KmParReal _GEANT_SCAN_PHI_PHIMAX_type = { "0.", "360.", "0.", "360.",
12070 0 };
12071 static KmParameter _GEANT_SCAN_PHI_PHIMAX = { "PHIMAX", 6,
12072 "Maximum PHI in degrees", "360.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
12073 (KmParFlag)0, KmTYPE_REAL, &_GEANT_SCAN_PHI_PHIMAX_type };
12074 static KmParameter *_GEANT_SCAN_PHI_parameters[] = { &_GEANT_SCAN_PHI_NPHI,
12075 &_GEANT_SCAN_PHI_PHIMIN, &_GEANT_SCAN_PHI_PHIMAX };
12076 static char *_GEANT_SCAN_PHI_guidance[] = {
12077 "To specify number of divisions along PHI. If no parameter is",
12078 "given, the current values of the parameters are displayed." };
12079 static KmCommand _GEANT_SCAN_PHI = { &_GEANT_SCAN_TETA, "/GEANT/SCAN/PHI",
12080 "PHI", 0, 2, 3, 1, _GEANT_SCAN_PHI_parameters, 0, 0, gxscan_, (IntFunc*)0,
12081 (SUBROUTINE*)0, (pCharFunc*)0, 2, _GEANT_SCAN_PHI_guidance, 0, (char**)0,
12082 (char*)0, (int*)0 };
12083
12084 static char *_GEANT_SCAN_guidance[] = {
12085 "To define parameters for the SCAN geometry. If the routine GUSTEP",
12086 "and GUKINE are properly instrumented (see examples in GEANX),",
12087 "when the TRI command is entered NTETA Geantinos will be",
12088 "tracked through the real detector starting at the vertex position",
12089 "defined by the command vertex. A simplified version of the geometry",
12090 "is automatically generated in (ETA,PHI) or (THETA,PHI) following",
12091 "the option given in the command TETA. The data structure LSCAN",
12092 "generated may be saved on an RZ file for subsequent processing.",
12093 "This data structure may be used for fast parametrization techniques." };
12094 static KmMenu _GEANT_SCAN = { (KmMenu*)0, (KmMenu*)0, "/GEANT/SCAN", "SCAN",
12095 2, &_GEANT_SCAN_PHI, 9, _GEANT_SCAN_guidance };
12096
12097 static KmMenu _GEANT = { (KmMenu*)0, &_GEANT_SCAN, "/GEANT", "GEANT", 1,
12098 (KmCommand*)0, 0, (char**)0 };
12099
12100 klnkmenu( &_GEANT, 921023 );
12101 }
12102
12103
12104 #ifdef F77_LCASE
12105 # define gkphys_ gkphys
12106 # define gxphys_ gxphys
12107 #endif
12108
12109 #ifdef F77_UCASE
12110 # define gkphys_ GKPHYS
12111 # define gxphys_ GXPHYS
12112 #endif
12113
12114 #ifdef IBM370
12115 # pragma linkage(GKPHYS,FORTRAN)
12116 # pragma linkage(GXPHYS,FORTRAN)
12117 #endif
12118
12119 extern void gkphys_();
12120 extern void gxphys_();
12121
12122 void gkphys_()
12123 {
12124
12125 static char *_GEANT_PHYSICS_PHYSI_guidance[] = {
12126 "Call the GEANT initialisation routine GPHYSI to recompute",
12127 "the tables of cross-sections and energy loss. This command",
12128 "must be invoked after CUTS, LOSS or ERAN commands." };
12129 static KmCommand _GEANT_PHYSICS_PHYSI = { (KmCommand*)0,
12130 "/GEANT/PHYSICS/PHYSI", "PHYSI", 0, 2, 0, 0, (KmParameter**)0, 0, 0, gxphys_,
12131 (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_PHYSICS_PHYSI_guidance,
12132 0, (char**)0, (char*)0, (int*)0 };
12133
12134 static KmParInt _GEANT_PHYSICS_DRPRT_IPART_type = { (char*)0, (char*)0,
12135 (char*)0, (char*)0, 0 };
12136 static KmParameter _GEANT_PHYSICS_DRPRT_IPART = { "IPART", 5,
12137 "GEANT particle number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
12138 (KmParFlag)0, KmTYPE_INT, &_GEANT_PHYSICS_DRPRT_IPART_type };
12139 static KmParInt _GEANT_PHYSICS_DRPRT_IMATE_type = { (char*)0, (char*)0,
12140 (char*)0, (char*)0, 0 };
12141 static KmParameter _GEANT_PHYSICS_DRPRT_IMATE = { "IMATE", 5,
12142 "GEANT material number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
12143 (KmParFlag)0, KmTYPE_INT, &_GEANT_PHYSICS_DRPRT_IMATE_type };
12144 static KmParReal _GEANT_PHYSICS_DRPRT_STEP_type = { (char*)0, (char*)0,
12145 (char*)0, (char*)0, 0 };
12146 static KmParameter _GEANT_PHYSICS_DRPRT_STEP = { "STEP", 4,
12147 "step length in centimeters", (char*)0, (char*)0, 12, 0, (char**)0, 0,
12148 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_DRPRT_STEP_type };
12149 static KmParInt _GEANT_PHYSICS_DRPRT_NPOINT_type = { "2", "100", "2",
12150 "100", 0 };
12151 static KmParameter _GEANT_PHYSICS_DRPRT_NPOINT = { "NPOINT", 6,
12152 "number of logarithmically spaced energy points", "10", (char*)0, 4, 0,
12153 (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
12154 &_GEANT_PHYSICS_DRPRT_NPOINT_type };
12155 static KmParameter *_GEANT_PHYSICS_DRPRT_parameters[] = {
12156 &_GEANT_PHYSICS_DRPRT_IPART, &_GEANT_PHYSICS_DRPRT_IMATE,
12157 &_GEANT_PHYSICS_DRPRT_STEP, &_GEANT_PHYSICS_DRPRT_NPOINT };
12158 static char *_GEANT_PHYSICS_DRPRT_guidance[] = {
12159 "This routine prints the relevant parameters linked with the energy loss",
12160 "fluctuation." };
12161 static KmCommand _GEANT_PHYSICS_DRPRT = { &_GEANT_PHYSICS_PHYSI,
12162 "/GEANT/PHYSICS/DRPRT", "DRPRT", 0, 2, 4, 3, _GEANT_PHYSICS_DRPRT_parameters,
12163 0, 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 2,
12164 _GEANT_PHYSICS_DRPRT_guidance, 0, (char**)0, (char*)0, (int*)0 };
12165
12166 static KmParReal _GEANT_PHYSICS_CUTS_CUTGAM_type = { (char*)0, (char*)0,
12167 (char*)0, (char*)0, 0 };
12168 static KmParameter _GEANT_PHYSICS_CUTS_CUTGAM = { "CUTGAM", 6,
12169 "Cut for gammas", "0.001", (char*)0, 12, 0, (char**)0, 0, (char**)0,
12170 (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_CUTS_CUTGAM_type };
12171 static KmParReal _GEANT_PHYSICS_CUTS_CUTELE_type = { (char*)0, (char*)0,
12172 (char*)0, (char*)0, 0 };
12173 static KmParameter _GEANT_PHYSICS_CUTS_CUTELE = { "CUTELE", 6,
12174 "Cut for electrons", "0.001", (char*)0, 12, 0, (char**)0, 0, (char**)0,
12175 (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_CUTS_CUTELE_type };
12176 static KmParReal _GEANT_PHYSICS_CUTS_CUTHAD_type = { (char*)0, (char*)0,
12177 (char*)0, (char*)0, 0 };
12178 static KmParameter _GEANT_PHYSICS_CUTS_CUTHAD = { "CUTHAD", 6,
12179 "Cut for charged hadrons", "0.01", (char*)0, 12, 0, (char**)0, 0, (char**)0,
12180 (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_CUTS_CUTHAD_type };
12181 static KmParReal _GEANT_PHYSICS_CUTS_CUTNEU_type = { (char*)0, (char*)0,
12182 (char*)0, (char*)0, 0 };
12183 static KmParameter _GEANT_PHYSICS_CUTS_CUTNEU = { "CUTNEU", 6,
12184 "Cut for neutral hadrons", "0.01", (char*)0, 12, 0, (char**)0, 0, (char**)0,
12185 (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_CUTS_CUTNEU_type };
12186 static KmParReal _GEANT_PHYSICS_CUTS_CUTMUO_type = { (char*)0, (char*)0,
12187 (char*)0, (char*)0, 0 };
12188 static KmParameter _GEANT_PHYSICS_CUTS_CUTMUO = { "CUTMUO", 6,
12189 "Cut for muons", "0.01", (char*)0, 12, 0, (char**)0, 0, (char**)0,
12190 (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_CUTS_CUTMUO_type };
12191 static KmParReal _GEANT_PHYSICS_CUTS_BCUTE_type = { (char*)0, (char*)0,
12192 (char*)0, (char*)0, 0 };
12193 static KmParameter _GEANT_PHYSICS_CUTS_BCUTE = { "BCUTE", 5,
12194 "Cut for electron brems.", "-1.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
12195 (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_CUTS_BCUTE_type };
12196 static KmParReal _GEANT_PHYSICS_CUTS_BCUTM_type = { (char*)0, (char*)0,
12197 (char*)0, (char*)0, 0 };
12198 static KmParameter _GEANT_PHYSICS_CUTS_BCUTM = { "BCUTM", 5,
12199 "Cut for muon brems.", "-1.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
12200 (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_CUTS_BCUTM_type };
12201 static KmParReal _GEANT_PHYSICS_CUTS_DCUTE_type = { (char*)0, (char*)0,
12202 (char*)0, (char*)0, 0 };
12203 static KmParameter _GEANT_PHYSICS_CUTS_DCUTE = { "DCUTE", 5,
12204 "Cut for electron delta-rays", "-1.", (char*)0, 12, 0, (char**)0, 0,
12205 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_CUTS_DCUTE_type };
12206 static KmParReal _GEANT_PHYSICS_CUTS_DCUTM_type = { (char*)0, (char*)0,
12207 (char*)0, (char*)0, 0 };
12208 static KmParameter _GEANT_PHYSICS_CUTS_DCUTM = { "DCUTM", 5,
12209 "Cut for muon delta-rays", "-1.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
12210 (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_CUTS_DCUTM_type };
12211 static KmParReal _GEANT_PHYSICS_CUTS_PPCUTM_type = { (char*)0, (char*)0,
12212 (char*)0, (char*)0, 0 };
12213 static KmParameter _GEANT_PHYSICS_CUTS_PPCUTM = { "PPCUTM", 6,
12214 "Cut for e+e- pairs by muons", "0.01", (char*)0, 12, 0, (char**)0, 0,
12215 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_CUTS_PPCUTM_type };
12216 static KmParReal _GEANT_PHYSICS_CUTS_TOFMAX_type = { (char*)0, (char*)0,
12217 (char*)0, (char*)0, 0 };
12218 static KmParameter _GEANT_PHYSICS_CUTS_TOFMAX = { "TOFMAX", 6,
12219 "Time of flight cut", "1.E+10", (char*)0, 12, 0, (char**)0, 0, (char**)0,
12220 (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_CUTS_TOFMAX_type };
12221 static KmParReal _GEANT_PHYSICS_CUTS_GCUTS_type = { (char*)0, (char*)0,
12222 (char*)0, (char*)0, 0 };
12223 static KmParameter _GEANT_PHYSICS_CUTS_GCUTS = { "GCUTS", 5, "5 user words",
12224 "0.", (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
12225 &_GEANT_PHYSICS_CUTS_GCUTS_type };
12226 static KmParameter *_GEANT_PHYSICS_CUTS_parameters[] = {
12227 &_GEANT_PHYSICS_CUTS_CUTGAM, &_GEANT_PHYSICS_CUTS_CUTELE,
12228 &_GEANT_PHYSICS_CUTS_CUTHAD, &_GEANT_PHYSICS_CUTS_CUTNEU,
12229 &_GEANT_PHYSICS_CUTS_CUTMUO, &_GEANT_PHYSICS_CUTS_BCUTE,
12230 &_GEANT_PHYSICS_CUTS_BCUTM, &_GEANT_PHYSICS_CUTS_DCUTE,
12231 &_GEANT_PHYSICS_CUTS_DCUTM, &_GEANT_PHYSICS_CUTS_PPCUTM,
12232 &_GEANT_PHYSICS_CUTS_TOFMAX, &_GEANT_PHYSICS_CUTS_GCUTS };
12233 static char *_GEANT_PHYSICS_CUTS_guidance[] = {
12234 "To change physics cuts. If no parameter is given, the list",
12235 "of the current cuts is printed.",
12236 " If the default values (-1.) for BCUTE ,BCUTM ,DCUTE ,DCUTM",
12237 " are not modified, they will be set to CUTGAM,CUTGAM,CUTELE,CUTELE",
12238 " respectively.", "If one of the parameters from CUTGAM to PPCUTM included",
12239 "is modified, cross-sections and energy loss tables must be",
12240 "recomputed via the command 'PHYSI'." };
12241 static KmCommand _GEANT_PHYSICS_CUTS = { &_GEANT_PHYSICS_DRPRT,
12242 "/GEANT/PHYSICS/CUTS", "CUTS", 0, 2, 12, 0, _GEANT_PHYSICS_CUTS_parameters,
12243 0, 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 8,
12244 _GEANT_PHYSICS_CUTS_guidance, 0, (char**)0, (char*)0, (int*)0 };
12245
12246 static char *_GEANT_PHYSICS_SYNC_ISYNC_range[] = { "0", "1" };
12247 static KmParInt _GEANT_PHYSICS_SYNC_ISYNC_type = { (char*)0, (char*)0,
12248 (char*)0, (char*)0, 0 };
12249 static KmParameter _GEANT_PHYSICS_SYNC_ISYNC = { "ISYNC", 5, "Flag ISYNC",
12250 "1", (char*)0, 8, 2, _GEANT_PHYSICS_SYNC_ISYNC_range, 2,
12251 _GEANT_PHYSICS_SYNC_ISYNC_range, (KmParFlag)0, KmTYPE_INT,
12252 &_GEANT_PHYSICS_SYNC_ISYNC_type };
12253 static KmParameter *_GEANT_PHYSICS_SYNC_parameters[] = {
12254 &_GEANT_PHYSICS_SYNC_ISYNC };
12255 static char *_GEANT_PHYSICS_SYNC_guidance[] = {
12256 "To control synchrotron radiation:", " ISYNC=0 no synchrotron radiation;",
12257 " =1 synchrotron radiation." };
12258 static KmCommand _GEANT_PHYSICS_SYNC = { &_GEANT_PHYSICS_CUTS,
12259 "/GEANT/PHYSICS/SYNC", "SYNC", 0, 2, 1, 0, _GEANT_PHYSICS_SYNC_parameters, 0,
12260 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
12261 _GEANT_PHYSICS_SYNC_guidance, 0, (char**)0, (char*)0, (int*)0 };
12262
12263 static char *_GEANT_PHYSICS_STRA_ISTRA_range[] = { "0", "1", "2" };
12264 static KmParInt _GEANT_PHYSICS_STRA_ISTRA_type = { (char*)0, (char*)0,
12265 (char*)0, (char*)0, 0 };
12266 static KmParameter _GEANT_PHYSICS_STRA_ISTRA = { "ISTRA", 5, "Flag ISTRA",
12267 "0", (char*)0, 8, 3, _GEANT_PHYSICS_STRA_ISTRA_range, 3,
12268 _GEANT_PHYSICS_STRA_ISTRA_range, (KmParFlag)0, KmTYPE_INT,
12269 &_GEANT_PHYSICS_STRA_ISTRA_type };
12270 static KmParameter *_GEANT_PHYSICS_STRA_parameters[] = {
12271 &_GEANT_PHYSICS_STRA_ISTRA };
12272 static char *_GEANT_PHYSICS_STRA_guidance[] = {
12273 "To control energy loss fluctuation model:", " ISTRA=0 Urban model;",
12274 " =1 PAI model;", " =2 PAI+ASHO model (not active at the moment)."
12275 };
12276 static KmCommand _GEANT_PHYSICS_STRA = { &_GEANT_PHYSICS_SYNC,
12277 "/GEANT/PHYSICS/STRA", "STRA", 0, 2, 1, 0, _GEANT_PHYSICS_STRA_parameters, 0,
12278 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
12279 _GEANT_PHYSICS_STRA_guidance, 0, (char**)0, (char*)0, (int*)0 };
12280
12281 static char *_GEANT_PHYSICS_RAYL_IRAYL_range[] = { "0", "1" };
12282 static KmParInt _GEANT_PHYSICS_RAYL_IRAYL_type = { (char*)0, (char*)0,
12283 (char*)0, (char*)0, 0 };
12284 static KmParameter _GEANT_PHYSICS_RAYL_IRAYL = { "IRAYL", 5, "Flag IRAYL",
12285 "1", (char*)0, 8, 2, _GEANT_PHYSICS_RAYL_IRAYL_range, 2,
12286 _GEANT_PHYSICS_RAYL_IRAYL_range, (KmParFlag)0, KmTYPE_INT,
12287 &_GEANT_PHYSICS_RAYL_IRAYL_type };
12288 static KmParameter *_GEANT_PHYSICS_RAYL_parameters[] = {
12289 &_GEANT_PHYSICS_RAYL_IRAYL };
12290 static char *_GEANT_PHYSICS_RAYL_guidance[] = {
12291 "To control Rayleigh scattering.", " IRAYL=0 no Rayleigh scattering.",
12292 " =1 Rayleigh." };
12293 static KmCommand _GEANT_PHYSICS_RAYL = { &_GEANT_PHYSICS_STRA,
12294 "/GEANT/PHYSICS/RAYL", "RAYL", 0, 2, 1, 0, _GEANT_PHYSICS_RAYL_parameters, 0,
12295 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
12296 _GEANT_PHYSICS_RAYL_guidance, 0, (char**)0, (char*)0, (int*)0 };
12297
12298 static char *_GEANT_PHYSICS_PHOT_IPHOT_range[] = { "0", "1", "2" };
12299 static KmParInt _GEANT_PHYSICS_PHOT_IPHOT_type = { (char*)0, (char*)0,
12300 (char*)0, (char*)0, 0 };
12301 static KmParameter _GEANT_PHYSICS_PHOT_IPHOT = { "IPHOT", 5, "Flag IPHOT",
12302 "1", (char*)0, 8, 3, _GEANT_PHYSICS_PHOT_IPHOT_range, 3,
12303 _GEANT_PHYSICS_PHOT_IPHOT_range, (KmParFlag)0, KmTYPE_INT,
12304 &_GEANT_PHYSICS_PHOT_IPHOT_type };
12305 static KmParameter *_GEANT_PHYSICS_PHOT_parameters[] = {
12306 &_GEANT_PHYSICS_PHOT_IPHOT };
12307 static char *_GEANT_PHYSICS_PHOT_guidance[] = { "To control Photo effect.",
12308 " IPHOT=0 no photo electric effect.",
12309 " =1 Photo effect. Electron processed.",
12310 " =2 Photo effect. No electron stored." };
12311 static KmCommand _GEANT_PHYSICS_PHOT = { &_GEANT_PHYSICS_RAYL,
12312 "/GEANT/PHYSICS/PHOT", "PHOT", 0, 2, 1, 0, _GEANT_PHYSICS_PHOT_parameters, 0,
12313 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
12314 _GEANT_PHYSICS_PHOT_guidance, 0, (char**)0, (char*)0, (int*)0 };
12315
12316 static char *_GEANT_PHYSICS_PFIS_IPFIS_range[] = { "0", "1", "2" };
12317 static KmParInt _GEANT_PHYSICS_PFIS_IPFIS_type = { (char*)0, (char*)0,
12318 (char*)0, (char*)0, 0 };
12319 static KmParameter _GEANT_PHYSICS_PFIS_IPFIS = { "IPFIS", 5, "Flag IPFIS",
12320 "1", (char*)0, 8, 3, _GEANT_PHYSICS_PFIS_IPFIS_range, 3,
12321 _GEANT_PHYSICS_PFIS_IPFIS_range, (KmParFlag)0, KmTYPE_INT,
12322 &_GEANT_PHYSICS_PFIS_IPFIS_type };
12323 static KmParameter *_GEANT_PHYSICS_PFIS_parameters[] = {
12324 &_GEANT_PHYSICS_PFIS_IPFIS };
12325 static char *_GEANT_PHYSICS_PFIS_guidance[] = {
12326 "To control photo fission mechanism.", " IPFIS=0 no photo fission.",
12327 " =1 Photo fission. secondaries processed.",
12328 " =2 Photo fission. No secondaries stored." };
12329 static KmCommand _GEANT_PHYSICS_PFIS = { &_GEANT_PHYSICS_PHOT,
12330 "/GEANT/PHYSICS/PFIS", "PFIS", 0, 2, 1, 0, _GEANT_PHYSICS_PFIS_parameters, 0,
12331 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
12332 _GEANT_PHYSICS_PFIS_guidance, 0, (char**)0, (char*)0, (int*)0 };
12333
12334 static char *_GEANT_PHYSICS_PAIR_IPAIR_range[] = { "0", "1", "2" };
12335 static KmParInt _GEANT_PHYSICS_PAIR_IPAIR_type = { (char*)0, (char*)0,
12336 (char*)0, (char*)0, 0 };
12337 static KmParameter _GEANT_PHYSICS_PAIR_IPAIR = { "IPAIR", 5, "Flag IPAIR",
12338 "1", (char*)0, 8, 3, _GEANT_PHYSICS_PAIR_IPAIR_range, 3,
12339 _GEANT_PHYSICS_PAIR_IPAIR_range, (KmParFlag)0, KmTYPE_INT,
12340 &_GEANT_PHYSICS_PAIR_IPAIR_type };
12341 static KmParameter *_GEANT_PHYSICS_PAIR_parameters[] = {
12342 &_GEANT_PHYSICS_PAIR_IPAIR };
12343 static char *_GEANT_PHYSICS_PAIR_guidance[] = {
12344 "To control pair production mechanism.", " IPAIR=0 no pair production.",
12345 " =1 Pair production. secondaries processed.",
12346 " =2 Pair production. No secondaries stored." };
12347 static KmCommand _GEANT_PHYSICS_PAIR = { &_GEANT_PHYSICS_PFIS,
12348 "/GEANT/PHYSICS/PAIR", "PAIR", 0, 2, 1, 0, _GEANT_PHYSICS_PAIR_parameters, 0,
12349 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
12350 _GEANT_PHYSICS_PAIR_guidance, 0, (char**)0, (char*)0, (int*)0 };
12351
12352 static char *_GEANT_PHYSICS_MUNU_IMUNU_range[] = { "0", "1", "2" };
12353 static KmParInt _GEANT_PHYSICS_MUNU_IMUNU_type = { (char*)0, (char*)0,
12354 (char*)0, (char*)0, 0 };
12355 static KmParameter _GEANT_PHYSICS_MUNU_IMUNU = { "IMUNU", 5, "Flag IMUNU",
12356 "1", (char*)0, 8, 3, _GEANT_PHYSICS_MUNU_IMUNU_range, 3,
12357 _GEANT_PHYSICS_MUNU_IMUNU_range, (KmParFlag)0, KmTYPE_INT,
12358 &_GEANT_PHYSICS_MUNU_IMUNU_type };
12359 static KmParameter *_GEANT_PHYSICS_MUNU_parameters[] = {
12360 &_GEANT_PHYSICS_MUNU_IMUNU };
12361 static char *_GEANT_PHYSICS_MUNU_guidance[] = {
12362 "To control muon nuclear interactions.",
12363 " IMUNU=0 no muon-nuclear interactions.",
12364 " =1 Nuclear interactions. Secondaries processed.",
12365 " =2 Nuclear interactions. Secondaries not processed." };
12366 static KmCommand _GEANT_PHYSICS_MUNU = { &_GEANT_PHYSICS_PAIR,
12367 "/GEANT/PHYSICS/MUNU", "MUNU", 0, 2, 1, 0, _GEANT_PHYSICS_MUNU_parameters, 0,
12368 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
12369 _GEANT_PHYSICS_MUNU_guidance, 0, (char**)0, (char*)0, (int*)0 };
12370
12371 static char *_GEANT_PHYSICS_MULS_IMULS_range[] = { "0", "1", "2", "3" };
12372 static KmParInt _GEANT_PHYSICS_MULS_IMULS_type = { (char*)0, (char*)0,
12373 (char*)0, (char*)0, 0 };
12374 static KmParameter _GEANT_PHYSICS_MULS_IMULS = { "IMULS", 5, "Flag IMULS",
12375 "1", (char*)0, 8, 4, _GEANT_PHYSICS_MULS_IMULS_range, 4,
12376 _GEANT_PHYSICS_MULS_IMULS_range, (KmParFlag)0, KmTYPE_INT,
12377 &_GEANT_PHYSICS_MULS_IMULS_type };
12378 static KmParameter *_GEANT_PHYSICS_MULS_parameters[] = {
12379 &_GEANT_PHYSICS_MULS_IMULS };
12380 static char *_GEANT_PHYSICS_MULS_guidance[] = {
12381 "To control multiple scattering.", " IMULS=0 no multiple scattering.",
12382 " =1 Moliere or Coulomb scattering.",
12383 " =2 Moliere or Coulomb scattering.", " =3 Gaussian scattering." };
12384 static KmCommand _GEANT_PHYSICS_MULS = { &_GEANT_PHYSICS_MUNU,
12385 "/GEANT/PHYSICS/MULS", "MULS", 0, 2, 1, 0, _GEANT_PHYSICS_MULS_parameters, 0,
12386 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 5,
12387 _GEANT_PHYSICS_MULS_guidance, 0, (char**)0, (char*)0, (int*)0 };
12388
12389 static char *_GEANT_PHYSICS_LOSS_ILOSS_range[] = { "0", "1", "2", "3", "4" };
12390 static KmParInt _GEANT_PHYSICS_LOSS_ILOSS_type = { (char*)0, (char*)0,
12391 (char*)0, (char*)0, 0 };
12392 static KmParameter _GEANT_PHYSICS_LOSS_ILOSS = { "ILOSS", 5, "Flag ILOSS",
12393 "2", (char*)0, 8, 5, _GEANT_PHYSICS_LOSS_ILOSS_range, 5,
12394 _GEANT_PHYSICS_LOSS_ILOSS_range, (KmParFlag)0, KmTYPE_INT,
12395 &_GEANT_PHYSICS_LOSS_ILOSS_type };
12396 static KmParameter *_GEANT_PHYSICS_LOSS_parameters[] = {
12397 &_GEANT_PHYSICS_LOSS_ILOSS };
12398 static char *_GEANT_PHYSICS_LOSS_guidance[] = { "To control energy loss.",
12399 " ILOSS=0 no energy loss;", " =1 restricted energy loss fluctuations;",
12400 " =2 complete energy loss fluctuations;", " =3 same as 1;",
12401 " =4 no energy loss fluctuations.",
12402 "If the value ILOSS is changed, then cross-sections and energy loss",
12403 "tables must be recomputed via the command 'PHYSI'." };
12404 static KmCommand _GEANT_PHYSICS_LOSS = { &_GEANT_PHYSICS_MULS,
12405 "/GEANT/PHYSICS/LOSS", "LOSS", 0, 2, 1, 0, _GEANT_PHYSICS_LOSS_parameters, 0,
12406 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 8,
12407 _GEANT_PHYSICS_LOSS_guidance, 0, (char**)0, (char*)0, (int*)0 };
12408
12409 static KmParInt _GEANT_PHYSICS_LABS_LABS_type = { (char*)0, (char*)0,
12410 (char*)0, (char*)0, 0 };
12411 static KmParameter _GEANT_PHYSICS_LABS_LABS = { "LABS", 4, "Flag LABS", "0",
12412 (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
12413 &_GEANT_PHYSICS_LABS_LABS_type };
12414 static KmParameter *_GEANT_PHYSICS_LABS_parameters[] = {
12415 &_GEANT_PHYSICS_LABS_LABS };
12416 static char *_GEANT_PHYSICS_LABS_guidance[] = {
12417 "To control absorbtion of Cerenkov photons:",
12418 " LABS=0 no absorbtion of photons;", " LABS=1 absorbtion of photons;" };
12419 static KmCommand _GEANT_PHYSICS_LABS = { &_GEANT_PHYSICS_LOSS,
12420 "/GEANT/PHYSICS/LABS", "LABS", 0, 2, 1, 0, _GEANT_PHYSICS_LABS_parameters, 0,
12421 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
12422 _GEANT_PHYSICS_LABS_guidance, 0, (char**)0, (char*)0, (int*)0 };
12423
12424 static KmParInt _GEANT_PHYSICS_HADR_IHADR_type = { (char*)0, (char*)0,
12425 (char*)0, (char*)0, 0 };
12426 static KmParameter _GEANT_PHYSICS_HADR_IHADR = { "IHADR", 5, "Flag IHADR",
12427 "1", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
12428 &_GEANT_PHYSICS_HADR_IHADR_type };
12429 static KmParameter *_GEANT_PHYSICS_HADR_parameters[] = {
12430 &_GEANT_PHYSICS_HADR_IHADR };
12431 static char *_GEANT_PHYSICS_HADR_guidance[] = {
12432 "To control hadronic interactions.", " IHADR=0 no hadronic interactions.",
12433 " =1 Hadronic interactions. secondaries processed.",
12434 " =2 Hadronic interactions. No secondaries stored." };
12435 static KmCommand _GEANT_PHYSICS_HADR = { &_GEANT_PHYSICS_LABS,
12436 "/GEANT/PHYSICS/HADR", "HADR", 0, 2, 1, 0, _GEANT_PHYSICS_HADR_parameters, 0,
12437 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
12438 _GEANT_PHYSICS_HADR_guidance, 0, (char**)0, (char*)0, (int*)0 };
12439
12440 static KmParReal _GEANT_PHYSICS_ERAN_EKMIN_type = { (char*)0, (char*)0,
12441 (char*)0, (char*)0, 0 };
12442 static KmParameter _GEANT_PHYSICS_ERAN_EKMIN = { "EKMIN", 5,
12443 "Minimum energy of the tables", "1E-5", (char*)0, 12, 0, (char**)0, 0,
12444 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_ERAN_EKMIN_type };
12445 static KmParReal _GEANT_PHYSICS_ERAN_EKMAX_type = { (char*)0, (char*)0,
12446 (char*)0, (char*)0, 0 };
12447 static KmParameter _GEANT_PHYSICS_ERAN_EKMAX = { "EKMAX", 5,
12448 "Maximum energy of the tables", "1E+4", (char*)0, 12, 0, (char**)0, 0,
12449 (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_ERAN_EKMAX_type };
12450 static KmParInt _GEANT_PHYSICS_ERAN_NEKBIN_type = { "1", "200", "1", "200",
12451 0 };
12452 static KmParameter _GEANT_PHYSICS_ERAN_NEKBIN = { "NEKBIN", 6,
12453 "Number of bins in the tables", "90", (char*)0, 4, 0, (char**)0, 0,
12454 (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_PHYSICS_ERAN_NEKBIN_type };
12455 static KmParameter *_GEANT_PHYSICS_ERAN_parameters[] = {
12456 &_GEANT_PHYSICS_ERAN_EKMIN, &_GEANT_PHYSICS_ERAN_EKMAX,
12457 &_GEANT_PHYSICS_ERAN_NEKBIN };
12458 static char *_GEANT_PHYSICS_ERAN_guidance[] = {
12459 "To define the range and binning of internal tables." };
12460 static KmCommand _GEANT_PHYSICS_ERAN = { &_GEANT_PHYSICS_HADR,
12461 "/GEANT/PHYSICS/ERAN", "ERAN", 0, 2, 3, 0, _GEANT_PHYSICS_ERAN_parameters, 0,
12462 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
12463 _GEANT_PHYSICS_ERAN_guidance, 0, (char**)0, (char*)0, (int*)0 };
12464
12465 static char *_GEANT_PHYSICS_DRAY_IDRAY_range[] = { "0", "1", "2" };
12466 static KmParInt _GEANT_PHYSICS_DRAY_IDRAY_type = { (char*)0, (char*)0,
12467 (char*)0, (char*)0, 0 };
12468 static KmParameter _GEANT_PHYSICS_DRAY_IDRAY = { "IDRAY", 5, "Flag IDRAY",
12469 "1", (char*)0, 8, 3, _GEANT_PHYSICS_DRAY_IDRAY_range, 3,
12470 _GEANT_PHYSICS_DRAY_IDRAY_range, (KmParFlag)0, KmTYPE_INT,
12471 &_GEANT_PHYSICS_DRAY_IDRAY_type };
12472 static KmParameter *_GEANT_PHYSICS_DRAY_parameters[] = {
12473 &_GEANT_PHYSICS_DRAY_IDRAY };
12474 static char *_GEANT_PHYSICS_DRAY_guidance[] = {
12475 "To control delta rays mechanism.", " IDRAY=0 no delta rays.",
12476 " =1 Delta rays. secondaries processed.",
12477 " =2 Delta rays. No secondaries stored." };
12478 static KmCommand _GEANT_PHYSICS_DRAY = { &_GEANT_PHYSICS_ERAN,
12479 "/GEANT/PHYSICS/DRAY", "DRAY", 0, 2, 1, 0, _GEANT_PHYSICS_DRAY_parameters, 0,
12480 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
12481 _GEANT_PHYSICS_DRAY_guidance, 0, (char**)0, (char*)0, (int*)0 };
12482
12483 static char *_GEANT_PHYSICS_DCAY_IDCAY_range[] = { "0", "1", "2" };
12484 static KmParInt _GEANT_PHYSICS_DCAY_IDCAY_type = { (char*)0, (char*)0,
12485 (char*)0, (char*)0, 0 };
12486 static KmParameter _GEANT_PHYSICS_DCAY_IDCAY = { "IDCAY", 5, "Flag IDCAY",
12487 "1", (char*)0, 8, 3, _GEANT_PHYSICS_DCAY_IDCAY_range, 3,
12488 _GEANT_PHYSICS_DCAY_IDCAY_range, (KmParFlag)0, KmTYPE_INT,
12489 &_GEANT_PHYSICS_DCAY_IDCAY_type };
12490 static KmParameter *_GEANT_PHYSICS_DCAY_parameters[] = {
12491 &_GEANT_PHYSICS_DCAY_IDCAY };
12492 static char *_GEANT_PHYSICS_DCAY_guidance[] = { "To control Decay mechanism.",
12493 " IDCAY=0 no decays.", " =1 Decays. secondaries processed.",
12494 " =2 Decays. No secondaries stored." };
12495 static KmCommand _GEANT_PHYSICS_DCAY = { &_GEANT_PHYSICS_DRAY,
12496 "/GEANT/PHYSICS/DCAY", "DCAY", 0, 2, 1, 0, _GEANT_PHYSICS_DCAY_parameters, 0,
12497 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
12498 _GEANT_PHYSICS_DCAY_guidance, 0, (char**)0, (char*)0, (int*)0 };
12499
12500 static char *_GEANT_PHYSICS_COMP_ICOMP_range[] = { "0", "1", "2" };
12501 static KmParInt _GEANT_PHYSICS_COMP_ICOMP_type = { (char*)0, (char*)0,
12502 (char*)0, (char*)0, 0 };
12503 static KmParameter _GEANT_PHYSICS_COMP_ICOMP = { "ICOMP", 5, "Flag ICOMP",
12504 "1", (char*)0, 8, 3, _GEANT_PHYSICS_COMP_ICOMP_range, 3,
12505 _GEANT_PHYSICS_COMP_ICOMP_range, (KmParFlag)0, KmTYPE_INT,
12506 &_GEANT_PHYSICS_COMP_ICOMP_type };
12507 static KmParameter *_GEANT_PHYSICS_COMP_parameters[] = {
12508 &_GEANT_PHYSICS_COMP_ICOMP };
12509 static char *_GEANT_PHYSICS_COMP_guidance[] = {
12510 "To control Compton scattering", " ICOMP=0 no Compton",
12511 " =1 Compton. Electron processed.",
12512 " =2 Compton. No electron stored." };
12513 static KmCommand _GEANT_PHYSICS_COMP = { &_GEANT_PHYSICS_DCAY,
12514 "/GEANT/PHYSICS/COMP", "COMP", 0, 2, 1, 0, _GEANT_PHYSICS_COMP_parameters, 0,
12515 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
12516 _GEANT_PHYSICS_COMP_guidance, 0, (char**)0, (char*)0, (int*)0 };
12517
12518 static char *_GEANT_PHYSICS_CKOV_ICKOV_range[] = { "0", "1", "2" };
12519 static KmParInt _GEANT_PHYSICS_CKOV_ICKOV_type = { (char*)0, (char*)0,
12520 (char*)0, (char*)0, 0 };
12521 static KmParameter _GEANT_PHYSICS_CKOV_ICKOV = { "ICKOV", 5, "Flag ICKOV",
12522 "0", (char*)0, 8, 3, _GEANT_PHYSICS_CKOV_ICKOV_range, 3,
12523 _GEANT_PHYSICS_CKOV_ICKOV_range, (KmParFlag)0, KmTYPE_INT,
12524 &_GEANT_PHYSICS_CKOV_ICKOV_type };
12525 static KmParameter *_GEANT_PHYSICS_CKOV_parameters[] = {
12526 &_GEANT_PHYSICS_CKOV_ICKOV };
12527 static char *_GEANT_PHYSICS_CKOV_guidance[] = {
12528 "To control Cerenkov production", " ICOMP=0 no Cerenkov;",
12529 " =1 Cerenkov;", " =2 Cerenkov with primary stopped at each step."
12530 };
12531 static KmCommand _GEANT_PHYSICS_CKOV = { &_GEANT_PHYSICS_COMP,
12532 "/GEANT/PHYSICS/CKOV", "CKOV", 0, 2, 1, 0, _GEANT_PHYSICS_CKOV_parameters, 0,
12533 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
12534 _GEANT_PHYSICS_CKOV_guidance, 0, (char**)0, (char*)0, (int*)0 };
12535
12536 static char *_GEANT_PHYSICS_BREM_IBREM_range[] = { "0", "1", "2" };
12537 static KmParInt _GEANT_PHYSICS_BREM_IBREM_type = { (char*)0, (char*)0,
12538 (char*)0, (char*)0, 0 };
12539 static KmParameter _GEANT_PHYSICS_BREM_IBREM = { "IBREM", 5, "Flag IBREM",
12540 "1", (char*)0, 8, 3, _GEANT_PHYSICS_BREM_IBREM_range, 3,
12541 _GEANT_PHYSICS_BREM_IBREM_range, (KmParFlag)0, KmTYPE_INT,
12542 &_GEANT_PHYSICS_BREM_IBREM_type };
12543 static KmParameter *_GEANT_PHYSICS_BREM_parameters[] = {
12544 &_GEANT_PHYSICS_BREM_IBREM };
12545 static char *_GEANT_PHYSICS_BREM_guidance[] = { "To control bremstrahlung.",
12546 " IBREM=0 no bremstrahlung", " =1 bremstrahlung. Photon processed.",
12547 " =2 bremstrahlung. No photon stored." };
12548 static KmCommand _GEANT_PHYSICS_BREM = { &_GEANT_PHYSICS_CKOV,
12549 "/GEANT/PHYSICS/BREM", "BREM", 0, 2, 1, 0, _GEANT_PHYSICS_BREM_parameters, 0,
12550 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
12551 _GEANT_PHYSICS_BREM_guidance, 0, (char**)0, (char*)0, (int*)0 };
12552
12553 static char *_GEANT_PHYSICS_AUTO_IAUTO_range[] = { "0", "1" };
12554 static KmParInt _GEANT_PHYSICS_AUTO_IAUTO_type = { (char*)0, (char*)0,
12555 (char*)0, (char*)0, 0 };
12556 static KmParameter _GEANT_PHYSICS_AUTO_IAUTO = { "IAUTO", 5, "Flag IAUTO",
12557 "1", (char*)0, 8, 2, _GEANT_PHYSICS_AUTO_IAUTO_range, 2,
12558 _GEANT_PHYSICS_AUTO_IAUTO_range, (KmParFlag)0, KmTYPE_INT,
12559 &_GEANT_PHYSICS_AUTO_IAUTO_type };
12560 static KmParameter *_GEANT_PHYSICS_AUTO_parameters[] = {
12561 &_GEANT_PHYSICS_AUTO_IAUTO };
12562 static char *_GEANT_PHYSICS_AUTO_guidance[] = {
12563 "To control automatic calculation of tracking medium parameters:",
12564 " IAUTO=0 no automatic calculation;", " =1 automati calculation." };
12565 static KmCommand _GEANT_PHYSICS_AUTO = { &_GEANT_PHYSICS_BREM,
12566 "/GEANT/PHYSICS/AUTO", "AUTO", 0, 2, 1, 0, _GEANT_PHYSICS_AUTO_parameters, 0,
12567 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
12568 _GEANT_PHYSICS_AUTO_guidance, 0, (char**)0, (char*)0, (int*)0 };
12569
12570 static char *_GEANT_PHYSICS_ANNI_IANNI_range[] = { "0", "1", "2" };
12571 static KmParInt _GEANT_PHYSICS_ANNI_IANNI_type = { (char*)0, (char*)0,
12572 (char*)0, (char*)0, 0 };
12573 static KmParameter _GEANT_PHYSICS_ANNI_IANNI = { "IANNI", 5, "Flag IANNI",
12574 "1", (char*)0, 8, 3, _GEANT_PHYSICS_ANNI_IANNI_range, 3,
12575 _GEANT_PHYSICS_ANNI_IANNI_range, (KmParFlag)0, KmTYPE_INT,
12576 &_GEANT_PHYSICS_ANNI_IANNI_type };
12577 static KmParameter *_GEANT_PHYSICS_ANNI_parameters[] = {
12578 &_GEANT_PHYSICS_ANNI_IANNI };
12579 static char *_GEANT_PHYSICS_ANNI_guidance[] = {
12580 "To control positron annihilation.", " IANNI=0 no annihilation",
12581 " =1 annihilation. Decays processed.",
12582 " =2 annihilation. No decay products stored." };
12583 static KmCommand _GEANT_PHYSICS_ANNI = { &_GEANT_PHYSICS_AUTO,
12584 "/GEANT/PHYSICS/ANNI", "ANNI", 0, 2, 1, 0, _GEANT_PHYSICS_ANNI_parameters, 0,
12585 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
12586 _GEANT_PHYSICS_ANNI_guidance, 0, (char**)0, (char*)0, (int*)0 };
12587
12588 static char *_GEANT_PHYSICS_guidance[] = {
12589 "Commands to set physics parameters." };
12590 static KmMenu _GEANT_PHYSICS = { (KmMenu*)0, (KmMenu*)0, "/GEANT/PHYSICS",
12591 "PHYSICS", 2, &_GEANT_PHYSICS_ANNI, 1, _GEANT_PHYSICS_guidance };
12592
12593 static KmMenu _GEANT = { (KmMenu*)0, &_GEANT_PHYSICS, "/GEANT", "GEANT", 1,
12594 (KmCommand*)0, 0, (char**)0 };
12595
12596 klnkmenu( &_GEANT, 921023 );
12597 }
12598
12599
12600 #ifdef F77_LCASE
12601 # define gkfort_ gkfort
12602 # define gxfort_ gxfort
12603 #endif
12604
12605 #ifdef F77_UCASE
12606 # define gkfort_ GKFORT
12607 # define gxfort_ GXFORT
12608 #endif
12609
12610 #ifdef IBM370
12611 # pragma linkage(GKFORT,FORTRAN)
12612 # pragma linkage(GXFORT,FORTRAN)
12613 #endif
12614
12615 extern void gkfort_();
12616 extern void gxfort_();
12617
12618 void gkfort_()
12619 {
12620
12621 static KmParameter _FORTRAN_FORTRAN_FNAME = { "FNAME", 5, "File name",
12622 (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
12623 KmTYPE_CHAR, (void*)0 };
12624 static KmParameter *_FORTRAN_FORTRAN_parameters[] = { &_FORTRAN_FORTRAN_FNAME
12625 };
12626 static char *_FORTRAN_FORTRAN_guidance[] = {
12627 "The routines in the file FNAME will be compiled by COMIS.",
12628 "If routines with names: UGEOM,GUKINE,GUOUT,UGLAST are found,",
12629 "then they will be automatically called by GXINT instead of",
12630 "the routines with the same names compiled with the standard",
12631 "Fortran compiler and linked with the application.",
12632 "The user callable routines from the GEANT library as well as",
12633 "routines from PACKLIB (HBOOK,HPLOT,HIGZ,ZEBRA) may be called",
12634 "from these user routines. All GEANT common blocks may be", "referenced.",
12635 "In case where the routine UGEOM is called several times,",
12636 "it is important to DROP all the initialisation data structures",
12637 "JVOLUM,JMATE,JTMED,etc already in memory by using the routine GIDROP.",
12638 " Example of an interactive session where the routine UGEOM is modified:",
12639 "", " GEANT > Edit ugeom.for", " GEANT > Fortran ugeom.for",
12640 " GEANT > Call GIDROP", " GEANT > Call UGEOM", " GEANT > Dtree",
12641 " GEANT > Edit ugeom.for", " GEANT > Fortran ugeom.for",
12642 " GEANT > Call GIDROP", " GEANT > Call UGEOM", " GEANT > Dtree",
12643 "If FNAME='-', calls to user routines is reset and standard",
12644 "routines called instead." };
12645 static KmCommand _FORTRAN_FORTRAN = { (KmCommand*)0, "/FORTRAN/FORTRAN",
12646 "FORTRAN", 0, 1, 1, 1, _FORTRAN_FORTRAN_parameters, 0, 0, gxfort_,
12647 (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 26, _FORTRAN_FORTRAN_guidance, 0,
12648 (char**)0, (char*)0, (int*)0 };
12649
12650 static KmMenu _FORTRAN = { (KmMenu*)0, (KmMenu*)0, "/FORTRAN", "FORTRAN", 1,
12651 &_FORTRAN_FORTRAN, 0, (char**)0 };
12652
12653 klnkmenu( &_FORTRAN, 921023 );
12654 }
12655
12656 #endif