WHIZARD is Free Software (under the GPL Gnu Public License) and the
sources can be obtained from
or alternatively from
tar xzf whizard-1.xx.tgz
will unpack the sources in the current working directory (note that
the tarball does not generate a new directory). After unpacking, the
following subdirectories will exist:
- contains the manual
- contains the configuration file and default input files
- contains the definition of the Fortran REAL
- contains the O’Mega distribution,
the default matrix element generator of WHIZARD
- contains the CIRCE beamstrahlung library
- contains the CIRCE2 library
- contains the VAMP integration library
- contains the gamelan sources which allow a
graphical representation of WHIZARD results
- contains the actual WHIZARD sources
- contains the scripts needed for running WHIZARD
and, after compilation, the WHIZARD executable
- is created during compilation and holds the
resulting program libraries which when linked make up the WHIZARD
- contains after compilation the Fortran include files
and files containing the parameters of the model in use
- is created during compilation and holds the
source code for the generated matrix elements and corresponding
Feynman graph pictures
- contains the WHIZARD
executable and input files after installation
- contains the LATEX macros for drawing
- contains maintenance scripts
- contains the CompHEP sources]
- contains the MadGraph sources]
- contains the HELAS library which is
used by MadGraph]
The following programs must be available on the host system in order
to successfully compile and run WHIZARD1 :
GNU Make: Required for compiling WHIZARD. The scripts in
WHIZARD also make use of standard UNIX tools such as
grep, sed, etc.
- PERL 5: Matrix element generation is controlled by PERL scripts.
- Fortran 95: The programming language of the actual
WHIZARD code. Be aware that some Fortran compilers, unfortunately,
still have internal bugs that prevent successful compilation of
WHIZARD. Meanwhile, the gfortran shipped with the
gcc bundle compiles WHIZARDfrom version 4.3 on (which
is the oldest compiler version still supported by gcc).
- Fortran 77: This is required only for interoperability with
pre-compiled Fortran 77 libraries such as the CERNLIB. If
this is not needed, a symlink to the Fortran 95 compiler should suffice.
- O’Caml Objective Caml programming language: this is
needed for the compilation of O’Mega in a recent version (3.04 or
newer). This has become part of of most (if not all) Linux
distributions. Otherwise, you can get it from
The following programs are not needed for compiling and running WHIZARD, but
only for some additional features:
The LHAPDF library for parton distribution functions. The
package can be found here
Although it is not mandatory, it is highly recommended to compile
LHAPDF with the same Fortran95 compiler as WHIZARD, because
otherwise you might need to link compiler libraries into the
- The STDHEP library for writing events in STDHEP format. This library is
contained in the CERN
library in pre-compiled version only. (Using it may require the
corresponding Fortran77 runtime library, which is determined
automatically by configure.) Alternatively, if you do not
want to rely on the CERNLIB, you could get the STDHEP library from
- The PDFLIB library from
the CERN library (CERNLIB) which accounts for parton
distribution functions. (Using it may require the corresponding
Fortran77 runtime library, which is determined automatically by
configure.) Although this is still supported within
WHIZARD 1, it is considered to be deprecated, and one should use
When you still want to use this feature, and there is a precompiled
version on your system (e.g. compiled with f77 or
g77), then you probably need to include
FCFLAGS=-lg2c. Furthermore, you might need to compile the
file f77_files.f in the whizard-src directory with
<your f95 compiler> -c f77_files.f and include the
object file in the following line in the file bin/whizard.ld:
OBJ="$* processes-src/*.o whizard-src/f77_files.o".
- PYTHIA can
be used for decaying and hadronizing the events generated by WHIZARD.
If the PYTHIA library is present on the host system, it will be
called for that purpose from inside WHIZARD, so no external interface
is needed. The library is contained in the
CERN library in
pre-compiled version. (Using it may require the corresponding
Fortran77 runtime library, which is determined automatically by
configure.) Important: Note that the WHIZARD 1
configure setup only supports the PYTHIA library as it is
contained in the CERNLIB, using a version compiled by yourself might
lead to the need to modify several configure options or
for typesetting the documentation (including this manual)
Note that the cleanest and most complete way to get LATEXis to
install the TeXLive bundle.
for making the HTML version of the manual
for on-line generation of histogram and data plots. This is again
contained in the TeXLive bundle.
for weaving the program sources.
for creating a configure script in the
3.2.3 Independent components
WHIZARD contains the following four sub-programs which are basically
independent programs by themselves, but have been agreed upon by their
authors to be merged into the WHIZARD bundle from version 1.90
on. This has been done in WHIZARD version 1.90 and the 1.9x
distribution series by just attaching the code of these tools to the
WHIZARD main core, while in WHIZARD 2 the sub-components have been
recovered as completely, self-configurable and independently
The four tools discussed above are
O’Mega the matrix element generator. This program is now
steered also via the WHIZARD HepForge page
that only the O’Mega versions up to 0.xx are compatible with
WHIZARD 1.xx. The newer versions carrying the same version number
as WHIZARD 2.x.x have been designed and modified to work with
WHIZARD 2 only. Again, only for WHIZARD up to version 1.51 a
separate download of O’Mega is necessary, from 1.90 on the matrix
element generator is included in the WHIZARD tarball.
- CIRCE and CIRCE2 (for lepton collider beam spectra and photon
collider spectra) are now steered from the WHIZARD HepForge
page as well,
They have been re-named there as CIRCE1 and CIRCE2,
respectively. CIRCE itself has been included into WHIZARD from
the very beginning, while CIRCE2 is part of the distribution since
version 1.28. Both programs have been attached with an additional
WHIZARD interface, which has been modernized and updated in
- VAMP is the multi-channel adaptive integration routine of
WHIZARD which has been part of the WHIZARD core since the very
beginning of the program. It is now as well steered via the
WHIZARD HepForge page
3.2.4 Alternative matrix element generators
The following two matrix element generators in modified versions are
included in the WHIZARD distribution and need not be obtained
The URLs below should be inspected for the documentation,
references, and license conditions:
The CompHEP version which is included in WHIZARD is completely
out-of-date (version 3.2.18), but has an additional Fortran 95
interface. It is kept mainly for the possibility of generating
spin-summed matrix element for simple processes, which the
other methods (which use helicity amplitudes) cannot provide as
efficiently. Furthermore, with CompHEP the definition of new models
is straightforward and does not require programming.
Again, only a very old version from the MadGraph 3 release series with
a modified Fortran 95 interface is supported by WHIZARD. Especially,
the version attached to the WHIZARD distribution does not contain
any Higgs self couplings.
It should be stressed that the current CompHEP and MadGraph
versions are much more powerful than the versions included within the
WHIZARD distribution and are full-fledged event generators by
Running the configure script
will check the availability of programs and utilities and generate the
Makefiles appropriate for the host system. At the end of the
configuration, a summary of the available/enabled and
unavailable/disabled features is printed.
configure can be re-run. This is useful if you
change environment variables or configure options (see below). If you
would like to make the changes active and you have already made or run
the WHIZARD executable, it may be necessary to do a make
clean before you redo make prg or similar.
If you only wish to re-generate the Makefiles without changing
anything else, you can run
You may also use the command
in order to remove everything including the files
whizard.in and thus restore the original status of the
3.3.1 Configure options
According to the standard, the available options to
can be viewed by typing
However, although this prints a long list of standard options, none of
them are relevant except for the ones which enable or disable
parts of the WHIZARD package. If you wish to disable a module,
where MODULE is the tag of one of the modules in the list
below. There can be multiple disable options in the command line.
Conversely, the command
will configure WHIZARD with module MODULE enabled.
Here is the list of modules that can be switched on or off in this
|Module||Tag||Purpose||Enabled by default|
|Parton structure functions||yes|
|Parton structure functions||yes|
|Fragmentation and hadronization||yes|
|Binary event files for further processing||yes|
There are a few more configure options that might be relevant, but are
not sub-packages to be disabled or enabled. The most interesting
option for the user,
--enable-quadruple allows to use quadruple
precision, if the compiler supports this (like e.g. the standard
gfortram). As a default it is switched off. Note that in some
earlier WHIZARD versions this was set by means of an environment
flag (cf. next subsection), but has been changed into a configure
option lately. The option
--enable-fc-profiling is only
intended for profiling monitoring for developpers, while the option
--enable-fc-impure would trigger a compilation of the O’Mega
libraries with non-pure and non-elemental functions. This allows to
use print statements in the matrix elements for debugging.
3.3.2 Configure environment
The following environment variables are recognized by
configure. They need to be set only if configure
cannot find a program or library, or if a choice different from the
default one is desired. Path and program names should be specified
absolute, not relative to the working directory.
- GNU Make.
- The Fortran 90/95 compiler. (The aliases
F95,F90 also work.)
- Flags to be passed to the Fortran 90/95
compiler. (The aliases F95FLAGS, F90FLAGS also
- The Fortran 77 compiler. This is needed
for correctly linking precompiled Fortran 77 libraries (see below).
It is highly recommended to use whenever possible the same compiler
for the Fortran 95 and Fortran 77 code.
- Flags to be passed to the Fortran 77 compiler.
- The PERL executable.
- Libraries to pass to the linker, e.g.
- To link additional libraries before the default ones.
- To link additional libraries after the default ones.
- linker flags, e.g.
-L<lib dir> if you have
libraries in a nonstandard directory
- Directory where temporary files are stored. By default,
/tmp is used.
- The directory where the LHAPDF library resides.
We strongly advice to compile LHAPDF with the same Fortran 90/95
compiler used for the compilation of WHIZARD.
- The directory where the precompiled (F77) CERN
libraries reside (optional). This includes the STDHEP, PDFLIB and
PYTHIA libraries together with auxiliary libraries. If necessary,
individual environment variables STDHEP_DIR, PDFLIB_DIR and PYTHIA_DIR
can be used to override the setting of CERNLIB_DIR. If CERNLIB_DIR
is not set, /cern/pro/lib is assumed.
- Directory where the notangle, noweave,
cpif executables reside (optional). With these programs
the Fortran 95 sources and a documented program listing can be
(re-)generated from the ultimate source whizard.nw.
- GNU tar (optional).
Instead of specifying configure options and environment variables on
the command line, they may be defined in the script
which is executed each time configure is run.
There are a few more environment variables like
CPPFLAGS concerning the
compiler, precompiler and their corresponding flags. As this is only
relevant for compiling CompHEP we do not mention these flags here
After configuration is complete, one can test if the whole system works by
This will set up a Standard Model standard candle process using all
activated matrix element generators, i.e. per default O’Mega, compile
the whole package and start the program for the process e+e−→
νeνe H in the Standard Model (in up to three versions of
the same process, but compiled by different generators if CompHEP or
MadGraph are enabled.). With the parameter set taken from the
default input file, this should result in equal cross sections for all
activated matrix elements, about 85 fb each.4
Finally, a small sample of 100 events is generated and, if the
PYTHIA module is activated, fragmented by JETSET.
While the above test is more like a demo, there are actually
self-tests provided that check whether the results obtained with the
three different matrix-element generators actually agree. Currently,
the possibilities are
Note that the selftests compare the string expressions of the program
output for the three different matrix element generators. As the
numerical routines are slightly different, the results may deviate
from each other and hence produce a fake failure of the self test.
Just have a look at the numbers. Only the SM test should report a few
real disagreements. These come from the fact that currently O’Mega
does not couple the Higgs to muons or strange quarks, while Madgraph
does not treat Higgs pairs correctly. The MSSM test currently has just
O’Mega matrix elements, since the built-in CompHEP and MadGraph
versions do not support the MSSM. However, the results can be compared
with the numbers in the appendix of .
Unnecessary intermediate files will be removed if you say
If the process configuration file is modified to hold a new list of
processes for the same or a different physics model, new
calls will remake the system as needed, so under normal circumstances
no files have to be deleted explicitly. If you are not sure about the
current status, you may remove the process-dependent files by
To do a thorough cleanup, type
This will also remove the CompHEP and MadGraph executables used
for generating matrix elements, recovering the state just after
removes also the files resulting from configuration, thus recovering
the initial state of the package as it comes in the distribution.
Note that this also deletes some files which you may have edited
whizard.in in the
directory, the input files in the
results directory, and the
user.f90 in the
whizard-src directory, so save them
elsewhere if you do not want to lose their contents. After
distclean has been executed, you have to run
configure before any further
make command can be executed.
For further options, see the comments in the header of the master Makefile.