5 * Revision 1.1.1.1 1995/10/24 10:20:06 cernlib
9 #include "geant321/pilot.h"
10 #if defined(CERNLIB_DOC)
11 *CMZ : 3.21/02 29/03/94 15.41.19 by S.Giani
14 ************************************************************************
17 * Introduction to GEANT3 *
18 * ---------------------- *
21 * GEANT3 APPLICATIONS *
23 * The principal applications of GEANT3 are: *
25 * - The tracking of particles through an experimental setup for *
26 * acceptance studies or simulation of detector response, and *
27 * - the graphical representation of the setup and of the particle *
30 * It is of course desirable and very instructive to combine the two *
31 * interactively since the observation of what happens to a particle *
32 * during the tracking may underline the weaknesses of the setup and *
33 * makes the debugging easier. In view of these applications, the *
34 * GEANT3 system allows: *
36 * - to describe an experimental setup in a rather efficient and *
37 * simple way. The setup is represented by a structure of *
38 * geometrical VOLUMEs. Each volume is given a 'MEDIUM' number by *
39 * the user. Different volumes may have the same medium number *
40 * [GEOM]. A medium is defined by a set of parameters, the *
41 * so-called TRACKING MEDIUM parameters, which include reference to *
42 * the MATERIAL filling the volume [CONS]. *
43 * - to generate simulated events from standard Monte Carlo *
44 * generators [KINE]. *
45 * - to control the transport of particles through the various *
46 * regions of the setup, taking into account the geometrical volume *
47 * boundaries and all physical effects due to the nature of the *
48 * particles themselves, to their interactions with the matter and *
49 * to the magnetic field [TRAK, PHYS]. *
50 * - to record the elements of the particle trajectories and the *
51 * response from the sensitive detectors [HITS], *
52 * - to visualize either interactively or in batch the detectors and *
53 * the particle trajectories [DRAW, XINT]. *
55 * Part of the subroutines available in GEANT3 are integrated into *
56 * program segments which perform these tasks. *
57 * The program segments may contain 'dummy' and 'default' user *
58 * subroutines called whenever application dependent actions are *
60 * Other subroutines provide tools either to perform simple *
61 * functions (control print, debug, I/O, etc.) or to implement the *
62 * operations required for most of the applications (description of *
63 * the geometrical setup, handling of detector responses,etc.). *
64 * It is the responsibility of the user to assemble the appropriate *
65 * program segments and tools into an executable program, to code the *
66 * relevant user subroutines, to provide the data describing the *
67 * experimental environment and to submit the appropriate data cards *
68 * which control the execution of the program. The section BASE of *
69 * the User's Guide gives the information necessary to understand how *
72 * Note: as a general convention the names of the dummy or default *
73 * user subroutines have GU or UG as first two letters and are *
74 * printed in bold characters. *
76 * EVENT SIMULATION FRAMEWORK *
78 * The framework for event simulation is described in the following *
79 * paragraphs to familiarize the reader with the areas where user *
80 * interventions are expected. *
81 * At the same time, the GEANT3 data structures are introduced. *
82 * This last point is important as the coding to be provided by the *
83 * user often consists of filling data structures, or extracting *
84 * information from them, or saving them on output, making use of *
85 * standard routines available in the system. *
86 * A main program has to be provided by the user [BASE 100]. It *
87 * allocates the dynamic memory for ZEBRA and HBOOK and gives control *
88 * to the three phases of the run: *
91 * - Event processing *
96 * The initialisation phase is under the control of the user [BASE *
97 * 100]. It consists of the following steps, most of them performed *
98 * via calls to standard GEANT3 subroutines: *
100 * - GINIT, to initialize the GEANT3 common blocks with default *
101 * values which the user should be aware of [BASE 030, 110]. *
102 * - GFFGO to read 'free format' data cards which can override some *
103 * of the values defined in GINIT the default options [BASE 040, *
105 * - GZINIT to initialize the dynamic core divisions, the link areas *
106 * and the data structure JRUNG [BASE 110]. *
107 * - GDINIT to initialize the drawing package [DRAW]. *
108 * - GPART and auxiliaries, to generate the data structure JPART *
109 * describing the standard particle properties [CONS]. *
110 * - GMATE and auxiliaries, to generate the data structure JMATE *
111 * describing the characteristics of the most commonly used *
112 * MATERIALs [CONS]. *
113 * - <USER> to define the geometry of the different components of the *
114 * experimental setup [GEOM] and the tracking medium parameters *
115 * [CONS,TRAK], and to generate the corresponding data structures *
116 * JROTM, JVOLUM and JTMED. *
117 * - <USER> to specify which elements of the geometrical setup should *
118 * be considered as 'sensitive detectors', giving a 'response' when *
119 * hit by a particle [HITS]. *
120 * - GGCLOS to close the Geometry package (mandatory). *
121 * - GBHSTA to book standard GEANT3 histograms as required by the *
122 * user with the data card HSTA [BASE 040, 110]. *
123 * - GPHYSI to compute energy loss and cross section tables and to *
124 * store them in the data structure JMATE [CONS,PHYS]. *
128 * The processing phase is triggered by a call to the subroutine GRUN *
129 * which, for each event to be processed, gives control to the *
132 * - GTRIGI, to initialize the event processing and to create the *
133 * Header bank JHEAD. *
134 * - GTRIG to process the event. *
135 * - GTRIGC to clean up the event division *
137 * and checks that enough time is left for the next event [BASE 200]. *
138 * The main steps of GTRIG consist of calls to the following user *
141 * - GUKINE generates the data structures JVERTX and JKINE describing *
142 * the kinematics of the current event on input [KINE], or reads *
144 * - GUTREV (calls GTREVE) controls the tracking for the whole event *
145 * [TRAK]. Each particle is tracked in turn and when a sensitive *
146 * detector is hit, the user may store any useful information in *
147 * the data structure JHITS [HITS]. Before tracking the next *
148 * particle, any secondary products generated by the current one, *
149 * and stored by the user in the temporary data structure JSTAK, *
150 * are processed in the same way. *
151 * Simultaneously, the data structure JXYZ, containing the *
152 * coordinates of space points along the tracks for the whole *
153 * event, can be filled by the user [TRAK]. *
154 * - GUDIGI simulates the detector responses for the whole event, *
155 * making use of the information previously recorded in the data *
156 * structure JHITS, and stores the results in the data structure *
158 * - GUOUT outputs the relevant data structures for the current event *
161 * Other user routines called during the tracking phase triggered by *
162 * GTREVE should be mentioned for completeness: *
164 * - The hadronic processes activated by default for the tracking of *
165 * hadrons in GEANT3 are described by the program GHEISHA (file *
166 * GEANH). In the subroutines GUPHAD and GUHADR [TRAK] the user *
167 * may select, instead of GHEISHA, the program FLUKA (file GEANF). *
168 * - After each tracking step of a given track in a given medium, *
169 * control is given to the subroutine GUSTEP. From the information *
170 * available in common blocks the user is able to take the *
171 * appropriate action, such as storing a hit or transferring a *
172 * secondary product either in the stack JSTAK or in the events *
173 * structure JVERTX/JKINE. *
174 * - The subroutine GUSWIM is called by various tracking routines to *
175 * select the appropriate code for transport of the particle over *
176 * the given tracking step. A default version is provided in the *
177 * library for this routine which in normal cases need not to be *
178 * provided by the user. *
179 * - The magnetic field, unless constant with no X- or Y-component, *
180 * has to be returned by the user subroutine GUFLD. *
184 * The termination phase is under the control of the user [BASE *
185 * 300]. For trivial applications it may simply consist of a call to *
186 * the subroutine GLAST which computes and prints some statistical *
187 * information (time per event, use of dynamic memory, etc.). *
190 ************************************************************************
193 * Simplified Program Flow Chart *
194 * ----------------------------- *
198 * |-GZEBRA initialisation of ZEBRA system, dynamic core *
202 * ||- GINIT initialisation of GEANT3 variables *
203 * ||- GFFGO interpretation of data cards *
204 * ||- GZINIT initialisation of ZEBRA core divisions and link *
206 * ||- GPART creation of the 'particle' data structure JPART *
207 * ||- GMATE creation of the 'material' data structure JMATE *
208 * ||- <USER> description of the geometrical setup, of the *
209 * || sensitive detectors and creation of data structures *
210 * || JVOLUM, JTMED, JROTM, JSETS *
211 * ||- GGCLOS close Geometry package *
212 * ||- GPHYSI preparation of cross-sections and energy loss tables *
213 * | for all used materials *
215 * |-GRUN (loop over events) *
217 * ||- GTRIGI initialisation for event processing *
218 * ||- GTRIG event processing *
220 * || |- GUKINE (user) generation (or input) of event initial *
222 * || |- GUTREV (user) *
223 * || | |- GTREVE (simplified flow for sequential tracking) *
224 * || | |- GSSTAK store primary tracks in stack *
225 * || | |- Loop over tracks *
226 * || | |- GLTRAC prepare commons for tracking *
227 * || | |- GMEDIA find current volume /tracking medium *
228 * || | |- GUTRAK (user) *
230 * || | |- GTGAMA/GTELEC/... tracking of particle *
231 * || | according to type *
232 * || | |- compute physical step size *
233 * || | |- GTNEXT compute geometrical step size *
234 * || | |- propagate (GUSWIM..) *
235 * || | |- test change of volume (GINVOL) *
236 * || | |- GUSTEP (user) recording of hits in data *
237 * || | structure JHITS and of space points *
238 * || | in structure JXYZ *
239 * || |- GUDIGI computation of digitisations and recording in *
240 * || | structure JDIGI *
241 * || |- GUOUT output of current event *
243 * ||- GTRIGC clearing of memory for next event *
247 * ||- GLAST standard GEANT3 termination. *
253 ************************************************************************
254 ************************************************************************
256 * Overview of COMMON Blocks *
257 * ------------------------- *
262 * The communication between program segments of the GEANT3 system is *
263 * ensured by data structures and by 'long range' variables in common *
264 * blocks. In addition,within the program segments, the subroutines *
265 * communicate with each other via explicit arguments and via the *
266 * common block variables. *
267 * The data structures are described in separate sections. Here, the *
268 * main features of the common blocks used in GEANT3 are summarized, *
269 * with special mention of the variables initialized in GINIT and of *
270 * the possibility to override them via data cards [BASE040]. *
271 * The labelled common blocks are accessible via Patchy/CMZ *
272 * sequences identified by the name of the COMMON. They are defined *
273 * in the Patch GCDES. *
275 * Note: Unless otherwise specified the long range variables are *
276 * initialized in GINIT. When not zero, default values are *
277 * quoted between brackets. If the value may be modified via a *
278 * standard data card the card keyword is also given between *
283 * The GEANT3 data structures are stored in the common /GCBANK/ *
284 * accessible via the following Patchy sequence. *
287 * PARAMETER (KWBANK=69000,KWWORK=5200) *
288 * COMMON/GCBANK/NZEBRA,GVERSN,ZVERSN,IXSTOR,IXDIV,IXCONS,FENDQ(16) *
289 * + ,LMAIN,LR1,WS(KWBANK) *
290 * DIMENSION IQ(2),Q(2),LQ(8000),IWS(2) *
291 * EQUIVALENCE (Q(1),IQ(1),LQ(9)),(LQ(1),LMAIN),(IWS(1),WS(1)) *
292 * EQUIVALENCE (JCG,JGSTAT) *
293 * COMMON/GCLINK/JDIGI ,JDRAW ,JHEAD ,JHITS ,JKINE ,JMATE ,JPART *
294 * + ,JROTM ,JRUNG ,JSET ,JSTAK ,JGSTAT,JTMED ,JTRACK,JVERTX *
295 * + ,JVOLUM,JXYZ ,JGPAR ,JGPAR2,JSKLT *
297 * The /GCLINK/ variables are pointers to the GEANT3 data structures. *
298 * They belong to a permanent area declared in GZINIT. The common *
299 * /GCLINK/ alone may be accessed through the sequence GCLINK. *
301 * OTHER LABELLED COMMON BLOCKS *
303 * COMMON/GCCUTS/CUTGAM,CUTELE,CUTNEU,CUTHAD,CUTMUO,BCUTE,BCUTM) *
304 * + ,DCUTE ,DCUTM ,PPCUTM,TOFMAX,GCUTS(5) *
306 * CUTGAM Kinetic energy cut for gammas (0.001, CUTS) *
307 * CUTELE Kinetic energy cut for electrons (0.001, CUTS) *
308 * CUTHAD Kinetic energy cut for hadrons (0.01, CUTS) *
309 * CUTNEU Kinetic energy cut for neutral hadrons (0.01, CUTS) *
310 * CUTMUO Kinetic energy cut for muons (0.01, CUTS) *
311 * BCUTE Kinetic energy cut for electron Brems. (CUTGAM, CUTS) *
312 * BCUTM Kinetic energy cut for muon Brems. (CUTGAM, CUTS) *
313 * DCUTE Kinetic energy cut for electron delta-rays (CUTELE, CUTS) *
314 * DCUTM Kinetic energy cut for muon delta-rays (CUTELE, CUTS) *
315 * PPCUTM Kinetic energy cut for e+e- pair production by muons *
317 * TOFMAX Tracking cut on time of flight integrated from primary *
318 * interaction time (1.E+10, CUTS) *
319 * GCUTS For user applications (CUTS) *
321 * Note: The cuts BCUTE, BCUTM and DCUTE, DCUTM are given, in GPHYSI, *
322 * the respective default values CUTGAM and CUTELE. Only *
323 * experienced users should make use of the facility offered by *
324 * the data card CUTS to change BCUTE, DCUTE, BCUTM and DCUTM. *
326 * COMMON /GCDRAW/ ..... *
327 * see GEANG Pam file *
329 * COMMON/GCFLAG/IDEBUG,IDEMIN,IDEMAX,ITEST,IDRUN,IDEVT,IEORUN *
330 * + ,IEOTRI,IEVENT,ISWIT(10),IFINIT(20),NEVENT,NRNDM(2) *
331 * COMMON/GCFLAX/BATCH, NOLOG *
332 * LOGICAL BATCH, NOLOG *
334 * IDEBUG Flag set equal to 1 to activate debug if IEVENT (below) *
335 * IDEMIN is greater or equal to IDEMIN *
336 * IDEMAX and less or equal to IDEMAX (DEBU) *
337 * ITEST Flag to request printing of IEVENT, IDEVT and NRNDM *
338 * (below) every ITEST events (DEBU) *
339 * IDRUN Current user run number (1, RUN) *
340 * IDEVT Current user event number (RUN) *
341 * IEORUN Flag to terminate current run if non zero *
342 * IEOTRI Flag to abort current event if non zero *
343 * IEVENT Current event sequence number (1) *
344 * ISWIT Flags reserved for user in relation to debug (SWIT) *
345 * IFINIT System flags to check initialisation of GEANT routines *
346 * NEVENT Number of events to be processed (10000000,TRIG) *
347 * NRNDM Initial value of random number seeds NRNDM(1), *
348 * NRNDM(2). If NRNDM(2) is 0, the independent sequence *
349 * NRNDM(1) is used. If NRNDM(1) is 0, the default sequence *
350 * is used. (9876, 54321, RNDM) *
351 * BATCH Flag set to .TRUE. if the program is running in *
353 * NOLOG Flag set to .TRUE. if the no logon file has been *
356 * COMMON/GCJLOC/NJLOC(2),JTM,JMA,JLOSS,JPROB,JMIXT,JPHOT,JANNI *
357 * + ,JCOMP,JBREM,JPAIR,JDRAY,JPFIS,JMUNU,JRAYL *
358 * + ,JMULOF,JCOEF,JRANG *
360 * For relocation of local pointers. Self-explanatory [CONS 199]. *
362 * COMMON/GCKINE/IKINE,PKINE(10),ITRA,ISTAK,IVERT,IPART,ITRTYP *
363 * + ,NAPART(5),AMASS,CHARGE,TLIFE,VERT(3),PVERT(4),IPAOLD *
365 * IKINE User flag(0, KINE) *
366 * PKINE User array(1E10, KINE) *
367 * ITRA Current track number *
368 * ISTAK Current stack-track number *
369 * IVERT Current vertex number *
370 * IPART Current particle number *
371 * ITRTYP Tracking type of current particle *
372 * NAPART Name of current particle *
373 * AMASS Mass of current particle *
374 * CHARGE Charge of current particle *
375 * TLIFE Life-time of current particle *
376 * VERT Coordinates of origin vertex for current track *
377 * PVERT Track kinematics at origin vertex (PVERT(4) no longer *
379 * IPAOLD Particle number of the previous track. *
382 * PARAMETER (MXGKIN=100) *
383 * COMMON/GCKING/KCASE,NGKINE,GKIN(5,MXGKIN), *
384 * + TOFD(MXGKIN),IFLGK(MXGKIN) *
385 * KCASE Mechanism having generated the secondary particles *
386 * NGKINE Number of generated secondaries *
387 * GKIN(1,I) Px of I-th secondary *
391 * GKIN(5,I) Particle number " " *
392 * TOFD(I) Time delay introduced by the interaction. *
394 * COMMON/GCLIST/NHSTA,NGET ,NSAVE,NSETS,NPRIN,NGEOM,NVIEW,NPLOT *
395 * + ,NSTAT,LHSTA(20),LGET (20),LSAVE(20),LSETS(20),LPRIN(20) *
396 * + ,LGEOM(20),LVIEW(20),LPLOT(20),LSTAT(20) *
398 * NHSTA Number of histograms declared on data card HSTA *
399 * NGET Number of data structures declared on data card GET *
400 * NSAVE Number of data structures declared on data card SAVE *
401 * NSETS Number of items described on data card SETS *
402 * NPRIN Number of items described on data card PRIN *
403 * NGEOM Number of items described on data card GEOM *
404 * NVIEW Number of items described on data card VIEW *
405 * NPLOT Number of items described on data card PLOT *
406 * NSTAT Number of items described on data card STAT *
407 * LHSTA,...,LSTAT Corresponding user lists of items (HSTA,...,STAT) *
409 * See examples of utilisation of the user lists in GEANT3 examples *
410 * in GEANX file. LSTAT(1) is reserved by the system for volume *
413 * COMMON/GCMATE/NMAT,NAMATE(5),A,Z,DENS,RADL,ABSL *
415 * NMAT Current material number *
416 * NAMATE Name of current material *
417 * A Atomic weight of current material *
418 * Z Atomic number of current material *
419 * DENS Density of current material *
420 * RADL Radiation length of current material *
421 * ABSL Absorption length of current material *
423 * COMMON/GCMULO/SINMUL(101),COSMUL(101),SQRMUL(101),OMCMOL,CHCMOL *
424 * + ,EKMIN,EKMAX,NEKBIN,NEK1,EKINV,GEKA,GEKB,EKBIN(200),ELOW(200) *
426 * Pre-computed quantities for multiple scattering and energy *
427 * binning [CONS 199] *
431 * OMCMOL Constant Omega for Moliere scattering *
432 * CHCMOL Constant for Moliere scattering *
433 * EKMIN Lower edge for the energy range (1E-5, ERAN) *
434 * EKMAX Upper edge for the energy range (1E+4, ERAN) *
435 * NEKBIN Number of energy bins to be used (90, ERAN) *
436 * NEK1 Number of energy bins to be used + 1 *
438 * GEKA >Constants for the energy binning *
440 * EKBIN Lower edges of energy bins *
441 * ELOW Lower edges of logarithm of energy bins *
443 * COMMON/GCNUM/NMATE ,NVOLUM,NROTM,NTMED,NTMULT,NTRACK,NPART *
444 * + ,NSTMAX,NVERTX,NHEAD,NBIT *
445 * COMMON /GCNUMX/ NALIVE,NTMSTO *
447 * NMATE Number of Materials *
448 * NVOLUM Number of Volumes *
449 * NROTM Number of Rotation matrices *
450 * NTMED Number of Tracking media *
451 * NTMULT Number of tracks processed in current event (including *
452 * secondaries), reset to 0 for each event *
453 * NTRACK Number of tracks in JKINE banks for current event *
454 * NPART Number of Particle banks *
455 * NSTMAX Maximum number of tracks in stack JSTAK for current *
456 * event, reset to 0 for each event *
457 * NVERTX Number of Vertices in JVERTX banks for current event *
458 * NHEAD Number of data words in the JHEAD bank (10) *
459 * NBIT Number of bits per word (initialized in GINIT via FFINIT *
460 * NALIVE Internal counter used for parallel tracking *
461 * NTMSTO Internal counter used for parallel tracking *
464 * DOUBLE PRECISION PI,TWOPI,PIBY2,DEGRAD,RADDEG,CLIGHT,BIG,EMASS *
465 * DOUBLE PRECISION EMMU,PMASS,AVO *
467 * PARAMETER (PI=3.14159265358979324) *
468 * PARAMETER (TWOPI=6.28318530717958648) *
469 * PARAMETER (PIBY2=1.57079632679489662) *
470 * PARAMETER (DEGRAD=0.0174532925199432958) *
471 * PARAMETER (RADDEG=57.2957795130823209) *
472 * PARAMETER (CLIGHT=29979245800.) *
473 * PARAMETER (BIG=10000000000.) *
474 * PARAMETER (EMASS=0.0005109990615) *
475 * PARAMETER (EMMU=0.105658387) *
476 * PARAMETER (PMASS=0.9382723128) *
477 * PARAMETER (AVO=0.60221367) *
482 * DEGRAD Degree to radian conversion factor (PI/180.) *
483 * RADDEG Radian to degree conversion factor (180./PI) *
484 * CLIGHT Light velocity *
485 * BIG Arbitrary large number *
486 * EMASS Electron mass *
488 * PMASS Proton mass *
489 * AVO Avogadro Number * 1E-24 *
491 * Control of Geometry optimisation *
492 * COMMON/GCOPTI/IOPTIM *
493 * IOPTIM -1 = No optimisation at all. GSORD calls disabled *
494 * 0 = No optimisation. Only user calls to GSORD kept *
495 * 1 = All non-ordered volumes are ordered along the best axis*
496 * 2 = All volumes are ordered along the best axis *
498 * Control of physics processes. *
499 * COMMON/GCPHYS/IPAIR,SPAIR,SLPAIR,ZINTPA,STEPPA *
500 * + ,ICOMP,SCOMP,SLCOMP,ZINTCO,STEPCO *
501 * + ,IPHOT,SPHOT,SLPHOT,ZINTPH,STEPPH *
502 * + ,IPFIS,SPFIS,SLPFIS,ZINTPF,STEPPF *
503 * + ,IDRAY,SDRAY,SLDRAY,ZINTDR,STEPDR *
504 * + ,IANNI,SANNI,SLANNI,ZINTAN,STEPAN *
505 * + ,IBREM,SBREM,SLBREM,ZINTBR,STEPBR *
506 * + ,IHADR,SHADR,SLHADR,ZINTHA,STEPHA *
507 * + ,IMUNU,SMUNU,SLMUNU,ZINTMU,STEPMU *
508 * + ,IDCAY,SDCAY,SLIFE ,SUMLIF,DPHYS1 *
509 * + ,ILOSS,SLOSS,SOLOSS,STLOSS,DPHYS2 *
510 * + ,IMULS,SMULS,SOMULS,STMULS,DPHYS3 *
511 * + ,IRAYL,SRAYL,SLRAYL,ZINTRA,STEPRA *
513 * IPAIR Controls pair production process (1,PAIR) *
514 * 0 = no pair production *
515 * 1 = pair production with generation of secondaries *
516 * 2 = same without generation of secondaries *
517 * ICOMP Controls Compton scattering process (1,COMP) *
518 * 0 = no Compton scattering *
519 * 1 = Compton scattering with generation of secondaries *
520 * 2 = same without generation of secondaries *
521 * IPHOT Controls photo-electric effect process (1,PHOT) *
522 * 0 = no photo-electric effect *
523 * 1 = photo-electric effect with generation of secondaries *
524 * 2 = same without generation of secondaries *
525 * IPFIS Controls photofission process (0,PFIS) *
526 * 0 = no photofission *
527 * 1 = photofission with generation of secondaries *
528 * 2 = same without generation of secondaries *
529 * IDRAY Controls delta rays process (1,DRAY) *
530 * 0 = no delta rays effect *
531 * 1 = delta rays with generation of secondaries *
532 * 2 = same without generation of secondaries *
533 * IANNI Controls positron annihilation process (1,ANNI) *
534 * 0 = no positron annihilation effect *
535 * 1 = positron annihilation with generation of secondaries *
536 * 2 = same without generation of secondaries *
537 * IBREM Controls Bremsstrahlung process (1,BREM) *
538 * 0 = no Bremsstrahlung effect *
539 * 1 = Bremsstrahlung with generation of secondaries *
540 * 2 = same without generation of secondaries *
541 * IHADR Controls hadron interactions process (1,HADR) *
542 * 0 = no hadron interactions effect *
543 * 1 = hadron interactions with generation of secondaries *
544 * 2 = same without generation of secondaries *
545 * IMUNU Controls muon nuclear interaction process (0,MUNU) *
546 * 0 = no muon nuclear interaction effect *
547 * 1 = muon nuclear interaction with generation of secondaries*
548 * 2 = same without generation of secondaries *
549 * IDCAY Controls decay process (1,DCAY) *
550 * 0 = no decay effect *
551 * 1 = decay with generation of secondaries *
552 * 2 = same without generation of secondaries *
553 * ILOSS Controls energy loss process (2,LOSS) *
554 * 0 = no energy loss effect *
555 * 1 = delta ray and reduced Landau fluctuations *
556 * 2 = full Landau fluctuations and no delta rays *
558 * 4 = average Energy loss and no fluctuations *
559 * IMULS Controls multiple scattering (1,MULS) *
560 * 1 = Moliere or Coulomb scattering *
561 * 2 = Moliere or Coulomb scattering *
562 * 3 = Gaussian scattering *
563 * IRAYL 0 = No Rayleigh scattering *
564 * 1 = Rayleigh scattering *
566 * COMMON/GCPOLY/IZSEC,IPSEC *
568 * Internal flags for polygon and polycone shapes. See GEANG file. *
570 * COMMON/GCPUSH/NCVERT,NCKINE,NCJXYZ,NPVERT,NPKINE,NPJXYZ *
572 * NCVERT Initial size of mother bank JVERTX (5) *
573 * NCKINE Initial size of mother bank JKINE (50) *
574 * NCJXYZ Initial size of mother bank JXYZ (50) *
575 * NPVERT Increment for size of mother bank JVERTX (5) *
576 * NPKINE Increment for size of mother bank JKINE (10) *
577 * NPJXYZ Increment for size of mother bank JXYZ (10) *
579 * COMMON/GCSETS/IHSET,IHDET,ISET,IDET,IDTYPE,NVNAME,NUMBV(20) *
581 * IHSET Set identifier *
582 * IHDET Detector identifier *
583 * ISET Position of set in bank JSET *
584 * IDET Position of detector in bank JS=IB(JSET-IDET) *
585 * IDTYPE User defined detector type *
586 * NVNAME Number of elements in NUMBV *
587 * NUMBV List of volume numbers to identify the detector *
589 * PARAMETER (NWSTAK=12,NWINT=11,NWREAL=12,NWTRAC=NWINT+NWREAL+5) *
590 * COMMON /GCSTAK/ NJTMAX, NJTMIN, NTSTKP, NTSTKS, NDBOOK, NDPUSH, *
591 * + NJFREE, NJGARB, NJINVO, LINSAV(15), LMXSAV(15) *
593 * NTKSTP Primary allocation for stack JSTAK *
594 * NTKSTS Secondary allocation for stack JSTAK *
595 * NDBOOK local variable for control of stack size *
596 * NDPUSH local variable for control of stack size *
597 * (other variables used in parallel tracking only) *
599 * COMMON/GCTIME/TIMINT,TIMEND,ITIME,IGDATE,IGTIME *
600 * INTEGER ITIME,IGDATE,IGTIME *
601 * REAL TIMINT,TIMEND *
603 * TIMINT Total time left after initialization (System, TIME) *
604 * TIMEND Time required for program termination phase (1., TIME) *
605 * ITIME Test on time left done every ITIME events (1, ITIME) *
606 * IGDATE Date of the day YYMMDD integer (e.g. 920407) *
607 * IGTIME Time of the day HHMM integer (e.g. 1425) *
609 * COMMON/GCTMED/NUMED,NATMED(5),ISVOL,IFIELD,FIELDM,TMAXFD,STEMAX *
610 * + ,DEEMAX,EPSIL,STMIN,CFIELD,PREC,IUPD,ISTPAR,NUMOLD *
611 * NUMED Current tracking medium number *
612 * NATMED Name of current tracking medium *
613 * ISVOL Sensitive volume flag (if non zero) *
614 * IFIELD Field map type (0 if no field) *
615 * FIELDM Maximum field *
616 * TMAXFD Maximum field turning angle in one step *
617 * STEMAX Maximum step allowed *
618 * DEEMAX Maximum energy loss gradient in one step *
619 * EPSIL Boundary crossing accuracy *
620 * STMIN Minimum step size by energy loss, multiple scattering *
622 * CFIELD Constant for field step evaluation *
623 * PREC Initial step for boundary crossing (0.1*EPSIL) *
624 * IUDP 0 If medium change, (1 otherwise) *
625 * ISTPAR 0 If standard tracking parameters *
626 * NUMOLD Numed of the last medium. *
628 * PARAMETER (MAXMEC=30) *
629 * COMMON/GCTRAK/VECT(7),GETOT,GEKIN,VOUT(7),NMEC,LMEC(MAXMEC) *
630 * + ,NAMEC(MAXMEC),NSTEP ,MAXNST,DESTEP,DESTEL,SAFETY,SLENG *
631 * + ,STEP ,SNEXT ,SFIELD,TOFG ,GEKRAT,UPWGHT,IGNEXT,INWVOL *
632 * + ,ISTOP ,IGAUTO,IEKBIN, ILOSL, IMULL,INGOTO,NLDOWN,NLEVIN *
634 * VECT Current track parameters (X,Y,Z,Px/P,Py/P,Pz/P,P) *
635 * GETOT Current track total energy *
636 * GEKIN Current track kinetic energy *
638 * NMEC Number of mechanisms for current step *
639 * LMEC List of mechanism indices for current step *
640 * NAMEC Mechanism names (See below) *
641 * NSTEP Number of steps so far *
642 * MAXNST Maximum number of steps allowed (default = 10000) *
643 * DESTEP Total energy lost in current step *
644 * DESTEL Continuous energy loss in current step *
645 * SAFETY Overestimated distance to closest medium boundary *
646 * SLENG Track length at current point *
647 * STEP Size of current tracking step *
648 * SNEXT Straight distance to next current medium boundary *
649 * SFIELD Field turning angle step size evaluation *
650 * TOFG Time of flight *
651 * GEKRAT Interpolation factor in table ELOW *
652 * UPWGHT User particle weight *
653 * IGNEXT Flag set to 1 when SNEXT has been recomputed *
654 * INWVOL Flag set to 1 when entering a new volume, *
655 * 2 when leaving a volume and *
656 * 3 when leaving the experimental setup. *
658 * ISTOP Flag set to 1 when track looses its identity *
659 * 2 when energy below cut *
660 * IGAUTO Automatic computation of DEEMAX,STMIN,TMAXFD,STEMAX *
661 * IEKBIN Current kinetic energy bin in table ELOW *
662 * ILOSL Local value of ILOSS for current tracking medium *
663 * IMULL Local value of IMULS for current tracking medium *
664 * INGOTO Content number of limiting content when computing SNEXT *
665 * NLDOWN Lowest level reached down the tree (parallel tracking only)*
666 * NLEVIN Number of levels currently filled and valid in /GCVOLU/ *
667 * NLVSAV Current level (parallel tracking only) *
668 * ISTORY User flag for current track history (reset to 0 in GLTRAC) *
670 * NAMEC List of possible mechanisms for step size limitation *
671 * filled in GINIT : *
672 * DATA MEC/'NEXT','MULS','LOSS','FIEL','DCAY','PAIR','COMP','PHOT' *
673 * + ,'BREM','DRAY','ANNI','HADR','ECOH','EVAP','FISS','ABSO' *
674 * + ,'ANNH','CAPT','EINC','INHE','MUNU','TOFM','PFIS','SCUT' *
675 * + ,'RAYL','PARA','PRED','LOOP','NULL','STOP'/ *
678 * COMMON/GCUNIT/LIN,LOUT,NUNITS,LUNITS(5) *
679 * INTEGER LIN,LOUT,NUNITS,LUNITS *
680 * COMMON/GCMAIL/CHMAIL *
681 * CHARACTER*132 CHMAIL *
683 * LIN Input unit to read data cards *
684 * LOUT Line printer output unit *
685 * NUNITS Number of additional units *
686 * LUNITS List of additional units. *
687 * CHMAIL Internal string used for error messages *
688 * LIN and LOUT are defined in GINIT through calls to the routine *
689 * FFGET from the standard FFREAD package. NUNITS and LUNITS are *
690 * reserved for user applications. *
692 * COMMON /GCVOLU/ ...... *
693 * see GEANG Pam file *
697 ************************************************************************
699 * Summary of Data Cards *
700 * --------------------- *
705 * GEANT3 uses the standard FFREAD package to read 'free format' data *
706 * cards in the routine GFFGO. The cards currently interpreted by *
707 * GFFGO can be classified into four categories: *
709 * - General control of the run. *
710 * - Control of the physics processes. *
711 * - Debug and I/O operations. *
712 * - User applications. *
714 * The data cards are listed below by category with the following *
717 * - KEY, card keyword, any number of characters truncated to the *
719 * - N, maximum expected number of variables NVAR, *
720 * - T, TYPE of these variables (I=INTEGER, R=REAL or M=MIXED) *
722 * for each variable in turn: *
724 * - VAR.., FORTRAN name *
725 * - Short description (more detail in BASE 030) *
726 * - COMMON where it is stored, and *
727 * - Default value from GINIT. *
729 * When a card is decoded, the values entered by the user without *
730 * explicit assignment are assigned to the variables in order. The *
731 * number of values can be less than NVAR. In case of a MIXED type *
732 * the values entered have to be in agreement with the default of the *
733 * corresponding FORTRAN variable names. *
735 * Example of data card: RUN 5 201 *
737 * to preset the current run and event number to 5 and 201 *
739 * In batch jobs there is no need for any special termination card *
740 * and none of the cards mentioned below is mandatory. *
742 * USER DEFINED DATA CARDS *
744 * Before calling GFFGO the user may define private data cards *
745 * through calls to FFKEY as follows: *
746 * CALL FFKEY('KEY',VAR(1),NVAR,'TYPE') *
747 * They will be interpreted by GFFGO in the same way as the standard *
750 * SUMMARY OF THE MOST IMPORTANT GEANT3 DATA CARDS *
752 * KEY N T VAR.. Short description COMMON GINIT *
753 * General control of the run: *
754 * HSTA 20 M LHSTA Names of required histograms GCLIST 0 *
755 * PATR 4 I NJTMAX Max number of tracks in parallel GCSTAK 0 *
757 * NJTMIN Number of tracks above which " 0 *
758 * parallel tracking can be *
759 * reactivated when frozen earlier *
760 * NTSTKP Primary allocation for stack JSTAK " 500 *
761 * NTSTKS Secondary ... (when parallel " 100 *
763 * RNDM 2 I NRNDM Initial random number seeds *
764 * NRNDM(1) GCFLAG 9876 *
765 * NRNDM(2) GCFLAG 54321 *
766 * RNDM 2 I NRNDM Initial random number seeds GCFLAG 0 *
767 * RUNG 2 I IDRUN User run number GCFLAG 1 *
768 * IDEVT User event number GCFLAG 1 *
769 * TIME 3 M TIMINT Time left after initialisation GCTIME System *
770 * TIMEND Time required for termination GCTIME 1. *
771 * ITIME Test every ITIME events GCTIME 1 *
772 * TRIG 1 I NEVENT Number of events to process GCFLAG 1E7 *
773 * Geometry optimization: *
774 * OPTI 1 I IOPTIM Optimization level GCOPTI 1 *
775 * SCAN process control: *
776 * SCAN 8 M SCAN granularity and mode *
777 * SCANFL Scan processing flag (Logical) GCSCAN FALSE *
778 * NPHI Number of divisions in PHI GCSCAN 90 *
779 * PHIMIN Minimum value of PHI GCSCAN 0. *
780 * PHIMAX Maximum value of PHI GCSCAN 360. *
781 * NTETA Number of divisions in TETA GCSCAN 90 *
782 * TETMIN Minimum value of TETA GCSCAN 0. *
783 * TETMAX Maximum value of TETA GCSCAN 180. *
784 * MODTET Type of TETA division GCSCAN 1 *
785 * SCAL 32 M SLIST List of scanned volumes GCSCAN 'XXXX' *
786 * SCAP 6 R SCAN parameters *
787 * VX SCAN vertex X coordinate GCSCAN 0.0 *
788 * VY SCAN vertex Y coordinate GCSCAN 0.0 *
789 * VZ SCAN vertex Z coordinate GCSCAN 0.0 *
790 * FACTX0 Scale factor for SX0 GCSCAN 100. *
791 * FACTL Scale factor for SL GCSCAN 1000. *
792 * FACTR Scale factor for R GCSCAN 100. *
793 * Control of physics processes: *
794 * AUTO 1 I IGAUTO Automatic computation of STMIN GCTRAK 1 *
795 * STEMAX,DEEMAX,TMAXFD *
796 * 0 = Tracking media parameters *
797 * taken from the argument list *
799 * 1 = Tracking media parameters *
800 * calculated by GEANT *
801 * ANNI 1 I IANNI Annihilation flag GCPHYS 1 *
802 * BREM 1 I IBREM Bremsstrahlung flag GCPHYS 1 *
803 * COMP 1 I ICOMP Compton scattering flag GCPHYS 1 *
804 * CUTS 15 R Kinetic energy cuts : *
805 * CUTGAM " " for gammas GCCUTS 0.001 *
806 * CUTELE " " for electrons GCCUTS 0.001 *
807 * CUTHAD " " for charged hadrons GCCUTS 0.01 *
808 * CUTNEU " " for neutral hadrons GCCUTS 0.01 *
809 * CUTMUO " " for muons GCCUTS 0.01 *
810 * BCUTE " " for electron brems. GCCUTS CUTGAM *
811 * BCUTM " " for muon Brems. GCCUTS CUTGAM *
812 * DCUTE " " for electron delta-rays GCCUTS CUTELE *
813 * DCUTM " " for muon delta-rays CCUTS CUTELE *
814 * PPCUTM " " for e+e- pairs by muons CCUTS 10 MeV *
815 * TOFMAX Time of flight cut GCCUTS 1.E+10 *
816 * GCUTS 5 user words GCCUTS 0. *
817 * DCAY 1 I IDCAY Decay flag GCPHYS 1 *
818 * DRAY 1 I IDRAY delta-rays flag GCPHYS 1 *
819 * ERAN 3 M Cross section tables *
820 * R EKMIN Minimum energy for the tables GCMULO 1E-5 *
821 * R EKMAX Maximum energy for the tables GCMULO 1E+4 *
822 * I NEKBIN Number of bins in the table GCMULO 90 *
823 * HADR 1 I IHADR Hadronic process flag GCPHYS 1 *
824 * LOSS 1 I ILOSS Energy loss flag CGPHYS 2 *
825 * MULS 1 I IMULS Multiple scattering flag GCPHYS 1 *
826 * MUNU 1 I IMUNU Muon nuclear interactions flag GCPHYS 0 *
827 * PAIR 1 I IPAIR Pair production flag GCPHYS 1 *
828 * PFIS 1 I IPFIS Photofission flag GCPHYS 0 *
829 * PHOT 1 I IPHOT Photo-electric effect flag GCPHYS 1 *
830 * RAYL 1 I IRAYL Rayleigh scattering flag GCPHYS 0 *
832 * Debug and I/O operations: *
833 * DEBU 3 M IDEMIN First event to debug GCFLAG 0 *
834 * IDEMAX Last event to debug GCFLAG 0 *
835 * ITEST Print control frequency GCFLAG 0 *
836 * GET 20 M LGET Names of data structure to get GCLIST ' ' *
837 * PRIN 20 M LPRIN User keywords to print data GCLIST ' ' *
839 * SAVE 20 M LSAVE Names of data struct. to save GCLIST ' ' *
840 * SWIT 10 I ISWIT User flags for debug or else GCFLAG 0 *
841 * User applications: *
842 * KINE 11 M IKINE User flag GCKINE 0 *
843 * PKINE 10 user words GCKINE 1.E+10 *
844 * SETS 20 M LSETS User words for detector sets GCLIST ' ' *
845 * STAT 20 M LSTAT 1 system + 19 user words GCLIST ' ' *
846 * PLOT 20 M LPLOT User words to control plots GCLIST ' ' *
847 * GEOM 20 M LGEOM User words to control geometry GCLIST ' ' *
848 * VIEW 20 M LVIEW User words to control View banks GCLIST ' ' *
855 ************************************************************************
857 * The Reference Systems and dimensional Units *
858 * ------------------------------------------- *
861 * THE MASTER REFERENCE SYSTEM (MARS) *
863 * The Master Reference System (MARS) is determined by the way the *
864 * user represents the kinematical quantities. If the axes are *
865 * labelled (X,Y,Z), then the point P(A,B,C) is represented by *
869 * | * X A on axis X *
879 * ............................> *
881 * The tracking is performed in the MAster Reference System. This *
882 * implies that the arguments of the user magnetic field routine, *
883 * space point coordinates and field components, are given in this *
886 * THE LOCAL REFERENCE SYSTEMS (MRS AND DRS) *
888 * As explained in GEOM 001, the experimental set-up is described by *
889 * the definition of an 'initial MOTHER' volume inside which *
890 * 'DAUGHTER' volumes are positioned. Other daughter volumes can be *
891 * positioned inside these volumes which are promoted as mother *
892 * volumes and so on, as russian dolls. *
893 * This requires the definition of local reference systems, the *
894 * Mother Reference Systems (MRS, Origin O.) and the Daughter *
895 * Reference Systems (DRS, Origin O.). *
896 * The local reference system of the 'initial mother' volume *
897 * coincides with the MAster Reference System. *
898 * The full description of a given detector is usually given in the *
899 * local reference system of the associated volume. *
900 * The transformation of a point from the MRS (V.) to the DRS (V.), *
901 * at any level, requires the knowledge of a rotation matrix R and a *
902 * translation vector T defined through the relation : *
903 * ( V. ) = [ R ] ( V. - T ) *
904 * The components of T are the projections of the vector O.O. onto *
906 * The rotation matrices are computed from the spherical angles of *
907 * each of the axes of the daughter reference system (I, II, III) *
908 * with respect to the mother reference system (1,2,3). *
909 * The spherical angles THETA and PHI of a direction D are defined *
912 * THETA is the angle formed by the axis 3 and D (range : 0 to 180 *
914 * PHI is the angle formed by the axis 1 and the projection of D *
915 * onto the plane defined by the axes 1 and 2 (range : 0 to *
917 * Examples are given in GEOM 200. *
918 * The various rotation matrices required for a given set-up must be *
919 * defined during the initialisation stage, usually in the user *
921 * A serial number is assigned to each matrix [GEOM 200]. *
922 * The translation parameters and the serial number of the rotation *
923 * matrix are specified by the user when the volumes are positioned *
924 * inside the set-up [GEOM 110]. *
926 * THE DIMENSIONAL UNITS *
928 * Unless otherwise specified, the following units are used *
929 * throughout the program : *
931 * - CENTIMETER, SECOND, KILOGAUSS, GEV, GEV/C, DEGREE *
933 ************************************************************************
935 * Examples of MAIN Program and User Initialisation *
936 * ------------------------------------------------ *
940 * PARAMETER (NG=100000,NH=10000) *
941 * COMMON/PAWC/H(NH) *
942 * COMMON/GCBANK/Q(NG) *
944 * C Allocate memory for ZEBRA and HBOOK *
948 * C Initialize Graphics package *
950 * C Open metafile and define workstation type *
951 * C (computer dependent) *
954 * C Initialisation phase *
957 * C Processing phase *
960 * C Termination phase *
964 * SUBROUTINE UGINIT *
968 * C Initialize GEANT variables *
971 * C Read data cards *
974 * C Initialize data structures *
977 * C Initialize drawing package *
980 * C Open I/O buffers *
981 * IF(NGET .GT.0)CALL GOPEN(1,'I',0,IER) *
982 * IF(NSAVE.GT.0)CALL GOPEN(2,'O',0,IER) *
984 * C Fetch permanent data structures (if any) *
985 * CALL GFIN(1,'INIT',1,IDENT,' ',IER) *
986 * IF(IER.LT.0) THEN *
988 * C Define standard Particle and Material data *
992 * C Define the geometrical set-up *
996 * C Compute cross-section and energy loss tables *
1000 * C Initialize standard histograms *
1007 ************************************************************************
1009 * The System Initialisation routines *
1010 * ---------------------------------- *
1012 * Presets COMMON block variables to default values. Preprocessing *
1013 * of various COMMON block variables. See 'Overview of COMMON *
1014 * blocks' [BASE 030]. Reads a set of data cards with the FFREAD *
1015 * package. See 'Summary of data cards' [BASE 040] GFFGO should be *
1016 * called after GINIT. Allocates the dynamic core divisions. *
1017 * Initialize the link areas and the data structure JRUNG [BASE 299]. *
1018 * Initialize exotic bank formats. GZINIT should be called after *
1019 * GFFGO. To be called before the user geometry routine if the user *
1020 * wants to open VIEW banks there. Initializes any standard *
1021 * histogram required by the user with the data record HSTA. *
1022 * The following histogram keywords may be used : *
1023 * TIME Time per event *
1024 * SIZE Size of division LXDIV per event *
1025 * MULT Total number of tracks per event *
1026 * NTRA Number of 'long life' tracks per event *
1027 * STAK Maximum stack size per event *
1029 * GBHSTA should be called after GFFGO. *
1031 * Steering routines for Event Processing *
1032 * -------------------------------------- *
1034 * The following flow chart is only valid for the 'batch' execution *
1035 * mode. For interactive applications, see section XINT. Main *
1036 * routine to control a run of events *
1040 * | Get time left (TIMINT) after *
1043 * ............................. *
1045 * ... >| GTRIGI | | *
1048 * ........ . |.. >| GTRIG | ......... . *
1049 * | | | ......... . |loop on | *
1050 * | GRUN |... | | | | *
1051 * ........ . | ......... . | events | *
1052 * |.. >| GTRIGC | ......... . *
1054 * | ................... | *
1055 * ... >| check time left | | *
1056 * | ................... | *
1057 * ............................. *
1059 * Resets to 0 the flag IEOTRI in /GCFLAG/ and the counters NTRACK *
1060 * and NVERTX in /GCNUM/. Sets the debug flag IDEBUG in /GCFLAG/ to *
1061 * the value required for the current event. *
1062 * Creates the Header bank for current event. *
1063 * Prints the sequence number, the event number and the number *
1064 * random generators, under control of the flag ITEST (data card *
1066 * Steering routine to process one event (trigger) *
1068 * .......................... *
1069 * | Generates kinematics, | *
1070 * ... >| or read event GUKINE | *
1071 * | .......................... *
1072 * | ................ *
1073 * | | Tracking/hits| *
1074 * ........ . |.. >| GUTREV | *
1075 * | GTRIG |.. >| .............. . *
1076 * ........ . | .............. . *
1080 * | ................ *
1081 * | ................ *
1082 * | | Output event | *
1084 * ................ *
1085 * The partition initialized in GTRIGI is cleared. The space used *
1086 * by the current event may be used by the next one. *
1088 * The banks JRUNG and JHEAD *
1089 * ------------------------- *
1091 * Run bank JRUNG: 1 user link, 30 data words *
1092 * LQ(JRUNG-1) user link *
1093 * IQ(JRUNG+1) IDRUN Run number *
1094 * "" +2/10) Reserved for user applications *
1095 * +11) creation date for 'INIT' data structures *
1096 * +12) creation time for 'INIT' data structures *
1097 * +13) creation data for 'KINE' *
1098 * +14) creation time for 'KINE' *
1099 * +15) creation data for 'HITS' *
1100 * +16) creation time for 'HITS' *
1101 * +17) creation data for 'DIGI' *
1102 * +18) creation time for 'DIGI' *
1103 * +19) Random number seed 1 *
1104 * +20) Random number seed 2 *
1105 * +21) GEANT version number when 'INIT' created *
1106 * +22) ZEBRA version number when 'INIT' created *
1107 * +23) GEANT version number when 'KINE' created *
1108 * +24) ZEBRA version number when 'KINE' created *
1109 * +25) GEANT version number when 'HITS' created *
1110 * +26) ZEBRA version number when 'HITS' created *
1111 * +27) GEANT version number when 'DIGI' created *
1112 * +28) ZEBRA version number when 'DIGI' created *
1113 * Header bank JHEAD: 1 user link, NHEAD(=10) data words *
1114 * IQ(JHEAD+1) IDRUN Run number *
1115 * "" +2) IDEVT Event number *
1116 * "" +3) NRNDM(1) Random number seed 1 at beginning of event *
1117 * "" +4) NRNDM(2) " " *
1118 * "" +5/10) Reserved for user applications *
1120 ************************************************************************
1123 * Example of User Termination and related routines *
1124 * ------------------------------------------------ *
1126 * SUBROUTINE UGLAST *
1130 * C Call standard GEANT termination routine *
1133 * C Close HIGZ files *
1136 * C Close I/O buffers *
1137 * IF(NGET.EQ.0.AND.NSAVE.EQ.0) GO TO 5 *
1138 * CALL GCLOSE(0,IER) *
1140 * C Print histograms *
1146 ************************************************************************