Source code for hepi.particles

from typing import List, Tuple

from particle import PDGID
from particle.converters.bimap import DirectionalMaps

PDG2LaTeXNameMap, LaTeX2PDGNameMap = DirectionalMaps(
    "PDGID", "LaTexName", converters=(PDGID, str)
)

PDG2Name2IDMap, PDGID2NameMap = DirectionalMaps(
    "PDGName", "PDGID", converters=(str, PDGID)
)


[docs] def get_name(pid: int) -> str: """ Get the latex name of a particle. Args: pid (int) : PDG Monte Carlo identifier for the particle. Returns: str: Latex name. Examples: >>> get_name(21) 'g' >>> get_name(1000022) '\\\\tilde{\\\\chi}_{1}^{0}' """ global PDG2LaTeXNameMap pdgid = PDG2LaTeXNameMap[pid] return pdgid
[docs] def get_LR_partner(pid: int) -> Tuple[int, int]: """Transforms a PDG id to it's left-right partner. Args: pid (int) : PDG Monte Carlo identifier for the particle. Returns: tuple : First int is -1 for Left and 1 for Right. Second int is the PDG id. Examples: >>> get_LR_partner(1000002) (-1, 2000002) """ global PDG2Name2IDMap n = PDGID2NameMap[pid] if "L" in n: n = n.replace("L", "R") return -1, int(PDG2Name2IDMap[n]) if "R" in n: n = n.replace("R", "L") return 1, int(PDG2Name2IDMap[n]) if "1" in n: n = n.replace("1", "2") return -1, int(PDG2Name2IDMap[n]) if "2" in n: n = n.replace("2", "1") return 1, int(PDG2Name2IDMap[n]) return None