PHI (Phenomenology of Hadronic Interactions) is a Mathematica package for
computations in Chiral Perturbation Theory (ChPT). It is meant to be used
in conjunction with the other Mathematica packages FeynArts (version 3 or
higher) and FeynCalc (version 3 or higher).

PHI is designed for ChPT, but can in principle be adapted for any field
theory. One distinguishing feature of ChPT is that it is not renormalizable
but has a new counterterm lagrangian for each order in the perturbative
expansion and vertices with any number of legs. Also, the perturbative
expansion is not in a coupling constant; instead it is a dual expansion in
the lightest 2 (or 3) quark masses and the external momenta.

As of version 4.1.1 of FeynCalc, PHI is distributed with FeynCalc.
A changelog and further information than given below can be found at
http://www.feyncalc.org/phi/. Future changelogs will be given in in the
main FeynCalc readme file FCReadme.txt.


FEATURES:

A set of basic objects that can be composed and manipulated to form ChPT
lagrangians.

Compatibility with FeynArts for automatized generation of
Feynman loop amplitudes including counter terms and starting from a user
defined or built-in lagrangian. The renormalization procedure is partially
automatized for ChPT one-loop processes.


GOALS:

The aim is to ease the computation of amplitudes in ChPT and related effetive
models, thereby allowing checks of previous calculations and performing new
calculations. Most standard one-loop amplitudes have been computed, so inevitably
going to two-loops should be attempted.

The long term goal is to establish a database of amplitudes from phenomenological
effective lagrangians, well checked and easily extensible.


PHI QUICKSTART:

Make sure you have FeynCalc >= 4.1.1; if not, get it at
http://www.feyncalc.org/.
Get the FeynArts tarball from http://www.feynarts.de/ and unpack it in
your "HighEnergyPhysics" directory. Set
$LoadPhi=True; $LoadFeynArts=True;
and load FeynCalc with
<<"HighEnergyPhysics`FeynCalc`".


PHI INSTALLATION:

Mathematica (version 3 or higher) is required. It is recomended not to have
less than 128 MB of RAM and a reasonably fast processor (>300 MHz).

FeynCalc (version 3 or higher) must be up and running. From version 4.1.1
of FeynCalc, PHI is distributed with FeynCalc and no further installation of
PHI files is needed.
FeynCalc can be obtained at http://www.feyncalc.org/.

Furthermore one should get and install FeynArts (version 3 or higher)
according to the description below.
FeynArts can be obtained at http://www.feynarts.de/.

Finally, the file PhiStart.m should be edited to load the desired model
and lagrangians. Model specific modifications of PHI objects should be
specified in the relevant model configuration file (in Phi/Configurations).


FEYNARTS INSTALLATION:

After downloading the FeynArts tarball (FeynArts3.tar.gz), unpack it in
the FeynCalc installation directory "HighEnergyPhysics".
You can check where it is by loading FeynCalc (<<"HighEnergyPhysics`FeynCalc`")
and evaluating $FeynCalcDirectory. The unpacking must be so that the file
"FeynArts.m" is in "HighEnergyPhysics".

In order to have FeynCalc and FeynArts loaded simultaneously and to be able
to use the PHI fields directly with FeynArts, some changes need to be made to FeynArts.
These changes will be performed the first time you load PHI and FeynArts via FeynCalc.
That is, the first time you load FeynCalc after having evaluated
$LoadPhi=True; $LoadFeynArts=True;
This can be done either directly before evaluating
<<"HighEnergyPhysics`FeynCalc`"
or you can put the line in your "FCConfig.m" file.

The automatic modification of the FeynArts files is done by the Mathematica
function FAPatch defined in "Extras/FAPatch.m". The reasons for doing it
this way instead of distributing an alternative version of FeynArts or a true
patch are: 1) To make it clear that FeynArts is a completely separate project
from FeynCalc and have people credit the right authors. 2) We cannot
assume that all users know how to apply a patch. 3) A patch would only
work with one specific version of FeynArts.

