Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

g321x.c

Go to the documentation of this file.
00001 /*
00002  * $Id: g321x.c,v 1.2 2009/02/16 01:38:10 schubert Exp $
00003  *
00004  * Revision 1.1.1.1  2002/06/16 15:17:53  hristov
00005  * Separate distribution  of Geant3
00006  *
00007  * Revision 1.1.1.1  1999/05/18 15:55:04  fca
00008  * AliRoot sources
00009  *
00010  * Revision 1.1.1.1  1995/10/24 10:19:37  cernlib
00011  * Geant
00012  *
00013  */
00014 /*CMZ :          24/08/95  15.30.04  by  S.Ravndal*/
00015 #if !defined(CERNLIB_KUIP95A)
00016  
00017 /*-- Author :*/
00018 /*
00019  * This file has been generated by the KUIP compiler.  Do NOT change it!
00020  *
00021  * KUIP header: 950303      Generation date: Thu Aug 24 15:18:48 1995
00022  *
00023  * Input file: geant321x.doc
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; /* Pixmap from <X11/X.h>                   */
00056  typedef void *KmWidget;         /* Widget from <X11/Intrinsic.h>           */
00057  typedef void *KmCalldata;       /* XmAnyCallbackStruct from <Motif/Xm.h>   */
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,        /* browser window has to be updated ('!')  */
00068    BrActSeparator = 0x02,        /* put separator in menu ('/')             */
00069    BrActToggle    = 0x04,        /* register as toggle button               */
00070    BrActToggleOn  = 0x08,        /* toggle state is on                      */
00071    BrActSensitive = 0x10         /* button is sensitive                     */
00072  } BrActFlag;                    /*                                         */
00073                                  /*                                         */
00074  
00075 typedef struct _BrAction {      /*                                         */
00076   struct _BrAction *next;       /* link to next action binding             */
00077   BrActFlag   flags;            /*                                         */
00078   char       *text;             /* text line in menu                       */
00079   char       *user_text;        /* user text overriding CDF text (malloced)*/
00080   char       *accel;            /* accelerator                             */
00081   char       *exec;             /* action commands                         */
00082   SUBROUTINE *call_F;           /* action routine                          */
00083   IntFunc    *call_C;           /* action function                         */
00084   BrActTag    tag;              /* for which window the action is defined  */
00085   struct _BrClass *class;       /* pointer to BrClass in case of open menu */
00086  } BrAction;                     /*                                         */
00087                                  /*                                         */
00088  typedef struct _BrClass {       /*                                         */
00089    struct _BrClass *next;        /* link to next browsable class            */
00090    char       *name;             /* unique identifier name                  */
00091    char       *title;            /* title for popup menu (maybe NULL)       */
00092    SUBROUTINE *scan_km_F;        /* user function scanning the directory    */
00093    pCharFunc  *scan_km_C;        /* user function scanning the directory    */
00094    SUBROUTINE *scan_br_F;        /* user function scanning for browsables   */
00095    pCharFunc  *scan_br_C;        /* user function scanning for browsables   */
00096    BrAction   *root;             /* list of actions in root window          */
00097    BrAction   *open;             /* list of actions in open menu            */
00098  } BrClass;                      /*                                         */
00099                                  /*                                         */
00100  
00101 typedef struct _KmIcon {        /*                                         */
00102   struct _KmIcon *next;         /* link to next icon                       */
00103   char       *name;             /* unique identifier name                  */
00104   int         width;            /* width of the pixmap                     */
00105   int         height;           /* height of the pixmap                    */
00106   char       *bitmap;           /* bitmap data                             */
00107   KmPixmap    pix;              /* filled in Motif part                    */
00108   KmPixmap    hi_pix;           /* high lighted pixmap                     */
00109  } KmIcon;                       /*                                         */
00110                                  /*                                         */
00111  typedef struct _KmClass {       /*                                         */
00112    struct _KmClass *next;        /* link to next object class               */
00113    int         is_dir;           /* flag if class has is a directory        */
00114    char       *name;             /* unique identifier name                  */
00115    char       *title;            /* title for popup menu (maybe NULL)       */
00116    char       *big_icon;         /* name of the big icon                    */
00117    KmIcon     *bicon;            /* pointer to the big icon structure       */
00118    char       *sm_icon;          /* name of the small icon                  */
00119    KmIcon     *sicon;            /* pointer to the small icon structure     */
00120    SUBROUTINE *user_icon_F;      /* user function to return icon bitmap     */
00121    IntFunc    *user_icon_C;      /* user function to return icon bitmap     */
00122    BrAction   *cont;             /* list of actions in content window       */
00123    BrAction   *graf;             /* list of actions in graphics window      */
00124    int         obj_count;        /* number of objects in content window     */
00125  } KmClass;                      /*                                         */
00126                                  /*                                         */
00127  
00128 typedef enum {                  /*                                         */
00129   KmButtSensitive       = 0x00, /* sensitive button                        */
00130   KmButtNonSensitive    = 0x01, /* non-sensitive button ('NS')             */
00131   KmButtToggleSensitive = 0x02, /* toggle-sensitive button ('TS')          */
00132   KmButtSensitivityMask = 0x03, /* mask for sensitivity type               */
00133   KmButtSeparator       = 0x04, /* put separator in menu ('/')             */
00134   KmButtBrowser         = 0x08  /* button is in main browser ('BR')        */
00135  } KmButtFlag;                   /*                                         */
00136                                  /*                                         */
00137  typedef struct _KmButton {      /*                                         */
00138    struct _KmButton *next;       /* button label or menu item               */
00139    char       *menu;             /* menu name or NULL for buttons           */
00140    char       *label;            /* button label or menu item               */
00141    SUBROUTINE *call_F;           /* callback routine (FORTRAN)              */
00142    IntFunc    *call_C;           /* callback routine (C)                    */
00143    char       *action;           /* name of callback routine                */
00144    char       *mnemo;            /* button mnemonic                         */
00145    char       *accel;            /* button accelerator                      */
00146    char       *accel_text;       /* button accelerator text                 */
00147    KmButtFlag  flags;            /* sensitivity type etc.                   */
00148    KmWidget    widget;           /* Motif widget ID                         */
00149  } KmButton;                     /*                                         */
00150                                  /*                                         */
00151  
00152 extern struct {                        /*
00153     */   /* indirect calls to avoid linking HIGZ
00154     */   IntFunc    *graf_info_C;      /* pass display, open and close
00155  (ixmotif)  */   SUBROUTINE *graf_size_F;      /* resize window (IGRSIZ)
00156             */   SUBROUTINE *graf_pick_F;      /* identifying graphics objects
00157  (IGOBJ)    */   SUBROUTINE *graf_attr_F;      /* set attributes (IGSET)
00158             */   SUBROUTINE *graf_close_F;     /* close workstation (ICLWK)
00159             */   /* optional routines for Motif customization
00160             */   pCharFunc  *user_FallBk_C;    /* get application fallbacks
00161             */   IntFunc    *user_TopWid_C;    /* pass toplevel widget
00162  identifiers        */ } klnkaddr;                     /*
00163                     */
00164  
00165 typedef enum {                  /*                                         */
00166   KmFLAG_FORGET = 0x01,         /* last value is not kept for Motif panels */
00167   KmFLAG_MINUS  = 0x02,         /* -VALUE is not an abbrev for CHOPT=VALUE */
00168   KmFLAG_QUOTE  = 0x04,         /* do not remove quotes                    */
00169   KmFLAG_VARARG = 0x08,         /* append additional args to this param.   */
00170   KmFLAG_CONST  = 0x10,         /* do not allow to assign a value          */
00171   KmFLAG_HIDDEN = 0x20,         /* do not show in menus                    */
00172   KmFLAG_SEPARATE = 0x40        /* treat arguments as separate tokens      */
00173  } KmParFlag;                    /*                                         */
00174                                  /*                                         */
00175  typedef enum {                  /*                                         */
00176    KmTYPE_CHAR   = 'C',          /* character string                        */
00177    KmTYPE_FILE   = 'F',          /* file name                               */
00178    KmTYPE_INT    = 'I',          /* integer                                 */
00179    KmTYPE_OPTION = 'O',          /* option                                  */
00180    KmTYPE_REAL   = 'R'           /* real                                    */
00181  } KmParType;                    /*                                         */
00182                                  /*                                         */
00183  
00184 typedef struct {                /* file name                               */
00185   char         *filter_default; /* filter wildcard                         */
00186   char         *filter_current; /* current filter                          */
00187  } KmParFile;                    /*                                         */
00188                                  /*                                         */
00189  typedef struct {                /*                                         */
00190    char         *range_lower;    /* lower value of range                    */
00191    char         *range_upper;    /* upper value of range                    */
00192    char         *slider_lower;   /* lower limit for slider                  */
00193    char         *slider_upper;   /* upper limit for slider                  */
00194    int           decimals;       /* number of decimals used for slider      */
00195  } KmParInt;                     /*                                         */
00196                                  /*                                         */
00197  typedef struct {                /* option                                  */
00198    char        **text;           /* explanations (parallel to range_value)  */
00199    int          *mutex;          /* mutex group to which text belongs       */
00200    int          *radio;          /* radio group to which text belongs       */
00201  } KmParOption;                  /*                                         */
00202                                  /*                                         */
00203  
00204 typedef KmParInt KmParReal;     /* real and int have the same fields       */
00205                                 /*                                         */
00206  typedef struct {                /*                                         */
00207    char         *name;           /* parameter name                          */
00208    int           abbrev;         /* minimum length that name is recognized  */
00209    char         *prompt;         /* prompt string                           */
00210    char         *dfault;         /* default value                           */
00211    char         *last;           /* last value for Motif panel (malloced)   */
00212    int           width;          /* width of input field                    */
00213    int           range_count;    /* number of items in range_value          */
00214    char        **range_value;    /* list of allowed values                  */
00215    int           select_count;   /* number of items in select_count         */
00216    char        **select_value;   /* list of values for selection box        */
00217    KmParFlag     flags;          /* special flags                           */
00218    KmParType     type;           /* parameter type                          */
00219    void        *ptype;           /* structure pointer selected by type      */
00220  } KmParameter;                  /*                                         */
00221                                  /*                                         */
00222  
00223 typedef struct _KmCommand {     /*                                         */
00224   struct _KmCommand *next;      /* link to next command                    */
00225   char         *path;           /* command path                            */
00226   char         *name;           /* command name                            */
00227   int           hidden;         /* flag if command is invisible            */
00228   int           level;          /* depth of submenus                       */
00229   int           total;          /* total number of parameters              */
00230   int           mandatory;      /* number of mandatory parameters          */
00231   KmParameter **par;            /* list of total parameter descriptions    */
00232   int           list_par;       /* index+1 of parameter taking a list      */
00233   int           xcount;         /* count number of action calls            */
00234   SUBROUTINE   *action_F;       /* action routine                          */
00235   IntFunc      *action_C;       /* action routine                          */
00236   SUBROUTINE   *user_help_F;    /* user help routine                       */
00237   pCharFunc    *user_help_C;    /* user help routine                       */
00238   int          nguidance;       /* number of lines in guidance text        */
00239   char        **guidance;       /* help text                               */
00240   int          nkeyword;        /* number of lines for keywords            */
00241   char        **keyword;        /* list of keywords                        */
00242   int          nhlink;          /* number of lines for links               */
00243   char        **hlink;          /* list of links                           */
00244   int           argc;           /* number of arguments entered             */
00245   char        **argv;           /* argc argument values                    */
00246   char         *argline;        /* argument line as entered                */
00247   int          *argoffs;        /* argc offsets into argline for KUGETE    */
00248  } KmCommand;                    /*                                         */
00249                                  /*                                         */
00250  
00251 typedef struct _KmMenu {        /*                                         */
00252   struct _KmMenu *next;         /* link to next menu                       */
00253   struct _KmMenu *down;         /* link to submenu                         */
00254   char         *path;           /* path of parent menu                     */
00255   char         *name;           /* menu name                               */
00256   int           level;          /* depth of submenus                       */
00257   KmCommand    *cmds;           /* link to first command                   */
00258   int          nguidance;       /* number of lines in guidance text        */
00259   char        **guidance;       /* help text                               */
00260   int          nkeyword;        /* number of lines for keywords            */
00261   char        **keyword;        /* list of keywords                        */
00262   int          nhlink;          /* number of lines for links               */
00263   char        **hlink;          /* list of links                           */
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 /*CMZ :          21/03/95  18.51.56  by  S.Giani*/
06390 /*-- Author :*/
06391 /*
06392  * This file has been generated by the KUIP compiler.  Do NOT change it!
06393  *
06394  * KUIP header: 921023      Generation date: Tue Mar 21 18:51:54 1995
06395  *
06396  * Input file: g321x.doc
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; /* Pixmap from <X11/X.h>                   */
06429  typedef void *KmWidget;         /* Widget from <X11/Intrinsic.h>           */
06430  typedef void *KmCalldata;       /* XmAnyCallbackStruct from <Motif/Xm.h>   */
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,        /* browser window has to be updated ('!')  */
06441    BrActSeparator = 0x02,        /* put separator in menu ('/')             */
06442    BrActToggle    = 0x04,        /* register as toggle button               */
06443    BrActToggleOn  = 0x08,        /* toggle state is on                      */
06444    BrActSensitive = 0x10         /* button is sensitive                     */
06445  } BrActFlag;                    /*                                         */
06446                                  /*                                         */
06447  
06448 typedef struct _BrAction {      /*                                         */
06449   struct _BrAction *next;       /* link to next action binding             */
06450   BrActFlag   flags;            /*                                         */
06451   char       *text;             /* text line in menu                       */
06452   char       *user_text;        /* user text overriding CDF text (malloced)*/
06453   char       *accel;            /* accelerator                             */
06454   char       *exec;             /* action commands                         */
06455   SUBROUTINE *call_F;           /* action routine                          */
06456   IntFunc    *call_C;           /* action function                         */
06457   BrActTag    tag;              /* for which window the action is defined  */
06458   struct _BrClass *class;       /* pointer to BrClass in case of open menu */
06459  } BrAction;                     /*                                         */
06460                                  /*                                         */
06461  typedef struct _BrClass {       /*                                         */
06462    struct _BrClass *next;        /* link to next browsable class            */
06463    char       *name;             /* unique identifier name                  */
06464    char       *title;            /* title for popup menu (maybe NULL)       */
06465    SUBROUTINE *scan_km_F;        /* user function scanning the directory    */
06466    pCharFunc  *scan_km_C;        /* user function scanning the directory    */
06467    SUBROUTINE *scan_br_F;        /* user function scanning for browsables   */
06468    pCharFunc  *scan_br_C;        /* user function scanning for browsables   */
06469    BrAction   *root;             /* list of actions in root window          */
06470    BrAction   *open;             /* list of actions in open menu            */
06471  } BrClass;                      /*                                         */
06472                                  /*                                         */
06473  
06474 typedef struct _KmIcon {        /*                                         */
06475   struct _KmIcon *next;         /* link to next icon                       */
06476   char       *name;             /* unique identifier name                  */
06477   int         width;            /* width of the pixmap                     */
06478   int         height;           /* height of the pixmap                    */
06479   char       *bitmap;           /* bitmap data                             */
06480   KmPixmap    pix;              /* filled in Motif part                    */
06481   KmPixmap    hi_pix;           /* high lighted pixmap                     */
06482  } KmIcon;                       /*                                         */
06483                                  /*                                         */
06484  typedef struct _KmClass {       /*                                         */
06485    struct _KmClass *next;        /* link to next object class               */
06486    int         is_dir;           /* flag if class has is a directory        */
06487    char       *name;             /* unique identifier name                  */
06488    char       *title;            /* title for popup menu (maybe NULL)       */
06489    char       *big_icon;         /* name of the big icon                    */
06490    KmIcon     *bicon;            /* pointer to the big icon structure       */
06491    char       *sm_icon;          /* name of the small icon                  */
06492    KmIcon     *sicon;            /* pointer to the small icon structure     */
06493    SUBROUTINE *user_icon_F;      /* user function to return icon bitmap     */
06494    IntFunc    *user_icon_C;      /* user function to return icon bitmap     */
06495    BrAction   *cont;             /* list of actions in content window       */
06496    BrAction   *graf;             /* list of actions in graphics window      */
06497    int         obj_count;        /* number of objects in content window     */
06498  } KmClass;                      /*                                         */
06499                                  /*                                         */
06500  
06501 typedef enum {                  /*                                         */
06502   KmButtSensitive       = 0x00, /* sensitive button                        */
06503   KmButtNonSensitive    = 0x01, /* non-sensitive button ('NS')             */
06504   KmButtToggleSensitive = 0x02, /* toggle-sensitive button ('TS')          */
06505   KmButtSensitivityMask = 0x03, /* mask for sensitivity type               */
06506   KmButtSeparator       = 0x04, /* put separator in menu ('/')             */
06507   KmButtBrowser         = 0x08  /* button is in main browser ('BR')        */
06508  } KmButtFlag;                   /*                                         */
06509                                  /*                                         */
06510  typedef struct _KmButton {      /*                                         */
06511    struct _KmButton *next;       /* button label or menu item               */
06512    char       *menu;             /* menu name or NULL for buttons           */
06513    char       *label;            /* button label or menu item               */
06514    SUBROUTINE *call_F;           /* callback routine (FORTRAN)              */
06515    IntFunc    *call_C;           /* callback routine (C)                    */
06516    char       *action;           /* name of callback routine                */
06517    char       *mnemo;            /* button mnemonic                         */
06518    char       *accel;            /* button accelerator                      */
06519    char       *accel_text;       /* button accelerator text                 */
06520    KmButtFlag  flags;            /* sensitivity type etc.                   */
06521    KmWidget    widget;           /* Motif widget ID                         */
06522  } KmButton;                     /*                                         */
06523                                  /*                                         */
06524  
06525 extern struct {                        /*
06526     */   /* indirect calls to avoid linking HIGZ
06527     */   IntFunc    *graf_info_C;      /* pass display, open and close
06528  (ixmotif)  */   SUBROUTINE *graf_size_F;      /* resize window (IGRSIZ)
06529             */   SUBROUTINE *graf_pick_F;      /* identifying graphics objects
06530  (IGOBJ)    */   SUBROUTINE *graf_attr_F;      /* set attributes (IGSET)
06531             */   SUBROUTINE *graf_close_F;     /* close workstation (ICLWK)
06532             */   /* optional routines for Motif customization
06533             */   pCharFunc  *user_FallBk_C;    /* get application fallbacks
06534             */   IntFunc    *user_TopWid_C;    /* pass toplevel widget
06535  identifiers        */ } klnkaddr;                     /*
06536                     */
06537  
06538 typedef enum {                  /*                                         */
06539   KmFLAG_FORGET = 0x01,         /* last value is not kept for Motif panels */
06540   KmFLAG_MINUS  = 0x02,         /* -VALUE is not an abbrev for CHOPT=VALUE */
06541   KmFLAG_QUOTE  = 0x04,         /* do not remove quotes                    */
06542   KmFLAG_VARARG = 0x08,         /* append additional args to this param.   */
06543   KmFLAG_CONST  = 0x10,         /* do not allow to assign a value          */
06544   KmFLAG_HIDDEN = 0x20,         /* do not show in menus                    */
06545   KmFLAG_SEPARATE = 0x40        /* treat arguments as separate tokens      */
06546  } KmParFlag;                    /*                                         */
06547                                  /*                                         */
06548  typedef enum {                  /*                                         */
06549    KmTYPE_CHAR   = 'C',          /* character string                        */
06550    KmTYPE_FILE   = 'F',          /* file name                               */
06551    KmTYPE_INT    = 'I',          /* integer                                 */
06552    KmTYPE_OPTION = 'O',          /* option                                  */
06553    KmTYPE_REAL   = 'R'           /* real                                    */
06554  } KmParType;                    /*                                         */
06555                                  /*                                         */
06556  
06557 typedef struct {                /* file name                               */
06558   char         *filter_default; /* filter wildcard                         */
06559   char         *filter_current; /* current filter                          */
06560  } KmParFile;                    /*                                         */
06561                                  /*                                         */
06562  typedef struct {                /*                                         */
06563    char         *range_lower;    /* lower value of range                    */
06564    char         *range_upper;    /* upper value of range                    */
06565    char         *slider_lower;   /* lower limit for slider                  */
06566    char         *slider_upper;   /* upper limit for slider                  */
06567    int           decimals;       /* number of decimals used for slider      */
06568  } KmParInt;                     /*                                         */
06569                                  /*                                         */
06570  typedef struct {                /* option                                  */
06571    char        **text;           /* explanations (parallel to range_value)  */
06572    int          *mutex;          /* mutex group to which text belongs       */
06573    int          *radio;          /* radio group to which text belongs       */
06574  } KmParOption;                  /*                                         */
06575                                  /*                                         */
06576  
06577 typedef KmParInt KmParReal;     /* real and int have the same fields       */
06578                                 /*                                         */
06579  typedef struct {                /*                                         */
06580    char         *name;           /* parameter name                          */
06581    int           abbrev;         /* minimum length that name is recognized  */
06582    char         *prompt;         /* prompt string                           */
06583    char         *dfault;         /* default value                           */
06584    char         *last;           /* last value for Motif panel (malloced)   */
06585    int           width;          /* width of input field                    */
06586    int           range_count;    /* number of items in range_value          */
06587    char        **range_value;    /* list of allowed values                  */
06588    int           select_count;   /* number of items in select_count         */
06589    char        **select_value;   /* list of values for selection box        */
06590    KmParFlag     flags;          /* special flags                           */
06591    KmParType     type;           /* parameter type                          */
06592    void        *ptype;           /* structure pointer selected by type      */
06593  } KmParameter;                  /*                                         */
06594                                  /*                                         */
06595  
06596 typedef struct _KmCommand {     /*                                         */
06597   struct _KmCommand *next;      /* link to next command                    */
06598   char         *path;           /* command path                            */
06599   char         *name;           /* command name                            */
06600   int           hidden;         /* flag if command is invisible            */
06601   int           level;          /* depth of submenus                       */
06602   int           total;          /* total number of parameters              */
06603   int           mandatory;      /* number of mandatory parameters          */
06604   KmParameter **par;            /* list of total parameter descriptions    */
06605   int           list_par;       /* index+1 of parameter taking a list      */
06606   int           xcount;         /* count number of action calls            */
06607   SUBROUTINE   *action_F;       /* action routine                          */
06608   IntFunc      *action_C;       /* action routine                          */
06609   SUBROUTINE   *user_help_F;    /* user help routine                       */
06610   pCharFunc    *user_help_C;    /* user help routine                       */
06611   int          nguidance;       /* number of lines in guidance text        */
06612   char        **guidance;       /* help text                               */
06613   int           argc;           /* number of arguments entered             */
06614   char        **argv;           /* argc argument values                    */
06615   char         *argline;        /* argument line as entered                */
06616   int          *argoffs;        /* argc offsets into argline for KUGETE    */
06617  } KmCommand;                    /*                                         */
06618                                  /*                                         */
06619  
06620 typedef struct _KmMenu {        /*                                         */
06621   struct _KmMenu *next;         /* link to next menu                       */
06622   struct _KmMenu *down;         /* link to submenu                         */
06623   char         *path;           /* path of parent menu                     */
06624   char         *name;           /* menu name                               */
06625   int           level;          /* depth of submenus                       */
06626   KmCommand    *cmds;           /* link to first command                   */
06627   int          nguidance;       /* number of lines in guidance text        */
06628   char        **guidance;       /* help text                               */
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

Generated on Mon Feb 15 11:06:45 2010 for loon by  doxygen 1.3.9.1