]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ISAJET/doc/patchy.doc
First commit.
[u/mrichter/AliRoot.git] / ISAJET / doc / patchy.doc
1 \newpage
2 \section{Patchy and PAM Organization\label{PATCHY}}
3
4       Patchy is a code management system developed at CERN and used to
5 maintain the CERN Library. It is used to provide versions of ISAJET for
6 a wide variety of computers. Instructions for using PATCHY are
7 available from \verb|http://wwwinfo.cern.ch/asdoc/Welcome.html|.
8
9       A master source file in Patchy is called a ``PAM.'' The ISAJET
10 PAM contains all the source code and documentation plus Patchy
11 commands to include common blocks and to select the desired version. It
12 is divided into the following patches: 
13
14       \verb|ISACDE|: contains all common blocks, etc. These are divided
15 into decks based on their usage.
16
17       \verb|ISADATA|: contains block data ALDATA. This must always be
18 loaded when using ISAJET.
19
20       \verb|ISAJET|: contains the code for generating events. Each
21 subroutine is in a separate deck with the same name.
22
23       \verb|ISASSRUN|: contains the main program for ISASUSY, which
24 prompts for input parameters and prints out all the decay modes. It is
25 selected by \verb|*ISASUSY|.
26
27       \verb|ISASUSY|: contains code to calculate all the decay widths
28 and branching fractions in the minimal supersymmetric model.
29
30       \verb|ISATAPE|: contains the code for reading and writing tapes,
31 again with each subroutine on a separate deck.
32
33       \verb|ISARUN|: contains a main program and a simple interactive
34 interface.  It is selected by \verb|IF=INTERACT|.
35
36       \verb|ISAZEB|: contains Zebra format output routines, an
37 alternative to the ISATAPE routines.
38
39       \verb|ISZRUN|: contains the analog of ISAPLT for the Zebra
40 format. 
41
42       \verb|ISAPLT|: contains a simple calorimeter simulation and the
43 skeleton of a histogramming job using HBOOK.
44
45       \verb|ISATEXT|: contains the instructions for using ISAJET, i.e.
46 the text of this document. It also includes the documentation for
47 ISASUSY.
48
49       \verb|ISZTEXT|: contains the instructions for the Zebra output
50 routines and a description of the Zebra banks.
51
52       \verb|ISADECAY|: contains the input decay table.
53
54       The code is actually maintained using RCS on a Silicon Graphics
55 computer at BNL. Patchy is used primarily to handle common blocks and
56 machine dependent code.
57
58       The input to YPATCHY must contain both \verb|+USE| cards, which
59 define the wanted program version, and \verb|+EXE| cards, which
60 determine which patches or decks are written to the ASM file. To
61 facilitate this selection, the ISAJET PAM contains the following pilot
62 patches:
63
64       \verb|*ISADECAY|: USE selects ISADECAY and all corrections to it.
65
66       \verb|*ISAJET|: USE selects ISACDE, ISADATA, ISAJET, ISATAPE,
67 ISARUN and all corrections to them. Note that ISARUN is not actually
68 selected without \verb|+USE,INTERACT|.
69
70       \verb|*ISAPLT|: USE selects ISACDE, ISAPLT, and all corrections
71 to them.
72
73       \verb|*ISASUSY|: USE selects CDESUSY, ISASUSY, and ISASSRUN to
74 create a program to calculate all the MSSM decay modes.
75
76       \verb|*ISATEXT|: USE selects ISACDE, ISATEXT, and all corrections
77 to them. 
78
79       \verb|*ISAZEB|: USE selects ISAJET with a Zebra output format.
80
81       \verb|*ISZRUN|: USE selects the Zebra analysis package.
82
83       Patches are provided to select the machine dependent features for
84 specific computers or operating systems:
85
86       \verb|ANSI|: ANSI standard Fortran (no time or date functions)
87
88       \verb|APOLLO|: APOLLO -- only tested by CERN
89
90       \verb|CDC|: CDC 7600 and 60-bit CYBER (obsolete)
91
92       \verb|CRAY|: CRAY with UNICOS
93
94       \verb|DECS|: DEC Station with Ultrix 
95
96       \verb|ETA|: ETA 10 running Unix System V (obsolete)
97
98       \verb|HPUX|: HP/9000 7xx running Unix System V
99
100       \verb|IBM|: IBM 370 and 30xx running VM/CMS 
101
102       \verb|IBMRT|: IBM RS/6000 running AIX 3.x or 4.x
103
104       \verb|LINUX|: PC running Linux with f2c/gcc or g77 compiler
105
106       \verb|SGI|: Silicon Graphics running IRIX
107
108       \verb|SUN|: Sun Sparcstation running SUNOS or Solaris
109
110       \verb|VAX|: DEC VAX or Alpha running VMS
111
112 \noindent These patches in turn select a variety of patches and IF
113 flags, allowing one to select more specific features, as indicated
114 below. (Replace \verb|&| by \verb|+| everywhere.)
115 \begin{verbatim}
116 &PATCH,ANSI.                      GENERIC ANSI FORTRAN.
117 &USE,DOUBLE.                      DOUBLE PRECISION.
118 &USE,STDIO.                       STANDARD FORTRAN 77 TAPE INPUT/OUTPUT.
119 &USE,MOVEFTN.                     FORTRAN REPLACEMENT FOR MOVLEV.
120 &USE,RANFFTN,IF=-CERN.            FORTRAN RANF.
121 &USE,RANFCALL.                    STANDARD RANSET AND RANGET CALLS.
122 &USE,NOCERN,IF=-CERN.             NO CERN LIBRARY.
123 &EOD
124
125 &PATCH,APOLLO.
126 &DECK,BLANKDEK.
127 &USE,DOUBLE.                      DOUBLE PRECISION.
128 &USE,STDIO.                       STANDARD FORTRAN 77 TAPE INPUT/OUTPUT.
129 &USE,MOVEFTN.                     FORTRAN REPLACEMENT FOR MOVLEV.
130 &USE,RANFFTN,IF=-CERN.            FORTRAN RANF.
131 &USE,RANFCALL.                    STANDARD RANSET AND RANGET CALLS.
132 &USE,NOCERN,IF=-CERN.             NO CERN LIBRARY.
133 &USE,IMPNONE.                     IMPLICIT NONE
134 &EOD.
135
136 &PATCH,CDC.                       CDC 7600 OR CYBER 175.
137 &USE,SINGLE.                      SINGLE PRECISION.
138 &USE,LEVEL2.                      LEVEL 2 STORAGE.
139 &USE,CDCPACK.                     PACK 2 WORDS PER WORD FOR INPUT/OUTPUT.
140 &USE,RANFCALL.                    STANDARD RANSET AND RANGET CALLS.
141 &USE,NOCERN,IF=-CERN.             NO CERN LIBRARY.
142 &EOD
143
144 &PATCH,CRAY.                      CRAY XMP OR 2.
145 &USE,SINGLE.                      SINGLE PRECISION.
146 &USE,STDIO.                       STANDARD FORTRAN 77 TAPE INPUT/OUTPUT.
147 &USE,MOVEFTN.                     FORTRAN REPLACEMENT FOR MOVLEV.
148 &USE,NOCERN,IF=-CERN.             NO CERN LIBRARY.
149 &EOD
150
151 &PATCH,DECS.                      DEC STATION (ULTRIX)
152 &USE,SUN.
153 &EOD
154
155 &PATCH,ETA.                       ETA-10.
156 &USE,SINGLE.                      SINGLE PRECISION.
157 &USE,STDIO.                       STANDARD FORTRAN 77 TAPE INPUT/OUTPUT.
158 &USE,MOVEFTN.                     FORTRAN REPLACEMENT FOR MOVLEV.
159 &USE,RANFCALL.                    STANDARD RANSET AND RANGET CALLS.
160 &USE,NOCERN,IF=-CERN.             NO CERN LIBRARY.
161 &EOD
162
163 &PATCH,HPUX.                      HP/9000 7XX RUNNING UNIX.
164 &USE,DOUBLE.                      DOUBLE PRECISION.
165 &USE,STDIO.                       STANDARD FORTRAN 77 TAPE INPUT/OUTPUT.
166 &USE,MOVEFTN.                     FORTRAN REPLACEMENT FOR MOVLEV.
167 &USE,RANFFTN,IF=-CERN.            FORTRAN RANF.
168 &USE,RANFCALL.                    STANDARD RANSET AND RANGET CALLS.
169 &USE,NOCERN,IF=-CERN.             NO CERN LIBRARY.
170 &USE,IMPNONE.                     IMPLICIT NONE
171 &EOD
172
173 &PATCH,IBM.                       IBM 370 OR 30XX.
174 &USE,DOUBLE.                      DOUBLE PRECISION.
175 &USE,STDIO.                       STANDARD FORTRAN 77 TAPE INPUT/OUTPUT.
176 &USE,MOVEFTN.                     FORTRAN REPLACEMENT FOR MOVLEV.
177 &USE,RANFFTN,IF=-CERN.            FORTRAN RANF.
178 &USE,RANFCALL.                    STANDARD RANSET AND RANGET CALLS.
179 &USE,NOCERN,IF=-CERN.             NO CERN LIBRARY.
180 &EOD
181
182 &PATCH,IBMRT.                     IBM RS/6000 WITH AIX 3.1
183 &USE,DOUBLE.                      DOUBLE PRECISION.
184 &USE,STDIO.                       STANDARD FORTRAN 77 TAPE INPUT/OUTPUT.
185 &USE,MOVEFTN.                     FORTRAN REPLACEMENT FOR MOVLEV.
186 &USE,RANFFTN,IF=-CERN.            FORTRAN RANF.
187 &USE,RANFCALL.                    STANDARD RANSET AND RANGET CALLS.
188 &USE,NOCERN,IF=-CERN.             NO CERN LIBRARY.
189 &USE,IMPNONE.                     IMPLICIT NONE
190 &EOD
191
192 &PATCH,LINUX.                     IBM PC WITH LINUX 1.X
193 &USE,DOUBLE.                      DOUBLE PRECISION.
194 &USE,STDIO.  STANDARD FORTRAN 77 TAPE INPUT/OUTPUT.
195 &USE,MOVEFTN.                     FORTRAN REPLACEMENT FOR MOVLEV.
196 &USE,RANFFTN,IF=-CERN.            FORTRAN RANF.
197 &USE,RANFCALL.                    STANDARD RANSET AND RANGET CALLS.
198 &USE,NOCERN,IF=-CERN.             NO CERN LIBRARY.
199 &USE,IMPNONE.                     IMPLICIT NONE
200 &EOD
201
202 &PATCH,SGI.
203 SILICON GRAPHICS 4D/XX.
204 &USE,DOUBLE.                      DOUBLE PRECISION.
205 &USE,STDIO.                       STANDARD FORTRAN 77 TAPE INPUT/OUTPUT.
206 &USE,MOVEFTN.                     FORTRAN REPLACEMENT FOR MOVLEV.
207 &USE,RANFFTN,IF=-CERN.            FORTRAN RANF.
208 &USE,RANFCALL.                    STANDARD RANSET AND RANGET CALLS.
209 &USE,NOCERN,IF=-CERN.             NO CERN LIBRARY.
210 &EOD
211
212 &PATCH,SUN.                       SUN (SPARC)
213 &USE,DOUBLE.                      DOUBLE PRECISION.
214 &USE,STDIO.                       STANDARD FORTRAN 77 TAPE INPUT/OUTPUT.
215 &USE,MOVEFTN.                     FORTRAN REPLACEMENT FOR MOVLEV.
216 &USE,RANFFTN,IF=-CERN.            FORTRAN RANF.
217 &USE,RANFCALL.                    STANDARD RANSET AND RANGET CALLS.
218 &USE,NOCERN,IF=-CERN.             NO CERN LIBRARY.
219 &EOD
220
221 &PATCH,VAX.                       DEC VAX 11/780 OR 8600.
222 &USE,DOUBLE.                      DOUBLE PRECISION.
223 &USE,STDIO.                       STANDARD FORTRAN 77 TAPE INPUT/OUTPUT.
224 &USE,MOVEFTN.                     FORTRAN REPLACEMENT FOR MOVLEV.
225 &USE,RANFFTN,IF=-CERN.            FORTRAN RANF.
226 &USE,RANFCALL.                    STANDARD RANSET AND RANGET CALLS.
227 &USE,NOCERN,IF=-CERN.             NO CERN LIBRARY.
228 &USE,IMPNONE.                     IMPLICIT NONE
229 &EOD
230 \end{verbatim}
231
232       An empty patch INTERACT selects a main program and an interactive
233 interface which will prompt the user for parameters and do some error
234 checking. A patch CERN allows ISAJET to take the random number generator
235 RANF and several other routines from the CERN Library; to use this
236 include the Patchy command
237 \begin{verbatim}
238 &USE,CERN.
239 \end{verbatim}
240 Similarly, a patch PDFLIB enables the interface to the PDFLIB parton
241 distribution compilation by H. Plothow-Besch:
242 \begin{verbatim}
243 &USE,PDFLIB
244 \end{verbatim}
245 The only internal links with PDFLIB are calls to the routines PDFSET,
246 PFTOPDG, and DXPDF, and the common blocks W50510 and W50517,
247 \begin{verbatim}
248 #if defined(CERNLIB_PDFLIB)
249 #include "w50510.inc"
250 * Ignoring t=pass
251 #endif
252 #if defined(CERNLIB_PDFLIB)
253 #include "w50517.inc"
254 * Ignoring t=pass
255 #endif
256 \end{verbatim}
257 which are used to specify the level of output messages and the logical
258 unit number for them.
259
260       In general it should be sufficient to run YPATCHY with the
261 following cradle (replace \verb|&| with \verb|+| everywhere):
262 \begin{verbatim}
263 &USE,(*ISAJET,*ISATEXT,*ISADECAY,*ISAPLT).     CHOOSE ONE.
264 &USE,ANSI,DECS,HPUX,IBM,IBMRT,SGI,SUN,....     CHOOSE ONE.
265 &[USE,INTERACT].                               FOR INTERACTIVE MODE.
266 &[USE,CERN.]                                   FOR CERN LIBRARY.
267 &[USE,HBOOK3.]                                 HBOOK 3 FOR ISAPLT.
268 &EXE.
269 &PAM.
270 &QUIT.
271 \end{verbatim}
272
273       The input to YPATCHY can also contain changes by the user. It is
274 suggested that these not be made permanent parts of the PAM to avoid
275 possible conflicts with later corrections.