Date: 07/09/17-10:50:56 PM Z

Dear FeynCalc users,

one often encounters situations, where we are interested only in the
UV-singularities of the dimensionally regularized loop integrals. In
such cases the finite part and the IR poles can be discarded. Instead of
calculating the full integral and then fishing out the UV-pole (which is
sometimes non-trivial due to the overlapping singularities), it is
actually much easier to pick up the UV-divergent piece right away. At
1-loop there are even explicit formulas for doing so.

FeynCalc has a (probably not so well-known) function called UVPart that
tries to go into that direction, but doesn't do its job in a good way.
The original idea was to discard all the 1-loop integrals that gave no
UV-poles. However, there are some cases where UVPart might actually drop
a UV divergent 1-loop integral, which is why it became necessary to do
something about that. At this point I'd like to thank Martin Beneke for
bringing my attention to the issues with UVPart.

I removed UVPart from the current development version (aka the upcoming
FeunCalc 9.3) because now we have something much better than that. The
replacement for UVPart is called PaVeUVPart

PaVeUVPart works with Passarino-Veltman coefficient functions and
replaces each function with its UV-divergent piece. The nice thing is
that it works with 1-loop integrals of arbitrary rank and multiplicity.
This is achieved by using the algorithm of Georg Sulyok

<https://inspirehep.net/record/727190>

As an addition to his publication, Georg has also provided a
Mathematica version of his program that returns UV-poles of arbitrary
PaVe functions. I'm very grateful to him for the nice collaboration on
integrating his code into FeynCalc.

For using PaVeUVPart in renormalization calculations, have a look at

<https://github.com/FeynCalc/feyncalc/blob/master/FeynCalc/Examples/QCD/QCDQuarkSelfEnergyOneLoop.m>

<https://github.com/FeynCalc/feyncalc/blob/master/FeynCalc/Examples/QCD/QCDGluonSelfEnergyOneLoop.m>

<https://github.com/FeynCalc/feyncalc/blob/master/FeynCalc/Examples/QED/QEDElectronSelfEnergyOneLoop.m>

<https://github.com/FeynCalc/feyncalc/blob/master/FeynCalc/Examples/QED/QEDPhotonSelfEnergyOneLoop.m>

And to give you some idea how to use it on standalone integrals:

int = SPD[k] FAD[{k + q1, m1}, {k + q2, m2}]/(I Pi^2);
TID[int, k, UsePaVeBasis -> True, ToPaVe -> True] //PaVeUVPart

-((2 (m1^2 + m2^2 + SPD[q1, q2]))/(-4 + D))

int = SPD[k, p1]^3 FAD[k, {k + q1, m1}, {k + q2, m2}]/(I Pi^2)

TID[int, k, UsePaVeBasis -> True, ToPaVe -> True] //PaVeUVPart

(SPD[p1, p1] SPD[p1, q1] + SPD[p1, p1] SPD[p1, q2])/(2 (-4 + D))

The option UsePaVeBasis is there for performance reasons. Tensor
reduction into coefficient functions is much faster than tensor
reduction into scalar integrals, so that it saves your time. Once you
have your 1-loop amplitude expressed in terms of PaVe functions,
PaVeUVPart can overtake.

Cheers,