Äîêóìåíò âçÿò èç êýøà ïîèñêîâîé ìàøèíû. Àäðåñ îðèãèíàëüíîãî äîêóìåíòà : http://theory.sinp.msu.ru/~pukhov/CALCHEP/calchep_man_3.3.6.pdf
Äàòà èçìåíåíèÿ: Thu Jul 19 20:13:50 2012
Äàòà èíäåêñèðîâàíèÿ: Mon Oct 1 22:57:28 2012
Êîäèðîâêà:

Ïîèñêîâûå ñëîâà: ion drive
CalcHEP Calculator for High Energy Physics A package for the evaluation of Feynman diagrams, integration over multi-particle phase space, and event generation.
A.Pukhov, A.Belyaev, N.Christensen User's manual for version 3.3.6 (19.07.2012) Based on Pukhov et al, hep-ph/9908288



calchep@googlegroups.com

1


Contents
1 Preface 6 1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.2 Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . 10 2 Installation pro cedure 2.1 CalcHEP Web Site . . . . . . . . . . . . . 2.2 Calchep License . . . . . . . . . . . . . . . 2.3 How to get the code . . . . . . . . . . . . 2.4 Compilation procedure . . . . . . . . . . . 2.5 Compilation for High Precision calculations 2.6 User installation and start of the CalcHEP 2.7 Potential problems in compilation . . . . . 3 Elements of the user interface 4 Me 4.1 4.2 4.3 4.4 4.5 4.6 nu system for symb olic calculation Model Choice and Manipulation . . . . . . . Numerical Evaluations . . . . . . . . . . . . Process Input . . . . . . . . . . . . . . . . . Squared Diagrams and Symbolic Calculation Output of results and launching of the numer Switches . . . . . . . . . . . . . . . . . . . . . . s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. .. .. .. ical .. . . . . . . . . . . . . . . . . . . . . . . ... ... ... ... calcu ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .... .... .... .... lation .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ... ... ... ... ... session .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 11 11 11 12 14 15 16 18 29 29 33 35 37 41 42 44 44 46 47 48 50 52 54 55 56 57 58

5 Numerical session 5.1 Sketch of the menu system. 5.2 Bookkeeping . . . . . . . . . 5.3 Parton Distribution Function 5.4 QCD coupling . . . . . . . . 5.5 Breit-Wigner propagator . . 5.6 Kinematical Functions . . . 5.7 User Defined Functions . . . 5.8 Cuts . . . . . . . . . . . . . 5.9 Kinematics . . . . . . . . . 5.10 Regularization . . . . . . . . 5.11 Monte-Carlo simulation . . .

2


5.12 Event Generation . . . . . . . . . . . . . . . . . . . . . . . . . 60 5.13 Simpson Integration . . . . . . . . . . . . . . . . . . . . . . . 62 5.14 Two Particle Decays . . . . . . . . . . . . . . . . . . . . . . . 63 6 Collecting Subpro cesses 6.1 Distribution Summation . . . . . . . . . . . . . . . . . . . . . 6.2 Event Mixing and LHEF . . . . . . . . . . . . . . . . . . . . . 6.3 N-tuples. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Batch Mo de 7.1 Blind mode . . . . . . . . . . . . . . . 7.2 Shell Scripts . . . . . . . . . . . . . . . 7.3 Batch interface . . . . . . . . . . . . . 7.3.1 Structure and keywords of the b 7.3.2 Example of the bacth file . . . . 7.3.3 Monitoring of the calchep batch 7.3.4 Results Storage . . . . . . . . . .... .... .... acth file .... session .... . . . . . . . . . . . . . . .... .... .... ... .... .... .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 66 66 69 70 71 73 78 80 93 96 99 100 100 101 103 106 109 110 111 114 114 117 117 118 118 119 122

8 Particle Interaction Mo del Implementation 8.1 Independent Parameters . . . . . . . . . . . 8.2 Dependent Parameters . . . . . . . . . . . . 8.3 Particles . . . . . . . . . . . . . . . . . . . . 8.4 Interaction Vertices . . . . . . . . . . . . . . 8.5 External functions and libraries. . . . . . . . 8.6 Propagators . . . . . . . . . . . . . . . . . . 8.7 Ghost and Goldstone fields propagators . . . 9 To ols for mo del implementation. 9.1 The SLHAplus package . . . . . . . . . . . . 9.2 Effective Higgs - and glu-glu interactions. 9.2.1 Construction of effective vertexes. . . 9.2.2 QCD corrections to h . . . . . . . 9.2.3 QCD corrections for h-glu-glu . . . . 9.3 LanHEP: automatic generation of models. . 9.4 FeynRules . . . . . . . . . . . . . . . . . . .

3


10 CalcHEP as a generator of matrix elements for other ages. 10.1 Choosing of model . . . . . . . . . . . . . . . . . . . . 10.2 Setting of parameters and calculation of constraints. . . 10.3 Testing of particle contents. . . . . . . . . . . . . . . . 10.4 Decay widths and branching fractions. . . . . . . . . . 10.5 Compilation of new processes. . . . . . . . . . . . . . . 10.6 Calculation of matrix elements. . . . . . . . . . . . . . 11 CalcHEP output for 11.1 General structure . 11.2 Reduce examples . 11.3 Mathematica exam 11.4 Form . . . . . . . . 11.5 Reduce program . App endix
A A L TEX output

. . . . . .

pack123 . . . 123 . . . 124 . . . 125 . . . 125 . . . 126 . . . 127 . . . . . . . . . . . . . . . 129 129 131 133 135 135 140 140

Reduce, ..... ..... ples . . . ..... .....

M .. .. .. .. ..

athematica ....... ....... ....... ....... .......

and ... ... ... ... ...

Form .... .... .... .... ....

B Self-check of the CalcHEP package 140 B.1 Check of the built-in symbolic calculator . . . . . . . . . . . . 141 B.2 Comparison of results produced in two different gauges . . . . 141 C Ghost fields and the squared diagram techniq Feynman gauge C.1 The problem . . . . . . . . . . . . . . . . . . C.2 Incoming and outgoing ghosts . . . . . . . . C.3 Massless vector-particle case . . . . . . . . . C.4 Summation of ghost diagrams in CalcHEP . C.5 Gauge symmetry and cancellations . . . . . D Fey D.1 D.2 D.3 nman rules in CalcHE Lorentz part of diagram Color factor . . . . . . Common factors. . . . P ue for the t'Ho oft142 . . . . . . . . . . 142 . . . . . . . . . . 143 . . . . . . . . . . 146 . . . . . . . . . . 146 . . . . . . . . . . 148

149 . . . . . . . . . . . . . . . . . . . . . 149 . . . . . . . . . . . . . . . . . . . . . . 150 . . . . . . . . . . . . . . . . . . . . . . 152

4


E

Ex E.1 E.2 E.3

amples of mo del realization. Implementation of QCD Lagrangian . . . . . . . . . . . . . . . Neutrino as a Ma jorana fermion . . . . . . . . . . . . . . . . . Leptoquarks . . . . . . . . . . . . . . . . . . . . . . . . . . . .

152 152 155 158 159

F Color string basis. G Distribution functions and b eam sp e G.1 Backscattered photon spectrum . . G.2 Weizsaecker-Williams approximation G.3 ISR and Beamstrahlung . . . . . . ctra ............... .............. ...............

160 160 160 161

H PDT - Particle Distribution Tables in CalcHEP. 163 H.1 CTEQ and MRST parton distributions . . . . . . . . . . . . . 163 H.2 Format of parton distribution tables. . . . . . . . . . . . . . . 165 I Monte Carlo phase space integration I.1 Parameterization of multi-particle phase space I.1.1 Parameterization via decay scheme . . I.1.2 Polar vectors . . . . . . . . . . . . . . I.1.3 Smoothing . . . . . . . . . . . . . . . . I.2 Adaptive Monte Carlo integration package Veg I.2.1 Importance sampling . . . . . . . . . . I.2.2 Stratified sampling . . . . . . . . . . . I.3 Generation of events . . . . . . . . . . . . . . I.4 Format of event file. . . . . . . . . . . . . . . . . . . as . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 167 167 169 170 172 172 173 173 174 176

J Table of exit co des

5


1
1.1

Preface
Intro duction

CalcHEP[1] is a package for the automatic calculation of elementary particle collisions and decays in the lowest order of perturbation theory (the tree approximation). The main idea of CalcHEP is to provide an interactive environment where the user can pass from the Lagrangian to the final distributions effectively with a high level of automation. Other packages created to solve similar problems are GRACE[2, 3, 4], HELAS[5], CompHEP[6, 7], FeynArts/FormCalc[8, 9, 10], MADGRAPH[11, 12], HELAC-PHEGAS[13, 14, 15], O'MEGA[16], WIHIZARD[17], and SHERPA[18, 19]. The interactive session of CalcHEP is graphical and menu-driven and guides the user through the calculation by breaking the calculation up into a series of steps. At each step, CalcHEP presents the user with the available options allowing him/her to control the details of their calculation in an intuitive way. Moreover, at each menu, contextual help is available which explains the details of the current choices. The batch session of CalcHEP is controlled by a set of scripts which perform common tasks noninteractively. After initializing the desired calculation, the user runs one of the scripts in the background. In some cases, parallelization is also supported. Many models of particle interactions have been implemented in CalcHEP. Among them are the minimal supersymmetric extension of the standard model (MSSM)[20, 21], the next to minimal supersymmetric extension of the standard model (NMSSM)[22], the cp violating minimal supersymmetric extension of the standard model (CPVMSSM)[23], Little Higgs Models [24], a Lepto-quark model [25], a Technicolor model[26], a Higgsless Model[27, 28], and models with extra-dimensions [29, 30, 31, 32, 33, 34]. Some of these models are available on the CalcHEP website for the users convenience. A new model of particle interactions is implemented into CalcHEP by writing a set of pure text model files which contain all the details of the model including the properties of its particles, parameters and vertices. Although it is possible to do this by hand (especially for simple models), new models are typically implemented using a dedicated implementation package such as LanHEP[35] or FeynRules[36] which automatize the process of calculating the 6


Feynman rules and writing the CalcHEP model files. This can be especially important for models with a large number of new particles and complicated Lagrangians. The CalcHEP package consists of three parts which perform the symbolic, numerical and batch calculations. The first two parts are written in the C programming language. The symbolic part produces C codes for squared matrix elements which are then used in the numerical calculations. The last part is written in Perl. It calls the routines of the first two parts and collects the results to obtain final cross sections and events for multichannel processes typical of modern collider physics. The symbolic session of CalcHEP enables the user to, interactively: · load a new model of particle interactions. · modify a model of particle interactions. · check a model for sytax errors. · read parameter information from an SLHA file[37, 38]. · calculate dependent parameters. · calculate decay widths and branching ratios. · choose between Feynman and unitary gauge. · choose a collision or decay process by specifying the incoming and outgoing particles. · specify particles exclusions for the diagrams. · generate Feynman diagrams. · display Feynman diagrams.
A · generate LTEX output for the diagrams.

· remove particular diagrams from the calculation. · generate and display the squared Feynman diagrams. 7


· remove particular squared diagrams from the calculation. · calculate analytic expressions for the squared diagrams using the builtin symbolic calculator. · export the resulting squared diagram expressions to Reduce , Mathematica or Form format for further symbolic manipulations in those packages. · generate optimized C codes for the squared matrix elements. · compile the generated code. · launch the resulting numerical session. · generate numerical libraries of squared matrix elements for other packages. The numerical session of CalcHEP enables the user to, interactively: · convolute the squared matrix element with structure functions and beam spectra. The CTEQ and MRST parton distribution functions, the ISR and Beamstrahlung spectra of electrons, the laser photon spectrum, and the Weizsaecker-Williams photon structure functions are available[39] for muons, electrons and protons. Linking with LHAPDF[40] is also supported. · modify physical parameters (such as total energy, coupling constants, masses etc.) involved in the process. · set the polarization of incoming massless particles. · set the QCD scale for the evaluation of the QCD coupling constant (and optionally its running) and for the parton distribution functions. · (automatically) calculate particle widths including both 1->2 and 1->3 decay processes. · apply various kinematical cuts.

8


· define the kinematic scheme (phase space parameterization) for effective Monte Carlo integration. · introduce a phase space mapping in order to smooth the sharp peaks of a squared matrix element or of structure functions. · perform a Monte Carlo phase space integration by use of Vegas. · generate unweighted events. · display distributions for various kinematic variables.
A · create graphical and LTEX output for histograms.

· save the histogram data to file for further analysis and/or plotting by gnuplot, PAW or Mathematica. Most of the features of the symbolic and numerical sessions are supported in the batch session. The instructions for the batch computation are written in a text file. The batch interface reads the instructions and performs them in the background, noninteractively. The batch session enables the user to: · perform the symbolic and numerical calculations which are available in the interactive mode. · view the results of the calculation's progress via a series of html pages. · perform the calculations in parallel on a multicore machine or on a computer cluster. · combine events from multiple production and decay events. · write the final events to an LHE file[41] for further processing. · perform scans over multiple physical parameters.

9


1.2

Acknowledgments

The CalcHEP package contains codes written by the CompHEP group. We would like to thank to V.Ilyin, D.Kovalenko, A.Kryukov, V.Edneral, A.Semenov for permission to use their code in CalcHEP. During the last decade, much of the CalcHEP development was motivated by the development of the micrOMEGAs package[42, 43] which was done by A.Pukhov in collaboration with G.Belanger,F.Boudjema, and A.Semenov. Many new models for CalcHEP were implemented as part of this collaboration. The work of A.Semenov developing the LanHEP program has been crucial for CalcHEP. We are very thankful to G.Belanger, F.Boudjema,A.Semenov for this collaboration. This work was supported by PICS-397 of CNRS Calcul en physique en des partiqules. We would also like to thank A.Datta and K.C.Kong for numerous suggestions, discussions and testing of CalcHEP as well as to Patrik Svantesson recent help debugging help. For the last two years, A. Pukhov's work on CalcHEP has been supported by the Royal Society grant JP090598. N. Christensen has been supported by the US National Science Foundation under grants PHY-0354226 and PHY-0705682 and ???(PITT-PACC)

10


2
2.1

Installation pro cedure
CalcHEP Web Site
http://theory.sinp.msu.ru/~pukhov/calchep.html

The CalcHEP code and manual can be found at the following Web site:

2.2

Calchep License
Non-profit Use License Agreement

This Agreement is to be held between the Authors of the CalcHEP program and any Party which acquires the program. On acquiring the program the Party agrees to be bound by the terms of this Agreement. 1. This License entitles the Licensee (one person) and the Licensee's research group to obtain a copy of the source code of CalcHEP and to use the acquired program for academic research and education or other non-profit purposes within the research group; or, it entitles the Licensee (a company, organization or computing center) to install the program and allow access to the executable code to the members of the Licensee for academic research and education 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 provide the current licence for users. 3. This License does not permit any commercial (profit-making or proprietary) use or re-licensing or re-distributions. Persons interested in a for-profit use should contact the Authors. 4. The Authors of CalcHEP 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.

2.3

How to get the co de

If you agree with the license above, you may download the CalcHEP code from the CalcHEP web site. The current filename is 11


calchep 3.3.6.tar.gz which corresponds to the current CalcHEP version 3.3.6. The next step is to unpack this file by doing gtar -xzf calchep 3.3.6.tar.gz As a result, a directory named calchep 3.3.6 will be created. Below we shall refer to this directory as $CALCHEP1 . This directory contains the following subdirectories: · c sources/ which is used for the source codes of the CalcHEP package. · lib/ which is used for the libraries generated during the CalcHEP compilation. · bin/ which contains the CalcHEP executable scripts and binary files. · include/ which contains some header files. · pdTables/ which contains tables of partons distribution functions. · help/ which contains text files used in the interactive session for the contextual help. · utile/ which contains auxiliary routines which are described in the utile/README file. · models/ which contains two realizations of the Standard Model in CalcHEP's format, one with a full and another with a diagonal CKM matrix. · work/ which is a used to initialize a directory for the users calculations.

2.4

Compilation pro cedure

In order to compile the CalcHEP source code you need a C compiler, the X11 graphics library and the X11 include files. The compilation is launched by running
CalcHEP scripts automatically set the environment variable CALCHEP which contains the path to the CalcHEP root directory $CALCHEP.
1

12


gmake from the calchep 3.3.6 directory. CalcHEP Makefiles are written for gmake. If the gmake command is absent on the users computer then make should also work. If the compiler is detected and the sources are compiled successfully you will see the message: "CalcHEP is compiled successfuly and can be started " Otherwise the corresponding error message is printed on screen. tion (2.7) for a discussion of possible problems. The size of the package is approximately 5Mb. To clean all the files created durin lation and any files created in calchep 3.3.6/work/, the user can command gmake clean This command asks whether the user would like to delete the FlagsForSh file which contains user modifiable compiler names and compiler flags. The user may choose to keep this file if he/she wishes to use it in subsequent compilations. Compilation tuning. The CalcHEP compilation procedure consists of two steps. During the first step, CalcHEP looks for compilers and compiler flags. The results are written in the FlagsForSh file in the form of bash assignment instructions. For instance: CC=gcc CFLAGS="-g -signed_char -Wall" If the resulting parameters satisfy the CalcHEP requirements then the file FlagsForMake, which contains the same assignments, but written in make format is created. This file is included in all Makefile files used during CalcHEP compilations. In this way, the user can tune the file FlagsForSh to fit his/her computing environment and recompile CalcHEP. The FlagsForSh file contains comments which explain the available parameters. The option to save the FlagsForSh file during the gmake clean procedure is implemented to save the users modifications, if desired, for the recompilation. The command gmake flags 13 See Secinstalled g compiissue the


generates the FlagsForMake file and stops. Both C and Fortran compilers are defined in FlagsForSh. The Fortran compiler is not used for CalcHEP compilation, but it can sometimes be required for compilation of programs used by CalcHEP interaction models. For example, the CalcHEP implementation of the MSSM needs either SuSpect, Isa jet or SoftSUSY to calculate the particle spectrum. All of these programs require a Fortran compiler. So, although CalcHEP does not require a Fortran compiler, some problems are expected in some models in the absence of a Fortran compiler.

2.5

Compilation for High Precision calculations

By default CalcHEP uses the double numerical type to store the initial and intermediate parameter values and double precision functions to work with them. The user can, optionally, choose to compile CalcHEP for high precision calculations. The long double type is part of the C99 standard and realized on all modern C compilers, however, one has to note that, usually, the long double type is implemented with 80 bit precision. In this case, calculations will be as fast as with the standard double type, but the increase in precision is not significant. To enable the long double type, the compiler option -D LONG needs to be added to the FlagsForSh file and CalcHEP needs to be recompiled. If CalcHEP has already been compiled, gmake clean needs to be run first, but FlagsForSh should be kept. If CalcHEP has not been compiled yet, gmake flags should be run first, in order to create FlagsForSh. The Intel C compiler has a Quad type (quadruple precision) for 128 bit real numbers. To use this type in CalcHEP calculations, the compiler option -D QUAD has to be added to FlagsForSh. One should note that, currently, only the Intel compilers support Quad type and that the Intel compilers require further options. Here is an example of the CFLAGS line of FlagsForSh for the Intel compiler: CFLAGS="-D_QUAD_ -fPIC -fsigned-char -Qoption,cpp,--extended_float_type" To implement other numeric types, the user should edit the file include/nType.h.

14


2.6

User installation and start of the CalcHEP session

After compilation of the CalcHEP package, the user should install a work directory where they perform their calculations. This is created with the mkUsrDir script which takes as its (only) argument the directory name where the user would like to do his/her calculations. ./mkUsrDir The directory name can include path information as appropriate. Here is an example that creates a work directory named work in the user's home directory: ./mkUsrDir ~/work The user can create several work directories for different calculations if they like. The mkUsrDir script will create the directory and copy or link the following directories and files to it: · bin is a symbolic link to the $CALCHEP/bin directory and contains all the scripts and binaries required for calculations with CalcHEP. · models is where the particle interaction model files belong. It is initialized with the default models contained in $CALCHEP/models, but the user can add further models to this directory. · tmp is where CalcHEP stores temporary files during symbolic calculations. · results is where the output of the symbolic session is written. In particular, this is where the symbolic session creates the numerical code n calchep for the user to perform their numerical calculations. · calchep.ini is a text file which allows the user to specify his/her preferences for the graphical user interface. Among the options available in this file are the text font, whether to use color or black and white and whether to use a sound to signal certain events. · calchep is the shell script which is normally used to start the symbolic session. It is invoked as ./calchep. · calchep batch is the shell script which is normally used to start a batch session. It is invoked as ./calchep batch where 15


is the name of the file which contains the batch instructions. An example batch file is stored in $CALCHEP/utile/batch file. The user can copy it and modify as necessary for their calculation. When run, the batch program creates the following directories: ­ Processes is where the binaries for the individual processes are generated and stored and where the numerical calculations are performed. ­ Events is where the event files (in LHE format) and distributions are stored. ­ html is where a system of html files are stored that inform the user of the progress and results of the calculation. This directory also contains a rich set of help files which explain the details of how to use the batch system. These files can be opened in the users web browser. The file html/index.html contains links to all the other html files.

2.7

Potential problems in compilation

X11: The most frequent compilation problem is due to the absence of the X11 include files on the user's computer. Usually, these files are stored in the directory /usr/include/X11/ , but CalcHEP checks other locations as well. If the X11 header files are not found, CalcHEP still compiles, however, it only runs in non-interactive mode. If the user attempts to launch ./calchep in this case, it will immediately close and print the following error message to the shell E o P y r f r o ror: You have launched the interactive session for a version CalcHEP that has been compiled without the X11 library. esumably, the X11 development package is not installed on ur computer.

Nevertheless, all the non-interactive functionality, including the batch session, should still work. If the user would like to use CalcHEP in interactive mode, he/she should install the following additional package: libX11-devel libX11-dev xorg-x11-devel for for for Fedora/Scientific, Darwin(MAC) Ubuntu/Debian SUSE 16


