Skip to main content

VLQcalc

a Python Module for Calculating Vector-like Quark Couplings

Tests PyPI Python 3.9+ License: MIT DOI Binder

Ali Can Canbay ORCID and Orhan Cakir ORCID


VLQcalc works with the vector-like quark (VLQ) models VLQ_UFO [1], VLQ_v4_UFO and VLQ_v5_UFO [2], which were prepared with FeynRules [3]. It can:

  • compute the couplings that give a chosen width-to-mass ratio (Γ/M) and chosen branching ratios,
  • compute partial and total decay widths, with the same formulas and SM inputs as the models,
  • include couplings to the 1st and 2nd generation quarks,
  • convert couplings between VLQ_UFO and VLQ_v4_UFO/VLQ_v5_UFO,
  • write MadGraph5 [4] input cards,
  • write the results as tables (Markdown, CSV, JSON, text) and plots.

The tutorial can be run online with Binder [5] by clicking the launch binder button above.


Installation

pip install VLQcalc            # core package, no dependencies
pip install "VLQcalc[plot]"    # with matplotlib for plots

Python 3.9 or newer is needed.

From a copy of this repository, run one of the following in its main folder:

pip install .
python setup.py install        # older method; setuptools prints a deprecation warning

VLQcalc has no dependencies, so it can also be used without installation, for example on clusters where pip is not available: copy the VLQcalc folder next to your script, or add the main folder of the repository to PYTHONPATH.


Quick start

import VLQcalc.model as model
import VLQcalc.madgraph as madgraph

vlq = model.VLQ('T', FNS=4, LR=False)        # T quark, 4-flavour scheme, left-handed couplings
vlq.setMass(range(1000, 2001, 100))          # masses in GeV
vlq.calcRatioKappas([0.5, 0.25, 0.25], 0.05) # [BR(Ht), BR(Wb), BR(Zt)] and Gamma/M

print(vlq.KappaH, vlq.KappaW, vlq.KappaZ)    # couplings to 3rd generation quarks, one value per mass
print(vlq.table())                           # Markdown table of the results
vlq.save('kappas.csv')                       # .md, .txt, .csv or .json
vlq.plot(save='kappas.pdf')                  # needs matplotlib

mg5 = madgraph.MG5(vlq, 'VLQ_v4_UFO')
mg5.setProcess('p p > tp tp~, tp > w+ b')
mg5.createMG5Input('tp_pair')                # writes tp_pair.dat

Without zeta, all decays go to 3rd generation quarks (zeta=[0, 0, 1]). Couplings to lighter quarks are set with the generation fractions ζi, for example 20% of the decays into 2nd generation quarks:

vlq = model.VLQ('T')
vlq.setMass([1000, 1500, 2000])
vlq.calcRatioKappas([0.5, 0.25, 0.25], 0.05, zeta=[0, 0.2, 0.8])
print(vlq.table('txt'))
M [GeV]    k_H(c)   k_H(t)     k_W(s)    k_W(b)     k_Z(c)    k_Z(t)  Gamma [GeV]
   1000  0.720235  1.44185  0.0872882  0.174582   0.123449  0.258278      49.9998
   1500  0.713939  1.42814  0.0581893   0.11638  0.0822928  0.167886      74.9999
   2000  0.711762  1.42361  0.0436416  0.087284  0.0617187   0.12482          100

table('txt') prints the settings as comment lines above the table; they are left out here. Each coupling is also available under its name in the model, for example vlq.Kappas['KTLw2'] for T–W–s (left-handed).

More examples are in the examples folder.


Documentation

Page Content
API reference Classes, methods, arguments and attributes
Physics conventions Couplings in the Lagrangian, decay widths, coupling calculation, SM inputs, choice of settings
Models Supported UFO models, their parameters, conversion between models
MadGraph5 cards Writing input cards, what is written to them
Limitations and common questions What VLQcalc does not do, and answers to frequent problems

The documentation overview shows typical workflows step by step.


Testing

The tests are not part of the installed package. Run them from a copy of this repository:

git clone https://github.com/acanbay/VLQcalc.git
cd VLQcalc
pip install ".[test]"
pytest

The tests compare the widths with the formulas shipped with the UFO models and check the cards, the conversions and the output files.

AI assistance. Version 0.2.0 was developed with the help of AI assistants (Claude, Anthropic). All output was reviewed, tested and validated by the authors.



References

  1. M. Buchkremer, G. Cacciapaglia, A. Deandrea, and L. Panizzi. Model-independent framework for searches of top partners. Nuclear Physics B, 876(2):376–417, 2013.
  2. B. Fuks and H. S. Shao. QCD next-to-leading-order predictions matched to parton showers for vector-like quark models. The European Physical Journal C, 77(2):135, 2017.
  3. N. D. Christensen and C. Duhr. FeynRules – Feynman rules made easy. Computer Physics Communications, 180(9):1614–1641, 2009.
  4. J. Alwall, M. Herquet, F. Maltoni, O. Mattelaer, and T. Stelzer. MadGraph 5: going beyond. Journal of High Energy Physics, 2011(6):128, 2011.
  5. Jupyter et al. Binder 2.0 - Reproducible, Interactive, Sharable Environments for Science at Scale. Proceedings of the 17th Python in Science Conference. 2018.
  6. J. A. Aguilar-Saavedra, R. Benbrik, S. Heinemeyer, and M. Pérez-Victoria. Handbook of vectorlike quarks: Mixing and single production. Physical Review D, 88(9):094010, 2013.
  7. S. Moretti, D. O'Brien, L. Panizzi, and H. Prager. Production of extra quarks at the Large Hadron Collider beyond the narrow width approximation. Physical Review D, 96(7):075035, 2017.

Metadata

Release files for VLQcalc 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for VLQcalc 0.2.0
File Size Uploaded Provenance
vlqcalc-0.2.0.tar.gz 51.7 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for VLQcalc 0.2.0
File Interpreter ABI Platform
vlqcalc-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 76.8 kB

Release files / vlqcalc-0.2.0.tar.gz

Download URL vlqcalc-0.2.0.tar.gz
Size 51.7 kB
Tags Source
SHA-256 checksum
How to use checksums
83b6dd06bbad1a042be6c95006c26268105b8b54f6b570163981b9c8a59b24d4
BLAKE2b-256 checksum
How to use checksums
200fe803614e4e7c29784a5b747648b78a2575fa2a16d06969754bce48c709bf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 25, 2026.

Transparency log

Release files / vlqcalc-0.2.0-py3-none-any.whl

Download URL vlqcalc-0.2.0-py3-none-any.whl
Size 25.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5ee4c1d956ed669f4d34b79c2242fab736a18180f7020c9b9eaadd867ad28f13
BLAKE2b-256 checksum
How to use checksums
e21b65215f4159a2ffac160c865dadcbeebe302a4cd367c7ec7b58ea58319765
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 25, 2026.

Transparency log

Security for VLQcalc 0.2.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for vlqcalc-0.2.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 25, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page