17#ifndef INCLUDE_RECONSTRUCTIONDATAFORMATS_TRACKUTILS_H_ 
   18#define INCLUDE_RECONSTRUCTIONDATAFORMATS_TRACKUTILS_H_ 
   22#ifndef GPUCA_GPUCODE_DEVICE 
   35template <
typename value_T = 
float>
 
   36GPUd() value_T BetheBlochSolid(value_T 
bg, value_T 
rho = 2.33, value_T 
kp1 = 0.20, value_T 
kp2 = 3.00, value_T 
meanI = 173e-9, value_T 
meanZA = 0.49848);
 
   38template <typename value_T = 
float>
 
   39GPUd() value_T BetheBlochSolidOpt(value_T 
bg);
 
   41template <typename value_T = 
float>
 
   45template <typename value_T>
 
   65#ifndef GPUCA_GPUCODE_DEVICE 
   66  static_assert(std::is_floating_point_v<value_T>);
 
   78  if (gpu::CAMath::Abs(
tet) > 0.03f) {
 
   82    value_T t = gpu::CAMath::Sin(0.5f * 
tet);
 
 
  106template <
typename value_T>
 
  123#ifndef GPUCA_GPUCODE_DEVICE 
  124  static_assert(std::is_floating_point_v<value_T>);
 
  127  constexpr value_T 
mK = 0.307075e-3; 
 
  128  constexpr value_T 
me = 0.511e-3;    
 
  136  const value_T 
x = gpu::CAMath::Log(
bg);
 
  149template <
typename value_T>
 
  150GPUd() value_T BetheBlochSolidOpt(value_T 
bg)
 
  169  constexpr value_T 
mK = 0.307075e-3; 
 
  170  constexpr value_T 
kp1 = 0.20 * 2.303;
 
  171  constexpr value_T 
kp2 = 3.00 * 2.303;
 
  172  constexpr value_T 
meanZA = 0.49848;
 
  173  constexpr value_T 
lhwI = -1.7175226;         
 
  174  constexpr value_T log2muTomeanI = 8.6839805; 
 
  180  const value_T 
x = gpu::CAMath::Log(
bg);
 
  183  } 
else if (
x > 
kp1) {
 
 
  192template <
typename value_T>
 
  193GPUdi() value_T BetheBlochSolidDerivative(value_T 
dedx, value_T 
bg)
 
  206  constexpr value_T 
mK = 0.307075e-3; 
 
  207  constexpr value_T 
meanZA = 0.49848;
 
General auxilliary methods.
GLuint GLfloat GLfloat GLfloat GLfloat GLfloat GLfloat GLfloat GLfloat GLfloat t1
GPUdi() TrackParametrization< value_T >
value_T std::array< value_T, 7 > & vect
constexpr value_T kOvSqSix
GPUd() value_T BetheBlochSolid(value_T bg
value_T value_T value_T value_T meanI
value_T value_T value_T value_T value_T meanZA
value_T value_T value_T kp2
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
Defining DataPointCompositeObject explicitly as copiable.