Table Of ContentNews from FormCalc and LoopTools
Thomas Hahn, Michael Raucha MPP-2006-7
aMax-Planck-Institut fu¨r Physik
F¨ohringer Ring 6, D–80805 Munich, Germany
6
0
0 TheFormCalcpackageautomatesthecomputationofFeynArtsamplitudesuptooneloopincludingthe
2 generation of a Fortran code for the numerical evaluation of the squared matrix element. Major new or
n enhancedfeaturesinVersion5are: iterativebuild-upofessentially arbitrary phase-spacesincludingcuts,
a convolutionwithdensityfunctions,anduniformtreatmentofkinematicalvariables. TheLoopToolslibrary
J supplies the one-loop integrals necessary for evaluating the squared matrix element. Its most significant
0 extensions in Version 2.2 are thefive-point family of integrals, and complex and alternate versions.
3
1
1. Introduction Enhanced cache functionality,
v •
8
FormCalc [1] is a Mathematica package for Betterinternalaccuracy,andacomplete
4 •
the calculation of Feynman amplitudes. Am- quadruple precision build available on
2
1 plitudes generated by FeynArts [2] are sim- Intel x86/ifort platforms.
0 plified analytically and converted to a self-
6 contained Fortran code for the computation 2. FormCalc
0
of the squared matrix element. The present
/ 2.1. Phase-space
h article describes the following features added
p or enhanced in Version 5: FormCalc 5 no longer uses hand-tailored
- phase-space parameterizations like its prede-
p
Iterative build-up of essentially arbi- cessor versions, but builds up the n-particle
e •
h trary phase-spaces with various cuts, phase-spaceiteratively by nested integrations
: overthe invariantmassM andsolidangleΩ
v Convolution with density functions for i i
i • of each outgoing particle i. This procedure is
X external particles,
encoded in the subroutine Split:
r
a Uniform treatment of kinematic vari-
•
ables,
Ω1 m1
√s
Better modularity and code reusabil- m2
•
ity, i.e. less cross-talk between program Ω2
modules. M
1
TheLoopToolslibrarysuppliestheimplemen- call Split mn 1
−
tations ofthe scalarandtensorone-loopinte- M2 Ωn 1
grals necessary for running the Fortran code ...−
generated by FormCalc. The extensions in Ω
n
Version 2.2 are:
m
n
Additionofthefive-pointfamilyoffunc-
•
tions,
Counting the degrees of freedom, there are
(n 1) M-integrations and n Ω-integrations.
A collective two-point function Bget
−
• Thecorrespondingphase-spaceparameteriza-
similar to Cget and Dget,
tion is
Complex versions of most integrals,
• 1 √s−m1 k1
Run-time selection of alternate versions 2√sZ dM1dΩ1 2
• for checking, m2+···+mn
M1 m2 k
− 2
A command-line interface, ×Z dM2dΩ2 2
• m3+ +mn
···
2Thomas Hahn, Michael Rauch MPP-2006-7
Var(v) = the actual value of v.
×··· •
Mn−2−mn−1 kn 1 Show(v)=the valueprintedinthe out-
×Zmn dMn−1dΩn−1 2− • put – to print e.g. t instead of cosθ.
k
dΩ n (1) Lower(v), Upper(v), Step(v) = the
×Z n 2 •
lower limit, upper limit, and step width
where dΩ = dcosθ dϕ . The particle’s mo- ofv. Ifthestepiszero,thecross-section
i i i
mentum k and cosθ are given in the respec- is integrated over v.
i i
tive decay’s rest frame. The ϕ1-integration CutMin(v),CutMax(v)= the lowerand
is trivial because of axial symmetry. From •
upper cuts on v.
the practical point of view this looks as fol-
lows(this codeis takenalmostverbatimfrom There are two special variables: FIXED for
FormCalc’s 2to3.F): fixed values, i.e. no integration, and TRIVIAL
for trivial integrations.
p = 0
ex = 0 2.3. Cuts
ey = 0 Split allows to place cuts on each M- and
ez = 1 cosθ-integration. The ϕ-integration is not
minv = sqrtS
modified in the present setup.
msum = MASS3 + MASS4 + MASS5
Cuts restricting M
i
call Split(5, dble(MASS5), Cut on Key
& p, ex,ey,ez, minv, msum, fac, 0, M CUT_MREM
i
& Var(XMREM5), Var(XCOSTH5), Var(TRIVIAL)) E CUT_MREM_E
i
k CUT_MREM_K
i
call Split(4, dble(MASS4),
E CUT_MREM_ET
& p, ex,ey,ez, minv, msum, fac, 0, T,i
k CUT_MREM_KT
& Var(FIXED), Var(XCOSTH4), Var(XPHI4)) T,i
y CUT_MREM_RAP
i
η CUT_MREM_PRAP
call VecSet(3, dble(MASS3), p, ex,ey,ez) i
One starts with the initial reference direction Cuts restricting cosθ
i
in(ex,ey,ez)andnoboost,p = 0. Theavail- Cut on Key
ableenergyisgiveninminvandthesumofex- cosθ CUT_COSTH
i
ternal masses in msum. The Split subroutine cosθˆ CUT_COSTHCMS
i
is then called (n 1) times for an n-particle
E CUT_COSTH_E
− i
finalstate. Thereferencedirection,theboost,
k CUT_COSTH_K
i
minv, and msum are automatically adjusted
along the way for the respective remaining In practice, the application of cuts works as
subsystem and ultimately determine the re- follows:
maining n-th vector unambigously, which is key = 0
then simply set by VecSet.
About the integration variables more will CutMin(XMREM5) = E5MIN
be said in the next section. For the moment, key = key + Cut(CUT_MREM_E, CUT_MIN)
note that the X in XMREM5 refers to the ratio,
i.e. XMREM5runs from0 to 1. The actual inte- CutMin(XCOSTH5) = -(1 - COSTH5CUT)
CutMax(XCOSTH5) = +(1 - COSTH5CUT)
gration borders are determined internally by
key = key +
Split.
& Cut(CUT_COSTH, CUT_MIN + CUT_MAX)
2.2. Variables
FormCalc 5 introduces a new homogeneous call Split(5, dble(MASS5),
& p, ex,ey,ez, minv, msum, fac, key,
system for all (potential) integration vari-
& Var(XMREM5), Var(XCOSTH5), Var(TRIVIAL))
ables. Each variable is referred to by a pre-
...
processorconstant,e.g.SQRTSorXCOSTH.The
followingpartscanbe accessedviapreproces- The value of the cut is deposited in CutMin
sor macros: or CutMax and the cut registered by adding
News from FormCalc and LoopTools 3
an identifier for the cut to the integer key, Kinematics definitions:
•
e.g. Cut(CUT_MREM_E, CUT_MIN) specifies a 1to2.F,
cut on the energy (CUT_MREM_E) from be- 2to2.F,
low (CUT_MIN) which is used to restrict the 2to3.F,
invariant-mass integration (CUT_MREM_E).
Note that these cuts really restrict the in- Convolution with PDFs:
•
tegration limits. They do not introduce veto lumi_parton.F,
functions (1 in wanted, 0 in unwanted areas) lumi_hadron.F,
intotheintegrand,whichcanseverelyhamper lumi_photon.F,
convergence.
Model initialization:
Inaddition,foreachexternalparticleisev- •
model_sm.F,
eral kinematical quantities are available:
model_mssm.F,
momspec(SPEC_M,i) model_thdm.F.
•
– mass m,
There is almost no cross-talk between differ-
momspec(SPEC_E,i) ent modules which are in that sense ‘univer-
•
– energy E, sal.’ Also, the main program has been rad-
ically slimmed down in FormCalc 5. It now
momspec(SPEC_K,i) only scans the command line and invokes
•
– momentum k,
call ProcessIni(...)
momspec(SPEC_ET,i) call ParameterScan(...)
•
– transverse energy E ,
T
All further action is decoupled from the main
momspec(SPEC_KT,i) program and can easily be called from any
•
– transverse momentum k , application. It is thus straightforward to use
T
FormCalc-generatedcode in own programs.
momspec(SPEC_RAP,i)
•
– rapidity y, 3. LoopTools
momspec(SPEC_PRAP,i) LoopToolsisalibraryfortheone-loopinte-
•
– pseudo-rapidity η, grals. ItisbasedonFF[5]andhasaFortran,
C/C++,andMathematicainterface. Itisref-
momspec(SPEC_DELTAK,i)
erenced by the FormCalc-generated code but
•
– the difference E k.
− canof course be used also without FormCalc.
2.4. Convolution
3.1. Five-point functions
Withthenewvariablesystem,theconvolu-
The most significant addition is the five-
tion with arbitrary parton distribution func-
point family of functions – the scalar inte-
tions can easily be achieved. Three modules
gralE0 and the tensor coefficients up to rank
are already included in FormCalc 5:
four. The default versions use the Denner–
Dittmaier decomposition [6] in which one in-
lumi_parton.F = initial-state partons,
• verse power of the Gram determinant is can-
no convolution.
celled and thus has considerably better nu-
lumi_hadron.F= initial-state hadrons, merical stability than the Passarino–Veltman
• convolution with hadronic PDFs from [7] decomposition, which is also available for
the LHAPDF library [3]. comparison.
3.2. Combined two-point function
lumi_photon.F= initial-state photons,
• The two-point functions have been united
convolutionwithCompAZspectrum[4].
into the Bgetfunction which workssimilar to
2.5. Modularity and Code-Reusability itsCget,Dget,andEgetcounterparts,inpar-
The choice of parameters is directed as in ticularitcachesitsresults. Compatibilityrou-
previous versions by the two files process.h tinesfortheoldB0,B1,etc.areofcourseavail-
and run.F, which include one each of able. The reasonis mainly cache efficiency in
4Thomas Hahn, Michael Rauch MPP-2006-7
view of the five-point decomposition: 3.6. Environment variables
Version key, debug key, and debug range
calls
Eget 5Dget
−→ canbesetalsofromthe‘outside,’i.e.through
call (5 4)Cget environment variables, thus making it unnec-
−→ · essary to recompile the code. Unfortunately,
call
(5 4 3)Bget (2) the KeyX and DebugX labels cannot be used
−→ · ·
3.3. Complex versions ontheshellcommand-line,but-1offersacon-
Versions of the LoopTools functions for venient way to set all bits of an integer, thus
complex parameters have been added as far havingthesameeffectasKeyAllorDebugAll.
as they are contained in FF, i.e. currently For example:
only some special cases for the complex D0 setenv LTVERSION -1
are available.
setenv LTDEBUG -1
real versions complex versions setenv LTRANGE 4711-4715
A0, A00 A0C, A00C
3.7. Command-line Interface
B0, B1, ... B0C, B1C, ...
The new command-line interface is useful
B0i, Bget B0iC, BgetC
in particular for testing and debugging. It
C0, C0i, Cget C0C, C0iC, CgetC
liststheN-pointscalarandtensorcoefficients
D0, D0i, Dget D0C, D0iC, DgetC
corresponding to the number of arguments,
E0, E0i, Eget E0C, E0iC, EgetC
i.e. 3 arguments = B, 6 arguments = C,
3.4. Alternate versions
etc. Currently only the real versions are ac-
For some functions alternate versionsexist,
cessible through the command-line interface,
mostofwhicharebasedonanimplementation
mainly because it is not straightforward syn-
by Denner. The user can choose at run-time
tactically to specify complex parameters on
whether the default version ‘a’ (mostly FF)
the command-line.
or the alternate version ‘b’ (mostly Denner)
is used and whether checking is performed. 3.8. LoopTools caches
This is determined by the version key: The internal caching mechanism is mean-
while used by the following functions: Bget,
0*key compute version ‘a’,
Cget, Dget, Eget, BgetC, CgetC, DgetC, and
1*key compute version ‘b’,
EgetC. Obviously the former system with
2*key compute both, compare, return ‘a’,
its getcachelast and setcachelast call for
3*key compute both, compare, return ‘b’.
each individual cache was no longer practica-
Usage is as in
ble for all those caches.
call setversionkey(2*KeyC0 + 3*KeyD0) The new cache-management functions op-
erate on all caches simultaneously:
The following keys for alternate versions are
currently available: KeyA0, KeyBget, KeyC0, call clearcache
KeyD0,KeyEget,KeyEgetC.KeyAllcomprises • – clears all caches,
all of these.
call markcache
3.5. Debugging • – marks the current position,
Debugging output can be turned on simi-
larly with e.g. call restorecache
•
– reverts to the last marked position.
call setdebugkey(DebugC + DebugD)
Forcompatibility,LoopToolsstillincludestwo
Identifiers range from DebugB to DebugE and
routines getcachelast and setcachelast.
are summarized by DebugAll. The integrals
Theyworkonlyapproximatelyasbefore,how-
are listed in the output with a unique serial
ever, and are therefore deprecated.
number. If the list of integrals becomes too
Furthermore, the cache mechanism itself
long,onecanselectonlyarangeofserialnum-
has been improved and now uses a binary
bers for viewing, as in
search method. Cache lookups are thus now
call setdebugrange(4711, 4715)
faster, but as this has not often been a bot-
This makes it easy to monitor ‘suspicious’ in- tleneck, the impact on program performance
tegrals. will typically be minor in most applications.
News from FormCalc and LoopTools 5
3.9. Accuracy alternate versions, by program call or
The accuracy of the tensor reduction has through an environment variable.
been improved through the use of an LU de-
In the same manner, debugging output
compositionfortheGrammatrixandquadru-
•
canbe turnedonandoffindividuallyat
ple precision at strategic points internally.
run-time.
Thanks to the Intel ifort compiler, the latter
is now widely available on the x86 platform.
The cache system has been extended
A complete quadruple-precision build can •
and improved.
be chosen with an alternate makefile. In par-
ticular the quadruple-precision version of the A new command-line interface is useful
•
frontend can be useful to check cases where a for testing and debugging.
severe loss of precision is suspected.
Theaccuracyofthetensorreductionhas
•
been enhanced.
4. Summary
A complete quadruple-precision build
FormCalc 5 is the current release of the
•
canbechosenwithanalternatemakefile
FormCalcpackagewiththefollowingnewfea-
(e.g. make -f makefile.quad-ifort).
tures and extensions:
New kinematics routines can build up Both packages are available as open source
• almost arbitrary phase-spaces with a and stand under the GNU Lesser General
wide range of cuts possible. PublicLicense(LGPL).Theycanbeobtained
from the Web sites
FormCalc’s driver code consists of in- http://www.feynarts.de/formcalc,
•
tuitively programmed, concise modules http://www.feynarts.de/looptools.
withalmostnocross-talkbetweenthem.
Calling FormCalc-generated code from Acknowledgments
other applications has been much sim-
We thank S. Dittmaier for significant help
plified.
with the implementation and comparison of
Convolution with arbitrary distribution the five-point functions and C. Schappacher
•
functions is possible. The following for intensive beta-testing.
common cases are available out-of-the-
box (if FormCalc came in one): REFERENCES
– partons (no convolution), 1. T. Hahn, M. P´erez-Victoria,Comp.
– hadrons (uses LHAPDF), Phys. Commun. 118 (1999) 153
[hep-ph/9807565].
– photons (uses CompAZ).
2. T. Hahn, Comp. Phys. Commun. 140
All possible integration variables are (2001) 418 [hep-ph/0012260].
• treateduniformlyanddetailedkinemat- 3. M.R. Whalley, D. Bourilkov,
icalinformationisavailableforallexter- R.C. Group, hep-ph/0508110,
nal legs. http://hepforge.cedar.ac.uk/lhapdf.
4. A.F. Zarnecki, Acta Phys. Polon. B34
LoopTools 2.2 is the latest version of the (2003) 2741 [hep-ex/0207021].
LoopTools library with the following novel- 5. G.J. van Oldenborgh,
ties: J.A.M. Vermaseren, Z. Phys. C 46
(1990) 425.
The scalar five-point function including
• 6. A. Denner, S. Dittmaier, Nucl. Phys. B
its tensor coefficients up to rank four is
658 (2003) 175 [hep-ph/0212295].
provided.
7. G. Passarino,M.J. Veltman, Nucl. Phys.
Complex versionsare available as far as B 160 (1979) 151.
•
implemented in FF.
Checking can be enabled at run-time,
•
individually for all integrals which have