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 |
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. |