Brief Tutorial On Feyncalc: Vladyslav Shtabovenko
Brief Tutorial On Feyncalc: Vladyslav Shtabovenko
Brief Tutorial On Feyncalc: Vladyslav Shtabovenko
based on
arXiv:1601.01167, arXiv:1611.06793
Vladyslav Shtabovenko
Physik-Department T30f
A generic perturbative QFT calculation There are many ways to automatize such
may involve many steps calculations:
I Feynman diagrams
Self-written codes
I Feynman rules from L
I Diagram generation Write private codes in
I Amplitudes FORM [Vermaseren, 2000], M ATHEMATICA,
I ... M APLE, R EDUCE, . . .
I Dirac algebra
I Simplification of γ-matrix chains Separate packages
I Dirac traces Automatize each step separately using
I Fierz identities standalone packages (e. g. F EYN A RTS,
I ... L OOP TOOLS [Hahn & Perez-Victoria, 1999],
I Loop integrals F EYN RULES [Christensen & Duhr, 2008],
QG RAF [Nogueira, 1993],
I Tensor reduction T RACER [Jamin & Lautenbacher, 1993],
I Partial fractioning F ORM T RACER [Cyrol et al., 2016],
I Mapping of topologies F ORCER [Ruijl et al., 2017],
I IBP-Reduction PY S EC D EC [Borowka et al., 2017], . . . ).
I Numerical evaluation
I ...
I Phase space integrals All-in-one packages
I ... Employ all-in-one packages that handle
most of these steps in one framework.
F EYN C ALC
I M ATHEMATICA package for symbolic
semi-automatic QFT calculations
I Open source (GPLv3) and publicly available
I Can process Feynman diagrams and
standalone QFT expressions
I Widely used in Effective Field Theory
calculations
I Many sample tree and 1-loop calculations (QED, EW, QCD) included
I Public source code repository: https://www.github.com/feyncalc
I hotfix-stable branch: stable version + bugfixes
I master branch: development version (new features, less stable)
I Extensive unit testing framework (based on MUnit, over 4000 tests)
When is F EYN C ALC useful? What are the limitations of F EYN C ALC?
I Small or medium-sized I Cannot be used without
calculations, too specific for fully M ATHEMATICA
automatic packages I Inherits M ATHEMATICA’s
I F EYN C ALC as a “calculator” for performance problems with large
QFT expressions number of terms
I Cross-check results from other I Not really suited for very large and
people complex calculations
I Extensive manipulations on the I Much slower than FORM
level of the amplitudes I Only algebraic manipulations.
New functions
I FCRenameDummyIndices (v. 9.0): pµ qµ → pα qα
I FCCanonicalizeDummyIndices (v. 9.1): pµ qµ + pν qν → 2pα qα
I p − /̄
FCGetDimensions (v. 9.2): / p → {D, D − 4}
New functions
γ µ ( p +m)γ e2
I FCDiracIsolate (v. 9.1): e2 (q2 −m/2 )(q2 −pµ2 ) → (q2 −m2 )(q2 −p2 )
[γ µ (/
p + m)γµ ]
I Most changes in the Dirac algebra related functions happened under the hood
(performance improvements, cleaner code . . . )
New functions
I ToPaVe (v. 9.0): 1
q2 −m2
→ iπ 2 A0 (m2 )
q/1 q/2 1 m2 1
I FCMultiLoopTID (v. 9.0): q21 q22 [(q1 −q2 )2 −m2 ]
→ q21 [(q1 −q2 )2 −m2 ]
− 2 q2 q2 [(q1 −q2 )2 −m2 ]
1 2
1 1 1
I ApartFF (v. 9.0): q2 (q−p)2 (q+p)2
→ p2 q2 (q−p)2
− p2 q2 (q−2p)2
I FCLoopBasisIncompleteQ (v. 9.0): Do the propagators of the given loop
integral form a basis?
I FCLoopBasisOverDeterminedQ (v. 9.0): Is the propagator basis
overdetermined?
I FCLoopBasisFindCompletion (v. 9.0): Which propagators need to be added to
have the complete basis?
The first step into the right direction: F EYN H ELPERS [Shtabovenko, 2017]
I Seamless integration of PACKAGE -X [Smirnov, 2015] and FIRE [Patel, 2015] into
F EYN C ALC
I Access the PACKAGE -X library of analytic results for 1-loop integrals and the
IBP-reduction engine of FIRE directly from a F EYN C ALC session
I All conversions (syntax, normalization) are automatic and require no user
intervention
I Open-source interface code: https://github.com/FeynCalc/feynhelpers
I F EYN H ELPERS comes with many neat examples from QED, QCD, EW, EFTs etc.
Consider
lµ lν
Z
I µν = , with P2 = 4m2Q
l l2 [(l + P/2)2 − mQ ][(l − P/2)2 − mQ ]2
F EYN C ALC can handle this integral, but the result is not particularly enlightening
With F EYN C ALC and F EYN H ELPERS such calculations become almost trivial...
The performance is, however, still an issue and will be improved in the subsequent
versions (by switching to the C++ backend of FIRE)
V. Shtabovenko (TUM) @ EFT School, 3.07.2017 FeynCalc 13 / 14
Summary and Outlook
I Modern HEP theory and phenomenology heavily rely on programs for automatic
calculations.
I The market for QFT software is growing rapidly, new tools appear almost monthly.
I Different projects require different tools and F EYN C ALC is one of them.
I The development of F EYN C ALC focuses on versatility, flexibility, convenience and
performance.
I F EYN C ALC is particularly useful for “nonstandard” calculations that are not covered
by other (more automatic) tools.
I In the last 3 years we tried to achieve several goals:
I Refactor the source code, fix old (and new) bugs, make things faster
I Facilitate manipulations of tree and loop amplitudes by introducing new functions and
improving the existing ones
I Interface F EYN C ALC with other tools useful for HEP calculations
I Yet, much still remains to be done:
I There is still a lot of room for improvements regarding stability, the number of available
function and their performance.
I We need more interfaces to other HEP packages, e. g. to L ITE R ED [Lee, 2012], S@M
[Maitre & Mastrolia, 2008], F ORM T RACER [Cyrol et al., 2016], QG RAF [Nogueira, 1993].
PACKAGE -X
I Recent [Patel, 2015] M ATHEMATICA package for semi-automatic 1-loop calculations
(closed-source freeware)
I Unique feature: Library of analytic expressions for Passarino–Veltman functions
with up to 4 legs and almost arbitrary kinematics.
I Can also extract UV- and IR-parts and expand coefficient functions in their
arguments.
I Someone indeed has collected all those results from the literature!
Interface to PACKAGE -X
I Main function: PaXEvaluate
I Works: on scalar 1-loop integrals (unit numerators) and Passarino–Veltman
coefficient functions A, B, C and D
I Takes two arguments (plus options): input expression, loop momentum.
I Use PaXEvaluateUV(PaXEvaluateIR) to get the UV(IR)-divergent part of the
result
I PaXEvaluateUVIRSplit returns the full result with the explicit distinction
between UV and IR .
I All four functions share the same set of options
dD q 1
R
Let us compute (2π)D q2 −m2
In[1]:= →1/(2Pi)^D]
int=PaXEvaluate[FAD[{q,m}],q,PaXImplicitPrefactor→
µ2
im2 −log
im2 +γ−1−log(4π)
m2
Out[1]= −
16π 2 ε 16 π 2
Make the result look more compact (∆ ≡ 1/ − γE + log(4π)) using FCHideEpsilon
In[2]:= int//FCHideEpsilon
2 µ2
i∆m2 im log m2 +1
Out[2]= +
16π 2 16π 2
Evaluation of Passarino–Veltman functions:
In[3]:= PaXEvaluate[B0[SPD[p,p],0,m^2]]
2 m2 log m2
m2
1 µ m2 −p2
Out[3]= +log 2
− 2
+log 2 2
−γ+2
ε πm p m −p
Integration-by-parts identities
I Reduction of scalar loop integrals using integration-by-parts (IBP) identities
[Chetyrkin & Tkachov, 1981] is a standard technique in modern loop calculations.
I Many publicly available IBP-packages on the market: FIRE [Smirnov & Smirnov, 2013],
L ITE RED [Lee, 2012], R EDUZE [Studerus, 2009], AIR [Anastasiou & Lazopoulos, 2004], . . .
I Expected input: loop integrals with propagators that form a basis.
I What about integrals with an incomplete or overdetermined basis?
I FCLoopBasisIncompleteQ detects integrals that require a basis completion
I FCLoopBasisFindCompletion gives a list of propagators (with zero exponents)
required to complete the basis
I FCLoopBasisOverdeterminedQ checks if the propagators are linearly dependent.
Such integrals can be decomposed further using ApartFF.
Interface to FIRE
I Main function: FIREBurn
I Reduces scalar multi-loop integrals to simpler ones using IBP-techniques.
I Takes three arguments (plus options): input expression, list of loop momenta and
the list of external momenta.
I Automatically adds propagators to integrals with incomplete bases of propagators
I Automatically detects integrals with linearly dependent propagators
Current limitations
I No recognition of integral families
I Each loop integral is evaluated separately
I Hence, rather inefficient ...
dD l
R
IBP-reduce the 1-loop integral [l2 ]2 [(l−p)2 −m2 ]2
In[9]:= FIREBurn[FAD[{l,0,2},{l−p,m,2}],{l},{p}]
No dependence on external momenta → supply an empty list for the third argument. For
D D
q2 d D q3
example, for [q2 −m2 ]2 [(q d+qq1)d2 −m
R
2 ][(q −q )2 ][q2 ]2
1 1 3 2 3 2
In[10]:= FIREBurn[FAD[{q1,m,2},{q1+q3,m},{q2−q3},{q2,0,2}],{q1,q2,q3},{}]
(D−3)(3 D−10)(3 D−8)
Out[10]= −
16(2 D−7)m4 (q12 −m2 ).q22 .(q2−q3)2 .((q1+q3)2 −m2 )
Belanger, G., Boudjema, F., Fujimoto, J., Ishikawa, T., Kaneko, T., Kato, K., & Shimizu, Y. (2006).
GRACE at ONE-LOOP: Automatic calculation of 1-loop diagrams in the electroweak theory with gauge
parameter independence checks.
Phys. Rept., 430, 117–209.
Boos, E., Bunichev, V., Dubinin, M., Dudko, L., Ilyin, V., Kryukov, A., Edneral, V., Savrin, V., Semenov, A., &
Sherstnev, A. (2004).
CompHEP 4.4: Automatic computations from Lagrangians to events.
Nucl. Instrum. Meth., A534, 250–259.
Borowka, S., Heinrich, G., Jahn, S., Jones, S. P., Kerner, M., Schlenk, J., & Zirke, T. (2017).
pySecDec: a toolbox for the numerical evaluation of multi-scale integrals.
Cullen, G., Guillet, J. P., Heinrich, G., Kleinschmidt, T., Pilon, E., Reiter, T., & Rodgers, M. (2011).
Golem95C: A library for one-loop integrals with complex masses.
Comput. Phys. Commun., 182, 2276–2284.
Cullen, G., van Deurzen, H., Greiner, N., Heinrich, G., Luisoni, G., Mastrolia, P., Mirabella, E., Ossola, G.,
Peraro, T., Schlenk, J., von Soden-Fraunhofen, J. F., & Tramontano, F. (2014).
GoSam-2.0: a tool for automated one-loop calculations within the Standard Model and beyond.
Eur. Phys. J. C, 74, 8, 3001.
Lee, R. N. (2012).
Presenting LiteRed: a tool for the Loop InTEgrals REDuction.
Nogueira, P. (1993).
Automatic Feynman graph generation.
J. Comput. Phys., 105, 279–289.
V. Shtabovenko (TUM) @ EFT School, 3.07.2017 FeynCalc 14 / 14
Backup
Orellana, F. (2002).
Mesonic Final State Interactions.
PhD thesis, University of Zurich.
Patel, H. H. (2015).
Package-X: A Mathematica package for the analytic calculation of one-loop integrals.
Comput. Phys. Commun., 197, 276–290.
Shtabovenko, V. (2017).
FeynHelpers: Connecting FeynCalc to FIRE and Package-X.
Comput. Phys. Commun., 218, 48–65.
Smirnov, A. V. (2015).
FIRE5: a C++ implementation of Feynman Integral REduction.
Comput. Phys. Commun., 189, 182–191.
V. Shtabovenko (TUM) @ EFT School, 3.07.2017 FeynCalc 14 / 14
Backup
Studerus, C. (2009).
Reduze - Feynman Integral Reduction in C++.
Comput. Phys. Commun., 181, 1293–1300.
Vermaseren, J. A. M. (2000).
New features of FORM.
Wiebusch, M. (2014).
HEPMath: A Mathematica Package for Semi-Automatic Computations in High Energy Physics.
Comput. Phys. Commun., 195, 172–190.