Freezer is a program which finds the best fit of a three-dimensionally expanding hydrodynamical source to one-particle distribution and two-particle correlation data from relativistic heavy ion collision experiments. The parameters and model used are fully described in the Los Alamos preprint LA-UR-96-0782, which is also on the Los Alamos preprint server http://xxx.lanl.gov with the designation nucl-th/9603007. I) The files needed to compile the programs are the following: freezer.f - program to find best fits plotfrz.f - program to plot model results subzero.f - subroutines used by both of the above These files must be compiled using a double precision option. On a Sun SPARCstation, with f77 compiler version 4.0, this can be done using the following commands: f77 -c -dalign -libmil -O4 -r8 -u -xtarget=native freezer.f f77 -c -dalign -libmil -O4 -r8 -u -xtarget=native plotfrz.f f77 -c -dalign -libmil -O4 -r8 -u -xtarget=native subzero.f f77 -dalign -libmil -O4 -o freezer -r8 -u -xtarget=native freezer.o subzero.o f77 -dalign -libmil -O4 -o plotfrz -r8 -u -xtarget=native plotfrz.o subzero.o On a Sun with an older fortran compiler, one could use: f77 -c -O -r8 freezer.f f77 -c -O -r8 plotfrz.f f77 -c -O -r8 subzero.f f77 -O -r8 -o freezer freezer.o subzero.o f77 -O -r8 -o plotfrz plotfrz.o subzero.o On an HP workstation, one might try: fort77 -K -w +e +ppu +autodblpad +O3 -c freezer.f fort77 -K -w +e +ppu +autodblpad +O3 -c plotfrz.f fort77 -K -w +e +ppu +autodblpad +O3 -c subzero.f ld /lib/crt0.o freezer.o subzero.o /usr/lib/end.o -lcl -lc -o freezer ld /lib/crt0.o plotfrz.o subzero.o /usr/lib/end.o -lcl -lc -o plotfrz II) In addition to the program files, the following input files are needed to specify starting parameters, integration points, etc. freezer.in - input file for freezer plotfrz.in - input file for plotfrz Each file contains an explanation of the inputs in that file. The program plotfrz will calculate distributions and correlations for various particle momenta at a given point in parameter space. For a more complete explanation, see the file plotfrz.in. III)To run freezer, the user must also supply some of the following one-particle distribution and two-particle correlation data files. pim.dat - pi- one-particle distributions pip.dat - pi+ one-particle distributions kp.dat - K+ one-particle distributions km.dat - K- one-particle distributions pro.dat - proton one-particle distributions pbar.dat - antiproton one-particle distributions pim.cor - pi- two-particle correlations pip.cor - pi+ two-particle correlations kp.cor - K+ two-particle correlations km.cor - K- two-particle correlations A) Each line of the *.dat files must contain a line of the form y xmTm P sigma where each number is real, measured relative to the lab, and y = rapidity of data point xmTm = mT-m of data point (in GeV) P = Ed^3N/dp^3 (in GeV^{-2}) sigma = statistical error on P (in GeV^{-2}) (we are assuming that in freezer.in option(2)=1 and option(3)=0) B) Each line of the *.cor files must contain a line of the form Y KT q_z q_out q_side C sigma where each number is real, Y is relative to the lab, and Y = .5*(y1+y2) is the average rapidity of the pair KT = .5*(p1_out+p2_out) is the average KT of the pair (MeV) q_z = (p1-p2)_z is the longitudinal momentum difference (MeV) q_out = (p1-p2)_out is the out momentum difference (MeV) q_side = (p1-p2)_side is the side momentum difference (MeV) C = P2(p1,p2)/(P(p1)P(p2)) is the correlation function sigma = statistical error of C For three-dimensional binning in q, Y and KT can be taken as the average values of those quantities over the bin under consideration. In freezer.in, the value of option(4) and Ymeas determine how the program should interpret q_z. We have the cases when abs(option(4)) = 1, q_z actually means the quantity y1-y2. = 2, q_z = (p1-p2)_z measured in a fixed frame defined by Ymeas. = 3, q_z = (p1-p2)_z measured in the LCMS frame. negative values of option(4) mean to average over the relative sign of ql and qout. IV) Running freezer. Once the data files have been created and the appropriate options chosen in freezer.in, the Z,A, and intial rapidity of each colliding nucleus should be entered, reasonable starting parameter values should be chosen such as at the AGS for example: 120. .5 2. |T, vT/c, et0 4. 6. 6. |muB/T, tau, R -0.5 1.5 1. |aT, ycm, fs 1. 1. 1. 1. |lampi, lamK, normpi, normK For complete chemical equilibrium, fs should be fixed at 1. For completely incoherent production, lampi and lamK should also be 1. For absolutely normalized data normpi and normK should be 1. (For unnormalized one-particle distribution data, normpi and normK should be allowed to vary). Percent systematic errors should also be specified in freezer.in. To do a summary run at a point in parameters space, set option(1) = 0 The best and fastest chi^2 minimization option is option(1) = 2 If for some reason, the above option does not work, one should try the slower but more durable option(1) = 3 If this also does not find a minimum, the last resort is the excruciatingly slow but very durable option(1) = 1 In general, one should start with a smaller number of integration points first. Once a minimum has been found, start the program again with a larger number of integration points. The rest of the inputs are explained in the file freezer.in. To run the compiled program, just type freezer V) Output. The main output is to the screen and to the file freezer.log. Everything printed to the screen is also printed to freezer.log. These files show the parameters and their corresponding chi^2 for each guess made in parameter space. Once a minimum has been found, the best parameters with their 99% confidence level errors are printed. In addition, other quantities such as baryon density (with their errors) are also printed. Finally the curvature and covariance matrices are printed. In addition to the screen and freezer.log, there is some output to the file parameters.out which was mostly used for debugging and shouldn't concern most users. Finally, for every *.dat (*.cor) file which is read in, a *dist.calc (*cor.calc) file is writen at the end. The first four columns of the *dist.calc files are the same as those of the *.dat files, except that the sigma in the *dist.calc files is the total error (including systematic). The last two columns are the calculated value of the distribution at that point and the chi^2 of that point. So each line will contain the six entries: y xmTm P sigma_tot P_calc chi^2 Note that chi^2 = (P-P_calc)^2/sigma_tot^2. The lines of the *cor.calc files are: Y KT q_z q_out q_side C sigma_tot C_calc chi^2 Explicitly, the names of the possible *.calc files are distpim.calc - pi- one-particle distributions distpip.calc - pi+ one-particle distributions distkp.calc - K+ one-particle distributions distkm.calc - K- one-particle distributions distpro.calc - proton one-particle distributions distpbar.calc - antiproton one-particle distributions corpim.calc - pi- two-particle correlations corpip.calc - pi+ two-particle correlations corkp.calc - K+ two-particle correlations corkm.calc - K- two-particle correlations Every output file (including freezer.log) will be overwritten with each new run of freezer. VI) If you have problems running the program, both Ray Nix (nix@lanl.gov) and Hubert Van Hecke (hubert@lanl.gov) have experience running freezer. Although I may be harder to reach, you can also try me at my wife's email address k8chapman@aol.com. Good luck, Scott Chapman 5/21/96