Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
57 commits
Select commit Hold shift + click to select a range
e335dfc
GPU: stop considering OpenCL on macOS
ktf Sep 18, 2026
c057c46
GPU: Apple Metal backend, off by default
ktf Sep 19, 2026
634753e
TRD: place shared constants in the constant address space
ktf Sep 19, 2026
953c3ac
TRD: let PadPlane be read from a device without double
ktf Sep 19, 2026
c4e797b
Common: keep the double-only constants and helpers off a device witho…
ktf Sep 19, 2026
02ae416
CommonConstants: place shared constants in the constant address space
ktf Sep 19, 2026
d1826e6
MathUtils: place TransformType constants in the constant address space
ktf Sep 19, 2026
9ef88b7
CommonDataFormat: place shared constants in the constant address space
ktf Sep 19, 2026
0a317d9
DetectorsCommonDataFormats: place DetID constants in the constant add…
ktf Sep 19, 2026
84bd67f
DataFormatsTPC: place shared constants in the constant address space
ktf Sep 19, 2026
8842fac
ReconstructionDataFormats: place shared constants in the constant add…
ktf Sep 19, 2026
7a6f50d
DetectorsBase: place shared constants in the constant address space
ktf Sep 19, 2026
f9eb6aa
TPCFastTransformation: place shared constants in the constant address…
ktf Sep 19, 2026
fbbc41d
GPUUtils: place shared constants in the constant address space
ktf Sep 19, 2026
568d141
GPUTracking: place shared constants in the constant address space
ktf Sep 19, 2026
9694c58
GPU: do not place anything in the Metal constant address space
ktf Sep 19, 2026
afdd685
ReconstructionDataFormats: keep the double SMatrix aliases off Metal
ktf Sep 19, 2026
8d17668
MathUtils: make SMatrixGPU compile as MSL
ktf Sep 19, 2026
9699845
GPU: keep the double math helpers off Metal
ktf Sep 19, 2026
3bc005f
GPU: adapt the remaining Common and Utils headers to Metal
ktf Sep 19, 2026
6965dd4
MathUtils: keep the double-only declarations off Metal
ktf Sep 19, 2026
dfb0aaf
Reuse GPUdoubleValue for the last double declarations reaching device…
ktf Sep 19, 2026
21f3fb5
GPU: give Metal a column in the tuning parameter table
ktf Sep 19, 2026
51910b5
GPU: give Metal its own spellings for three math helpers
ktf Sep 19, 2026
5f94dda
GPU: extend two existing OpenCL device workarounds to Metal
ktf Sep 19, 2026
ce6287d
GPU: three more small Metal adaptations
ktf Sep 19, 2026
bac091c
ML: make the GPU float16 header compile as MSL
ktf Sep 19, 2026
b9a160e
GPU: make the kernel entry-point signature work on Metal
ktf Sep 19, 2026
2bfe39b
GPU: number the kernel arguments so Metal can bind them
ktf Sep 19, 2026
86ac5d4
Add GPUdoubleCalc and use it for the double-precision track math
ktf Sep 19, 2026
1a96185
GPU: take the work-item indices from the kernel parameters
ktf Sep 19, 2026
4480582
GPU: only use GPUdoubleCalc where fast math is off
ktf Sep 19, 2026
6de6385
GPU: make GPUdoubleCalcImpl cheaper and more accurate
ktf Sep 19, 2026
ef09bde
DataFormatsTPC: place the zero-suppression constants in the constant …
ktf Sep 19, 2026
56f22cd
DataFormatsTRD: place the Tracklet64 bit masks in the constant addres…
ktf Sep 19, 2026
4fd60d4
ReconstructionDataFormats: place the Vertex and HelixHelper constants…
ktf Sep 19, 2026
13c6631
DetectorsRaw: place the RDH constants in the constant address space
ktf Sep 19, 2026
1a23209
GPUCommon: place the GPU common constants in the constant address space
ktf Sep 19, 2026
58b804b
GPUTracking: place the remaining cluster-finder constants in the cons…
ktf Sep 19, 2026
858dd59
MathUtils: extend the OpenCL sincos workaround to Metal
ktf Sep 19, 2026
4b482de
GPU: reach global memory through the generic address space on Metal
ktf Sep 19, 2026
c71f7ee
GPU: make the Metal atomics operate on plain counters
ktf Sep 19, 2026
9aa185c
GPU: define CAMath::Abs for GPUdoubleCalcImpl
ktf Sep 19, 2026
8d6e8d5
GPU: add an emulated binary64 and a selector for GPUdoubleCalc
ktf Sep 19, 2026
b952d7d
GPUTracking: drop static from the function-scope constants
ktf Sep 19, 2026
ad4d61b
GPUTracking: declare the resolve kernel's shared memory as shared
ktf Sep 19, 2026
944caff
GPUTracking: rename the cluster finder's fragment to frag
ktf Sep 19, 2026
d46c4c3
GPU: let the constant-address-space constants be built on Metal
ktf Sep 19, 2026
33f0403
GPU: make std::is_pointer address-space aware on Metal
ktf Sep 19, 2026
0160070
GPUTracking: take GPUdoubleValue in GetPadRowNumber
ktf Sep 19, 2026
1911b85
GPUTracking: replace the merger's goto with a flag
ktf Sep 19, 2026
b72ae35
MathUtils: let bringTo* deduce the type of the call they forward to
ktf Sep 19, 2026
1d6c543
DetectorsBase: keep the Propagator's double off Metal
ktf Sep 19, 2026
bc8eedf
MathUtils: materialise the product in SMatrixGPU's operator*=
ktf Sep 19, 2026
78d5777
ReconstructionDataFormats: express the SMatrix aliases in GPUdoubleCalc
ktf Sep 19, 2026
fea91a5
GPU: hand the kernel pointers to Thread() as generic pointers
ktf Sep 19, 2026
3f90db4
GPUTracking: compile the real kernels into the Metal library
ktf Sep 19, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 13 additions & 9 deletions Common/Constants/include/CommonConstants/LHCConstants.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,10 @@
#ifndef ALICEO2_LHCCONSTANTS_H_
#define ALICEO2_LHCCONSTANTS_H_

