beowulf Usage Notes

For beowulf version 1.0
11 October 1999

Compiling

lepton% f77 -u beowulf.f beowulfsubs.f -o beowulf

Running

  1. Start the program.
  2. Give the number of hours that beowulf should run. You can give 0.01 if you just want to see if it is working, or much longer times if you want to have small statistical errors.
  3. Give the ratio of the MS-bar renormalization scale to the c.m. energy. A good choice is 0.3.
  4. Give a seed for the random number generator.
Here is an example.
lepton% beowulf
 Please give the approximate CPU time limit (hours).
1
 Please give ratio of the renormalization scale to sqrt(s).
0.3
 Please give a seed (0<I<259200) for random numbers.
31415

Output

Here is an explanation of the program's output, using as an example the output file that was used in hep-ph/9910292.

Statement of parameters

When the program starts, it will write the values of the parameters that it is using.
 beowulf version 1.0 Wed Oct  6 15:33:27 1999    
--------------------------------------------------
 Latest revision 30 September 1999   
 beowulf 1.0 subroutines 30 September 1999
  
 I put as much faith in my martial
 might and power as Grendel puts in his.
 Therefore Ill not slay him with a sword...
 ... no sword on earth
 even the best of iron war-blades,
 could make a dent in that miscreant; 
 for he had worked a spell on weapons
 to blunt their edge...
   - Beowulf, translated by Stanley B. Greenfield
  
Beowulf will work for   30.00 hours
using groups of  41 sets of points.
The seed is    3741.
Use  3.0     colors and  5.0     flavors.
Renormalization parameter:
                   mu /Sqrt(s):  1.0    
Cutoff parameters:
                 Badness limit: 1.00E+04
            Cancellation limit: 1.00E+04

All graphs are used.
Most of this should be self-explanatory, but I discuss below two items.

1) The program chooses points in sets. Each set consists of of 1500 points distributed over the ten graph topologies. The sets are assembled into groups. Here we learn how many sets there will be in a group; when the program is done, we will learn how many groups have been used. The division into sets and groups is relevant for the error analysis, which is based on the fluctuations of the results among the groups.

2) A small region is excluded from the integration according to the values of two parameters, the badness limit and the cancellation limit. A point has large badness if it is very near one of the collinear or soft singularities, so that the program is likely to mess up in calculating the kinematics. The program calculates, as a kind of side product, a sample integral (discussed below). A point has large cancellation if the largest contribution to the sample integral from a point is large compared to the net contribution, so that the calculation of the net contribution may not be accurate. If the badness is bigger than the badness limit OR if the cancellation is bigger than the cancellation limit, then the point is excluded from whatever quantities are being calculated. The program lists the values of the limits that it is using.

Standard results

As mentioned above, the program calculates a sample integral. By default, this is the coefficient of (alphas/pi)2 in the perturbative expansion of the average value of (1-thrust)2 times sigma /sigma0. That is this is the "average" normalized to the born level total cross section sigma0, not the full total cross section sigma.

After   108031.6 CPU seconds, Beowulf is done.
Beowulf used   1223 groups of points.

Results for average of (1 - thrust)**2:
  
     Points included in result:    73049596
   Points in cutoff correction:     1860300
       Points dropped entirely:      304604
  
         Re(Result) =   1.5582     +/-  2.47E-03
         Im(Result) =  1.68589E-03 +/-  1.62E-03
  Cutoff correction =  6.56821E-03 +/-  1.72E-04

Check integral, equal to 1.0 plus a cutoff error.

          Re(Check) =  0.94978     +/-  1.34E-03
          Im(Check) =  2.71013E-04 +/-  1.19E-03
The following items are reported:

Hrothgar's results