After installing the X11 development libraries, the user should recompile CalcHEP by issuing the commands: gmake clean gmake When gmake clean asks whether to remove FlagsForSh, the user should answer yes, since CalcHEP needs to regenerate it with the X11 library information. Limits on size of texual strings. Some CalcHEP models need very long lines in the model files for their implementation. Typically, this happens when the model is generated automatically by LanHEP or FeynRules. Although some of the dependent parameter definitions could, in principle, be split over several lines, these packages write the entire expression to a single line. When the line is too long for the interactive session of CalcHEP, it will print the following error message to the shell: E L t w r e h h r n e i or in model gth of reco parameter ch is defin file ./models/****** rd exceeds the maximum defined by STRSIZ=4096 ed in c_sources/chep_crt/include/syst.h

The user can solve this problem by using the compiler option -DSTRSIZ= where is the line length required by the model. This option should be set in the FlagsForSh file and CalcHEP should be recompiled: gmake clean gmake However, this time, FlagsForSh should not be removed.

17


3

Elements of the user interface

In this section, we would like to discuss the general elements of the CalcHEP graphical user interface. Among these elements are the on-line help, the menu, messages, the string editor, the table editor, the diagram viewer and the plot viewer. The user can control them using the Arrow keys, the Enter key, the Esc key2 , the Backspace key, the PgUp/PgDn3 keys and mouse clicks 4 . Additionally, the user can control whether colors and sounds are used and can choose the font used in the graphical user interface. The user can set all of these preferences by editing the calchep.ini file located in his/her work directory. This file contains three lines, one for each of these settings. The color and sound are set by simply toggling between on and off. The font is set by specifying the full font string of the desired font. Other fonts available on the users system can be obtained by the command xlsfonts, however, only non-proportional fonts should be used for CalcHEP. We recommend fonts from the Courier family. The default value should give the user some guidance. 1. On-line Help. During interactive symbolic and numerical sessions, the user can press the F1 key to be shown context sensitive help. This help is in the form of a textual message explaining the currently available options to the user. If the text is longer than can be seen at one time in the graphical user interface, there will be a PgDn symbol in the bottom-right corner of the help screen. By pressing the PgDn key (or by clicking on the PgDn symbol), the user can advance the text to the next page. The user can close the help window by pressing the Esc key or by clicking the asterisk in the top-left corner of the help screen. 2. Menu. The details of a calculation in CalcHEP are controlled by a series of menus which allow the user to set the properties of the calculations. These menus appear on the right side of the graphical user interface as a vertical list of the available options (see Fig. 1.) The current menu item is
Use the 'Ctrl [' sequence if the Esc key is missing on your keyboard On some keyboards Prev and Next replace PgUp and PdDn. 4 CalcHEP is only sensitive to the release of the left mouse button. It is not sensitive to the press of the mouse button.
3 2

18


highlighted and the user can move between the items by pressing the Up and Down keys or by clicking on the desired menu item with his/her mouse. Once the desired menu item is highlighted, the user can activate it by pressing the Enter key or by clicking on it again with the mouse.

Figure 1: An example of the CalcHEP graphical user interface with a menu displayed. If the menu is too long to fit in the graphical user interface, PgUp and/or PgDn will appear at the respective top and/or bottom of the menu. The user can scroll to the other available menu items by pressing the PgUp/PgDn keys or by clicking on the PgUp/PgDn symbols on the menu. As the user's calculation progresses and he/she moves through the menus, he/she can always return to a previous menu by pressing the Esc key or by clicking on the < symbol at the top-left corner of the menu border. When a menu is present, CalcHEP is also sensitive to the Function keys F1, F2,..,F10 5 . A list of currently active Function keys is displayed at the bottom of the graphical user interface and depends on the currently active
On Macintosh operating systems these keys can be activated within CalcHEP by holding the Fn key down while pressing them.
5

19


menu. The typical Function keys that are available are: F F F F F F 123469Help Manual Models Diagram Results Ref : : : s: : : : : displays a help message about the highlighted menu item. displays information for using the graphical user interface. displays the current model of particle interactions. displays the Feynman diagrams for the current process. displays and allows the user to delete the output files. displays the CalcHEP website, the required citation for using the CalcHEP package, and other acknowledgements. quits the CalcHEP session.

F10- Quit

The function key functionality can also be activated by clicking the mouse on the function key name at the bottom of the graphical user interface. They can also be activated by pressing the numeric key corresponding to the Function key. For example, '3' will be interpreted as F3 and so on. The only caveat is that '0' initiates the F10 key. Another helpful feature of the menu is the menu search. Some menus can be quite long. For example, some model parameter lists are much longer than can be shown in one screen. In situations such as this, the user can ^ press the f, F or F key and a text box will open. The user can then type the desired menu item and press enter. The menu will immediately skip ahead to, and highlight, the menu item matching the users string. 3. Messages. At various times, CalcHEP displays a message on the screen. There are two kinds of messages. The first is informational and does not require a response from the user. The informational message ends with "Press and key". The user can continue his/her work by pressing any key or by clicking on any part of the graphical user interface with the mouse. The second kind of message is in the form of a dialog box. This message ends with (Y/N?) and the user is required to make a choice by pressing the Y or the N key. The user can also click on the Y or the N in the dialog with the mouse. 4. String Editor. At times (e.g. the input of a new process) the user is required to enter a textual string. At these moments, CalcHEP provides a 20


text box where the user can enter and modify his/her text. If text has already been entered in this text box in the past, CalcHEP will often remember this string and present it as the default value in the text box for convenience. If the user's first input is a letter, number or other textual symbol, the old string will be removed and a new string will be started. If, on the other hand, the first input is non-textual (such as a mouse click, a tab or an arrow key), the old string will be kept and the user will be able to modify it. To edit this text string, the user can use the left/right arrow keys or the mouse to move the cursor to the desired position. The Delete and Backspace keys both remove a character to the left and move the cursor back one position to the left. When the user is finished with his/her text string, he/she can press enter to accept it. If the user wishes to cancel, he/she can press the Esc key. 5. Table Editor. CalcHEP uses a table structure to store information about the model's parameters, particles, and vertices as well as for the cuts and distributions of a numerical calculation. For each of these cases, one row stores the information for one parameter, one particle, one vertex, one cut and one distribution respectively. CalcHEP has a table editor which allows the user to view and, at times, to modify the contents of these tables. An example of a table can be seen in Fig. 2. The top line of a table window displays the title of the table. Below this, the table is surrounded by a frame box. The columns of the table are separated by vertical lines. The first table row contains the column names and below this, the table data is displayed. One cell (the intersection of a row and a column) is highlighted at a time. This is the current cell and contains a cursor if the table is open for editing. The current line number is shown in the top-right corner of the window. To change the position of the highlighted cell and/or the cursor, the user can use the arrow keys, the Tab key, and the click of the mouse. Pressing any printing symbol will enter that symbol in the cuurent cell at the cursor position, if in edit mode. The PgUp and PgDn keys allow the user to scroll the table up and down. The F1 and F2 keys provide help information about the current table and the table editor respectively. Exiting the table is achieved by pressing the Esc key. There are some further auxiliary commands which can help the user when

21


Figure 2: An example of a CalcHEP table. working with tables. These commands are achieved by holding down the Control key (^) while pressing another key or by clicking on the command label displayed on the table border with the mouse. These commands are: · Xgoto (^X) allows the user to enter a position and then moves the cursor to that position in the current cell. · Ygoto (^Y) allows the user to enter a line number and then moves the cursor to that line. Entering $ causes CalcHEP to move to the end of the table. · Find (^F) allows the user to enter a string or comma separated list of strings to be searched for in the table. CalcHEP will search the table for the search string(s) and move the cursor to the position of the next occurance of the string(s), starting from the current position of the cursor. If the user enters a comma separated list of strings, CalcHEP will search for a row containing an instance of each of the strings, where the order of the strings is not important. Spaces are matched as well as printing characters. Pressing ^F again, after a search, will result in 22


the cursor moving, again, to the next occurance of the string. A new search string can be entered by changing the position of the cursor first and then pressing ^F. The original purpose of table searching was to facilitate finding particular vertices in the vertex table, however, it is available in all tables. · Write (^W) allows the user to enter a filename and then writes the contents of the current (highlighted) cell to that file. If the content of the cell is very long then new line symbols are inserted automatically. The above commands are available in both modes of the Table Editor and are displayed along the bottom border of the table. The following commands are available only if the table is open for editing and appear allong the top border of the table: · Clr (^C) clears the contents at the cursor position and to the right of the cursor position in the current cell. · Read (^R) allows the user to enter a filename and then reads the contents of that file and enters it into the current (highlighted) cell. Spaces and new-line symbols are ignored. The size of the cell is increased automatically to accomodate the new string. · Del (^D) removes the current row of the table and stores it in the buffer. Pressing the Enter key, creates a new row with buffer contents. · Size (^S) allows the user to change the width of the current column. Colunm sizes are, also, increased automatically if the user enters a string which is too wide for the current column. · ErrMess (^E) redisplays the most recent error message associated with editing a table. · One can use the Enter key to creates a new row. 6. Diagram Viewer. The Diagram Viewer is designed to display multiple Feynman diagrams at a time. The viewer splits the window into rectangular cells and puts one diagram in each cell. Each cell is enclosed by a frame while the current diagram is highlighted by having a thicker frame than the 23


Figure 3: An example of the CalcHEP Diagram Viewer. others. The index of the current diagram is displayed at the top-right of the window along with the total number of diagrams. An example can be seen in Fig.3. The number of diagrams which can be displayed simultaneously depends on the size of the window. The user can increase this number by increasing the size of the window using his/her window manager (typically by dragging an edge or corner of the window). The currently highlighted diagram can be changed by using the Arrow keys and/or the mouse. Furthermore, the diagrams can be scrolled up and down by pressing the PgUp and PgDn keys. The Home and End keys move to the beginning and end of the diagrams respectively. To move directly to the diagram with index n, the user may press the # key, type n and press enter. Exiting the Diagram Viewer can be done by pressing the Esc key. Alternatively, these commands can be accomplished by clicking on the command labels located at the bottom-left of the Diagram Viewer with the mouse. The Diagram Viewer may, also, have some optional functions which de-

24


pend on the context. These are: · Delete (D) which allows the user to turn off all the diagrams. · On/off (O) which allows the user to toggle the currently highlighted diagram between on and off. · Restore (R) which allows the user to turn on all the diagrams. · Latex (L) which allows the user to write all the diagrams (that are A not turned off ) to file in LTEX axodraw[44] syntax. · Ghosts (G) which displays the current diagram along with all other diagrams which are related to the current one by replacing gauge bosons with their associated ghosts and Goldstone bosons. This command is only available for squared diagrams. These commands can be invoked by pressing the key marked in parentheses or by clicking on the label along the top-left of the Diagram Viewer window. 7. Plot Viewer. The Plot Viewer is designed to display histograms (see Fig. 4) and continuous curves (see Fig. 5). After being launched, the Plot Viewer displays the plot and waits for a signal from the keyboard or the mouse. If the mouse is clicked inside the plot, the x-coordinate of the mouse is displayed at the bottom of the window. Additionally, the value of the function or histogram at that x-coordinate value is shown. In the case of a two-dimensional histogram density plot, both the x-coordinate and the y-coordinate along with the histogram height are shown. If a key is pressed, a menu appears (see Fig. 5) allowing the user to control some aspects of the plot as well as to export the plot data. The available options are: · Y-max which allows to set the maximum height of the plot. · Y-min which allows to set the minimum height of the plot. · Y-scale which allows whether the vertical axis should be linear or logarithmic. However, note that the logarithmic scale is only available if the lower limit is positive and the ratio of upper and lower limits is greater than ten. 25


Figure 4: An example of a histogram plot in CalcHEP.

Figure 5: An example of a continuous plot in CalcHEP for a 2 2 process. 26


· Save plot in file which allows to save the plot data to the file plot_#.txt where # is an integer. This file also includes example plot instructions for gnuplot and PAW. Additionally, the file plot_#.gnu is created which has gnuplot instructions and can be used by issuing the command gnuplot < plot_#.gnu. The file plot_#.kumac is also created and contains PAW instructions which can be used by issuing the command paw -b plot_#.kumac. Alternatively, the user can load the data, interactively, in either gnuplot or PAW. · Math file which allows to save the plot data to the file plot_#.math in Mathematica syntax. It can be read into a Mathematica session using Get[] where is replaced with the file name and path in parantheses. This file, also, includes example plotting commands which the user can copy and modify to suit his/her purpose.
A · LaTeX file which allows to save the plot in the form of a LTEX axodraw[44] file. The axodraw style file is required for compilation and can be found in the $CALCHEP/utile directory.

In the case of a two-dimensional histogram, the Plot Viewer represents the differential cross-section of each bin by a solid black rectangle where the height and width of the black rectangle is given by S = 0.9 (binS iz e) (F /F max)P
/2

(1)

where S is the height or width of the rectangle, (binS iz e) is the size of the vertical or horizontal bins, F is the differential cross-section for that bin, F max is the maximum differential cross-section in the histogram and P is a parameter chosen by the user to achieve the best resolution. It defaults to the value 1. If a two-dimensional histogram is being viewed, the first three menu options are replaced with: · S=F^P which allows to choose the scaling of the size of the rectangle relative to the differential cross-section as described above. Large values for P tend to increase the resolution for large histogram bins but reduce the resolution for small histogram bins. Small values for P do the opposite. When finished viewing the plot, the user can exit the Plot Viewer by pressing the Esc key. 27


In addition to using the Plot Viewer in the interactive numerical session, the user can also view plots that have been saved to file by using the executable plot_view located in the $CALCHEP/bin directory. This command takes one option which is the file where the plot data has been exported as in $CALCHEP/bin/plot_view plot_#.txt This is a stand-alone version of the Plot Viewer. 9. File Search Engine. When CalcHEP requests a file or directory from the user (such as when importing a new model), it opens a text box where the user can enter the filename. The user can enter the full file name, including the path, or he/she can enter part of the path and end his/her text with /*. When this is done, CalcHEP opens a menu where the contents of the directory are listed (see Fig. 6.) The user can use the menu functionality to choose the directory or file he/she wants, after which, the file or directory name in the text box will be updated accordingly. This can be continued until the desired file or directory is found. If the final target is a directory, the user must finally remove the * and press enter to choose the directory. The initial path can also be started with the environment variables $CALCHEP/, $WORK/, ~/ and ~/.

28


Figure 6: An example of the CalcHEP File Search Engine.

4

Menu system for symb olic calculation

The flow of menus in the symbolic calculation session is presented schematically in Fig. 7.

4.1

Mo del Choice and Manipulation

Menu 1. This menu presents a list of available models and allows the user to choose among them for his/her calculations. Addittionally, at the bottom of this list is the entry IMPORT MODEL which allows the user to import a new model of particle interactions into CalcHEP. When IMPORT MODEL is chosen, the File Search Engine will open allowing the user to specify the directory where the new model is stored. It will then allow the user to choose among the models in that directory and choose a new name for the model if desired, afterwhich the model will be imported and appear on the list of models in this menu.

29


Figure 7: Menu flow for the interactive symbolic session.

30


Menu 2. The first item on this menu allows the user to enter a physical process and will be explained further in Subsection 4.3. The second item on this menu is Force Unit. Gauge and allows the user to use Unitary gauge in his/her calculation, even if the model is implemented in t'Hooft-Feynman gauge. Generally, we recommend to use t'HooftFeynman guage, whenever possible, as the ultra-violet cancellations between diagrams are much better in this case. Further information can be found in Section C. The third item on this menu is Edit Model and allows the user to view and modify the current model and will be described further when we discuss Menu 3 below. We, also, note that after the user reaches Menu 5 (where a process is entered), he/she can still view the model by pressing the F3 key but cannot modify it. The fourth item on this menu is Numerical Evaluation and allows the user to view the value of the dependent variables as well as the masses, widths and branching ratios of the particles. Further details can be found in Subsection 4.2. The final menu item is Delete model which removes the current model and returns CalcHEP to Menu 1 where a new model can be chosen. Before removing the model, a warning dialog appears and allows the user to cancel the model deletion. Menu 3. The model details are stored in five text files located in the models subdirectory of the users work directory. These model files can be edited with any text editor. However, the user must not include any Tab symbols and must keep the column structure of the file unchanged. We recommend that the user take advantage of the built-in model editor which can detect mistakes in the user's input. This menu items appearing for this menu are: · Parameters : Edit the independent parameters of the model. · Constraints : Edit the dependent parameters of the model. · Particles : Edit the particle properties of the model. · Vertices : Edit the Feynman interaction vertices of the model. 31


· Libraries : Edit the prototypes for external functions and the external libraries which should be linked to the numerical code. · RENAME : Edit the name of the model. · CHECK MODEL : Checks whether the model passes a set of tests described below. The detailed format and requirement for these files is described in Section 8. An explanation of the Table Editor which is used to modify the model files can be found in Section 3. When the user is satisfied with his/her modifications, he/she can press the Esc key. When this occurs, CalcHEP first asks whether the user would like to save his/her modifications. If the user answers N, CalcHEP returns to Menu 2 and the modifications are lost. If, however, the user answers Y, CalcHEP first performs the following series of tests on the model (which can also be initiated by choosing the CHECK MODEL menu item): · Do all particle and parameter names satisfy the CalcHEP naming requirements. · Are all numbers entered correctly. · Have all parameters been declared before they are used in any expressions. · Are all particles used in a vertex defined. · Are the algebraic expressions correct. · Are all the Lorentz indices correctly contracted. · For any vertex, is its conjugate vertex included. If all these tests are passed after pressing the Esc key and choosing to save the model, the model is saved to disk and CalcHEP returns to Menu 2. If, on the other hand, any of the tests are failed, CalcHEP stops the tests after the first detected error and displays a message describing this error along with the table and position in that table where the error can be found. In this case, the user remains in Menu 3 and is allowed to fix the 32


mistake in his/her input. The error message can be viewed again by pressing ^E in any of the model tables. After the user fixes the mistake, he/she can press the Esc key and try to save the model again.

4.2

Numerical Evaluations

After choosing Numerical Evaluations on Menu 2, the user is taken to Menu 4 where numerical evaluations of the dependent parameters, masses and widths can be done. The default independent parameters are those defined in the model files. However, the user can change the values of the independent parameters which are used for these numerical evaluations by choosing Parameters on this menu. This will cause CalcHEP to display a menu which lists all the independent parameters and allow the user to change them one by one. Furthermore, CalcHEP displays READ FROM FILE at the top of this menu. If the user chooses this, CalcHEP opens the File Search Engine and allows the user to choose a file. Afterwards, it reads the file and updates all the independent parameters used for the numerical evaluations. This parameter file must be written in the form of two columns separated by whitespace. The first columns must contain the parameter name and the second column must contain the numerical value. Each parameter must be on a separate line. Here is an example for the SM: EE alfSMZ SW Ml Mtp MZ Mh 3.1223E-01 1.172E-01 4.81E-01 1.777 175 91.1884 120

These new independent parameter values are only used for the numerical evaluations done in this menu. The default values used for other numerical calculations (via Enter Process on Menu 2) are those defined in the model files. Once the user is satisfied with the values of the independent parameters, he/she can initiate the numerical evaluation of the dependent parameters by choosing All Constraints. By default, CalcHEP will only calculate the independent parameters up to and including any dependent masses. If the 33


user would like further independent parameters calculated, he/she can add the keyword %Local! to the dependent parameter definitions. CalcHEP will then calculate all independent parameters up to %Local!. An example of how to include the %Local! keyword is: C N . % o a . L n m . o straints e | Expression | .......................... cal! | |

where the line with the ... represents a list of dependent parameter definitions. The calculated dependent parameters will appear in a menu which the user can scroll through. The user can also choose one of the dependent parameters in this menu in order to view its dependence on the independent parameters. This is accomplished by displaying another menu that allows the user to choose the independent parameter and then choose the beginning value, the ending value and the number of points to evaluate. The results will be plotted on screen in the Plot Viewer. The final menu item of Menu 4 is Masses, Widths, Branch.. This item will bring up a new menu which lists all the particles in the model. Choosing any particle in this menu will cause CalcHEP to calculate its mass (if dependent) as well as its width and branching ratios (if any) and display them onscreen along with other particle information. Additionally, the user may choose ALL PARTICLES at the top of this menu which will cause CalcHEP to calculate all the dependent masses, widths and branching ratios and write them in a file in the results subdirectory of the work directory with the filename decaySLHAN.txt where N is an integer. The format of this file follows the SLHA[37] convention and should be suitable for other programs that follow this convention. When calculating the decay widths and branching ratios, CalcHEP first calculates the contribution from 1 2 decays. If the resulting width is zero, it then calculates the contribution from 1 3 decays. If still zero, it calculates the contribution from 1 4 decays. However, if the model is defined in terms of an SLHA file and that file contains the widths and branching ratios, CalcHEP does not calculate them, but uses the values specified in the SLHA file. 34


Figure 8: Example of the input of a process in the interactive symbolic session.

4.3

Pro cess Input

After choosing Enter process on Menu 3 the user is presented with the Process Input screen (see Fig. 8) where he/she can enter the physical process he/she would like to calculate. At the top of this screen, CalcHEP displays a list of the model particles. Each entry contains the particle name followed by the antiparticle name in parentheses and ends with the full descriptive name for the particle. If the list of particle is too long to fit on the screen, the user may press the PgUp and PgDn buttons to view the other particles. Below the particle list, CalcHEP displays the prompt Enter process: and presents the user with a text entry box where he/she can enter his/her desired process. The syntax for this entry is: P1 [,P2] -> P3, P4 [,P5...] where the incoming particles and outgoing particles are separated by -> and P1...P5 are (anti)particle names. The total number of (anti)particles should not exceed 6. For example, the input u, U -> G, G specifies the annihilation 35


of a u-quark and an anti-u-quark into two gluons. In place of (anti)particle names, the user can enter N*x after the ->, where N is an integer. CalcHEP replaces this with all possible combinations of N particles and antiparticles from the X-particles list. The default is for this list to contain all the particles and antiparticles from the model. For example, the input u, U -> G, G, 2*x specifies the annihilation into two gluons plus any other two particles from the model. The user can, however, limit which particles are included in the X-particles list. If N*x is used, CalcHEP presents the user with the text Exclude X-particles: followed by a text entry box where the user can list any desired particle and antiparticle limitations. The syntax for this entry is: Exclude X-particles : P1>n1 [,P2>n2, ...] where P1,P2,... are particle names and n1,n2,.. are quantity limits. This instructs CalcHEP to remove diagrams with more than n1 particles of type P1, n2 particles of type P2, and so on, in the part of the final state specified by N*x. The specification P>0 can be shortened to P and forbids the appearance of the particle P among the X-particles. The user may also enter an alias for multiple particles, such as a p for the partons in a proton, j for the particles that produce jets, or ll for leptons. The user can use any short name he/she likes as long as it is different than the names of the (anti)particles defined in the model. When an alias is used in the process, CalcHEP requests its definition. For example, if the user enters the process p,ap -> W+,b,B, and there is no p or ap defined in the model, CalcHEP will display the prompt composit `p` consists of: followed by a text entry where the user can specify which particles and/or antiparticles he/she would like included in the alias definition of p. In this example, the same is done for the ap entry. This specifies the collision of any particles in the definition of p against any particles in the definition of ap and producing the particles W+,b,B. Aliases can be used both for the incoming and the outgoing particles. When the initial state particles are massless, the user may request polarized beams. The way this is accomplished is by adding the % symbol to the end of a massless particle name. For example, entering the process e%,E%->A,A will cause CalcHEP to generate the code for the annihilation of polarized e+ and e- beams to produce two photons. In the current version, we only 36


consider initial states which consist of mixture of left and right polarizations. We do not, currently, support linear polarizations. After the process has been entered, CalcHEP allows the user to enter any particles he/she would like excluded from the internal lines of the diagrams. It does this by displaying the text Exclude diagrams with: followed by a text input box. The syntax for this entry is as follows Exclude diagrams with : P1>n1 [,P2>n2,...] where P1,P2,... are particle names and n1,n2,.. specify the maximum number of internal lines that can contain these particles. In other words, diagrams where the number of internal lines containing P1 is greater than n1 or where the number of internal lines containing P2 is greater than n2 (and so on) will not be constructed. For example, Exclude diagrams with : W+>1 will cause CalcHEP to only construct diagrams with zero or one W+ internal line. The input P>0 can be shortened to P and is understood by CalcHEP to mean that P can not appear in any internal lines. If the user leaves this text entry blank, the full set of diagrams will be constructed. At any time during the process entry, the user may press the Esc key to return to the previous input and the F1 key to get process input help. After the process entry is complete, CalcHEP generates all the Feynman diagrams satisfying the user's constraints. If no diagrams are allowed, CalcHEP displays a warning message and returns the user to the beginning of the process entry to try again. If one or more diagrams are constructed, CalcHEP advances to Menu 5, which we describe next.

4.4

Squared Diagrams and Symb olic Calculation

Menu 5. This menu appears on the screen after the construction of the Feynman diagrams along with information about the number of diagrams and subprocesses generated. The first menu item is View diagrams and allows the user to view a graphical representation of the generated Feynman diagrams via the Diagram Viewer. In addition to viewing the diagrams, as described in Section 3, the user can remove some of the diagrams before they are squared and can A generate L TEX output for the diagrams which are not removed. If more than one subprocess is generated, CalcHEP will first present the user with a list of the subprocesses when he/she chooses View diagrams. 37


Each subprocess will be listed along with the number of diagrams for that subprocess. The user can move among the subprocesses by using the PgUp and PgDn keys or by using the mouse. If the F7 key is pressed while on this menu, all the diagrams for the highlighted subprocess are removed. On the other hand, if the F8 key is pressed, all the diagrams are restored for the highlighted subprocess. If the Enter key is pressed while on this menu (or the mouse clicks on the highlighted process), the Diagram Viewer will open with the diagrams for the highlighted process. We will now list some details of the visual representation of Feynman diagrams used in CalcHEP. · Incoming particles are drawn on the left side of the diagrams, while the outgoing particles are shown on the right. · CalcHEP uses dotted lines for scalar particles (spin 0), dashed lines for other bosonic particles (spins 1 and 2) and solid lines for fermionic particles (spins 1/2 and 3/2). · Charged particles are represented by lines with arrows. The arrow indicates the direction of the particle (not the anti-particle) propagation. · Incoming and outgoing particles are labeled by their names at the end of their lines. Virtual particles are labeled by their names at the middle of their lines. If a particle is not self-conjugate, the particle's name is used for the labeling (not the anti-particle's name). · In the case of scattering processes, the first scattering particle enters at the top of the diagram while the second scattering particle enters at the bottom. · CalcHEP produces only one representative diagram for a set of diagrams which can be transformed into one another by replacing identical outgoing particles. For example, CalcHEP creates only one diagram for the SM e+ , e- , process, whereas a textbook would present two diagrams. The reason for this is that CalcHEP has not yet assigned the momenta in the diagrams, so the representative diagram is sufficient.

38


· At this stage, CalcHEP does not generate diagrams with the FadeevPopov ghosts or the Goldstone bosons associated with gauge symmetry breaking. These fields are restored when the diagrams are squared. This can be done because the vertices with the Fadeev-Popov ghosts and Goldstone bosons are related to the vertices with the gauge bosons. After squaring, each squared diagram with a gauge boson in it gives rise to a set of squared diagrams with the gauge bosons replaced with the Fadeev-Popov ghosts and Goldstone bosons as determined by the Feynman rules. In some cases, there is no gauge boson vertex corresponding to a vertex with Fadeev-Popov ghosts or Goldstone bosons (such as the G4 vertex where G0 is the Goldstone boson eaten by the Z boson). In 0 these cases, CalcHEP produces a diagram as if the corresponding gauge boson vertex existed (such as a Z 4 vertex). After squaring, this squared diagram simply represents the ones with the Fadeev-Popov ghosts and Goldstone bosons as determined by the Feynman rules. (The actual Z 4 diagram is dropped while the ones with the Fadeev-Popov ghosts and/or Goldstone bosons are kept. Further details can be found in Sections 8.7, 8.4, and E. · Vertices with a non-trivial color structure (for example, the four-gluon vertex of the SM) are implemented by means of an unphysical tensor auxiliary field. The vertices involving this auxiliary field are treated in the same way as the Fadeev-Popov ghosts and Goldstone bosons. The Feynman diagrams involving these auxiliary fields are not constructed at this point. They are restored after the diagrams are squared. See Sections 8.7, 8.4, E for further explanation. The second menu item is Squaring and causes CalcHEP to create squared diagrams. CalcHEP uses these squared diagrams for subsequent calculations of squared matrix elements. See Section C for the details. The Write down processes menu item creates the file list prc.txt in the results subdirectory. This file contains a list of the constructed subprocesses. Menu 6. The View squared diagrams menu item is similar to the View diagrams of the previous menu, however, it displays the squared diagrams. Each squared diagram is a graphical representation of AB , where A and B are Feynman diagrams constructed in the previous step. 39


We summarize some features of the squared diagrams in CalcHEP : · CalcHEP does not construct both AB and B A . Instead, it only generates AB and calculates its contribution to the squared matrix element as 2Re(AB ). This results in smaller, more efficient code. · CalcHEP constructs only one representative of a set of squared diagrams which can be transformed into one another by permutations of identical outgoing particles. The needed symmetrization for these particles is performed during the symbolic or numerical calculations of the squared matrix element. Again, this results in smaller, more efficient code. · Each squared diagram represents a set of squared diagrams where some physical particles are replaced by their associated ghosts, Goldstone bosons and/or auxiliary fields in all possible ways according to the Feynman rules defined for the model. This set of squared diagrams can be viewed at this stage by pressing the G key while the desired squared diagram is highlighted. Just as for the diagrams of the previous menu, the squared diagrams can be deleted by the user while in the Diagram Viewer. Furthermore, if the squared diagrams have already been calculated, each diagram will contain one of CALC, ZERO, Out of memory or Del. They mean, respectively, that the squared diagram is calculated, is identically zero, the calculation ran out of memory, or the squared diagram was deleted by the user. The second menu item is Symbolic calculation and instructs CalcHEP to begin the symbolic calculation of the squared matrix element using the generated squared diagrams. This is done by the built-in symbolic calculator. During this calculation, CalcHEP displays the current status of the calculation, which includes which diagram is currently being worked on and how many are left. The main goal of the CalcHEP package is to generate C code that numerically calculates the squared matrix element. The next menu item Make&Launch n calchep, performs the symbolic calculation as described in the previous paragraph. It then writes the C code for those squared diagrams, compiles it and executes the resulting interactive numerical code for the generated squared diagrams. It also advances to the next menu. 40


The next menu item is Make n calchep which causes CalcHEP to perform the symbolic calculation of the squared matrix elements, write the C code and compile it. However, in distinction to Make&Launch n calchep, it does not execute the resulting code. Also, in distinction, it closes the graphical user interface and performs these steps in the background. When it is finished, it prints the message n calchep is created to stdout and quits. The executable can be found in the results subdirectory of the user's work directory. A lock file is stored in the user's work directory to prevent CalcHEP from having multiple instances running at the same time and interfering with each other. The Reduce program menu item creates a version of the squared diagrams that is formatted for the Reduce program [45]. Each squared diagram is put in a separate file pm n.red where m is the subprocess number and n is the squared diagram number. These files are not used further by CalcHEP , but can be useful when the user would like a symbolic expression for the squared matrix element. Moreover, they can be used to check the results of the CalcHEP symbolic calculator. CalcHEP includes some tools for checking the symbolic calculator using Reduce . More details can be found in Appendix B.

4.5

Output of results and launching of the numerical calculation

Menu 7. This menu occurs after the symbolic calculations have been performed. The first menu item is C-code which causes CalcHEP to write C code for the squared diagrams to the results subdirectory of the work directory. After the C code has been written, the user can execute the second menu item C-compiler which cause CalcHEP to compile the C code and create the executable n calchep. If the compilation is successful, it will launch the resulting interactive numerical session which should appear on the user's screen. If there are problems with the linking, the user can modify the libraries linked by using the Edit Linker menu item. Any changes made using Edit Linker will be added to the model definition for later use. Details of the numerical interactive session are covered in Section 5. This menu has three more items allowing the user to export the squared matrix element expressions to formats appropriate for other programs. Each 41


writes the expressions to files in the results subdirectory of the work directory. The REDUCE code, MATHEMATICA code and FORM code menu items write the symbolic expressions to Reduce , Mathematica and Form formats respectively. Further manipulations of the symbolic expressions can be performed in those programs as desired by the user. The user could, for example, sum over the squared diagrams, perform substitutions, evaluate the expression numerically or calculate the total cross section. Using these expressions in these external programs is reasonable when the number and size of the diagrams are small. Further details about this output can be found in Section 11.

4.6

Switches

There are some switches which influence the results of the symbolic calculator and C output. They are controled by a menu which can be obtained by pressing the F5 key. The items on this menu are: · Number of QCD colors = 3/inf : This switch has two possible values: 3 or inf. If this switch is set to 3, CalcHEP performs the usual S U (3) quantum chromodynamic calculations including all the terms. If this switch is set to inf, on the other hand, CalcHEP only calculates the leading term in the large Nc expansion. This removes many interference diagrams which only contribute at higher order and reduces the size of the code. (Of course, the numerical value of Nc is still taken as 3 in the final results.) The default is 3. · Diagrams in C-output ON/OFF : This switch determines whether CalcHEP writes an ascii image of the diagram in the C code of the squared diagrams. This can be useful when analyzing the C code. The size of the code can be reduced by turning this off. (However, the size of the ascii image is usually small compared to the rest of the code.) The default is ON. · Widths in t-channels OFF/ON: This switch determines whether CalcHEP includes the particle width in the propagator on t-channel lines (where there is no chance that the particle will go on shell.) The default is OFF which means that these t-channel widths are not included. The user may change this to ON in which case the user must also turn this feature 42


on in the Breit-Wigner menu of the numerical session described in the next section.

43


5
5.1

Numerical session
Sketch of the menu system.

In Section 4, we described the process of generating and compiling C code for a collision or decay process for any particle physics interaction model. In this section, we describe how to use the resulting executable to calculate the collision cross section or the decay width in interactive mode. In Fig. 9, we present a schematic view of the menu system of the interactive numerical session. An example of the first menu (Menu 1) is shown in Fig. 1. We will now describe each of these menu items. The first menu item is Subprocess which allows the user to choose which subprocess to work on if more than one was generated during the symbolic session. The current subprocess is displayed at the top of the numerical session screen (see Fig. 1.) If a combination of the subprocesses is desired, we direct the user to the tools described in Sections 6 and 7. The next menu item is In state which allows to enter the momenta of the incoming particles, their polarizations and their parton distribution functions. We note that, in order to set the polarizations, the incoming particles must be massless and the % symbol had to be used in the symbolic session (see Section 4.3.) If this was done, the polarization can be set anywhere between the maximum and minimum helicity value for the particle. (For example, for a fermion, the helicity must be set between -1/2 and 1/2. For a vector boson, the helicity must be set between -1 and 1, and so on.) The parton distribution functions will be described further in Subsection 5.3. The next menu item is Model parameters which allows to modify the numerical value of the independent parameters which are used in the numerical calculations. The following menu item Constraints is the same as in the symbolic session and has been described in Subsection 4.2. However, the QCD strong coupling GG is not included under either of these menus since it depends on the scale of the interactions. Its value is controlled by the next menu item QCD coupling which is described in Subsection 5.4. The Aliases menu function is intended for declaration of alias names joe particle sets. For example, one can define alias Jet for quarks and gluon: Jet d,D,u,U,s,S,c,C,b,B,G Aliases can be used for definition of phase space cuts and histograms. The cut which contains an alias name will be checked for each particle of the set. 44


Figure 9: Schematic diagram of the menu system for the numerical session.

45


As well as a new point will be added to histogram for each particle of the set. The Cuts menu item allows to set cuts on the Monte Carlo phase space integration and event generation. Details of the cuts specification can be found in Subsection 5.8. The Breit-Wigner menu item allows to modify the behavior of the propagators for the unstable particles. Further details can be found in Subsection 5.5. The Phase space mapping menu item opens up into a menu with two items. They are Kinematics and Regularization and are described in Subsections 5.9 and 5.10, respectively. They allow to modify the mapping of phase space to improve Monte Carlo integration. The menu item Monte-Carlo simulation allows to run the Vegas [46, 47] Monte Carlo integration of the multiparticle phase space to determine the collision cross section or the decay width. The Monte-Carlo simulation menu also allows to generate kinematic distributions and generate events. It is described in further detail in Subsection 5.11. For 2->2 processes with fixed energies of incoming particles the phase space integral is one-dimensional and can be integrated using traditional Riemann approach. In this case, one can chose the 1D integration which is the last item in the menu. This option is described in Subsection 5.13. For the 1->2 case we have zero dimension phase space and this option allows a fast summation over channels and calculation of branchings.

5.2

Bo okkeeping

Each time any parameters are changed which affect the numerical calculation, CalcHEP increases the session number by one and clears the statistics. The current session number is displayed at the top of the interactive session screen. These parameters not only include the dependent model parameters but also include the choice of subprocess, incoming momenta, parton distribution functions, QCD coupling and cuts. During a Vegas session, the full set of parameters for the current session is stored in the file session.dat located in the results subdirectory. This file changes to match the current session. If the user quits the interactive session and restarts it later, CalcHEP will read the parameters from the session.dat file. The user can then continue from where he/she left off. The full set of parameters for each session is also stored in the file prt N where N is the session number. This file, also, contains the results of the Monte Carlo integration. It is useful if the user would like to determine what 46


parametershe/she used in an earlier calculation and what the results were. When CalcHEP generates events, they are stored in the file events N where N is the session number. Moreover, distributions are stored in distr N where N is the session number. Other results are written by CalcHEP to files with the session number N as part of the file name and will be described in later sections.

5.3

Parton Distribution Functions

The first items in the In state menu are S.F.1 and S.F.2 which control the structure functions of the first and second incoming particles respectively. Each of these menu items opens a new menu which allows to choose whether the user wants the structure functions OFF or whether he/she wants the PDT structure functions or the LHAPDF structure functions. The LHAPDF [40] sets require separate installation described below. After making this choice, CalcHEP presents the user with a list of the available structure functions and then finally allows to choose any free parameters of the structure functions. Only structure functions allowed for the incoming particles are listed. Examples of the list of parton distribution functions and of setting the properties of a LHAPDF structure function are presented in Fig. 5.3. The PDT structure functions are stored in the directory $CALCHEP/pdTables. CalcHEP comes with a set of PDT tables. These include structure functions for initial state radiation (ISR) for incoming electrons, Weizsaecher-Williams structure functions for photons and structure functions for backscattering laser photons which are described further in Section G. Additionally, a set of parton distribution functions for the proton and anti-proton are included as shown on the left of Fig. 5.3. New PDT tables can be added as described in Appendix H. To use the LHAPDF structure functions, the LHAPDF library must be installed and linked to the model. The way this is handled in CalcHEP is that it comes preinstalled with a dummy version of the LHAPDF routines which inform it that the LHAPDF structure functions are not used. When the user installs and links the true LHAPDF structure functions, they are used in place of the dummy version that comes with CalcHEP. The desired structure functions along with the LHAPDF libraries according to the LHAPDF instructions (see [40]). To use the LHAPDF structure function in the CalcHEP, first of all, one 47


Figure 10: PDT structure functions(left) and LHA settings(right) has to add -L -lLHAPDF line to Libraries model item. It is enough to compile executable results/n_calchep, but may be not enough to launch it. If your is disposed in system area, then problems are not expected. An executable has to know a location of shared libraries used at time of launching of CalcHEP. Standard paths like /usr/lib or /usr/local/lib are checked by default. An arbitrary library location can be passed to executable via environment export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:. You can define this enviroment before you start to work with CalcHEP, include it to you startup file (.batchrc) or add it to ./calchep and ./calchep_batch scripts. In case of of adding it to ./calchep it is better to use the other variable -- LD_RUN_PATH which provides the generated n_calchep with the property to be launched independently without setting environment variables. For ./calchep_batch run we recommend to define LD_LIBRARY_PATH variable.

5.4

QCD coupling

The value of the strong coupling constant depends on the scale of the calculation. CalcHEP runs the strong coupling constant. The parameters of this running can be set in the QCD coupling menu and include: · alpha(MZ) : the strong coupling value at MZ . · nf : the maximum number of quark flavors in the running. At small energies CalcHEP takes into account threshold effects caused by charm 48


and bottom quarks and changes nf. If nf=6 then the top quark mass threshold is also taken into account. This is the reason mb(mb) and Mtop(pole) are included in this menu. · order : the loop order of the running. Choices are LO, NLO, and NNLO. · mb(mb) : the pole mass of the bottom quark. · Mtop(pole) : the pole mass of the top quark. · Q[GeV] : the scale of the calculation. More details can be found below. The QCD scale typically depends on the momenta of the particles. In CalcHEP , it can be defined as an algebraic expression which includes floating point numbers, model parameters and the following primitive phase space functions: · Sij : gives (pi + pj )2 , the invariant mass squared of particles i and j which must satisfy i, j nin + nout . · Mij : gives (pi + pj )2 , the invariant mass of particles i and j which must satisfy either nin < i, j nin + nout or i, j nin . · Ti : gives (px )2 + (py )2 , the transverse momentum of particle i. i i

· Mi : gives Mi the mass of particle i. · Wij : gives the transverse mass of particles i and j which must satisfy i, j > nin . The definition of the transverse mass can be found in Section 5.6. For example, a popular choice of scale based on the Mandelstam variables is 2stu/(s2 + t2 + u2 ) and can be realized by the following function in CalcHEP : Q[GeV] = sqrt(2*S12*S13*S14/(S12^2+S13^2+S14^2)) The min and max functions can also be used with an arbitrary number of arguments as can standard mathematical functions. Whatever function is defined for the scale of the calculation, CalcHEP sets the minimum value as 1 GeV. 49


The last menu item in the QCD coupling menu is Alpha(Q) plot which allows to see a plot of the strong coupling over a range of QCD scales. When parton distribution functions are used for the initial state particles, it is preferable to use the strong coupling constant defined in the parton distribution function instead of the internal CalcHEP value. This can be controlled by using the parton dist. alpha item of the QCD coupling menu. It can take the value ON or OFF. The default is ON (the strong coupling constant defined in the parton distribution function is used.) However, if the parton distribution functions are not being used or if they do not define the strong coupling constant, CalcHEP displays !ON in place of ON and uses its own internal value of the strong coupling constant.

5.5

Breit-Wigner propagator
1 , p - m2
2

The propagator denominator of a particle at tree level is given by

where m is the particle mass and has a pole at p2 = m2 . If this pole is inside the phase space volume being integrated over, it causes the integral to diverge. At higher order, the propagator denominator is modified to become [48]: 1 . 2 - m2 - i(p2 )m p where (m2 ) is the width of the particle (the inverse of the particle's mean lifetime). This removes the pole and renders the integral convergent. Since the (p2 ) terms only dominates this propagator denominator near the pole (and is a small correction far from the pole), this propagator is well approximated by replacing (p2 ) with = (m2 ) which gives the Breit-Wigner propagator denominator 1 . 2 - m2 - im p

This is the propagator denominator used in CalcHEP. However, because we are using a width, which comes from higher order corrections, in a tree-level calculation, it has the potential to violate gauge invariance in the calculation and ruin the large cancellations that sometimes occur between diagrams. 50


There are three different regimes to consider. In the first regime, the particle is exactly on shell. In this regime the calculation is exactly gauge invariant and there is no problem. In the second regime, the particle is off shell, but not very far from on shell. In this regime, the process is still dominated by the resonant diagrams and the effect of gauge invariance breaking is still small. In the third regime, the width is not needed to regularize the integral. So, gauge invariance can be satisfied by not including the width. The Breit-Wigner menu allows to adjust the properties of the propagator denominators used in the phase space integrals. The first menu item is BreitWigner range which allows to set the regions where the width is used, by adjusting the value of R. CalcHEP then uses the width in the propaga tors for |p2 - m2 | < Rm. No width is used for |p2 - m2 | > R2 + 1m. And, in the intermediate region, the propagator is replaced with a constant that interpolates between the two regions. We find that the default value of R = 2.7 leads to a difference of 0.2% in the integral of the squared propagator between the modified propagator described in this paragraph and the propagator with a constant width for the entire momentum range. The second menu item is T-channel widths and allows to turn the width on in the t-channel propagators. The default is to not include these since they are not required to regularize the integration and these propagators never go on shell. Note that, by default, the symbolic session does not include the widths in the t-channel propagators. In order to turn this on, the user must also turn it on during the symbolic session (see Section 4.6.) The last two menu items (GI in t-channel and GI in s-channel) control whether CalcHEP applies another method of restoring gauge invariance described in [49, 50]. The diagrams which do not contain the resonant propagator are multiplied by the factors (p2 - m2 )2 (p2 - m2 )2 + (m)
2

(2)

And in diagrams which contain only the single power of propagator, this propagator is replaced by (p2 - m2 ) (p2 - m2 )2 + (m) expression. 51
2

(3)


This modification corresponds to the symbolic summation of all diagram contributions at a common denominator expression with 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 should be mentioned that the factor (2) kills contributions of non-pole diagrams in the p2 = m2 point [51].

5.6

Kinematical Functions

CalcHEP allows a very large class of kinematic functions that can be used for cuts and distributions. Firstly, it defines many popular kinematical functions which we describe in this section. Secondly, it allows the user to code any kinematical function in a C code file (see Section 5.7.) In this way, any cut and/or distribution can be achieved. The built-in kinematical functions are called with the syntax Name[^,_](P1[,P2,P3...]), where Name is one capital letter, the ^ and _ are optional (and will be described below) and P1, P2, etc. are (anti)particles. The available functions are: A A(P1[,P2,...]) : gives the angle between P1 and the combined momentum pP 2 + pP 3 + · · ·. If only one particle is specified, as in A(P1), the angle between P1 and the first incoming particle is returned. The angle is given in degrees. C C(P1[,P2,...]) : gives the cosine of the angle defined above for A(P1[,P2,...]). J J(P1,P2) : gives the jet cone angle between P1 and P2. The jet cone angle is defined as y 2 + 2 , where y is the difference in pseudorapidity and is the difference in azimuth angle between P1 and P2. E E(P1[,P2,...]) p P 2 + · · ·. : gives the energy of the combined momentum pP 1 +

M M(P1[,P2,...]) : gives the invariant mass of the combined momentum pP 1 + pP 2 + · · ·. 52


P P(P1,P2[,P3,...]) : first boosts into the cms frame of P1,P2[,P3,...] and then takes the cosine of the angle between P1 (in the cms frame) and the boost direction. T T(P1[,P2,...]) : gives the transverse momentum of the combined momentum pP 1 + pP 2 + · · ·. Y Y(P1[,P2,...]) p P 1 + p P 2 + · · ·. : gives the rapidity of the combined momentum

N N(P1[,P2,...]) : gives the pseudo-rapidity of the combined momentum pP 1 + pP 2 + · · ·. W W(P1[,P2,...]) : gives the transverse mass of the particle set S = {P1,P2,...} given by
2

m + (p
iS

2 i

T2 i)

-

iS

-T pi

2

where mi and pT are the mass and transverse momentum respectively i of the ith particle. For example, M(e,E) returns the invariant mass of an electron and a positron in the final state. The keyword Jet can be used instead of a (anti)particle name and is an alias for a gluon or any of the first 5 quarks. If the kinematical lists the same particle more than once, such as in the case of J(Jet,Jet) or M(e,e), CalcHEPconstructs the kinematical variable for distinct final state particles. So, J(Jet,Jet) means the jet cone angle of two distinct Jet particles with different momenta and M(e,e) means the invariant mass of two electrons with different momenta. For some processes and kinematical variables, there are multiple ways the final state particles can be assigned. For example, consider the process p, p A, A, A and the kinematical variable E(A) which could be applied to any of the photons. Sections 5.8 and 5.11 describe how this is handled for cuts and distributions. Here we describe the use of the ^ and _. For any kinematic function, ^ causes the highest value to be returned while _ causes the lowest value to be returned. For our three photon example, E^(A) returns 53


the highest of the three energies and E_(A) returns the lowest of the three energies. There are two additional types of kinematical variables that do not follow the patterns described so far. The first is M12 which returns the invariant mass of the two initial state particles (p1 + p2 )2 . The second is user defined kinematical variables. User defined functions always begin with U. The rest of the name can be anything the user likes. For example, the user could define the function xyz in which case the kinematical variable would be written as Uxyz. Further details can be found in Section 5.7.

5.7

User Defined Functions

There are two C code functions that the user can write to modify the results of the numerical session. The first prototype is
double usrFF(int nIn,int nOut,double*pvect,char**pName,int*pCode)

which multiplies the squared matrix This could, for example, be used to im the effect of loops. If the user does not a dummy version of this function which The second function prototype is

element for each phase space point. plement a K factor to approximate define this function, CalcHEP uses always returns 1.

double usrfun(char*name,int nIn,int nOut,double*pvect,char**pName,int*pCode)

which allows the user to write his/her own kinematical functions to be used in the cuts and distributions. When the user enters U for a cut or a histogram, CalcHEP calls usrfun(,...). For example, if the user enters Ua1b2 in a cut table, CalcHEP calls usrfun("a1b2",...). It is then the responsibility of the user to write the code that calculates the kinematical variable and returns the value. In the absence of user code, CalcHEP contains a dummy version of this function which prints an error message to stderr and terminates the numerical session. After the user writes these functions, the user must add the full path to his/her code in the Libraries table of the model. (Details can be found in Section 4.1.) If applicable, the environment variables $CALCHEP and $WORK can be used as part of the path which are defined by CalcHEP. (Other environment variables can also be used.)

54


We will now describe the other parameters of these functions. nIn and nOut are the number of incoming and outgoing particles, respectively. pvect is a one-dimensional array that contains the momenta of the external particles. The jth component of the ith particle's momentum is given by pj =pvect[4*i+j]. i The energy is the 0th component Ei =pvect[4*i] and the momentum along the axis of collision is given by pzi =pvect[4*i+3]. pName[i] and pCode[i] give the name and PDG code of the ith particle, respectively. Two more functions which the user may find helpful in writing his/her code are int findval(char*name, double *value); int qnumbers(char*pname,int*spin2,int*charge3,int*cdim); The first gives the value of the model parameter specified by its name. Both independent and dependent parameter values can be obtained in this way. If the parameter given by name is found in the model, then findval returns 0 and fills value with the numerical value of the parameter. The qnumbers function gives the particle's quantum numbers. The particle is specified by name and the pointers spin2, charge3 and cdim are filled with twice the particle's spin, three times the particle's charge and dimension of the particle's color representation. This function returns the particle's PDG code. If the parameter name cannot be found, it returns 0. The $CalcHEP/utile directory contains examples of the usrFF() and usrfun() functions which can be modified to suit the needs of the user.

5.8

Cuts

Cuts can be entered by choosing the Cuts menu item. This opens a table where the cuts can be defined. There are four columns in this table. The first column can contain a %, a ! or can be empty. A % means that the cut should be ignored. A !means the inverse cut (for each particle combination). The second column accepts a kinematical function (see Section 5.6.) The third and fourth columns take the minimum and maximum values, respectively, for the kinematical variable. If the third or fourth columns are empty then the minimum or maximum limits, respectively, are not applied. These limits may contain numerical values, model parameters, standard algebraic expressions (including +, -, *, / and ^) and functions defined in the C math library (such as sqrt(), sin() and cos().) 55


If the process contains identical outgoing particles, the cut is applied to each particle combination. For example, for the process pp AA, the cut |!| Parameter | | E(A) is equivalent to |!|Parameter | |E^(A) | |E_(A) |> Min bound <|> Max bound <| | | 100 | | 20 | | |> Min bound <|> Max bound <| | 20 | 100 |

On the other hand, the same cut, but with an exclamation mark in the first column |!| Parameter |!| E(A) |> Min bound <|> Max bound <| | 20 | 100 |

demands the absence of photons with energy in the 20 - 100 GeV interval. For processes with several identical particles, a cut marked by ! does not mean the mathematical negation of the condition without the exclamation mark. It means the negation of each individual cut for each particle combination. If a cut contains particles which are not included in the current subprocess, they are ignored until the user starts to work with a subprocess which does include them.

5.9

Kinematics

The Kinematics menu subitem of the Phase space mapping menu item allows to display and change the phase space parameterization used in the Monte Carlo integration. The way this is done in CalcHEP is that it continually splits the remaining particles into two sets until each particle set contains one particle. In this framework, the multi-particle phase space is parameterized by the invariant masses of each particle set and by the twodimensional spherical angles of the 1 2 splitting [52, 53]. Since the choice of the kinematics influences the phase space mapping, it also affects the convergence of the Monte Carlo integration. In other words, a mapping choice that is related to the physical problem is more likely to converge efficiently than one that is not. See Appendix I.1 for further details. 56


Upon entering the kinematics menu item, the current phase space mapping scheme is displayed along with a dialogue asking the user whether he/she would like to change it. If the user answers Y, CalcHEP will request the splittings one at a time. For each splitting, CalcHEP presents the user with the particle set that requires splitting (or 12 if the first splitting which means all the final state particles). The user then splits these particles into two groups and enters them separated by a comma. For example, suppose we are considering a 2 4 process. The default splitting is: 12 -> 3 , 456 456 -> 4 , 56 56 -> 5 , 6 However, the user might change this to: 12 -> 34 , 56 34 -> 3 , 4 56 -> 5 , 6 where the 34 is what the user enters.

5.10

Regularization

Generally speaking, the Monte Carlo integration of squared matrix elements does not converge well because of the presence of the singular propagators. Even after including the widths, the convergence may not be optimal. It can be improved by doing a phase space transformation which smooths the sharp peaks of the squared matrix element (see Appendix I.1 for further details.) The resonances can come in the forms
1 p2 -m2 1 (p2 -m2 )2 1 (p2 -m2 )2 +(m·)2

(4) (5) (6)

where m, and respectively. In order for the position of t subitem of the tor allowing to

p are the mass, width and momentum of the virtual particle, CalcHEP to regularize these propagators, it needs to know he resonances. These can be entered via the Regularization Phase space mapping menu item which opens a table edienter the position of these resonances. This table has four 57


columns allowing to specify the momentum, mass, width and power of the resonance denominator. The momentum of the resonant particle can be expressed as a sum of the external momenta. The user can tuype the numbers of the particles which should be added together to get the resonant momentum. Initial state momenta are added to each other and final state momenta are added to each other, but initial and final state momenta are subtracted from each other. For example, the entry of 12 means the resonance occurs at (p1 + p2 )2 = m2 , the entry of 34 means the resonance occurs at (p3 + p4 )2 = m2 and the entry of 134 means the resonance occurs at (p1 - p3 - p4 )2 = m2 . The mass and width of the resonace are entered in the second and third columns. They can include numerical values, model parameters and algebraic expressions. Typically they should simply be the model parameters which specify the mass and width of the resonant particle. The last column is for the power of the denominator of the propagator that appears in the squared matrix element which can be either 1 or 2. Of course, in a squared matrix element, resonant propagators appear to the second power. However, there are times that the gauge cancellations allow the exponent to be effectively decreased to 1. This typically only happens when the resonance is stable (its width is 0). If the resonant particle is unstable and its width is nonzero, CalcHEP uses 2 and ignores the user's input.

5.11

Monte-Carlo simulation

The integration of the multiparticle phase space is done by the Vegas Monte Carlo routine [46, 47] (see Section I.2 for further details.) The Monte-Carlo simulation menu allows the user to control the integration. It, also, allows the user to set up histograms to be filled during the integration (explained below) and generate unweighted events (see the Subsection 5.12.) Vegas runs Nsess sessions. After each session, if the grid is not frozen, Vegas improves the grid so that the integral of the next session converges more efficiently. The number of sessions run by Vegas is controlled by the menu item nSess. The greater this number, the more likely Vegas is to find a satisfactory grid. Typical values for nSess are between 5 and 10. The default is 5. During each session, Vegas calculates the integrand Ncalls times. This 58


is controlled by the menu item nCalls. Greater values of Ncalls give better estimates for the integral and allow for better improvement of the grid. The optimal value depends on the process being analyzed. Processes with more final state particles typically need larger values of Ncalls whereas processes with fewer final state particles converge with smaller Ncalls . The default value of NCalls is 10000. Vegas begins calculating the integral and improving the grid when the menu item Start integration is chosen. During the integration, the status of each session is displayed along with the integration results of previous sessions. These results include the integral estimate, the uncertainty estimate and the estimated efficiency of the event generator if the grid is frozen. When Vegas finishes, it makes a final estimate of the total integral, uncertainty and 2 . It is usually a good idea to achieve uncertainties of approximately 1% or better for individual sessions. After Vegas finishes, the user can adjust the Vegas parameters and/or run Vegas again until satisfactory results are obtained. Unless the statistics are cleared, the new Vegas results are combined with the previous results. After the grid is improved, it is a good idea to clear the statistics before calculating the final integral and distributions. This is done via the Clear statistics menu item. The grid is usually well adjusted when the Monte Carlo uncertainty stabilizes at or below approximately 1%. Once the grid is improved, the user can, optionally, freeze the grid via the Freeze grid menu item so that Vegas does not further adjust it. Another benefit of freezing the grid is that the event generator will be prepared during the Vegas sessions. In some cases, it is desirable to start with a fresh grid. This can be done by the Clear grid menu item. CalcHEP has facilities to generate kinematical distributions during the Vegas sessions. The user can specify which distributions he/she would like by choosing Set Distributions. A table with 6 columns will open. The first column is where the user specifies the kinematical variable to be histogrammed. The kinematical variables available are described in Subsection 5.6. The second and third columns are the minimum and maximum values of the histogram. If a 1-dimensional distribution is desired, the last three columns should be left blank. If a 2-dimensional distribution is desired, another kinematical variable, a minimum and a maximum can be entered in the last three columns. Multiple distributions can be entered, one per line. The minima and maxima can contain numbers, model parameters, algebraic 59


expressions and standard math functions from the C math library. If there are multiple ways the final state particles fit the kinematical variable, each is added to the distribution (the distribution is a sum of each possibility.) The user can continue to run Vegas until he/she is satisfied with the uncertainties in the distribution. The distributions can be viewed by entering the Display Distributions menu. A list of the distributions will be presented and the user can choose the one he/she would like to view. After allowing the user to choose the number of bins for the histogram, CalcHEP will display it using the Plot Viewer described in Section 3. An example of a distribution is presented in Fig. 4. The distribution data is stored in the file distr N where N corresponds with the CalcHEP session number (not the Vegas session number.) The user can view the distributions from previous CalcHEP sessions by use of the show distr program located in the bin subdirectory of the user's work directory. For example, $CALCHEP/bin/show_distr distr_1 would display the distributions from the CalcHEP session number 1.

5.12

Event Generation

CalcHEP can generate unweighted events. These events are useful in simulations of particle physics collisions and can be passed to other programs for further analysis. For example, it is often desirable to pass events through PYTHIA [54] which hadronizes colored final states and adds radiation to the event. Event generation is done in the Monte-Carlo simulation menu. It consists of two steps. In the first step, the generator is prepared and in the second, the events are generated. Details of the algorithms used and the format of the event files can be found in Appendices F, I.3 and I.4. Generator preparation. The efficiency of the event generator depends on the number of phase space cubes and the estimation of the maximum differential cross section (or partial width) in each cube. Since the differential cross section (or partial width) can very greatly from phase space point to point (especially around a resonance), a larger number of phase space cubes allows for a more efficient generator. The menu item Event cubes allows to 60


modify this parameter. On the other hand, for each phase space cube, it is very important to have a good estimate of the maximum for that cube. The maximum is searched for during Vegas integration sessions when the grid is frozen. The more phase space points Vegas generates, the more likely the estimate of the maximum is accurate. On the other hand, the greater the number of generator phase space cubes, the longer Vegas will have to run to find the maximum for each cube. When a user would like to generate events, he/she will typically begin by improving the Vegas grid as described in Subsection 5.11. Once the grids are optimized, they should be frozen and Vegas should be run again. After each Vegas session, the current estimate of the event generation efficiency will be displayed along with the cross section or particle width. Vegas should be run until the event generation efficiency converges. If the final efficiency is too low, the number of phase space cubes should be increased via the Event cubes menu item and Vegas should be run again. This process can be continued until a satisfactory efficiency is achieved. The user must balance obtaining a high efficiency against the time it takes to estimate the maxima for a large number of phase space cubes. Event generation. When the generator is prepared and the efficiency is acceptable, the user can enter the Generate Events menu under Monte-Carlo Simulation. The first item on this menu, Number of events, allows to specify the number of events to generate. Event generation is started by the menu item Launch generator. During event generation, if an event is ever produced with a differential cross section (or partial width) which is greater than the estimated maximum value in that cube then two things happen. The first is that the event is split into multiple unweighted events. The second is that the maximum for that phase space cube is increased in order to prevent this from occuring in the future. When CalcHEP finishes generating the events, it displays an informational message which states the number of events generated, the actual efficiency, the number of multiple events generated and the number of events with negative weight generated. The user is asked whether he/she would like to accept these events. If there are many multiple events, it is a good idea to improve the generator further and try again. We recommend the user test the generator with a small number of events before generating the full

61


desired set of events. Once the user is satisfied with the events, he/she can answer y to accept them. The events will be written in plain text to the file events N.txt where N is the CalcHEP session number. A full description of the event format can be found in Appendix I.4. These events can be converted to the Les Houches Accord format by use of the event mixer program found in the bin directory. event mixer is further described in Section 6.2. Event analysis. In addition to many external programs that can analyze events, CalcHEP contains a program which can histogram the events and generate a distribution. It's name is events2tab and it is stored in the bin directory. For example, it can be run as $CALCHEP/bin/events2tab < > where is the kinematical variable to be histogrammed (and must be in quotation marks), and are the minimum and maximum values of the distribution, and is the number of bins for the histogram. The events are given to this program via the redirection operator < and is the event file. The output is the distribution data and would typically be redirected by the > operator to the file . For example, $CALCHEP/bin/events2tab "M(b,B)" 0 200 100 < events_1.txt > plot_1.txt will read the events from the file events_1.txt, generate the M(b,B) distribution with minimum value of 0, maximum value of 200 and 100 bins and write the plot data to the file plot_1.txt. The resulting plot can be viewed by use of the program plot_view which is stored in the bin directory. This will display the plot using the Plot Viewer (see Section 3.)

5.13

Simpson Integration

In the case of 2 2 processes, the integration is one-dimensional and standard one-dimensional integration techniques are used. This method is very fast and very accurate. It can be accessed via the 1D integration menu item which brings the user to Menu 8 (see Fig. 9.) We note, however, that certain user settings are ignored when using the 1D integration method. The structure functions are not included, the center-of-mass rapidity is set to zero, the regularizations are ignored and all 62


the cuts are ignored. In fact, the only cut allowed in the Simpson integration is on the cosine of the angle between the third particle (the first outgoing particle) and the first incoming particle. We call this cos13. The user can modify the minimum and maximum values of this kinematical variable via the Cos13(min) and the Cos13(max) menu items. This cut is often necessary to remove T-channel singularities from massless propagators (such as a Tchannel photon in e+ e+ e+ e+ ). The default cut is -0.999 < cos13 < 0.999 Upon successful integration, the cross section is displayed on the screen. The precision of the calculation can be set via the Set precision menu item. The default value is 10-4 . The angular dependence of the differential cross section can be viewed via the Angular dependence menu item. Plots of the dependence of the cross section on the model parameters or the centerof-mass energy can be viewed by the Parameter dependence menu item. This menu also provides sigma*v plots for v â (v ) at v 0 . Here v is relative velocity of particles . This characteristics is useful for astroparticle applications, in particular for the estimations of the elastic scatteting of Dark Matter cadidates.

5.14

Two Particle Decays

1 2 decays do not require numerical integration at all. It can be done symbolically. In this case, CalcHEP displays the Easy 1->2 menu item which allows to view the widths and branching ratio. An example of this screen can be seen in Figure 11. If multiple decay channels are generated during the symbolic session (for example, if the user specifies the process as Z->2*x), each nonzero decay channel will be listed on this screen along with either its partial width or branching fraction. The default listing is with branching fractions, but the user can switch between the two via the Show Branchings/Show Partial widths menu item. The total width for the particle (the sum of the partial widths) is displayed at the top of the screen. The dependence of the branching ratios and the width on the model parameters can be viewed by using the Parameter dependence menu item. This will open a menu allowing to choose either the total width or one of 63


Figure 11: An example of the Easy 1->2 menu for the two particle decays of the SM Z boson.

64


the decay branching ratios. It will then allow to choose the model parameter and display the dependence using the Plot Viewer. The width of the Higgs particle depends sensitively on the effective quark masses which can accumulate higher order QCD corrections to their Yukawa couplings. In the built-in version of the Standard Model, we assume that these masses depend on the model parameter Q. The correct width is obtained if Q is set equal to the mass of the particle that is decaying (e.g. the Higgs). This is the default value of Q for a decay. But, the user can adjust this, or view the dependence of the width on this parameter as desired. For other models to enjoy this feature, the masses must be implemented in a similar fashion.

65


6

Collecting Subpro cesses

The CalcHEP interactive sessions are designed to run one subprocess at a time. However, many typical collider processes contain many subprocesses that differ only by the initial state and/or final state particles. For example, at the LHC, the initial states are two colliding protons which, however, are composed of quarks, antiquarks and gluons. In this section, we describe routines that combine the results from different subprocesses.

6.1

Distribution Summation

The bin directory contains the program sum distr which combines distributions from different CalcHEP sessions (typically from different subprocesses.) The way it works is that it sums the distributions that have exactly the same kinematical variable specification. In other words, M(b,B) and M(B,b) would not be combined although they are the same distribution. M(u,d) would not be combined with M(u,s) although they are both the invariant mass of two jet particles. M(Jet,Jet) would be combined from different subprocesses, however, because they have exactly the same specification. The user must make sure each distribution specification is the same for each subprocess and that there is no ambiguity. The distributions from each CalcHEP session are stored in the files distr N where N is the CalcHEP session number. To sum the distributions from the subprocesses, the user would typically run $CALCHEP/bin/sum_distr ... > where , and ... are the distribution files to be combined and is the file where the results should be written. The program show_distr can be used on the output file in the same way as for the distribution files written during the interactive session.

6.2

Event Mixing and LHEF
can write desirable events so does this.

As described in Subsection 5.12, the interactive numerical session events for each subprocess and for each decay. However, it is often to combine these events and connect production events with decay that the final events are fully decayed. The program event_mixer 66


The parameters of this program are the number of final events to produce and a list of the directories where the event files can be found. For example, $CALCHEP/bin/event_mixer ...

where is the total number of events to produce, , and ... are the directories where the event files produced by the interactive numerical session are stored. event_mixer searches these directories for event files to mix. Two other files are used by event_mixer. The first is the file decaySLHA.txt which contains a list of the particles masses, quantum numbers, widths and decay channels in SLHA format [37, 55]. The user can generate this file during the interactive session by use of the Constraints, then the Masses,Widths,Branching and then the All Particles menu items. See Subsection 4.2 for further details. The decaySLHA.txt file is used to determine the total widths of the particles that are decaying in order to determine the branching ratios and the final cross section. If this particle is missing, event_mixer will use the current experimental values for the particles of the SM that have been discovered. For the Higgs particle and particles beyond the SM, event_mixer will assume that all the decay channels are present in the event files and estimate the total width from them. The run_details.txt file contains information about the events and is placed by event_mixer in the header of the resulting event file. For example, this file could contain the parameter values, the center of mass energy, the parton distribution functions and so on. event_mixer randomly mixes production events and their decays according to their cross sections and branching ratios. It does this until the requested number of events is generated or until it runs out of production events in any of the files. Before it mixes the events, it writes to screen the final cross section and the maximum number of events that can be generated. For example, 2.368E-01 10098 -total cross section[pb] -maximum number of events

To get this number before mixing the events, simply request 0 events. The results of event_mixer are stored in the file event mixer.lhe. This file is written in the LHE file format with an XML header [41] and additional 67


sections written in HepML [56] format. This format allows to automatically upload the LHE file to the CERN Monte-Carlo Database (MCDB) using the command ./upload2mcdb_hepml.pl -header hepml event_mixer.lhe where the upload2mcdb\_hepml.pl script can be downloaded from the MCDB website (https:\\mcdb.cern.ch.) Some special features of LHE file generated by CalcHEP are: · A history of each decay is presented for each event. The information about the parent particles and their mean life time is included. This information can be used for proper hadronisation and detector simulation. · When connecting decays, event_mixer uses a Breit-Wigner virtual mass distribution, where we assume that the matrix elements of the subprocesses do not depend strongly on the off-shell momentum. Our procedure does not break momentum conservation. · According to the LHE file format accord, the header (marked by
and
) section can be used for auxiliary information. event_mixer places the following in the header: a section (see below), a section with information about quantum numbers, masses widths and decays of non-SM particles, and a section for the 'run details.txt' file. · Information about the process such as a list of the subprocesses, kinematical cuts, model name, number of generated events, cross sections and model parameters is stored in the section. For instance, 1000 0.254087

68


This information is recognised when the LHE files are being uploaded in the MCDB data base and is used for automatically creating the `article' in MCDB. The routine lhe2tab histograms the events in an LHE file. It is called in a similar fashion to events2tab described in Subsection 5.12. For example: $CALCHEP/bin/lhe2tab < > where is the kinematical variable, and are the minimum and maximum values for the distribution, is the number of bins, is the LHE event file, and is the output file where the histogram data should be written. The only difference with respect to events2tab is that the PDG number of the particles should be used rather than the names of the particles. For example, M(5,-5) should be used in place of M(b,B) for the invariant mass of the b-quark and the anti-b-quark. The output file also contains a line which records the largest deviation from energy momentum conservation. An example is #lost_momenta_max/Etot 7.9E-11 1.3E-12 1.3E-12 8.0E-11 Typical value should be approximately 10-10 because the original event files recorded 11 digits for the particle momenta. This allows the user to test whether energy and momentum were conserved in the mixing. The CalcHEP batch interface (see Section 7), event_mixer is automatically called at the end of the batch session to construct the resulting event file.

6.3

N-tuples.

CalcHEP contains a program that creates PAW NTUPLES from LHE files. An example of using this program is $CALCHEP/bin/nt_maker where is the file containing the LHE events.

69


7

Batch Mo de

Initially CalcHEP was designed for interactive calculations with a graphical user interface. However, there are times when a batch system is ideal. For example, when a calculation takes a very long time, or the user is interested in doing scans over parameter space. usters of computers where parallelization is possible. In these situations, it is preferrable to set up the program with a set of batch instructions and run it in the background. CalcHEP provides the user with the ability to record their keystrokes and then use it as an instruction set in a batch mode. The recording step is done by using the +blind option. When this option is used, CalcHEP opens in interactive mode and records all the keystrokes the user performs. When the user exits, CalcHEP prints to the screen a string which represents the sequence of keystrokes. The user can then call the program with the -blind option along with the keystroke string to initiate the same calculation in batch mode. All the results of the calculations are stored in the same places as in interactive mode, allowing the user to use the results in the same way as in the interactive mode. This batch option has proved to be very powerful, but also very difficult for users to take full advantage of. Some challenges are: · If the user wishes to perform long time, it is not possible using the +blind option. In at writing or modifying the results. a complicated calculation that takes a very to quickly create the key sequence string this situation, the user must become adept key sequence string to achieve the desired

· The symbolic CalcHEP session does not always begin at the same point. The entry point depends on the previous session. Correspondingly, the key sequence required to achieve the desired result depends on the previous session and can be very difficult for the user to control. · CalcHEP sometimes presents the user with a dialog that requires some form of input (such as "Press any key" or Yes/No). In batch mode, all such dialogs are skipped and Yes/No questions are automatically answered with Yes. · If the user has a mistake in their keystroke sequence string or if there is a problem in the setup of the session, the batch mode can not interact 70


with the user to fix the problem. CalcHEP simply quits with an error code meant to inform the user about the problem. · Some interactive menus depend on the physical problem being analyzed. For example, the position of the t-quark mass could be in different locations in the parameter menu and different keystroke sequences would be required to change its value. In the present version, we have solved this by implementing a Find menu option which allows the user to type the name of the parameter and be taken directly to it. · Scans over parameter space are not directly supported by this keystroke sequence batch mode. In the present version of CalcHEP, we have attempted to streamline this process and provide the user more powerful and convenient ways to use CalcHEP in batch mode. In this section, after reviewing how to use the batch mode for the symbolic and numerical sessions, we give details of a variety of shell scripts which allow the user to control CalcHEP in blind mode without the need to write keystroke sequence strings. The final subsection details a new Perl interface to CalcHEP which automates the procedure of scanning over parameters and parallelizing the calculations. Before continuing with the details of the improvements, we note that the presence and interelated nature of the interactive and the batch regime facilitates gives the user the ability to set everything up in the interactive regime where the user can see the results and check that everything is working properly and then run the long calculation in batch mode. This combines the advantages of the interactive and batch modes.

7.1

Blind mo de

As mentioned, CalcHEP has an option -blind which allows the user to run in batch mode. It can be used with both the symbolic and numerical code as in: s_calchep -blind "STRING" n_calchep -blind "STRING" where STRING is a string which represents the sequence of keystrokes required which would be used in an interactive session to achieve the desired result. 71


] Up [ Down { Enter } Escape \NN Special keys where NN is the hexadecimal value 0-9 Function keys or numeric input Table 1: Characters used in blind mode for Up, Down, Enter and Escape. Other special keys are specified by their hexadecimal number 'NN'. The interpretation of numeric characters depends on when they are initiated as discussed in the text. All other characters which print to screen are used directly. In this string, each printing character (e.g. alphabetical characters) is represented by itself while up, down, enter and escape are represented by ], [, {, and } respectively. The response of the numerical characters depends on where in the interactive session they appear. If alphanumeric input is required of the user, such as the input of a process, cut, distribution, etc., a numeric characters is treated as the number it represents. However, if alphanumeric input is not required, then the numeric characters signal function keys. For example, in this situation, 0 corresponds with the 'F10' key which signals the end of the session and instructs CalcHEP to quit. For this reason, keystroke sequence strings are usually terminated with a 0. All other special keystrokes are represented by \NN where NN is the hexadecimal value for the character. For example, the 'Tab' key is represented by \08. For reference, we also include these characters in Table 1. With these definitions, it is possible to write keystroke sequence strings that perform any desired calculation that can be achieved in an interactive session. However, it can be very difficult, in practice, to create a keystroke sequence string from scratch. For this reason, another option +blind was created and is used as in: s_calchep +blind n_calchep +blind

72


This will open an interactive session where each keystroke the user makes is stored internally. When the user quits, the entire keystroke sequence string is printed to the screen. The user can then copy or modify this string and use it with the -blind option. As an example of this process, suppose the user would like to run vegas with 6 iterations of 100,000 calls, clear the statistics and then run 10 iterations of 1,000,000 calls each. This could take a long time depending on the complexity of the process. A simple way of achieving this is to start n_calchep with the +blind option. When the interactive session starts, the user would use their keyboard, as usual, to move through the menus and change the values of nSess_1, nCalls_1, nSess_2, and nCalls_2 but to smaller values which will finish in a reasonable time, for example, 1, 20000, 1, and 20000 respectively. After quitting, CalcHEP prints the following to the screen: "[[[[[[[[{{1{[{20000{[{1{[{20000{[[{0" The user can then simply change the numerical values to those they desire and run with the -blind option as in: n_calchep -blind "[[[[[[[[{{6{[{100000{[{10{[{1000000{[[{0" CalcHEP will run vegas with the specified settings in the background. Other scenarios can easily be imagined. We note that the blind mode is used for the automatic width calculation. When CalcHEP need the numerical value of an automatically calculated particle width, it begins by running the symbolic session in blind mode. It then compiles the code as a shared library which is then attached to the currently running program. The micrOMEGAs[42] package is based on this idea too. In this case, all the processes of Dark Matter annihilation are generated on the fly using the blind mode of the symbolic session.

7.2

Shell Scripts

It is possible to write universal shell scripts based on the blind mode which accept user input, create the keystroke sequence string and start calchep in blind mode. This relieves the user from the burden of determining the keystroke sequence string but allows the user to run CalcHEP in batch mode. 73


We provide several such shell scripts for common tasks in the $CALCHEP/bin directory which is symbolically linked to the WORK/bin directory. In this section, we describe them. If any of these scripts require parameters, but are called without any parameters, the script first prints a message to screen informing the user of the required parameters and then quits. We begin by describing s_blind which does a symbolic calculation. It is called from the users WORK directory. ·s_blind nModel Process nOutput: This command runs s_calchep in blind mode and generates the squared amplitude code for the process Process which must be enclosed in quotation marks, as in "e,E->m,M". The model is specified by nModel which must be an integer and corresponds with the position of the model in the model list. The first model is specified by 1, the second by 2 and so on. nOutput determines the format of the ouput and is also required to be an integer. The supported outputs are C code, Reduce code, Mathematica code, and Form code which are specified by 1, 4, 5, and 6 respectively. There are some further things the user should keep in mind when using this shell script. Because the keystroke sequence required for this shell script depends on the previous session, this script first removes the previous results and starts a fresh session. Feynman gauge is always used by this shell script. There is no possibility to use composite definitions, remove particles or choose diagrams with this script. This script is used by MicrOMEGAs[21] to generate numerical code at runtime. We now describe scripts which are designed to work with the numerical session. These are called from the directory where the numerical code n_calchep is stored. Typically, this is the WORK/results directory, but this directory can be renamed or moved by the user. For each of these scripts, all session parameters are kept fixed except for the ones explicitly described as being changed. Typically, the user would start n_calchep in interactive mode and set all the session parameters as desired. The user would then quit the interactive session and run one of these scripts.

74


·run_vegas it1 N1 it2 N2: This script runs the Vegas Monte Carlo integration of the phase space. It runs Vegas it1 times with N1 calls each and then it2 times with N2 times each. The results are cleared between these two runs. If the user calls this script with all of it1, N1, it2, and N2 nonzero, Vegas will run it1 times, clear the results, and then run it2 times more, the idea being that the first it1 calls allow Vegas to adapt the grid but the second it2 calls achieve the actual integration. If it1 and N1 are nonzero, but it2 or N2 are zero, it will run Vegas it1 times and quit. This would typically be used if the user is satisfied with the adaptation of the Vegas grid and has already cleared the results but wants to add more statistics to their integration. If it1 or N1 are zero but it2 and N2 are nonzero, it will first clear the results and then run Vegas it2 time. This would typically be used if the user has been adapting the grid, but is now satisfied and wants to perform the integration after clearing the statistics. ·set_vegas it1 N1 it2 N2 nCubes : This script sets parameters of two loops Vegas calculation which drive script run_vegas. Here it1 is number of Vegas runs and number of integrand calls for the first loop. it2 and nCall2 define the second loop calculations. The nCubes parameter defines number of sub-cubes which are used in the second loop for a proper fitting of integrand for efficient event generation. Note that parameters of second loop can not be defined in graphic interface mode. The parameters are stored in 'session.dat' file. ·run_vegas: This script launches subsequently two loops of Vegas Monte Carlo integration of the phase space using parameters defined by set_vegas. At first loop we allow Vegas to adopt the integration grid. After that all obtained results for cross section and histogram are cleaned and we launch second loop with fixed grid which generates final statistics and prepare integrand fitting for event generation. If it1=0 or N1=0 then the only the second loop is running. In the same manner only the first loop is running if it2=0 or N2=0. If only one loop is active intermediate clearing of results is not applied. run_vegas is used by pcm_cycle, name_cycle, subproc_cycle, and 75


par_scan scripts presented below. ·set_momenta p1 p2: This script updates the momenta of the incoming particles to p1 and p2 and then quits. ·set_param name1 value1 name2 value2 ...: This script changes the numerical values of one or more of the independent model parameters name1, name2, etc. to value1, value2, etc. respectively and then quits. ·set_param File: In this case, this script changes the numerical values of the independent model parameters as specified in the file File. File must have each model parameter on a separate line with the name coming first followed by the new numerical value, separated by white space. ·pcm_cycle pcm0 step: This script scans the cross-section over the center of mass energy. For each point in the scan, it updates the momenta of the initial state particles and then runs the Vegas Monte Carlo integration. When it is finished, it writes the resulting cross-sections to the file pcm_tab_j1_j2 where j1 is the session number when the script began and j2 is the session number when it finished where N=j2-j1+1. It begins its calculations with the momenta of the initial state particles equal to pcm0 and -pcm0 and increases in steps of size step for a total of N steps. If there are distributions specified then they are stored in the files distr_k where k corresponds with the session number when it was generated. In general j1kj2. These distributions can be viewed using the program disp_dist contained in the WORK/bin directory. ·name_cycle name val0 step N: This script scans the cross-section over a model parameter's value. For each point in the scan, it updates the parameter name and then calculates the cross-section. When it is finished, it writes the resulting cross-sections to the file name_tab_j1_j2 where name is the name of the parameter, j1 is the session number when the script began and j2 is the session number when it finished. Again, N=j2-j1+1. The scan begins with the parameter name=val0 and then increases it by size step until N steps are completed. As in 76


the previous case, distributions are stored in the files distr_k and can be viewed using the disp_dist program. ·subproc_cycle L Nmax: This script calculates the cross-section and generates events for each subprocess. When it is finished, it adds the crosssections together and prints the total cross-section to the screen. If there are distributions specified then they are added together and the resulting distribution is stored in the file distr_j1_j2 where j1 is the first session number and j2 is the final session number and where j2-j1+1 is equal to the number of subprocesses. It also generates unweighted events for each subprocess. The number it generates is equal to the smaller of the cross-section times the luminosity which is specified by L and Nmax. It writes these events to the files events_k.txt where k is the session number when it was generated and, again, j1kj2. These events can be combined using the program event_mixer which is stored in the WORK/bin directory. The cuts, regularization and histograms must apply to all subprocesses and the outgoing particles must be identical. ·par_scan < data.txt: calculates the cross-sections according to the grid for names and parameters given in data.txt file. The format of data.txt is supposed to be n v . v a a . a m l . l e _ . _ _ 1 . N 1 name_2 1 val_12 ......... 1 val_N2 ... ... .... ... name_N val_1N ....... val_NN

where name_1 name_2 ... name_N should be the set of names of independent model parameters, while val_11 ... val_1N are values for the respective parameters to be used for the first point and val_N1 ... val_NN are values for these parameters for the last grid point of the calculation. Note, that this script does not do summation over the subprocesses i.e. it will do the grid calculation only for chosen subprocess in the menu. The results of the calculation are printed in the terminal in the format 77


n v . v

a a . a

m l . l

e _ . _

_ 1 . N

1 name_2 1 val_12 ......... 1 val_N2

... ... .... ...

name_N val_1N res_1 ............. val_NN res_N

or can be redirected into some file, e.g. results.txt with par_scan < data.txt > results.txt command. ·par_scan_sum < data.txt: calculates the cross-sections according to the grid for names and parameters given in data.txt file similarly to the par_scan one, but in addition it performs a summation over all available subprocesses. ·gen_events Nevents: This script can by launched after successul end of run_vegas script with active second Vegas loop. Parameter Nevents events defines number of events to generate. If any of these scripts ends with an error, a message is printed to stderr and the return value of the script can be seen by issuing echo $? on the shell. A description of the possible error codes can be found in the CalcHEP manual.

7.3

Batch interface

Although the shell scripts of the previous subsection greatly improve the users ability to run their desired processes in batch mode, there are still some limitations when doing large complex calculations involving scans over parameter space, many subprocesses and parallelization. To overcome these challenges, we have written a Perl script which we call the "batch interface". The main features of this Perl interface are: · The input is a pure text file we call the "batch file". It consists of a series of keywords together with values for those keywords, with each keyword on a separate line. Most of the options available in the interactive session are supported by keywords in the batch file and thus most calculations can be done using the batch interface.

78


· A library of subprocess numerical codes is utilized. Each time the batch interface is run, it first checks whether the subprocess numerical code exists. If it does, it reuses it and skips the often long process of code generation. Any requested numerical codes not in the library are then generated and added to the library. If the model changed, the numerical codes are regenerated as appropriate. · The numerical phase space integration is done and events are generated for each subprocess and the results are combined. Production and decay events are connected and the final event output is an LHE file with all the events fully decayed which can be used directly by Pythia or other software. · Multiple parameters can be scanned over. For each parameter point, the results are combined and stored with names unique to that parameter point for easy retrieval. · Both the symbolic calculations and the numerical calculations are parallelized. Each subprocess and each parameter point are run as separate jobs and run on all available cpu cores. The number of cores available is set by the user as is the type of cluster software used. Multicore machines, PBS cluters and LSF clusters are currently supported. · The progress of the calculation is stored in a series of html files which can be viewed in a web browser. These html pages contain information about the progress of the calculation as well as the results of the calculations which are already finished. The final event files are linked as are the session.dat and prt files which give the full details of each individual calculation. Pure text versions of the progress pages are also created for situations where a web browser is not convenient. Once the user creates the batch file and runs the input is required until it finishes. It can be run checked periodically. After the user has created their batch file, they batch interface from their CalcHEP work directory batch interface, no user in the background and would typically run the as

./calchep_batch batch_file

79


where batch_file is the name of their batch file, which can be named anything the user likes. The batch interface will start by printing a message to the shell which will contain the location of the html progress reports which the user can simply copy and paste into their browser url window. The first time the user runs the batch interface, they can also run the following from the work directory ./calchep_batch -help which will complain that no batch file was present, create a series of html help files and quit. The location of the html help files will be printed to screen. This html help file can be opened in a web browser and contains all the details that are presented here. In the following subsection we describe each keyword available for the batch file and how to use it. An example batch file is stored in CALCHEP/utile/batch_file. 7.3.1 Structure and keywords of the bacth file

Comments Any line beginning with a # is ignored by run batch. The # has to be at the very beginning of the line. Some examples are: # This is ignored. #Model: Standard Model This is ignored. Model: # Standard Model(CKM=1) This is not ignored. Mo del The first section of the batch file should contain the specification of the model. This is done by model name and should match exactly the name in the CalcHEP model list. So, if you want to run the "Standard Model(CKM=1)", you would specify this with the batch file line: Model : Standard Model(CKM=1) There is no default for this line. It must be included. The gauge of the calculation should also be specified in this section. Choices are Feynman and unitary gauge. CalcHEP is much better suited to calculation in Feynman gauge, but there may be times that unitary gauge is useful. This can be specified using the keyword Gauge as in: 80


Gauge : unitary The default is Feynman. Pro cess Processes are specified using the Process keyword and standard CalcHEP notation as in: Process : p,p->j,l,l Multiple processes can also be specified as in: Process : p,p->E,ne Process : p,p->M,nm As many processes as desired can be specified. When more than one process is specified, the processes are numbered by the order in which they are specified in the batch file. So, in this example, p,p->E,ne is process 1 and p,p->M,nm is process 2. This numbering can be useful when specifying QCD scale, cuts, kinematics, regularization and distributions allowing these to be specified separately for each process. There is no default for this keyword. It must be specified. Decays are specified using the Decay keyword and are also in standard CalcHEP notation as in: Decay : W->l,nu Again, multiple decays can be specified as in: Decay : W->l,nu Decay : Z->l,l The default is to not have any decays. Cuts, kinematics, regularization and distributions do not apply to decays. It is sometimes convenient to specify groups of particles as in the particles that compose the proton or all the leptons. This can be done with the keyword Composite as in:

81


C C C C

o o o o

m m m m

p p p p

o o o o

s s s s

i i i i

t t t t

e e e e

: : : :

p l n W

= = u =

u e = W

, , n +

d E e ,

, , , W

U,D,G m,M Ne,nm,Nm -

As many composite particles as necessary can be specified. These definitions can be used in cuts and distributions as well as in the processes and decays. The default is not to have any composite definitions. PDF The PDF of a proton or antiproton can be specified with the pdf1 and pdf2 kewords which correspond to the pdfs of the first and second incoming particles respectively. Choices for these keywords are: · cteq6l (anti-proton) · cteq6l (proton) · mrst2002lo (anti-proton) · mrst2002lo (proton) · cteq6m (anti-proton) · cteq6m (proton) · cteq5m (anti-proton) · cteq5m (proton) · mrst2002nlo (anti-proton) · mrst2002nlo (proton) · None An example for the LHC is: pdf1 : cteq6l (proton) pdf2 : cteq6l (proton) 82


The default is None. These keywords can also be used for electron positron colliders. For this process the available pdfs are: · ISR · ISR & Beamstrahlung · Equiv. Photon · Laser photons · None The following proton electron collider pdf is also available: · Proton Photon All of these pdfs must be typed exactly or copied into the batch file. If ISR & Beam is chosen, then the following beam parameters may be specified: Bunch x+y sizes (nm) : 550 Bunch length (mm) : 0.45 Number of particles : 2.1E+10 The default values are the default values in CalcHEP and correspond roughly with the ILC. If Equiv. Photon is chosen for the pdf, then the following parameters may be specified: Photon particle : e^|Q|max : 150 Choices for the Photon particle keyphrase are mu^-, e^-, e^+, mu^+. The default is e^+. The default for the keyword |Q|max is the same as in the CalcHEP interactive session. If Proton Photon is chosen then the following may be specified: I I | P n n Q t comi comi ^2|m cut ng ng ax of particle mass : 0.937 particle charge : -1 : 2.1 outgoing proton : 0.11

The defaults are the same as in the CalcHEP interactive session. 83


Momenta The momentum of the incoming states can be specified with the keywords p1 and p2 and are in GeV as in: p1 : 7000 p2 : 7000 These are the default values for the momenta. Parameters The default parameters of the model are taken from the varsN.mdl file in the models directory. Other parameter values can be used if specified using the Parameter keyword. Here is an example: P P P P a a a a r r r r a a a a m m m m e e e e t t t t e e e e r r r r : : : : E S M w E W Z W = = = = 0 0 9 2 . . 1 . 3 4 . 0 1 81 1884 8895

This gives a convenient way of changing the default values of the parameters. Simply open CalcHEP in symbolic mode, choose to edit the model and change the values of the indepenedent parameters. These new values will then become the default values used by this batch program. There is no need to redo the process library. Scans In some models it is useful to scan over a parameter such as the mass of one of the new particles. For example, if there is a new W' gauge boson, it may be desireable to generate events and/or distributions for a range of masses for the W'. This can be done with the Run parameter, Run begin, Run step size and Run n steps keyphrases. Here is an example: R R R R u u u u n n n n p b s n arameter : MWP egin : 400 tep size : 50 steps : 17 84


This will generate the events and/or distributions for the model with the mass of the W' set to 400GeV, 450GeV, 500GeV,...1200GeV. As many runs as desired can be specified (including zero). For each run, all four keyphrases have to be specified. Furthermore, if there is more than one run, all four keyphrases have to be specified together. Here is an example with two runs: R R R R R R R R u u u u u u u u n n n n n n n n p b s n p b s n arameter : MWP egin : 400 tep size : 50 steps : 17 arameter : MF egin : 2000 tep size : 200 steps : 11

This example will run over both parameters MWP and MF. QCD The parameters of the QCD menu of the numerical session can be specified as in the following example: p a a a m M a a l l l b t l r p p p ( o p t h h h m p h o a a a b ( a n dist. alpha : ON (MZ) : 0.118 nf : 5 order : NLO ):4 pole) : 174 Q : M45

The default values are the ones in the interactive session. Not all the keywords have to be included in the batch file. It is sufficient to include the ones that need to be changed. For example, if only the QCD scale needs to be changed, it can be specified as: alpha Q : Mt/2 The QCD scale can be specified in terms of the invariant mass of certain final state particles as in Mij which means that the QCD scale is taken to be the 85


invariant mass of particles i and j. Or, it can be specified as a formula in terms of the parameters of the model as in Mt/2 which means half of the top quark mass. When specifying the scale in terms of the invariant mass of final state particles, the numbers are taken from the way the processes are entered with the Process keyword. So, if the process is specified as p,p->j,l,n, M45 means the invariant mass of the lepton and neutrino (l,n). The batch script will take care of renumbering if the subprocesses have the final state particles in a different order. It is also sometimes useful to use a different scale for different processes. For example, suppose the two processes p,p->j,l,n and p,p->j,j,l,n are specified in the batch file, the scales could be specified as in this example: alpha Q :1: M45 alpha Q :2: M56 The number between the :: specifies which process to apply this scale and corresponds to the order in which the user specified the processes. If more than one process is specified, but the same non default scale is desired for all of them, this can be specified as in: alpha Q : Mt/2 This specification will apply the same scale Mt/2 to all processes. Cuts Cuts are specified with the keywords Cut parameter, Cut invert, C and Cut max and use standard CalcHEP notation, except for Cut which can be either True or False. These cuts are only applied production processes. They are not applied to the products of the Here is an example: C C C C u u u u t t t t p i m m a n i a r v n x ameter : T(le) ert : False : 20 : ut min invert to th e decays.

For each cut, all four keyphrases have to be present. As many cuts as desired can be included. Including Cut min or Cut max but leaving the value blank 86


will leave the value blank in the CalcHEP table. If the cut should only be applied to a certain process, then the colon can be changed to :n: where n is the process number. So, for example, we could do: C C C C C C C C C C C C u u u u u u u u u u u u t t t t t t t t t t t t p i m m p i m m p i m m a n i a a n i a a n i a r v n x r v n x r v n x ameter : T(l) ert : True : : 20 ameter : T(j) ert : False : 20 : ameter :2: J(j,j) ert : False :2: 0.4 :2:

This set of cuts will apply a pT cut to leptons and jets in all processes but a jet cone angle cut only to process 2. The numbering of the processes corresponds to the order in which the processes are entered in the batch file. Composite particle names can be used as long as they are defined by the keyword Composite in the process section. Note that both of the transverse mass cuts apply a pT > 20GeV cut in this example. Kinematics As the number of final state particles increases, specify the kinematics which helps CalcHEP in stage. This is done in exactly the same notation bering corresponds to the order the particles are the batch file. Here is an example: Kinematics : 12 -> 34 , 56 Kinematics : 34 -> 3 , 4 Kinematics : 56 -> 5 , 6 If multiple processes are specified, using a single colon as in the previous example will apply the kinematics to all processes. If different kinematics are desired for each process, then the :n: notation can be used as in: 87 it can be very helpful to the numerical integration as in CalcHEP. The numentered in the process in


K K K K K K

i i i i i i

n n n n n n

e e e e e e

m m m m m m

a a a a a a

t t t t t t

i i i i i i

c c c c c c

s s s s s s

: : : : : :

1 1 1 2 2 2

: : : : : :

1 3 5 1 4 4

2 4 6 2 5 5

6 -

> > > > >

3 3 5 3 > 4

4 , 56 ,4 ,6 , 456 45 , 6 ,5

where n corresponds with the process number as entered in the batch file. Regularization When a narrow resonance is present in the signal, it is a good idea to specify the Regularization. This is done with the same notation as in CalcHEP. Here is an example: R R R R e e e e g g g g u u u u l l l l a a a a r r r r i i i i z z z z a a a a t t t t i i i i o o o o n n n n m m w p o a i o m s d w e s t e ntum : 34 : MW h : wW r:2

Regularization for as many resonances can be specified as desired. Furthermore, different resonances can be specified for each process using the :n: notation as in: R R R R R R R R e e e e e e e e g g g g g g g g u u u u u u u u l l l l l l l l a a a a a a a a r r r r r r r r i i i i i i i i z z z z z z z z a a a a a a a a t t t t t t t t i i i i i i i i o o o o o o o o n n n n n n n n m m w p m m w p o a i o o a i o m s d w m s d w e s t e e s t e ntum :1: 34 :1: MW h :1: wW r :1: 2 ntum :2: 45 :2: MZ h :2: wZ r :2: 2

Distributions Distributions are only applied to the production process. The decays are ignored. Standard CalcHEP notation is used for the distribution parameter. Here is an example:

88


D D D D D D

i i i i i i

s s s s s s

t t t t t t

p m m n t x

arameter : M(e,E) in : 0 ax : 200 bins : 100 itle : p,p->l,l -title : M(l,l) (GeV)

The value for the keyphrase Dist n bins has to be one of 300, 150, 100, 75, 60, 50, 30, 25, 20, 15, 12, 10, 6, 5, 4, 3 or 2. These are the values allowed by the CalcHEP histogram routines. The values given for the titles have to be pure text. No special characters are currently allowed. Gnuplot must be installed for plots to be produced on the fly and included in the html progress reports. More than one distribution can be specified, however each distribution must be unambiguous and apply in exactly one way for each subprocess. Also, distributions will work even if no events are requested. For this to work, the distributions have to be unambiguous and apply to all subprocesses the same way. For example, if a process is p,p->l,l,l and the distribution M(l,l) is given, then this routine will not know which two leptons to apply the distribution to and the results are unpredictable. If the process is p,p->l,l where l=e,E,m,M and the distribution M(e,E) is desired, this distribution will only apply to some of the subprocesses and give unpredictable results. Make sure your distribution is unambiguous and applies in exactly one way to each subprocess. If this is done, it should work. Nevertheless, check each distribution carefully to make sure it is being done correctly. Events The number of events is specified with the keyphrase Number of events. This specifies the number of events to produce after all subprocesses are combined and decayed. If a run over a parameter is specified, this keyphrase determines the number of events to produce for each value of the run parameter. The number of events requested can be zero. In this case, the cross sections are determined and the distributions generated but no events are produced. Here is an example: Number of events : 1000

89


The name of the file can be specified using the Filename keyword. If specified, all the files will begin with this name. Here is an example: Filename : pp-ll If nt_maker has been installed in the bin directory, PAW ntuples can be made on the fly by setting NTuple to True as in: NTuple : True The default is False. The keyword Cleanup determines whether the intermediate files of the calculation are removed. This can be useful if many large intermediate files are created and space is an issue. On the other hand, it can be useful to keep the files when debugging is necessary. If this keyword is set to True, the intermediate files are removed. If set to False then they are not removed. Here is an example: Cleanup : False Parallelization The parallelization mode is set using the keyphrase Parallelizat and can be either local, pbs or lsf. In local mode, the jobs local computer, in pbs mode, the jobs are run on a pbs cluster mode, the jobs are run on an lsf cluster. If run from a pbs or lsf terminal should be on the computer with the pbs or lsf queue. example of setting the batch to run in pbs mode: Parallelization mode : pbs Local mode is the default. If run in pbs mode, there are several options that may be necessary for the pbs cluster. All of them can be left blank in which case they will not be given to the pbs cluster. Here is an example of the options available: Q W M e u a e m e l m a : lt or il brody ime : 1.5 y:1 : name@address 90 ion method run on the and in lsf cluster, the Here is an


The que keyword specifies which pbs queue to submit the jobs to. Walltime specifies the maximum time (in hours) the job can run for. If this time is exceeded, the jobs are killed by the pbs cluster. Memory specifies the maximum amount of memory (in G) that the jobs can use. If this memory is exceeded by a job, the pbs cluster will kill the job. email specifies which email to send a message to if the job terminates prematurely. The default for all of these is whatever is the default on the pbs cluster. If run in lsf mode, there are several options that may be necessary for the lsf cluster. All of them can be left blank in which case they will not be given to the lsf cluster. Here is an example of the options available: Q W M e P u a e m r e l m a o : lt or il je brody ime : 1.5 y:1 : name@address ct : project_name

The que keyword specifies which lsf queue to submit the jobs to. Walltime specifies the maximum time (in hours) the job can run for. If this time is exceeded, the jobs are killed by the lsf cluster. Memory specifies the maximum amount of memory (in G) that the jobs can use. If this memory is exceeded by a job, the lsf cluster will kill the job. email specifies which email to send any messages t. The default for all of these is whatever is the default on the lsf cluster. Sleep time specifies the amount of time (in seconds) the batch script waits before checking which jobs are done and updating the html progress reports. If a very short test run is being done, then this should be low (say a few seconds). However, if the job is very large and will take several hours or days, this should be set very high (say minutes or tens of minutes or hours). This will reduce the amount of cpu time the batch program uses. Here is an example setting the sleep time to 1 minute: sleep time : 60 The default is 3 seconds. When jobs are run on the local computer, the keyword Nice level specifies what nice level the jobs should be run at. If other users are using the same computer, this allows the job to be put into the background and run at 91


lower priority so as not to disturb the other users. This should be between 0 and 19 where 19 is the lowest priority and the nicest. Typically, it should be run at level 19 unless the user is sure it will not disturb anyone. The nice level should be set both for a local computer and for a pbs or lsf batch run. The reason is that some jobs are run on the pbs or lsf queue computer even on the pbs or lsf cluster. Here is an example: Nice level : 19 Level 19 is the default. Vegas The number of vegas calls can be controlled with the keywords nSess_1, nCalls_1, nSess_2 and nCalls_2. The values are the same as in CalcHEP. Here is an example: n n n n S C S C e a e a s l s l s l s l _ s _ s 1 _ 2 _ :5 1 : 100000 :5 2 : 100000

The defaults are the same as in CalcHEP. Generator The following parameters of the event generation can be modified: s r s M f u a i A i b n m X n d p * d cubes : 1000 om search : 100 lex search : 50 N:2 new MAX : 100

The defaults are the CalcHEP defaults.

92


7.3.2

Example of the bacth file

This example generates 1000 events (for each Mh) of the process p,p->W,b,B for the model Standard Model(CKM=1). # # # M M G # # # P D C C C C C # # # p p # # # p p # # # P ###################### Model Info ###################### odel: Standard odel changed: False auge: Feynman ###################### Process Info ###################### rocess: p,p->W,b,B ecay: W->le,n ########### ########### Model(CKM=1)

########### ###########

omposite: p=u,U,d,D,s,S,c,C,b,B,G omposite: W=W+,Womposite: le=e,E,m,M omposite: n=ne,Ne,nm,Nm omposite: jet=u,U,d,D,s,S,c,C,b,B,G ################################# PDF Info ################################# df1 : cteq6l (proton) df2 : cteq6l (proton) ################################# Momentum Info ################################# 1 : 4000 2 : 4000 ########## Parameter ########## arameter : ####################### Info ####################### Mtp=172.5 93


# # # R R R R

############# Run Info ############# un parameter: un begin: un step size: un n steps:

#################### #################### Mh 120 5 3

###################################### # QCD Running Info ###################################### alpha Q : M45 # # # C C C C C C C C C C C C C C C C ##################################### Cut Info #################################### ut parameter: M(b,B) ut invert: False ut min: 100 ut max: u u u u u u u u u u u u t t t t t t t t t t t t p i m m p i m m p i m m a n i a a n i a a n i a r v n x r v n x r v n x ameter: ert: : : ameter: ert: : : J(jet,jet) False 0.5

T(jet) False 20

ameter: N(jet) ert: False : -2.5 : 2.5

##################################### 94


# Kinematics Info ##################################### Kinematics : 12 -> 3, 45 Kinematics : 45 -> 4 , 5 # # # R R R R # # # D D D D D D ####################### Regularization Info ####################### egularization momentum: egularization mass: egularization width: egularization power: ############# ############# 45 Mh wh 2

######################################## Distribution Info ######################################## ist parameter: M(W+,b) ist min: 100 ist max: 200 ist n bins: 100 ist title: p,p->W,b,B ist x-title: M(W+,b) (GeV)

# # # N F # # # P M s #

#################################### Event Info ################################# umber of events: 1000 ilename : pp-Wbb-lnbb ##################### Parallelization Info ##################### arallelization method ax number of cpus : 2 leep time : 3 ##################### ############ ############ : local

############ 95


# # n n n n

Vegas ###### Sess_1 Calls_ Sess_2 Calls_

Info ########################### :5 1 : 100000 :5 2 : 100000

7.3.3

Monitoring of the calchep batch session

After the start of calchep bacth session with ./calchep_batch batch_file command, the following information appears on the screen: P P S f Y a r r i i o n o o m l u d cessing batch: gress information can be found in the html ply open the following link in your browse e:///WORK/html/index.html can also view textual progress reports in the other .txt files in the html director

directory. r: WORK/html/index.txt y.

where WORK denote the path to calchep working directory. Using browser, user can monitor the progress of all stages of the calchep batch session and check CalcHEP batch detals (Fig.12(a)), details of symbolic session (Fig.12(b)), the progress in numerical session (Fig.12(c)) as well as the progress on event generation (Fig.12(d)). Further details on numerical session can be checked by clicking on particular value of the running parameter (Mh in our example), which opens the window with detailed information shown in Fig.13. This page also present the requested distributions. Moreover, the results shown in html browser as also recorded in the ascii files located in the WORK/html directory. For example the results for numerical session are recorded in the file WORK/html/numerical.txt as well as in the files in the WORK/html/runs directory containing further details. For example after sucessful run of the batch_file given in the example above, the user should get the WORK/html/numerical.txt with the following info:

96


(a)

(b)

(c)

(d)

Figure 12: Monitoring of the CalcHEP batch session using through the web browser:

CalcHEP Numerical Details Done! R M M M u h h h n 1 1 1 s 20 25 30 sigma 8.946 8.842 8.738 (fb) 0e+02 0e+02 0e+02 Running 0/13 0/13 0/13 Finished 13/13 13/13 13/13 Time (hr) 0.02 0.02 0.02 N 10 10 10 events 00 00 00

97


Figure 13: Monitoring of the CalcHEP batch session using through the web browser: 98


7.3.4

Results Storage

After the events and/or distributions are generated, they are stored in the Events directory. The prefix of the files is the name specified in the batch file plus either "-single" if no scans were specified or a string specifying the run parameter values if one or more scans are specified. We will assume this is filename in the following. If events are requested, they will be stored in the files filename.lhe filename.nt where filename.lhe is the event file in Les Houches format and filename.nt is in PAW ntuple format. The ntuple file is only created if the keyword NTuple is set to True and nt maker is present in the bin directory. If distributions are requested, they will be stored in the files f f f . i i i . lename.distr lename_1.png lename_2.png .

where filename.distr is the raw distribution data and can be read by show_distr in the bin directory. The distributions generated on the fly by the batch script are stored in the files ending in .png.

99


8

Particle Interaction Mo del Implementation

A model of particle interaction in CalcHEP is stored in five tables, named Parameters, Constrains, Particles, Vertices and Libraries. These tables are stored in the respective files varsN.mdl, funcN.mdl, prtclsN.mdl, lgrngN.mdl, extlibN.mdl which are located in the models/ sub-directory of the users work directory. The N in these file names refers to the model number. Each model has a unique N. For all of these tables, a % at the beginning of any row means that that row is a comment and CalcHEP ignores it. We describe each of these tables in this section. The SLHAplus [57] library contains external functions that allow CalcHEP to read parameters from a SLHA file. We include it in the CalcHEP package. A brief description can be found in Subsection 9.1. Although it is possible to implement a new model of particle interactions directly using the table definitions described here, for complicated models with a large number of particles, parameters and Feynman rules, it is a good idea to use an external program to generate the model files. We briefly describe two programs that do this job at the end of this section: LanHEP[35] and FeynRules[36].

8.1

Indep endent Parameters

The table Parameters contains all the independent parameters of the model. It consists of the following three columns: 1. Name : This is where the name of the parameter belongs. It can contain up to 11 characters. The first character must be a letter. The others may be either letters or digits. The underscore symbol is also permitted and CalcHEP is sensitive to the case of the characters. There is a set of reserved names which cannot be used for parameter names: · i is reserved for the imaginary unit; · Sqrt2 is reserved for 2;

· p1,p2,p3,... are reserved for particle momenta; · m1,...,M1,... are reserved for Lorentz indices; · G5 is used for the 5 Dirac matrix; 100


There is another subtelty that should be considered when naming parameters. Although CalcHEP is sensitive to the case of the parameters, Reduce is not. Therefore, if the user would like to use the CalcHEP results in Reduce, he/she should distinguish all names by more than case. Additionally, although CalcHEP allows underscores as part of parameter names, the underscore is treated differently by Mathematica. So, if the user would like to use the CalcHEP results in Mathematica, he/she shouldnot use underscores in the parameter names. Furthermore, CalcHEP allows parantheses in parameter names but Reduce and Mathematica do not. The user should name their parameters accordingly. 2. Value : This is where the numerical value for the parameter is stored. Dimensionful parameters should be in powers of GeV. 3. Comment : This is where the user can enter a description of the parameter. It is ignored by CalcHEP and is purely for informational purposes.

8.2

Dep endent Parameters

The table Constraints contains all the dependent parameters of the model. It consists of two columns: 1. Name : This is where the name of the parameter belongs. The restrictions on the names are the same as for the independent parameter names. 2. Expression : This is where the formula belongs which defines the value of this dependent parameter. The formula can contain the following: · integer and float point numbers,

· dependent parameter names defined above the current row, · parentheses () and arithmetic operators +, -, /, *, ^, · the symbols i and S q rt2,

· independent parameter names contained in the Parameters table,

101


· standard functions from the C mathematics library such as sq rt(x) and sin(x). The full list of these functions is contained in the $CALCHEP/include/extern.h file, · functions from the SLHAplus package, · the function if (x, y , z ) which returns y if x > 0 and z otherwise,

· any user defined functions. The code containing these functions should be included in the Libraries table. Their prototypes can also be included in the Libraries table. If their prototypes are not included, CalcHEP assumes they return double type. A list of the resulting auto-prototyped functions appears in the results/autopot.h file after compilation of the numerical code. Additionally, anything after the % symbol is considered a comment and ignored. This can be used to enter a comment about the dependent parameters. The user can follow the formula with a % and then a comment describing the parameter. Public and lo cal dep endent parameters. Some models can contain thousands of dependent parameters. For a particular process, only a small subset of these is used. For this reason, CalcHEP attempts to reduce the file size by only including the dependent parameters that are used in the numerical code that it generates. The way it does this is that it divides the dependent parameters into two groups which we will call the public parameters and the local parameters. The public parameters are those parameters that are required to calculate all the particle masses and widths, all parameters that depend on external functions (except the standard C math functions) and all dependent parameters above any of these. In other words, all the parameters from the top of the Constraints table down to the last parameter required for the calculation are public and are included in the numerical code. All dependent parameters below this are defined as local and are not included in the numerical code. If the user would like to force CalcHEP to include a larger subset of the dependent parameters in the numerical code, he/she can place the comment %Local! in the Constraints table in the first column. CalcHEP will always include the parameters up to, at least, this point. (All the parameters

102


above the %Local! line will always be considered public.) An example of a Constraints table with this comment is: Name Expression ... ... %Local! ... ... where the ... refers to other entries in the Constraints table. All the public constraints are compiled and calculated together and separately from the squared amplitude code. Thus, passing of parameters via global variables between functions involved in the calculation of the dependent parameters in user defined code is possible. The public parameters appear in the menus of the interactive sessions and can be used in the definition of the QCD scale and in the limits of the cuts and histograms. The local constraints, on the other hand, are only calculated when needed by the squared amplitude. The code for these parameters is attached to the squared amplitude code.

8.3

Particles

The particles are defined in the Particles table which consists of 11 columns. Each particle anti-particle pair is described by one row of the table. The columns are: 1. Full name: The full name of the particle can be entered here. It is not used directly by CalcHEP . It is used to clarify what the short particle names mean. 2&3. A and Ac : These columns are where the particle name and antiparticle name belong. More precisely, these columns contain the quantum field and its C-conjugate. The field operator acting on the vacuum is understood to create the corresponding anti-particle. Self-conjugate fields (such as photons and Ma jorana neutrinos) should contain the same name in both columns. Any printing character can be used in the particle name except white space, parentheses and the percent symbol (%). The length of the particle name can not exceed 8 symbols. For long particle names, we should note that the graphical representation of the diagrams might contain overlapping symbols. 103


4. PDG : This is where the PDG code [58] belongs. This number is used mainly for interfacing with other packages. For example, these codes are included in event files [41] in order to communicate the particle flavor to other programs. The parton distribution functions are also applied according to this number. The conventional PDG codes should be used for SM particles. For other particles, the user should ensure that the code is not reserved for another particles such as a meson or baryon. Otherwise, conflicts could arise when passing events to other programs, such as Pythia. 5. 2*Spin : This is where the spin of the particle is specified. It should be entered as the integer equal to twice the spin. In other words, 0 should be entered for a scalar field, 1 for a spin 1/2 fermion, 2 for a vector boson, 3 for a spin 3/2 fermion and 4 for a spin-2 boson. Spin 3/2 and 2 particles should be massive. 6. Mass : This is where the mass of the particle is entered. If massless, 0 can be entered. Otherwise, it must be a parameter name which is defined in either the Parameters table or the Constraints table. 7. Width : This is where the width of the particle is entered. If the particle is stable, 0 can be entered. Otherwise, it must be a parameter name. In this case, however, this parameter can be defined in the Parameters table, the Constraints table or it can be preceeded with the ! symbol. If it is preceeded with the ! symbol, CalcHEP will automatically calculate it when needed. In this case, the parameter should not appear in either the Parameters table or the Constraints table. When automatically calculating the width, CalcHEP first attempts the 1 2 decays. If none are found, it attempts the 1 3 decays. If none are still found, it attempts the 1 4 decays. If none are found at this point, it takes the width as zero. If information about particle widths was downloaded via SLHA file (See section 9.1), then widths are not evaluated and CalcHEP substitutes downloaded values in particle propagators. 8. Color : This is where the color (SU(3)) representation is specified. Supported representations are the singlet (specified by a 1), the fundamental triplet (specified by a 3) and the octet (specified by a 8.) If 104


the particle is specified as a triplet, the antiparticle is treated as an anti-triplet (the ¯ representation.) 3 9. Aux : This field is used to modify the propagator of the field. For most fields, this column will be left blank. The other possibilities are: ­ * : specifies that the propagator should be point like (all momentum dependence is dropped.) This can be used to construct 4-fermion propagators, for example. These fields can not appear as external states of processes. ­ l and r : are used to specify that a fermion is purely left and right handed respectively. This can only be applied to massless fermions. The effect of this is that when CalcHEP averages over the spin of the incoming fermion, it takes into account that there is only one polarization for this particle. This is used, for example, for the SM neutrinos. ­ g : declares that the vector particle is treated as a gauge boson. In this case t'Hooft-Feynman gauge is used for the vector boson propagator and the ghost fields A.c and A.C (where A is the name of the vector boson) as well as the Goldstone boson A.f can contribute to the Lagrangian. A massless vertor particle must be treated as a gauge boson. In the absence of g in this column, the unitary gauge is always used for massive vector bosons and the ghosts and Goldstones associated with it are not used in Feynman diagrams. The Formulaes for the particle's propagators are presented in Section (8.6). The Aux column can also be used to specify a particle's electric charge. This charge is required by many external packages. CalcHEP already knows the charge of the SM particles and assigns it according to the particle's PDG code. It can determine the charges of many BSM particles by analyzing the Feynman rules and assuming they conserve electric charge. However, for some particles, this will not be sufficient to determine their charge. For this reason, CalcHEP allows to specify the charge of any BSM particle. Specifically, three times the charge should be entered in the Aux field. For example, a particle with electric 105


charge of -1 would be enetered as -3, a particle with electric charge of 2/3 would be entered as 2 and so on. This charge must be written before other symbols in this column (if there are any.) We reiterate that this charge is not used to define the Feynman rules of the photon in calculations done by CalcHEP . The interactions of the photon are entered in the Vertices table along with all other Feynman rules (see Subsection 8.4.) The electric charge defined in the Aux column of the Particles table is only used to communicate with other programs that require it.
A 10&11. LaTeX(A) and LaTeX(A+) : This is where the L TEX symbol for the particle and antiparticle are entered. These symbols are used when A CalcHEP produces L TEX output for the Feynman diagrams that it constructs.

8.4

Interaction Vertices

The Vertices table contains the Feynman rules for the model. The first four columns (A1, A2, A3 and A4) specify the particles and antiparticles involved in the interaction. These must be the particle and antiparticle names defined in the Particles table. The last of these A4 may be empty, which specifies a three-point vertex. The first three columns must be nonempty. (The propagators are not specified in this table. They are hard coded. Section 8.6 contains further details.) The last two columns, Factor and LorentzPart define the vertex. If S is the action for a particular vertex, the vertex can be obtained by functionally differentiating with respect to the fields in the vertex as in A1[m1 ] (p1 ) A2[m2 S = (p2 ) A3[m3 ] (p3 ) [ A4[m4 ] (p4 )]
-1 T

(7)

]

(2 )4 4 (p1 + p2 + p3 [+p4 ]) [C

where pi and mi refer to the 4-moment and Lorentz indices (if any.) The square brackets ([ and ]) denote parts of the expression which only appear in some vertices, but not others. The Fourier transform is defined as A(x) = d4 k - e (2 )4 106
ik·x

] C olorS tructure · F actor · Lorentz P art ,

A(k ) .

(8)


The other pieces of Equation (8.4) will be discussed below. The Factor column is where the F actor from Equation (8.4) belongs. This must be a rational monomial constructed from the model parameters, integer number and the imaginary unit (i). It is best to factor as much as possible from the Lorentz P art since the Lorentz P art of the Feynman diagrams is usually the most time consuming and memory intensive part of the calculation. The LorentzPart column is where the Lorentz P art from Equation (8.4) belongs. It must be a Lorentz tensor or a Dirac -matrix expression. The coefficients of the terms in this expression can be polynomials of the model parameters and scalar products of the momenta. The division operator (/) is forbidden from this column. It must be transferred to the Factor column or into a model parameter. The notation for Lorentz indices, momenta, contractions, and the metric tensor are similar to those in the Reduce package. The Lorentz indices of the fields in the vertex are labeled by a m for the first index and a M for the second index followed by the particle number for that vertex. For example, a vector field in the third column would have Lorentz index m3 while a tensor field in the second column would have Lorentz indices m2 and M2. The momenta use the symbol p followed by the same number. For example, a scalar field in column 1 would have momentum p1. A dot (.) is placed between two momenta, a momentum and its Lorentz index, and between two Lorentz indices (for the metric tensor.) Here are some examples: p1.p2 means p1µ pµ 2 p1.M2 means pM2 1 m1.m2 means gm1 m2 . Dirac -matrices are written with a G and the momentum or Lorentz index in parentheses, while the 5 matrix has a 5 without parentheses. For example, we have: G(m1) means m1 G(p2) means µ p G5 means 5 The 5 matrix is defined by 5 = i 0 1 2 3 . 107



The anti-commutation relation for the gamma matrices in CalcHEP notation is G(v1) G(v2) + G(v2) G(v1) = 2 v1.v2 , where v1 and v2 are either momenta or Lorentz indices. In the case of anti-commuting fields the functional derivative in Equation (8.4) is assumed to act from the right. The number of fermion fields in a vertex must be either two or zero. If the user would like to implement a four-fermion interaction, he/she must use an unphysical auxiliary field with a point-like propagator (see Subsections 8.3 and 8.6 for further details.) CalcHEP interprets the anti-particle spinor field as a C-conjugated particle field, rather than the Dirac conjugated field. These definitions are related to each other by T (9) = C -1 ¯ c which is the reason for the appearance of the C -1 matrix in Eq. (8.4). The particle and anti-particle fields can appear in the vertices in any order. Vertices can also contain two particle fields or two antiparticle fields. In other words, vertices that violate fermion number are allowed. Any fermion vertex can be written in two forms which depend on the order of the fermion fields. After permutation of the fermion fields, the LorentzPart is transformed according to G(v1 ) G(v2 ) . . . [G5] . . . G(vn ) (-G(vn )) . . . [G5] . . . (-G(v2 )) (-G(v1 )) , (10) where the order of the gamma matrices is reversed and each gamma matrix with a Lorentz index gets a sign change while the 5 matrix does not get a sign change. We note that the definition in Eq. (8.4), the Lorentz P art has the appropriate symmetry property when identical particles appear in the vertex. This symmetry is not checked by CalcHEP , and its absence will lead to the wrong results. Equation 10 can be used to check this symmetry in the case of two identical Ma jorana fields in one vertex. It should also be noted that in the case of n identical particles, the functional derivative (8.4) gets a corresponding factor of n! which should be included in the vertex.
T

108


The totally antisymmetric Levi-Civita tensor can be used in vertices. It is given by eps(v1,v2,v3,v4), where v1, v2, v3, and v4 are either momenta or Lorentz indices. The C olorS tructure from Eq. (8.4) is not included in the Vertices table. CalcHEP substitutes it in automatically according to the following rules: If all the particles in the vertex are color singlets, CalcHEP inserts 1. If the vertex contains one fundamental and one antifundamental (3 â ¯), 3 the identity matrix is inserted. If the vertex contains two color octet fields (8 â 8), the identity matrix is inserted. If the vertex contains three color octet fields (8 â 8 â 8), it inserts -if (a1, a2, a3)
a1 where fa2,a3 is the structure constant of SU(3) and the color adjoint indices a1, a2, and a3 are taken in the same order they appear in the Vertices table. If the vertex contains a fundamental, an antifundamental, and a color adjoint field (3 â ¯ â 8), CalcHEP inserts 3

1¯ (i, j, a), 2 where (¯, j, a) are the Gell-Mann matrices. Other color structures are not i implemented in CalcHEP, however, it is possible to construct them by means of an unphysical auxiliary field (see Subsections 8.3, 8.6 and 13 for further details.)

8.5

External functions and libraries.

The Libraries table is used to link external code and declare external functions. Lines beginning with a % are comments and are ignored by CalcHEP. Lines beginning with the keyword extern are considered to be prototypes of external functions defined in external code. These lines should include the full function prototype (including the semicolon at the end) on one line in the syntax of the C programming language. These functions can be used in the definitions of the dependent parameters in the Constraints table (see Subsection 8.2.) External code and libraries can be linked to the numerical code by using this table as well. The user should enter a list of the external code, 109


libraries and any flags necessary for his/her model in this table. Some typical examples of external code are user defined kinematical variables which can be used in cuts and histograms (see Subsection 5.7) and the LHAPDF libraries (see Subsection 5.3.) All lines which do not start with % or extern are concatenated and passed to the linker which creates the executable for numerical calculations. These lines can make use of environment variables. CalcHEP defines two in it's startup scripts (calchep and calchep_batch) that the user can make use of. They are $CALCHEP which is the path to the CalcHEP root directory and $WORK which is the path to the user's working directory. The user can also make use of his/her own environment variables. These environment variables can be used with or without parentheses (either $CALCHEP or $(CALCHEP) is acceptable.) CalcHEP will translate between the two depending on whether they are used in a Makefile or in a shell environment. For functions presented in the SLHAplus package (section (9.1) prototyping and special link instructions are not needed.

8.6

Propagators

CalcHEPdefines the propagators for particles of spin less than or equal to two. These propagators are hard coded and not modifiable in by the user unless specified below. Spin 0: The spin-0 propagator is given by < 0|T [A(p1 ), A+ (p2 )]|0 >= c (p1 , p2 , M ) = Spin 1/2: The spin-1/2 propagator is given by ¯ < 0|T [A(p1 ), A(p2 )]|0 >= ( p1 + M ) c (p1 , p2 , M ) , where p = pµ µ . If the fermion is defined to be purely left or right handed (see Subsection 8.3), the propagator is defined as p 1 ( 1 ± 5 ) c (p1 , p2 , M ) . 2 Spin 1: In unitary gauge, the propagator is given by < 0|T [Am1 (p1 ), (A
m2 +

i (p1 + p2 ) . (2 )4 (p2 - M 2 ) 1

) (p2 )]0 >= -(g 110

m1 m2

+

p

m1 m2 1 p2 M2

)c (p1 , p2 , M ), (11)


while in t'Hooft-Feynman gauge, it is given by -g
m1 m2

c (p1 , p2 , M ) .

We remind the user that a massless vector particle must be defined as a gauge boson (see Subsection 8.3.) Spin 3/2: The spin-3/2 propagator is given by ¯ < 0|T [Am1 (p), Am2 (p )]|0 >= -3( p + M )(g - (
m1 m1 m2

+

pm1 )( p - M )( M

m2

+

pm2 ) c (p, p , M ) M
m1 m2

-

p

m1 m2

p ) M2

(12)

Spin 2: The spin-2 propagator is given by < 0|T [Am1 µ1 (p), (A -3(g
m1 µ
1

m2 µ

2

)+ (p )]0 >= (g +g
1

m1 m2

+2
2

p

m2 µ

p

2

m2 µ

2

p

m1 µ

p

1

+g
2

m1 µ

p µ1 p µ 2 p )(g µ1 µ2 + 2 ) M2 M2 pµ2 pµ1 + g m2 .µ1 pm1 pµ2 )M -2 p
m1 m2 µ1 µ

+3(g

m1 µ

g

m2 µ

2

+g

m1 µ

g

m2 µ

1

-g

g

2

) c (p, p , M )

Auxiliary propagators: When massive particles are marked as auxiliary fields (see Subsection 8.3) by putting a * in the Aux column, the momentum dependence of the propagator is removed. c (p1 , p2 , M ) is replaced with (p1 + p2 ) (2 )4 i M 2 and all terms proportional to the particle momentum p in the numerator are dropped. Auxiliary particles cannot appear as incoming or outgoing states. They are only used to implement point-like interactions.

8.7

Ghost and Goldstone fields propagators

In addition to the fields enumerated in the Particles table, the Lagrangian can depend on a few other fields. In particular, gauge theories have FaddeevPopov ghosts [48] and, if broken, Goldstone bosons. Furthermore, complex color structures require a special tensor auxiliary field. All of these fields are automatically generated by CalcHEPwhere appropriate by adding a final .c, .C, .f, .t or .T as described below. 111


Faddeev-Pop ov ghosts and anti-ghosts are generated for any gauge vector particle which is marked by a g in the 'Aux' column of the Particles table (see Subsection 8.3.) The names of the Faddeev-Popov ghosts and antighosts are constructed by adding a .c and .C, respectively, to the particle name. For example, if the gluon is named G, the gluonic ghost is named G.c and the gluonic anti-ghost is named G.C. The ghosts and anti-ghosts corresponding with the W+ and W- gauge bosons are W+.c, W+.C, W-.c and W-.C. Hermitian conjugation transforms a Faddeev-Popov ghost into a ghost with the same sign whereas it changes the sign of the anti-ghost. For example, (G.c)+ (G.C )+ (W+.c)+ (W+.C)+ = = = = G.c -G.C W-.c -W-.C

Faddeev-Popov (anti)ghosts are anti-commuting, scalar fields 6 . The nonzero propagators for these fields are: < 0|T [A+.c(p1 ), A.C (p2 )]|0 >=< 0|T [A+.C(p1 ), A.c(p2 )]|0 >= c (p1 , p2 , M ), where A+ is the conjugate of A and M is the mass of the parent particle (we are assuming Feynman gauge.) The reason CalcHEP introduces the Faddeev-Popov ghosts at tree-level is that it sums over the unphysical polarizations of the gauge bosons in the external states as well as the physical polarizations (see Appendix C) in order to reduce precision loss due to large cancellations. The Faddeev-Popov ghosts (and the Goldstone bosons for a broken gauge theory) are required to cancel the unphysical polarizations. (See [48] for further details.) Goldstone b oson are related to broken symmetries. In the case of broken gauge symmetries, they become the longitudinal degrees of freedom of the gauge boson. CalcHEPautomatically generates these fields for massive vector bosons by appending a .f to the end of the gauge boson name. For example, the W+ and W- gauge bosons have the Goldstone bosons W+.f and W-.f associated with them. These Goldstone bosons are commuting, scalar
6

The well-known spin-statistics relation is not valid for unphysical fields.

112


fields that satisfy the same conjugation rules as the gauge boson they belong with. For example, (W + .f )+ = W - .f . The nonzero propagators for these fields are: T [A+.f(p1 ), A.f (p2 )] = c (p1 , p2 , M ), where A+ is the conjugate of A and M is a mass of the gauge boson (again we consider Feynman gauge.) Auxiliary tensor field. Whereas the Faddeev-Popov ghosts and Goldstone bosons are standard elements of modern quantum field theory, this auxiliary tensor field was invented by the original CalcHEP authors in order to construct complicated color vertices such as the four-gluon vertex. These auxiliary fields are automatically generated whenever a particle is defined with a nontrivial S U (3) color representation by adding .t and .T to the particle name. Two auxiliary tensor fields are generated automatically and are typically used for a constraint and a Lagrange multiplier. These auxiliary fields are commutative and satisfy the same conjugation rule as the parent particle, while it is Lorentz-transformed like a tensor field. The propagator is point like < 0|T [A+.t
m1 M
1

(p1 ), A.tm2

M

2

(p2 )]|0 >=

1 (p1 + p2 ) g (2 )4 i

m1 m2

g

M1 M

2

.

(13) Further information about the use of the Faddeev-Popov ghosts, Goldstone bosons and auxiliary tensor fields can be found in Appendix (E).

113


9
9.1

To ols for mo del implementation.
The SLHAplus package

The SLHAplus[57] package included in CalcHEP allows to facilitate realization of constraints. Initially the package was designed for SLHA interface. In several models of elementary particles we have noticeable loop corrections to particle masses. There are several packages which allow to perform such calculations for MSSM-like models: Isa jet, SoftSusy[59], Spheno[60], SuSpect[61], NMSSMTools[62]. There is an agreement to pass input parameters and the calculated particles spectra and mixing matrices via text files in a special format SLHA[37, 38]. Below is an example of a SLHA input file for MSSM spectrum calculation with input parameters at GUT scale. Block MODSEL 1 1 Block SMINPUTS 5 4.23000000E+00 6 1.73100000E+02 Block MINPAR 1 1.20000000E+02 2 5.00000000E+02 3 1.00000000E+01 4 1 # sign(mu) 5 -3.50000000E+02 # # # mb mt # m0 m1 ta Select model sugra Standard Model inputs (mb) SM MSbar op(pole) Input parameters /2 nb

# # # # #

# A0

In order to create such file one can use the following records in Constraints table open input input input input input input input input |openAppend("suspect2_lha.in") 1|aPrintF("Block MODSEL # Select model\n") 2|aPrintF(" 1 1 # SUGRA\n") 3|aPrintF("Block SMINPUTS Standard Model inputs\n") 4|aPrintF(" 5 %E #mb(mb) SM MSbar\n", MbMb) 5|aPrintF(" 6 %E #mt(pole)\n",Mtp) 6|aPrintF("BLOCK MINPAR # Input parameters\n") 7|aPrintF(" 1 %E # m0\n",Mzero,Mhalf) 8|aPrintF(" 2 %E # m1/2\n", Mhalf) 114


input9|aPrintF(" 3 input10|aPrintF(" 4 input11|aPrintF(" 5 The aPrintF command turn value is a number above generate the file " pect which reads SLHA "suspect2 lha.out".

%E %d %E

# tb\n",tb) # sign(mu)\n", (int)sgn) # A0\n",A0)

is similar to C-printf family functions. Its reof printed symbols and not useful. Instructions suspect2 lha.in". Next instruction launches SuSinput file and writes in its turn SLHA output file

sys |System("%s/suspect2.exe",".") Second argument of System command can be used to specify path to SuSpect. Generated output file in case of SuSpect is "suspect2 lha.out". It contains information stored in Blocks. For instance BLOCK MASS # Mass Spectrum # PDG code mass particle 25 1.15987932E+02 #h 1000006 7.67852128E+02 # ~t_1 2000006 1.00613369E+03 # ~t_2 1000022 2.05916966E+02 # ~chi_10 1000023 3.89679950E+02 # ~chi_20 BLOCK STOPMIX # Stop Mixing Matrix 11 4.29327465E-01 # cos(theta_t) 12 9.03148896E-01 # sin(theta_t) 21 -9.03148896E-01 # -sin(theta_t) 22 4.29327465E-01 # cos(theta_t) To read this file one can use record in Constraints table rd |slhaRead("suspect2_lha.out",0) The second argument of slhaRead specify kind of data to read. In general case second argument is m1 + 2m2 + 4m4 + 8m8 where m1 0/1 overwrite all / keep old data m2 0/1 ignore mistake / stop in case of mistake in input file m4 0/1 read DECAY / don't read Decay m8 0/1 read BLOCK / don't read Blocks To get values of parameters after reading one can use the slhaVal function 115


M M Z Z Z Z

s s t t t t

t t 1 1 2 2

1 2 1 2 1 2

| | | | | |

s s s s s s

l l l l l l

h h h h h h

a a a a a a

V V V V V V

a a a a a a

l l l l l l

( ( ( ( ( (

M M " " " "

A A S S S S

S S T T T T

S S O O O O

, , P P P P

M M m m m m

Z Z i i i i

, , x x x x

1 1 " " " "

, , , , , ,

1 2 M M M M

0 0 Z Z Z Z

0 0 , , , ,

0 0 2 2 2 2

0 0 , , , ,

0 0 1 1 2 2

6 6 , , , ,

) ) 1 2 1 2

) ) ) )

% mass of stop1 % mass of stop2 % stop mixing matrix

Here the first argument of slhaVal is the name of Block, the second one is the scale parameter (in this example the scale parameter is not specified in BLOCK), the third parameter fixes the number of key parameters, the key parameters themselves follow. An SLHA file also can contain information about particle widths and decays channels. If such information is downloaded (m4=0), CalcHEP uses the downloaded values for particle widths instead of its automatic calculation. The SLHAplus package in CalcHEP is considered as a collection of tools for realization of Constraints. Except of SLHA interface it contains routines for matrix diagonalizing adapted for direct implementation in CalcHEP tables. Using this part of SLHAplus one can diagonalize real symmetric matrix ( for multiplet of real scalar fields), complex self-conjugated matrix( for complex boson fields), generic complex matrix ( for spinor Dirac fields7 ), real matrix ( for spinor fields ). For example id| rDiagonal(d,M11,M12,..M1d,M22,M23...Mdd)

diagonalizes a real symmetric matrix of dimension d. The d(d + 1)/2 matrix elements, Mij (i j ), are given as arguments. The function returns an integer number id which serves as an identifier of eigenvalues vector and rotation matrix. Then MassArray(id, i) returns the eigenvalues mi ordered according to their absolute values, and MixMatrix(id,i,j) returns the rotation matrix Rij where Mij =
k

Rk i m k R

kj

Another part of SLHAplus package supports implementation of QCD running couplings. It is initiated by the command
For spinor field we can rotate independently left and right components. So, two unitary rotation matrices need for diagonalizing of generic fermion mass matrix.
7

116


LamQCD

|

initQCD(alphaSMZ, McMc, MbMb,Mtot)

Here input parameters are running QCD coupling at MZ, running masses for b- and c-quarks at their own scales: M c(M c), M b(M b), and t-quark pole mass. Return value is QC D . After initiation one can use functions alphaQCD(Q) to calculate QCD coupling at any scale, McRun(Q), MbRun(Q), MtRun(Q) -to calculate running masses, and McEff(Q), MbEff(Q), MtEff(Q) which calculate quark masses for effective Yukawa couplings. These effective couplings lead to automatic account of loop corrections for Higgs width calculation. Functions presented in the next section also belong to SLHAplus package.

9.2
9.2.1

Effective Higgs - and glu-glu interactions.
Construction of effective vertexes.

Higgs interaction with electric or color charged particle leads to loop induced h- - and h-glu-glu effective vertexes which are responsible for very important signal of Higgs decay and Higgs production in and hadron colliders. At the lowest pertutbative order these vertexes can be constructed by the rules [63, 64]: ¯ h Mv h v µ v ¯
µ

c 2 µ Mh 2 )/M f q hF Fµ A1/2 ( 2 8 4M

(14) (15) (16) (17)

Mh 2 - c 2 µ )/Mv fv qv hF Fµ A1 ( 2 16 4Mv c 2 µ Mh 2 Ms hss ¯ )/Ms f q hF Fµ A0 ( 2 16 s s 4Ms c 2 µ ~ ~ Mh 2 ¯ h i5 )/M f q hF Fµ A1/2 ( 2 16 4M

Here presents electromagnetic or strong coupling. f c is a color factor which depends on color structure of virtual particle. In case of fundamental SU(3) representation f c is 3 for photon vertexes and 1/2 for gluon ones. For adjoin representation f c is 8 and (-2) correspondingly. q should be loop electric charge for and 1 for gluon channel. ~ Functions A1/2 , A1 A0 , A1/2 are presented in [64]. These functions are realized in SLHAplus package and have names HggF, HggV, HggS, HggA 117


correspondingly. In general these functions return complex value, the imaginary part appears if argument is larger than one. In CalcHEP notation hFµ (A)F µ (A) is realized as P1 |P2 |P3 |P4 |> Factor <|>dLagrangian/dA(p1)dA(p2)dA(p3) A |A |h | | -4*lambda |(p1.p2*m1.m2-p1.m2*p2.m1) ~ TP-odd interaction hFµ (A)F µ (A) reads A |A |h | | -4*lambda |eps(p1,m1,p2,m2)

CalcHEP assumes that all vertexes are self-conjugated. From other side affective hVV coupling can be complex. We propose to replace complex coupling on it absolute value after summation of all amplitudes. One expects exactly the same result after amplitude squaring. 9.2.2 QCD corrections to h .

There are important QCD correction for h effective vetrex if this vertex is originated by color particles loop. This correction can be presented as a overall factor for coupling 1+ s Mh 2 ) Cl ( 4Ml2 (18)

where Ml is mass of loop particles. The Cl functions are known for vector, pseudo-vector, and scalar interactions if loop particle has color dimension 3. The formulas are rather cumbersome and have simple analytical forms only in asymptotic. SLHAplus contains HgamF( ), HgamA( ), HgamS( ) complex functions which interpolate tabulated data and present Cl functions for fermion loop with scalar interaction, fermion loop with pseudo-scalar interaction and scalar particle loop correspondingly. The HDECAY package was used to generation these tables. The appropriate QCD scale for s is Mh /2. It allows effectively take into account large logarithmic corrections of next orders [63]. 9.2.3 . 118 QCD corrections for h-glu-glu


The h GG process at NLO level contains radiative corrections which are plagued by infrared divergence which in its turn cancel infrared divergence of loop diagrams caused by virtual gluons attached to external legs. This is a reason why QCD NLO corrections are presented for partial widths and cross sections, but not for effective vertex as in the h case. CalcHEP user has to implement LNO factor to vertex in form 1+ s Fn
lo

where Fnlo presents NLO contribution for hGG partial width. QCD correction for hGG interation induced by heavy quark loop are known in NNLO precision. In case of scalar (14) and preudo-scalar (17)interaction they are correspondingly [65], [66]
q ¯ Fnlqo =

95 7n - 4 6

f

+

M s 19 2nf ) log 370. - 47.nf + 0.9n2 - ( + f 8 3 M M 221 s 171.5 - 5 log + 12 M
2 f 2 h

2 f 2 h

(19) (20)

q ¯ Fnlo5 q =

The last expression is presented for nf = 5. Here for quark masses one has 3 to use the pole values [67] and s has to be calculated at Mh scale. The s QCD corrections to hgg vertex in case of massive fermion loop Mf M h/2 was calculated in [68] and appears about 1%. The NLO correction to scalar loop (16) ( SUSY squars) is known with q ¯ NLO precision and appears to be 17/6 larger that Fnlqo [69]
s Fnlso =

319 7n - 12 6

f

(21)

Formulas (19, 20, 21) were obtained in the limit Mf ,s << Mh /2. But a posteriory it appears that they work well even out of this limit. See example of implementation of loop induced Higg boson vertexes in the SM(CKM=1 with hGG/AA) model.

9.3

LanHEP: automatic generation of mo dels.

The LanHEP[35] package allows automatic generation of CalcHEP model files. It starts from model definition in terms of particle multiplets and performs 119


substitution of physical particle fields in multiplets. LanHEP also checks at the symbolic level the absence of linear terms and at the numerical level the absence of off-diagonal terms in the quadratic part of Lagrangian. Also LanHEP compares diagonal quadratic terms with declared particle masses. LanHEP allows to avoid a large number of mistakes which could appear in the derivation of Feynman rules by hand. The package is disposed at http://theory.sinp.msu.ru/~semenov/lanhep.html The downloaded lhepNNN.tgz file contains the source code and examples. As an example we present here part of a LanHEP input file for the Inert Doublet Model model describing only new particles and new interactions beyond the Standard Model. The IDM[70, 71] contains two S U (2) â U (1) scalar doublets. In the unitary gauge H1 = 0 v + h/ 2 , H2 = H+ (X + iH3 )/ 2 (22)

where H1 is the SM Higgs doublet and H2 is a new inert doublet which does not couple to quarks and leptons. Unlike the SM scalar doublet it does not develop a vacuum expectation value. H + , X , and H3 are the new fields of the model. The IDM Lagrangian contains only even powers of the doublet H2
2 L = (S M terms) + Dµ H2 Dµ H2 - µ2 |H2 |2 2 22 -2 H2 - 3 H1 H2 - 4 |H1 H2 |2 - 5 Re[(H1 H2 )2 ]

(23)

Because of the H2 -H2 symmetry, the lightest new particle is stable. In the following example we will use the masses of new particles as well as 2 and L = (3 + 4 + 5 )/2 as independent parameters, The couplings µ, 3 , 4 , 5 can be expressed in terms of the independent parameters. LanHEP source file for IDM should contain description of new free parameters parameter MHX=111,MH3=222,MHC=333. parameter laL=0.01, la2=0.01. Declaration of constrained parameters. 120 % Declaration of new masses % Declaration of new couplings


% p % p p p

mu^2 as a function of masses arameter mu2=MHX**2-laL*(2*MW/EE*SW)**2. constraints for couplings arameter la3=2*(MHC**2-mu2)/(2*MW/EE*SW)**2. arameter la5=(MHX**2-MH3**2)/(2*MW/EE*SW)**2. arameter la4=2*laL-la3-la5. New particles of the model

scalar '~H3'/'~H3':('odd Higgs',pdg 36, mass MH3, width wH3 = auto). scalar '~H+'/'~H-':('Charged Higgs',pdg 37,mass MHC,width wHC=auto). scalar '~X'/'~X':('second Higgs',pdg 35,mass MHX,width wHX=auto). Now we use physical fields defined above to construct second doubet of (23) let h2 = { -i*'~H+', H2 = { i*'~H-', ('~X'+i*'~H3')/Sqrt2 }, ('~X'-i*'~H3')/Sqrt2 }.

At the next step we define covariant derivatives for new doublet. Below B1 is SM U (1) gauge field and WW={W-,W3,W+} is SM S U (2) triplet. g1 and g are corresponding couplings; taupm is generator of S U (2) group in {W-,W3,W+} basis. let Dh2^mu^a = (deriv^mu+i*g1/2*B1^mu)*h2^a + i*g/2*taupm^a^b^c*WW^mu^c*h2^b. let DH2^mu^a = (deriv^mu-i*g1/2*B1^mu)*H2^a -i*g/2*taupm^a^b^c*{'W-'^mu,W3^mu,'W+'^mu}^c*H2^b. Terms of Lagrangian (23) can be written in LanHEP notation by l l l l l l t t t t t t e e e e e e r r r r r r m m m m m m D H m l l l l 2 u a a a a * 2 2 3 4 5 D * * * * / h h ( ( ( 2 2 2 h h h * . * 2 1 1 ( % Kinematic and other terms. H * * * h 2 H H H 1 . 2 1 2 * ) ) ) H * * * 2 * ( ( ) 2 h H * . 2*H2). 1*h2). *2 + AddHermConj.

where h1 and H1 present the SM Higgs doublet and its conjugation. Indeed all models used by CaclHEP were constructed with LanHEP. Compilation of LanHEP source file for CalcHEP can be done by the command 121


lhep



-ca -evl 2

Other packagers which facilitate the implementation of complicated models for CalcHEP are FeynRules [36] and SARAH [72].

9.4

FeynRules

122


10

CalcHEP as a generator of matrix elements for other packages.

Here we present tools which allow to compile Squared Matrix Elements for different processes and calculate them for needed values of input parameters and momenta. Actually we presents tools which allow to construct such packages as micrOMEGAs where matrix elements generated by CalcHEP are used for calculation of different observables related to Dark Matter. We assume that user writes a corresponding main program which can be compiled by $CALCHEP/bin/make_main mainProgram.c See example of such main program in $CALCHEP/utile/main_22.c. After compilation executable program mainProgram has to appear. Because CalcHEP uses run-time generated code for width calculation, a tool which works with CalcHEP matrix elements has to have an opportunity to generate new matrix element. If so, it is quite naturally to provide user an option to generate any matrix element in run-time. In the same time the user can link preliminary generated matrix elements as well.

10.1

Cho osing of mo del

The first command of the main routine should be int setModel(char*modelFilesDisposition,int modelNumber) For example, if ones prefer to work in CalcHEP working directory, the command can be setModel("models",1) The setModel command generates aux subdirectory which is organised as CalcHEP working directiry with subrirectories mo dels, results, tmp and directory so_generated to store compiled code of matrix elements. setMo del has to generate VandP.so file in directory so_generated which contains compiled constrains of the model, list of variables, and list of particles. In case of problems not rezo value is returned. The user can change a model from session to session or even during one session, but any time he changes the model, codes of matrix elements obtained before will be cleaned.

123


10.2

Setting of parameters and calculation of constraints.

Three functions can be used to set the value of independent parameters: int assignVal(char*name,double val) void assignValW(char*name,doube val) assigns value val to parameter name. The function assignVal returns a nonzero value if it cannot recognize a parameter name while assignValW writes an error message. int readVar(char*fileName) reads parameters from a file. The file should contain two columns with the following format name value

readVar returns zero when the file has been read successfully, a negative value when the file cannot be opened for reading and a positive value corresponding to the line where a wrong file record was found. After parameter assignment is completed, in has to call int calcMainFunc(void) routine with calculates public constraints. Zero return value of this routine means that all constraints where sucsessfully calculated. It non-zero err value is returned than there is a problem in calculation of varNames[err] parameter. The following routines are used to display the value of independent and constrained public parameters: int findVal(char*name,double*val) finds the value of variable name and assigns it to parameter val. It returns a non-zero value if it cannot recognize a parameter name. double findValW(char*name) just returns the value of variable name and writes an error message if it cannot recognize a parameter name. The variables accessible by these commands are all free parameters and the constrained parameters of the model (in file model/func1.mdl) treated as public. For treating of independent and constrained physical parameters the basic variables are: int nModelVars; int nModelFunc; char**varNames;

// contains nModelVars+nModelFunc+1 elements. // The zero one is not used 124


REAL *varValues; // contains nModelVars+nModelFunc+1 elements. // type REAL is defined in Type REAL is defined in $CALCHEP/../../include/nType.h. By default REAL means double

10.3

Testing of particle contents.

char* pdg2name(int nPDG) returns the name of the particle whose PDG code is nPDG. If this particle does not exist in the model the return value is NULL. int pNum(char * name) returns PDG code of particle defined by name. If the input parameters does not corresponds to any particle, then return value is zero. int qNumbers(char*pName,int*spin2,int*charge3,int*cdim) returns the quantum numbers for the particle pName. Here spin2 is double spin of the particle; charge3 is three times the electric charge; cdim is the dimension of the representation of S U (3)c , it can be 1, 3, -3 or 8. The value returned is the PDG code. If pName does not correspond to any particle of the model then qNumbers returns zero. double * pMass(char*pName) returns numerical value of the particle mass. Basic variables which defines particles are int nModelParticles; ModelPrtclsStr*ModelPrtcls; Structure ModelPrtclsStr is defined in $CALCHEP/include/VandP.h

10.4

Decay widths and branching fractions.

The calculation of particle widths, decay channels and branching fractions can be done by the function double pWidth(char*pName, returns directly the particle wid ically accessible then only these pWidth compiles all open 1->3 txtList th. If the channels channels 125 branchings) 1->2 decay channels are kinematare included in the width. If not, and use these for computing the


width. If 1->3 channels are closed too, then 1->4 channels are considered. An improved routine with a better matching between the 1->2, 1->3 and 1->4 calculations is kept for the future. The returned parameter branchings gives an address where information about the decay channels is stored. The txtList type is presented in $CALCHEP/c_sources/dynamic_me/include/dynamic_cs.h If SLHA file with decay information was used before pWidth call, then pWidth will not calculate widths using CalcHEP matrix elements, but will display information stored in the file. void printTxtList(txtList branchings,FILE*f) writes to open file branching fractions obtained by pWidth. doouble findBr( txtList branchings , char * pattern) finds the branching fraction for a specific decay channel specified in pattern, a string containing the particle names in the CalcHEP notation. The names are separated by commas or spaces and can be specified in any order. int slhaDecayPrint(char * pname,FILE*FD) Calculates the width and branching ratios of particle pname and writes down the result in SLHA format. The return value is the PDG particles code. In case of problem, for instance wrong particle names, this function returns zero. This function just present another output format for pWidth/printTxtList.

10.5

Compilation of new pro cesses.

Generic procedure for matrix element compilation reads
numout*getMEcode( int twidth, // // int UG, // char*Process, // char*excludeVirtual,// char*excludeOut, // char*libName) // flag which forces Breit-Wigner form of t-channel propagators flag which forces Unitary gauge process name list of particles which forbidden in propagators list of particles which forbidden as outgoing ones name of shared library (without terminating ".so")

In case of success result of the compilation is stored in the library aux/so-generated/libName.so. If the library libName already exists, it is not recompiled and the correspondence between the contents of the library and the Process parameter 126


is not checked. libName is also inserted into the names of routines in the libName.so library. Thus libName can not contain symbols that cannot be used in identifiers, for example the symbols {+ - /}. The getMEcode return address of computer memory where compiled code and auxilary programs are stored. If compilation was not successful then return value is NULL. It can be in case when input process is absent in the model. User can find definition of struct numout in file dynamic cs.h. We will not explain this structure but give some examples of it usage. Codes of matrix elements are not related directly with parameters of the model describe above. So,before we start to work with SQME codes we have to export numerical values of model variables to code of matrix elements. Let cc is a variable of numout* type obtained by getMEcode procedure. Then export of parameters can be done by the command for(i=1;i<=cc->interface->nvar;i++) if(cc->link[i]) cc->interface->va[i]=*(cc->link[i]); Number of compiled subprocesses and number of incoming and outgoing particles for these subprocesses can be detected by int procInfo1(nuout*cc,int*nproc,int*n Particle contents for given subprocess (1 nsub int procInfo2(numout*cc,nsub,char**pNa Here pName and Masses are arrays of nin + nout particle names and particle masses. in,int*nout) ntot) can be obtained by me,REAL*Masses) elemennts which present

10.6

Calculation of matrix elements.

To calculate matrix element one has to fill particle momenta. Momenta are presented by one dimention array of type REAL which contains in turn 4momenta of incoming and outgoing partices. 4-momenta are started from energy (zeroth) component. Value of squared matrix element can be obtained by cc->interface->sqme(nsun,GG,pvect,&err); where cc is a pointed for compiled process; nsub - number of subprocess; GG is strong coupling (qcd = GG2 /(4 )); pvect - array of momenta; err 127


interger variable which contains error code after execution. Sumation over outgoing polarization and avaraging over incomings ones is performed.

128


11
11.1

CalcHEP output for Reduce, Mathematica and Form
General structure

In addition to writing C code, which has already been described, CalcHEP can output the results of the built-in symbolic calculation in a format suitable for the Reduce package [45], the Mathematica package [73] and the Form package []. We have attempted to present the results in a form which can easily be used for different purposes. All the squared diagram contributions for one subprocess are stored in one file. The subprocess number is appended to the file name. For example, the symb1.red and symb1.m files contain the symbolic expressions for the squared diagrams in the first subprocess in the syntax of Reduce and Mathematica , respectively. The output files have the following structure:
Initial declarations initSum() First diagram code addToSum() Second diagram code addToSum() . . . finishSum()

Initial declarations includes the declaration of variables for the momenta and conservation law relations for them, the declaration of the independent parameters involved in the calculation and their numerical values, the declaration of the dependent parameters and their substitution rules, and, finally, the declaration of the process. The momenta are named p1,p2,p3,... where p1 is the momentum of the first particle in the process, p2 is the momentum of the second particle and so on. The signs of momenta are defined in such a way that the sum of incoming momenta is equal to the sum of the outgoing momenta. The list of substitutions of numerical values for the independent parameters is stored in the variable parameters. The list of substitutions for 129


e M !M e ==>==\ /==<====!==<==\ /==>== P1 | | P4 ! P4 | | P1 | | ! | | E|A|m !m|A|E ==<==@-1---@==>====!==>==@---2-@==<== P2 P5 P3 ! P3 -P6 P2

Figure 14: An example of a pseudo-graphic representation of a squared diagram found in the symbolic expression code. the dependent parameters is stored in the variable substitutions. The lists of incoming and outgoing particles is stored in the variables inParticles and outParticles, respectively. After the initial declarations, the function initSum() is called. Then, the expression for each squared diagram is presented. After each squared diagram code, the function addToSum() is called. After all the squared diagrams are finished, the funciton finishSum() is called. These three procedures (initSum(), addToSum() and finishSum()) must be written by the user and loaded before the the process code is loaded. In this way, the user can decide how the code from the different diagrams is combined. Now we shall explain the structure of each squared diagram contribution. Each squared diagram begins with a pseudo-graphic image of the diagram such as in the e+ e- µ+ µ- example found in Fig. 14. This is followed by the assignments: · totFactor is a rational function depending on the model parameters; · numerator is a polynomial of the model parameters and scalar products of the momenta; · denominator is a product of the propagator denominators propDen(P,Mass,Width) where P, Mass, and Width are, respectively, the momentum, mass, and width of propagating particle. In the case that Width= 0, propDen 130


should be defined as (Mass2 - P2 ). The user can treat the W idth argument as he/she likes. The total contribution of a squared diagram is then: totFactor numerator . denominator

We note that, as was mentioned in Section 4.4, the result obtained by the summation of the diagrams must be symmetrized in the case of identical outgoing particles. This can be done, for example, by the f inishS um() procedure.

11.2

Reduce examples

We have prepared some example programs to work with the Reduce output. They are: · sum_cd.red which combines the expressions from the squared diagrams and presents it in a form with a single common denominator; · sum_22.red which combines the expressions from the squared diagrams and presents it as a sum of pole terms; · sum_int.red which combines the expressions fromt the squared diagrams and integrates it over the phase space and presents it as a total cross section. sum_22.red and sum_int.red only work with 2 2 processes. These files are stored in the $CALCHEP/utile directory. Suppose the symbolic output (symb1.red) for µ scattering (A,m->A,m) is prepared 8 . We copy the sum_cd.red, sum_22.red and sum_int.red files into our WORK directory and launch the Reduce program from within the results directory. We display the outcome of using Reduce with each of these example programs:
If the electron is massless, it leads to a divergence in the total cross section. For the purposes of this illustration, we therefore use a muon instead of an electron.
8

131


Example 1 If we use the sum_cd.red program, we will get:
in"../sum_cd.red"$ in"symb1.red"$ sum; % to load the summation package % to read the contributions of the diagrams % to write 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 *mm**2-p1.p2*p1.p3**3 + 2*p1.p2*p1.p3**2*mm**2 + p1.p3**2*mm**4)) /(propden(p1+p2,mm,0)**2*propden(p2-p3,mm,0)**2)$

Example 2 If we use the sum_22.red program, we will get:
in"../sum_22.red"$ in"symb1.red"$ sum; % to load the summation package % to read the contributions of the diagrams % to write the answer

2*ee**4*(4*sp(mm)**2*mm**4 + 8*sp(mm)*up(mm)*mm**4 + 4*sp(mm)*mm**2 + sp(mm)*t+ 4*up(mm)**2*mm**4 + 5*up(mm)*mm**2 - up(mm)*s + 1)$

where s = (p1+p2)2 , t = (p1-p3)2 and u = (p1-p4)2 are the Mandelstam variables and the functions sp,tp,up are defined as sp(x) = 1/(s - x2 ) tp(x) = 1/(t - x2 ) up(x) = 1/(u - x2 ) Example 3 If we use the sum_int.red program, we will get:
in"../sum_int.red"$ in"symb1.red"$ sum; % to load the summation package % to read the contributions of the diagrams % to write the answer for total cross section

(ee**4*(2*s**4*log(s/mm**2) + s**4 - 12*s**3*log(s/mm**2)*mm**2 + 14*s**3*mm**2 - 6*s**2*log(s/mm**2)*mm**4 - 16*s**2*mm**4 + 2*s*mm**6 - mm**8))/(16*s **2*pi*(s**3 - 3*s**2*mm**2 + 3*s*mm**4 - mm**6))$

132


Sometimes the result for the total cross-section includes a complicated expression of kinematic variables under the square root which appears as a result of the evaluation of the integrand limits: be_= (tmax-tmin)/s where s and t are Mandelstam variables. Substitution for be_ is not done. Instead variable beSquared = be_**2 is defined.

11.3
There perfor tion.) is the

Mathematica examples
following packages for Mathematica : sum_cd.m, sum_22.m and sum_int.m m the same task as the Reduce packages did (see the previous subsecThe following output was performed in Mathematica 3.0. SC[pi,pj] scalar product of momentum pi and pj.

Example 1 If we use the sum_cd.m program, we will get: In[1]:= <<"../sum_cd.m" In[2]:= <<"symb1.m" In[3]:= sum 4 4 3 4 2 Out[3]= (32 EE (2 SC[p1, p2] - 4 SC[p1, p2] SC[p1, p3] + Mm SC[p1, p3] + 2 2 SC[p1, p2] (2 Mm - SC[p1, p3]) SC[p1, p3] + 2 2 SC[p1, p2] SC[p1, p3] (-2 Mm + 3 SC[p1, p3]))) / 2 2 (propDen[-p1 - p2, Mm, 0] propDen[p2 - p3, Mm, 0] )

>

>

>

Example 2 If we use the sum_22.m program, we will get: 133


In[1]:= <<"../sum_22.m" In[2]:= <<"symb1.m" In[3]:= sum 4 2 2 4 4 4 2 EE (Mm + s) 2 EE t 8 EE Mm Out[3]= ---------------- - ------- + --------------- + 2 2 2 2 2 (Mm - s) Mm - s (-Mm + s + t) 4 4 4 2 42 2 (3 EE Mm + 6 EE Mm s - EE s ) -----------------------------------2 2 (Mm - s) (-Mm + s + t)

>

Example 3 If we use the sum_int.m program, we will get: In[2]:= <<"../sum_int.m" In[3]:= <<"symb1.m" In[4]:= sum 4 8 6 42 23 4 Out[4]= (EE (-Mm + 2 Mm s - 16 Mm s + 14 Mm s + s 2 2 4 2 2 Mm 2 2 3 2 s (-3 Mm - 6 Mm s + s ) Log[---])) / (16 pi s (-Mm + s) ) s

>

134


11.4 11.5

Form Reduce program

The original output of CalcHEP was for the Reduce program. CalcHEP would generate the squared diagram expressions and have Reduce expand, contract indices, trace gamma matrix chains and simplify the expressions. Later on, when the CalcHEP build-in symbolic calculator was created, the Reduce output became unnecessary. However, we still keep this output for testing purposes. The user does not see the internal details of the CalcHEP symbolic calculator and, so, it appears as a black box. On the other hand, the Reduce code that CalcHEP produces is written in a form that can be understood by humans and followed step-by-step in Reduce . The results of the Reduce calculation can then be compared with the results of the CalcHEP symbolic calculator as a test of its correctness (see Appendix B for details about the self tests.) In this subsection, we describe the structure of the Reduce output. The Feynman rules used in this output can be found in Appendix D. CalcHEP generates a separate file for each squared diagram. The files are named pNNN-MMM.red where NNN is the subprocess number and MMM is the diagram number. Each file begins with a declaration of the momenta and Lorentz indices. For example, % ----------- VARIABLES -----------------vector A,p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12,ZERO_; vector m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15,m16; % %--------- Mass shell declarations ----------MASS P1 = 0$ MSHELL P1$ MASS P2 = 0$ MSHELL P2$ MASS P3 = Mm$ MSHELL P3$ MASS P4 = Mm$ MSHELL P4$ %-------- Momentum substitutions -------Let p4 = +p1+p2-p3$ Let p5 = +p1+p2$ 135


Let

p6 = -p1-p2$

The vector A is used by the Reduce package to construct the 5 matrix as in 5 = G(ln,A). The vectors whose names begin with p are used for the momenta. The vectors whose names begin with m are used for the Lorentz indices. After the vector declarations comes the mass-shell declarations for the incoming and outgoing particles. This is followed by substitution rules that use momentum conservation to replace the internal momenta with the external momenta. The next thing in the file is a multiplicative factor for the diagram which includes a symmetry factor, a factor for averaging over the initial state helicities, a factor for the number of incoming fermions, a QCD factor and some model parameters that were factored out of the diagram expression. For example, in the case of e+ e- µ+ µ- we have %---------- Factors --------------SymmFact:=1/1$ % Diagram symmetry factor AverFact:=1/4$ % Normalization factor of polarization average FermFact:=1$ % (-1)**(number of in-fermion particles) ColorFact:=1/1$ % QCD color weight of diagram % totFactor_:=EE**4$ totFactor_:=totFactor_*SymmFact*AverFact*FermFact*ColorFact$ For the most part, these declarations are self-explanatory except, perhaps, for SymmFact. Generally, SymmFact = N/D where N is equal to 1 when the two diagrams in the squared-diagram are identical. Otherwise, this factor equals 2. D is a factorial connected with the presence of identical outgoing particles and partially reduced by a number of various possibilities to assign the momenta of the outgoing particles to the corresponding diagram lines. Each file includes both the main squared diagram and any that are related to it by replacement of a gauge boson with a Faddeev-Popov ghost or a Goldstone boson according to the Feynman rules for the model. In unitary gauge, these are removed. We note that all these diagrams have the same denominator. The evaluation of the expression for the diagram is started with an initialization of a variable for the sum of the numerators for these diagrams: 136


numerator_:=0 This is followed by each diagram in this set. The code for each diagram is preceded by a pseudo-graphical representation of the squared diagram (for example, see Fig.14.) In these pseudo-graphical representations, the name of each particle and it's corresponding momentum are written down near it's line. It's Lorentz index is written in the line. The code for each diagram is started with the fermion loop evaluation. CalcHEP moves along each fermion line, multiplying the vertex and propagator terms. The nospur instruction is declared before each loop evaluation to prevent Reduce from prematurely tracing the gamma matrix chains. If the result of this multiplication contains Lorentz indices which can be contracted, the program declares the corresponding vectors as indices by means of the index instruction. CalcHEP begins moving along the fermion lines in the direction opposite to the direction of the fermion flow arrows. When it encounters a vertex, it looks it up in the Vertex table. If it is moving against the fermion flow direction and the incoming fermion comes after the antifermion in the Vertex table, then CalcHEP enters the Lorentz part directly in the expression. If, on the other hand, the fermion comes before the antifermion in the Vertex table, then CalcHEP first transforms the vertex by means of the rule given in Eq. (10) and writes a comment stating that it has done this. For exam¯ ple, consider the vertex of a u, d and a W - . Suppose it is encoded in the Vertex table as |D |u |W- | (and its hermitian conjugate is encoded as |U |d |W+ |). If CalcHEP is moving against the fermion flow direction on a u quark line and because the u comes after the D in the Vertex table, the Lorentz piece is inserted without change. If, however, the vertex was encoded as |u |D |W- |, then the Lorentz piece would first be reversed, using Eq. (10), before being inserted into the expression. If, on the other hand, CalcHEP is moving with the fermion flow direction (perhaps after a Ma jorana or fermion number violating vertex) and the incoming antifermion comes after the fermion in the vertex, CalcHEP , again, enters the Lorentz part directly. If, however, the antifermion comes before the fermion, CalcHEP first transforms the vertex by means of Eq. (10) and writes a comment about the transformation. Using the same example vertex above, if CalcHEP is moving with fermion flow on a u quark line and the U comes before the d (as in |U |d |W+ |), the Lorentz piece is first 137


reversed before insertion. Because a Ma jorana fermion is its own antiparticle, the order does not matter in the case of a Ma jorana fermion vertex and the Lorentz piece is inserted directly. The same is true for a C-conjugate operator. Once the fermion chain is finished, the spur switch is restored and Reduce performs the -matrix trace. CalcHEP multiplies this trace by -4. The 4 is required because Reduce leaves this out of the gamma matrix trace. The -1 is due to the Feynman rules. The next step is the multiplication of the other vertices and the contraction of the Lorentz indices . The Lorentz indices that need to be contracted are declared by the Index instruction before the multiplication. An example of this fragment of code is: Index m2$ Vrt_3:=Vrt_3*Vrt_5$ RemInd m2$ This code instructs Reduce that vertex 3 is multiplied by vertex 5 and that Lorentz index m2 is contracted. The result of this multiplication is stored in the variable Vrt_3. In order to make the Reduce code produced by CalcHEP manage memory better, we declare the symbols m as vectors indices step by step as we perform the calculation. If two vertices are connected by the propagator of a massive vector particle treated in unitary gauge (see Eq. 11), the code is organized in the following way. CalcHEP first writes the code for the product with the indices contracted (the gµ piece of the propagator). It then writes the same product but with the pµ p /M 2 piece of the propagator. It then adds the pieces together. Below, we present an example of such a piece of code: I V R V V V V n r e r r r r d t m t t t t e _ I _ _ _ _ x 0 n L L R 0 m1$ :=Vrt_ d m1$ :=Vrt_ :=(Vrt :=(Vrt :=Vrt_ 1*Vrt_2$ 1 _ _ 0 $ Vrt_R:=Vrt_2$ L where m1=>(+P2+P3)/MZ)$ R where m1=>(+(-P2)+(-P3))/MZ)$ + Vrt_L*Vrt_R$

The end of the code for any diagram contains the instruction 138


numerator_:=numerator_ +DiagramFactor*GhostFact*Vrt_1 which adds it's contribution to the total. It also multiplies by the ghost factor, if any, where GhostFact = (-1)l+v where l is the number of loops of Faddeev-Popov ghosts and v is the number of vector field lines in the diagram. The (-1)v factor appears because the evaluations described above correspond to substituting (gµ - kµ k /M 2 ) for the propagator of the vector field whereas the correct expression has the opposite sign. The last step of the program is the assignment of the variable denominator_. It is expressed as a product of the terms propDen(P,Mass,Width) as explained in Subsection 11. Finally, the total result for the evaluated squared diagram is given by: totFactor_ numerator denominator

139


App endix A
A LTEX output

CalcHEP uses the Axodraw package by J.A.M. Vermaseren [44] to create A diagrams and plots in LTEX format. To use this package the Axodraw style should be included in the documentstyle statement. For example, \documentstyle[axodraw]{article} With kind permission of the author, we include a copy of the axodraw.sty file in the $CALCHEP directory. The Axodraw syntax is straight forward and the user can modify the CalcHEP output to fine-tune the picture. Other changes the user can make are to the line width, the scale of the picture, and the size of the characters. A The L TEX and Axodraw instructions are located at the beginning of the output. For example, { \small \SetWid \SetSca \unitle ....... t l n . h e g . { { t . 0 1 h . .7} .0} =1.0 pt . % % % % lette line line text r size control width control scale control position control

} Note that the \SetScale instruction influences the position of the whereas the \unitlength variable is responsible for the position of text. sequently, if the user would like to change the scale of the picture, he/sh to modify both of these settings in a consistent manner. For instance, crease the size of the picture by a factor of two, use the following: \SetScale{2.0} \unitlength=2.0 pt % picture size control % picture size control lines, Cone has to in-

A In the case of Feynman diagram output, CalcHEP substitutes the LTEX names of the particles as they are defined in the Particle table (see Section 8.3).

B

Self-check of the CalcHEP package

We have included a suite of tools for testing the CalcHEP package. Positive results from these tests signal that the CalcHEP package is working properly. 140


The tests described here involve the symbolic calculation and have been realized with the help of the Reduce [45] symbolic manipulation system. These test routines are stored in the $CALCHEP/utile directory. To use these tests, the user should, first, copy the test files into his/her working directory. The commands to run the tests should be executed from the same directory as the location of the test files (in the users working directory.)

B.1

Check of the built-in symb olic calculator

The first check is a comparison of the results of the CalcHEP symbolic calculator (see Section 11) against the results of the Reduce calculator (see Section 11.5). We take agreement between these results to mean that the CalcHEP symbolic calculator is working correctly. We note that the results of the Reduce code created by CalcHEP for the test can be viewed step by step as the calculation is performed by Reduce . The result can then be compared with the result of the CalcHEP symbolic calculator. This check is realized by means of the program check.red which must be started from within a Reduce session by the command in "check.red"; When doing this, it is assumed that the Reduce code for the diagrams and the corresponding symbolic expressions generated by CalcHEP are stored in the results directory in advance. The results of this check are saved in the message file. It consists of a list where each line contains a diagram number accompanied by the label OK or Error depending on the result of the comparison.

B.2

Comparison of results pro duced in two different gauges

A comparison of results produced in unitary gauge and t'Hooft-Feynman gauge is a very important, nontrivial test. Not only does this test check the CalcHEP symbolic calculator, but also the model implementation. In fact, we suggest that a test of gauge invariance always be performed for any new model implementation. To perform this test, we evaluate the symbolic sum of squared diagrams in the two supported gauges (unitary and t'Hooft-Feynman) for the SM and 141


compare the results. If the difference between these two calculations is nonzero, there is a mistake in the symbolic calculator or the model. The symbolic summation of the squared diagrams is performed by Reduce. This summation is the most difficult step of comparison because the sum of diagrams can be an extremely large complicated expression which is not easily simplified. To perform this test, a process should be calculated in unitary gauge and the results should be stored in results_/symb1.red. Then, the same process should be calculated in t'Hooft-Feynman gauge and the results should be stored in results/symb1.red. Finally, Reduceshould be started from the work directory (results_ and results should be subdirectories of the work directory) and the program cmp.red should be read in as in in "cmp.red"; This program will read in the expressions from results_/symb1.red and sum the squared diagrams. It will then read the expressions from results/symb1.red and sum the squared diagrams. It will then take the difference of the two expressions. If, after simplification, the difference is zero, it will print OK in the message file. Otherwise, it will write Error.

C
C.1

Ghost fields and the squared diagram technique for the t'Ho oft-Feynman gauge
The problem

Whenever we implement a new model with higher spin, we encounter a problem with asymptotic behavior of it's propagator at high energy. This can be solved in the case of a spin-1 gauge boson by use of the Goldstone bosons and Faddeev-Popov ghosts associated with it as we describe in this appendix. The unitary gauge propagator for a massive vector boson is given by i gµ - kµ k /m2 . (2 )4 m2 - k 2 (24)

where the (gµ - kµ k /m2 ) pro jects out the unphysical polarizations and leaves only the physical polarizations. This pro jection is necessary because we have used a 4-component vector field to describe a particle with 3 degrees 142


of freedom. Unfortunately, the kµ k /m2 term leads to a quadratic growth of the amplitude at high energies which, if left uncancelled, leads to a violation of unitarity and renormalizability. This problem is solved for vector fields in the framework of gauge field theories where the gauge symmetry leads to a cancellation between diagrams of the bad high energy growth [48]. However, numerical calculations have finite precision. If the cancellation is very large, although the cancelation is perfect in theory, the finite precision arithmetic can lead to partial cancellation and, consequently, incorrect results. An accompanying problem is that a symbolic calculation can lead to complicated expressions with the appearance of mutually cancelling terms. On the other hand, there is a freedom in the formulation of the Feynman rules for gauge theories resulting from an ambiguity in the gauge fixing terms [48]. 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 for vector particles takes the form i gµ . 4 m2 - k 2 (2 ) (25)

where the term with the bad high energy growth (k µ k /m2 ) is absent. The price for this solution is the appearance of three additional unphysical particles in the model. They consist of two Faddeev-Popov ghosts and one Goldstone boson. All three of them have scalar type propagators (however the ghosts have the opposite sign) with the same mass (m) as the gauge boson. In contrast to Eq. (24), the propagator given by Eq. (25) is not orthogonal to the temporal polarization state e0 = k /m , (26)

which is another way to see the appearance of additional unphysical state. The main principle of gauge invariance guarantees [48] that an expression for the amplitude should be the same for any gauge if only physical incoming and outgoing states are considered.

C.2

Incoming and outgoing ghosts

Generally, the t'Hooft-Feynman gauge solves the problem of large cancellations for the internal states. But, when calculating processes with incoming 143


or outgoing massive vector particles, we meet a similar problem in the external states. Each diagram is multiplied by the vector boson polarization vectors. These polarization vectors (e1 , e2 , e3 ) constitute an orthonormal basis in the sub-space orthogonal to the vector boson momentum k . By considering the relation e1 e1 + e2 e2 + e3 e3 = kµ k /m2 - gµ (27) µ µ µ we can see that at least one of the polarization vectors grows as k /m for any choice of polarization basis. Let vector k have the components k = ( m2 + p2 , 0, 0, p) . Then, the polarization vectors can be chosen as e1 = (0, 1, 0, 0) ; e2 = (0, 0, 1, 0) ; e3 = (p/m, 0, 0, 1 + p2 /m2 ) , (29) (30) (31) (28)

The first two vectors correspond to spatially transverse polarizations while the third corresponds to the longitudinal polarization. We see that the longitudinal polarization grows as k /m and becomes large for large momentum. It may imply a rapid increase in the cross-section in processes with longitudinal polarizations at high energies for effective theories or the appearance of large cancellations between various diagrams. Indeed, for a gauge theory, the second case is realized and, hence, we again have a problem with finite precision calculations. As in the previous case, we see that the problem is related to the pro jection operator in Eq. (27) and wonder whether we might use gauge invariance to solve this problem too. One solution to this problem is similar to a chess sacrifice. The main idea is to include unphysical polarizations in the incoming and outgoing states and cancel them by use of the Fadeev-Popov ghosts and Goldstone bosons. We consider the Faddeev-Popov ghosts and Goldstone boson states as new polarizations, similar to the temporal polarization (see Eq. (26).) We note that the Faddeev-Popov ghost states have a negative norm as does the temporal polarization, whereas the Goldstone boson state has a positive norm [48]. As a result, the unphysical fields can give both a positive and a negative contribution to the polarization sum. 144


The main point is that the sum of the contributions of all unphysical states and unphysical polarizations to the squared matrix element vanishes [74]. As a result, Ai A = (i)Ai A , (32) i i
iSp
hy s

iSal

l

where i is a multi-index for the polarization states, Ai is the amplitude of the process, Sphys is the set of physical polarization states, Sall is the full set of physical polarizations, unphysical polarizations and unphysical states, and (i) = ±1 depending on the signature of the Hilbert space norm for the polarization state i. A drawback of enlarging the set of polarization states is that we have a much greater number of squared matrix element terms for evaluation and subsequent summation. However, to see the advantage of this trick, let us sum the contributions from the temporal polarization (Eq. (26)) and the longitudinal polarization (Eq. (31)). We note each of them, separately, grow as k /m, but together, that k /m growth cancels
e0 e0 - e3 e3 = µ µ

1 0 0 0

0 0 0 0

00 00 00 0 -1



(33)

which can be achieved in a different basis
0 3 e0 e0 - e3 e3 = eµ e0 - eµ e3 , µ µ

(34)

where e 0 = (1, 0, 0, 0) ; e 3 = (0, 0, 0, 1) . In this new polarization basis, none of the polarization vectors grow with energy. As a result, by inclusion of the temporal polarization, the sum over polarization squares (see Eq. (27)) becomes e0 e0 - e1 e1 - e2 e2 - e3 e3 = -gµ . µ µ µ µ (35)

which, again, does not lead to the bad high energy growth and loss of precision. In the case of an unpolarized calculation, we simply replace the sum 145


over polarizations by -gµ as in Eq. (35). In a gauge invariant theory, the unphysical polarizations are canceled if we add Faddeev-Popov ghosts and Goldstone bosons to the external states and we get the same result as if we only included the physical polarizations. However, now we have better behavior at high energy and much less loss from finite numerical precision.

C.3

Massless vector-particle case

Now that we have discussed the massive vector boson case, we turn to the massless gauge boson. It, also, has a gauge symmetry which must be satisfied in the calculation of the squared matrix element. The Feynman gauge leads, in this case, to the propagator of Eq. (25), with m = 0. As in the case of the massive gauge bosons, the massless gauge bosons, also, have FaddeevPopov ghosts [48]. However, in distinction to the massive case, there are no Goldstone bosons associated with the massless gauge boson and the longitudinal polarization becomes unphysical like the temporal polarization. We can still extend the summation over physical polarizations to an enlarged set of polarization as in Eq. (32) (see the proof in [75]).

C.4

Summation of ghost diagrams in CalcHEP

CalcHEP uses the squared diagram technique with a summation over the polarizations. According to our counting, one squared diagram corresponds to Ak Al (36) ii
iSal
l

in a squared matrix element, where Ak and Al are the amplitudes of two Feynman diagrams in the set of all Feynman diagrams and i counts the polarizations and unphysical states as described in the previous subsections. Strictly speaking, when gauge bosons are replaced by unphysical states, we have a much larger set of diagrams. For example, consider one squared diagram for the process e- , ne , W - . The W - is associated with two ghost and one Goldstone boson. Altogether, there are four diagrams (see Fig. 15) associated with this one parent diagram (see Fig. 15a). They all have the same topology, and in fact, they all have the same denominators. The numerators of these expanded diagrams are polynomials in scalar products of the momenta and the powers of these polynomials are the same for each 146


e ne ! ne e ==>==@==>====!==>===@==>== | ! | W+| ! W+| | ! | -----@--<----!--<---@----A WWA a)

e ne ! ne e ==>==@==>====!==>===@==>= | ! | W+| ! W+| | ! | -----@--<----!--<---@----A W-.f W-.f A b)

e ne ! ne e ==>==@==>====!==>===@==>== | ! | W+| ! W+| | ! | --<--@--<----!--<---@--<-A.C W-.C W-.C A.C c)

e ne ! ne e ==>==@==>====!==>===@==>== | ! | W+| ! W+| | ! | -->--@--<----!--<---@-->-A.c W-.c W-.c A.c d)

Figure 15: Ghost diagrams

147


expanded diagram. As a result, we might expect that after being summed together, the total expression is roughly the same size as each individual expression. CalcHEP takes advantage of this by summing up the expanded diagram expressions and writes just one numerical code for this set.

C.5

Gauge symmetry and cancellations

Cancellation of diagram contributions is an essential point, both for symbolic and numerical calculations, because a relatively small variation of one diagram contribution may lead to a significant error. Such variations can be caused either by finite precision calculations of floating point operations or by modifications of Feynman rules, for instance, by including particle widths or by removal of some diagram subset from the calculation. We would like to stress the importance of these challenges to the user and encourage him/her to think carefully about his/her calculation. There are two well known examples of gauge cancellations. The first is the ultraviolet cancellation of quickly growing terms originating from the propagators of massive vector particles. This problem can be resolved by the use of t'Hooft-Feynman gauge in the calculation of the squared matrix element, as described in Appendix C. The second example is the cancellation of double pole terms of the tchannel photon propagator (of the form t-2 ) . For example, there is a wide class of processes where the incoming electron continues in the forward direction emitting a virtual photon, as in Fig.17. These diagrams have a 1/t pole, where t is the squared momentum of the virtual photon. For the described kinematics, the photon appears very close to its mass shell (t 0), hence this configuration gives a respectively large contribution to the cross section. However, after summing the diagrams in the squared matrix element, we expect the 1/t2 pole to be reduced to a 1/t pole [39] in the zero electron-mass limit. This cancellation is caused by electro-magnetic U(1) gauge invariance. If diagrams similar to that in Fig.17 contribute to your process, we strongly recommend to set the Gauge invariance switch to ON (see Section 5.5) to prevent the breaking of the gauge symmetry by width terms. Another way to solve this problem is by using the Weizsaecker-Williams approximation (see Appendix G.2).

148


D
D.1

Feynman rules in CalcHEP
Lorentz part of diagram

Fermion lo op calculation. Our algorithm for the evaluation of fermion loops takes into account the possible appearance of vertices with fermion number violation. CalcHEP chooses an arbitrary direction for the multiplication of vertices on a fermion line. The vertices and propagators are multiplied according to this direction in order to evaluate the gamma-matrix trace. For those vertices which have a fermion line coming in, the second fermion is taken in the form it is presented in the Vertices table (see Subsection 8.4). Otherwise, we first rewrite them according to Eq. (10). ¯ There are two kinds of fermion propagators: < (p1) (p2) > and < c c ¯ (p1) (p2) >. In the case of Dirac or Ma jorana fermions, both of them are equal to ¯ ¯ < (p1) (p2) >=< c (p1) c (p2) >= ( p1 + M )c (p1 , p2 , M ) were c is the scalar part of the propagator. The propagators, thus, provide a factor of ( p + M ) to a fermion line. The sign of p depends on the line direction. There is an exception to this rule in the case of a pure left/right handed, massless fermion, which has the propagator: p 1 ( 1 5 ) ¯ c (p1 , p2 , 0) < l/r (p1)l/r (p2) >= 2 and p 1 ( 1 ± 5 ) ¯ < lc/r (p1)lc/r (p2) >= c (p1 , p2 , 0) . 2 Furthermore, the result of the trace evaluation is multiplied by (-1). We should also remark that in the case that a fermion vertex contains two identical fermions, the Wick contraction can be done in two ways. We remind the user (see Section (8.4)) that the expressions presented in the Vertices table table of the model corresponds to the functional derivative of the Lagrangian. Therefore, the symmetry property and the factor of 2 should already be present there. Consequently, a special treatment of these vertices by CalcHEP is not needed. This also applies to other vertices. The 149


combinatorial factors, in the case of identical particles, should already be present in the Vertices table. We, also, note that a loop of Faddeev-Popov ghosts gives an extra factor (-1). For convenience, CalcHEP uses a vector propagator with the wrong sign to achieve this. The total sign of a diagram is corrected at the end of the evaluation. Namely, the diagram is multiplied by GhostFact=(-1)ng +nv , where ng is the number of Faddeev-Popov loops and nv is the number of vector particles.

D.2

Color factor

We, here, explain the method [76] of color factor evaluation that is used by CalcHEP in the case of the QCD S U (Nc ) group. We shall use the desig¯ nations gluon (g ), quark (q ), and anti-quark (q ) for colored particles which belong to the adjoint, fundamental and conjugate fundamental representations, respectively. Following section (8.4), the color part of the g g g vertex is given by the group structure constant -i · fabc , whereas, the color part of ¯ ^ the g q q vertex is given by the fundamental representation matrix a of the 9 group . By means of the basic relations, a b - b a = i · fabc c ^^ ^^ ^ and 1 tr(a b ) = ab ^^ 2 the g g g vertex can be expressed in terms of the g q q vertex: ¯ -i · fabc = 2 · tr(b a c ) - 2 · tr(a b c ) ^^^ ^^^ (37)

This vertex relation can also be achieved by a diagram substitution where the g g g vertex is replaced by two diagrams with a quark loop: =2 -2 (37a)

9

^ a = a /2, were a are the Gell-Mann matrices. ^

150


The QCD group also has the following Fiertz identity 1 ik 1k (a )i (a )k = li j - j l 2 2Nc j l (38)

which, at the diagram level, can be presented with a substitution which removes gluon lines connecting quarks: =
1 2

-

1 2N

c

(38a)

The final result is that we have only closed, separated lines of quark color flows which are easily evaluated:

= tr(^) = N 1

c

(39)

However, there is a complication in the separate determination of the color and the Lorentz parts of the g g g vertex. This vertex contains a symmetry corresponding to the permutation of identical legs. Altogether, it contains a product of an anti-symmetric Lorentz part and an anti-symmetric color part. Thus, in the case of separate calculations of the Lorentz and the color parts, one has to take care that the orientation of the legs in the color and the Lorentz diagrams are identical. In the Nc limit, the tree-level squared matrix element has the asymptotic form ( ¯ Nc nq +nq +ng )/2 (C + O(1/Nc )) (40) where nq , nq , nq are the numbers of quarks, ant-quarks and gluons in the ¯ diagram. CalcHEP provides the user with the possibility to calculate matrix elements in the Nc limit where only the leading term of Eq. (40) is used. After the extraction of the leading term, we substitute Nc = 3. A significatn subset of the interference diagrams are zero in this limit. Thus, this approach simplifies the calculation. Moreover, the precision of this approach is not too bad, especially in cases of QCD processes where loop corrections are at the same order. See Section (4.6) for more details about this option. 151


D.3

Common factors.

The final squared diagram is multiplied by a set of factors which are10 : · SymmFact=n/d, where n = 1 if the left part of the squared diagram is the same as the right part. Otherwise, n = 2. The denominator d equals the number of symmetric permutations of identical outgoing particles. · AverFact=1/Na , were Na is the number of polarization and color states of the incoming particles. · FermFact= (-1)Nf , were Nf is a total number of incoming fermions and anti-fermions.

E
E.1

Examples of mo del realization.
Implementation of QCD Lagrangian

3-gluon vertex. The QCD Lagrangian contains the following 3-gluon vertex: S
3G

=-

g 2

(µ G - G )f G G d4 x = -g µ µ

1 µ2 G1 g µ

µ1 µ

3

f

1 2 3

2 3 G2 G3 d4 x , µ µ

where G is the gluon field and g is the strong coupling constant. Applying µ the Fourier transformation (8) we get S = (2 )4 g (p1 +p2 +p3 ) i f p µ2 g 1
µ1 µ 1 2 3 Gµ1 (p1 )G2 (p2 )G3 (p3 )d4 p1 d4 p2 d4 p3 . µ µ

3G

1 2 3

3

This vertex contains three identical fields, so the calculation of the functional derivatives gives us six terms:
10
1 G1 µ

S3g = (2 )4 (p1 + p2 + p3 ) i f1 2 3 3 2 (p1 ) G2 (p2 ) G3 (p3 ) µ µ µ µ2 µ 1 µ 3 µ2 µ1 µ3 + p µ 3 g µ1 µ2 - p µ 3 g µ 1 µ 2 + p µ1 g µ2 µ 3 - p 2 1 g - p3 g g (p1 g 3 1 2

µ2 µ

3

).

In notations of section (11.5).

152


Comparing this expression with it's vertex representation in CalcHEP (8.4) where the ColorFactor is (- i f1 2 3 ), we get F actor·Lorentz P art = - g (pµ2 -pµ2 )g 1 3
µ1 µ
3

µ +(pµ3 -p1 3 )g 2

µ1 µ

2

+(pµ1 -pµ1 )g 3 2

µ2 µ

3

.

CalcHEP uses the notation GG for the strong coupling constant g . So, for the 3-gluon vertex in CalcHEP format, we have
A1 G A2 G A3 G A4 Factor GG Lorentz part m1.m2*(p1-p2).m3+m2.m3*(p2-p3).m1+m3.m1*(p3-p1).m2

Quark-gluon interaction. The interaction of a gluon with a quark is described by the following action: S
Qq G

=g

^ G (x)q (x) µ t q (x) d4 x . ¯ µ

Applying the Fourier transformation and substituting q = q + 0 , we get ¯ S and
Qq G

= g (2 )

4

^ (p1 + p2 + p3 )G (p3 )q (p1 ) µ t q (p2 ) d4 p1 d4 p2 d4 p3 ; ¯ µ

SQqG ^j = g (2 )4 (p1 + p2 + p3 )(t )i qi (p1 ) q j (p2 ) Gµ (p3 ) ¯

µ

3

.

^j The factor (2 )4 (p1 + p2 + p3 )(t )i is substituted by CalcHEP autoT matically. The factor C -1 appears in (8.4) according to (9) and is, also, substituted by CalcHEP. Thus, the quark-gluon interaction is implemented in the CalcHEP Vertex table as: A1 A2 A3 A4 Factor Lorentz part Qq G GG G(m3) where q and Q are the designations for a quark and an antiquark. Interaction of ghosts with gluon. This interaction is described by the term SccG = -g c (x) µ (f G (x)c (x))d4 x . ¯ ¯ µ 153


Fourier transformation and subsequent evaluation of the functional derivatives gives S
ccG ¯

= -g (2 )4

(p1 +p2 +p3 )c (p1 )(-i p2 -i p3 )µ3 f G3 (p3 )c (p2 )d4 p1 d4 p2 d4 p ¯ µ

3

and SccG ¯ = g (2 )4 (p1 + p2 + p3 )pµ3 i f213 . 1 2 (p ) G3 (p ) c1 (p1 ) c ¯ 2 3 µ3 Again, the factor (2 )4 (p1 +p2 +p3 )(- i f1 2 3 ) is substituted by CalcHEP. Thus, this interaction may be implemented in the Vertex table as: A1 A2 G.C G.c A3 A4 Factor Lorentz part G -GG p1.m3

where G.C and G.c are the Faddeev-Popov anti-ghost (c) and ghost (c), ¯ respectively. 4-gluon interaction. In addition to the 3-gluon interaction of QCD, the Lagrangian, also, contains the following 4-gluon interaction: g 2 µµ g g f G (x)G (x)f G (x)G (x)d4 x . µ µ 4 Fourier transformation and functional differentiation lead us to an expression which contains three different S U (3) color structures: S
4G

=-



1 G1 µ

(p1 ) f f

2 G2 µ

S4G = -g 2 (2 )4 (p1 + p2 + p3 + p4 ) 3 4 (p2 ) G3 (p3 ) G4 (p4 ) µ µ
3

â
3

f

1 2

3 4

(g

µ1 µ

g

µ2 µ

4

+f

1 4

2 3

(g

µ1 µ

2

g

µ3 µ

-g

µ1 µ

4

g

µ2 µ

3

) + f ).

1 3

f

2 4

(g

µ1 µ

2

g

µ3 µ

4

4

-g

µ1 µ

3

g

µ2 µ

-g

µ1 µ

4

g

µ2 µ

)

4

(41)

The complicated color structure of this vertex cannot be directly written down in the CalcHEP Vertex table. To implement this vertex, we must use the following trick. We introduce the auxiliary tensor field t (x) and the µ following Lagrangian for its interaction with the gluon field: S
aux

=

ig 1 f t µ (x)Gµ (x)G (x) - t µ (x)t µ (x) d4 x . 2 2 154


It can be seen that functional integration over the auxiliary field tµ (x) reproduces the 4-gluon interaction in the partition function:

ei

S4G (G)

=

ei

Saux (G,t) x,,µ,

d t (x) . µ

For each colored vector particle, CalcHEP automatically adds a tensor field with the same color to the internal list of quantum fields. The propa1 gator for this field (13) corresponds to the Lagrangian (- 2 t µ (x)t µ (x)). Consequently, in order to realize the 4-gluon interaction we must introduce the following vertex for the interaction of the gluon with this tensor field: S StGG 3 G (p1)G (p2) t3 µ
1 µ1 2 µ2 tGG

ig = 2

f t µ (x)G (x)G (x)d4 x ; µ

µ

3

(p3 )

= (2 )4 (p1 + p2 + p3 )(- i f g â (g 2
µ2 µ
3

1 2 3

)

g

µ1 µ

3

-g

µ1 µ

3

g

µ2 µ

3

).

In the CalcHEP Vertex table, this vertex looks like: A1 A2 A3 A4 Factor Lorentz part G G G.t GG/Sqrt2 m2.m3*m1.M3 -m1.m3*m2.M3 where G.t is the CalcHEP notation for the auxiliary tensor field t associµ ated with the vector field G. Capital M denotes the second Lorentz index of the tensor field. From the viewpoint of Feynman diagrams, this realization of the 4-gluon interaction means that instead of one 4-gluon vertex we substitute three subdiagrams as shown in Fig.16. The contribution of each of these diagrams corresponds to one of the terms of expression (41).

E.2

Neutrino as a Ma jorana fermion

In the Standard Model, only the left handed component of the neutrino field takes part in the gauge interactions. In principle, the right handed component can be omitted. However, such a model can not describe neutrino oscillations, which have been detected at experiments. In the framework of the SM with 155


G1

G3

G1 G.t

G3

G1

G3

G1

G3

=

+

G.t

+

G.t

G2

G4

G2

G4

G2

G4

G2

G4

Figure 16: Splitting of four-gluon vertex right-handed neutrinos, the Yukawa interaction can give mass to the neutrino and the left- and right-handed components of the neutrino can be written as one Dirac 4-component spinor like the other SM fermions. However, in distiction to the other SM fermions, the right handed neutrino has zero U (1) hypercharge, and is, in fact, a singlet under the SM gauge group. As a result, a mass term involving only the right-handed neutrinos is also allowed: 1¯ c - M (1 - 5 ) 2 The diagonalization of this combination mass term splits the neutrino into two masses. To see this explicitly, we expr field in terms of two Ma jorana fields l of a Dirac mass term and a Ma jorana Ma jorana eigenstates with different ess the 4-component Dirac neutrino and r ,

1 1 = (1 - 5 )l + (1 + 5 )r , 2 2 In terms of the chiral fields, the mass terms are 1 1¯ ¯ ¯ ¯ ¯ -mY - M (1 - 5 )c = - (mY l r + mY r l + 2M r r ) 2 2 were mY is the mass generated by the Yukawa interaction basis which diagonalize the mass matrix l = - cos ()1 + sin ()2 r = sin ()1 + cos ()2
11

11

. Choosing the

¯ Note that r 5 r = 0

156


gives us the mixing angle and the masses tan 2 = 2mY /M m1 = -mY tan = m2 = mY / tan = M - 2 M2 +m 4
2 Y

M2 M + + m2 Y 2 4 Negative masses are allowed and can be removed by the transformation 1 i5 1 This is the so-called see-saw mechanism which can potentially explain why the neutrino mass is so small. Using this mechanism, the Yukawa constant responsible for the value of mY can be of the same order as for the other fermions. If M is very large and the mixing angle is very small, the light neutrino mass m1 will be tiny and the heavy neutrino mass m2 will be on the order of M . Roughly, we will have m1 m2 mY . To get the Feynman rules in terms of the Ma jorana fermions, we simply substitute the new fermion basis into the interaction Lagrangian. CalcHEP only supports 4-component fermion notation. In this notation, a Ma jorana fermion is given by: Full name A A+ 2*spin neutrino MN MN 1 mass 0 width color aux 0 1

In terms of the Dirac 4-component spinor field a neutrino appears in the Standard Model Lagrangian in the following way (see Eq. ??)12 : i¯ e ¯ ¯ ( µ µ - ( µ )µ ) + Zµ µ (1 - 5 ) 2 4 sin w cos w e -¯ +¯ + Wµ e µ (1 - 5 ) + Wµ µ (1 - 5 )e , (42) 2 2 sin w where e is the electron field. To rewrite this Lagrangian in terms of a Ma jorana neutrino let us perform the substitution 1 1 = (1 - 5 )l + (1 + 5 )r , 2 2 L


=

12

where Y = -1, 1 = , 2 = e , g2 = e/ sin w , g1 = e/ cos w .

157


where l and r are the Ma jorana fermions. Omitting the Lagrangian for r (there are no interactions for r ) and applying the following identities for Ma jorana fermions i¯ ¯ ¯ (l µ 5 µ l - ( µ l )µ 5 l ) = l µ l = 0 4 which can be obtained by means of Eq. (10), we get i¯ e ¯ ¯ (l µ µ l - ( µ l )µ l ) - Zµ l µ 5 l 4 4 sin w cos w e -¯ +¯ Wµ e µ (1 - 5 )l + Wµ l µ (1 - 5 )e . + 2 2 sin w

L



=

The first term is the free Lagrangian for a massless Ma jorana fermion while the following terms define the interaction. Using the definition (8.4) we can write them in the CalcHEP Vertex : A1 MN E MN A2 MN MN e A3 A4 Factor Z -EE/(2*SW*CW) WEE/(2*Sqrt2*SW) W+ EE/(2*Sqrt2*SW) Lorentz part G(m3)*G5 G(m3)*(1-G5) G(m3)*(1-G5)

We note that there are two identical neutrino fields in the Lagrangian term which describes the interaction of neutrinos with a Z -boson. It leads to an additional factor of 2 and to the symmetry property of the corresponding vertex. One of the typical mistakes users make in the realization of this vertex is the erroneous introduction of a G(m3)*(1-G5) term which breaks the symmetry property. Correct evaluation of the functional derivative (8.4) with the help of the identity (10) does not produce such a term.

E.3

Lepto quarks

In this section, we present an example of a Lagrangian which contains Cconjugated fermions. These terms appear in interactions which violate fermion number conservation. Let e and u be the fermion fields of the electron 158


and the u-quark, respectively and let these fields interact with a complex scalar leptoquark field F with Lagrangian ¯c ¯ L = u (1 + 5 )e F + e (1 + 5 )c F u
+

¯u ¯e where c = T C and c = C T = C ( 0 )T . u e e In the basis used by CalcHEP, the charge conjugation operator is given by C = - 0 . The Lagrangian can then be written in the form L = -T 0 (1 + 5 )e F - + 0 (1 + 5 ) 0 ( 0 )T + F u e u T0 5 +0 5 ++ = -u (1 + )e F + u (1 + )e F .
+

Direct implementation of the definition (8.4) gives us the Vertex table A1 A2 A3 A4 Factor Lorentz part u e F -lambda (1+G5) E U F+ lambda (1+G5) By means of equation (10) we can rewrite this table in the equivalent form: A1 A2 A3 A4 Factor Lorentz part e u F -lambda (1+G5) UE F+ lambda (1+G5)

F

Color string basis.

CalcHEP performs averaging/summation over color states of incoming/outgoing quarks and gluons. But in order to describe the hadronization of outgoing particles one needs to specify the color states in more detail. CalcHEP passes the problem of hadronization to other programs such as PYTHIA [54]. PYTHIA performs the hadronization in the framework of the color string model. According to this model, pairs of outgoing partons with opposite color are jointed into a colorless ob ject, called strings. Partons are attached at the ends of the string and, usually, move in different directions. When the distance between the partons becomes large, the color string breaks creating two strings, each with smaller energy than the parent string. This 159


process continues until the energy of each string is low enough to form a stable composite particle and it is then treated as a meson. If we consider a QCD amplitude diagram without external gluons, we can use the rules from (37a) -(38a) to transform the amplitude's color diagram to one where separated quark lines connect q q pairs. This corresponds to the ¯ color string picture described above and used by PYTHIA. It should be noted that these color states are orthogonal only in the Nc limit. The orthogonality is required to treat the squared basis coefficients as mutually independent probabilities of producing the corresponding color strings. Thus, the color string model should be considered in the framework of the 1/Nc approximation. In the same approximation, one can consider the gluon color state as a q q state (38a). Therefore, the gluon is a particle where ¯ one color string is finished and another on begins. During event sampling, CalcHEP generates a phase-space point according to the exact Nc = 3 matrix element. At the same time, it also calculates the leading coefficients of the 1/Nc expansion for the matrix element over the color flow basis. The generated phase space point is accompanied with a color flow with a probability proportional to the squared basis coefficient.

G
G.1

Distribution functions and b eam sp ectra
Backscattered photon sp ectrum

This function describes the spectrum of photons scattered backward from the interaction of laser light with the high energy electron beam: f (x) = 0, for x > xmax N (1 - x + 1/(1 - x) (1 - 4x/x0 (1 - x/(x0 (1 - x)) ))), for 0 < x < xma

x

where x0 = 4.82, xmax = x0 /(1 + x0 ), N is a normalization factor. The above spectrum corresponds to the special initial condition when unpolarized photons are created. See [77] for more details.

G.2

Weizsaecker-Williams approximation

Weizsaecker-Williams approximation is used to describe processes of electroproduction in the case of small angle of charged particle scattering. In this 160


case the virtual photon emitted by the scattering particle appears near to the mass shell (see Fig.17). It gives a possibility to reduce the process of electro-production to the photo-production one with an appropriate photon spectrum: f (x) = (q 2 /(2 ))(log((1 - x)/(x2 ))(1 + (1 - x)2 )/x - 2(1 - x - x2 )/x), where is the fine structure constant, q is a charge of incoming particle, m is its mass, = (m/Qmax )2 . Qmax sets out the region of photon virtuality (P 2 > -Q2 ax ) which contributes to the process. It is assumed that region m of large virtuality can be taken into account by direct calculation of electroproduction. As a rule this contribution is small enough.

e- p
1

E EE




e- p p
2

3

Figure 17: Example of process with the 1/t2 pole cancellation. Parameters q , m, and Qmax are defined by the user. See [39] for the further explanations. In the case of CompHEP the Weizsaecker-Williams photon spectrum is available for charged leptons only.

G.3

ISR and Beamstrahlung
State Radiation) is a process of photon radiation by the incomdue to its interaction with other collision particle. The resulting electron has been calculated by Kuraev and Fadin [78]. In Comrealize the similar expression by Jadach, Skrzypek, and Ward

ISR (Initial ing electron spectrum of pHEP we [79]:

F (x) = exp( (3/4 - E uler)) (1 - x) -1 ((1 + x2 ) - ((1 + 3x2 ) ln(x)/2 + (1 - x)2 )/2)/(2(1 + )), 161


where m E uler () S C ALE = = = = is is 1/137.0359895 is the fine structure constant; (2 ln(S C ALE /m) - 1)/ 0.00051099906 is the electron mass; 0.5772156649 is the Euler constant; the gamma function; 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. 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 key parameter of beamstrahlung is = where 5N E 6 m (x + y ) ,
3 ez

N x , y , z E

is number particles in the bunch, are sizes of bunch, is a center-of-mass momentum.

The effective energy spectrum of electrons we use approximated formulas of P. Chen [80]. Namely for < 1 we use formulas (17,18), and (22,23) otherwise. Picture (18 presents comparision of implemented approach with Monte Carlo simulation by Guinea Pig program for CLIC3000 design. Be2 cause singuarity (1 - x) 3 is expected for beamstrahlung, we have defived spectra on this factor for proper comparision in x 1 region. Convolution of beamstrahlung and ISR spectra is done automatically. ISR affect smooths spectra and improve agreement of P.Chen formulas with Monte Carlo simulation. The Beamstrahlung spectrum cannot be integrated by the current CompHEP version because it contains a -function.

162


F(x)*(1-x)**(2/3)

0.35 0.3 0.25 0.2 0.15 0.1 0.05

Beamstrahlung for CLIC 3000

0

0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9

1

x
Figure 18: Comparison of P.Chen approximed formula (implemented in the CalcHEP, solid line) with Guinea Pig Monte Carlo for CLIC3000 (dashed line).

H
H.1

PDT - Particle Distribution Tables in CalcHEP.
CTEQ and MRST parton distributions

Both CTEQ and MRST groups store information about parton distributions in two-dimensional tables and interpolate these tables. CalcHEP has its own file format for parton tables but uses interpolation procedures of CTEQ and MRST. Thus CalcHEP produces exactly the same results as original CTEQ/MRST functions. The information about interpolation procedure is stored in CalcHEP tables and is detected automatically. Besides of parton distributions CalcHEP tables contain data for s (q )

163


which correspond to the given parton set and this function is available to CalcHEP user. See section (5.4). The files containing parton distributions must have the "pdt" extension. n_calchep searches such files in the directories "$CALCHEP/pdTables", "../", and "./". Usually the last two directories are the user's working directory and its sub-directory results. "$CALCHEP/pdTables" contains the following parton sets: CTEQ6L, CTEQ6M [81] andlo2002, mrst2002nlo, mrst2002nnlo [82] We pass to the user the routines which transform CTEQ and MRST data files to the CalcHEP format. By means of them the user can add other distribution to the list. The primary c-files are stored in the $CALCHEP/pdTables directory. In case of CTEQ the compilation instruction is cc -o cteq2pdt cteq2pdt.c alpha.c -lm The usage is ./cteq2pdt < cteq_file.tbl >calchep_file.pdt for example ./cteq2pdt < cteq6m.tbl >cteq6m.pdt The name of pdt file doesn't play a role. The cteq2pdt routine can be applied to any CTEQ4, CTEQ5, CTEQ6 file. It automatically detects version and s formula stored in the CTEQ file. In the case of MRST file the corresponding compilation instruction is cc -o mrst2pdt msrt2pdt.c alpha.c -lm The usage is ./mrst2pdt name < mrst_file.dat >calchep_file.pdt or ./mrst2pdt name nf order (M Z ) < mrst_file.dat > calchep_file.pdt For example ./mrst2pdt mrst2002nlo 5 nlo 0.1197 mrstnlo.pdt The number of parameters is increased in comparing with CTEQ case, because MRST tables don't contain the corresponding information. Note that name is the identifier of distribution that you will see in CalcHEP menu. If the last four parameters are not specified then s will not be included in the table. See MRST documentation to find the proper parameters13 For simple checks of pdt files one can use the checkpdt program. The source of this program is stored in $CALCHEP/utile. Compilation instruction is
13

nf=5 always, the order is included in the file name.

164


cc -o checkpdt checkpdt.c pdf.c -lm The usage ./checkpdt file.pdt parton x q where parton is a parton symbol: 'G' - for gluon, 'u', 'd', 's', 'c', 'b' - for quarks; 'U', 'D', 'S', 'C', 'B' - for anti-quarks. This program writes on the screen the corresponding parton density and s (q ). See code checkpdt.c to create more extended test.

H.2

Format of parton distribution tables.

The structure of pdt file in CalcHEP is closed to the CTEQ one, but is more flexible and complete. Generally distribution function depends on two arguments. They are the Feynman parameter X and the energy scale Q. X is unitless and runs in [0,1] interval. Q > 1GeV and traditionally is presented in GeV units. Thus we describe grids for X and Q variables and tables of parton distributions corresponding to the grids. CalcHEP pdf file contains several items of information, Each item is started by a keyword. A keyword is started from the '#' symbol. Numerical data following a keyword must be separated by white-space characters. The appearance of new keywords designates the end of the previous item of information. The keywords are · #distribution After this word the title of distribution function is disposed. The title has been surrounded by the quotation marks (") symbols. It can contain space symbols inside. After that the incoming particle number and numbers for partons are disposed. All particles and partons are numerated according to the Monte Carlo numeration scheme [58]. Incoming particle and its parton are separated by the "=>" string. Partons can be combined into groups by the the brackets ( ). For example14
#distribution "cteq6m(proton)" 2212=>(5 -5) (4 -4) (3 -3) -1 -2 21 2 1

All partons in one group have the same distibution. Position of a parton or of a group in the list correspond to number of table presented below.
14

1,2,3,4,5 are numbers of d,u,c,s,b quaks, 21 is the gluon number.

165


Say b and ¯ quark distributions will be disposed after the #1-parton b keywords. One file can contain several, usually two, distribution items. It allows to use one file both for the particle and for the anti-particle. For example, the "cteq6m.pdt" file contains also
#distribution "cteq6m(a-proton)" -2212=>(5 -5) (4 -4) (3 -3) 1 2 21 -2 -1

So #7-parton item describes u-quark in proton and u in anti-proton. ¯ · #x-grid After this keyword the file has to contain a sequence of numbers which specify the X grid. The number of points has exceed 2. Numbers must increase from point to point and belong to interval [0,1]. · #q-grid Specifies the beginning of Q grid. The data must be positive and increase. This item is optional. Generally we can consider parton distributions which do not depend on Q. · #alpha decignates beginning of data for alpha(Q) corresponding to Q-grid. The item is optional and can not precede the q-grid item. · #1-parton, #2-parton ...... These keywords mark the beginnings of data for distribution functions. They can not precede the x-grid and q-grid items because the power of data for these items must be the production of the x-grid and q-grid powers. Date corresponding to ith position of x-grid and j th position of q-grid is disposed on the (i + (j - 1)nx )th place, where nx is the power of x-grid. The reader of pdt file finishs its work when it has read the needed parton item. Thus all other items described below should preceed the parton one. These items are auxilaries and if it needs can be specified separately before each n-parton item. · #x-min, #q-min specifies the minimum boundaries of 'x' and 'q' intervals where result of 166


interpolation should be correct. The correspoding number must follow to the keyword. These keywords are optional. If one of them is absent the first point of the corresponding grid is user to define the limit. These limits do not influent on the work of the program. They are used to collect statistics of points out of limits. These statistics also count the number of points where Q exeeds the last point of q-grid. · #mass This keyword allows to introduce the mass of the composite particle. The corresponding numerical value must follow the keyword. Default value for mass parameter is 1 GeV. · #Interpolation It defines interpolation procedure. For current version the following interpolations are available: CTEQ4, CTEQ6 , MRST200115 . CTEQ6 interpolation procedure depends on QC D parameter which must be written after "CTEQ6". · #q-threshold Defines thresholds for c and b quarks. Used by MRST.

I
I.1
I.1.1

Monte Carlo phase space integration
Parameterization of multi-particle phase space
Parameterization via decay scheme

The element of phase space volume for a n-particle state is equal to [58]
n

dn (q ) = (2 )4 4 (q - p1 - p2 - p3 - ... - pn )

i=1

(p2 - m2 ) 4 i i d pi . (2 )3

(43)

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
15

CTEQ5 interpolation procedure is identical to CTEQ4

167


phase space volume of some subset S of the full n-particle set. According to (43) (p2 - m2 ) 4 i i d pi . (44) d(q , S ) = (2 )4 4 (q - pi ) (2 )3 iS iS Let S1 and S2 be two disjoint particle subsets, then d(q , S1 S2 ) = ds1 ds2 (2 )4 4 (q - q1 - q2 ) â d(q , S1 ) d(q , S2 ) â . 2 2

2 2 (q1 - s1 ) 4 (q2 - s2 ) 4 d q1 dq (2 )3 (2 )3

2

(45)

The above formula expresses a multi-particle volume in terms of twoparticle 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 multiparticle 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 [58]. d(q , [1, 2]) k d , = 2 4(2 )3 q 2 (46)

where k is the absolute value of three-dimensional momentum of outgoing particles in the rest frame. Thus, applying recursively (45) and (46) to (43) we obtain an explicit expression for the phase space volume in terms of the squared masses sj of virtual clusters and the two-dimensional spherical angles j , where j is an ordinal number of decay: k1 d2 1 dn (q ) = 4(2 )2 q
n-1 2 j =2

kj d2 j . 4(2 )3 sj

n-1

ds
j =2

j

(47)
th

Here kj is a momentum of outgoing clusters cluster in its center-of-mass. The expression (47) means some sequent starts from incoming state and finishes with cess. For example, the integration domain for 168

produced by decay of the j

ial 1->2 decay scheme which outgoing particles of the prosj parameters depends on this


scheme. Below we present two such schemes for a process with four outgoing particles:
,k d 2 2 d p2

p

1

s2 q ,k d1 1 sd p3 3 d , k d3 3 d p4

p1 q 1 , k1 see 2 p

e 2 , k2 see 3 p3 e 3 , k3 d d p4

2

In the case of CompHEP pro ject such decay scheme is defined by the user via the `Kinematics' menu (see Section 5.9). I.1.2 Polar vectors

To complete phase space parameterization we must fix a polar coordinate system choosing the polar and the azimuthal angles for each of decays d2 j = d cos j dj (48)

We have an ambiguity in the choice of polar coordinate. Let us remind that our goal is not only parameterization of phase space but also regularization of the squared matrix element in the phase space manifold. The main idea of such regularization is a cancellation of integrand sharp peaks by the phase space measure. Originally the phase space measure (47) has no cancellation factors, but we can create them by means of a Jacobian of transformed variables. To get an appropriate Jacobian we need to have the initial phase space variables related to poles of the squared matrix element. In their turn the poles of squared matrix element are caused by virtual particle propagators and generally have one of the forms (4), (5) or (6) (Section 5.10) depending on a squared sum of momenta. Variables sj in (47) are also equal to squared sums of momenta. So, the parameterization (47) allows us to smooth some peaks of the matrix element. It appears to be that the polar coordinates can be chosen in such a way that all cosj have simple linear relations to the squared sums of momenta [83, 84]. The polar angle j can be unambiguously fixed by the polar vector P olej whose space components in the rest frame of decay correspond to the 169


j = 0 direction. Let qj 1 and qj 2 be the momenta of the first and the second clusters produced by the j th decay. Then
0 (P olej + qj 1 )2 = (P ole0 + qj 1 )2 - | P olej |2 - | q j j1 j2

(P olej + qj 2 ) = (P ol

2

e0 j

+q

02 j2)

- | P olej | - | q

2

|2 -2cosj | P olej || q
2

j1 j2

| +2cosj | P olej || q

|

|

Thus, in order to get cosj related to a squared sum of some particle momenta we may construct the polar vector as a sum of particle momenta [83, 84]. For the non-contradictory construction we need to set the decays in some order with a natural requirement that the sub-decays of clusters produced by the j th decay have the ordinal numbers larger than j . In giving such ordering we can construct a polar vector for each decay based on the incoming momenta and on those of particles produced by decays possessing smaller ordinal numbers. The following statements can be proved. In the framework of any ordered scheme of decays and for any sum P of particle momenta one can find the decay number j such that either P 2 = sj or P might be represented as P olej + qj , where qj is the momentum of one of the clusters in the j th decay and P olej is a polar vector constructed according to the above rule. In other words, any of poles (4), (5), (6) can be expressed either in terms of sj parameters or in terms some of cosj for an appropriate choice of the polar vector [83, 84]. In CompHEP the ordering is arranged automatically, so that all subdecays of the first cluster have smaller numbers than those of the second cluster. Polar vectors are also constructed automatically according to the list of peaks prepared by the user. I.1.3 Smo othing

The general idea of the integrand smoothing is trivial. Let us need to evaluate
b a

F (x)dx ,

(49)

and let F (x) have a peak like f (x), where f (x) is a simple symbolically integrable function in contrast to F (x): g (x) =
x a

f (x )dx .

(50)

170


Now we may represent the integral (49) as
b a

F (x)dx =

g ( b) 0

dy

F (g -1 (y )) , f (g -1 (y ))

(51)

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, ¯, Z b, ¯ and H b, ¯ virb b b tual subprocesses may contribute just to the same amplitude. Although in this case we can evaluate the integral function g (x) symbolically, the inverse function g -1 (y ) can be computed only as a numerical solution of the corresponding equation. To bypass the calculation of inverse function CompHEP 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 (49), we could perform two ones: F (x)dx = F (x)f1 (x) dx + f1 (x) + f2 (x) F (x)f2 (x) dx , f1 (x) + f2 (x) (52)

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 [85] to separate peaks which came from various diagrams. In that paper there was also proposed to use the expression (52) 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 (52) where x is the two dimensional sphere angle [83, 84]. 171


I.2

Adaptive Monte Carlo integration package Vegas

This section contains a short description of the adaptive Monte Carlo program VEGAS. See for details [46, 47]. 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 g (x) dx = 1, then f (x) dx = f (x)/g (x) g (x) dx = = lim
N

(f (xi )/g (xi ))/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 proportional to square root of function's variance divided over N : N = (<(f /g )2> - 2 )/N .

VEGAS uses two techniques which allow to decrease the uncertainty of Monte Carlo calculation, namely the importance sampling and the stratified sampling. I.2.1 Imp ortance sampling

The idea of importance sampling technique is based on diminution of variance by a proper choice of the density function g(x). The general solution of this problem could be in choosing g (x) = |f (x)| / |f (x)| dx. However this solution is useless because it returns us to the problem of evaluation of f (x) integral and requires a generation of sampling points for complicated density function. To bypass these problems VEGAS seeks this function in the factored form g (x1 , x2 , . . . , xn ) = g1 (x1 ) g2 (x2 ) . . . gn (xn ). The optimal functions gi (x) could be easily evaluated in terms of f (x) [46, 47]. VEGAS is an adaptive program. For the first iteration it puts gi (x) = 1. The 172


information about f (x) which VEGAS gets during the iteration is used to refine the density function. Generally VEGAS performs several iterations improving the density function after each of them. The following parameters manage VEGAS work: 1. Itmx is a number of iterations; 2. Ncal l is a number of integrand calls for one iteration. I.2.2 Stratified sampling

The idea of stratified sampling method is to divide a volume of integration into a large number of sub-volumes and calculate integrals separately in each sub-volume. This method produces a smaller uncertainty comparing with the direct Monte Carlo method because here the uncertainty is caused only by a function variance in the sub-volumes, while the integrand variation from one sub-volume to another does not contribute to the uncertainty. The stratified sampling method is used to estimate the integral for any VEGAS iteration. The larger number Ncall is chosen, the smaller size of sub-volume becomes available and, consequently, the more successfully the stratified sampling works.

I.3

Generation of events

CalcHEP generates events according to the Von Neumann algorithm. See [58], p.202. Let the probability density f (x) is smaller that an easily generated density F (x)16 . Then one can generate x according to distribution F (x) and accept this event with probability f (x)/F (x). This procedure is repeated in cycle until the needed number of events is generated. To built F (x) CalcHEP divides the space volume on large number of subcubes and in each sub-cube sets F (x) a constant which equals to max f (x). CalcHEP has two strategies of detecting the corresponding maxima. First one is a random search. The program generates random points in each subcube and tests f (x) in these points. The second one is a search by the simplex method [47]. Here the program analyzes function in vertices of some simplex and tries to shift one vertex of this simplex to increase the function. This
16

We assume f (x) and F (x) are not normalized.

173


method leads to fast converges to local maximum, but one has to take into account that the distribution function can have several local maxima on the cub-cube boundary. Thus, preliminary random search needs to define a good start point for the search by the simplex method. The number of calls for random search and the number of steps for simplex search are defined by the user. In general, the detected maxima are lower than the true ones. To satisfy the inequality f (x) F (x) the function F (x) based on the detected maxima may be multiplied by some factor, say 2. Of course, it decreases the efficiency of the generator just on the same factor. Nevertheless, in some sub-cubes were the variance of the function is large this factor may be not enough. If CalcHEP finds a point x where f (x) > F (x) it accompany point with an integer weight w. This weight is the integral part of f (x)/F (x) plus one with the probability equal to the fraction part of f (x)/F (x). From view point of calculation of various distributions one event with integer weight w should be treated as w independent events with identical parameters. But for the evaluation of statistical uncertainties a more careful treatment is needed.

I.4

Format of event file.

In general all needed comments are attached to the file. See below an example of header of such file. The numbers which accompany particle symbols are codes of Monte Carlo particle numbering scheme. #CalcHEP version 2.3 #Type 2 -> 2 #Initial_state P1_3=1.000000E+02 P2_3=-1.000000E+02 StrFun1="ISR(1.00S^.5 Beamstr.: OFF)" 11 StrFun2="ISR(1.00S^.5 Beamstr.: OFF)" -11 #PROCESS 11(e) -11(E) -> 5(b) -5(B) #MASSES 0.00000E+00 0.00000E+00 4.62000E+00 4.62000E+00 #Cross_section(Width) 1.700425E+01 #Number_of_events 1000 174


After that the table of events is written. The first column presents weights of events. Normal value for weig ht is 1. The reason of appearance weig ht = 1 is explained in the section (I.3). After that the columns which specify the momenta of particles are presented. The first line of the table contains titles for the columns. Say P3_2 means the second component of momentum of the third particle. The zero, energy, components are not presented because they can be calculated using the information about the particle masses. For incoming particles only the third momentum component is presented because other ones are zero. After description of momentum the event record contains information about color flows. Each color flow is presented by a couple of particle numbers enclosed into brackets. It corresponds to propagation of color 3 from the first particle to the second one. See section (F) for algorithm of color flows generation. Information about color flows is need to PYTHIA [54] to generate the correct fragmentation of colored quarks and gluons.

175


J

Table of exit co des

For both s and n calchep normal termination the process was killed by the corresponding signal. error in edittab.c error in writing on the disk can not open X11 display can not find "fixed" X11 font LOCK file was not removed end of command sequence before end of program. For s calchep only. 20 exit code for restart caused by user break or problem with memory. 22 exit code for restart to realize " Make n calchep " 55 runtime error in colorf.c 60 error in lagrangian detected in the time of symbolic evaluation 62 error in model detected in the time of symbolic evaluation 70 not enough memory. 90? debug exit for read func.c 99 A needed directory, say "results", is absent and can't be created 102* LOCK file in 'results' forbids to continue symbolical session 110* error in input of process 111* process of the type specified is absent For n calchep only. 50 error in evaluation of QCD scale 51? can not recognize position of singularity 52? error in kinematics 53 runtime error caused by regularization(a pole in the phase space) 54 usrfun was not defined, but is used 121* wrong name of variable. 122* dependences can not be evaluated (NaN is produced) 123* energy is too small 124* can not evaluate cuts limlts 125* wrong format of table of regularizations The "*" symbol marks the exit codes which can be produced only in the blind mode. The "?" symbol marks exits included in the time of debugging. They are not expected and presented only for completeness. 0 2,.. 9..,16 59? 65 80 81 100 101* 176


References
[1] A. Pukhov, CalcHEP 2.3: MSSM, structure functions, event generation, batchs, and generation of matrix elements for other packages (2004). arXiv:hep-ph/0412191. [2] H. Tanaka, T. Kaneko, Y. Shimizu, Numerical calculation of Feynman amplitudes for electroweak theories and an application to e+ e- W+ W- gamma, Comput. Phys. Commun. 64 (1991) 149­166. doi:10.1016/0010-4655(91)90058-S. [3] F. Yuasa, et al., Automatic computation of cross sections in HEP: Status of GRACE system, Prog. Theor. Phys. Suppl. 138 (2000) 18­23. arXiv:hep-ph/0007053. [4] G. Belanger, et al., Automatic calculations in high energy physics and Grace at one-loop, Phys. Rept. 430 (2006) 117­209. arXiv:hepph/0308080, doi:10.1016/j.physrep.2006.02.001. [5] H. Murayama, I. Watanabe, K. Hagiwara, HELAS: HELicity amplitude subroutines for Feynman diagram evaluationsKEK-91-11. [6] A. Pukhov, et al., CompHEP: A package for evaluation of Feynman diagrams and integration over multi-particle phase space. User's manual for version 33 (1999). arXiv:hep-ph/9908288. [7] E. Boos, et al., CompHEP 4.4: Automatic computations from Lagrangians to events, Nucl. Instrum. Meth. A534 (2004) 250­259. arXiv:hep-ph/0403113, doi:10.1016/j.nima.2004.07.096. [8] J. Kublbeck, M. Bohm, A. Denner, FEYN ARTS: COMPUTER ALGEBRAIC GENERATION OF FEYNMAN GRAPHS AND AMPLITUDES, Comput. Phys. Commun. 60 (1990) 165­180. doi:10.1016/00104655(90)90001-H. [9] T. Hahn, Generating Feynman diagrams and amplitudes with FeynArts 3, Comput. Phys. Commun. 140 (2001) 418­431. arXiv:hep-ph/0012260, doi:10.1016/S0010-4655(01)00290-9.

177


[10] T. Hahn, Automatic loop calculations with FeynArts, FormCalc, and LoopTools, Nucl. Phys. Proc. Suppl. 89 (2000) 231­236. arXiv:hepph/0005029, doi:10.1016/S0920-5632(00)00848-3. [11] F. Maltoni, T. Stelzer, MadEvent: Automatic event generation with MadGraph, JHEP 02 (2003) 027. arXiv:hep-ph/0208156. [12] J. Alwall, M. Herquet, F. Maltoni, O. Mattelaer, T. Stelzer, MadGraph 5 : Going Beyond, JHEP 06 (2011) 128. arXiv:1106.0522, doi:10.1007/JHEP06(2011)128. [13] A. Kanaki, C. G. Papadopoulos, HELAC: A package to compute electroweak helicity amplitudes, Comput. Phys. Commun. 132 (2000) 306­ 315. arXiv:hep-ph/0002082, doi:10.1016/S0010-4655(00)00151-X. [14] C. G. Papadopoulos, PHEGAS: A phase space generator for automatic cross- section computation, Comput. Phys. Commun. 137 (2001) 247­ 254. arXiv:hep-ph/0007335, doi:10.1016/S0010-4655(01)00163-1. [15] A. Cafarella, C. G. Papadopoulos, M. Worek, Helac-Phegas: a generator for all parton level processes, Comput. Phys. Commun. 180 (2009) 1941­ 1955. arXiv:0710.2427, doi:10.1016/j.cpc.2009.04.023. [16] M. Moretti, T. Ohl, J. Reuter, O'Mega: An optimizing matrix element generatorarXiv:hep-ph/0102195. [17] W. Kilian, T. Ohl, J. Reuter, WHIZARD: Simulating Multi-Particle Processes at LHC and ILC (2007). arXiv:0708.4233. [18] T. Gleisberg, et al., SHERPA 1.alpha, a proof-of-concept version, JHEP 02 (2004) 056. arXiv:hep-ph/0311263, doi:10.1088/11266708/2004/02/056. [19] T. Gleisberg, et al., Event generation with SHERPA 1.1, JHEP 02 (2009) 007. arXiv:0811.4622, doi:10.1088/1126-6708/2009/02/007. [20] A. S. Belyaev, A. V. Gladyshev, A. V. Semenov, Minimal supersymmetric standard model within CompHEP software packagearXiv:hepph/9712303.

178


[21] G. Belanger, F. Boudjema, A. Pukhov, A. Semenov, micromegas: A program for calculating the relic density in the mssm, Comput. Phys. Commun. 149 (2002) 103­120. arXiv:hep-ph/0112278. [22] G. Belanger, F. Boudjema, C. Hugonie, A. Pukhov, A. Semenov, Relic density of dark matter in the NMSSM, JCAP 0509 (2005) 001. arXiv:hep-ph/0505142, doi:10.1088/1475-7516/2005/09/001. [23] G. Belanger, F. Boudjema, S. Kraml, A. Pukhov, A. Semenov, Relic density of neutralino dark matter in the MSSM with CP violation, Phys. Rev. D73 (2006) 115007. arXiv:hep-ph/0604150, doi:10.1103/PhysRevD.73.115007. [24] A. Belyaev, C.-R. Chen, K. Tobe, C. P. Yuan, Phenomenology of littlest Higgs model with T-parity: including effects of T-odd fermions, Phys. Rev. D74 (2006) 115020. arXiv:hep-ph/0609179, doi:10.1103/PhysRevD.74.115020. [25] A. Belyaev, C. Leroy, R. Mehdiyev, A. Pukhov, Leptoquark single and pair production at LHC with CalcHEP/CompHEP in the complete model, JHEP 09 (2005) 005. arXiv:hep-ph/0502067. [26] A. Belyaev, et al., Technicolor Walks at the LHC, Phys. Rev. D79 (2009) 035006. arXiv:0809.0793, doi:10.1103/PhysRevD.79.035006. [27] H.-J. He, et al., LHC Signatures of New Gauge Bosons in Minimal Higgsless Model, Phys. Rev. D78 (2008) 031701. arXiv:0708.2588, doi:10.1103/PhysRevD.78.031701. [28] N. Christensen, P. de Aquino, C. Degrande, C. Duhr, B. Fuks, M. Herquet, F. Maltoni, S. Schumann, A Comprehensive approach to new physics simulations, Eur. Phys. J. C71 (2011) 1541. arXiv:0906.2474, doi:10.1140/ep jc/s10052-011-1541-5. [29] A. Datta, K. Kong, K. T. Matchev, Minimal Universal Extra Dimensions in CalcHEP/CompHEP, New J. Phys. 12 (2010) 075017. arXiv:1002.4624, doi:10.1088/1367-2630/12/7/075017.

179


[30] B. A. Dobrescu, D. Hooper, K. Kong, R. Mahbubani, Spinless photon dark matter from two universal extra dimensions, JCAP 0710 (2007) 012. arXiv:0706.3409, doi:10.1088/1475-7516/2007/10/012. [31] B. A. Dobrescu, K. Kong, R. Mahbubani, Leptons and photons at the LHC: Cascades through spinless adjoints, JHEP 07 (2007) 006. arXiv:hep-ph/0703231, doi:10.1088/1126-6708/2007/07/006. [32] G. Burdman, B. A. Dobrescu, E. Ponton, Six-dimensional gauge theory on the chiral square, JHEP 02 (2006) 033. arXiv:hep-ph/0506334, doi:10.1088/1126-6708/2006/02/033. [33] G. Belanger, M. Kakizaki, A. Pukhov, Dark matter in UED : the role of the second KK levelarXiv:1012.2577. [34] G. Belanger, A. Pukhov, G. Servant, Dirac Neutrino Dark Matter, JCAP 0801 (2008) 009. arXiv:0706.0526, doi:10.1088/1475-7516/2008/01/009. [35] A. Semenov, LanHEP - a package for the automatic generation of Feynman rules in field theory. Version 3.0, Comput. Phys. Commun. 180 (2009) 431­454. arXiv:0805.0555, doi:10.1016/j.cpc.2008.10.012. [36] N. D. Christensen, C. Duhr, FeynRules - Feynman rules made easy, Comput. Phys. Commun. 180 (2009) 1614­1641. arXiv:0806.4194, doi:10.1016/j.cpc.2009.02.018. [37] P. Z. Skands, et al., SUSY Les Houches Accord: Interfacing SUSY Spectrum Calculators, Decay Packages, and Event Generators, JHEP 07 (2004) 036. arXiv:hep-ph/0311123, doi:10.1088/11266708/2004/07/036. [38] B. C. Allanach, et al., SUSY Les Houches Accord 2, Comp. Phys. Commun. 180 (2009) 8­25. arXiv:0801.0045, doi:10.1016/j.cpc.2008.08.004. [39] V. M. Budnev, I. F. Ginzburg, G. V. Meledin, V. G. Serbo, The Two photon particle production mechanism. Physical problems. Applications. Equivalent photon approximation, Phys. Rept. 15 (1975) 181­281. doi:10.1016/0370-1573(75)90009-5.

180


[40] M. R. Whalley, D. Bourilkov, R. C. Group, The Les Houches Accord PDFs (LHAPDF) and LhagluearXiv:hep-ph/0508110. [41] J. Alwall, et al., A standard format for Les Houches event files, Comput. Phys. Commun. 176 (2007) 300­304. arXiv:hep-ph/0609017, doi:10.1016/j.cpc.2006.11.010. [42] G. Belanger, F. Boudjema, A. Pukhov, A. Semenov, micrOMEGAs2.0: A program to calculate the relic density of dark matter in a generic model, Comput. Phys. Commun. 176 (2007) 367­382. arXiv:hepph/0607059, doi:10.1016/j.cpc.2006.11.008. [43] G. Belanger, et al., Indirect search for dark matter with micrOMEGAs2.4, Comput. Phys. Commun. 182 (2011) 842­856. arXiv:1004.1092, doi:10.1016/j.cpc.2010.11.033. [44] J. A. M. Vermaseren, Axodraw, Comput. Phys. Commun. 83 (1994) 45­58. doi:10.1016/0010-4655(94)90034-5. [45] A. C. Hearn, REDUCE 2 USERS MANUALSTAN-CS-70-181. [46] G. P. Lepage, A New Algorithm for Adaptive Multidimensional Integration, J. Comput. Phys. 27 (1978) 192. doi:10.1016/0021-9991(78)900049. [47] W. Press, S. Teukolsky, W. Vetterling, B. Flannery, Numerical recipes in C: the art of scientific computing, Cambridge University Press, 1999. [48] J. Bjorken, S. Drell, Relativistic quantum mechanics, International series in pure and applied physics, McGraw-Hill, 1964. [49] U. Baur, J. A. M. Vermaseren, D. Zeppenfeld, Electroweak vector boson production in high-energy e p collisions, Nucl. Phys. B375 (1992) 3­44. doi:10.1016/0550-3213(92)90332-6. [50] Y. Kurihara, D. Perret-Gallix, Y. Shimizu, e+ e- e- antielectron-neutrino u anti-d from LEP to linear collider energies, Phys. Lett. B349 (1995) 367­374. arXiv:hep-ph/9412215, doi:10.1016/03702693(95)00298-Y.

181


[51] E. Boos, M. Dubinin, L. Dudko, Higgs boson production under the resonance threshold at LEP II, Int. J. Mod. Phys. A11 (1996) 5015­ 5026. arXiv:hep-ph/9602220, doi:10.1142/S0217751X96002315. [52] E. Byckling, K. Ka jantie, Particle kinematics, Wiley, 1973. [53] V. A. Ilyin, D. N. Kovalenko, A. E. Pukhov, Recursive algorithm for the generation of relativistic kinematics for collisions and decays with regularizations of sharp peaks, Int. J. Mod. Phys. C7 (1996) 761. arXiv:hepph/9612479, doi:10.1142/S0129183196000648. [54] T. Sjostrand, High-energy physics event generation with PYTHIA 5.7 and JETSET 7.4, Comput. Phys. Commun. 82 (1994) 74­90. doi:10.1016/0010-4655(94)90132-5. [55] J. Alwall, et al., A Les Houches Interface for BSM GeneratorsarXiv:0712.3311, doi:10.2172/921331. [56] S. Belov, L. Dudko, D. Kekelidze, A. Sherstnev, HepML, an XMLbased format for describing simulated data in high energy physics, Comput. Phys. Commun. 181 (2010) 1758­1768. arXiv:1001.2576, doi:10.1016/j.cpc.2010.06.026. [57] G. Belanger, N. D. Christensen, A. Pukhov, A. Semenov (2010). arXiv:1008.0181. [58] Pardicle data group. URL http://pdg.lbl.gov [59] B. C. Allanach, Softsusy: A c++ program for calculating supersymmetric spectra, Comput. Phys. Commun. 143 (2002) 305­331. arXiv:hepph/0104145. [60] W. Porod, Spheno, a program for calculating supersymmetric spectra, susy particle decays and susy particle production at e+ e- colliders, Comput. Phys. Commun. 153 (2003) 275­315. arXiv:hep-ph/0301101. [61] A. Djouadi, J.-L. Kneur, G. Moultaka, Suspect: A fortran code for the supersymmetric and higgs particle spectrum in the mssm, hepph/0211331 (2002). 182


[62] U. Ellwanger, C. Hugonie, NMSPEC: A Fortran code for the sparticle and Higgs masses in the NMSSM with GUT scale boundary conditions, Comput. Phys. Commun. 177 (2007) 399­407. arXiv:hep-ph/0612134, doi:10.1016/j.cpc.2007.05.001. [63] A. Djouadi, The Anatomy of electro-weak symmetry breaking. I: The Higgs boson in the standard model, Phys.Rept. 457 (2008) 1­216. arXiv:hep-ph/0503172, doi:10.1016/j.physrep.2007.10.004. [64] A. Djouadi, The Anatomy of electro-weak symmetry breaking. II. The Higgs bosons in the minimal supersymmetric model, Phys.Rept. 459 (2008) 1­241. arXiv:hep-ph/0503173, doi:10.1016/j.physrep.2007.10.005. [65] K. Chetyrkin, B. A. Kniehl, M. Steinhauser, Decoupling relations to O (alpha-s**3) and their connection to low-energy theorems, Nucl.Phys. B510 (1998) 61­87. arXiv:hep-ph/9708255, doi:10.1016/S05503213(97)00649-4. [66] K. Chetyrkin, B. A. Kniehl, M. Steinhauser, W. A. Bardeen, Effective QCD interactions of CP odd Higgs bosons at three loops, Nucl.Phys. B535 (1998) 3­18. arXiv:hep-ph/9807241. [67] M. Spira, A. Djouadi, D. Graudenz, P. Zerwas, Higgs boson production at the LHC, Nucl.Phys. B453 (1995) 17­82. arXiv:hep-ph/9504378, doi:10.1016/0550-3213(95)00379-7. [68] P. Baikov, K. Chetyrkin, Higgs Decay into Hadrons to Order alpha**5(s), Phys.Rev.Lett. 97 (2006) 061803. arXiv:hep-ph/0604194, doi:10.1103/PhysRevLett.97.061803. [69] S. Dawson, A. Djouadi, M. Spira, Qcd corrections to susy higgs production: The role of squark loops, Phys. Rev. Lett. 77 (1996) 16­19. arXiv:hep-ph/9603423. [70] R. Barbieri, L. J. Hall, V. S. Rychkov, Improved naturalness with a heavy Higgs: An Alternative road to LHC physics, Phys.Rev. D74 (2006) 015007. arXiv:hep-ph/0603188, doi:10.1103/PhysRevD.74.015007.

183


[71] L. Lopez Honorez, C. E. Yaguna, The inert doublet model of dark matter revisited, JHEP 09 (2010) 046. arXiv:1003.3125, doi:10.1007/JHEP09(2010)046. [72] F. Staub, SARAH, arXiv:0806.0538 [hep-ph]. arXiv:0806.0538. [73] S. Wolfram, Mathematica: A System for Doing Mathematics by Computer, 1988. [74] L. Baulieu, Perturbative Gauge Theories, Phys. Rept. 129 (1985) 1. doi:10.1016/0370-1573(85)90091-2. [75] T. P. Cheng, L. F. Li, GAUGE THEORY OF ELEMENTARY PARTICLE PHYSICSOxford, Uk: Clarendon ( 1984) 536 P. ( Oxford Science Publications). [76] A. P. Kryukov, A. Y. Rodionov, COLOR: PROGRAM FOR CALCULATION OF GROUP WEIGHTS OF FEYNMAN DIAGRAMS IN NONABELIAN GAUGE THEORIES, Comput. Phys. Commun. 48 (1988) 327­334. doi:10.1016/0010-4655(88)90052-5. [77] I. F. Ginzburg, G. L. Kotkin, V. G. Serbo, V. I. Telnov, Colliding gamma e and gamma gamma Beams Based on the Single Pass Accelerators (of Vlepp Type), Nucl. Instr. Meth. 205 (1983) 47­68. doi:10.1016/01675087(83)90173-4. [78] E. A. Kuraev, V. S. Fadin, On Radiative Corrections to e+ e- Single Photon Annihilation at High-Energy, Sov. J. Nucl. Phys. 41 (1985) 466­ 472, [Yad.Fiz.41:733-742,1985]. [79] M. Skrzypek, S. Jadach, Exact and approximate solutions for the electron nonsinglet structure function in QED, Z. Phys. C49 (1991) 577­584. doi:10.1007/BF01483573. [80] P. Chen, Differential luminosity under multi - photon beamstrahlung, Phys. Rev. D46 (1992) 1186­1191. doi:10.1103/PhysRevD.46.1186. [81] J. Pumplin, et al., New generation of parton distributions with uncertainties from global qcd analysis, JHEP 07 (2002) 012. arXiv:hepph/0201195. 184


[82] A. D. Martin, R. G. Roberts, W. J. Stirling, R. S. Thorne, Uncertainties of predictions from parton distributions. 1: Experimental errors, Eur. Phys. J. C28 (2003) 455­473. arXiv:hep-ph/0211080, doi:10.1140/ep jc/s2003-01196-2. [83] V. A. Ilyin, D. N. Kovalenko, A. E. Pukhov, Recursive algorithm for the generation of relativistic kinematics for collisions and decays with regularizations of sharp peaks, Int. J. Mod. Phys. C7 (1996) 761. arXiv:hepph/9612479, doi:10.1142/S0129183196000648. [84] D. N. Kovalenko, A. E. Pukhov, Multiparticle phase space integration with arbitrary set of singularities in CompHEP, Nucl. Instrum. Meth. A389 (1997) 299­300. doi:10.1016/S0168-9002(97)00102-2. [85] F. A. Berends, R. Pittau, R. Kleiss, Excalibur: A Monte Carlo program to evaluate all four fermion processes at LEP-200 and beyond, Comput. Phys. Commun. 85 (1995) 437­452. arXiv:hep-ph/9409326, doi:10.1016/0010-4655(94)00138-R.

185