]> git.uio.no Git - u/mrichter/AliRoot.git/blame - html/Manual.html
Added SetUserDecay routine. When a particle decays the standard MC decay
[u/mrichter/AliRoot.git] / html / Manual.html
CommitLineData
fe4da5cc 1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
2<HTML>
3<HEAD>
4 <TITLE> cmz code description for GALICE </TITLE>
5 <!-- Changed by: Yiota Foka, 18-Mar-1999 -->
6 <META NAME="rating" CONTENT="General">
7 <META NAME="objecttype" CONTENT="Manual">
8 <META NAME="keywords" CONTENT="
9software development, oo, object oriented">
10 <META NAME="description" CONTENT="
11GALICE - Geant3 based Simulation Environment">
12 <META NAME="GENERATOR" CONTENT="
13Mozilla/3.0Gold (X11; I; HP-UX B.10.20 9000/819) [Netscape]">
14
15
16 <STYLE TYPE="text/css">
17 H1 {font-style: italic ; color: green ; font-size: 24pt; align: center}
18 H2 { color: red ; font-size: 22pt }
19 H3 { color: blue ; font-size: 20pt }
20 H4 { color: violet; font-size: 18pt }
21 H5 { color: olive ; font-size: 16pt }
22 H6 { color: maroon; font-size: 14pt }
23 TABLE { font-size: 14pt }
24 </STYLE>
25 <BASEFONT SIZE=4>
26<!-- Header material -->
27<hr>
28<table border=0 cellpadding=5 cellspacing=0 width="100%">
29 <tr bgcolor=#d0ffd0>
30 <td align=left width=30%>
31 <img alt="Alice" src="gif/Logo.gif" width="60" height="60"
32 align="absmiddle" border=1>
33 <td align=center width=40%>
34 <font size="+2">
35 Alice Off-Line Project
36 </font>
37 <td align=right width=30% valign=bottom>
38 <font size="-1">
39 <script language="JavaScript">
40 document.write("Last modified "+ document.lastModified)
41 // end of script -->
42 </script></font>
43 </td>
44 </tr>
45</table>
46<hr>
47
48</HEAD>
49
50<BODY TEXT="#000000" BGCOLOR="#FFFFFF"
51LINK="#0000FF" VLINK="#551A8B" ALINK="#FF0000">
52
53<!=========================================================================>
54
55<P>
56<BR>
57<H1>
58 User Manual and Reference <A HREF="history.html#V2_04">(version 2.05)</A>
59</H1>
60
61<!======================================================================>
62<H3><IMG src=gif/act.gif> page under construction </H3>
63<P>
64please send comments to: <A HREF="mailto:Yiota.Foka@cern.ch">Yiota Foka</A>
65</P>
66<HR>
67<!======================================================================>
68
69<H2><FONT COLOR=BLUE>
70<A NAME="Foreword">
71Foreword</FONT>
72</A>
73</H2>
74
75<P>The new version of GALICE has assembled in few months to be used for the
76Technical Design Report exercise. This has left little time to work on
77documentation. Therefore we invite readers of this page to provide
78comments, suggestions and complaints to the Simulation Mailing <A
79HREF="mailto:alice-sim@alice-lb.cern.ch">list</A>.
80
81<H2><FONT COLOR=BLUE>
82<A NAME="Content">
83Content</FONT>
84</A>
85</H2>
86
87<OL>
88<LI><A HREF="#1">Input Data Cards</A>
89<OL TYPE="a">
90 <LI><A HREF="#1.1">User GEANT control cards</A>
91 <LI><A HREF="#1.2">GALICE specific control cards</A>
92</OL>
93<BR>
94<LI><A HREF="#2">The Cut File</A>
95<LI><A HREF="#3">The Lego option</A>
96<LI><A HREF="#4">Code description</A>
97<OL TYPE="a">
98 <LI><A HREF="#4.1">Content of galice.cmz</A>
99 <LI><A HREF="#4.2">FORTRAN coding Conventions</A>
100 <LI><A HREF="#4.3">Numbering and Names</A>
101 <LI><A HREF="#4.4">Common Block Description</A>
102 <LI><A HREF="#4.5">Routine Description</A>
103</OL>
104<BR>
105<LI><A HREF="#5">Output Format</A>
106<LI><A HREF="#6">ROOT Interface to Galice</A>
107<LI><A HREF="#7">Magnetic Field</A>
108<LI><A HREF="#8">Version History</A>
109</UL>
110
111
112Back to:
113<A HREF="http://www1.cern.ch/ALICE/welcome.html">ALICE home</A>,
114<A HREF="http://www1.cern.ch/ALICE/Projects/offline/AliceOffLineHomePage.html">
115Offline home</A>,
116<A HREF="galice.html">
117GALICE home</A>.
118<BR><BR>
119
120<!=========================================================================>
121
122<HR>
123<BR>
124<H2>
125<A NAME="1">1. Input Data Cards
126</A>
127</H2>
128
129<!======================================================================>
130<H3><IMG src=gif/act.gif> page under construction </H3>
131<P>
132please send comments to: <A HREF="mailto:Yiota.Foka@cern.ch">Yiota Foka</A>
133</P>
134<HR>
135<!======================================================================>
136
137<P> The data card file distributed with GALICE contains three categories of
138<A HREF="http://wwwinfo.cern.ch/asdoc/WWW/ffread/ffmain/ffmain.html">
139FFREAD</A> cards:
140
141<UL>
142
143<LI> Standard <A
144HREF="http://wwwcn.cern.ch/asdoc/geant_html3/node21.html">GEANT control
145cards </A>.
146
147<LI> User <A HREF="http://wwwcn.cern.ch/asdoc/geant_html3/node21.html">GEANT
148control cards </A>.
149
150<LI> Generic GALICE cards defined in the routine <A
151HREF="#SXKEY"><B>SXKEY</B></A>
152
153<li> Specific GALICE module cards, described in the single module <A
154HREF="Welcome.html#Detectors">pages</a>.
155
156</UL>
157
158<H3><FONT COLOR="#FF8050"><A NAME="1.1">1.1 User GEANT control cards</A></FONT></H3>
159<!======================================================================>
160<H3><IMG src=gif/act.gif> page under construction </H3>
161<P>
162please send comments to: <A HREF="mailto:Yiota.Foka@cern.ch">Yiota Foka</A>
163</P>
164<HR>
165<!======================================================================>
166<DL>
167<DT><KBD><A NAME="KINE">KINE</A></KBD>
168
169<DD><P>This is a standard GEANT data card, but the meaning of the different
170field is defind by the user. The first field is integer and the others floating
171point. Note that this is a mixed data cards, and it
172mandatory to input floating point numbers with a decimal point. In
173GALICE the meaning is the following:
174
175<DL>
176<DT><P><KBD>
177KINE 1 x y z theta phi pmom part
178</KBD>
179
180<DD><P>One particle per trigger, starting from x, y, z with angles theta and
181phi, momentum pmom and particle type NINT(part). Angles are given in
182degrees.
183
184<DT><P><KBD>
185KINE 2 thmin thmax phimin phimax pmin pmax part npart
186</KBD>
187
188<DD><P>NINT(npart) particles per trigger centered at the interaction point
189(SXIPXS) with theta, phi and p in the range (thmin,thmax), (phimin,phimax),
190(pmin,pmax) and particle type NINT(part). Angles are given in degrees.
191
192<DT><P><KBD>
193KINE -2 thmin thmax phimin phimax pmean sigma part npart
194</KBD>
195
196<DD><P>Same as before, but with a gaussian momentum distribution with average
197pmean and standard deviation sigma. Angles are given in degrees.
198
199<DT><P><KBD>
200KINE 3 parmin parmax thmin thmax phimin phimax pmin pmax
201</KBD>
202
203<DD><P>Source is read from an external file in <A
204HREF="http://www-subatech.in2p3.fr/Sciences/Theorie/venus/venus.html">VENUS</A>
205format. Only accept particle with part, theta, phi, pmom in the range
206(parmin, parmax), (thmin, themax), (phimin, phimax) and (pmin, pmax) where
207part is the GEANT particle code. Angles are given in degrees. This interface is
208now obsolete and has been kept for backward compatibility only.
209
210<DT><P><KBD>
211KINE 4 thmin thmax phimin phimax pmin pmax npart
212</KBD>
213
214<DD><P><CODE>NINT(npart)</CODE> source particles are generated per event
215according to a pt and eta distribution which is parametrised on the SHAKER
216distribution. Angular and momentum cuts are possible with the same meaning
217than the previous cards.
218
219<DT><P><KBD>
220KINE 5 thmin thmax phimin phimax pmin pmax part
221</KBD>
222
223<DD><P>One particle of type <code>part</code> is generated per event
224according to a pt and eta distribution which is parametrised on the <a
225href="http://www-cdf.fnal.gov/cdf.html">CDF</a> data and <a
226href="http://www.thep.lu.se/tf2/staff/torbjorn/jetset/">PYTHIA</a>
227simulation. Code provided by Andreas Morsch (see ALICE notes <a
228href="http://consult.cern.ch/alice/Internal_Notes/1995/05/abstract">95-05</a>
229and <a
230href="http://consult.cern.ch/alice/Internal_Notes/1996/31/abstract">96-31</a>);
231decay is simulated only in phase space. Only accept particle with theta,
232phi and pmom in the range (thmin, themax), (phimin, phimax) and (pmin,
233pmax). Angles are given in degrees. The code of the particles is the
234following:
235
236<p>
237<table align=center>
238 <tr>
239 <th><code>part</code><th>Particle
240 <tr>
241 <td>113<td>J/Psi
242 <tr>
243 <td>114<td>Upsilon
244 <tr>
245 <td>115<td>Phi
246</table>
247
248</DL>
249</DL>
250
251<H3><FONT COLOR="#FF8050"><A NAME="1.2">1.2 GALICE specific control cards</A></FONT></H3>
252
253
254<DL>
255<DT><P><KBD>
256<A NAME="SXLEGO">
257SXLEGO thmin thmax phimin phimax rmin rmax zmax nthe nphi iflego
258</KBD>
259
260<DD><P>Activates LEGO option. See below for explanation of this option.
261GEANTINOS are shot in nthe bins in theta and nphi in phi with the above
262angular limitations, and statistics on the matter traversed is accumulated
263per r in the range (rmin,rmax) and z in the range (0, zmax). iflego has to
264be set to 1 for the card to take effect.
265
266<DT><P><KBD>
267SXEVT ifirst
268</KBD>
269
270<DD><P>First even to be used when reading from file.
271
272<DT><P><KBD>
273<A NAME="SXnnn">
274SXnnn OnOff Gate Version Debug TrackPrint GeomDraw TrackDraw RAW/SPC PAW
275</KBD>
276
277<DD><P>Steers the simulation of a module. nnn can be any of the currently
278implemented module names (see above). All values are integers.
279
280
281<P><TABLE BORDER WIDTH=80% ALIGN=CENTRE>
282<TR>
283 <TH>Flag <TH>Explanation
284<TR>
285 <TH>OnOff
286 <TD>0 the module is absent from the run 1 the module is present in the run
287<TR>
288 <TH>Gate
289 <TD>time gate in nanoseconds for the module
290<TR>
291 <TH>Version
292 <TD>version of the geometry. -1 is the default version, whichever is defined in
293the program
294<TR>
295 <TH>Debug
296 <TD>debug level for a module, can be 0, 1 or 2
297<TR>
298 <TH>TrackPrint
299 <TD>print flag for tracks, can be 0 or 1
300<TR>
301 <TH>GeomDraw
302 <TD>draw flag for the geometry, can be 0 or 1
303<TR>
304 <TH>TrackDraw
305 <TD>draw flag for the tracks, can be 0 or 1
306<TR>
307 <TH>RAW/SPC
308 <TD>0 do not output raw data and space points 1 output raw data and space points
309<TR>
310 <TH>PAW
311 <TD>level of paw output (0,1,2)
312</TABLE>
313
314<P>The meaning of these cards is largely module dependent.
315
316<DT><P><KBD>
317SXDCH idraw
318</KBD>
319
320<DD><P>Select charge of tracks to be drawn: idraw=100*ineg+10*ineut*ipos, where
321the track is drawn if the flag of the corresponding charge is 1.
322
323<DT><P><KBD>
324SXHID ihid
325</KBD>
326
327<DD><P>Hidden line removal (ihid 0=off, 1=on) for drawings.
328
329<A NAME="SXLUN">
330<DT><P><KBD>
331SXLUN input zebra spc paw draw rdb raw
332</KBD>
333
334<DD><P>Fortran logical unit numbers.
335
336<P><TABLE ALIGN=CENTRE WIDTH=80% BORDER>
337<TR>
338 <TH>Parameter <TH>Explanation
339<TR>
340 <TH>input
341 <TD>input unit for the event generator file containing the events as column
342wise ntuples (CWN)
343<TR>
344 <TH>zebra
345 <TD>output unit in zebra format for the /hits
346<TR>
347 <TH>spc
348 <TD>output unit for the raw space points (explained later)
349<TR>
350 <TH>paw
351 <TD>output unit for histograms and other paw objects
352<TR>
353 <TH>draw
354 <TD>output unit for metafile
355<TR>
356 <TH>rdb
357 <TD>input/output unit for initialisation data structures in RZ format. If positive
358the initialisation structures are written to disk, and if negative they are read
359from disk.
360<TR>
361 <TH>raw
362 <TD>logical unit for writing raw data information (not used yet)
363</TABLE>
364
365<DT><P><KBD>
366SXWKS imeta
367</KBD>
368
369<DD><P>Workstation type of graphics output. See the <A
370HREF="http://wwwcn.cern.ch/asdoc/higz/HIGZMAIN.html">HIGZ</A>
371manual for more information.
372
373<DT><P><KBD>
374SXIPX X Y Z
375</KBD>
376
377<DD><P>Sigma in (X,Y,Z) (cm) on interaction point position.
378
379<DT><P><KBD>
380<A NAME="SXFLD">SXFLD</A> ISXFLD ISXFMAP SXMAGN SXMGMX
381</KBD>
382
383<DD><P>Defines the magnetic field to be used:
384
385<P><TABLE BORDER WIDTH=80% ALIGN=CENTRE>
386<TR>
387 <TH>Flag <TH>Explanation
388<TR>
389 <TH>ISXFLD
390 <TD>Magnetic field transport flag 0=no field, 1=Runge Kutta, 2=helix
391<TR>
392 <TH>ISXFMAP
393 <TD>Magnetic field map version (see <a href="#7">later</a>)
394<TR>
395 <TH>SXMAGN
396 <TD>Scale factor for the magnetic field
397<TR>
398 <TH>SXMGMX
399 <TD>Maximum value for the magnetic field
400</TABLE>
401
402<DT><P><KBD>
403<a name="SXHACC">SXHACC</a> isxhacc
404</KBD>
405
406<DD><P>Selects acceptance of heavy particles decay in muon chambers: when
407<code>isxhacc</code> is different from zero, Galice keeps only events with
408both muons in the 2-9 degrees window.
409
410<DT><P><KBD>
411<a name="SXTREE">SXTREE</a> chtree
412</KBD>
413
414<DD><P>Selects the Root trees that are written onto the Root output file. One letter
415selects one tree:
416
417<p><table align=center border=yes>
418<tr>
419 <th> Letter <th> Tree
420<tr>
421 <td> E <td> Event Header Tree
422<tr>
423 <td> K <td> Event Kinematic Tree
424<tr>
425 <td> H <td> Hits Tree
426<tr>
427 <td> D <td> Digits Tree
428</table>
429
430<DT><P><KBD>
431SXVAC ivac
432</KBD>
433
434<DD><P>Selects the material of the Alice mother volume (1 vacuum, 0 air).
435
436<DT><P><KBD>
437SXMAXD sxrmax sxzmax
438</KBD>
439
440<DD><P>Tracking stops if the radius is larger than SXRMA or the absolute value
441of z is larger than SXZMA.
442
443</DL>
444
445<P>Module specific control cards can be defined via the <A
446HREF="#DETMOD">nnn_FKEY</A> routines.
447
448
449<!===================================================================================>
450<P>
451<HR>
452<BR>
453<H2>
454<A NAME="2">2. The Cut file
455</A></FONT>
456</H2>
457<!======================================================================>
458<H3><IMG src=gif/act.gif> page under construction </H3>
459<P>
460please send comments to: <A HREF="mailto:Yiota.Foka@cern.ch">Yiota Foka</A>
461</P>
462<HR>
463<!======================================================================>
464
465<P>In the simulation of the transport of radiation in matter it is
466important to be able to change the energy cuts of the different particles
467and the physic processes
468for each tracking medium. In GEANT 3.21 this is done by setting the <A
469HREF="http://wwwcn.cern.ch/asdoc/geant_html3/node68.html">parameters</A>
470directly in the code. To allow changing these parameters without
471recompiling, a file, if it exists, is read in at initialisation time, where
472the energy thresholds and the flags for the different physics processes
473can be specified for each tracking medium.
474
475<P>The format of the file is the following:
476
477<P><KBD>
478ITMED GAM ELE NH CH MU EBR MBR EDEL MUDEL MUPA ANNI BREM COMP DRAY
479 LOSS MULS PAIR PHOT RAYL
480</KBD>
481
482<P>Where
483
484<P><TABLE ALIGN=CENTER BORDER WIDTH=80%>
485<TR>
486 <TH>Field <TH>Meaning
487<TR>
488 <TH>ITMED
489 <TD>user tracking medium number, i.e. the position in the array
490<A HREF="#SCXDB">IDTMED</A> where the actual tracking medium number
491has been returned by the routine <A HREF="#SXSTME">SXSTME</A>.
492<TR>
493 <TH>GAM
494 <TD>(REAL) Photon transport threshold
495<TR>
496 <TH>ELE
497 <TD>(REAL) Electron/positron transport threshold
498<TR>
499 <TH>NH
500 <TD>(REAL) Neutral hadrons transport threshold
501<TR>
502 <TH>CH
503 <TD>(REAL) Charged hadrons transport threshold
504<TR>
505 <TH>MU
506 <TD>(REAL) Muon transport threshold
507<TR>
508 <TH>EBR
509 <TD>(REAL) Electron/positron energy threshold for bremstrahlung production
510<TR>
511 <TH>MUBR
512 <TD>(REAL) Muon energy threshold for bremstrahlung
513<TR>
514 <TH>EDEL
515 <TD>(REAL) Electron/positron energy threshold for delta rays production
516<TR>
517 <TH>MUDEL
518 <TD>(REAL) Muon energy threshold for delta rays production
519<TR>
520 <TH>MUPA
521 <TD>(REAL) Muon energy threshold for direct pair production
522<TR>
523 <TH>ANNI
524 <TD>(INTEGER) Positron annihilation flag
525<TR>
526 <TH>BREM
527 <TD>(INTEGER) Bremstrahlung flag
528<TR>
529 <TH>COMP
530 <TD>(INTEGER) Compton scattering flag
531<TR>
532 <TH>DRAY
533 <TD>(INTEGER) Delta Ray flag
534<TR>
535 <TH>LOSS
536 <TD>(INTEGER) Energy loss flag
537<TR>
538 <TH>MULS
539 <TD>(INTEGER) Multiple scattering flag
540<TR>
541 <TH>PAIR
542 <TD>(INTEGER) Pair production flag
543<TR>
544 <TH>PHOT
545 <TD>(INTEGER) Photelectric effect flag
546<TR>
547 <TH>RAYL
548 <TD>(INTEGER) Rayleigh scattering flag
549</TABLE>
550
551<P>The first 10 paremeters are energy cuts, and should be entered as
552floating point numbers. Energies are kinetic, and should be entered in GeV.
553The remaining 9 numbers are integers. A negative value is ignored. The
554file name is fixed: <B>galice.cuts</B>.
555
556<P><EM>Please note</EM>: when reading the initialisation data structure
557from disk (triggered when the rdb parameter in <A HREF="#SXLUN">SXLUN</A>
558data card is negative) the galice.cuts file is not read. So any change
559will remain ineffective. If cuts need to be changed, then the
560initialisation data structure needs to be recreated.
561
562<!===================================================================================>
563<HR>
564<BR>
565<H2><FONT COLOR=BLUE>
566<A NAME="3">3. The LEGO Option
567</A></FONT>
568</H2>
569<!======================================================================>
570<H3><IMG src=gif/act.gif> page under construction </H3>
571<P>
572please send comments to: <A HREF="mailto:Yiota.Foka@cern.ch">Yiota Foka</A>
573</P>
574<HR>
575<!======================================================================>
576
577<P>This transport option allows to evaluate the material budget from a
578given radius to the surface of an arbitrary cylinder along radial
579directions from the centre. When the <A HREF="#SXLEGO"><B>SXLEGO</B></A>
580data card is specified, the normal event generation and transport cycle is
581altered. In this case Galice will produce only nthe times nphi
582events. Each event is composed by a single primary track, a <A
583HREF="http://wwwcn.cern.ch/asdoc/geant_html3/node72.html">geantino</A>,
584corresponding to GEANT particle code 48, with unit momentum and angle at
585regular intervals between phimin and phimax and themin and
586themax.
587
588<P>Geantinos are produced at the origin and then moved at the surface
589of a cylinder of radius rmin, where they start being transported. If rmin=0
590geantinos start from the origin. Geantinos are stopped when they reach the
591surface of a cylinder of radius rmax and half length in z zmax.
592
593<P> At the beginning of the job, three double
594dimensional plots are created with nphi times nthe bins:
595
596<P><TABLE WIDTH=50% ALIGN=CENTER>
597<TR>
598 <TD>-100<TD>Radiation length map
599<TR>
600 <TD>-101<TD>Interaction length map
601<TR>
602 <TD>-102<TD>g/cm2 length map
603</TABLE>
604
605<!===================================================================================>
606<HR>
607<BR>
608<H2><FONT COLOR=BLUE>
609<A NAME="4">4. Code description
610</A></FONT>
611</H2>
612<!======================================================================>
613<H3><IMG src=gif/act.gif> page under construction </H3>
614<P>
615please send comments to: <A HREF="mailto:Yiota.Foka@cern.ch">Yiota Foka</A>
616</P>
617<HR>
618<!======================================================================>
619<P>The code of GALICE is composed by two parts. One is a set of FORTRAN routines
620in the framework of GEANT and the other is a set of C++ routines that constitute
621the interface with ROOT. The FORTRAN code is contained in a single
622<A HREF="http://wwwcn.cern.ch/cmz/index.html">cmz</A> file called
623galice.cmz, while the C++ code is contained in a set of file and headers
624that are managed by a makefile.
625
626<H3><FONT COLOR="#FF8050"><A NAME="4.1">4.1 Content of galice.cmz</A></FONT></H3>
627
628<H4><FONT COLOR="#008800">4.1.1 cmz flags</FONT></H4>
629
630<P><TABLE>
631<TR>
632 <TH>ROOTIO<TD> Activates the ROOT interface.
633</TABLE>
634
635<H4><FONT COLOR="#008800"><A NAME="4.1.2">4.1.2 Patches in GALICE</A></FONT></H4>
636
637<P>The code is divided in modules, each one describing a part of the
638experiment. The code relevant to each module is kept in a dedicated cmz
639directory, called PATCH. Each module is composed by one or more routines,
640which are called at different times during the execution of the program and
641perform different actions related to the module. They are contained in
642dedicated to the module DECKs which compose the corresponding PATCH, as can
643be seen for the <A HREF="gif/cmzdirectories.gif">TPC</A>.
644
645<P>The code contains the following patches:
646
647<P><TABLE WIDTH=80% ALIGN=CENTER>
648<TR>
649 <TH ALIGN=LEFT> Patch <TH ALIGN=LEFT>Content
650<TR>
651 <TH ALIGN=LEFT>$VERSION
652 <TD>Standard cmz PATCH containing version control information.
653<TR>
654 <TH ALIGN=LEFT>WRITEUP
655 <TD>Description of the program (this file).
656<TR>
657 <TH ALIGN=LEFT>HISTORY
658 <TD>The modification log.
659<TR>
660 <TH ALIGN=LEFT>$KUMACS
661 <TD>The macros needed to install the program.
662<TR>
663 <TH ALIGN=LEFT>DATA
664 <TD>Examples of data cards and cut files.
665<TR>
666 <TH ALIGN=LEFT>EXAMPLES
667 <TD>Examples of run decks.
668<TR>
669 <TH ALIGN=LEFT>*GALICE
670 <TD>Pilot patch for the standalone version of GALICE.
671<TR>
672 <TH ALIGN=LEFT>*ALIROOT
673 <TD>Pilot patch for the ROOT I/O version of GALICE.
674<TR>
675 <TH ALIGN=LEFT>GCDES
676 <TD>GEANT common blocks
677<TR>
678 <TH ALIGN=LEFT>GALICE
679 <TD>Main programs.
680<TR>
681 <TH ALIGN=LEFT>GUCODE
682 <TD>GEANT user routines.
683<TR>
684 <TH ALIGN=LEFT>STEER
685 <TD>Steering routines for GALICE.
686<TR>
687 <TH ALIGN=LEFT>ITS
688 <TD>Description of the Inner Tracking System
689<TR>
690 <TH ALIGN=LEFT>MAG
691 <TD>Description of the L3 magnet.
692<TR>
693 <TH ALIGN=LEFT>TPC
694 <TD>Description of the Time Projection Chamber
695<TR>
696 <TH ALIGN=LEFT>TOF
697 <TD>Description of the Time Of Flight apparatus
698<TR>
699 <TH ALIGN=LEFT>PMD
700 <TD>Description of the Photon Multiplicity Detector
701<TR>
702 <TH ALIGN=LEFT>PHOS
703 <TD>Description of the Photon Detector
704<TR>
705 <TH ALIGN=LEFT>RICH
706 <TD>Description of the HMPID Rich detector
707<TR>
708 <TH ALIGN=LEFT ALIGN=LEFT>MUON
709 <TD>Description of the Muon Chambers in the Muon Arm
710<TR>
711 <TH ALIGN=LEFT>FRAME
712 <TD>Description of the Support Frame for the TPC
713<TR>
714 <TH ALIGN=LEFT>CASTOR
715 <TD>Description of the Castor detector
716<TR>
717 <TH ALIGN=LEFT>FMD
718 <TD>Description of the Forward Multiplicity Detector
719<TR>
720 <TH ALIGN=LEFT>SUCODE
721 <TD>Dummy user routines
722<TR>
723 <TH ALIGN=LEFT>HALL
724 <TD>Description of the experimental hall
725<TR>
726 <TH ALIGN=LEFT>ABSO
727 <TD>Description of the Muon Absorber
728<TR>
729 <TH ALIGN=LEFT>SHIL
730 <TD>Description of the Muon Arm Shield
731<TR>
732 <TH ALIGN=LEFT>DIPO
733 <TD>Description of the Dipole Magnet
734<TR>
735 <TH ALIGN=LEFT>TRD
736 <TD>Description of the Transition Radiation Detector
737<TR>
738 <TH ALIGN=LEFT>PIPE
739 <TD>Description of the Beam Pipe
740<TR>
741 <TH ALIGN=LEFT>LEGO
742 <TD>Routines needed for the LEGO option
743<TR>
744 <TH ALIGN=LEFT>MISC
745 <TD>Miscellaneous routines
746<TR>
747 <TH ALIGN=LEFT>DUMMIES
748 <TD>Dummy routines
749<TR>
750 <TH ALIGN=LEFT>GPATCH
751 <TD>Corrections for GEANT 3.21
752<TR>
753 <TH ALIGN=LEFT>GDEBUG
754 <TD>Debug version of GEANT 3.21 routines
755<TR>
756 <TH ALIGN=LEFT>ROOTIO
757 <TD>Code specific for ROOT I/O
758<TR>
759 <TH ALIGN=LEFT>LAST
760 <TD>Last PATCH
761</TABLE>
762
763<!====================================================================================>
764
765<H3><FONT COLOR="#FF8050"><A NAME="4.2">4.2 FORTRAN Coding Conventions</A></FONT></H3>
766<!======================================================================>
767<H3><IMG src=gif/act.gif> page under construction </H3>
768<P>
769please send comments to: <A HREF="mailto:Yiota.Foka@cern.ch">Yiota Foka</A>
770</P>
771<HR>
772<!======================================================================>
773
774<P>Some simple coding conventions have been adopted. Only standard ANSI
775Fortran 77 is accepted with the following Fortran 90 compatible extensions:
776<UL>
777<LI> Names of SUBROUTINES and VARIABLES with a maximum of 20 characters.</LI>
778<LI> Names of COMMON blocks with a maximum of 8 characters.</LI>
779<LI> Use of DO WHILE ... ENDDO structures.</LI>
780<LI> The use of IMPLICIT NONE.</LI>
781</UL>
782
783<P>FORTRAN statements are written in CAPITALS. Comment lines start with a
784CAPITAL C or * while the rest of the comment line can be written in mixed
785case. The use of explicit type defintion in combination with <CODE>IMPLICIT
786NONE</CODE> is recommended but not enforced. In any case variable names
787should follow the implicit typing of FORTRAN:
788
789<P><TABLE ALIGN=CENTER WIDTH=80%>
790<TR>
791 <TH ALIGN=LEFT>Type <TH ALIGN=LEFT>Coding
792<TR>
793 <TH ALIGN=LEFT>INTEGER <TD>Variable name starts with I-N
794<TR>
795 <TH ALIGN=LEFT>REAL <TD>Variable names starts with A-H or O-Z
796<TR>
797 <TH ALIGN=LEFT>CHARACTER <TD>Variable name starts with CH
798<TR>
799 <TH ALIGN=LEFT> LOGICAL <TD>Variable name starts with L
800<TR>
801 <TH ALIGN=LEFT>DOUBLE PRECISION <TD>Variable name starts with D
802</TABLE>
803
804<P>This allows the detector space point data to be directly entered into
805the SPC data CWN and also the type of routines/functions arguments can be
806checked directly from the variable names by compiler utilities and/or CMZ.
807
808<P> We strongly encourage the users developing code to follow these rules.
809
810
811
812<!================================================================================>
813
814<H3><FONT COLOR="#FF8050"><A NAME="4.3">4.3 Numbering and Names</A></FONT></H3>
815<!======================================================================>
816<H3><IMG src=gif/act.gif> page under construction </H3>
817<P>
818please send comments to: <A HREF="mailto:Yiota.Foka@cern.ch">Yiota Foka</A>
819</P>
820<HR>
821<!======================================================================>
822<P>Each module has a name, a number and a one letter code:
823
824<P><TABLE ALIGN=CENTER WIDTH=80%>
825<TR>
826 <TH ALIGN=LEFT>Description <TH ALIGN=LEFT>Name <TH ALIGN=LEFT>Number <TH ALIGN=LEFT>Code
827<TR>
828 <TH ALIGN=LEFT>Inner Tracking System <TD>ITS <TD>2 <TD>I
829<TR>
830 <TH ALIGN=LEFT>L3 magnet <TD>MAG <TD>3 <TD>M
831<TR>
832 <TH ALIGN=LEFT>Time Projection Chamber <TD>TPC <TD>4 <TD>T
833<TR>
834 <TH ALIGN=LEFT>Time Of Flight apparatus <TD>TOF <TD>5 <TD>F
835<TR>
836 <TH ALIGN=LEFT>Photon Multiplicity Detector <TD>PMD <TD>6 <TD>W
837<TR>
838 <TH ALIGN=LEFT>Photon Detector <TD>PHOS <TD>7 <TD>P
839<TR>
840 <TH ALIGN=LEFT>Zero Degree Calorimeter <TD>ZDC <TD>8 <TD>Z
841<TR>
842 <TH ALIGN=LEFT>Forward Multiplicity Detector <TD>FMD <TD>9 <TD>G
843<TR>
844 <TH ALIGN=LEFT>HMPID Rich detector <TD>RICH <TD>10 <TD>R
845<TR>
846 <TH ALIGN=LEFT>Muon Chambers in the Muon Arm <TD>MUON <TD>11 <TD>C
847<TR>
848 <TH ALIGN=LEFT>Support Frame for the TPC <TD>FRAME <TD>12 <TD>B
849<TR>
850 <TH ALIGN=LEFT>Transition Radiation Detector <TD>TRD <TD>13 <TD>U
851<TR>
852 <TH ALIGN=LEFT>Castor detector <TD>CASTOR <TD>15 <TD>S
853<TR>
854 <TH ALIGN=LEFT>Muon Absorber <TD>ABSO <TD>16 <TD>A
855<TR>
856 <TH ALIGN=LEFT>Muon Arm Shield <TD>SHIL <TD>17 <TD>Y
857<TR>
858 <TH ALIGN=LEFT>Dipole Magnet <TD>DIPO <TD>18 <TD>D
859<TR>
860 <TH ALIGN=LEFT>Experimental hall <TD>HALL <TD>19 <TD>H
861<TR>
862 <TH ALIGN=LEFT>Beam Pipe <TD>PIPE <TD>20 <TD>Q
863</TABLE>
864
865<P>The detector module numbers are contained in PARAMETERs called <VAR>
866ID_nnn</VAR> in sequence <A HREF="#SCXDB">SCXDB</A>.
867
868<P>To each module is assigned a range of integers:
869
870<P><CENTER><CODE>ID_nnn*100->ID_nnn*100+99</CODE></CENTER>
871
872<P>thad is used throughout the program every time a detector identifier is
873needed. We will refer to this range as the <EM>module range</EM>. The
874modules specific letter will be hereon indicated with <I>char</I>.
875
876<P>The ROUTINES in the different modules are called <VAR>nnn_fff</VAR>,
877where <VAR>nnn</VAR> is the name of the module:
878ITS, MAG, TPC, TOF, PMD, PHOS, RICH, MUON, FRAME, CASTOR, FMD, HALL,
879ABSO, SHIL, DIPO, TRD, PIPE.
880
881<P>When several version of a given module are present, a routine may act as
882a switchyard, to version-specific routines where the last letter is
883replaced by a digit. So if there are 2 version of the TPC, the routine
884TPC_GEOM would just call TPC_GEO0 or TPC_GEO1 according to the version
885chosen for the run.
886
887<P>The complete code referring to a certain detector has to be contained in
8881 patch with the structure:
889
890<PRE>
891 +PATCH,name. Contains the code related to module 'nnn'
892 +DECK,CDES. Contains the private KEEP sequences
893 +DECK,nnn_fff. Contains the code of routine 'nnn_fff'
894</PRE>
895
896<P>Example:
897
898<PRE>
899
900 +PATCH,TOF.
901
902 +DECK,CDES.
903 +KEEP,T_START.
904 COMMON /S_START/ JCOUNT,MOD_FIRST
905 C
906 +KEEP,T_SPC.
907 PARAMETER (MAX6=1000)
908 COMMON /SCXSCR/ NHIT6,IROW6(MAX6),ICOL6(MAX6),IADC6(MAX6)
909 C
910
911 +DECK,TOF_INIT.
912 SUBROUTINE TOF_INIT
913 C
914 +CDE,T_START.
915 C
916 *
917 END
918
919 +DECK,TOF_DIGT.
920 SUBROUTINE TOF_DIGT
921 C
922 +CDE,T_SPC.
923 C
924 *
925 END
926</PRE>
927
928<P>These patches are in the <B>galice.cmz</B> file as described in the <A
929HREF="#4.1.2"> layout </A> of the galice.cmz file.
930
931<P>Any printout message should contain the name of the routine which produced
932it. The recommended way to produce printouts is the FORTRAN WRITE
933instruction. The nnn_INIT and nnn_END routines must printout a message with
934the name of the detector.
935
936<P>The dummy SU <A HREF="#SUCODE">routines</A> may be used to test out new
937component simulation packages. Note that these routines are always called,
938irrespective of the FFREAD data cards selections.
939
940<P>Each module can create private histograms and/or ntuples to investigate
941its performance. All this HBOOK/PAW activity must be under the control of
942the flags related to the <A HREF="#SXnnn">SXnnn</A> FFREAD data cards.
943
944<P>Examples of actions in the module routines are:
945
946<P><UL>
947<LI>Book the histograms/ntuples in the nnn_INIT routines into the //GALICE
948HBOOK directory with a unique identifier, e.g.:
949
950<P><CENTER>CALL HBOOKN(IDN,'...',...,'//GALICE',...,...)</CENTER>
951
952<P>where IDN stands for the HBOOK identifier with the convention:
953
954<P><TABLE ALIGN=CENTER>
955<TR>
956 <TH ALIGN=LEFT>IDN <TD> 1000*J+N
957<TR>
958 <TH ALIGN=LEFT>J <TD> detector identification number (0 for steerings)
959<TR>
960 <TH ALIGN=LEFT>N <TD> histogram number (0 <= N <= 99)
961</TABLE>
962
963<P><TABLE>
964<TR>
965<TD VALIGN=TOP>Notes:
966<TD>
967<OL>
968<LI>IDN=999 is reserved for the output SPC data CWN.
969<LI>IDN=888 is reserved for the input EVTGEN data CWN.
970</OL>
971</TABLE>
972
973<LI>Fill the histograms/ntuples in the nnn_STEP, nnn_TRKE, nnn_EVE routines
974or whatever is the most convenient.
975</UL>
976
977<P>PAW file opening, directory setting and writing out of the ntuples
978etc... is done by the general steering routines.
979
980
981
982<!================================================================================>
983
984<H3><FONT COLOR="#FF8050"><A NAME="4.4">4.4 Common Block Description</A></FONT></H3>
985<!======================================================================>
986<H3><IMG src=gif/act.gif> page under construction </H3>
987<P>
988please send comments to: <A HREF="mailto:Yiota.Foka@cern.ch">Yiota Foka</A>
989</P>
990<HR>
991<!======================================================================>
992<P>The COMMONS of the various detectors are called <B>char_uuuuuu</B>,
993uuuuuu = Left free to the user. An exception on this are the STEERING
994commons which are called <B>SCXuuuuu</B>
995
996<P><TABLE WIDTH=80%>
997<TR>
998<TH VALIGN=TOP>
999Note:
1000<TD>
1001<OL>
1002<LI>The KEEP sequence MUST have the same name as the (first)
1003COMMON in that sequence and the use of BLOCKDATA must be
1004omitted (all initialisation in name_INIT).
1005<LI>Executable statements or DATA statements are NOT allowed
1006in a KEEP sequence.
1007</OL>
1008</TABLE>
1009
1010
1011<H4><FONT COLOR="#cc5050"><A NAME="SCXIO">SCXIO</A></FONT></H4>
1012<PRE>
1013+KEEP,SCXIO.------------------------------------------------------------------------
1014C --- Common which contains the units for the various I/O streams ---
1015 INTEGER LUNIN,LUNZEB,LUNSPC,LUNPAW,LUNDRW,LUNRDB,LUNRAW
1016 $, NKEYS,JRECO
1017C
1018 COMMON /SCXIO/ LUNIN,LUNZEB,LUNSPC,LUNPAW,LUNDRW,LUNRDB,LUNRAW
1019 $, NKEYS,JRECO
1020 CHARACTER*4 KEYS
1021 COMMON /SCXIO2/ KEYS(4)
1022C
1023
1024 LUNIN Logical input unit for the generator data file in case
1025 IKINE=3 (see card KINE).
1026 LUNZEB Logical input unit for writing ZEBRA data structures.
1027 LUNSPC Logical unit for writing Alice space point Column Wise
1028 Ntuples.
1029 LUNPAW Logical unit for PAW Ntuple output
1030 LUNDRW Logical unit for graphic metafil
1031 LUNRDB Logical unit for initial data structure file
1032 NKEYS Number of structures to save every event on LUNZEB
1033 KEYS Name of the structures to save every event on LUNZEB
1034</PRE>
1035
1036<H4><FONT COLOR="#cc5050"><A NAME="SCXDB">SCXDB</A></FONT></H4>
1037<PRE>
1038+KEEP,SCXDB.------------------------------------------------------------------------
1039C --- Common which contains debug flags for the various detectors ---
1040C IDBUGF(J) = Debug level (0,1,2) for detector "J"
1041C --- Also control flags (JPAWF,JVERF,JOUTF) for each detector added ---
1042 INTEGER NDBMAX
1043 PARAMETER (NDBMAX=20)
1044C
1045 INTEGER ID_ITS,ID_MAG,ID_TPC,ID_TOF,ID_PMD,ID_PHOS
1046 $, ID_ZDC,ID_FMD,ID_RICH,ID_STEE,ID_MUON,ID_FRAME,ID_TRD
1047 $, ID_CASTOR,ID_ABSO,ID_SHIL,ID_DIPO,ID_HALL,ID_PIPE
1048 $, ID_ALICE
1049C
1050 PARAMETER (ID_ALICE=0, ID_ITS=2,ID_MAG=3,ID_TPC=4,ID_TOF=5
1051 $, ID_PMD=6,ID_PHOS=7,ID_ZDC=8,ID_FMD=9,ID_RICH=10
1052 $, ID_MUON=11,ID_FRAME=12,ID_TRD=13,ID_CASTOR=15
1053 $, ID_ABSO=16,ID_SHIL=17,ID_DIPO=18,ID_HALL=19,ID_PIPE=20
1054 $, ID_STEE=NDBMAX+1)
1055C
1056 INTEGER IDBUGF,JPAWF,JVERF,JOUTF,IDTMED,ILTMED
1057C
1058 INTEGER MMEDIA
1059 CHARACTER*6 CHNVOL
1060 PARAMETER (MMEDIA=1000)
1061 COMMON /SCXDB/ IDBUGF(NDBMAX+1),JPAWF(NDBMAX+1),JVERF(NDBMAX+1)
1062 $, JOUTF(NDBMAX+1)
1063 $, IDTMED(100*(NDBMAX+1))
1064 $, ILTMED(2,0:NDBMAX)
1065 $, IMEDIA(MMEDIA),CHNVOL(0:NDBMAX)
1066C
1067
1068 IDBUGF Debug flag for all modules (0->2). The storing of the hits
1069 requires a value >0 of this flag.
1070 JPAWF PAW flag for all modules (0->2). This flag triggers
1071 booking and filling of histograms.
1072 JVERF Version chosen for all modules.
1073 JOUTF Raw data (digits) output flag for modules (0, 1).
1074 IDTMED Translation array between tracking media codes and
1075 GEANT numbers.
1076 ILTMED Tracking media id ranges for different modules. The
1077 tracking media identifiers (ID) of module I are such
1078 that ILTMED(1,I)<ID<ILTMED(2,I)
1079 IMEDIA Correspondence between tracking media number and
1080 module identifier. A particle in tracking media II
1081 is in the module whose ID is IMEDIA(II)
1082 CHNVOL Names of the different modules.
1083C
1084</PRE>
1085
1086<H4><FONT COLOR="#cc5050"><A NAME="SCXFF">SCXFF</A></FONT></H4>
1087<PRE>
1088+KEEP,SCXFF.------------------------------------------------------------------------
1089C --- Common which contains FFREAD stuff for the GALICE package ---
1090C --- as well as the total processed event counter ---
1091 INTEGER NSXDET,NLUNS,NPARS
1092 $, JDETF,JTRAF,JDRGF,JDRTF,IFDRAT,ISXDCH,JDCHM,JDCHN,JDCHP
1093 $, ISXWKS,ISXVAC,NSXEVT,IFPART,IFVOLU,IFMATE
1094 $, IFTMED,IFVERT,IFKINE,IFSETS,IFHITS,IFDIGI,IFSECS
1095 $, IFXSEC,IFLOSS,ISXEVT,ISXHID,ISXFLD,ISXFMAP
1096 $, ISXITS,ISXMAG,ISXTPC,ISXTOF,ISXPMD,ISXPHOS
1097 $, ISXZDC,ISXFMD,ISXRICH,ISXMUON,ISXFRAME,ISXTRD,ISXCASTOR
1098 $, ISXSTEE,ISXABSO,ISXSHIL,ISXDIPO,ISXHALL,ISXPIPE
1099 $, ISXHACC
1100 REAL SXGATE,SXMAGN,SXIPXS,SXMGMX,SXRMAX,SXZMAX
1101C
1102 PARAMETER (NSXDET=20,NLUNS=7,NPARS=9)
1103 COMMON /SCXFF/ JDETF(NSXDET+1),JTRAF(NSXDET+1)
1104 $, JDRGF(NSXDET+1),JDRTF(NSXDET+1),IFDRAT
1105 $, ISXDCH,JDCHM,JDCHN,JDCHP
1106 $, SXGATE(NSXDET)
1107 $, ISXWKS,ISXVAC,NSXEVT
1108 $, IFPART,IFVOLU,IFMATE,IFTMED,IFVERT,IFKINE
1109 $, IFSETS,IFHITS,IFDIGI,IFSECS
1110 $, IFXSEC,IFLOSS
1111 $, ISXEVT,SXIPXS(3),ISXHID
1112 $, ISXFLD,ISXFMAP,SXMAGN,SXMGMX
1113 $, ISXITS(NPARS),ISXMAG(NPARS)
1114 $, ISXTPC(NPARS),ISXTOF(NPARS),ISXPMD(NPARS)
1115 $, ISXPHOS(NPARS),ISXZDC(NPARS),ISXFMD(NPARS)
1116 $, ISXRICH(NPARS),ISXMUON(NPARS),ISXFRAME(NPARS)
1117 $, ISXTRD(NPARS),ISXCASTOR(NPARS)
1118 $, ISXABSO(NPARS),ISXSHIL(NPARS),ISXDIPO(NPARS)
1119 $, ISXHALL(NPARS),ISXPIPE(NPARS)
1120 $, ISXSTEE(NPARS),SXRMAX,SXZMAX
1121 $, ISXHACC
1122C
1123 JDETF 0 if the module does not exist, 1 otherwise
1124 JTRAF Step by step printing for the module if not 0
1125 JDRGF Draw in the view bank for the module if not 0
1126 JDRTF Store the track points in memory for the module
1127 if not 0
1128 IFDRAT Not 0 if at least one module is drawn. Then every
1129 event is drawn superinposed to the modules in the view
1130 banks.
1131 ISXDCH Charge of particles drawn (100*NEG+10*NEUT+ICHAR,
1132 where NEG, NEUT and ICHAR can be 0 or 1)
1133 JDCHM 1 if negative particles are drawn
1134 JDCHN 1 if neutral particles are drawn
1135 JDCHP 1 if positive particles are drawn
1136 SXGATE Time gate for the each module
1137 ISXWKS Graphics metafile code
1138 ISXVAC If 1 Alice will be filled with vacuum, if 0 with air
1139 NSXEVT Global event counter
1140 IFPART If 1 PART data structure is printed
1141 IFVOLU If 1 VOLU data structure is printed
1142 IFMATE If 1 MATE data structure is printed
1143 IFTMED If 1 TMED data structure is printed
1144 IFVERT If 1 VERT data structure is printed
1145 IFKINE If 1 KINE data structure is printed
1146 IFSETS If 1 SETS data structure is printed
1147 IFHITS If 1 HITS data structure is printed
1148 IFDIGI If 1 DIGI data structure is printed
1149 IFSECS If 1 Secondary statistic is printed
1150 IFXSEC If 1 hadronic cross section is printed
1151 IFLOSS If 1 energy loss information is printed
1152 ISXEVT Start event number when reading from a file
1153 SXIPXS Interaction point
1154 ISXHID If 1 turns on HIDE option for drawing
1155 ISXFLD Magnetic field transport flag 0=no field, 2=helix, 3=Runge Kutta
1156 ISXFMAP Magnetic field map version (1, 2 see <a href="#7">later</a>)
1157 SXMAGN Scale factor for the magnetic field
1158 SXMGMX Maximum value for the magnetic field
1159 ISXITS Input array of flags for ITS
1160 ISXMAG Input array of flags for MAG
1161 ISXTPC Input array of flags for TPC
1162 ISXTOF Input array of flags for TOF
1163 ISXPMD Input array of flags for PMD
1164 ISXPHOS Input array of flags for PHOS
1165 ISXZDC Input array of flags for ZDC
1166 ISXFMD Input array of flags for FMD
1167 ISXRICH Input array of flags for RICH
1168 ISXMUON Input array of flags for MUON
1169 ISXFRAME Input array of flags for FRAME
1170 ISXTRD Input array of flags for TRD
1171 ISXCASTOR Input array of flags for CASTOR
1172 ISXABSO Input array of flags for ABSO
1173 ISXSHIL Input array of flags for SHIL
1174 ISXDIPO Input array of flags for DIPO
1175 ISXHALL Input array of flags for HALL
1176 ISXPIPE Input array of flags for PIPE
1177 ISXSTEE Input array of flags for STEE
1178 SXRMAX Maximum radius for transport
1179 SXZMAX Maximum value of z for transport
1180 ISXHACC Accept heavy particle decays within mu-chambers acceptance
1181C
1182</PRE>
1183
1184<H4><FONT COLOR="#cc5050"><A NAME="SCXGOE">SCXGEO</A></FONT></H4>
1185<PRE>
1186+KEEP,SCXGEO.-----------------------------------------------------------------------
1187C --- Common which contains some general geometry parameters ---
1188 REAL DALIC
1189C
1190 COMMON /SCXGEO/ DALIC(3)
1191C
1192
1193 DALIC Dimension of the Alice mother volume
1194
1195</PRE>
1196
1197<H4><FONT COLOR="#cc5050"><A NAME="SCXPAW">SCXPAW</A></FONT></H4>
1198<PRE>
1199+KEEP,SCXPAW.-----------------------------------------------------------------------
1200C --- Common which contains the NTUPLE info for the steerings ---
1201 INTEGER NVRS1
1202 REAL VALS1
1203C
1204 PARAMETER (NVRS1=2)
1205 CHARACTER*6 VARS1
1206 COMMON /SCXPAW/ VALS1(NVRS1)
1207 COMMON /SCXPW2/ VARS1(NVRS1)
1208C
1209
1210 VALS1 Names of the NTUPLE variables for the steering
1211 VARS1 Values of the NTUPLE variables for the steering
1212
1213</PRE>
1214
1215<H4><FONT COLOR="#cc5050"><A NAME="SCXPST">SCXPST</A></FONT></H4>
1216<PRE>
1217+KEEP,SCXPST.-----------------------------------------------------------------------
1218C --- Common which contains secondary particle statistics ---
1219 INTEGER IPCNT
1220C
1221 COMMON /SCXPST/ IPCNT(100)
1222 CHARACTER*20 NAME,NAMES
1223 COMMON /SCXPS2/ NAME,NAMES(100)
1224C
1225 SAVE /SCXPST/
1226 SAVE /SCXPS2/
1227C
1228
1229 IPCNT Number of secondaries for each particle species
1230 NAME Temporary storage for the name of the particle
1231 NAMES Names of the particles
1232
1233</PRE>
1234
1235<H4><FONT COLOR="#cc5050"><A NAME="SCXEVT">SCXEVT</A></FONT></H4>
1236<PRE>
1237+KEEP,SCXEVT.-----------------------------------------------------------------------
1238C --- Common which contains standard event parameters ---
1239 INTEGER JSXRUN,JSXEVT,JSXNPA,JSXZB,JSXZT,NSXPIN,IPX,IPY,IPZ
1240 REAL RSXIMP,RSXPNU,RSXECM
1241C
1242 COMMON /SCXEVT/ JSXRUN,JSXEVT,JSXNPA,JSXZB,JSXZT
1243 $, RSXIMP,RSXPNU,RSXECM,NSXPIN(48)
1244 $, IPX,IPY,IPZ
1245C
1246 JSXRUN
1247 JSXEVT
1248 JSXNPA
1249 JSXZB
1250 JSXZT
1251 RSXIMP
1252 RSXPNU
1253 RSXECM
1254 NSXPIN(48)
1255 IPX
1256 IPY
1257 IPZ
1258
1259</PRE>
1260
1261<H4><FONT COLOR="#cc5050"><A NAME="SCXSCR">SCXSCR</A></FONT></H4>
1262<PRE>
1263+KEEP,SCXSCR.-----------------------------------------------------------------------
1264C --- Common containing scratch space for detector SPC/RAW arrays ---
1265 INTEGER NSCR,IARR
1266C
1267 PARAMETER (NSCR=100000)
1268 COMMON /SCXSCR/ IARR(NSCR)
1269C
1270</PRE>
1271
1272<H4><FONT COLOR="#cc5050"><A NAME="SLATE">SLATE</A></FONT></H4>
1273<PRE>
1274+KEEP,SLATE.
1275C --- CERNLIB common with additional info for the DATIME package ---
1276 INTEGER ISL
1277 REAL DUMMY
1278C
1279 COMMON /SLATE/ ISL(6),DUMMY(34)
1280C
1281</PRE>
1282
1283<H4><FONT COLOR="#cc5050"><A NAME="QUEST">QUEST</A></FONT></H4>
1284<PRE>
1285+KEEP,QUEST.
1286C --- CERNLIB common for communication with the ZEBRA package ---
1287 INTEGER IQUEST
1288C
1289 COMMON /QUEST/ IQUEST(100)
1290C
1291</PRE>
1292
1293<H4><FONT COLOR="#cc5050"><A NAME="SCXGEN">SCXGEN</A></FONT></H4>
1294<PRE>
1295+KEEP,SCXGEN.
1296C --- Common containing event generator data ---
1297 INTEGER NIHMAX,NRHMAX,NRGEN,JRGEN,JTKGEN,NIHEAD,IHEAD,NRHEAD,IPAR
1298 REAL RHEAD,THETA,PHI,PMOM,E
1299C
1300 PARAMETER (NIHMAX=12,NRHMAX=6)
1301 COMMON /SCXGEN/ NRGEN,JRGEN,JTKGEN
1302 $, NIHEAD,IHEAD(NIHMAX),NRHEAD,RHEAD(NRHMAX)
1303 $, IPAR,THETA,PHI,PMOM,E
1304C
1305</PRE>
1306
1307<H4><FONT COLOR="#cc5050"><A NAME="SCXZLN">SCXZLN</A></FONT></H4>
1308<PRE>
1309+KEEP,SCXZLN
1310C --- Alice permanent links for ZEBRA banks
1311 INTEGER NALINK, JALINK, JLEDEP
1312 PARAMETER (NALINK=1)
1313 COMMON / SCXZLN / JALINK(NALINK)
1314 EQUIVALENCE (JLEDEP,JALINK(1))
1315
1316</PRE>
1317
1318<H4><FONT COLOR="#cc5050"><A NAME="SCKINE">SCKINE</A></FONT></H4>
1319<PRE>
1320+KEEP,SCKINE,IF=ROOTIO
1321 CHARACTER*4 CHTREE
1322 COMMON / SCKINE / MTRACK, MPRIMA
1323 +, CHTREE(2)
1324
1325C MTRACK Track number in the Root stack
1326C MPRIMA Number of primaries generated
1327C CHTREE Root trees to be created in memory
1328
1329</PRE>
1330
1331<H4><FONT COLOR="#cc5050"><A NAME="SCXMFD">SCXMFD</A></FONT></H4>
1332<PRE>
1333+KEEP,SCXMFD,IF=-ROOTIO.
1334C --- Common containing magnetic field map data
1335 REAL DZ,DX,DY,UDX,UDY,UDZ
1336 $,XMBEG,YMBEG,ZMBEG,XMEND,YMEND,ZMEND
1337 $,BV
1338 INTEGER NX,NY,NZ
1339
1340 PARAMETER(MAXFLD=250000)
1341 COMMON /SCXMFD/ NX,NY,NZ,DZ,DX,DY,UDX,UDY,UDZ
1342 $,XMBEG,YMBEG,ZMBEG,XMEND,YMEND,ZMEND
1343 $,BV(MAXFLD)
1344C
1345C NX, NY, NZ Number of map points
1346C DX, DY, DZ Map cell side
1347C XMBEG, XMEND Map extension in X
1348C YMBEG, YMEND Map extension in Y
1349C ZMBEG, ZMEND Map extension in Z
1350C BV Array of field values (BX,BY,BZ)(IX,IY,IZ)
1351C
1352C
1353</pre>
1354
1355<H4><FONT COLOR="#cc5050"><A NAME="SCXLEGO">SCXLEGO</A></FONT></H4>
1356<PRE>
1357+KEEP,SCXLEGO
1358C --- LEGO option for calculating material traversed
1359C
1360C THEMIN Minimum generation theta
1361C THEMAX Maximum generation theta
1362C PHIMIN Minimum generation phi
1363C PHIMAX Maximum generation phi
1364C RLMIN Generation radius
1365C RLMAX Maximum tracking radius
1366C ZLMAX Maximum tracking Z
1367C NLTHE Number of bins in Theta
1368C NLPHI Numner of bins in Phi
1369C IFLEGO Lego Flag
1370C ICTHE Current theta bin
1371C ICPHI Current phi bin
1372C CURTHE Current theta of track
1373C CURPHI Current phi of track
1374C TOTRADL Total Radiation length
1375C TOTABSO Total absorption length
1376C TOTGCM2 Total G/CM2 traversed
1377C
1378 COMMON / SCXLEGO / THEMIN, THEMAX, PHIMIN, PHIMAX, RLMIN, RLMAX,
1379 $ZLMAX, NLTHE, NLPHI, IFLEGO, ICTHE, ICPHI, TOTRADL, TOTABSO,
1380 $TOTGCM2, CURPHI, CURTHE
1381
1382</PRE>
1383
1384<H4><FONT COLOR="#cc5050"><A NAME="SCCPROTO">SCCPROTO</A></FONT></H4>
1385<PRE>
1386+KEEP,SCCPROTO,IF=ROOTIO
1387//
1388// Prototypes for Galice
1389//
1390#ifdef WIN32
1391#define sxsrot SXSROT
1392#define type_of_call _stdcall
1393#else
1394#define sxsrot sxsrot_
1395#define type_of_call
1396#endif
1397
1398extern "C" void type_of_call
1399 sxsrot(int &nmat, const float &theta1, const float &phi1,
1400 const float &theta2, const float &phi2,
1401 const float &theta3, const float &phi3);
1402</PRE>
1403</pre>
1404
1405
1406<!================================================================================>
1407
1408<H3><A NAME="4.5">4.5 Routine Description</A></H3>
1409<!======================================================================>
1410<H3><IMG src=gif/act.gif> page under construction </H3>
1411<P>
1412please send comments to: <A HREF="mailto:Yiota.Foka@cern.ch">Yiota Foka</A>
1413</P>
1414<HR>
1415<!======================================================================>
1416<H4><A NAME="GALICE">PATCH GALICE</A></H4>
1417<P>Contains the main programs for the standalone FORTRAN version:
1418
1419<P><TABLE>
1420<TR>
1421 <TH ALIGN=LEFT>$GALIBAT <TD> Batch main program.
1422<TR>
1423 <TH ALIGN=LEFT>$GALINT <TD> Interactive main program.
1424</TABLE>
1425
1426<P>These are obsolete.
1427
1428<H4><A NAME="DUMMIES">PATCH DUMMIES</A></H4>
1429<P>Contains dummy routines needed to satisfy all externals. These are called
1430internally from CERNLIB routines.
1431
1432<H4><A NAME="LEGO">PATCH LEGO</A></H4>
1433<P>Contains the routines to calculate the material budget maps when the
1434<A HREF="#3">LEGO</A> option is activated by the <A HREF="#SXLEGO">SXLEGO</A>
1435data card.
1436
1437<DL>
1438<P><DT><A NAME="SXLGCY"><B>SXLGCY(X,V,R,Z,T)</B></A>
1439<DD>Routine to propagate a track to the boundary of a cylinder from the
1440inside. The cylinder is centered in the origin and has the axis along z.
1441Called by SXLGST.
1442
1443<P><TABLE>
1444<TR>
1445 <TH ALIGN=LEFT>X(3)
1446 <TD>Current position
1447<TR>
1448 <TH ALIGN=LEFT>V(3)
1449 <TD>Current direction (unnormalised)
1450<TR>
1451 <TH ALIGN=LEFT>R
1452 <TD>Radius of the cylinder
1453<TR>
1454 <TH ALIGN=LEFT>Z
1455 <TD>half length of the cylinder
1456<TR>
1457 <TH ALIGN=LEFT>T
1458 <TD>distance to the boundary
1459</TABLE>
1460
1461<P><DT><A NAME="SXLGIN"><B>SXLGIN</B></A>
1462<DD>Initialises LEGO calculations. Called by UGINIT.
1463
1464<P><DT><A NAME="SXLGKI"><B>SXLGKI</B></A>
1465<DD>Generates kinematic for lego calculation. Called by GUKINE.
1466
1467<P><DT><A NAME="SXLGOU"><B>SXLGOU</B></A>
1468<DD>End of event routine for LEGO option. Called by GUOUT.
1469
1470<P><DT><A NAME="SXLGST"><B>SXLGST</B></A>
1471<DD>Step routine for the LEGO option. Called by GUSTEP.
1472</DL>
1473
1474<H4><A NAME="MISC">PATCH MISC</A></H4>
1475<DL>
1476<DT><A NAME="fpe"><B>fpe</B></A>
1477<DD>Thanks to <A HREF="mailto:billm@suburbia.net"> W. Metzenthen</A>, 22
1478Parker St, Ormond, Vic 3163, Australia, This code implements floating point
1479trap for the Linux g77/egcs FORTRAN compilers.
1480</DL>
1481
1482<H4><A NAME="GPATCH">PATCH GPATCH</A></H4>
1483<P>Contains corrections for GEANT 3.21
1484
1485<DL>
1486<P><DT><A NAME="CGHPLA"><B>CGHPLA</B></A>
1487<DD>Precision problem corrected in case of volumes with very disuniform
1488dimensions.
1489
1490<P><DT><A NAME="GGPERP"><B>GGPERP</B></A>
1491<DD>Correction in error message.
1492
1493<P><DT><A NAME="GGPPAR"><B>GGPPAR</B></A>
1494<DD>Modified to support TRD1 in TRD1 with negative parameters.
1495
1496<P><DT><A NAME="GRFILE"><B>GRFILE</B></A>
1497Modified to support I/O of ZEBRA linear structures.
1498
1499<P><DT><A NAME="GROUT"><B>GROUT</B></A>
1500<DD>Modified to support I/O of ZEBRA linear structures.
1501</DL>
1502
1503<H4><A NAME="ROOTIO">PATCH ROOTIO</A></H4>
1504
1505<DL>
1506<P><DT><A NAME="GTREVE"><B>GTREVE</B></A>
1507<DD>Modified version of the original GEANT routine. Particles are fetched from
1508the ROOT stack by the routine RXGTRAK and loaded into the JKINE/JVERT
1509structure as track N 1 and vertex N 1. From there on the
1510
1511<P><DT><A NAME="GTRIGI"><B>GTRIGI</B></A>
1512<DD>Modified version of the original GEANT routine. It calls a RXSTIN to
1513initialise the ROOT stack.
1514</DL>
1515
1516<H4><A NAME="DETMOD">Routines for Detector Modules</A></H4>
1517
1518The routines in the different modules are called nnn_fff, where nnn is
1519the name of the module, which can be:
1520
1521<P><CENTER>
1522ITS, MAG, TPC, TOF, PMD, PHOS, RICH, MUON, FRAME, CASTOR, FMD, HALL,
1523ABSO, SHIL, DIPO, TRD, PIPE</CENTER>
1524
1525<P>and fff is:
1526
1527<P><TABLE ALIGN=CENTER WIDTH=80%>
1528<TR>
1529 <TH ALIGN=LEFT>nnn_FKEY
1530 <TD>Definition of the FFREAD data cards specific for a given module.
1531<TR>
1532 <TH ALIGN=LEFT>nnn_INIT
1533 <TD>Initialisation routine for a given module.
1534<TR>
1535 <TH ALIGN=LEFT>nnn_MEDIA
1536 <TD> Definition of materials and tracking media
1537<TR>
1538 <TH ALIGN=LEFT>nnn_GEOM
1539 <TD> Definition of geometry
1540<TR>
1541 <TH ALIGN=LEFT>nnn_SENS
1542 <TD> Definition of hits and digit structure
1543<TR>
1544 <TH ALIGN=LEFT>nnn_DRAW
1545 <TD> Drawing routine
1546<TR>
1547 <TH ALIGN=LEFT>nnn_STEP
1548 <TD> Specific routine called at each step
1549<TR>
1550 <TH ALIGN=LEFT>nnn_TRKI
1551 <TD> Routine called at the beginning of each new track
1552<TR>
1553 <TH ALIGN=LEFT>nnn_TRKE
1554 <TD> Routine called at the end of each new track
1555<TR>
1556 <TH ALIGN=LEFT>nnn_DIGT
1557 <TD> Digitisation routine called at the end of each track
1558<TR>
1559 <TH ALIGN=LEFT>nnn_DIGE
1560 <TD> Digitisation routine called after each event
1561<TR>
1562 <TH ALIGN=LEFT>nnn_EVE
1563 <TD> Termination routine called after each event
1564<TR>
1565 <TH ALIGN=LEFT>nnn_END
1566 <TD> Termination routine called at the end of the run
1567</TABLE>
1568
1569<P>When several version of a given module are present, a routine may act as
1570a switchyard, to version-specific routines where the last letter is
1571replaced by a digit. So if there are 2 version of the TPC, the routine
1572TPC_GEOM would just call TPC_GEO0 or TPC_GEO1 according to the version
1573chosen for the run.
1574
1575<H4><A NAME="STEER">PATCH STEER</A></H4>
1576<P>This patch contains the GALICE Steering Routines
1577
1578<DL>
1579<P><DT><A NAME="SXACCUT"><B>SXACCUT</B></A>
1580<DD>Selects the particles from heavy resonances decay that are within
1581the acceptance of the muon chambers (2-9 degrees).
1582
1583<P><DT><A NAME="SXCOLOR"><B>SXCOLOR</B></A>
1584<DD>Defines the color attribute for the different elements of the setup. Only
1585the first seven colors are used to allow the possibility to make drawing
1586with shading. The algorithm assigns the same color to volumes that are
1587filled with the same tracking medium (modulo 6).
1588
1589<P><DT><A NAME="SXCUTS"><B>SXCUTS</B></A>
1590<DD>Reads the file <A HREF="#2"><B>galice.cuts</B></A> and sets the cuts
1591for a specific tracking medium. Called by UGINIT.
1592
1593<P><DT><A NAME="SXDIGT"><B>SXDIGT</B></A>
1594<DD>Digitising and recording of hits after each track. This routine is
1595called from SXTRKE for tracks saved in the JKINE bank after the calls to
1596the nnn_TRKE routines. This routine in turn calls the nnn_DIGT routines for
1597each module, but ONLY in case that the detector <A HREF="#SXLUN">spc</A>
1598flag has been selected.
1599
1600<P>In the nnn_DIGT routines the detector specific SPC data arrays contained
1601in the <char>_SPC KEEP sequence are filled and written onto the SPC data
1602CWN by a call to HFNTB with the corresponding block name. <char>_SPC should
1603contain the common /SCXSCR/ which serves as a scratch space buffer for all
1604detector raw data. Note that all SPC data consist of INTEGER values. As an
1605example consider the PHOS SPC data structure.
1606
1607<P><EM><FONT COLOR="RED">Note that this code has not yet been developed for
1608all detectors and it implies that the CWN I/O instead that the ROOT I/O is
1609used. CWN output is not supported and will be discontinued soon. When
1610using the ROOT I/O, the digitisation is performed after the simulation in a
1611separate pass with a ROOT macro or a C++ program.</FONT></EM>
1612
1613<P><DT><A NAME="SXDRAW"><B>SXDRAW</B></A>
1614<DD>Drawing of the layout of the various detectors. Called from UGINIT.
1615This routine calls the nnn_DRAW routines of the various detectors. In case
1616view banks are used in the nnn_xxxx routines, then the identifiers of these
1617view banks have to be in the module range. Actual drawing (GDRAW, GDSHOW
1618etc...) may only take place in the SuDRAW routines, and the view banks
1619created have to be deleted (GDELET) at the end of the name_DRAW routines.
1620
1621<P><DT><A NAME="SXEDIN"><B>SXEDIN</B></A>
1622<DD>Initialises the recording of the deposited energy in all
1623volumes. Called by GUKINE.
1624
1625<P><DT><A NAME="SXEDOU"><B>SXEDOU</B></A>
1626<DD>Updates the statistics for the deposited energy at the end of each
1627event. Called by GUOUT.
1628
1629<P><DT><A NAME="SXEDSU"><B>SXEDSU</B></A>
1630<DD>Prints the summary of the energy deposited in all volumes. Called by
1631UGLAST.
1632
1633<P><DT><A NAME="SXFMAP"><B>SXFMAP</B></A>
1634<DD>Routine to read the field map in case the map 2 is chosen. This
1635routine is called by <a href="#UGINIT">UGINIT</a> and it stores the
1636field map either in the common block <a href="#SCXMFD">SCXMFD</a>
1637for the standalone Galice, or in the class AliMagFCM in the
1638version interfaced with Root.
1639
1640<P><DT><A NAME="SXGEOM"><B>SXGEOM</B></A>
1641<DD>Defines the geometry of the complete setup. Called from UGINIT. This
1642routine calls the nnn_GEOM routines of the various modules. SXGEOM defines
1643the Alice mother volume, ALIC, which is a rectangular box filled with air
1644containing the various detectors. All the volumes defined by a module
1645should start with the letter specific to the detector to avoid name
1646clashes. Unfortunately this rule has not been followed entirely, and we
1647reserve the possibility to enforce it in a future version of the program.
1648
1649<P><DT><A NAME="SXKEY"><B>SXKEY</B></A>
1650<DD>Defines the <A
1651HREF="http://wwwcn.cern.ch/asdoc/WWW/ffread/ffmain/ffmain.html">FFREAD</A>
1652data cards. Called by UGINIT.
1653
1654<P><DT><A NAME="SXMECA"><B>SXMECA(MEC,CHMECA)</B></A>
1655<DD>Returns the name of a GEANT interaction mechanism.
1656
1657<P><TABLE WIDTH=80%>
1658<TR>
1659 <TH ALIGN=LEFT>MEC
1660 <TD>Mechanism code.
1661<TR>
1662 <TH ALIGN=LEFT>CHMECA
1663 <TD>(CHARACTER*4) Mechanism name.
1664</TABLE>
1665
1666
1667<P><DT><A NAME="SXMEDIA"><B>SXMEDIA</B></A>
1668<DD>Steers the definition of materials and tracking media for the whole
1669setup. Called by UGINIT. The routines acts as a switchyard calling all
1670the nnn_MEDIA routines for each module. Tracking media identifiers are
1671stored into the IDTMED array in common <A HREF="#SCXDB">SCXDB</A>
1672in the
1673appropriate module range. For instance, all tracking media of the TPC
1674are stored in IDTMED(400:499). They do not need to be stored contiguously.
1675
1676<P><DT><A NAME="SXMULO"><B>SXMULO</B></A>
1677<DD>Routine to save and restore information that is needed when reading the
1678initialisation structures from disk. Called by UGINIT.
1679
1680<P>For a detector complex as Alice the creation of the permanent ZEBRA data
1681structures (DRAW, MATE, PART, ROTM, RUNG, SETS, TMED, VOLU and SCAN) can be
1682quite a long process. This is not disturbing in long production runs, but
1683can hit badly a debug cycle. The structures can be saved on disk and
1684reread, but in the standard version of GEANT the common /GCMULO/ is not
1685saved and restored. This implies that a call to the GPHYSI routine is
1686always needed, which can be very time-consuming. The routine SXMULO save
1687and restores this common together with the arrays IDTMED and IMEDIA in
1688common <A HREF="#SCXDB"> SCXDB</A>.
1689
1690<P>Not to alter the generality of the standard GEANT I/O routines this
1691information is attached as a next bank to the JRUNG bank, that in the
1692original version of GEANT does not have a next bank. Unfortunately the
1693standard I/O routines of GEANT do not read or write linear structures, so
1694we had to introduce modified I/O routines in <A HREF="#GPATCH">GPATCH</A>.
1695
1696<P><DT><A NAME="SXOUT"><B>SXOUT</B></A>
1697<DD>Termination routine called by GUOUT. It perform various I/O operations
1698under user control.
1699
1700<P><DT><A NAME="SXPART"><B>SXPART</B></A>
1701<DD>Defines additional particles and their decay modes. Called by
1702UGINIT. The particles defined are: OMEGA(783), PHI(1020), D+, D-, D0, ANTI
1703D0 RHO+, RHO- and RHO0 and the related decay modes. This routine has mainly
1704been kept for backward compatibility. GEANT 3.21 decays particles according
1705to phase space, which is not correct for these particles. The decay of
1706heavy particles should be performed via some specialised routine such as
1707the ones found in the LUND MonteCarlo library.
1708
1709<P><DT><A NAME="SXPMAT"><B>SXPMAT(IMATE,IPART,MECA)</B></A>
1710<DD>Called by UGLAST, it provides material and particle information for
1711phyisics mechanisms in GEANT. Arguments:
1712
1713<P><TABLE WIDTH=80%>
1714<TR>
1715 <TH ALIGN=LEFT>IMATE
1716 <TD>Material number. 0 means all materials.
1717<TR>
1718 <TH ALIGN=LEFT VALIGN=TOP>IPART
1719 <TD>Particle number. 0 means Electron, Positron, Gamma,
1720 Pi+, Pi-, Neutron, Proton, Alpha.
1721<TR>
1722 <TH ALIGN=LEFT VALIGN=TOP>MECHA
1723 <TD>(CHARACTER*4) the mechanism for which the information is
1724 requested. It can be 'LOSS', 'PHOT', 'ANNI', 'COMP',
1725 'MUNU', 'BREM', 'PAIR', 'DRAY', 'PFIS', 'HADT', 'HADG',
1726 'ALL'
1727</TABLE>
1728
1729
1730<P><DT><A NAME="SXPSTA"><B>SXPSTA(IPAR)</B></A>
1731<DD>Secondary particle statistics called by GUSTEP, UGINIT, UGLAST.
1732
1733<P><TABLE WIDTH=60%>
1734<TR>
1735 <TH ALIGN=LEFT VALIGN=TOP>IPAR
1736 <TD VALIGN=TOP>Action flag:
1737 <TD VALIGN=TOP>
1738 <TABLE>
1739 <TR>
1740 <TD>1
1741 <TD>initialisation
1742 <TR>
1743 <TD>2
1744 <TD>updating statistics
1745 <TR>
1746 <TD>3
1747 <TD>printout of statistics.
1748 </TABLE>
1749</TABLE>
1750
1751
1752<P><DT><A NAME="SXSATS"><B>SXSATS(EDEP,DEDX,RKB,C)</B></A>
1753<DD>Apply Birk's saturation law to energy deposition. Called by the
1754user. This routine does practically the same as GBIRK but it returns the
1755parameters used instead the visible energy alone.
1756
1757<P><TABLE WIDTH=80%>
1758<TR>
1759 <TH ALIGN=LEFT VALIGN=TOP>MODE
1760 <TD VALIGN=TOP> Attenuation mode.
1761 <TD VALIGN=TOP><TABLE>
1762 <TR><TD>1 <TD>organic scintillator
1763 <TR><TD>2 <TD>Liquid (Not yet implemented)
1764 <TR><TD>3 <TD>for Gas (Not yet implemented).
1765 </TABLE>
1766</TABLE>
1767
1768<P>The material is assumed ideal, which means that impurities and aging
1769effects are not taken into account. The algorithm for MODE=1, the only one
1770implemented is:
1771
1772<P><CENTER>EDEP = DESTEP / (1. + RKB*DE/DX +C*(DE/DX)**2)</CENTER>
1773
1774<P>The values of MODE, RKB and C can be entered via
1775<A HREF="http://wwwcn.cern.ch/asdoc/geant_html3/node71.html">GSTPAR</A>:
1776
1777 <P><CODE>CALL GSTPAR(IMATE,'BIRK1',VALUE)</CODE> to set MODE
1778 <BR><CODE>CALL GSTPAR(IMATE,'BIRK2',VALUE)</CODE> to set RKB
1779 <BR><CODE>CALL GSTPAR(IMATE,'BIRK3',VALUE)</CODE> to set C
1780
1781<P>The basic units of the coefficient are g/(MeV*cm<SUP>2</SUP>) because the DE/DX
1782is expressed in MeV/cm Exp. values from NIM 80 (1970) 239-244 are:
1783
1784
1785 <P>RKB = 0.013 g/MeV*cm<SUP>2</SUB>
1786 <BR>C = 9.6 10<SUP>-6</SUP> g<SUP>2</SUP>/(MeV<SUP>2</SUP>)(cm<SUP>4</SUP>)
1787
1788<P><DT><A NAME="SXSENS"><B>SXSENS</B></A>
1789<DD>Steers the definition of the sensitive module elements. Called from
1790UGINIT. This routine calls the nnn_SENS routines of the various modules.
1791The nnn_SENS routines don't have any arguments. The names used in the
1792nnn_SENS routines to define (sets of) sensitive module elements have to
1793start with the pre-defined character as specified for the geometry
1794volumes. Again this use has been lost during evolution of the program and
1795it should probably be reinforced. In case user identifiers (IDTYPE) are
1796used for various module elements (GSDET), these identifiers have to
1797be in the module range.
1798
1799<P><DT><A NAME="SXSMAT"><B>SXSMAT(IMAT,NAMATE,A,Z,DENS,RADL,ABSL,UBUF,NWBUF)</B></A>
1800<DD>Defines a material. This routine is the same as
1801<A HREF="http://wwwcn.cern.ch/asdoc/geant_html3/node50.html">GSMATE</A>
1802with the difference
1803that the material identifier IMAT is an output parameter. The next free
1804material identifier is returned.
1805
1806<P><DT><A NAME="SXSMIX"><B>SXSMIX(IMAT,NAMATE,A,Z,DENS,NLMAT,WMAT)</B></A>
1807<DD>Defines a mixture or a compound. This routine is the same as
1808<A HREF="http://wwwcn.cern.ch/asdoc/geant/H2GEANTCONS110.html">GSMIXT</A>
1809with the difference
1810that the material identifier IMAT is an output parameter. The next free
1811material identifier is returned.
1812
1813<P><DT><A NAME="SXSROT"><B>SXSROT(NMAT,THETA1,PHI1,THETA2,PHI2,THETA3,PHI3)</B></A>
1814<DD>Defines a rotation matrix. This routine is the same as
1815<A HREF="http://wwwcn.cern.ch/asdoc/geant_html3/node118.html"> GSROTM </A>
1816with the difference
1817that the matrix identifier NMAT is an output parameter. The next free
1818matrix identifier is returned.
1819
1820<P><DT><A NAME="SXSTME"><B>
1821SXSTME(KTMED,NATMED,NMAT,ISVOL,IFIELD,FIELDM,TMAXFD,
1822<BR> + STEMAX,DEEMAX,EPSIL,STMIN,UBUF,NWBUF)
1823</B></A>
1824<DD>Defines a tracking media. This routine is the same as GSTMED
1825<A HREF="<http://wwwcn.cern.ch/asdoc/geant/H2GEANTCONS200.html#GSTMED">
1826GSTMED</A>
1827with the
1828difference that the tracking medium identifier KTMED is an output
1829parameter. The next free matrix identifier is returned.
1830
1831<P><DT><A NAME="SXTRKE"><B>SXTRKE</B></A>
1832<DD>End statistics after tracking for each track. Called from GUTRAK. This
1833routine calls the nnn_TRKE routines of the various detectors. The
1834nnn_TRKE routines have 1 argument (IFLAG) to denote primary (1) and
1835secondary (2) tracks.
1836
1837<P><DT><A NAME="SXTRKI"><B>SXTRKI</B></A>
1838<DD>Initialisation before tracking for each track. Called from GUTRAK. This
1839routine calls the nnn_TRKI routines of the various detectors. The
1840nnn_TRKI routines have 1 argument (IFLAG) to denote primary (1) and
1841secondary (2) tracks. Note : The name_TRKI routines are THE location to
1842reset the detector specific hit statistics arrays for a certain track.
1843
1844<P><DT><A NAME="SXWSIM"><B>SXWSIM(X,Y,Z,PX,PY,PZ,JTK,IPA,JSTACK)</B></A>
1845<DD>Handles track information for pattern recognition development. Called by
1846user.
1847
1848<P><TABLE WIDTH=80%>
1849<TR>
1850 <TH ALIGN=LEFT>X,Y,Z<TD> Position of the particle;
1851<TR>
1852 <TH ALIGN=LEFT>PX,PY,PZ<TD> Momentum of the particle;
1853<TR>
1854 <TH ALIGN=LEFT>JTK<TD> Track number;
1855<TR>
1856 <TH ALIGN=LEFT>IPA<TD> Particle code;
1857<TR>
1858 <TH ALIGN=LEFT>JSTACK<TD> Stack number;
1859</TABLE>
1860
1861<P><DT><A NAME="SXZINI"><B>SXZINI</B></A>
1862<DD>Initialises the Alice Zebra structure. Called by UGINIT. The Alice Zebra
1863structure contains the scratch space for recording the energy deposition
1864in all volumes, and it depends on the link JLEDEP in common /SCXZLN/.
1865</DL>
1866
1867<H4><A NAME="SUCODE">PATCH SUCODE</A></H4>
1868<P>User Steering Routines
1869
1870<DL>
1871<P><DT><A NAME="SUDIGE"><B>SUDIGE</B></A>
1872<DD>User entry to digitise and record raw data after each event. Called by
1873GUDIGI.
1874
1875<P><DT><A NAME="SUDIGT"><B>SUDIGT</B></A>
1876<DD>User entry to digitise and record hits after each track. Called by SXDIGT.
1877
1878<P><DT><A NAME="SUDRAW"><B>SUDRAW</B></A>
1879<DD>User entry to draw detector layout. Called by SXDRAW.
1880
1881<P><DT><A NAME="SUEND"><B>SUEND</B></A>
1882<DD>User entry for a termination routine at end of a run. Called by SXEND.
1883
1884<P><DT><A NAME="SUEVE"><B>SUEVE</B></A>
1885<DD>User entry called at the end of each event. Called by SXEVE.
1886
1887<P><DT><A NAME="SUGEOM"><B>SUGEOM</B></A>
1888<DD>User entry for geometry definition. Called SXGEOM.
1889
1890<P><DT><A NAME="SUINIT"><B>SUINIT</B></A>
1891<DD>User entry for initialisation. Called UGINIT.
1892
1893<P><DT><A NAME="SUMEDIA"><B>SUMEDIA</B></A>
1894<DD>User entry for material and tracking media definition. Called by SXMEDIA.
1895
1896<P><DT><A NAME="SUSENS"><B>SUSENS</B></A>
1897<DD>User entry for sensitive detector definition. Called by SXSENS.
1898
1899<P><DT><A NAME="SUSTEP"><B>SUSTEP</B></A>
1900<DD>User entry at each step. Called by GUSTEP.
1901
1902<P><DT><A NAME="SUTRKE"><B>SUTRKE</B></A>
1903<DD>User entry called at the end of eack track. Called by SXTRKE.
1904
1905<P><DT><A NAME="SUTRKI"><B>SUTRKI</B></A>
1906<DD>User entry called at the beginning of eack track. Called by SXTRKI.
1907</DL>
1908
1909
1910<H4><A NAME="GUCODE">PATCH GUCODE</A></H4>
1911<P>Description of Geant User Routines
1912
1913<DL>
1914<P><DT><A NAME="GUDIGI"><B>GUDIGI</B></A>
1915<DD>Digitising and recording of raw data after each event. This routine calls
1916the nnn_DIGE routines of the various detectors ONLY in case that detector
1917has been selected for writing out the RAW data. In the nnn_DIGE routines
1918the detector specific RAW data arrays as specified in +KEEP,char_RAW is
1919filled and written onto the RAW data output stream. Here char stands for
1920the detector specific identification character as specified above. The
1921sequence +KEEP,char_RAW however should actually contain the common /SCXSCR/
1922which serves as a scratch space buffer for all detector raw data. Note
1923that all RAW data consist of INTEGER values. However, the RAW format still
1924has to be defined at the moment.
1925
1926<P><DT><A NAME="GUFLD"><B>GUFLD(VECT,B)</B></A>
1927<DD>User routine to return the magnetic field. The field model is controlled
1928by the FFREAD card <A HREF="#SXFLD">SXFLD</A>. This routine has a FORTRAN
1929version, selected when the standalone version of GALICE is compiled, and a
1930C++ version to be used with the version of GALICE interfaced with ROOT.
1931
1932
1933<P><DT><A NAME="GUPHAD"></A><A NAME="GUHADR"><B>GUHADR and GUPHAD</B></A>
1934<DD>User routines to steer the hadronic package used. If the IHADR flag (FFKEY
1935card or tracking media parameter) is 4, the GEANT FLUKA92 interface is
1936called, while if IHADR is 1 GHEISHA is called.
1937
1938<P><DT><A NAME="GUKINE"><B>GUKINE</B></A>
1939<DD>Event generation routine. It is steered by the <A HREF="#KINE">KINE</A> card.
1940See <A HREF="gif/galice1cards.gif">galice data cards</A> as an example.
1941
1942<P><DT><A NAME="GUOUT"><B>GUOUT</B></A>
1943<DD>Termination routine after each event. This routine calls the nnn_EVE
1944routines of the various detectors.
1945
1946<P><DT><A NAME="GUSTEP"><B>GUSTEP</B></A>
1947<DD>Records possible hits after each step. This routine calls the nnn_STEP
1948routines of the various detectors.
1949
1950<P><DT><A NAME="GUTRAK"><B>GUTRAK</B></A>
1951<DD>User routine called for each primary track.
1952
1953<P><DT><A NAME="GUTREV"><B>GUTREV</B></A>
1954<DD>User routine called for each event.
1955
1956<P><DT><A NAME="UGINIT"><B>UGINIT</B></A>
1957<DD>Initialisation at the beginning of a simulation run called from the main
1958program GALICE. This routine calls the nnn_INIT routines of the various
1959modules. For example the initialization of the PHOS is in PHOS_INIT
1960These nnn_INIT routines perform module specific initialisations (if
1961needed) and also specify the content of the module SPC data block in case
1962the SPC data CWN is used. The name of the SPC data block should be the same
1963as the module name (i.e. PHOS, ZDC etc.). As the names of the variables
1964within the SPC data block have to be unique, each variable has to have as
1965the last character the module specific identification number (see before).
1966 Each nnn_INIT should to produce a short printout indicating the routine
1967name, so that from the log file of a certain run it can be directly seen
1968which detectors were invoked and correctly initialised.
1969
1970<P><DT><A NAME="UGLAST"><B>UGLAST</B></A>
1971<DD>Termination at the end of a simulation run. This routine calls the
1972nnn_END routines of the various detectors. The nnn_END routines don't have
1973any arguments.
1974
1975</DL>
1976
1977
1978<!=======================================================================>
1979
1980<HR>
1981<BR>
1982<H2>
1983<A NAME="5">5. Output Format
1984</A>
1985</H2>
1986<!======================================================================>
1987<H3><IMG src=gif/act.gif> page under construction </H3>
1988<P>
1989please send comments to: <A HREF="mailto:Yiota.Foka@cern.ch">Yiota Foka</A>
1990</P>
1991<HR>
1992<!======================================================================>
1993<P>There are currently two options for the output format of GALICE:
1994<UL>
1995<LI> HBOOK CWN, GEANT HITS and DIGI structures all based on ZEBRA
1996<LI> ROOT Object I/O
1997</UL>
1998
1999<P>The FORTRAN/ZEBRA output format has been kept for backward compatiblity
2000and may be removed in the near future if there are no requests to maintain
2001it. It is described in the galice.cmz file in the DECK FORMAT of the different
2002patches, and the reader is referred to the code for more information.
2003
2004<P>The ROOT Object I/O is described together with the rest of the ROOT interface
2005to Galice in the next chapter.
2006
2007<HR>
2008<BR>
2009<H2>
2010<A NAME="6">6. ROOT Interface to Galice
2011</A>
2012</H2>
2013<!======================================================================>
2014<H3><IMG src=gif/act.gif> page under construction </H3>
2015<P>
2016please send comments to: <A HREF="mailto:Yiota.Foka@cern.ch">Yiota Foka</A>
2017</P>
2018<HR>
2019<!======================================================================>
2020
2021<P> During 1998 GALICE has been upgraded and modified to provide
2022a simulation tool for the Technical Design
2023Reports. Those <A HREF="history.html"> upgrades</A> lead to two releases
2024of the package in June 1998 and are detailed <A HREF="history.html">
2025elsewhere</A>. <B>Version 2.02</B> of GALICE is the first version of the
2026package that includes the ROOT interface.
2027
2028<P>
2029<B>The main reasons for that were to: </B>
2030<UL>
2031<LI> Provide a particle stack within GEANT which is capable to hold
2032 the complete particle
2033 history without inherent limitations. The current GEANT stack
2034 does not save full particle history and is limited to 65K tracks
2035 which is not enough for the process of an ALICE event.</LI>
2036<BR><BR>
2037<LI> Provide output services more advanced than the traditional GEANT
2038 HITS structure based on ZEBRA
2039 and more flexible than the
2040 <A HREF="http://wwwcn.cern.ch/asdoc/hbook_html3/hboomain.html">
2041 Column Wise Ntuple (CWN)</A> and which can hold the amount of data
2042 of ALICE detectors.
2043 The new I/O
2044 can accomodate complex hit structures without inherent space
2045 limitations. The standard CWN are limited to 50,000 events per
2046 column.</LI>
2047<BR><BR>
2048<LI> Provide an evolutive framework, where reconstruction and analysis
2049 programs can be prototyped via ROOT macros, which are nothing else
2050 than C++ fragments. The advantage of the fact that the coding and
2051 scripting language are the same is that these macros can evolve into
2052 compiled libraries
2053 and later reconstruction and analysis packages seamlessly. At the
2054 moment of writing the Alice Offline framework is being defined,
2055 but we already know it will be based on OO technology. This approach
2056 avoids the creation of legacy code, and allow us to reuse whatever
2057 work is done for the TDR's in the final Alice Offline framework.</LI>
2058</UL>
2059
2060<P>
2061<H3>6.1 The traditional GEANT3.21 </H3>
2062
2063<P>The old galice 1.05 program uses GEANT3.21 in the standard way, with
2064KUIP as the interactive interface and the FFREAD cards to specify at run
2065time the source of primary tracks in one event, to select the detectors
2066taking part in the simulation and to switch on or off the sensitive media
2067of the detectors that produce hits that are written out as PAW ntuples. The
2068user routine UGINIT initializes the package and calls UGEOM that sets up
2069the geometry.
2070
2071<BR>
2072
2073<TABLE BORDER="0" CELLSPACING="1" WIDTH="100%">
2074<TR>
2075 <TD ALIGN=left ROWSPAN="2">
2076 <IMG ALT="Logical Diagram of OLD GALICE" ALIGN=left
2077 SRC="htmlgif/oldg.gif"
2078 width="750" height="630" VSPACE="5" HSPACE="2.5" BORDER="0">
2079 </TD>
2080</TR>
2081</TABLE>
2082
2083<P>To process an event GUKINE takes an event from the event generator or
2084generates the primary tracks internally, creating the Geant stacks JVERTEX
2085and JKINE. These stacks are too small to contain a full ALICE event, then
2086secondary tracks are added to them as the tracks are followed though the
2087setup and produce secondaries, overflowing at 65K tracks.
2088
2089<P> The Geometry of the setup and the Hits in the sensitive parts of the
2090detectors are coded by the users in FORTRAN.
2091
2092
2093
2094<H3><A NAME="6.2">6.2 The ROOT interface in GALICE</A></H3>
2095<!======================================================================>
2096<H3><IMG src=gif/act.gif> page under construction </H3>
2097<P>
2098please send comments to: <A HREF="mailto:Yiota.Foka@cern.ch">Yiota Foka</A>
2099</P>
2100<HR>
2101<!======================================================================>
2102<P> To move to the Object Oriented world and to be able to handle
2103simulations of the ALICE detectors in an efficient way for the work being
2104done for the Technical Design Reports (TDRs), it was decided to provide
2105GALICE with a ROOT output. This was done in a way almost transparent to the
2106galice users, keeping the KUIP and FFCARDS steering and the definition of
2107the Geometry and Hits with the same user routines in FORTRAN. A future
2108version in which the steering is done within ROOT and the Geometry and Hits
2109can be defined by users in C++ is in preparation.
2110
2111<P>The code of this C++ interface is entirely documented <A
2112HREF="html/USER_Index.html">here</A>.
2113
2114
2115<P><TABLE>
2116<TR>
2117 <TD ALIGN=left ROWSPAN="2">
2118 <IMG ALT="Logical Diagram of NEW GALICE" ALIGN=left
2119 SRC="htmlgif/newg.gif"
2120 width="750" height="630" VSPACE="5" HSPACE="2.5" BORDER="0">
2121 </TD>
2122</TR>
2123</TABLE>
2124
2125<P> The GEANT routines GUKINE, GTREVE and GUSTEP have been modified so that
2126the GEANT engine only follows one particle at a time and the output objects
2127of the kinematics and hits are stored in ROOT Tree structures. The
2128advantage of treating one particle at a time is that even if in one full
2129ALICE event hundred of thousands of particles are followed, the program
2130runs in less than 20 MBytes of memory.
2131
2132<P> GUKINE when given an event to simulate, sets up a ROOT stack:
2133fParticles, in which all particles are inserted, which will not overflow
2134and which also keeps all the history of all the particles so that if in a
2135later generation a particle crosses a sensitive detector and the hit is
2136written out, one can know from what type of primary it originates and which
2137processes and in which materials gave rise to it.
2138
2139<P> When simulating one event, GUKINE takes one particle at a time and
2140inserts it in the GEANT stack JKINE which is taken by GTREVE and followed
2141through the setup. If in a given tracking step new particles are produced,
2142GUSTEP inserts in the ROOT stack the kinematics of the secondary vertex and
2143all the produced particles which will be fed eventually one by one to the
2144GEANT 3 engine.
2145
2146<P> An ALICE <A HREF="html/USER_Index.html">class library</A> has been
2147created that contains classes corresponding to the Hits defined for each
2148detector in the Fortran routines.
2149
2150<P> The Hits are written out after each track in a ROOT Tree structure
2151TreeH, of the file galice.root. There is one such tree per event. The
2152kinematics of all the particles that produce hits, together with their
2153genealogy up to the primary tracks is stared in the galice.root file in an
2154other tree TreeK of which exists one per event. An additional tree of
2155digits called TreeD is written out at each event. This tree contains
2156information which is relative to the whole event and not track per track,
2157as for instance the energy clusters in the TPC and PHOS. Finally the
2158information of the events in the run is stored in the same file in the tree
2159TreeE, containing the run and event number, the number of vertices, tracks
2160and primary tracks in the event.
2161
2162<P>
2163
2164<H3>The class AliRun</H3>
2165
2166<P>Control class for Alice C++
2167 Only one single instance of this class exists.
2168 The object is created in main program aliroot
2169 and is pointed by the global gAlice.
2170
2171<UL>
2172<LI>Supports the list of all Alice Detectors (fDetectors).
2173<LI>Supports the list of particles (fParticles).
2174<LI>Supports the Trees.
2175<LI>Supports the geometry.
2176<LI>Supports the event display.
2177</UL>
2178
2179<TABLE>
2180<TR>
2181 <TD ALIGN=left ROWSPAN="2">
2182 <IMG ALT="Logical Diagram of OLD GALICE" ALIGN=left
2183 SRC="htmlgif/alirun.gif"
2184 width="750" height="900" VSPACE="5" HSPACE="2.5" BORDER="0">
2185 </TD>
2186</TR>
2187</TABLE>
2188
2189<H3>FORTRAN / C++ Interface routines</H3>
2190
2191<P>To be able to communicate between the FORTRAN code of GEANT and the ROOT
2192data structure, a number of interface routines have been developed. These
2193are in the source file <A
2194HREF="html/examples/aliroot.cxx.html">aliroot.cxx</A>.
2195
2196<!=============================================================================>
2197
2198<DL>
2199
2200<P><DT><A NAME="RXSTMG"><B>RXSTMG</B></A>
2201<DD>C++ step manager dispatcher. This is a direct interface to the <A
2202HREF="html/AliRun.html">AliRun</A> step manager routine. It is called
2203by the default version of GUSTEP and allows the user to handle directly the
2204data structures from C++ instead that via the FORTRAN interface.
2205
2206<P><DT><A NAME="RXAHIT"><B>RXAHIT(IDET, MTRACK, NUMBV, HITS)</B></A>
2207
2208<DD>Stores a hit in the ROOT structure. This routine is supposed to be called
2209by the nnn_step routines.
2210
2211<P><TABLE WIDTH=80%>
2212<TR>
2213 <TH ALIGN=LEFT>IDET
2214 <TD>detector number as found in GEANT common block
2215 <A HREF="http://wwwcn.cern.ch/asdoc/geant_html3/node384.html#SECTION0138000000000000000000000">GCSETS</A>.
2216<TR>
2217 <TH ALIGN=LEFT>MTRACK
2218 <TD>Number of the track generting the hit. The ROOT stack track number is found
2219 in common block <A HREF="#SCKINE">SCKINE</A>
2220<TR>
2221 <TH ALIGN=LEFT>NUMBV
2222 <TD>Array of voume numbers as found in common block
2223 <A HREF="http://wwwcn.cern.ch/asdoc/geant_html3/node384.html#SECTION0138000000000000000000000">GCSETS</A>.
2224<TR>
2225 <TH ALIGN=LEFT>HITS
2226 <TD>Array of user defined hits.
2227</TABLE>
2228
2229<P><DT><A NAME="RXDINI"><B>RXDINI</B></A>
2230<DD>Initialises all detectors. This routine is called by UGINIT.
2231
2232<P><DT><A NAME="RXGTRAK"><B>RXGTRAK (MTRACK, IPART, PMOM, E, VPOS, TOF)</B></A>
2233<DD>Fetches next track from the ROOT stack for transport. Called by the modified
2234version of <A HREF="#GTREVE">GTREVE</A>.
2235
2236<P><TABLE WIDTH=80%>
2237<TR>
2238 <TH ALIGN=LEFT>MTRACK
2239 <TD>Track number in the ROOT stack. If MTRACK=0 no more tracks are left in the
2240 stack to be transported.
2241<TR>
2242 <TH ALIGN=LEFT>IPART
2243 <TD>Particle code in the
2244<A HREF="http://wwwcn.cern.ch/asdoc/geant_html3/node72.html#SECTION024000000000000000000000">GEANT conventions</A>.
2245<TR>
2246 <TH ALIGN=LEFT>PMOM(3)
2247 <TD>Particle momentum in GeV/c
2248<TR>
2249 <TH ALIGN=LEFT>E
2250 <TD>Particle energy in GeV
2251<TR>
2252 <TH ALIGN=LEFT>VPOS(3)
2253 <TD>Particle position
2254<TR>
2255 <TH ALIGN=LEFT>TOF
2256 <TD>Particle time of flight in seconds
2257</TABLE>
2258
2259<P><DT><A NAME="RXSTRAK"><B>RXSTRAK (IDONE, IPARENT, IPART, PMOM, VPOS, TOF, CHMECA, NT)</B></A>
2260<DD>Fetches next track from the ROOT stack for transport. Called by <A HREF="#GUKINE">
2261GUKINE</A> and <A HREF="#GUSTEP">GUSTEP</A>.
2262
2263<P><TABLE WIDTH=80%>
2264<TR>
2265 <TH ALIGN=LEFT>IDONE
2266 <TD>Status of the track. If IDONE=0 the track is put on the ROOT stack but it
2267 is not fetched for transport.
2268<TR>
2269 <TH ALIGN=LEFT VALIGN=TOP>IPARENT
2270 <TD>Parent track. If IPARENT=0 the track is a primary. In GUSTEP the routine
2271is normally called to store secondaries generated by the current track whose
2272ROOT stack number is MTRACK (common <A HREF="#SCKINE">SCKINE</A>.
2273<TR>
2274 <TH ALIGN=LEFT>IPART
2275 <TD>Particle code in the
2276<A HREF="http://wwwcn.cern.ch/asdoc/geant_html3/node72.html#SECTION024000000000000000000000">GEANT conventions</A>.
2277<TR>
2278 <TH ALIGN=LEFT>PMOM(3)
2279 <TD>Particle momentum in GeV/c
2280<TR>
2281 <TH ALIGN=LEFT>VPOS(3)
2282 <TD>Particle position
2283<TR>
2284 <TH ALIGN=LEFT>TOF
2285 <TD>Particle time of flight in seconds
2286<TR>
2287 <TH ALIGN=LEFT>CHMECA
2288 <TD>(CHARACTER*10) Particle origin. This field is user defined and it is
2289not used inside the GALICE code.
2290<TR>
2291 <TH ALIGN=LEFT>NT
2292 <TD>Number assigned to the particle in the ROOT stack.
2293</TABLE>
2294
2295<P><DT><A NAME="RXSTIN"><B>RXSTIN(IRUN,IDEVT)</B></A>
2296<DD> Called by GTRIGI at the beginning of each event.
2297
2298<P><TABLE WIDTH=80%>
2299<TR>
2300 <TH ALIGN=TOP>IRUN
2301 <TD>Current run number
2302<TR>
2303 <TH ALIGN=TOP>IDEVT
2304 <TD>Current user event number
2305</TABLE>
2306
2307<P><DT><A NAME="RXFILE"><B>RXFILE (CHFILE)</B></A>
2308<DD>Opens the ROOT output file. Called by UGINIT.
2309
2310<P><TABLE WIDTH=80%>
2311<TR>
2312 <TH ALIGN=TOP>CHFILE
2313 <TD>(CHARACTER*(*)) file name to be opened.
2314</TABLE>
2315
2316<P><DT><A NAME="RXOUTH"><B>RXOUTH</B></A>
2317<DD>Called by GTREVE at the end of each primary track.
2318
2319<P><DT><A NAME="RXOUTK"><B>RXOUTK(IEVENT)</B></A>
2320<DD>Called by GUOUT to write out kinematics at the end of the event:
2321
2322<P><TABLE WIDTH=80%>
2323<TR>
2324 <TH ALIGN=TOP>IEVENT
2325 <TD>Number of the current event.
2326</TABLE>
2327
2328<P><DT><A NAME="RXFEND"><B>RXFEND</B></A>
2329<DD>Called by UGLAST to write out everything and close down.
2330</DL>
2331
2332<HR>
2333<BR>
2334<H2>
2335<A NAME="7">7. Magnetic Field
2336</A>
2337</H2>
2338<!======================================================================>
2339<H3><IMG src=gif/act.gif> page under construction </H3>
2340<P>
2341please send comments to: <A HREF="mailto:Yiota.Foka@cern.ch">Yiota Foka</A>
2342</P>
2343<HR>
2344<!======================================================================>
2345<P>At the moment there are two magnetic field maps supported.
2346
2347<p><b>Map 1</b>
2348
2349<br>This is a constant field map for the L3 magnet and a parametrised
2350dipole field with the following features:
2351
2352
2353<P><TABLE WIDTH=80%>
2354<TR>
2355 <TH ALIGN=LEFT>position <TH ALIGN=LEFT>field
2356<TR>
2357 <TD>z (725,1225) <TD> {7*(1-1E-5*(975-z)**2), 0, 0)
2358<TR>
2359 <TD>z (-700,700) and sqrt(x**2+(y+30)**2)<560 <TD> {0,0,2)
2360<TR>
2361 <TD> elsewhere <TD> {0,0,0}
2362</TABLE>
2363
2364<p><b>Map 2</b>
2365
2366<br>This is a constant field map for the L3 magnet and a field map for
2367the dipole. The data are contained in the file field01.dat in the same
2368directory than the rest of the files.
2369
2370<HR>
2371<BR>
2372<H2>
2373<A NAME="8">8. Version history
2374</A>
2375</H2>
2376<!======================================================================>
2377<H3><IMG src=gif/act.gif> page under construction </H3>
2378<P>
2379please send comments to: <A HREF="mailto:Yiota.Foka@cern.ch">Yiota Foka</A>
2380</P>
2381<HR>
2382<!======================================================================>
2383<P>The detailed history of the changes to the fortran code can be found in
2384the CMZ <A HREF="history.html">history file</A>. A general description of
2385the modifications including those in the C++ code can be found in the <A
2386HREF="Introduction.html">introduction</A>.
2387
2388<!=============================================================================>
2389<!======================================================================>
2390<H3><IMG src=gif/act.gif> page under construction </H3>
2391<P>
2392please send comments to: <A HREF="mailto:Yiota.Foka@cern.ch">Yiota Foka</A>
2393</P>
2394<HR>
2395<!======================================================================>
2396<BR><BR>
2397<HR>
2398page maintained by :
2399<A HREF="mailto:Yiota.Foka@cern.ch">Yiota Foka</A>
2400<BR>
2401Back to:
2402<A HREF="http://www1.cern.ch/ALICE/welcome.html"> ALICE home, </A>
2403<A HREF="http://www1.cern.ch/ALICE/Projects/offline/AliceOffLineHomePage.html">
2404Offline home</A>
2405
2406</BODY>
2407</HTML>
2408
2409
2410
2411
2412
2413