Merging the VirtualMC branch to the main development branch (HEAD)
[u/mrichter/AliRoot.git] / ISAJET / doc / patchy.doc
CommitLineData
0795afa3 1\newpage
2\section{Patchy and PAM Organization\label{PATCHY}}
3
4 Patchy is a code management system developed at CERN and used to
5maintain the CERN Library. It is used to provide versions of ISAJET for
6a wide variety of computers. Instructions for using PATCHY are
7available from \verb|http://wwwinfo.cern.ch/asdoc/Welcome.html|.
8
9 A master source file in Patchy is called a ``PAM.'' The ISAJET
10PAM contains all the source code and documentation plus Patchy
11commands to include common blocks and to select the desired version. It
12is divided into the following patches:
13
14 \verb|ISACDE|: contains all common blocks, etc. These are divided
15into decks based on their usage.
16
17 \verb|ISADATA|: contains block data ALDATA. This must always be
18loaded when using ISAJET.
19
20 \verb|ISAJET|: contains the code for generating events. Each
21subroutine is in a separate deck with the same name.
22
23 \verb|ISASSRUN|: contains the main program for ISASUSY, which
24prompts for input parameters and prints out all the decay modes. It is
25selected by \verb|*ISASUSY|.
26
27 \verb|ISASUSY|: contains code to calculate all the decay widths
28and branching fractions in the minimal supersymmetric model.
29
30 \verb|ISATAPE|: contains the code for reading and writing tapes,
31again with each subroutine on a separate deck.
32
33 \verb|ISARUN|: contains a main program and a simple interactive
34interface. It is selected by \verb|IF=INTERACT|.
35
36 \verb|ISAZEB|: contains Zebra format output routines, an
37alternative to the ISATAPE routines.
38
39 \verb|ISZRUN|: contains the analog of ISAPLT for the Zebra
40format.
41
42 \verb|ISAPLT|: contains a simple calorimeter simulation and the
43skeleton of a histogramming job using HBOOK.
44
45 \verb|ISATEXT|: contains the instructions for using ISAJET, i.e.
46the text of this document. It also includes the documentation for
47ISASUSY.
48
49 \verb|ISZTEXT|: contains the instructions for the Zebra output
50routines 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
55computer at BNL. Patchy is used primarily to handle common blocks and
56machine dependent code.
57
58 The input to YPATCHY must contain both \verb|+USE| cards, which
59define the wanted program version, and \verb|+EXE| cards, which
60determine which patches or decks are written to the ASM file. To
61facilitate this selection, the ISAJET PAM contains the following pilot
62patches:
63
64 \verb|*ISADECAY|: USE selects ISADECAY and all corrections to it.
65
66 \verb|*ISAJET|: USE selects ISACDE, ISADATA, ISAJET, ISATAPE,
67ISARUN and all corrections to them. Note that ISARUN is not actually
68selected without \verb|+USE,INTERACT|.
69
70 \verb|*ISAPLT|: USE selects ISACDE, ISAPLT, and all corrections
71to them.
72
73 \verb|*ISASUSY|: USE selects CDESUSY, ISASUSY, and ISASSRUN to
74create a program to calculate all the MSSM decay modes.
75
76 \verb|*ISATEXT|: USE selects ISACDE, ISATEXT, and all corrections
77to 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
84specific 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
113flags, allowing one to select more specific features, as indicated
114below. (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.
203SILICON 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
233interface which will prompt the user for parameters and do some error
234checking. A patch CERN allows ISAJET to take the random number generator
235RANF and several other routines from the CERN Library; to use this
236include the Patchy command
237\begin{verbatim}
238&USE,CERN.
239\end{verbatim}
240Similarly, a patch PDFLIB enables the interface to the PDFLIB parton
241distribution compilation by H. Plothow-Besch:
242\begin{verbatim}
243&USE,PDFLIB
244\end{verbatim}
245The only internal links with PDFLIB are calls to the routines PDFSET,
246PFTOPDG, 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}
257which are used to specify the level of output messages and the logical
258unit number for them.
259
260 In general it should be sufficient to run YPATCHY with the
261following 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
274suggested that these not be made permanent parts of the PAM to avoid
275possible conflicts with later corrections.