Manual-3 3
Manual-3 3
∗
contact persons: Alexander Pukhov: [email protected] and Viacheslav Ilyin:
[email protected]
1
Contents
1 Preface 6
1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2 History and contributions . . . . . . . . . . . . . . . . . . . . 8
1.3 Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . 10
2 Installation procedure 12
2.1 CompHEP Web page . . . . . . . . . . . . . . . . . . . . . . 12
2.2 License . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.3 How to get the codes . . . . . . . . . . . . . . . . . . . . . . . 13
2.4 Compilation procedure . . . . . . . . . . . . . . . . . . . . . . 13
2.5 User installation and start of the CompHEP session . . . . . 16
2.6 Installation under MS Windows9x/NT . . . . . . . . . . . . . 17
3 User guide 18
3.1 Elements of the user interface . . . . . . . . . . . . . . . . . . 18
3.1.1 Graphical interface . . . . . . . . . . . . . . . . . . . . 18
3.1.2 Interface for a text-screen mode . . . . . . . . . . . . . 22
3.2 Menu system for symbolic calculation . . . . . . . . . . . . . . 23
3.2.1 Choice of the model and work with it . . . . . . . . . . 23
3.2.2 Input of the process . . . . . . . . . . . . . . . . . . . . 26
3.2.3 Squaring of diagrams and symbolic calculation . . . . . 27
3.2.4 Output of results and launching of the numerical cal-
culation . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.2.5 Non-interactive session . . . . . . . . . . . . . . . . . . 32
3.3 Numerical calculation by CompHEP . . . . . . . . . . . . . . 33
3.3.1 Sketch of the menu system . . . . . . . . . . . . . . . . 34
3.3.2 Numeration of Monte Carlo sessions . . . . . . . . . . . 35
3.3.3 QCD scale . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.3.4 Breit-Wigner propagator . . . . . . . . . . . . . . . . . 36
3.3.5 Phase space functions . . . . . . . . . . . . . . . . . . 37
3.3.6 Cuts . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.3.7 Kinematics . . . . . . . . . . . . . . . . . . . . . . . . 39
3.3.8 Regularization . . . . . . . . . . . . . . . . . . . . . . . 39
3.3.9 VEGAS menu . . . . . . . . . . . . . . . . . . . . . . . 40
3.3.10 Batch calculations . . . . . . . . . . . . . . . . . . . . 41
2
3.3.11 Integration by means of the Simpson method . . . . . . 43
3.3.12 Process of two particle decay . . . . . . . . . . . . . . . 43
3.4 CompHEP event generator . . . . . . . . . . . . . . . . . . . 44
3.4.1 Concept of the event generator . . . . . . . . . . . . . 44
3.4.2 The genEvents command . . . . . . . . . . . . . . . . . 44
3.5 CompHEP files and commands . . . . . . . . . . . . . . . . . 48
3.5.1 Files and commands in the working directory . . . . . 48
3.5.2 Scheme of calls in the CompHEP session . . . . . . . . 49
3.5.3 LOCK files . . . . . . . . . . . . . . . . . . . . . . . . 51
3.6 User programs in CompHEP . . . . . . . . . . . . . . . . . . . 51
3.6.1 Concept of user program implementation . . . . . . . . 51
3.6.2 Fortran case . . . . . . . . . . . . . . . . . . . . . . . 52
3.6.3 C case . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3
Appendix 83
B Ghost fields and the squared diagram technique for the t’Hooft-
Feynman gauge 85
B.1 The problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
B.2 Incoming and outgoing ghosts . . . . . . . . . . . . . . . . . . 87
B.3 Massless vector-particle case . . . . . . . . . . . . . . . . . . . 88
B.4 Summation of ghost diagrams in CompHEP . . . . . . . . . . 89
B.5 Gauge symmetry and cancellations . . . . . . . . . . . . . . . 89
4
E.3.3 Gauge fixing and ghost terms for the t’Hooft-Feynman
gauge . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
E.3.4 Unitary gauge . . . . . . . . . . . . . . . . . . . . . . . 109
E.3.5 Summary of vertices for the boson sector . . . . . . . . 109
E.3.6 Interaction of vector bosons with fermions . . . . . . . 110
E.3.7 Interaction of the Higgs doublet with fermions and gen-
eration of fermion masses . . . . . . . . . . . . . . . . . 111
E.3.8 Quarks and leptons . . . . . . . . . . . . . . . . . . . . 112
References 114
5
1 Preface
1.1 Introduction
CompHEP is a package for automatic calculations of elementary particle
decay and collision properties in the lowest order of perturbation theory
(the tree approximation). The main idea prescribed into the CompHEP is
to make available passing on from the Lagrangian to the final distribu-
tions effectively with a high level of automation. Other packages created
to solve a similar problem are FeynArts/FeynCalc[1], GRACE[2], HELAS[3],
MADGRAPH[4]. See also the review [5].
CompHEP is a menu-driven system with the context help. The notations
used in CompHEP are very similar to those used in particle physics.
The present version has 4 built-in physical models. Two of them are
the versions of the Standard Model (SU(3)xSU(2)xU(1)) in the unitary and
t’Hooft - Feynman gauges. The user can change particle interaction and
model parameters. It is also possible to create new models of particle inter-
action.
In the present version polarizations are not taken into account. Averaging
over initial and summing over final polarizations are performed automatically.
The CompHEP package consists of two parts: symbolic and numerical.
The symbolic part is written in the C programming language. It produces
Fortran and C codes for a squared matrix element, and they are used in the
numerical calculation later on. There are two versions of the numerical part:
one is written in Fortran and another one is done in C. The facilities of both
versions are almost equal. The C version has more comfortable interface
but it does not possess an option to generate events and does not perform
calculations with a quadruple precision.
The symbolic part of CompHEP lets the user:
6
• generate and display squared Feynman diagrams;
• generate the optimized Fortran and C codes for the squared matrix
elements for further numerical calculations;
• select the scale parameter for evaluation of the QCD coupling constant
and parton structure functions;
7
• generate events;
See the review [6] about physical results produced by means of Com-
pHEP.
8
Sergey Shichanin. The program for the CompHEP database table manipu-
lation was done by A. Kryukov. Later on the plot drawing and LATEX output
were designed by V. Edneral, A. Pukhov and S. Shichanin.
The CompHEP symbolic answers were compared by Mikhail Dubinin
with a large number of known symbolic expressions for differential and in-
tegral cross sections [20]. Starting from this point the physicists of Com-
pHEP group E. Boos, M. Dubinin, and V. Ilyin applied CompHEP for
studying new physics signals and relevant backgrounds.
In 1991 CompHEP got the built-in symbolic manipulation package cre-
ated by A. Pukhov and the Fortran code output written by A. Pukhov and
S. Shichanin [10].
In 1992 Andrei Davydychev proposed to use the t’Hooft-Feynman gauge
for evaluation of squared diagrams. This idea was realized by A. Pukhov.
It has opened the real possibility to calculate any 2 -> 4 process with the
help of the CompHEP package. In the same year V. Ilyin and S. Shichanin
designed a Fortran program of phase-space integration for 2 -> 3 processes
and A. Pukhov developed the numerical interpreter for 2 -> 2 processes.
These achievements were announced in [10].
The numerical results by CompHEP for a large set of processes were
compared with the GRACE package [21]. E. Boos, M .Dubinin, V .Ilyin and
S .Shichanin performed some other cross-checks of the CompHEP package.
Later on A. Belyaev, E. Boos and L. Dudko compared CompHEP with
the FNAL program VECBOS [22] and extensive cross-checks of numerical
results for e+ , e− → 4 f ermions set of processes have been performed by
M. Dubinin [23].
In 1993 the symbolic part of CompHEP was rewritten in the C pro-
gramming language by V. Edneral [14]. The realization of the Turbo Pascal
graphic routines by means of X11 tools was done by Andrey Semenov [15]. It
has opened the way to create the version for UNIX workstations [14, 11, 7].
The main problem remaining in this version was the phase-space inte-
gration. CompHEP created the Fortran code for squared matrix elements
with a high level of automation. Generally the matrix elements have a lot
of singularities caused by the propagators of virtual particles. In order to
succeed in the Monte Carlo phase-space integration of singular matrix ele-
ments the user was forced every time to modify the program of phase-space
parameterization.
For automation of this operation step A. Pukhov proposed a general ap-
9
proach to the generation of multi-particle kinematics and to the regulariza-
tion of matrix elements. In 1995-96 this scheme was realized by A. Pukhov,
Dmitri Kovalenko and V. Ilyin [12, 13, 19]. At the same time V. Ilyin wrote
new Fortran interface programs like menus and together with A. Kryukov
embedded the parton structure functions in CompHEP. Later on the structure-
function package was improved by A. Pukhov to include the regularization
of integration over Feynman parameters. As a result we get a version which
provides the user with a possibility of automatic evaluation starting from the
input of Lagrangian and finishing with distributions in physical parameters.
The corresponding service for a histogram filling also was done by A. Pukhov.
The list of needed distributions was compiled by E. Boos.
During this work it was realized that the Fortran programming language
is not convenient for the future development of the numerical part of Com-
pHEP. In 1997 the C code output for the numerical calculation was designed
and the Fortran program for the numerical evaluation was rewritten in C as
well. This work was done by A. Pukhov. In the same year A. Kryukov
imported CompHEP onto the MS-Windows95/NT platform.
The development of CompHEP was being under a continuous pressure of
physicists’ requests. The works of E. Boos, M. Dubinin, V. Ilyin, V. Savrin
and S. Shichanin, who first used CompHEP for physical calculations, at the
same time were defining a direction of the package development. They also
contribute to and are responsible for debugging the package.
It must be especially noted the role of E. Boos and V. Ilyin in the popu-
larization of CompHEP for the scientific community.
The manual was written by A. Pukhov, V. Savrin, and S. Shichanin.
1.3 Acknowledgments
The CompHEP project was supported by
10
Organizing Committee of the AIHENP series of International Workshops.
During a long time the CompHEP group had not got a possibility to
develop the project on UNIX workstations in Russia. The adaptation of the
package for different UNIX platforms was done during the visits of the group
members to various universities and scientific centers of the world. We very
much appreciate this support and are grateful for cooperation to our foreign
colleagues Y. Shimizu, (KEK, Japan), H.S. Song (Seoul National University,
Korea), O. Eboli (University of Sao Paulo, Brazil), H.-J. Schreiber (DESY,
Germany).
We acknowledge beneficial discussions with F. Cuypers, I. Ginzburg,
F. Gutbrod, B. Mele, M. Sachwitz, W. von Schlippe, P. Osland, and mem-
bers of Minami-Tateya group (KEK), and their benevolent attitude to our
project during many years. In this context we are especially grateful to
D. Perret-Gallix.
We also express our gratitude to our colleagues A. Taranov, P. Baikov,
H. Eck, L. Gladilin, P. Silaev, S. Ostapchenko who contributed to the devel-
opment of CompHEP software as well as to A. Davydychev, A. Rodionov
and D. Slavnov for some helpful ideas.
We thank S. Ambrosanio and A. Belyaev for their numerous reports on
CompHEP bugs.
11
2 Installation procedure
2.1 CompHEP Web page
CompHEP codes and manual are disposed on the following Web site
http://theory.npi.msu.su/~comphep
Also there is a mirror in DESY
http://www.ifh.de/~pukhov
2.2 License
Non-profit Use License Agreement
This Agreement is to be held between the Authors of the CompHEP program
and a Party which acquires the program. On acquiring the program the Party
agrees to be bound by terms of this Agreement.
1. This License entitles the Licensee (one person) and the Licensee’s re-
search group to obtain a copy of the source or executable code of Com-
pHEP and to use the acquired program for academic research or other
non-profit purposes within the research group; or, it entitles the Li-
censee (a company, organization or computing center) to install the
program and allow an access to the executable code to the members of
the Licensee for academic research or other non-profit use.
2. No user or site will re-distribute the source code or executable code
to a third party in the modified form. Any re-distribution must be
accompanied with the current license.
3. Publications which result from using the program will contain refer-
ences to the articles describing CompHEP. See the necessary references
on the CompHEP Web page.
4. This License does not permit any commercial (profit-making or pro-
prietary) use or re-licensing or re-distributions. Persons interested in a
for-profit use should contact the Authors.
5. The Authors of CompHEP do not guarantee that the program is free
of errors or meets its specification and cannot be held responsible for
loss or consequential damage as a result of using it.
12
2.3 How to get the codes
If you agree with the license above, you may get CompHEP code for the
version 33 on the CompHEP Web page. The name of received file should be
comphep 33.#.tar.gz
where # denotes a number of release. Unpack this file by
gzip -d comphep 33.#.tar.gz
tar -xf comphep 33.#.tar
As a result a directory comphep 33.# should be created.
This directory contains source codes of the CompHEP package for UNIX
platforms. After compilation of these codes the CompHEP binary exe-
cutable files appear in the same directory. We shall refer to it below as a
CompHEP root directory.
13
"Fortran code has been successfully compiled."
See the next section in the case of problem with compilation.
The files in the CompHEP root directory will be used only for reading
and execution during the user session. It provides us with a possibility to
have one CompHEP root directory for several users. To set the appropriate
files modes start the
./set mod
command.
Each user has to create his own directory to work with CompHEP. See
an instruction for the user installation in the next section. However for an
express check of compiled version you could go to the ./test directory and
launch ./comphep there.
Possible problems
Due to its first instruction the create c command tests the existence of the
CC file in the CompHEP root directory. If this file exists, the C compiler
name and its options are read from this file. Otherwise, as we usually have at
the first start of create c, this file is created and contains default parameters.
After that the create c program tests the necessary compiler options. For
this goal it generates various programs with the same name test.c and tries
to compile and link them. If compilation is not satisfactory, the create c
command finishes with the corresponding error message and asks you to
rewrite the command file CC in order to fit the requirement. The current
test file test.c is saved. So in the case of such an error you could update your
CC file and start create c again. The options listed below must be supported
by C compiler:
14
The work of create f is similar to that of create c described above. The
Fortran compiler must possess long character variables (e.g. CHARAC-
TER*5000). The name of Fortran compiler and options of compilation are
stored in the F77 file.
If all tests are passed on successfully the message appears:
C (Fortran) compiler OK. Starting CompHEP source code
compilation.
If your UNIX platform is one of the listed: Linux, IRIX, IRIX64, HP-UX,
AIX, OSF1, the necessary options are known from the beginning except of
the path to X11. Anyway, in the case of some problem on this step you can
send a request for help to the CompHEP authors.
A correction of the CC and F77 files could be used to tune compiler
options according to your UNIX platform. In this case you should create CC
or F77 by starting makeCC or makeF77, perform tunings in the CC or F77
files and launch create c or create f after that. For example, you could switch
on an optimization flag.
C compiler tuning
There are two macro definitions for the C code, which could be useful to
tune:
The first one is STRSIZ. This is a maximum size of strings in the Com-
pHEP models. By default STRSIZ=2048. If you would like to embed in
CompHEP some new interaction with a very cumbersome vertex you have
to increase this size by the
-DSTRSIZ=<new value>
option.
The second macro defines a type of integer numbers which are used in
symbolic calculations by CompHEP. By default CompHEP uses the ’long’
type.
-DNUM LONG LONG forces the compiler to use ’long long’. This type
is not the ANSI standard and, perhaps, it is not supported in your case.
Different realizations of the ’long long’ type use different formats for reading
and writing such numbers. The user may specify this format defining the
’NUM STR’. By default CompHEP uses
15
#define NUM STR "lld"
-DNUM DOUBLE option forces CompHEP to emulate integer numbers
via ’double’ float ones.
The makeCC program inserts an option which guarantees 8-byte size
integer calculation in CompHEP. If the size of the standard ‘long’ type is
not enough, then the ’double’ one is used.
16
also switch on/off the sound signal. The syntax of this file is self-explanatory.
17
3 User guide
3.1 Elements of the user interface
CompHEP software is written in C and Fortran. The symbolic part is done
in C. The numerical one was written in Fortran but later on was converted
to C. However both versions of numerical part are now available. The C pro-
grams use a graphical window interface based on the X11 or MS-Windows
facilities, whereas the Fortran ones use only a standard input/output. So in
the latter case the service is more ugly.
18
If the menu is too large you will see only a part of it. Use the PgDn/PgUp but-
tons or click on the corresponding marks in the menu corners to scroll.
In order to get back to the previous menu level press the Esc key or click
the asterisk in the top-left corner of the menu border.
The menu program is also sensitive to the functional keys F1, F2, ..,F9.
The list of active functional keys depends on the program point and is dis-
played on the bottom line of the screen. Generally the functional keys acti-
vate the following programs:
F1- Help : displays a help message about the highlighted menu function;
F2- Manual : displays an information about service facilities.
F3- Models : displays contents of the current model of particle interactions.
F4- Diagrams : browses the generated Feynman diagrams.
F6- Results : views and deletes CompHEP output files.
F9- Quit : quits the CompHEP session.
To call one of these programs just press the functional key or click on the
corresponding symbol on the bottom line of the screen. The digit keys act
as the functional keys. For example, ’3’ acts as F3.
19
5. Table Editor. CompHEP uses tables to store the information about
parameters, particles, vertices, cuts and distributions. For all these cases any
unit (displayed as a table line) consists of several fields (table columns). The
program Table Editor is invented to provide the user a possibility to view
and change the table contents. In some program points the Table Editor is
used to browse a table contents without a permission to change data.
Table is displayed on the screen as it follows (see Fig.3). The top line
of the window contains a title of the table. Below there are table columns
surrounded by a frame box. The columns are separated by vertical lines.
The first horizontal line contains column names. One cell (a line - column
intersection) is highlighted. If the table is open for changes, the highlighted
cell contains the cursor. The ordering number of the corresponding line is
displayed in the top-right corner of the window.
To change position of the cursor and the highlighted cell one can use
the arrow keys, the Tab key and the mouse click. If one types any printing
symbol it will be inserted into the table at the cursor position. The PgUp,
PgDn keys are used to scroll the table. The F1 and F2 functional keys
provide information about the meaning of table fields and about facilities of
the Table Editor. To exit the table one has to press the Esc key.
There are some auxiliary commands which help the user to operate the
tables. These commands can be realized by means of Control symbols or by
mouse click on the command label displayed on the table border:
Top (ˆ T) moves the cursor ( highlighted cell) to the top line of the table.
Bottom (ˆ B) moves the cursor ( highlighted cell) to the bottom line of
the table.
GoTo (ˆ G) moves the cursor to the line directed by the user.
Find (ˆ F) searches the string directed by the user.
Find again (ˆ A) repeats previous command Find.
Zoom (ˆ Z) key switches on the zoom mode to view/edit contents of the
highlighted cell. In this case CompHEP opens a special window and the
field text wraps this window. To terminate the Zoom mode one has either to
press Enter to accept changes or Esc to forget them.
ErrMess (ˆ E) redisplays an error message concerning the contents of one
of the tables which has been previously generated by CompHEP.
The above commands are available in both modes of the Table Editor.
The labels of these commands are disposed on the bottom border of the table.
The following commands are available only if the table is open for changes:
20
Clr (ˆ C) clears the contents of the current field right to the cursor posi-
tion.
Rest (ˆ R) restores the contents of the current field which existed before
last entering the corresponding cell.
Del (ˆ D) cuts the current line from the table and put it into the buffer.
New (ˆ N) creates a new line and fill it with the buffer contents. Also
you can press the Enter key to create a new line.
Size (ˆ S) allows the user to change the width of current field. This
command is active only if the cursor is disposed in the column whose name
is surrounded by the ’>’,’<’ symbols.
The labels of these commands are disposed on the top border of the
window.
21
7. Plot Viewer. This program is designed to display smooth curves and
histograms. Examples are presented in Fig.10 and Fig.7.
Being launched the Plot Viewer displays a picture and waits for the key-
board signal as it is shown in Fig.10. The program ends with pressing the
Esc key. If some other key is pressed then the user gets a menu which you
can see in Fig.7. This menu allows to change the limits of vertical axis and
its scale. Note that the logarithmic scale is available only if the lower limit
is positive and the ratio of upper and lower limits is more then ten. To
re-display the plot choose the ’Redraw plot’ option.
The menu also provides the user with a possibility to save a graphical
plot image as a LATEX file and as a numerical table. The name of the
corresponding file is displayed on the screen just after writing the file. The
numerical table created in this way can be displayed on the screen later on
by the command
$COMPHEP/tab view < table file
This tab view is just the same Plot Viewer but compiled as a stand-along
program.
The ’Exit Plot’ menu function completes the Plot Viewer session.
1. Menu. When you work with the menu the numerated list of menu
functions is displayed. Possible inputs are:
H<number> - to get help information about the <number> th menu function;
<number> - to execute the corresponding menu function;
X - to quit the current menu.
The lower case characters h and x may be used also as key characters of
the above commands. You can see in Fig.2 how this menu looks like on the
display.
2. Tables. Tables are used to enter and change information about physical
cuts and a phase space regularization. When you use this program a numer-
ated list of elements is displayed. Elements which have a number older than
22
9 are numerated by letters (A,B,C,D ...). Under this list you see a prompt
for commands:
N - new, D<set> - delete, C<n> - change, X - quit.
N is used to insert a new table line. The subsequent input depends on the
table.
D<set> is used to delete records enumerated in <set>. For example, D13A
will delete the first, third and tenth records.
C<n> allows you to change contents of the <n>th item.
X is used to quit.
The lower case characters n, d, c and x may be used also as key characters
of the above commands.
3. Viewer. When you browse the help information or some file contents
the following commands may be used:
to look at the next page type the Spacebar key;
to look at the preceding page type ‘b’;
to exit from the viewer type ‘x’.
23
discussion in Section B. The Standard Model in the unitary gauge is used
for verification of gauge invariance.
The bottom menu function provides you with a possibility to include a
new model into the CompHEP list. New model is created as a copy of one
of existing models. On the next menu level you can change this copy. If
you choose the ”New Model” menu function you will be prompted for a new
model name and a template source. CompHEP adds the underscore symbol
’ ’ in front of the name of new model. It serves to distinguish user’s models
from the built-in ones. To choose a template the list of existing models
appears.
Menu 2. The first function of this menu lets you enter the physical process
which you wish to deal with. A format of process specification is explained
below. You can also use the context help facility pressing the F1 key on any
step of the input.
Before entering a process you may also edit the model contents by means
of the Edit Model menu. Later on you will be able only to browse the model
contents (by pressing F3), but not to change it.
If the currently used model is a user-created one, the menu function Delete
model removes this model and CompHEP returns to Menu 1. In the case of
a built-in model Delete model restores the default version of model instead.
Before the deletion or restoration the corresponding warning appears and
you can cancel the operation.
24
4. vertices of interaction.
See Section 4.1 for the format of these tables and also Section 3.1.1 for
the explanation of facilities of the table editor.
CompHEP verifies the model when you try to leave this menu after some
changes made in one of the tables. If some error is detected the corresponding
message appears and no exit from the menu occurs. This message contains
the diagnostics, the table name, and the number of line where the error has
been detected. You can recall this message later on within the table editor
by pressing the Ctrl E key.
The check stops when the first error is detected. You can fix the error
and try to leave the Edit Model menu once more.
When you enter the Edit Model menu the current version of the model
is saved and you have a possibility to return to this version forgetting your
corrections. Just answer N the question
Save correction ?
Y/N?
which appears every time when you try to leave this menu after correcting
the model.
There is a sequence of points which are being checked:
25
3.2.2 Input of the process
After activating the Enter process function of Menu 3 the list of particles
together with their notation conventions is displayed. The notation of anti-
particle is shown in parentheses after that of particle. In the case of the
Standard Model the corresponding screen is shown in Fig.6. If the list is too
long one may use the PgUp and PgDn buttons to scroll it.
In the bottom part of the screen the prompt ’Enter process:’ appears.
The syntax for the input is:
P1[,P2] -> P3,P4 [,...,[N*x]]
These ’P1’..’P4’ are particle names, N is a number of inclusive particles.
The sets of in- and out-particles are separated by the arrow ’->’ formed
of two printing symbols. The particles inside of each set are separated by
commas. The total number of particles should not exceed 6.
For example, the input u, U -> G, G denotes the process of annihilation
of the u-quark and ū-quark into two gluons.
One can also construct inclusive processes. For example, the input
u,U -> G,G,2*x
is a request to construct all processes of annihilation of the u-quark and
ū-quark into two gluons accompanied by two arbitrary particles.
If the program finds an unknown name among the in-particles it will try
to consider it as a name of composite particle and will ask you about its
parton contents. For instance, after the input
e,p -> 3*x
the question appears:
Is ’p’ a composite particle Y/N ?
If you choose ’Y’ you will be prompted to specify the parton structure of ’p’.
A possible input is
’p’ consists of: u, U, d, D, G
If one enters a collision process, the information on total energy of collid-
ing particles in the center-of-mass system is demanded:
Enter Sqrt(S) in GeV: 300
CompHEP generates only those channels where the total mass of in-
coming particles and the total mass of outgoing particles are smaller than
Sqrt(S).
On the next step of input you are prompted to exclude diagrams with
specified virtual particles. The input should be
26
Exclude diagrams with : P 1 > n1 [, P 2 > n2 ...]
where P 1, P 2, ... are particle names, n1, n2, .. are the quantity limits. Such
an input means that diagrams where the number of virtual particles Pi is
more than ni will not be constructed. For example:
Exclude diagrams with : W + > 1
means that only those diagrams will be generated which contain less than
two virtual W-bosons.
Several restrictions separated by commas are allowed. If one has a restric-
tion for a particle, the restriction for the corresponding anti-particle is not
needed. If one would like to forbid the appearance of some virtual particle
P at all, the input ”P > 0” may be shortened to the ”P ”.
This option may be used to exclude diagrams which are suppressed due
to a large virtual particle mass, or a small coupling constant, or for some
other reasons. Use the empty input to get a full set of diagrams.
Use the Esc key to return to the previous level of input and the F1 key
to get the online help.
After the input is completed CompHEP starts the Feynman diagram
generation. If the number of generated diagrams is zero the corresponding
warning appears and you return to the beginning of process input, otherwise
the next menu appears.
27
subprocess deleted before.
When you choose a subprocess the diagram graphic viewer is launched.
See Section 3.1.1 for details or use the F 1 and F 2 functional keys for online
help.
Here we would like to note some peculiarities of constructed diagrams.
• Incoming particles are drawn on the left side of diagrams, whereas the
outgoing ones are shown on the right.
28
diagram where ghosts are replaced by real particles. During the calcu-
lation of these parent diagrams the contributions of the corresponding
ghost diagrams are also calculated and added to the contribution of
the parent one (see Section B). There exist some exceptions from this
rule. For example, the Standard Model contains the vertex with four
Goldstone bosons associated with the Z-boson, however the Z 4 vertex
is absent in the theory. To provide a possibility to take into account
the ghost diagrams with a four-Goldstone vertex CompHEP generates
false diagrams with Z 4 interaction.
Menu 6. The View squared diagrams function is similar to the View dia-
gram one of the previous menu but is applied to the set of squared diagrams.
Each squared diagram is a graphic representation of AB ∗ contribution in the
squared matrix element, where A and B are some amplitudes corresponding
to Feynman diagrams.
Let us summarize some features of CompHEP squared diagrams gener-
ation:
• CompHEP never constructs both AB ∗ and BA∗ diagrams but only one
of them. Instead, for simplicity, CompHEP calculates 2 ∗ Re(AB ∗ ) on
the symbolic and numerical levels.
29
according to the existing vertices of the model. To see the ghost squared
diagrams for each displayed one just press the ’G’ key.
If you browse the squared diagrams after usage of the Symbolic calculation
function you will see that each of the squared diagrams is marked by one of
the following labels CALC, ZERO, Out of memory, Del. They mean that the
diagram has been successfully calculated; gives a zero contribution; cannot
be calculated; or has been deleted, correspondingly.
The Symbolic calculation function starts symbolic evaluation of the gener-
ated squared diagrams. This evaluation is performed by the built-in symbolic
calculator created specially in the framework of the CompHEP project.
During the calculation the information about a number of calculated di-
agrams and about a step of evaluation of the current diagram is shown.
The Reduce program function creates a code of symbolic evaluation in the
format of Reduce language [33] separately for each squared diagram. These
codes are not used for the further CompHEP processing, but they can be
useful for cross-checking the CompHEP software. On one hand, one can
investigate the Reduce code to get conviction that it correctly calculates a
contribution of the squared diagram. On the other hand, you may compare
the result of the Reduce evaluation of diagram code with the result of built-
in symbolic calculator. There are some tools created for this purpose. See
Section A for details.
General purpose of a package like CompHEP is to create the correspond-
ing C or Fortran source code for further numerical processing and compile
this code using the corresponding system facilities. User’s control is not
necessary for this step as well as for the step of symbolic calculations. Com-
pHEP provides the user with a possibility to perform the above steps in a
non-interactive mode. To start the non-interactive session one could acti-
vate the Make n comphep c or Make n comphep f menu function. Then the
current interactive session ends and a new batch process starts. See Section
3.2.5 for details of the non-interactive calculations in CompHEP.
As the outcome, the executable file n comphep c or n comphep f is created
for the further numerical precessing. You may find it in the results directory.
For the time of batch calculation the LOCK file appears in the user working
directory to prevent a double start of the CompHEP package within the
same place of the file system.
As a rule the System Administrator requires to start a large job in a
30
special batch regime. The execution of one of the Make n comphep functions
may require large computer resources for some processes with large number
of diagrams. In this case you could correct your comphep command file
according to the System Administrator rules. The corresponding calls are
disposed after labels 24) and 25) in this file.
Menu 8. This menu provides the user a possibility to save the obtained
symbolic results in different formats. The Reduce and Mathematica outputs
may be used for further symbolic manipulation. For example, you can get
symbolic representation of a sum of all diagrams, perform some substitutions
or expansions, evaluate the symbolic expression for the total cross-section
or width of the process. As a rule such manipulations are possible and
reasonable for the processes with a small number of final particles. The
structure of the symbolic output and some programs for manipulation with
the Reduce output are described in Section 5.
31
Otherwise the C and Fortran outputs are used to get numerical results.
They may be compiled and linked with the library of CompHEP routines
for phase space integration. The produced executable program allows one to
obtain numerical values of the total cross-section or width, distributions and
an event flow, taking into account a variety of cuts. In order to create an
executable file for numerical calculations based on the C/Fortran output use
functions of Menu 6 or launch the $COMPHEP/make n comphep program
as it has been explained in Section 3.5.
32
results. Note that the last symbol ’9’ simulates the work of the F9 functional
key which in its turn completes the session (See Section 3.1.1).
Another utilization of the blind mode is a check of CompHEP for some
huge set of processes (Section A).
33
3.3.1 Sketch of the menu system
A general scheme of CompHEP numerical calculations is presented in Fig.8.
The CompHEP screen with the menu number 1 is presented in Figs. 1 and
2. Three functions of this menu launch integration programs. One of them is
Monte Carlo program Vegas [31, 32]. The other one is the ordinary Simpson
integration routine which can operate only for the simplest 2 -> 2 type of
reactions. The Batch menu function is used to organize a set of Vegas eval-
uations in the non-interactive mode (see Section 3.3.10). Other menu items
are needed to set an environment for integration. Below we briefly describe
all of them. More detailed explanation is given in the following sections.
By means of the Subprocess function the user may select one subprocess
for a further processing. This function is active only if several subprocesses
have been evaluated symbolically before. The name of current subprocess
is displayed on the screen (Fig.1 and Fig.2). Subprocess summation is not
implemented in the current version.
The In state function gives the user an option to choose structure func-
tions for incoming particles and assign some values for their momenta. The
GeV units are assumed for the momenta. This menu function is available for
collision processes only.
The Model parameters function allows the user to assign a new value to
any independent parameter involved in the evaluation. After an activation of
this function the corresponding menu of parameters with information about
their values is displayed. As a result of changing the independent parameters
some constrained parameter can get non-evaluated as a result of a negative
square root argument or division by zero in the relevant expressions. In this
case an error message appears on the screen and the user is required to choose
an admissible set of parameter values.
Although the user may assign some value to the QCD strong coupling
parameter GG it does not influence on results of calculation. This parameter
will be reset according to the rules defined by the QCD scale menu function.
CompHEP substitutes a Breit-Wigner exact propagator for the s-channel
virtual particles. This trick is needed to avoid the integral divergence near
the mass pole and is motivated by high order corrections. The way of im-
plementation of the Breit-Wigner propagator is driven by the Breit-Wigner
menu function. See Section (3.3.4) for details.
The Cuts menu function provides the user with a possibility to cut a phase
34
space volume. A set of physical variables which could be used to construct a
cut function is described in Section 3.3.5. Details of the Cuts menu processing
are given in Section 3.3.6.
The Kinematics and Regularization menu functions are used to construct
an appropriate mapping of phase space onto the Vegas integration volume.
This is important for successful Monte Carlo integration.
35
numbers. For example: the input ’13’ will be treated as Q2 = |(p1 − p3)2 |.
If Q2 is defined as a constant, the corresponding value of α = GG2 /(4π)
is displayed on the screen. The α(s) plot for a user-defined region of s is
available also by means of the corresponding function of Menu 4. The same
Q2 scale is used as an argument of parton distribution functions.
If the pole is situated inside the phase space volume it leads to a non-
integrable singularity. The general solution of this problem is an account
of special set of high order corrections [42]. They transform the propagator
to the Breit-Wigner form
1
,
p − m − i · Γ(p2 ) · m
2 2
where the value Γ(m2 ) is the particle width (reversed mean life time).
First problem which appears in a way of implementation of this expression
is a choice of Γ(p2 ) dependence. The Γ value is essential near the pole point
p2 = m2 . Thus, for the first approximation we can put Γ(p2 ) = Γ(m2 ) =
const. It corresponds to the position OFF of√’S dependence’ switch. In some
papers it is declared that Γ(p2 ) = Γ(m2 ) · p2 /m describes the pole shape
better. This choice corresponds to the position ON of ’S dependence’ switch.
The second and even more important problem is a gauge symmetry break-
ing. Generally we have this symmetry in any order of perturbation theory but
the intervention of a part of higher order terms to the lowest order expression
via the Breit-Wigner propagator can break it.
The gauge symmetry is responsible for some cancellation of diagram con-
tributions (see Section B.5), and its violation, in turn, prevents the cancel-
lations and can lead to a completely wrong result. The user could solve
this problem by setting the Gauge invariance menu switch to the position
ON. In this case the contribution of a diagram which does not contain the
Breit-Wigner propagator is multiplied by factor [37, 38]
(p2 − m2 )2
. (1)
(p2 − m2 )2 + (width(p2 ) · m)2
36
This trick corresponds to the symbolic summation of all diagram contribu-
tions at a common denominator expression and to a subsequent substitution
of the width term into the factored denominator. The trick allows to keep all
gauge-motivated cancellations. As a defect of the trick it must be mentioned
that the factor (1) kills a contribution of non-resonant diagrams in the reso-
nance point [39]. If the particle width is very small such an approximation
is reasonable, but in some cases it can also lead to an error.
C - cosine of angle.
√
J - jet cone angle. The jet cone angle Jij is defined as ∆y 2 + ∆ϕ2 ,
where ∆y is the pseudo-rapidity difference and ∆ϕ is the azimuth angle
difference for momenta pi and pj .
37
S - squared invariant mass of the particle set.
Zero components of all momenta are positive, and the conservation law
means that the sum of momenta of incoming particles is equal to that of
outgoing particles. Relative momenta signs for the S function are substituted
automatically.
There are some natural requirements on the momentum set, namely:
a) the momentum sets following A, C, J, P must consist of two elements;
b) the momenta following M, P, T must belong to outgoing particles only;
c) any momentum can appear only once in one set.
3.3.6 Cuts
The Cuts menu function opens a table for cuts definition. This table consists
of three columns. The phase space function in notations of Section 3.3.5 must
be written in the first column. The second and the third columns define the
minimal and maximal limits for this function. If one of them is empty the
corresponding limit is not applied.
Input formats for limits are different for the Fortran and C realizations.
In the case of n comphep c and interpreter sessions the user may type in
the corresponding fields any algebraic formula which contains numbers and
identifiers enumerated in the Model parameters menu. Parentheses ”()” and
operations ”+, −, /, ∗, ∗∗, sqrt()” also are permitted.
In the case of n comphep f session only numbers are expected in the
corresponding columns. To escape an input in GeV 2 units in the case of
squared momenta function
38
It is very important to note that only the cuts on masses and squared
momenta (the S and M cases) are realized via a reduction of the phase space.
Other ones are realized by multiplication of squared matrix element by a step
function.
3.3.7 Kinematics
The Kinematics function allows to display and change a general scheme of
the phase space parameterization. A kinematics scheme in CompHEP is
defined by a set of subsequent 1 -> 2 decays of the incoming state into the
outgoing particle sets.
After activation of this menu function the current decay scheme will be
displayed and a dialogue message will propose the user to accept it or put in
another one.
During the input CompHEP consequently asks the user to define a first
outgoing cluster of virtual decay. The user input must be a sequence of
particle (momentum) numbers without any separating symbols. It is assumed
that particles are numerated in the same order as they are written down in
the (sub)process name.
An example of kinematics definition for 2 -> 4 process is given by the
following lines:
12 -> 3,456
456 -> 56,3
56 -> 5,6
Here the user input is indicated in bold characters.
In the framework of such a decay scheme the multi-particle phase space
is parameterized by masses of sub-clusters and by two-dimensional spherical
angles of 1 -> 2 decays [47, 40]. A choice of kinematics influences on the
phase space mapping and by this way it influences on convergence of Monte
Carlo integration. See Section D.2.
3.3.8 Regularization
In general case a squared matrix element is too singular for direct Monte
Carlo integration. Singularities of the matrix element are caused by poles of
virtual particle propagators and can have one of the following forms
1/(p2 − m2 ) (2)
39
1/(p2 − m2 )2 (3)
1/((p2 − m2 )2 + (m · Γ)2 ) (4)
where m, Γ, and p are the mass, width, and momentum of virtual particle.
The Regularization menu function allows the user to point out dangerous
denominators for automatic smoothing the sharp peaks of the squared matrix
element. The regularization table contains four fields: momenta, mass, width
and power.
Momentum of virtual particle is a sum of momenta of incoming and out-
going particles. Just type the ordering numbers of these momenta in the
Momentum field. The sign is substituted automatically. For example, for a
collision process 12 is treated as (p1+p2) and 134 is treated as (p1−p3−p4).
Mass and Width describe a position of the pole. In the case of For-
tran program the corresponding numerical values must be written down in
these fields. In the case of C program the user can write down some algebraic
expressions which contain the identifiers enumerated in the Model parame-
ters menu. For t-channel propagators (both incoming and outgoing momenta
contribute to P ) only a zero value in the Width field is permitted because
CompHEP ignores particle width term for such propagators.
The Power field defines an exponent of the propagator. Acceptable values
are 1 and 2. Of course, in a squared matrix element any propagator appears
to the power of 2. But sometimes as a result of gauge cancellations the
exponent can be efficiently decreased to 1. If the Width field is not equal to
0 such a cancellation is not expected and CompHEP will use value 2 for the
exponent ignoring the user input.
The work of regularization program is sensitive to the S and M types of
cuts (see Section 3.3.6) and is not sensitive to other ones. Consequently, if
you would like to smooth some singularity due to the pole inside the phase
space, you should apply the S or M cut to exclude the pole point from the
consideration.
The algorithm of regularization is explained in Section D.2.
40
The first position of this menu starts the process of Monte Carlo integra-
tion. It consists of Itmx runs with subsequent adaptation of the Monte Carlo
weight function to the integrand. For each run Vegas calls the integrand
about Ncall times. The user may set the Itmx and Ncall parameters apply-
ing the next two items of the menu. The results of calculations are displayed
on the screen and written to the protocol file.
If the required precision of calculation is not reached the user may call
the Start integration menu function once more to increase the Monte Carlo
statistic. But if the Clear statistic menu function is called, then the next
Monte Carlo session will be started from the beginning. The Monte Carlo
weight function is saved between runs anyway.
In the case of Fortran n comphep program the user can write weighted
events generated by Vegas into a file. The maximum and average values of
event weights are displayed on the screen and written into the protocol file.
The user must take into account that any new call of the Start integration
menu function will rewrite this file.
In the case of C version of the n comphep program the user has a possi-
bility to fill in some histograms during the Monte Carlo integration. In this
case he needs to activate the Set Distribution function. This menu function
opens a table of distributions which can be filled in by the user. The first
column defines a phase space function which the user would like to scan. The
set of available functions and the input format are defined in Section 3.3.5.
The next two columns define a region of variation of the corresponding phase
space function. There could be either a number or an algebraic expression
containing the identifiers listed in the Model parameters menu.
The user can browse the distributions using the Display distributions
menu function. This menu function asks the user to choose one distribu-
tion and a number of bins. After that the distribution appears. A call for
Clear statistic menu function clears the stored distributions.
41
mode you have a possibility to store all current settings and task parameters
in the f(c) batch.dat file. The function Batch of the main menu is used to
define such a task and save it in a file. It opens the Menu 8 (see Fig.8). Its
first function appends parameters of the current session to the f(c) batch.dat
file. It is possible to join several tasks in one f(c) batch.dat file.
For the batch mode you are provided with a possibility to perform two ses-
sions of Vegas calculation with automatic call for the Clear statistic function
between the sessions. These sessions are driven by the Itmx1, nCall1, Itmx2,
nCall2 parameters which in their turn may be defined by means of functions
of Menu 8. The meanings of these parameters are similar to the same name
parameters of the Vegas menu. If you put one of these parameters equal to
zero then only one session will be launched.
If you set the Generate events switch ON, then the squared matrix elements
calculated during the last Vegas session will be saved in a file for further
processing (see Section 3.4).
There is a possibility to organize cycle calculation within one task. The
Table size function defines a number of steps for the cycle calculation. The
user may choose a parameter to scan by means of the Table param function.
The last two menu functions allow to set the extreme values for the scanning
parameter.
Every time when you start n comphep f it checks a presence of the
f batch.dat file. If it exists you will be prompted:
Would you like to use the BATCH mode?
If you answer ’y’ then n comphep reads the tasks from the f batch.dat file
and performs requested calculations.
So, if the f batch.dat file exists the batch calculations can be launched by
the pipe command:
echo y |n comphep f
The batch calculation in the case of n comphep c is started by
n comphep c -batch
CompHEP has an internal counter for Monte Carlo sessions which ac-
crues after each Monte Carlo session. All output files have this session
number as a part of their names. Hence, outputs from different tasks are
written down in different files and all results are safely remembered after
the n comphep run. In the case of cycle calculation the additional joint file
f(c) table N M with results of calculation will be created. Here N and M are
the first and the last number of session for the current cycle.
42
3.3.11 Integration by means of the Simpson method
In the case of 2->2 type of process we provide the user with a possibility to
calculate the cross-section using the adaptive Simpson algorithm. It allows
to get the results instantly and with a high precision.
Note that some user’s settings are ignored when you choose this option.
Namely, the structure functions are switched off, the center-of-mass rapidity
is assigned to zero, regularizations are also ignored and only angle and cosine
cuts for incoming and outgoing particles are taken into account.
When the Simpson menu function is activated CompHEP tries to evalu-
ate the cross-section. Sometimes it is not possible, for example, if the corre-
sponding value is infinite, as we have in the case of e+ , e+ → e+ , e+ reaction.
When program detects a pole inside of the integration region it produces an
error message like
Division by zero
Press any key
In the above case you should remove the region of small angle scatter-
ing by applying the corresponding cuts and after that activate the Simpson
function once more.
If the cross-section is successfully integrated the result is displayed on
the screen. Menu 6 which is also displayed on the screen (see Fig.8) has the
following options:
a) to set relative precision of integral evaluation. A default value is 10−4 ;
b) to display dependence of the differential cross-section on the cosine of
the scattering angle;
c) to calculate and display on the screen the total cross-section or the
forward-backward asymmetry as a function of any parameter involved in the
calculation.
43
function which provides the user with a possibility to calculate the total
particle width as a function of one of the model parameters.
44
See Section 3.3.5 for a format of the function identifier. The limits are just
numbers. For the case of the S function instead of the q values of squared
momentum Val the user has to put in the quantity V al/ |V al|, similar to
the case of cut definition in Section 3.3.6.
The last line of input may be empty or contain a desired distribution
specification. For the first case the weighted event flow will be created.
Otherwise the corresponding distribution will be produced. The format of
input which specifies a distribution is the same as that for cuts, but contains
an addition field which defines the number of bins:
[function identifier] [min.limit] [max.limit] [number of bins]
The number of bins has not to exceed 300.
The genEvents command verifies the input. But the user-friendly inter-
face is not implemented here. For the case of wrong input the error message
appears and the program terminates. So, in order to escape the repetition of
typing we recommend to store the input in a file and pass it to genEvents by
$COMPHEP/genEvents < user input file
or
cat user input file | $COMPHEP/genEvents
Let us give an example of user input file:
event 1
A13 5 175
A15 5 175
M35 1 100 50
It is an instruction to build a 50 bin distribution for the invariant mass of
3rd and 5th particles under condition of a 5 degree cut for the angle between
the momenta of these particles and the collision axis.
To get a matching of particles with their momenta see the process string
in the corresponding protocol file f prt N.
The output for the distribution has got the following formats.
1. The process string:
PROCESS: e1 , E1 -> e2 , E2
2. The name of the X-axis in double quotas, limits for the axis and a number
of bins:
"Cosine(p1,p3)" from −1.0 to 1.00 N bins = 10
3. The name of the Y-axis:
45
Diff. cross section [pb]
4. The sequence of N bins lines for the averaged differential cross section for
each bin and its statistical uncertainty separated by ”+/-”:
..............
8.0978E+02 +/- 9.2786E+00
...............
The following normalization of data is assumed: a sum of all values of
the first column multiplied by the bin size is equal to the cross section.
The graphical image of the distribution may be displayed by the
$COMPHEP/tab view command. One of the ways to use it is the long pipe:
cat user input file | $COMPHEP/genEvents |$COMPHEP/tab view
The options of the tab view program are described in Section 3.1.1. See
Fig.7 as an example of plot representation. One more possibility is to save
the intermediate result and then use it:
cat user input file | $COMPHEP/genEvents > hist file
$COMPHEP/view tab < hist file.
To generate the event flow the user has to enter an empty line instead of
the distribution definition. After that the genEvents program writes down
the weighted events in the standard output. The first six lines of output
contain general information about the process, namely the process name,
masses of particles, structure function records, the QCD scale, and values of
center-of-mass energy and rapidity. For example,
PROCESS: e1 , E1 -> e2 , E2
MASSES: 0.000000E+00 0.000000E+00 1.057000E-01 1.057000E-01
StructFun1: OFF
StructFun2: OFF
QCD constant scale: 9.12E+01, Lambda6=1.18E-01 GeV
SQRT(S): 9.000E+01
Rapidity: 0.000E+00
The sign of rapidity is defined in such a way that its change towards a positive
value corresponds to an acceleration of the first incoming particle.
The seventh line contains the column titles. The following lines contain
columns of numerical information about events. In the first column the event
weights are written down. They are normalized so that the sum of all num-
bers of the first column gives the calculated cross section or decay width.
46
The other columns contain the components of three-momenta of particles.
The corresponding momentum and component numbers are described by the
seventh (title) line of the output. For example, P2 3 means the third com-
ponent of the second momentum. Note that the 3rd component is assigned
to the collision axis. The first incoming particle has this component positive
while the second one has it negative. There are no columns for the momenta
of incoming particles which are equal to zero by definition, for example, for
the 1st and 2nd components of momenta of colliding particles.
The event flow output is normally very large, so we recommend to redirect
the output to the subsequent program for some processing
cat user input file | $COMPHEP/genEvents | userProcessing
A few such programs were created in the framework of CompHEP project.
They are disposed in the $COMPHEP directory.
I. unweight. It transforms weighted events into unweighted ones. It
needs a parameter maxw which specifies the maximum value of weights.
Indeed this program transforms the floating number weight into the integer
number one according to the following expression
!
weight weight weight
f loor( )+p − f loor( ) ,
maxw maxw maxw
where f loor(x) function rounds x downwards to the nearest integer and p(x)
is the random function which equals 1 with probability x and zero otherwise.
If the integer weight does not equal zero then this event is written down
into the output in the same format as the unweighted event flow. The true
maximum weight may be found in the protocol file.
II. filterD2. This program generates decays of one of outgoing particles
into two others. It needs 6 arguments:
1) name of disintegrated particle;
2) name of the first decay particle;
3) numerical value of the mass of the first particle;
4) name of the second decay particle;
5) numerical value of the mass of the second particle;
6) branching fraction for this decay mode. For example,
47
will generate decays of the Z boson into muons. This program reads event
flow from the standard input and writes down generated events into the
standard output. It can be used just after genEvents and after unweight.
III. filterDN This function can generate more complicated sub-decays,
for example, 1->3 ones. It is assumed that before its usage the events of
corresponding decay have been generated by CompHEP, transformed into
the unweighted format, and stored in some file. The name of this file must
be passed to filterDN as the first argument. Numerical value of the corre-
sponding branching fraction must be passed as the second argument.
You can obtain a wrong result using some part of the whole event sample
because Vegas generates strongly correlated events according to the Stratified
Sampling algorithm (see Section D.1). If events are written down in some file
they may be mixed up by means of the $COMPHEP/randomize program. The
first argument of this function is a name of the file where events are stored.
The randomized event flow is directed to the standard output.
The programs mentioned above, namely unweight, filterD2, filterDN,
randomize, can have three optional arguments. They must be some integers
which are used to re-initialize the starting point of the random number gen-
erator 4 .
The generated event flow can be transformed to the table of distribution
of some physical variable by means of the mk tab program. This program
needs four arguments, namely, a name of variable in format of Section 3.3.5,
minimum and maximum limits of this variable and a number of bins, which
cannot exceed 300. The mk tab program reads the event flow in the standard
input and writes the generated table down to the standard output. This table
can be transformed into a plot by means of the tab view utility.
48
The models directory contains files which describe physical models. When
you modify a model or create a new one all changes are kept in this directory.
The directory results keeps a CompHEP output which is produced as a
result of symbolic or numerical calculations.
The directory tmp is used for temporary files. The file tmp/safe keeps user
settings between the sessions. If this file exists the symbolic session starts
its work with reading this file to restore the user settings of the previous
session. A bug presenting in this file could be a reason for a fatal error in
the beginning of the CompHEP session. In the case of such an error we
recommend to remove the tmp/safe file.
All these directories are necessary for CompHEP work. Absence of one
of them will lead to a fatal error.
You can toggle on/off the color and the sound for a CompHEP session
as well as choose the most appropriate font for your X-terminal. To do this
just edit the comphep.ini file. We hope the syntax there is self-explanatory
enough.
The command
./comphep
starts a CompHEP session. This is a shell script which calls commands dis-
posed in the CompHEP root directory. It is assumed that the $COMPHEP
environment variable (see Section 2.5) points to this directory.
$COMPHEP/s comphep
49
nCompil *
make n comphep * →
s comphep → launch n comphep * → ld *
n comphep *
The binary executable n comphep * is created in the WORK/results sub-
directory as a result of compilation. Other commands are disposed in the
$COMPHEP directory. They are shell scripts except of binary s comphep.
It is assumed that s comphep and launch n comphep are started from the
WORK directory, whereas other commands are started from within the
WORK/results sub-directory.
The program nCompil * compiles the source code produced prior by
s comphep. After successful compilation it creates a library of object files
and then removes the source and the object files.
Another command ld * calls a linker to create the executable file n comphep *
for numerical job.
The command make n comphep with parameter ’c’ or ’f’ is used to start
nCompil * and ld * subsequently.
In its turn, make n comphep is started by launch n comphep in a special
window. In the case of successful compilation the window is closed and just
created n comphep * is started in another window.
If you copy $COMPHEP/make n comphep into your WORK/ directory,
then launch n comphep will call for your own version. It gives you a possi-
bility to modify a compilation procedure if necessary.
The s comphep command starts launch n comphep via the functions
............
C-compiler
Fortran compiler
50
provides the user with a possibility of visual presentation of distributions.
See Section 3.1.
51
3.6.2 Fortran case5
The user phase space function is evaluated by
REAL*8 FUNCTION USRFUN(CHARACTER *9 TEXT)
The patch is disposed in the file $COMPHEP/f source/usr/u var.f.
This function is called by n comphep f and $COMPHEP/genEvents pro-
grams if the phase space function whose name begins with the ’U’ character
is used (see Section 3.3.5). The characters following ’U’ are passed to the
USRFUN routine as its argument.
To create this function one needs to know the particle momenta. They
are stored in
COMMON/PVECT/ REAL*8 P(0:3,100)
The first argument of array P is a Lorentz momentum component. P (0, N )
is the energy of the N th particle. We have P (0, N ) > 0 as for incoming as
for outgoing particles. In the case of collision process P (3, N ) is a projection
of the particle space momentum onto the collision axis. The direction of this
axis is chosen so that P (3, 1) > 0 and P (3, 2) < 0.
The second argument of this array is a momentum ordering number.
The first momentum numbers are assigned to incoming particles and the
subsequent ones are assigned to outgoing particles. The numbers of incoming
and outgoing particles and a correspondence between the particle name and
the momentum number may be determined by means of service functions
described in Section 5.4.
The work of user structure function is controlled by a set of routines. The
patches for them are disposed in $COMPHEP/f source/usr/sf prv.f. All of
them should be realized by the user:
1. LOGICAL FUNCTION P PRV(CHARACTER*6 P NAME)
returns TRUE if the user structure function can be applied to the P NAME
particle. It is used to create the menu of possible structure functions for the
particle P NAME.
2. SUBROUTINE M PRV(I)
is called for the user input of the structure function parameters just after the
user structure function has been chosen. It is assumed that this routine saves
values of the entered parameters in some COMMON for subsequent usage in
5
Below we insert parameter type definitions into headers of the Fortran routines. It is
done for brevity only and contradicts to the Fortran style
52
N PRV described below. The argument ’I’ here and in the following means
an incoming parton number. It can be 1 or 2.
3. CHARACTER*60 FUNCTION N PRV(I)
returns the structure function name. If the structure function has a few
tuning parameters then the values of these parameters must be included in
the returned name. CompHEP uses the structure function name to keep
information about parameters.
4. LOGICAL FUNCTION R PRV(I,CHARACTER*60 NAME, REAL*8
CMASS, REAL*8 BE)
checks NAME. If NAME has the same format as the one produced by N PRV(),
R PRV() should read the parameter values, store them in some global vari-
ables for subsequent usage, and return TRUE. Otherwise FALSE is returned.
REAL*8 CMASS and REAL*8 BE are outgoing parameters. The first one
must be equal to the mass on the composite particle which constituents
are described by user’s structure function. The second one informs Com-
pHEP that the structure function is singular as
(1 − X)(BE−1) , where 0 < BE ≤ 1.
In the nonsingular case BE = 1 must be returned.
5. REAL*8 FUNCTION C PRV(I,REAL*8 X)
returns the value of structure function divided by BE ∗ (1 − X)(BE−1) . Here
X is the Feynman scaling variable. It is assumed that possible structure
function parameters having been stored by R PRV are used for evaluation.
The structure function is normalized so that
is a probability to find the ith parton with fractions [x, x + dx] of initial
momentum.
In the simplest case, if the user would like to implement a new structure
function without singularity and extra parameters, he can just take a copy of
the $COMPHEP/f source/usr/sf prv.f file, improve P PRV so that it returns
0
.T RU E.0 anyway, and rewrite originally trivial C PRV.
3.6.3 C case
The user phase space function has a prototype
double usrfun(char * name)
The patch is disposed in the file $COMPHEP/c source/num/userFun.c. This
53
function is called by n comphep c programs if the phase space function whose
name is started from the ’U’ character is used (see Section 3.3.5). The char-
acters following ’U’ are passed to the usrfun routine as its argument.
Particle momenta which are needed to evaluate usrfun are stored in the
global variable
double pvect[400]
The m component of k th momentum occupies the m + 4 ∗ (k − 1) position
th
in pvect. We assume that ’m’ varies from 0 to 3 and the ’k’ momentum
counter starts from 1. The agreement about momentum signs is the same
as in the Fortran case. The number of incoming and outgoing particles and
the correspondence between the particle name and momentum number can
be determined by means of service functions described in Section 5.5.
The work of user structure function is driven by a set of routines similar
to those of the Fortran case. All of them have to be realized by the user if
he would like to implement a particular structure function. Patches for these
routines are disposed in
$COMPHEP/c source/num/strfun/sf prv.c.
This file contains:
1) int p prv(char *particleName)
returns 1 if the user structure function can be implemented to the particleName
particle. Otherwise 0 should be returned. It is used to create a menu of pos-
sible structure functions;
2) void m prv(int i)
is called for the user input of the structure function parameters just after
the particular structure function is chosen. It is assumed that the input is
saved in some static variables. The argument ’i’ here and below means an
incoming parton number. It could be 1 or 2;
3) void n prv(int i, char * funcName )
returns the structure function name. If the structure function has a few
tuning parameters then values of these parameters have to be included in
funcName. CompHEP uses the structure function name to keep information
about parameters;
4) int r prv(int i, char *funcName)
checks funcName. If funcName has an appropriate format, r prv must read
the value of parameters, store them in some global variables and returns 1.
Otherwise 0 is returned;
5) int mass prv(int i)
54
returns the mass of the composite particle which constituents are described
by this structure function.
6) double be prv(int i)
performs needed initializations before structure function evaluation. It re-
turns parameter be which informs CompHEP that the structure function is
singular as
(1 − x)(be−1) ;
7) double c prv(int i, double x)
returns the value of structure function divided by be(1 − x)(be−1) , where x is
the Feynman scaling variable. It is assumed that possible turning parameters
have been stored by r prv in some static variables.
In the simplest case, if the user would like to implement a new structure
function without singularity and extra parameters, he may take a copy of
the $COMPHEP/c source/num/strfun/sf prv.c file, improve p prv so that it
returns 1 in any case, and rewrite the originally trivial c prv function.
55
4 Implementation of models of particle inter-
actions
4.1 Definition of a model in CompHEP
Description of particle interaction model in CompHEP consists of four parts.
They are parameters, constrains, particles, and vertices.
56
1. Name for the constrained parameter. The requirements for this field
are the same as for the name of independent parameres (see above);
• integer numbers,
• identifiers enumerated in the Parameters Table,
• identifiers defined above in this Table,
• parentheses (), arithmetic operators +, -, /, *, **, and the sqrt()
function.
1. Full name for a full name of particle. Just for clear orientation, not
processed anywhere;
2&3. ”A” and ”A+” containing designations of the particle and anti-particle,
respectively. Any character is allowed. The name may contain one
symbol, two symbols or three symbols started from ’˜’. For a completely
neutral particle the ”A” and ”A+” fields must be identical;
4. 2*Spin for a doubled particle spin: 0 for scalar, 1 for spinor and 2 for
vector particles. Neutral spinor particle is teated as a Majorana one.
5. Mass for a mass identifier or symbol ’0’. In the first case its value must
be defined in the Parameters or Constraints table. If this field contains
zero, then CompHEP considers this particle as massless;
57
7. Color for a dimension of the color SU(3) group representation. You have
to choose among 1, 3, 8. Unity corresponds to a colorless particle. Three
corresponds to a color triplet (fundamental representation). In this case
the anti-particle ”A+” is transformed by conjugated 3̄ representation.
Eight corresponds to a color octet (adjoint representation);
δ(p1 + p2 )
< 0|T [A(p1 ), A+ (p2 )]|0 >= ScP r(p1 , p2 , M ) = ;
(2π)4 i(M 2 − p21 )
where
6 p = p µ γµ .
Here ”A+ ” is the Hermitian conjugation of ”A”; thus the Dirac γ0
matrix is needed to make the Dirac conjugate field;
(c) spin 1 case:
58
’l’,’L’ is permitted for massless fermions ( 2*spin = 1 ) only. The prop-
agator is changed to
6 p1 (1 + γ5 )
ScP r(p1 , p2 , M ) .
2
This is a way to introduce a left-handed fermion as a neutrino
or a massless polarized fermion. When CompHEP performs the
averaging over incoming particle polarizations it takes into account
that there is only one polarization state;
’r’,’R’ is permitted for massless fermion ( 2*spin=1 ) particle only. They
change the propagator for
6 p1 (1 − γ5 )
ScP r(p1 , p2 , M ) .
2
This is a way to introduce right-handed fermions;
’*’ is permitted for massive particle only. In this case ScP r(p1 , p2 , M )
is replaced to
δ(p1 + p2 )
.
(2π)4 i M 2
In the case of vector particle we also remove pm1 m2
1 p2 term in the
propagator numerator (5).
Such particles cannot appear as incoming or outgoing ones. They
are used to describe a point-like interaction as one has in the
electroweak 4-fermion interaction model;
’G’,’g’ is permitted for vector ( 2*spin=2 ) particle. In this case the
propagator of vector particle accepts the Feynman form
−g m1 m2 ScP r(p1 , p2 , M ) ;
59
4.1.4 Ghost fields in CompHEP
CompHEP constructs a list of quantum fields according to the Table of
particles described above. Besides of names enumerated in this table Com-
pHEP generates auxiliary fields, for example, the Faddeev-Popov ghosts
[42]. We use the name ghost for all of them.
The ghost fields do not correspond to physical degrees of freedom, but
each of them has some real particle as a prototype. The names of ghost fields
are constructed by CompHEP from the prototype particle name followed by
a suffix which specify a type of ghost. The particle name and the suffix are
separated by the dot symbol. It is assumed that the ghost fields explicitly
appear in the vertices of interactions together with real particle fields and
thus contribute to the particle interaction. Below we list CompHEP ghost
fields.
(G.c)+ = G.c
(G.C)+ = −G.C
(W+.c)+ = W-.c
(W+.C)+ = −W-.C
< 0|T [A+.c(p1 ), A.C(p2 )]|0 >=< 0|T [A+.C(p1 ), A.c(p2 )]|0 >= ScP r(p1 , p2 , M ),
6
The well-known spin-statistic relation is not valid for unphysical fields.
60
where M is a mass of the prototype particle. This equality of masses is a
consequence of the choice of the t’Hooft-Feynman gauge.
The appearance of the Faddeev-Popov ghosts in gauge theories can be
explained in the following way. In the case of the t’Hooft-Feynman gauge
the quantum field of massless gauge particle has two unphysical components,
because the four-dimensional vector field describes a particle with two po-
larization states. The contributions of Faddeev-Popov ghost and anti-ghost
compensate the contribution of these unphysical polarizations. In the case of
massive gauge boson there are three physical polarizations and the compen-
sation by means of Faddeev-Popov ghosts looks wrong from the viewpoint of
naive arguments based on counting degrees of freedom. Indeed, in this case
one additional Goldstone ghost appears [42].
61
4.1.5 Interaction vertices
The Table Vertices contains interaction vertices. The first four fields A1,
A2, A3, A4 include the names of the interacting particles. These fields must
contain particle names in CompHEP notation. A4 may be empty. The
last two fields ’Factor’ and ’LorentzPart’ define a vertex itself. Let S be the
action, then a functional derivative of S over fields is represented as
δS
=
δA1[m1] (p1) δA2[m2] (p2) δA3[m3] (p3) [δA4[m4] (p4)]
(2π)4 δ(p1 + p2 + p3 [+p4]) [γ0] ColorStructure · F actor · LorentzP art . (7)
Here p and m denote 4-momenta and Lorentz indices. The brackets [ ]
are used to mark the optional parts of expression. Thus, A4, p4, and m4
appear only in the case of four particle vertex. In the case of anti-commuting
fields the right-side derivatives are assumed. The Fourier transformation is
defined by Z
A(x) = exp(−ikx)A(k) d4 k . (8)
’Factor’ must be a rational monomial constructed of the model identifiers,
integer numbers and imaginary unity.
’LorentzPart’ must be a tensor or Dirac γ-matrix expression. Coefficients
of this expression are polynomials of the model identifiers and scalar products
of momenta. The division ’/’ operator is forbidden in ’LorentzPart’. It must
be transferred to the ’Factor’ field.
Similar to the Reduce notation, in order to construct scalar products
of momenta, momentum components, and metric tensors we use the dot
symbol, for example,
p1.p2 is gµν pµ1 pν2 ;
p1.m2 is pm1 ;
2
m1.m2 is gm1 m2 .
To implement the Dirac γ-matrix with index 0 m0 we use a symbol G(m),
whereas G(p) denotes pµ γ µ . Anti-commutation relations for γ matrices should
be written as
G(v1) G(v2) + G(v2) G(v1) = 2 v1.v2, (9)
62
where v1, v2 are momenta or indices.
The γ5 matrix is denoted by G5. It is defined by equation
γ5 = i γ 0 γ1 γ2 γ3
The number of fermion fields in one vertex must be two or zero. If you
would like to implement a four-fermion interaction, use an auxiliary unphys-
ical field which may be constructed by means of the ’*’ symbol in the ’Aux’
column of the particle table (see Section 4.1.3).
CompHEP interprets the anti-particle spinor field as the Hermitian con-
jugated particle field, rather than the Dirac conjugated one. Also it is as-
sumed that all spinor fields are written in the Majorana basis and the matrix
of C-conjugation is equal to (−γ0 ) 7 . After substitution C → −γ0 all possible
vertices could be written as
63
ColorStructure is substituted by CompHEP automatically. For a color-
less particle vertex it is equal to 1. For (3 × 3̄) and for (8 × 8) vertices the
unity tensor is substituted. If CompHEP meets a vertex with three particles
in the adjoint representation (8 × 8 × 8), it substitutes
where fαα21α3 are the structure constants of SU(3). Color indices a1, a2, a3
are taken in the same order as they appear in the particle columns. For the
(3 × 3̄ × 8) vertex CompHEP substitutes
1
λ(ī, i, a),
2
where λ(ī, i, a) are the Gell-Mann matrices. More complicated color struc-
tures are not implemented yet, but it is possible to construct them by means
of unphysical particles (Aux=’*’) or tensor ghosts (Section 4.1.4). In the
case of tensor auxiliary field use the capital ’M’ for designation of the second
Lorentz index of this field as it is shown in equation (6).
4.2 Examples
4.2.1 Implementation of QCD Lagrangian
3-gluon vertex. Lagrangian (40) contains the following 3-gluon vertex:
g
Z Z
S3G =− (∂µ Gαν −∂ν Gαµ )fβγ
α
Gβµ Gγν d4 x = −g ∂ µ2 Gαµ11 g µ1 µ3 fα1 α2 α3 Gαµ22 Gαµ33 d4 x ,
2
where Gαµ is the gluon field, g is the strong coupling constant. Applying the
Fourier transformation (8) we get
Z
S3G = (2π) g 4
δ(p1 +p2 +p3 ) i fα1 α2 α3 pµ1 2 g µ1 µ3 Gαµ11 (p1 )Gαµ22 (p2 )Gαµ33 (p3 )d4 p1 d4 p2 d4 p3 .
64
Comparing this expression with the CompHEP vertex representation (7)
where ColorFactor is (− i fα1 α2 α3 ) we get
F actor·LorentzP art = − g (pµ1 2 −pµ3 2 )g µ1 µ3 +(pµ2 3 −pµ1 3 )g µ1 µ2 +(pµ3 1 −pµ2 1 )g µ2 µ3 .
δSQqG
+ = g(2π)4 δ(p1 + p2 + p3 )(t̂α )ij γ 0 γ µ3 .
δqi (p1 )δq j (p2 )δGαµ (p3 )
The factor (2π)4 δ(p1 + p2 + p3 )(t̂α )ij γ 0 is substituted by CompHEP au-
tomatically. Thus, the quark-gluon interaction is implemented in the Com-
pHEP Vertex table as the following record:
65
Fourier transformation and subsequent evaluation of functional deriva-
tives gives us
Z
4
Sc̄cG = −g(2π) δ(p1 +p2 +p3 )c̄α (p1 )(−i p2 −i p3 )µ3 fβγ
α
Gβµ3 (p3 )cγ (p2 )d4 p1 d4 p2 d4 p3
δSc̄cG
= g(2π)4 δ(p1 + p2 + p3 )pµ1 3 i fαα21α3 .
δc̄α1 (p1 )δcα2 (p2 )δGαµ33 (p3 )
The factor (2π)4 δ(p1 + p2 + p3 )(− i fα1 α2 α3 ) is substituted by CompHEP.
Thus, this interaction may be implemented as the following record in the
Vertex table.
where G.C and G.c are the CompHEP notations for the Faddeev-Popov
ghosts c̄ and c respectively.
δS4G
= −g 2 (2π)4 δ(p1 + p2 + p3 + p4 )δ0 ×
δGµ1 (p1 )δGµ2 (p2 )δGαµ33 (p3 )δGαµ44 (p4 )
α 1 α 2
0 0
fα 1 α2 fα 3 α4 (g µ1 µ3 g µ2 µ4 − g µ1 µ4 g µ2 µ3 ) + fα 1 α3 fα 2 α4 (g µ1 µ2 g µ3 µ4 − g µ1 µ4 g µ2 µ3 )
0
+fα 1 α4 fα 2 α3 (g µ1 µ2 g µ3 µ4 − g µ1 µ3 g µ2 µ4 ) . (11)
The complicated color structure of this vertex cannot be directly written
down in the CompHEP format. To implement this vertex we use the follow-
ing trick. We introduce an auxiliary tensor field tαµν (x) and the Lagrangian
of its interaction with the gluon field:
!
i g α µν 1
Z
Saux = √ fβγ tα (x)Gβµ (x)Gγν (x) − tα µν (x)tα µν (x) d4 x .
2 2
66
It is easy to notice that the functional integration over the auxiliary field
tαµν (x)reproduces the term of 4-gluon interaction in the partition function:
Z
i S4G (G)
ei Saux (G,t) d tαµν (x) .
Y
e =
x,α,µ,ν
For each colored vector particle CompHEP adds a tensor field with the
same color to the internal list of quantum fields. The propagator of this
field (6) corresponds to the Lagrangian (− 21 tα µν (x)tα µν (x)). Consequently,
in order to realize the 4-gluon interaction we must introduce a vertex for the
interaction of the gluon with this tensor field
ig
Z
α
StGG = √ fβγ tα µν (x)Gβµ (x)Gγν (x)d4 x ;
2
δStGG
= (2π)4 δ(p1 + p2 + p3 )(− i fα1 α2 α3 )
Gµ11 (p1)Gµ22 (p2)δtαµ33µ3 0 (p3 )
α α
g
× √ (g µ2 µ3 g µ1 µ3 0 − g µ1 µ3 g µ2 µ3 0 ) .
2
In CompHEP notations this vertex looks like the following
where G.t is a CompHEP notation for the auxiliary tensor field tαµν associated
with the vector field G. Capital M denotes the second Lorentz index of the
tensor field.
From the viewpoint of the Feynman diagram technique such realization
of the 4-gluon interaction means that instead of one 4-gluon vertex we sub-
stitute three sub-diagrams presented in Fig.13. Contribution of each of these
diagrams corresponds to one of the terms of expression (11).
67
should add the following record to the table of particles:
i e
Lν = (ψ̄l γµ ∂ µ ψl − (∂ µ ψ̄l )γµ ψl ) − Zµ ψ̄l γ µ γ 5 ψl
4 4 sin Θw cos Θw
e
+ √ Wµ Ψ̄e γ (1 − γ )ψl + Wµ+ ψ̄l γ µ (1 − γ 5 )Ψe .
− µ 5
2 2 sin Θw
Here the first term is the free Lagrangian for a massless Majorana fermion.
Other terms define the interaction. Using the definition (7) we can rewrite
8
where Y = −1, Ψ1 = Ψν , Ψ2 = Ψe , g2 = e/ sin Θw , g1 = e/ cos Θw
68
them in the CompHEP notations:
Let us emphasize that there are two identical neutrino fields in that term
of the Lagrangian which describes the interaction of neutrinos with a Z-
boson. It leads to the additional factor 2 and to the symmetry property
of the corresponding vertex. One of the typical mistakes in realization of
such a vertex is an introduction of the G(m3)*(1-G5) term which breaks the
symmetry property. Correct evaluation of the functional derivative (7) with
the help of the identity (10) never produces such a term.
4.2.3 Leptoquarks
In this section we present an example of Lagrangian which contains the ma-
trix of C-conjugation. Such matrix appears in interactions violating the
fermion number conservation. Let Ψe and Ψu be the fermion fields of elec-
tron and u-quark, respectively, interacting with the scalar complex lepto-
quark field F
69
A1 A2 A3 A4 Factor Lorentz part
u e1 F -lambda (1+G5)
E1 U F+ lambda (1+G5)
By means of equation (10) we can rewrite this table in the equivalent form:
70
5 CompHEP output files
5.1 LATEX output
CompHEP uses the Axodraw package by J.A.M. Vermaseren [45] to write
diagrams and plots in LATEX format. To use this package the Axodraw style
should be included in the documentstyle statement. An example would be
\documentstyle[axodraw]{article}
Under kind permission of the author we put a copy of axodraw.sty file in
the $COMPHEP/ directory. One bug in the axis drawing routine has been
corrected.
The Axodraw syntax is very easy and you can alter the CompHEP output
to get some local correction in picture if any. The user can also change line
width, scale of picture, and size of characters. The corresponding LATEX and
Axodraw instructions are presented in the beginning of the output. For ex-
ample,
71
5.2 Symbolic answer in Reduce and Mathematica for-
mats
5.2.1 General structure
The CompHEP symbolic output can be used for further manipulation with
an answer which has been obtained by means of the built-in symbolic calcu-
lator. It might be a summation of all diagrams to a common denominator
expression, a symbolic integration of answer, a representation of answer as
a function of special set of variables and so on. We have tried to present
results in the form which can be easily used for different purposes.
All diagram contributions for one subprocess are stored in one file. The
subprocess ordering number is attached to the file name. For example, the
symb1.red and symb1.m files are generated to present the symbolic answer
of the first subprocess in the Reduce [33] and Mathematica [34] format
correspondingly.
The structure of the output file can be described by the following scheme:
Initial declarations;
initSum();
Answer for the first diagram;
addT oSum();
Answer for the second diagram;
addT oSum();
...................
...................
f inishSum();
72
of incoming and outgoing particles are stored in variables inP articles and
outP articles respectively.
CompHEP writes down subsequently expressions for diagram contribu-
tions and after any record it calls a summation procedure addT oSum(). Just
before and after summation the procedures initSum() and f inishSum() are
called. These three procedures must be written by the user and loaded in
advance. Such a construction of the output allows one to use it for different
purposes creating appropriate procedures.
Now we shall explain the structure of diagram contribution. It is started
from a pseudo-graphic diagram image like in Fig.11. After that assignments
for totF actor, numerator, denominator variables follow:
totF actor is a ration function depending on model parameters;
numerator is a polynomial of model parameters and momenta scalar
products;
denominator is presented as a product of propagator denominators
propDen(P, M ass, W idth) ,
where P , M ass, and W idth are the momentum, mass, and width of the
corresponding virtual particle. In the case W idth = 0 propDen must
be defined as (M ass2 − P 2 ). The treatment of the W idth argument
can be arranged by the user as he likes.
In these terms the diagram contribution to the squared matrix element may
be expressed in the following way:
numerator
totF actor .
denominator
As it was mentioned above (Section 3.2.3) the result obtained by summa-
tion of all diagrams must be symmetrized in the case of identical outgoing
particles. This work may be done by the f inishSum() procedure.
73
sum.red which presents the squared matrix element as a common denom-
inator expression;
sum2pole.red which presents the squared matrix element as a sum of pole
terms;
sum2tot.red which presents a symbolical expression for the total cross sec-
tion.
The last two options are available only for 2->2 processes. These files are
stored in the COM P HEP/test directory.
Let you prepare the symbolic output symb1.red for the Compton scatter-
ing A,e1 -> A,e1 in the framework of QED model 9 . Launch the Reduce sys-
tem from within the result directory. The possible Reduce sessions are:
%1
in"$COMPHEP/test/sum.red"$ % loading the summation package
in"symb1.red"$ % reading contributions of diagrams
sum; % writing the answer
(32*ee**4*(2*p1.p2**4-4*p1.p2**3*p1.p3+3*p1.p2**2*p1.p3**2-2*p1.p2**2*p1.p3
*me**2-p1.p2*p1.p3**3 + 2*p1.p2*p1.p3**2*me**2 + p1.p3**2*me**4))
/(propden(-p1-p2,me,0)**2*propden(p2-p3,me,0)**2)$
%2
in"$COMPHEP/test/sum2pole.red"$ % loading the summation package
in"symb1.red"$ % reading contributions of diagrams
sum; % writing the answer
2*ee**4*(4*sp(me)**2*me**4 + 8*sp(me)*up(me)*me**4 + 4*sp(me)*me**2 +
sp(me)*t+ 4*up(me)**2*me**4 + 5*up(me)*me**2 - up(me)*s + 1)$
Here s = (p1 + p2)2 ; t = (p1 − p3)2 ; the functions sp, tp, up are defined
by the following way
sp(x) = 1/(s − x2 );
tp(x) = 1/(t − x2 );
up(x) = 1/(1 − u2 ) where u = (p1 − p4)2
%3
in"$COMPHEP/test/sum2tot.red"$ % loading the summation package
9
In other CompHEP models the electron is massless.
74
in"symb1.red"$ % reading contributions of diagrams
sum; % writing answer for total cross section
(ee**4*(2*s**4*log(s/me**2) + s**4 - 12*s**3*log(s/me**2)*me**2 + 14*s**3*me**2
- 6*s**2*log(s/me**2)*me**4 - 16*s**2*me**4 + 2*s*me**6 - me**8))/(16*s
**2*pi*(s**3 - 3*s**2*me**2 + 3*s*me**4 - me**6))$
75
%
%--------- Mass shell declarations -----------
MASS P1 = 0$ MSHELL P1$
MASS P2 = 0$ MSHELL P2$
MASS P3 = Mm$ MSHELL P3$
MASS P4 = Mm$ MSHELL P4$
76
The program for evaluation of one squared diagram actually includes the
codes for a set of diagrams which appear after replacing of some physical
particles by their ghosts according to the existing interaction vertices. We
shall call all diagrams of the set as ghost diagrams. Note that all these
diagrams have the same denominator. The evaluation is started from the
initialization of variable for the sum of numerators of the set:
numerator :=0$
The program for evaluating each diagram of the set is advanced by the
pseudo-graphical image of diagram. (See, for example, Fig.11). The name of
particle and corresponding momentum are written down near the line. The
Lorentz index is written just on the line.
The diagram code is started from the fermion loops evaluation. The pro-
gram moves along the fermion line and multiplies the vertex and propagator
terms. The nospur instruction is declared before each loop evaluation to
prevent the default trace evaluation in the end of any instruction.
If the result of multiplication contains Lorentz indices which can be con-
tracted, the program declares the corresponding vectors as indices by means
of the index instruction.
As a rule the fermion vertices are multiplied in the order which corre-
sponds to moving in the direction opposite to the direction of fermion ar-
rows. But if the diagram contains a vertex with the C-conjugate operator or
Majorana particles the order of multiplication is chosen at random, because
the propagator lines have different orientations or have no them at all. If the
orientation of fermion line is chosen, the vertices are divided into two groups,
normal and reverse. For the normal vertex the incoming fermion line is at-
tached to the second fermion, whereas for the reverse vertex it is attached to
the first one. CompHEP transforms the reverse vertices to normal form by
means of the rule (10) and writes down the corresponding comment.
After the last multiplication the state of the spur switch is restored and
the γ-matrix trace is evaluated with simultaneous multiplication by factor of
’-4’. The ’4’ is needed because the Reduce trace evaluation omits this factor
and the minus appears from the Feynman rules.
The next step is the multiplication of vertices and contraction of Lorentz
indices . The indices for contraction are declared by the Index instruction
before the multiplication. The fragment of the corresponding code looks like
77
Index m2$
Vrt_3:=Vrt_3*Vrt_5$
RemInd m2$
This code means that the vertex number 3 is multiplied by the vertex
number 5 with contraction of index m2. The result of multiplication is
considered as a generalized vertex number 3.
Here we would like to note that there is a bug in the Reduce package
which forbids to convolute several indices in one operation. To bypass this
bug we declare the ’m’ vectors as indices step by step and recalculate the
expression on each step.
If two vertices are connected by a propagator of massive vector particle
treated in the physical gauge (5) the code are organized in the following
way. CompHEP writes the code for the vertices product with contracted
indices and the code for the product of the same vertices with the prior
multiplication by relevent momentum. After that these contributions are
summarized. Below we present an example of such a code:
Index m1$
Vrt_0:=Vrt_1*Vrt_2$
RemInd m1$
Vrt_L:=Vrt_1$ Vrt_R:=Vrt_2$
Vrt_L:=(Vrt_L where m1=>(+P2+P3)/MZ)$
Vrt_R:=(Vrt_R where m1=>(+(-P2)+(-P3))/MZ)$
Vrt_0:=Vrt_0 + Vrt_L*Vrt_R$
The code for any diagram evaluation is terminated by instruction
numerator := numerator + DiagramF actor ∗ GhostF act ∗ V rt 1
which summarizes the ghost diagram contributions. Here GhostFact equals
(−1)l+v where the l is a number of loops of Faddeev-Popov ghosts and v
is a number of vector field lines in the diagram. The (−1)v factor appears
because the evaluations discribed above correspond to substitution of the
(gµν − kµ kν /M 2 ) factor for the propagator and the density matrix of vector
field whearas the correct expression has the opposite sign.
The last step of the program is the assignment of variable denominator .
It is expressed as a production of propDen(P, M ass, W idth) functions as it
is explained in Section 5.2.
78
As a result the symbolic answer for the evaluated diagram may be pre-
sented in the form
numerator
totF actor .
denominator
79
otherwise it must be described as a REAL*16 one.
FUNCTION NVAR()
returns a number of physical parameters involved in the calculation.
SUBROUTINE VINF(NUMVAR,CHARACTER *6 NAME,REAL*8 VAL)
provides the information about physical parameters involved into evaluations.
It returns the physical parameter name NAME and its value VAL. The in-
coming NUMVAR is the parameter ordering number which must be smaller than
or equal to NVAR().
SUBROUTINE ASGN(NUMVAR,REAL*8 VALNEW)
assigns to the parameter NUMVAR a new value VALNEW.
SUBROUTINE VINI
makes the initialization of all physical parameters.
SUBROUTINE CPTH(CHARACTER*60 PATH, CHARACTER*1 F SLASH)
assigns new values to all its parameters. PATH is the path to the Com-
pHEP root directory (see Section 2.5). F SLASH is a symbol which separates
file name in the path. It is ”/” or ”\” in the UNIX and MS-Windows cases
correspondingly.
REAL*8 FUNCTION SQME(NSUB)
returns a numerical value of squared matrix element for the subprocess
NSUB. Summation over out-particle polarization states and an averaging
over in-particle polarization states are carried out. Information about scalar
products of momenta must be passed on to the SQME through
must be done before the SQME call. We assume that all four-momenta pi
of particles have positive energy components (p0i > 0). PP must be of the
REAL*8 type in the case of double precision calculation and of the REAL*16
type for the quadruple precision one.
SQME is sensitive to the states of LOGICAL flags GWIDTH and RWIDTH
from the COMMON/WDTH/GWIDTH,RWIDTH. They define the treat-
ment of particle finite width. The GWIDTH flag indicates that the widths
do not break gauge invariance. RWIDTH states that the running widths are
substituted. See the discussion in Section 3.3.4.
80
It is assumed that the same units ( for example, powers of GeV ) are used
for momenta and for physical variables. SQME produces an answer in the
Parameter section
const int nvar is a number of independent physical parameters in-
volved in the evaluation of squared matrix element.
const int nfunc is a number of constrained parameters involved in
the evaluation of squared matrix element.
int calcFunc(void) calculates all constrained parameters for current
values of independent ones. It returns 0 in the case of success, otherwise 1.
int vinf (int numvar, char *name, double *val) provides the in-
formation about parameters. Here the incoming parameter numvar is a pa-
rameter number. The outgoing parameters *name and *val are the parameter
name and value, correspondingly. If *name or *val is NULL no assignment
for the corresponding parameter will be done.
The parameter numbers in the range from 1 till nvar are reserved for in-
dependent parameters and the next nfunc numbers are used for constraints.
Equal-to-zero numvar is associated with the center of mass energy. If the
numvar value is out of this range, vinf (..) returns 1.
int asgn (int numvar, double valnew); assigns a new value val-
new to the numvar parameter. It returns 0 if 0 <= numvar <= nvar , or 1
otherwise.
81
Process section
const int nin is a number of incoming particles
const int nout is a number of outgoing particles
const int nprc is a total number of subprocesses
char processch[] contains the process name. It is needed to be only
displayed on the screen during the n comphep c session.
int pinf (int nsub, int nprtcl, char *name, double * mass)
returns the name and the mass of particle with the nprtcl ordering number for
the subprocess nsub. First nin numbers are reserved for incoming particles,
while next nout are assigned to outgoing ones. One can substitute the NULL
constant instead of any outgoing parameter if the corresponding information
is not needed. The function returns 0 if nsub <= nprc and nprtcl <=
nin + nout , otherwise 1 is returned.
82
Appendix
A Self-check of the CompHEP package
The CompHEP authors have invented some tools for testing the program.
The positive result of these checks allows us to justify that CompHEP works
correctly. Our tests relate to the symbolic result level and have been realized
with the help of the Reduce [33] symbolic manipulation system. All test
routines are stored in the $COMPHEP/test directory. If the user is going to
repeat them he has to copy the corresponding files into his working directory.
All check commands must be started from the same directory.
83
To perform this check we evaluate the symbolic sum of diagrams in dif-
ferent versions of the Standard Model and compare results. The non-zero
difference is a signal of mistake. Symbolic summation is performed by Re-
duce. This summation is the most difficult step of comparison because the
sum of diagrams can be extremely cumbersome.
The Reduce program cmp.red carries out a summation of symbolic an-
swers written down in results/symb1.red as well as in results /symb1.red and
a comparison of the sums. In the case of zero difference cmp.red puts down
OK into the message file, otherwise the word Error appears.
84
cycle_check 4 2g < 23_2gen.prc
cycle_cmp 3 4 < 22_3gen.prc
i gµν − kµ kν /m2
. (14)
(2π)4 m2 − k 2
The (gµν − kµ kν /m2 ) factor gives a projection on physical degrees of free-
dom in the polarization space. This term appears because a 4-component
vector field is used to describe a particle with 3 degrees of freedom. The
kµ kν /m2 term leads to a fast growth of amplitudes at high energies, what
breaks unitarity and is not compatible with the renormalizability of theory.
The problem mentioned above is solved in the framework of gauge field
theories where the gauge symmetry is responsible for mutual cancellation of
rapidly growing contributions of separate diagrams [42]. Let our model of
particle interaction be based on a gauge theory. Then on a step of numer-
ical evaluation we expect a cancellation of contributions which come from
various Feynman diagrams. Consequently, finite precision numerical calcu-
lations may lead to wrong results. Accompanying problem is a cumbersome
expression for each diagram as a result of appearance of mutually canceling
terms.
At the same time there is a freedom in formulation of Feynman rules for
gauge theories caused by an ambiguity of gauge fixing terms [42]. These terms
modify the quadratic part of the Lagrangian and consequently may improve
the vector particle propagator. Indeed, in the case of t’Hooft-Feynman gauge
the propagator of vector particle takes the form
i gµν
. (15)
(2π) m − k 2
4 2
85
that provides a formulation of the theory where the problem of vector particle
propagator is solved explicitly.
A price for this solution is an appearance of three additional unphysical
particles in the model. They are a couple of Faddeev-Popov ghosts and one
Goldstone ghost. All of them have scalar type propagators with the same
mass m. Opposite to (14) the propagator (15) does not vanish when it
projected onto the temporal polarization state
e0 = k/m , (16)
that also leads to the appearance of additional unphysical state. The main
principles of gauge invariance guarantee [42] that an expression for the ampli-
tude should be the same for any gauge if only physical incoming and outgoing
states are considered.
Generally the t’Hooft-Feynman gauge solves the problem of cancella-
tions. But while calculating processes with incoming or outgoing massive
vector particles, we meet a similar problem. Indeed, we need to multiply
the diagram contributions by polarization vectors. The polarization vectors
(e1 , e2 , e3 ) constitute an orthonormal basis in the sub-space orthogonal to a
momentum k. Due to the relation
at least one of the polarization vectors has large (of order of k) components
for any choice of polarization basis. Let vector k have the components
q
k = ( m2 + p2 , 0, 0, p) . (18)
e1 = (0, 1, 0, 0) ; (19)
e2 = (0, 0, 1, 0) ; (20)
q
e3 = (p/m, 0, 0, 1 + p2 /m2 ) . (21)
The first two vectors correspond to transversal polarizations and the third
one corresponds to a longitudinal one. We see that the longitudinal vector
has large ( of order of k) components. It may imply a fast increase of cross-
sections of processes with the longitudinal polarizations at high energies or
86
an appearance of cancellations between various diagrams. Indeed the second
case is realized and, hence, we have got a problem with diagram cancellations.
When evaluating squared diagrams we get cumbersome expressions again as
a result of substitution of the projector (17).
87
In other words, the inclusion of the temporal polarization replaces the nor-
malization condition (17) by
e0µ e0ν − e1µ e1ν − e2µ e2ν − e3µ e3ν = gµν . (24)
which does not lead to the fatal requirement on a value of polarization vectors.
In the case of unpolarized calculation by the squared diagram technique we
substitute gµν for the polarization sum according to (24). But now we have
to add incoming and outgoing ghost states to the polarization sum in order
to compensate the contribution of temporal polarization state.
88
each squared diagram contribution contains it. This leads to cumbersome
expressions of squared diagram contributions in comparison with the case
when the unphysical polarizations are included into the sum.
Aki A∗l
X
i (25)
i∈Sall
89
There are two well known examples of gauge cancellations. The first one
is the ultraviolet cancellation of terms originating from the propagators of
massive vector particles. This problem could be resolved by the calculation
of squared matrix element in the t’Hooft - Feynman gauge.
The second example is the cancelation of double pole (t−2 ) terms of t-
channel photon propagator. There is a wide class of processes where the
incoming electron goes out in the forward direction emitting a virtual photon
like in Fig.14. The corresponding diagrams have got the 1/t pole, where t is
the squared momentum of the virtual photon. For the above kinematics the
photon appears very close to its mass shell (t ≈ 0), hence this configuration
gives a large contribution to the cross section.
For the squared matrix element we expect the 1/t2 pole, but it appears
to be reduced up to 1/t pole [27] in the zero-electron-mass limit. This fact
is caused by electro-magnetic U(1) gauge invariance. If diagrams of Fig.14
type contribute to your process, we strongly recommend to to set the ’Gauge
invariance’ switch ON (see Section 3.3.4) to prevent the gauge symmetry
breaking by width terms. Another way to solve this problem is the usage of
the Weizsaecker-Williams approximation (see Section C.4).
90
C.2 MRS structure functions
The MRS group also presents several sets of proton structure functions. Two
of them are implemented in CompHEP. They are MRS(A0 ) and MRS(G) [25].
In the A0 case it is supposed that the sea quark and gluon densities are
parameterized at small x by the x−λ function where λ is the same for the
gluon and for the sea quarks. This suggestion is motivated by the QCD
theory. The G set uses two different λ parameters for the sea quarks and for
the gluon densities. A fit of experimental data for the G set is better.
The next-to-leading order evaluation and the M S factorization scheme
are used for evaluation of the Q2 dependence of structure function. αs (MZ ) =
0.113 [0.114] in the A0 [G] case, correspondingly.
The available range is
91
electro-production to the photo-production one with an appropriate photon
spectrum:
where
α = 1/137.0359895 is the fine structure constant;
β = α(2 ln(SCALE/m) − 1)/pi
m = 0.00051099906 is the electron mass;
Euler = 0.5772156649 is the Euler constant;
Γ() is the gamma function;
SCALE is the energy scale of reaction.
In the Kuraev and Fadin article the parameter SCALE equals to the total
energy of the process because they considered the process of direct e+ e−
annihilation. In order to apply this structure function to another processes
we provide the user with a possibility to define this parameter.
92
Beamstrahlung is a process of energy loss by the incoming electron due
to its interaction with the electron (positron) bunch moving in the opposite
direction. The effective energy spectrum of electron can be described by the
following function [30]
1 exp(−η(x))
F (x) = [(1 − E −Ncl ) δ(1 − x) + h(η(x)1/3 , Ncl )] ,
Ncl 1−x
where
93
The Monte Carlo method reduces a task of integral evaluation to the task
of mean value calculation. Let g(x) is a density function satisfying
Z
g(x) dx = 1,
then
Z Z X
f (x) dx = f (x)/g(x) g(x) dx = <f /g> = lim (f (xi )/g(xi ))/N,
N →∞
where points xi are sampled with the probability density g(x) dx.
The uncertainty σN of < f /g > estimation by N sample points is propor-
tional to square root of function’s variance divided over N :
q
σN = (<(f /g)2> − <f /g>2 )/N .
VEGAS uses two techniques which allow to decrease the uncertainty of Monte
Carlo calculation, namely the importance sampling and the stratified sam-
pling.
94
1. Itmx is a number of iterations;
The same expression is valid for both the decay of unstable particle with
momentum q and the interaction of two particles with momenta q1 and q2
such that q1 + q2 = q. For further discussion we need a designation for a
phase space volume of some subset S of the full n-particle set. According to
(26)
Y δ(p2i − m2i ) 4
dΓ(q, S) = (2π)4 δ 4 (q −
X
pi ) d pi . (27)
i∈S i∈S (2π)3
Let S1 and S2 be two disjoint particle subsets, then
dΓ(q, S1 ∪ S2 ) =
95
Z δ(q12 − s1 ) 4 δ(q22 − s2 ) 4
ds1 ds2 (2π)4 δ 4 (q − q1 − q2 ) d q1 d q2
(2π)3 (2π)3
dΓ(q, S1 ) dΓ(q, S2 )
× × . (28)
2π 2π
The above formula expresses a multi-particle volume in terms of two-
particle one, the volumes dΓ(q1 , S1 ) and dΓ(q2 , S2 ) with a reduced number of
particles, and the virtual squared masses s1 , s2 of clusters S1 , S2 .
Recursive application of this formula allows one to express the multi-
particle phase space in terms of two-particle phase space. In its turn the
two-particle phase space is explicitly described by spherical angle Ω of motion
of the first decaying particle in the rest frame of initial state [36].
k1 d2 Ω1 n−1
Y k j d 2 Ωj n−1
Y
dΓn (q) = 2
√ 2 3 √ . dsj (30)
4(2π) q j=2 4(2π) sj j=2
96
p1 p1
q Ω1 , k 1
@Ω2 , k2
s2 @ p2 sA2A p2
q A Ω2 , k 2
@Ω1 , k1
s@ p3 sA3A p3
3
@ Ω ,k A Ω3 , k 3
@ 3
@ p4
3 @@
p4
97
clusters produced by the j th decay. Then
D.2.3 Smoothing
The general idea of the integrand smoothing is trivial. Let us need to evaluate
Z b
F (x)dx , (32)
a
and let F (x) have a peak like f (x), where f (x) is a simple symbolically
integrable function in contrast to F (x):
Z x
g(x) = f (x0 )dx0 . (33)
a
98
Now we may represent the integral (32) as
b g(b) F (g −1(y))
Z Z
F (x)dx = dy , (34)
a 0 f (g −1(y))
where g −1 (y) is the inverse function for g(x). The integrand is a smooth
function now.
We face very often squared matrix elements which have several poles in
one of variables. For example, the γ → b, b̄, Z → b, b̄ and H → b, b̄ vir-
tual subprocesses may contribute just to the same amplitude. Although in
this case we can evaluate the integral function g(x) symbolically, the in-
verse function g −1 (y) can be computed only as a numerical solution of the
corresponding equation. To bypass the calculation of inverse function Com-
pHEP uses the multi-channel Monte Carlo (branching) method to smooth
a sum of peaks.
The idea of the branching method is the following. Let F (x) have two
peaks, one is similar to f1 (x) and another to f2 (x). f1 (x) and f2 (x) are
singular but elementary functions. Then, instead of one integration (32), we
could perform two ones:
F (x)f1 (x) F (x)f2 (x)
Z Z Z
F (x)dx = dx + dx , (35)
f1 (x) + f2 (x) f1 (x) + f2 (x)
but now each integration has only a single peak! It is easy to extend this
method for an arbitrary number of peaks.
The branching method was used in [46] to separate peaks which came
from various diagrams. In that paper there was also proposed to use the
expression (35) where fi (x) is replaced by αi fi (x) with a subsequent search
for optimal coefficients αi . CompHEP passes on this weight optimization to
Vegas, combining two integrals in one Vegas hypercube.
As was mentioned above, CompHEP automatically searches for a polar
vector for each angle integration in order to reach a linear relation between
cosΘ and one of the squared sum of momenta which is responsible for the
peak. It could happen that various peaks need different polar vectors for
the same decay. In this case CompHEP uses the branching method again,
but now for the whole two-dimension sphere integration. In other words, we
use the branching equation (35) where x is the two dimensional sphere angle
[19, 13].
99
E Lagrangian of the Standard Model
E.1 Gauge theories
α
Group. Group is defined by its structure constants fβγ which are anti-
α α
symmetric (fβγ = −fγβ ) and obey the Jacoby identity:
δ δ δ
fα fβγ + fγ fαβ + fβ fγα = 0 .
Group generators are Hermitian matrices τ̂α which satisfy the commuta-
tion relations:
γ
τ̂α τ̂β − τ̂β τ̂α = i fαβ τ̂γ .
In particular the generators in the adjoint representation are
100
For gauge fields the local gauge transformations are defined by
Gauge fixing terms. In order to quantize the gauge theory one must add
to (36) gauge fixing term and the corresponding Faddeev-Popov term. The
first term breaks the gauge symmetry and in this way removes the divergence
of the functional integral. The second term improves the integration measure
to provide correct predictions for gauge invariant observables.
The general form of the gauge fixing term is
1X α
LF G (x) = − (Φ (x))2 . (37)
2 α
where cα (x) and c̄α (x) are the auxiliary anti-commutative fields. They are
called the Faddeev-Popov ghosts. Note that we may multiply (38) by an
101
arbitrary factor which can be hidden in the definition of ghost fields. As a
rule it is chosen in such a way to provide a convenient form of the ghost
propagator.
The well-known choice of the gauge fixing terms, the Feynman-like gauge,
is
1 X µ α
LGF = − 2 (∂ Aµ + ...)2 .
2g α
In this case the quadratic part of gauge field Lagrangian takes the simplest
form
1
− 2 ∂µ Aν ∂ µ Aν . (39)
2g
The corresponding Faddeev-Popov Lagrangian is
A → A/g .
In this way the coupling constant g leaves the quadratic part of the La-
grangian (36) and appears in the interaction terms.
102
1 X i
Lphys = − F α µν (x)Fα µν (x) + (q̄k (x)γ µ ∇µ qk (x) − ∇µ q̄k (x)γ µ qk (x)) .
4 k 2
(40)
where
∇µ q(x) = ∂µ q(x) − i g Gαµ (x)t̂α q(x) ;
α
Fµν (x) = ∂µ Gαν (x) − ∂ν Gαµ (x) + g fβγ
α
Gβµ (x)Gγν (x) ;
1X µ α 2
LGF = − (∂ Gµ ) ; (41)
2 α
103
Infinitesimal local gauge transformations are defined as follows
Let us express Wµ1 and Wµ2 in terms of a mutually conjugated couple Wµ+
and Wµ−
√
Wµ1 = (Wµ− + Wµ+ )/ 2 ;
√
Wµ2 = (Wµ− − Wµ+ )/(i 2) .
Thus, the Lagrangian of self-interaction for the SU (2) gauge fields in term
of W + and W − has the form:
i g2 ∂µ Wν3 (Wµ+ Wν− − Wµ− Wν+ ) + ∂µ Wν+ (Wµ− Wν3 − Wµ3 Wν− )
−∂µ Wν− (Wµ+ Wν3 − Wµ3 Wν+ )
1
+g22 Wµ3 Wν+ (Wµ− Wν3 − Wµ3 Wν− ) + Wµ+ Wν− (Wµ+ Wν− − Wµ− Wν+ ) . (45)
2
All matter fields in the electroweak theory are either SU (2) invariant
singlets or belong to its fundamental representation. In the latter case they
form doublets. Generators for these doublets are expressed via the Pauli
σ-matrices
τ̂α = σ̂α /2 .
Thus the infinitesimal local gauge transformations for doublets take a form:
i g2 α i g1
D(w, b)ψ(x) = w (x)σ̂α ψ(x) + Y b(x)ψ(x) .
2 2
Here g1 is the coupling constant of U (1) gauge interaction. The constant Y
depends on a type of the doublet. It is called a hypercharge.
In the gauge theory of electroweak interaction the gauge fields interact
with a scalar (Higgs) doublet which has a nonzero vacuum state. Without
loss of generality one can put Y = 1 for the Higgs doublet. By means of the
gauge transformation the vacuum state of this field may be presented in the
form: !
0√
ΦΩ = ,
φ0 / 2
104
where φ0 is a real constant.
As a result of spontaneous symmetry breaking the Wµα and Bµ fields do
not correspond to physical particles. Physical particles in this model are the
photon (Aµ ), W-bosons (Wµ+ , Wµ− ) and Z-boson (Zµ ). The photon field Aµ is
a combination of gauge fields responsible for the local gauge transformations
which save the Higgs vacuum ΦΩ :
Aµ = Bµ cos Θw + Wµ3 sin Θw ,
where the mixing angle Θw = arctan(g2 /g1 ). To complete W + , W − , and A
up to the orthonormal basis of gauge fields we introduce
Zµ = −Bµ sin Θw + Wµ3 cos Θw .
Let w + (x), w − (x), a(x), and z(x) be parameters of the local gauge trans-
formation corresponding to the fields Wµ+ , Wµ− , Aµ , and Zµ . Then for a
matter doublet with a hypercharge Y the gauge transformation is given by
the following expression:
D̂(w + , w − , a, z)Ψ =
i g2 √
" ! !
0 w+ 1+Y 0
2 + sin Θw a
2 w− 0 0 Y −1
!#
1 − Y tan2 Θw 0
+ cos Θw z Ψ. (46)
0 −1 − Y tan2 Θw
105
Here Wf+ and Zf are the unphysical Goldstone fields corresponding to varia-
tion of the Higgs vacuum caused by the D(w + , 0, 0, 0) and D(0, 0, 0, z) gauge
transformations. The real field H corresponds to a physical degree of freedom
which is assoshated with the Higgs patricle.
The term (− λ2 (Φ+ Φ − 12 φ20 )2 ) contains the mass term for the H field:
λ
− (φ0 )2 H 2 ,
2
and the following terms of self-interaction for H and the Goldstone fields:
λ + −
− (Wf Wf + (H 2 + Zf2 )/2)2 + 2φ0 H(Wf+ Wf− + (H 2 + Zf2 )/2) . (48)
2
Usually λ is expressed via the mass of H-boson MH :
!2
MH
λ= .
φ0
∇µ Φ = ∂µ Φ − D̂(W +µ , W −µ , Aµ , Zµ )Φ ,
D̂(W +µ , W −µ , Aµ , Zµ )Φ =
i g2 Wµ+ (φ0 + H − i Zf ) + i (2 sin Θw Aµ + cos Θw (1 − tan√ 2
Θw )Zµ ) Wf+
!
.
2 (2iWµ− Wf+ − Zµ (φ0 + H − i Zf )/ cos Θw )/ 2
(49)
The term (D̂µ Φ)+ (D̂ µ Φ) gives us the mass terms for the W and Z-bosons:
!2 !2
g 2 φ0 µ 1 g 2 φ0
Wµ+ W − + Zµ Z µ , (50)
2 2 2 cos Θw
and the following terms describing the interaction of a couple of vector bosons
with Higgs and Goldstones:
g22 µ
( Wµ+ W − (H 2 + Zf2 + 2φ0 H + 2Wf+ Wf− )
4
106
+4Aµ Aµ sin2 Θw Wf+ Wf−
Zµ Z µ
+ 2 ((H 2 + Zf2 )/2 + φ0 H + (1 − 2 sin2 Θw )2 Wf+ Wf− )
cos Θw
+4Aµ Z µ tan Θw (1 − 2 sin2 Θw )Wf+ Wf−
−2i tan Θw Wµ+ (cos Θw Aµ − sin Θw Z µ )(φ0 + H − i Zf )Wf−
+2i tan Θw Wµ− (cos Θw Aµ − sin Θw Z µ )(φ0 + H + i Zf )Wf+
). (51)
MZ = MW / cos Θw .
The off-diagonal quadratic terms are canceled by the gauge fixing terms.
See below.
E.3.3 Gauge fixing and ghost terms for the t’Hooft-Feynman gauge
In the case of t’Hooft-Feynman gauge the gauge fixing terms are
1 1
− (∂ µ Aµ )2 − (∂ µ Zµ + MZ Zf )2 − |∂ µ Wµ+ + MW Wf+ |2 .
2 2
107
The squared divergences of fields transform the quadratic part of Lagrangian
for vector bosons to a diagonal form like (39). The squared Goldstone field
terms give a mass to the Goldstone particle equal to the mass of the corre-
sponding vector boson field. The off-diagonal quadratic terms, which follow
from the gauge fixing Lagrangian, cancel the off-diagonal terms (52) up to
complete divergency terms.
According to the general rule (38) the Faddeev-Popov Lagrangian is
−Ac̄ 2Ac − Zc̄ 2Zc − Wc̄− (2Wc+ + MW Wc+ ) − Wc̄+ (2Wc− + MW Wc− ) ,
108
MW Wc̄−
+ (Wc+ (H − i Zf ) + i (2 sin Θw Ac + cos Θw (1 − tan2 Θw )Zc ) Wf+ )))
2
+i(∂ µ Wc̄+ )(Wµ− (sin Θw Ac + cos Θw Zc ) − Wc− (sin Θw Aµ + cos Θw Zµ ))
MW Wc̄+
+ (Wc− (H + i Zf ) − i (2 sin Θw Ac + cos Θw (1 − tan2 Θw )Zc ) Wf− )))
2
). (54)
g2 H
−Ac̄ ∂ µ (−i g2 sin Θw (Wµ+ Wc− − Wµ− Wc+ ) + ∂µ Ac ) − Zc̄ MZ (MZ + )Zc
2 cos Θw
g2 g2
−Wc̄− MW (MW + H)Wc+ − Wc̄+ MW (MW + H)Wc− .
2 2
Integration over Ac and Ac̄ can be performed explicitly and gives a result
which does not depend on other fields. So Ac and Ac̄ ghosts may be omitted.
In the unitary gauge only physical polarization states of the incoming
and outgoing W ± and Z bosons are considered. So Wc± and Zc are not
needed in the external lines of Feynman diagrams and may be omitted also
in tree level calculations. Consequently, in the unitary gauge all ghost and
Goldstone fields may be omitted.
109
The coupling constants g2 and g1 may be expressed in terms of the electro-
magnetic coupling constant: g2 = e sin Θw and g1 = e cos Θw .
In the case of unitary gauge the interaction is defined by a subset of
vertices which appears after removing the Faddeev-Popov ghosts and the
Goldstone fields.
L 1 − γ5
Ψ = Ψ.
2
Thus, the SU (2) group must transform only the left-handed fermion compo-
nents. The initial Lagrangian of fermion field has the corresponding global
symmetry only if all fermions are massless. Indeed, the Lagrangian of free
massless fermion field splits into two independent parts:
i
L = (Ψ̄γµ ∂ µ Ψ − (∂ µ Ψ̄)γµ Ψ)
2
i L i
= (Ψ̄ γµ ∂ µ ΨL − (∂ µ Ψ̄L )γµ ΨL ) + (Ψ̄R γµ ∂ µ Ψ − (∂ µ Ψ̄R )γµ ΨR ) ,
2 2
which allows to apply the SU (2) gauge transformations to the left-handed
components of fermion doublets. In the same time the mass term contains a
product of left-handed and right-handed fermion components:
110
the electromagnetic coupling constant for right-handed fermion with a hy-
percharge Y R is (g1 Y R cos Θw )/2. Comparing it with the expression (46) we
see that the hypercharges of right-handed components of doublet are
Y1R = 1 + Y ,
Y2R = Y − 1 .
Thus, we may unambiguously write down the vertices of interactions associ-
ated with the covariant derivative:
√
" ! !
g2 0 Wµ+ 1+Y 0
Ψ̄1 Ψ̄2 2 + sin Θw Aµ
2 Wµ− 0 0 Y −1
!# !
1 − Y tan2 Θw 0 γ µ ΨL1
+ cos Θw Zµ
0 −1 − Y tan2 Θw γ µ ΨL2
! !
g1 Y +1 0 γ µ ΨR
1
+ (cos Θw Aµ − sin Θw Zµ ) Ψ̄1 Ψ̄2 .
2 0 Y −1 γ µ ΨR
2
111
which are accompanied by vertices of interactions of fermions with Goldstone
fields:
!
m1 g 2 i
− √ (Wf− Ψ̄2 (1 + γ 5 )Ψ1 − Wf+ Ψ̄1 (1 − γ 5 )Ψ2 ) + H Ψ̄1 Ψ1 + iZf Ψ̄1 γ 5 Ψ1
2MW 2
!
m2 g 2 i
− √ (Wf+ Ψ̄1 (1 + γ 5 )Ψ2 − Wf− Ψ̄2 (1 − γ 5 )Ψ1 ) + H Ψ̄2 Ψ2 − iZf Ψ̄2 γ 5 Ψ2 .
2MW 2
(56)
If there are several doublets with the same hypercharge, then a general
form of Yukawa Lagrangian contains a product of terms from different dou-
blets. Such terms form two mass matrices: one for upper and another for
lower fermions. Each of these matrices can be diagonalized by means of the
unitary transformation of doublets, but this cannot be done for both of them
at the same time. In this case the basis of doublets is chosen in such a way to
present one of these matrices, for example, for upper fermions, in the diag-
onal form. Then the physical particles correspond to linear combinations of
lower doublet fields realized by some unitary matrix which is called a mixing
matrix.
Generally the Lagrangian is written down in terms of fermion fields which
directly correspond to particles. Interactions of such fields with A, Z, H, and
Zf are the same as defined by (55) and (56), whereas interactions with W ±
and Wf± contain elements of the mixing matrix.
112
is not needed. Meantime both the upper and down components of quark
doublets have nonzero masses. The corresponding mixing matrix is named
the Cabibbo-Kobayashi-Maskawa matrix. It expresses the lower components
of quark doublets in terms of the real quark fields:
d0
Kobayashi d
0
s = M oskawa s .
b0 matrix b
113
References
[1] J. Küblbeck, M. Böhm, A. Denner, Comp. Phys. Comm. 60 (1990) 165
R. Mertig, M. Böhm, A. Denner, Comp. Phys. Comm. 60 (1990) 345
[6] P.A. Baikov et al., Physical results by means of CompHEP, in: Proc.
of X Workshop on High Energy Physics and Quantum Field Theory
(QFTHEP-95), ed. by B.Levtchenko, V.Savrin, Moscow, 1996, p.101
(hep-ph/9701412)
[7] E.E. Boos, M.N. Dubinin, V.A. Ilyin, A.E. Pukhov, V.I. Savrin, Com-
pHEP: specialized package for automatic calculations of elementary par-
ticle decays and collisions, SNUTP report 94-116, Seoul, 1994 (hep-
ph/9503280)
114
[10] E. Boos, M. Dubinin, V. Edneral, V. Ilyin, A. Kryukov, A. Pukhov,
S. Shichanin, in: ”New Computing Techniques in Physics Research II”,
Proc. of Int. Workshop on Software Engineering, Artificial Intelligence
and Expert Systems for High Energy and Nuclear Physics (AI’91), ed.
ed.by D. Perret-Gallix, World Scientific, Singapore, 1992, p. 665.
[13] D. Kovalenko, A. Pukhov, Nucl. Instr. and Meth. A389 (1997) 299
115
[18] M. Dubinin, A. Semenov, hep-ph/9812246
[19] V.A. Ilyin, D.N. Kovalenko, A.E. Pukhov, Recursive algorithm for the
generation of relativistic kinematics for collisions and decays with reg-
ularizations of sharp peaks, Int. J. Mod. Phys. C7 (1996) 761 (hep-
ph/9612479)
[20] E.E. Boos, M.N. Dubinin, V.F. Edneral, V.A. Ilyin, A.P. Kryukov,
A.E. Pukhov, S.A. Shichanin, Applications of CompHEP system to par-
ticle processes calculation, NPI MSU report 91-9-213, Moscow, 1991
[21] E.E. Boos, M.N. Dubinin, V.A. Ilyin, A.E. Pukhov, S.A. Shichanin,
T. Kaneko, S. Kawabata, Y. Kurihara, Y. Shimizu, H. Tanaka, Au-
tomatic calculation in high-energy physics by GRACE/CHANEL and
CompHEP, Int. J. Mod. Phys. C5 (1994) 615
[25] A.D. Martin, R.G. Roberts and W.J. Stirling, Phys. Lett. B354 (1995)
155
[26] I.F. Ginzburg, G.L. Kotkin, V.G. Serbo, V.I. Telnov, Nucl. Instr. and
Meth. 205 (183) 47
116
[28] E. Kuraev, V. Fadin, Sov. J. Nucl. Phys. 41 (1985) 466
[32] W.H. Press, S.A. Teukolsky, W.T. Vetterling, B.P. Flannery, Numerical
Recipes in Fortran, Cambridge University Press, 1992
[39] E. Boos, M. Dubinin, L. Dudko, Int. J. Mod. Phys. A11 (1996) 5015
[42] J.B. Bjorken, S.D. Drell, Relativistic quantum fields, McGraw-Hill, New
York, 1965
C. Itzykson, J. Zuber. Quantum Field Theory, McGraw-Hill, New York,
1980
[43] T.-P. Cheng and L.-F. Li, Gauge theory of elementary particle physics,
Oxford Univ. Press, 1984
117
[44] L. Baulieu, Phys. Rep. 129 (1985) 1
[46] F.A. Berends, R. Pittau, R. Kleiss, Comp. Phys. Comm. 85 (1995) 437
[47] E. Byckling, K. Kajantie, Particle Kinematics, John Wiley & Sons, 1973
118
Pictures and figures
******************************************************************
* M A I N M E N U *
* CompHEP numerical module u ,D -> b ,B ,W+ *
******************************************************************
* x: Exit hN: Help (N-menu position) m: MAIN menu *
* *
* 1: Subprocess 2: IN state *
* 3: Model parameters 4: QCD SCALE *
* 5: Breit-Wigner 6: Cuts *
* 7: Kinematics 8: Regularization *
* 9: Vegas 10: Simpson *
* 11: Batch 12: View result *
*****************************************************************
Type number of menu position and press ENTER:_
119
Figure 3: Example of the CompHEP tables
120
Menu 1
QED
Fermi model
St. model(unit. gauge)
St. model(Feyn. gauge)
MSSM (unit. gauge)
MSSM (Feyn. gauge)
CREATE NEW MODEL
Menu 2
Menu 4
Enter process
Edit model Enter process: _____
partons: _____
Delete model
Menu 3 CMS Energy in GeV: _____
Exclude diagrams with: ___
Parameters
Constraints Menu 5
Particles Squaring
Vertices View diagrams
Menu 6
View squared diagrams
Symbolic calculation
Menu 7 REDUCE program
Make n_comphep_c
View squared diagrams
Make n_comphep_f
Write results
Numerical Interpreter
Menu 8 C-compiler
REDUCE code Fortran compiler
MATHEMATICA code
FORM code
C code(for num. calc.)
Fortran Real*8 code
Fortran Real*16 code
121
Figure 6: Example of the process input
122
Menu 1
Subprocess
IN state
Model parameters
Menu 2 QCD scale Menu 5
Breit-Wigner
S.F.1 OFF Cuts
S.F.2 OFF Kinematics Gauge invariance OFF/ON
Momentum P1[GeV]=1000 Regularization S dependence OFF/ON
Momentum P2[GeV]=1000 Vegas
Simpson
Batch
Menu 8
Menu 3 Menu 6
Add to batch file
Itmx1 = 5
OFF Ncall1 = 10000 Start integration
ISR&Beamstralung Itmx2 = 5 Itmx=5
CTEQ4m Ncall2 = 1000 nCall=10000
MRS(A’) Generate events ON/OFF Clear statistic
MRS(G) Table size = 5 Write events to file(OFF/ON)
Laser photon beam Tab. param.= SQRTS Set distributions
Equiv.Photon. Appr. Min. val = 100 Display distributions
Max. val = 500
Menu 4 Menu 7
123
Figure 9: Representation of results for 1->2 processes
124
e1 E2 ! E2 e1
==>==\ /==<====!==<==\ /==>==
P1 | | P4 ! P4 | | P1
| | ! | |
E1 | A | e2 ! e2 | A | E1
==<==@-1---@==>====!==>==@---2-@==<==
P2 P5 P3 ! P3 -P6 P2
e1 n1 ! n1 e1 e1 n1 ! n1 e1
==>==@==>====!==>===@==>== ==>==@==>====!==>===@==>=
| ! | | ! |
W+| ! W+| W+| ! W+|
| ! | | ! |
-----@--<----!--<---@----- -----@--<----!--<---@-----
A W- W- A A W-.f W-.f A
a) b)
e1 n1 ! n1 e1 e1 n1 ! n1 e1
==>==@==>====!==>===@==>== ==>==@==>====!==>===@==>==
| ! | | ! |
W+| ! W+| W+| ! W+|
| ! | | ! |
--<--@--<----!--<---@--<-- -->--@--<----!--<---@-->--
A.C W-.C W-.C A.C A.c W-.c W-.c A.c
c) d)
125
G1 G3 G1 G3 G1 G3 G1 G3
= G.t + +
G.t G.t
G2 G4 G2 G4 G2 G4 G2 G4
e−
e− -
γ p2
p1 - -
R
p3
126