#include "GPUCommonDouble.h"

#include "GPUCommonDef.h"

namespace o2
{
namespace constants
Expand All @@ -28,17 +32,17 @@ enum BeamDirection : int { BeamA, // beamA = beam 0,
NBeamDirections,
InteractingBC = -1 // as used in the BunchFilling class
};
constexpr int LHCMaxBunches = 3564; // max N bunches
constexpr double LHCRFFreq = 400.789e6; // LHC RF frequency in Hz
constexpr double LHCBunchSpacingNS = 10 * 1.e9 / LHCRFFreq; // bunch spacing in ns (10 RFbuckets)
constexpr double LHCOrbitNS = LHCMaxBunches * LHCBunchSpacingNS; // orbit duration in ns
constexpr double LHCRevFreq = 1.e9 / LHCOrbitNS; // revolution frequency
constexpr double LHCBunchSpacingMUS = LHCBunchSpacingNS * 1e-3; // bunch spacing in \mus (10 RFbuckets)
constexpr double LHCOrbitMUS = LHCOrbitNS * 1e-3; // orbit duration in \mus
constexpr unsigned int MaxNOrbits = 0xffffffff;
GPUglobalconstexpr() int LHCMaxBunches = 3564; // max N bunches
GPUglobalconstexpr() o2::gpu::GPUdoubleValue LHCRFFreq = 400.789e6; // LHC RF frequency in Hz
GPUglobalconstexpr() o2::gpu::GPUdoubleValue LHCBunchSpacingNS = 10 * 1.e9 / LHCRFFreq; // bunch spacing in ns (10 RFbuckets)
GPUglobalconstexpr() o2::gpu::GPUdoubleValue LHCOrbitNS = LHCMaxBunches * LHCBunchSpacingNS; // orbit duration in ns
GPUglobalconstexpr() o2::gpu::GPUdoubleValue LHCRevFreq = 1.e9 / LHCOrbitNS; // revolution frequency
GPUglobalconstexpr() o2::gpu::GPUdoubleValue LHCBunchSpacingMUS = LHCBunchSpacingNS * 1e-3; // bunch spacing in \mus (10 RFbuckets)
GPUglobalconstexpr() o2::gpu::GPUdoubleValue LHCOrbitMUS = LHCOrbitNS * 1e-3; // orbit duration in \mus
GPUglobalconstexpr() unsigned int MaxNOrbits = 0xffffffff;

// Offsets of A, C beam bunches at P2
constexpr int BunchOffsetsP2[2] = {344, 3017};
GPUglobalconstexpr() int BunchOffsetsP2[2] = {344, 3017};

// convert LHC bunch ID to BC for 2 beam directions
constexpr int LHCBunch2P2BC(int bunch, BeamDirection dir)
Expand Down
32 changes: 17 additions & 15 deletions Common/Constants/include/CommonConstants/MathConstants.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,31 +16,33 @@
#ifndef ALICEO2_COMMON_MATH_CONSTANTS_
#define ALICEO2_COMMON_MATH_CONSTANTS_

#include "GPUCommonDef.h"

namespace o2
{
namespace constants
{
namespace math
{
constexpr float Almost0 = 0x1.0p-126f; // smallest non-denormal float
constexpr float Epsilon = 0x0.000002p0f; // smallest float such that 1 != 1 + Epsilon
constexpr float Almost1 = 1.f - 1.0e-6f;
constexpr float VeryBig = 1.f / Almost0;
GPUglobalconstexpr() float Almost0 = 0x1.0p-126f; // smallest non-denormal float
GPUglobalconstexpr() float Epsilon = 0x0.000002p0f; // smallest float such that 1 != 1 + Epsilon
GPUglobalconstexpr() float Almost1 = 1.f - 1.0e-6f;
GPUglobalconstexpr() float VeryBig = 1.f / Almost0;

constexpr float PI = 3.14159274101257324e+00f;
constexpr float TwoPI = 2.f * PI;
constexpr float PIHalf = 0.5f * PI;
constexpr float PIThird = PI / 3.0f;
constexpr float PIQuarter = 0.25f * PI;
constexpr float Rad2Deg = 180.f / PI;
constexpr float Deg2Rad = PI / 180.f;
GPUglobalconstexpr() float PI = 3.14159274101257324e+00f;
GPUglobalconstexpr() float TwoPI = 2.f * PI;
GPUglobalconstexpr() float PIHalf = 0.5f * PI;
GPUglobalconstexpr() float PIThird = PI / 3.0f;
GPUglobalconstexpr() float PIQuarter = 0.25f * PI;
GPUglobalconstexpr() float Rad2Deg = 180.f / PI;
GPUglobalconstexpr() float Deg2Rad = PI / 180.f;

constexpr int NSectors = 18;
constexpr float SectorSpanDeg = 360. / NSectors;
constexpr float SectorSpanRad = SectorSpanDeg * Deg2Rad;
GPUglobalconstexpr() int NSectors = 18;
GPUglobalconstexpr() float SectorSpanDeg = 360. / NSectors;
GPUglobalconstexpr() float SectorSpanRad = SectorSpanDeg * Deg2Rad;

// conversion from B(kGaus) to curvature for 1GeV pt
constexpr float B2C = -0.299792458e-3;
GPUglobalconstexpr() float B2C = -0.299792458e-3;
} // namespace math
} // namespace constants
} // namespace o2
Expand Down
285 changes: 148 additions & 137 deletions Common/Constants/include/CommonConstants/PhysicsConstants.h
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,19 @@
#ifndef ALICEO2_PHYSICSCONSTANTS_H_
#define ALICEO2_PHYSICSCONSTANTS_H_

#include "GPUCommonDef.h"

namespace o2::constants::physics
{
#ifdef __METAL__
// MSL has no double. The masses only ever serve as compile-time initialisers,
// and the tables built from them (PID::sMasses) are float already, so nothing
// is lost. Every other backend, device included, keeps double.
using MassType = float;
#else
using MassType = double;
#endif

// particles masses

// BEGINNING OF THE GENERATED BLOCK.
Expand Down Expand Up @@ -102,153 +113,153 @@ enum Pdg {
};

/// \brief Declarations of masses for additional particles
constexpr double MassEta = 0.547862;
constexpr double MassOmega = 0.78266;
constexpr double MassEtaPrime = 0.95778;
constexpr double MassB0 = 5.27966;
constexpr double MassB0Bar = 5.27966;
constexpr double MassBPlus = 5.27934;
constexpr double MassBCPlus = 6.27447;
constexpr double MassBS = 5.36692;
constexpr double MassBSBar = 5.36692;
constexpr double MassD0 = 1.86484;
constexpr double MassD0Bar = 1.86484;
constexpr double MassD0StarPlus = 2.272;
constexpr double MassD0Star0 = 2.343;
constexpr double MassD1Plus = 2.372;
constexpr double MassD10 = 2.412;
constexpr double MassD2StarPlus = 2.4601;
constexpr double MassD2Star0 = 2.4611;
constexpr double MassDMinus = 1.86966;
constexpr double MassDPlus = 1.86966;
constexpr double MassDS = 1.96835;
constexpr double MassDSBar = 1.96835;
constexpr double MassDSStar = 2.1122;
constexpr double MassDS1 = 2.53511;
constexpr double MassDS1Star2700 = 2.714;
constexpr double MassDS1Star2860 = 2.859;
constexpr double MassDS2Star = 2.5691;
constexpr double MassDS3Star2860 = 2.86;
constexpr double MassDStar = 2.01026;
constexpr double MassDStar0 = 2.00685;
constexpr double MassChiC1 = 3.51067;
constexpr double MassJPsi = 3.0969;
constexpr double MassLambdaB0 = 5.6196;
constexpr double MassLambdaCPlus = 2.28646;
constexpr double MassLambdaCPlus2860 = 2.8561;
constexpr double MassLambdaCPlus2880 = 2.8816;
constexpr double MassLambdaCPlus2940 = 2.9396;
constexpr double MassOmegaC0 = 2.6952;
constexpr double MassK0Star892 = 0.89555;
constexpr double MassKPlusStar892 = 0.89167;
constexpr double MassPhi = 1.019461;
constexpr double MassSigmaC0 = 2.45375;
constexpr double MassSigmaCPlusPlus = 2.45397;
constexpr double MassSigmaCStar0 = 2.51848;
constexpr double MassSigmaCStarPlusPlus = 2.51841;
constexpr double MassX3872 = 3.87165;
constexpr double MassXi0 = 1.31486;
constexpr double MassXiB0 = 5.7919;
constexpr double MassXiCCPlusPlus = 3.62155;
constexpr double MassXiCPlus = 2.46771;
constexpr double MassXiC0 = 2.47044;
constexpr double MassXiC3055Plus = 3.0559;
constexpr double MassXiC3080Plus = 3.0772;
constexpr double MassXiC3055_0 = 3.059;
constexpr double MassXiC3080_0 = 3.0799;
constexpr double MassDeuteron = 1.87561294257;
constexpr double MassTriton = 2.80892113298;
constexpr double MassHelium3 = 2.80839160743;
constexpr double MassAlpha = 3.7273794066;
constexpr double MassLithium4 = 3.7513;
constexpr double MassHyperTriton = 2.991134;
constexpr double MassHyperHydrogen4 = 3.922434;
constexpr double MassHyperHelium4 = 3.921728;
constexpr double MassHyperHelium5 = 4.839961;
constexpr double MassHyperHelium4Sigma = 3.995;
constexpr double MassLambda1520_Py = 1.5195;
constexpr double MassK1_1270_0 = 1.253;
constexpr double MassK1_1270Plus = 1.272;
constexpr double MassCDeuteron = 3.226;
GPUglobalconstexpr() MassType MassEta = 0.547862;
GPUglobalconstexpr() MassType MassOmega = 0.78266;
GPUglobalconstexpr() MassType MassEtaPrime = 0.95778;
GPUglobalconstexpr() MassType MassB0 = 5.27966;
GPUglobalconstexpr() MassType MassB0Bar = 5.27966;
GPUglobalconstexpr() MassType MassBPlus = 5.27934;
GPUglobalconstexpr() MassType MassBCPlus = 6.27447;
GPUglobalconstexpr() MassType MassBS = 5.36692;
GPUglobalconstexpr() MassType MassBSBar = 5.36692;
GPUglobalconstexpr() MassType MassD0 = 1.86484;
GPUglobalconstexpr() MassType MassD0Bar = 1.86484;
GPUglobalconstexpr() MassType MassD0StarPlus = 2.272;
GPUglobalconstexpr() MassType MassD0Star0 = 2.343;
GPUglobalconstexpr() MassType MassD1Plus = 2.372;
GPUglobalconstexpr() MassType MassD10 = 2.412;
GPUglobalconstexpr() MassType MassD2StarPlus = 2.4601;
GPUglobalconstexpr() MassType MassD2Star0 = 2.4611;
GPUglobalconstexpr() MassType MassDMinus = 1.86966;
GPUglobalconstexpr() MassType MassDPlus = 1.86966;
GPUglobalconstexpr() MassType MassDS = 1.96835;
GPUglobalconstexpr() MassType MassDSBar = 1.96835;
GPUglobalconstexpr() MassType MassDSStar = 2.1122;
GPUglobalconstexpr() MassType MassDS1 = 2.53511;
GPUglobalconstexpr() MassType MassDS1Star2700 = 2.714;
GPUglobalconstexpr() MassType MassDS1Star2860 = 2.859;
GPUglobalconstexpr() MassType MassDS2Star = 2.5691;
GPUglobalconstexpr() MassType MassDS3Star2860 = 2.86;
GPUglobalconstexpr() MassType MassDStar = 2.01026;
GPUglobalconstexpr() MassType MassDStar0 = 2.00685;
GPUglobalconstexpr() MassType MassChiC1 = 3.51067;
GPUglobalconstexpr() MassType MassJPsi = 3.0969;
GPUglobalconstexpr() MassType MassLambdaB0 = 5.6196;
GPUglobalconstexpr() MassType MassLambdaCPlus = 2.28646;
GPUglobalconstexpr() MassType MassLambdaCPlus2860 = 2.8561;
GPUglobalconstexpr() MassType MassLambdaCPlus2880 = 2.8816;
GPUglobalconstexpr() MassType MassLambdaCPlus2940 = 2.9396;
GPUglobalconstexpr() MassType MassOmegaC0 = 2.6952;
GPUglobalconstexpr() MassType MassK0Star892 = 0.89555;
GPUglobalconstexpr() MassType MassKPlusStar892 = 0.89167;
GPUglobalconstexpr() MassType MassPhi = 1.019461;
GPUglobalconstexpr() MassType MassSigmaC0 = 2.45375;
GPUglobalconstexpr() MassType MassSigmaCPlusPlus = 2.45397;
GPUglobalconstexpr() MassType MassSigmaCStar0 = 2.51848;
GPUglobalconstexpr() MassType MassSigmaCStarPlusPlus = 2.51841;
GPUglobalconstexpr() MassType MassX3872 = 3.87165;
GPUglobalconstexpr() MassType MassXi0 = 1.31486;
GPUglobalconstexpr() MassType MassXiB0 = 5.7919;
GPUglobalconstexpr() MassType MassXiCCPlusPlus = 3.62155;
GPUglobalconstexpr() MassType MassXiCPlus = 2.46771;
GPUglobalconstexpr() MassType MassXiC0 = 2.47044;
GPUglobalconstexpr() MassType MassXiC3055Plus = 3.0559;
GPUglobalconstexpr() MassType MassXiC3080Plus = 3.0772;
GPUglobalconstexpr() MassType MassXiC3055_0 = 3.059;
GPUglobalconstexpr() MassType MassXiC3080_0 = 3.0799;
GPUglobalconstexpr() MassType MassDeuteron = 1.87561294257;
GPUglobalconstexpr() MassType MassTriton = 2.80892113298;
GPUglobalconstexpr() MassType MassHelium3 = 2.80839160743;
GPUglobalconstexpr() MassType MassAlpha = 3.7273794066;
GPUglobalconstexpr() MassType MassLithium4 = 3.7513;
GPUglobalconstexpr() MassType MassHyperTriton = 2.991134;
GPUglobalconstexpr() MassType MassHyperHydrogen4 = 3.922434;
GPUglobalconstexpr() MassType MassHyperHelium4 = 3.921728;
GPUglobalconstexpr() MassType MassHyperHelium5 = 4.839961;
GPUglobalconstexpr() MassType MassHyperHelium4Sigma = 3.995;
GPUglobalconstexpr() MassType MassLambda1520_Py = 1.5195;
GPUglobalconstexpr() MassType MassK1_1270_0 = 1.253;
GPUglobalconstexpr() MassType MassK1_1270Plus = 1.272;
GPUglobalconstexpr() MassType MassCDeuteron = 3.226;

/// \brief Declarations of masses for particles in ROOT PDG_t
constexpr double MassDown = 0.00467;
constexpr double MassDownBar = 0.00467;
constexpr double MassUp = 0.00216;
constexpr double MassUpBar = 0.00216;
constexpr double MassStrange = 0.0934;
constexpr double MassStrangeBar = 0.0934;
constexpr double MassCharm = 1.27;
constexpr double MassCharmBar = 1.27;
constexpr double MassBottom = 4.18;
constexpr double MassBottomBar = 4.18;
constexpr double MassTop = 172.5;
constexpr double MassTopBar = 172.5;
constexpr double MassGluon = 0.0;
constexpr double MassElectron = 0.000510999;
constexpr double MassPositron = 0.000510999;
constexpr double MassNuE = 0.0;
constexpr double MassNuEBar = 0.0;
constexpr double MassMuonMinus = 0.1056584;
constexpr double MassMuonPlus = 0.1056584;
constexpr double MassNuMu = 0.0;
constexpr double MassNuMuBar = 0.0;
constexpr double MassTauMinus = 1.77686;
constexpr double MassTauPlus = 1.77686;
constexpr double MassNuTau = 0.0;
constexpr double MassNuTauBar = 0.0;
constexpr double MassGamma = 0.0;
constexpr double MassZ0 = 91.1876;
constexpr double MassWPlus = 80.377;
constexpr double MassWMinus = 80.377;
constexpr double MassPi0 = 0.1349768;
constexpr double MassK0Long = 0.497611;
constexpr double MassPiPlus = 0.1395704;
constexpr double MassPiMinus = 0.1395704;
constexpr double MassProton = 0.9382721;
constexpr double MassProtonBar = 0.9382721;
constexpr double MassNeutron = 0.9395654;
constexpr double MassNeutronBar = 0.9395654;
constexpr double MassK0Short = 0.497611;
constexpr double MassK0 = 0.497611;
constexpr double MassK0Bar = 0.497611;
constexpr double MassKPlus = 0.493677;
constexpr double MassKMinus = 0.493677;
constexpr double MassLambda0 = 1.115683;
constexpr double MassLambda0Bar = 1.115683;
constexpr double MassLambda1520 = 1.519;
constexpr double MassSigmaMinus = 1.197449;
constexpr double MassSigmaBarPlus = 1.197449;
constexpr double MassSigmaPlus = 1.18937;
constexpr double MassSigmaBarMinus = 1.18937;
constexpr double MassSigma0 = 1.192642;
constexpr double MassSigma0Bar = 1.192642;
constexpr double MassXiMinus = 1.32171;
constexpr double MassXiPlusBar = 1.32171;
constexpr double MassOmegaMinus = 1.67245;
constexpr double MassOmegaPlusBar = 1.67245;
GPUglobalconstexpr() MassType MassDown = 0.00467;
GPUglobalconstexpr() MassType MassDownBar = 0.00467;
GPUglobalconstexpr() MassType MassUp = 0.00216;
GPUglobalconstexpr() MassType MassUpBar = 0.00216;
GPUglobalconstexpr() MassType MassStrange = 0.0934;
GPUglobalconstexpr() MassType MassStrangeBar = 0.0934;
GPUglobalconstexpr() MassType MassCharm = 1.27;
GPUglobalconstexpr() MassType MassCharmBar = 1.27;
GPUglobalconstexpr() MassType MassBottom = 4.18;
GPUglobalconstexpr() MassType MassBottomBar = 4.18;
GPUglobalconstexpr() MassType MassTop = 172.5;
GPUglobalconstexpr() MassType MassTopBar = 172.5;
GPUglobalconstexpr() MassType MassGluon = 0.0;
GPUglobalconstexpr() MassType MassElectron = 0.000510999;
GPUglobalconstexpr() MassType MassPositron = 0.000510999;
GPUglobalconstexpr() MassType MassNuE = 0.0;
GPUglobalconstexpr() MassType MassNuEBar = 0.0;
GPUglobalconstexpr() MassType MassMuonMinus = 0.1056584;
GPUglobalconstexpr() MassType MassMuonPlus = 0.1056584;
GPUglobalconstexpr() MassType MassNuMu = 0.0;
GPUglobalconstexpr() MassType MassNuMuBar = 0.0;
GPUglobalconstexpr() MassType MassTauMinus = 1.77686;
GPUglobalconstexpr() MassType MassTauPlus = 1.77686;
GPUglobalconstexpr() MassType MassNuTau = 0.0;
GPUglobalconstexpr() MassType MassNuTauBar = 0.0;
GPUglobalconstexpr() MassType MassGamma = 0.0;
GPUglobalconstexpr() MassType MassZ0 = 91.1876;
GPUglobalconstexpr() MassType MassWPlus = 80.377;
GPUglobalconstexpr() MassType MassWMinus = 80.377;
GPUglobalconstexpr() MassType MassPi0 = 0.1349768;
GPUglobalconstexpr() MassType MassK0Long = 0.497611;
GPUglobalconstexpr() MassType MassPiPlus = 0.1395704;
GPUglobalconstexpr() MassType MassPiMinus = 0.1395704;
GPUglobalconstexpr() MassType MassProton = 0.9382721;
GPUglobalconstexpr() MassType MassProtonBar = 0.9382721;
GPUglobalconstexpr() MassType MassNeutron = 0.9395654;
GPUglobalconstexpr() MassType MassNeutronBar = 0.9395654;
GPUglobalconstexpr() MassType MassK0Short = 0.497611;
GPUglobalconstexpr() MassType MassK0 = 0.497611;
GPUglobalconstexpr() MassType MassK0Bar = 0.497611;
GPUglobalconstexpr() MassType MassKPlus = 0.493677;
GPUglobalconstexpr() MassType MassKMinus = 0.493677;
GPUglobalconstexpr() MassType MassLambda0 = 1.115683;
GPUglobalconstexpr() MassType MassLambda0Bar = 1.115683;
GPUglobalconstexpr() MassType MassLambda1520 = 1.519;
GPUglobalconstexpr() MassType MassSigmaMinus = 1.197449;
GPUglobalconstexpr() MassType MassSigmaBarPlus = 1.197449;
GPUglobalconstexpr() MassType MassSigmaPlus = 1.18937;
GPUglobalconstexpr() MassType MassSigmaBarMinus = 1.18937;
GPUglobalconstexpr() MassType MassSigma0 = 1.192642;
GPUglobalconstexpr() MassType MassSigma0Bar = 1.192642;
GPUglobalconstexpr() MassType MassXiMinus = 1.32171;
GPUglobalconstexpr() MassType MassXiPlusBar = 1.32171;
GPUglobalconstexpr() MassType MassOmegaMinus = 1.67245;
GPUglobalconstexpr() MassType MassOmegaPlusBar = 1.67245;

// END OF THE GENERATED BLOCK

// legacy names
constexpr double MassPhoton = MassGamma;
constexpr double MassMuon = MassMuonMinus;
constexpr double MassPionCharged = MassPiPlus;
constexpr double MassPionNeutral = MassPi0;
constexpr double MassKaonCharged = MassKPlus;
constexpr double MassKaonNeutral = MassK0;
constexpr double MassLambda = MassLambda0;
constexpr double MassHyperhydrog4 = MassHyperHydrogen4;
constexpr double MassHyperhelium4 = MassHyperHelium4;
constexpr double MassHyperhelium4sigma = MassHyperHelium4Sigma;
GPUglobalconstexpr() MassType MassPhoton = MassGamma;
GPUglobalconstexpr() MassType MassMuon = MassMuonMinus;
GPUglobalconstexpr() MassType MassPionCharged = MassPiPlus;
GPUglobalconstexpr() MassType MassPionNeutral = MassPi0;
GPUglobalconstexpr() MassType MassKaonCharged = MassKPlus;
GPUglobalconstexpr() MassType MassKaonNeutral = MassK0;
GPUglobalconstexpr() MassType MassLambda = MassLambda0;
GPUglobalconstexpr() MassType MassHyperhydrog4 = MassHyperHydrogen4;
GPUglobalconstexpr() MassType MassHyperhelium4 = MassHyperHelium4;
GPUglobalconstexpr() MassType MassHyperhelium4sigma = MassHyperHelium4Sigma;

// Light speed
constexpr float LightSpeedCm2S = 299792458.e2; // C in cm/s
constexpr float LightSpeedCm2NS = LightSpeedCm2S * 1e-9; // C in cm/ns
constexpr float LightSpeedCm2PS = LightSpeedCm2S * 1e-12; // C in cm/ps
GPUglobalconstexpr() float LightSpeedCm2S = 299792458.e2; // C in cm/s
GPUglobalconstexpr() float LightSpeedCm2NS = LightSpeedCm2S * 1e-9; // C in cm/ns
GPUglobalconstexpr() float LightSpeedCm2PS = LightSpeedCm2S * 1e-12; // C in cm/ps

// Light speed inverse
constexpr float invLightSpeedCm2PS = 1. / LightSpeedCm2PS; // 1/C in ps/cm
GPUglobalconstexpr() float invLightSpeedCm2PS = 1. / LightSpeedCm2PS; // 1/C in ps/cm

} // namespace o2::constants::physics

Expand Down
Loading
Loading