The backdraw is that we cannot be absolutely sure that FAPatch actually
works with future versions of FeynArts. However, attempts will be made
to keep it up to date. If it should not work, it should be possible to
do the changes with a good text editor. Or you can contact fjob@cabocomm.dk
to get a patched version of FeynArts.


FEYNARTS CHANGES:

Below follows a description of the most essential changes needed to be done
to FeynArts. As described above, these will normally be done automatically;
but should this fail, they have to be done manually.

In the sub-directory "Extras" there are two model files meant to be read by
FeynArts: "Automatic.gen" and "Automatic.mod". These should be placed in the
"Models" directory.

The names:

Loop, PolarizationVector, FeynAmp, FeynAmpDenominator, FeynAmpList,
PropagatorDenominator, GaugeXi, NonCommutative, DiracSpinor, DiracTrace

should be put explicitly in their corresponding FeynCalc context.
That is, e.g. Loop should be replaced with HighenergyPhysics`FeynCalc`Loop`Loop

In Setup.m, the following lines should be added:

P$Generic =  Union[Flatten[P$Generic | $ParticleHeads]];
P$NonCommuting =  Union[Flatten[P$NonCommuting | $FermionHeads]];
SetOptions[FourVector, FeynCalcInternal -> False];
SetOptions[MetricTensor, FeynCalcInternal -> False];
SetOptions[DiracSlash, FeynCalcInternal -> False];


DOCUMENTATION:

The lists of objects are found in the standard way for each subpackage
(e.g. ?Phi`Channels`*). Also in the standard way, documentation ("man" pages)
can be found for each of the objects: Simply type ?object to get information
on object. It is usually a good idea to start with some of the examples
provided.

Updates and examples can found on http://www.feyncalc.org/phi/.


SUB-PACKAGES:

The sub-packages are not actually loaded on startup. Instead they are
declared with DeclarePackage, so that when a symbol defined in a package is
used for the first time, the package is loaded. This is similar to FeynCalc,
except FeynCalc has a sub-package for each symbol. The reason for doing this
is of course saving memory. Normally, because of the definitions in
PhiStart.m and/or the configuration file chosen, effectively the
sub-packages Objects, Couplings and Channels will be loaded on startup.

The sub-packages of PHI are:

Objects, containing all basic objects,

Couplings, a package for using the Feynman rules generated from the
lagrangians to generate loop amplitudes,

Channels, containing utilities for iso-spin reduction and projection
of amplitudes,

Utilities, containing utilities kinematics and Dirac algebra,

Renormalization, a package that includes formulas for renormalizing
one-loop amplitudes,

Palettes, a package generating palettes for loading configurations and
lagrangians.

The PHI directory also contains the directories Lagrangians (some predefined
lagrangians), Configurations (one configuration file for each family of
lagrangians), Factors (renormalization factors), CouplingVectors (the
coupling vector definitions used by the model files Automatic.gen and
Automatic.mod used by FeynArts) and Storage (for storing intermediate
results), the file First.m where user definitions should be put when they
are to be loaded before anything else, and finally files containing usage,
box, and error definitions for the sub-packages.

In the PHI directory  are also the files Phi.m and PhiStart.m, which are
respectively the startup file and the configuration file.


FUTURE PLANS:

More models, two loops.


BUG REPORTS:

Please report any bugs to the author Frederik Orellana at fjob@cabocomm.dk.
Comments and suggestions are also welcome.


LICENSE:

PHI is covered by the GNU Lesser General Public License which can be found
at http://www.feyncalc.org/license.txt.

This roughly means:

1. I don't promise that this software works (please report bugs).

2. It's is free.

3. If you use this software or parts of it as part of another piece of
   software, you must acknowledge it in your documentation.



Have fun.

Frederik Orellana
CERN, April 1, 2003