The main point of the program is to send events with weights to a subroutine Hrothgar. This subroutine, which can be easily modified by the user, can use the events and their weights to calculate whatever quantities may be desired. (Hrothgar was the king for whom Beowulf rendered mighty service by eliminating a monster, Grendel, that had been terrorizing the neighborhood, eating the king's loyal subjects, etc.)

The main program sends a signal to Hrothgar that now is the time to report on the status of all monsters in the kingdom, and Hrothgar issues his report.

For each item in Hrothgar's report below, the following quantities are reported:

The first part of the report below concerns the ratio of the order alphas2 contribution to the thrust distribution divided by a function that fits the results for this quantity reported by Kunszt and Nason (Z Physics at LEP I, CERN Yellow report). This ratio is averaged over a region centered on the stated value of the thrust T, using a smooth weighting function. In the next two parts of the report below, moments of the thrust distribution and of the derivative of the three jet cross section with respect to ycut are reported.

Of course, you are invited to modify the Hrothgar subroutine to calculate whatever you want.

       ---   Hrothgar reports   ---

First, the order alpha_s^2 contribution to the
thrust distribution d sigma /d T divided by the
same quantity as reported in Kunszt and Nason.

T = 0.710    Kunszt-Nason function =   15.    
             Result =  0.99005     +/-  7.59E-03
  Cutoff correction =  4.44456E-03 +/-  1.31E-03
  Alternative error =  7.85E-03

T = 0.740    Kunszt-Nason function =   20.    
             Result =   1.0035     +/-  7.28E-03
  Cutoff correction =  1.72994E-03 +/-  5.95E-04
  Alternative error =  7.28E-03

T = 0.770    Kunszt-Nason function =   25.    
             Result =   1.0069     +/-  7.22E-03
  Cutoff correction =  2.41163E-03 +/-  4.63E-04
  Alternative error =  7.21E-03

T = 0.800    Kunszt-Nason function =   30.    
             Result =  0.99124     +/-  7.03E-03
  Cutoff correction =  3.53905E-03 +/-  4.50E-04
  Alternative error =  6.89E-03

T = 0.830    Kunszt-Nason function =   36.    
             Result =   1.0017     +/-  6.55E-03
  Cutoff correction =  3.51994E-03 +/-  5.20E-04
  Alternative error =  6.55E-03

T = 0.860    Kunszt-Nason function =   43.    
             Result =   1.0034     +/-  6.47E-03
  Cutoff correction =  4.23506E-03 +/-  5.31E-04
  Alternative error =  6.93E-03

T = 0.890    Kunszt-Nason function =   51.    
             Result =  0.98547     +/-  6.00E-03
  Cutoff correction =  4.03103E-03 +/-  4.06E-04
  Alternative error =  6.02E-03

T = 0.920    Kunszt-Nason function =   61.    
             Result =  0.99413     +/-  6.02E-03
  Cutoff correction =  6.49589E-03 +/-  3.49E-04
  Alternative error =  6.11E-03

T = 0.950    Kunszt-Nason function =   71.    
             Result =  0.98709     +/-  6.79E-03
  Cutoff correction =  8.00994E-03 +/-  3.36E-04
  Alternative error =  6.99E-03


Next, moments <(1-t)^n>.

n = 1.500
             Result =   4.1017     +/-  8.20E-03
  Cutoff correction =  2.51794E-02 +/-  6.27E-04
  Alternative error =  8.62E-03

n = 2.000
             Result =   1.5582     +/-  2.47E-03
  Cutoff correction =  6.56821E-03 +/-  1.72E-04
  Alternative error =  2.51E-03

n = 2.500
             Result =  0.64164     +/-  1.01E-03
  Cutoff correction =  2.23154E-03 +/-  7.66E-05
  Alternative error =  1.03E-03

n = 3.000
             Result =  0.28132     +/-  4.56E-04
  Cutoff correction =  8.63891E-04 +/-  3.75E-05
  Alternative error =  4.68E-04

n = 3.500
             Result =  0.12919     +/-  2.19E-04
  Cutoff correction =  3.61927E-04 +/-  1.94E-05
  Alternative error =  2.26E-04

n = 4.000
             Result =  6.14342E-02 +/-  1.09E-04
  Cutoff correction =  1.59899E-04 +/-  1.04E-05
  Alternative error =  1.13E-04

n = 4.500
             Result =  3.00131E-02 +/-  5.60E-05
  Cutoff correction =  7.33847E-05 +/-  5.68E-06
  Alternative error =  5.77E-05

n = 5.000
             Result =  1.49800E-02 +/-  2.92E-05
  Cutoff correction =  3.46548E-05 +/-  3.16E-06
  Alternative error =  3.01E-05

n = 5.500
             Result =  7.60795E-03 +/-  1.55E-05
  Cutoff correction =  1.67315E-05 +/-  1.78E-06
  Alternative error =  1.60E-05

n = 6.000
             Result =  3.91996E-03 +/-  8.29E-06
  Cutoff correction =  8.22155E-06 +/-  1.01E-06
  Alternative error =  8.56E-06


Next, moments <(y_cut)^n>.

n = 1.500
             Result =  0.83829     +/-  3.35E-03
  Cutoff correction =  5.87475E-03 +/-  3.46E-04
  Alternative error =  3.46E-03

n = 2.000
             Result =  0.30907     +/-  1.17E-03
  Cutoff correction =  1.54926E-03 +/-  1.10E-04
  Alternative error =  1.16E-03

n = 2.500
             Result =  0.11998     +/-  5.18E-04
  Cutoff correction =  5.12261E-04 +/-  5.43E-05
  Alternative error =  5.21E-04

n = 3.000
             Result =  4.92598E-02 +/-  2.48E-04
  Cutoff correction =  1.90048E-04 +/-  2.83E-05
  Alternative error =  2.54E-04

n = 3.500
             Result =  2.11476E-02 +/-  1.24E-04
  Cutoff correction =  7.59152E-05 +/-  1.52E-05
  Alternative error =  1.28E-04

n = 4.000
             Result =  9.39777E-03 +/-  6.39E-05
  Cutoff correction =  3.19755E-05 +/-  8.30E-06
  Alternative error =  6.65E-05

n = 4.500
             Result =  4.29044E-03 +/-  3.35E-05
  Cutoff correction =  1.40198E-05 +/-  4.57E-06
  Alternative error =  3.50E-05

n = 5.000
             Result =  2.00119E-03 +/-  1.78E-05
  Cutoff correction =  6.34354E-06 +/-  2.53E-06
  Alternative error =  1.87E-05

n = 5.500
             Result =  9.49728E-04 +/-  9.60E-06
  Cutoff correction =  2.94404E-06 +/-  1.40E-06
  Alternative error =  1.01E-05

n = 6.000
             Result =  4.57186E-04 +/-  5.21E-06
  Cutoff correction =  1.39540E-06 +/-  7.77E-07
  Alternative error =  5.47E-06

Diagnostics

The last part of the output is some diagnostic information that results from the calculation of the sample integral. This is for users who want to know how well the program is doing. The first item tells the distribution of the contributions v to the sample integral. The average value of v is about 1. It would be nice if all of the contributions had log10(|v|) in the range -2 to 1. Points with log10(|v|) < -2 are essentially wasted because they are not contributing significantly to the average. Points with log10(|v|) > 1 are a problem because they make the statistical error large. Alas, there are points with 3 < log10(|v|) < 4. Each of these points makes a very big contribution to the statistical error. The largest |v| in this run is reported as 11100. Values of |v| up to about this large are occasionally be encountered. Evidently, there is room for improvement in the code.

The rest of the diagnostic report concerns the characteristics of the point with the worst value of |v|.

***********************
Diagnostic information: 
  
Number of points with -9 < log_10(|v|) <-8 is     190332
Number of points with -8 < log_10(|v|) <-7 is     314329
Number of points with -7 < log_10(|v|) <-6 is     532377
Number of points with -6 < log_10(|v|) <-5 is     943304
Number of points with -5 < log_10(|v|) <-4 is    1773132
Number of points with -4 < log_10(|v|) <-3 is    3591729
Number of points with -3 < log_10(|v|) <-2 is    7596561
Number of points with -2 < log_10(|v|) <-1 is   14374406
Number of points with -1 < log_10(|v|) < 0 is   19658209
Number of points with  0 < log_10(|v|) < 1 is   16690674
Number of points with  1 < log_10(|v|) < 2 is    6578019
Number of points with  2 < log_10(|v|) < 3 is     484572
Number of points with  3 < log_10(|v|) < 4 is       2491
Number of points with  4 < log_10(|v|) < 5 is          1
Number of points with  5 < log_10(|v|) < 6 is          0
Number of points with  6 < log_10(|v|) < 7 is          0
  
Biggest contribution was   1.110E+04
From graph  1, map 19
  
 Analysis by subroutine DIAGNOSTIC
  
Graph number   1
 Point:
P = 1  K =    -4.15        3.02        4.58    
P = 2  K =     4.15       -3.02       -4.58    
P = 3  K =    -4.15        3.02        4.58    
P = 4  K =    0.956       -4.67       -2.19    
P = 5  K =     3.20        1.64       -2.39    
P = 6  K =    -3.20       -1.64        2.39    
P = 7  K =     22.0       -27.9       -8.63    
P = 8  K =    -18.8        29.6        6.24    
  
 Softness:
P = 1  |K| =     6.88    
P = 2  |K| =     6.88    
P = 3  |K| =     6.88    
P = 4  |K| =     5.24    
P = 5  |K| =     4.32    
P = 6  |K| =     4.32    
P = 7  |K| =     36.6    
P = 8  |K| =     35.6    
  
 Collinearity:
V = 3 Ps = 2 4 5  sines =   0.62684   0.99962   0.76151
V = 4 Ps = 3 4 6  sines =   0.62684   0.99962   0.76151
V = 5 Ps = 5 7 8  sines =   0.95845   0.11623   0.98511
V = 6 Ps = 6 7 8  sines =   0.95845   0.11623   0.98511
  
Badness of this point is   9.7    
  
 CALCULATE finds the folowing:
Ncut = 3 CUTINDEX = 5 4 1 0
Contribution (CT): -0.6021893117      1.8240549937E-03
  7  Contribution:  0.6924560058     -3.3412414194E-03
Ncut = 3 CUTINDEX = 6 4 1 0
Contribution (CT): -0.6021893117     -1.8240549937E-03
  7  Contribution:  0.6924560058      3.3412414194E-03
Ncut = 4 CUTINDEX = 8 7 4 1
     Contribution: -5.0601347140E-12  0.0000000000E+00
VALUE =  0.1805      0.0000E+00 ABS(VALUE) =   0.1805    
BIGGEST contribution was   0.6925    

 DONE Fri Oct  8 02:57:09 1999    

Davison E. Soper
Institute of Theoretical Science
University of Oregon
Eugene OR 97403 USA
soper@bovine.uoregon.edu