FeAmGen.jl needs following external programs:
gfortran
as default).
If the user wants to use other Fortran compiler, please add environment variable ENV["FC"] = "/path/to/Fortran/compiler
in the Julia startup file (~/.julia/config/startup.jl
as default, see this url for more information).
If the user have already installed QGRAF and want to use it, please add environment variable ENV["QGRAF"] = "/path/to/QGRAF"
in the Julia startup file.
The users should accept the agreement of its license (see the heads of its main source code file) before using this package.Please add the IHEP-Multiloop Julia registry via
import Pkg
Pkg.Registry.add(
Pkg.RegistrySpec(url="https://code.ihep.ac.cn/IHEP-Multiloop/JuliaRegistry.git")
)
or in the Julia REPL via
]registry add https://code.ihep.ac.cn/IHEP-Multiloop/JuliaRegistry.git
Install FeAmGen.jl
via
import Pkg
Pkg.add("FeAmGen")
or in the Julia REPL via
]add FeAmGen
The possible problems during the installation is PyCall.jl
and Conda.jl
need to be built.
Please run the following commands to build them.
import Pkg
Pkg.build("Conda")
Pkg.build("PyCall")
or in the Julia REPL as
]build Conda
]build PyCall
This package can be used for the following missions.
test/DrellYan_Test.jl
, and etc.test/script_construct_topology.jl
.digest_seed_proc( <seed process file>; <model directory list> )
Generate input files for the specific process according to generic seed process file. And the model file will be searched in the given model directory.
For example,
digest_seed_proc( "seed_proc.yaml" )
generate_amp( <process file>; <model directory list> )
Generate Feynman diagrams and relevant amplitudes according to the process input file previously generated by digest_seed_proc
.
And the model file will be searched in the given model directory.
For example,
generate_amp( "parton_parton_TO_parton_t_0Loop/b_u_TO_d_t.yaml" )
construct_den_topology( <amplitude directory>; mom_shift_opt::Bool = true )
Construct topologies for specific process, mom_shift_opt
for doing the momentum shift or not.
For example,
construct_den_topology( "b_g_TO_Wminus_t_2Loop/b_g_TO_Wminus_t_2Loop_amplitudes"; mom_shift_opt=true )
The results contain amplitudes in file amp<number>.jld2
and amp<number>.out
and the Feynman diagrams in file visual_diagram<number>.tex
.
Explicitly one could use lualatex visual_diagram<number>.tex
to generate PDF file with tikz-feynman.sty
.
Here we use directly the UFO model files stored in the <model directory>
.
NOTE:
If the UFO model files are based on Python2, one can convert them into Python3 scripts by using the script 2to3
, which may be found in for example Python-3.8.1/Tools/scripts
.
Package PyCall.jl
can be build with relevant version of Python. The method can be found in its GitHub homepage.
Full documentation can be generated by using julia make.jl
in docs
.
MIT license.
The corresponding paper is preprinted as arXiv:2310.07967 [hep-ph].
If you use this package in your research work, please cite this paper via
@article{Wu:2023qbr,
author = "Wu, Quan-feng and Li, Zhao",
title = "{FeAmGen.jl: A Julia Program for Feynman Amplitude Generation}",
eprint = "2310.07634",
archivePrefix = "arXiv",
primaryClass = "hep-ph",
month = "10",
year = "2023"
}