Coordinate Transforms
Polar \(\leftrightarrow\) Cartesian coordinate system transformations.
All functions operate on torch::Tensor objects and are accessible at
the Python level as torch.ops.tpyc.* / torch.ops.cupyc.*.
The namespace is split into:
pyc::transform::separate— accepts one column tensor per coordinatepyc::transform::combined— accepts a single stacked Nx4 tensor
The formulas below are taken directly from transform/transform.cxx
(CPU) and transform/transform.cu (CUDA):
Separate Column Inputs
-
namespace separate
Overloads operating on individual component tensors.
Functions
-
torch::Tensor Pt(torch::Tensor px, torch::Tensor py)
Compute pT = √(px² + py²).
-
torch::Tensor Eta(torch::Tensor px, torch::Tensor py, torch::Tensor pz)
Compute pseudorapidity.
-
torch::Tensor Phi(torch::Tensor px, torch::Tensor py)
Compute azimuthal angle φ = atan2(py, px).
-
torch::Tensor PtEtaPhi(torch::Tensor px, torch::Tensor py, torch::Tensor pz)
Compute (pT, η, φ) in one call.
-
torch::Tensor PtEtaPhiE(torch::Tensor px, torch::Tensor py, torch::Tensor pz, torch::Tensor e)
Compute (pT, η, φ, E) in one call.
-
torch::Tensor Px(torch::Tensor pt, torch::Tensor phi)
Compute px = pT cos φ.
-
torch::Tensor Py(torch::Tensor pt, torch::Tensor phi)
Compute py = pT sin φ.
-
torch::Tensor Pz(torch::Tensor pt, torch::Tensor eta)
Compute pz = pT sinh η.
-
torch::Tensor PxPyPz(torch::Tensor pt, torch::Tensor eta, torch::Tensor phi)
Compute (px, py, pz) in one call.
-
torch::Tensor PxPyPzE(torch::Tensor pt, torch::Tensor eta, torch::Tensor phi, torch::Tensor e)
Compute (px, py, pz, E) in one call.
-
torch::Tensor Pt(torch::Tensor px, torch::Tensor py)
Combined Stacked Input
-
namespace combined
Overloads operating on stacked [N, 4] or [N, 3] tensors.
Functions
-
torch::Tensor Pt(torch::Tensor pmc)
-
torch::Tensor Eta(torch::Tensor pmc)
-
torch::Tensor Phi(torch::Tensor pmc)
-
torch::Tensor PtEtaPhi(torch::Tensor pmc)
-
torch::Tensor PtEtaPhiE(torch::Tensor pmc)
-
torch::Tensor Px(torch::Tensor pmu)
-
torch::Tensor Py(torch::Tensor pmu)
-
torch::Tensor Pz(torch::Tensor pmu)
-
torch::Tensor PxPyPz(torch::Tensor pmu)
-
torch::Tensor PxPyPzE(torch::Tensor pmu)
-
torch::Tensor Pt(torch::Tensor pmc)
Internal Kernel Namespace
The transform_ internal namespace provides the raw implementations
before wrapping in the public pyc::transform API.
-
namespace transform_
Internal namespace for batched coordinate transforms.
Functions
-
torch::Tensor Px(torch::Tensor *pt, torch::Tensor *phi)
Compute px = pT cos φ.
- Parameters:
pt – [N] transverse momentum.
phi – [N] azimuthal angle.
- Returns:
[N].
-
torch::Tensor Py(torch::Tensor *pt, torch::Tensor *phi)
Compute py = pT sin φ.
- Returns:
[N].
-
torch::Tensor Pz(torch::Tensor *pt, torch::Tensor *eta)
Compute pz = pT sinh η.
- Parameters:
pt – [N].
eta – [N] pseudorapidity.
- Returns:
[N].
-
torch::Tensor PxPyPz(torch::Tensor *pt, torch::Tensor *eta, torch::Tensor *phi)
Compute (px, py, pz) and stack into [N, 3].
-
torch::Tensor PxPyPzE(torch::Tensor *pt, torch::Tensor *eta, torch::Tensor *phi, torch::Tensor *energy)
Compute (px, py, pz, E) and stack into [N, 4].
-
torch::Tensor PxPyPz(torch::Tensor *pmu)
Overload: extract (px, py, pz) from stacked [N, 4] polar tensor.
- Parameters:
pmu – [N, 4] (pT, η, φ, E).
- Returns:
[N, 3] (px, py, pz).
-
torch::Tensor PxPyPzE(torch::Tensor *pmu)
Overload: compute full Cartesian four-momentum from [N, 4] polar.
- Returns:
[N, 4] (px, py, pz, E).
-
torch::Tensor Pt(torch::Tensor *px, torch::Tensor *py)
Compute pT = √(px² + py²).
- Returns:
[N].
-
torch::Tensor PtEta(torch::Tensor *pt, torch::Tensor *pz)
Compute (pT, η) and stack into [N, 2].
-
torch::Tensor Phi(torch::Tensor *pmc)
Compute φ = atan2(py, px) from stacked [N, 4] Cartesian tensor.
- Returns:
[N].
-
torch::Tensor Phi(torch::Tensor *px, torch::Tensor *py)
Compute φ from individual px and py tensors.
-
torch::Tensor Eta(torch::Tensor *pmc)
Compute pseudorapidity from [N, 4] Cartesian tensor.
- Returns:
[N].
-
torch::Tensor Eta(torch::Tensor *px, torch::Tensor *py, torch::Tensor *pz)
Compute pseudorapidity from individual components.
-
torch::Tensor PtEtaPhi(torch::Tensor *pmc)
Compute (pT, η, φ) from [N, 4] Cartesian tensor.
- Returns:
[N, 3].
-
torch::Tensor PtEtaPhiE(torch::Tensor *pmc)
Compute (pT, η, φ, E) from [N, 4] Cartesian tensor.
- Returns:
[N, 4].
-
torch::Tensor PtEtaPhi(torch::Tensor *px, torch::Tensor *py, torch::Tensor *pz)
Compute (pT, η, φ) from individual components.
- Returns:
[N, 3].
-
torch::Tensor PtEtaPhiE(torch::Tensor *px, torch::Tensor *py, torch::Tensor *pz, torch::Tensor *e)
Compute (pT, η, φ, E) from individual components.
- Returns:
[N, 4].
-
torch::Tensor Px(torch::Tensor *pt, torch::Tensor *phi)