12#ifndef ALICEO2_VERTEX_H
13#define ALICEO2_VERTEX_H
20#ifndef GPUCA_GPUCODE_DEVICE
26#include <fmt/format.h>
60#if !defined(GPUCA_NO_FMT) && !defined(GPUCA_GPUCODE_DEVICE)
69 GPUhd() float getR()
const {
return gpu::CAMath::Hypot(
mPos.X(),
mPos.Y()); }
76 GPUd() float getSigmaX()
const {
return gpu::CAMath::Sqrt(getSigmaX2()); }
77 GPUd() float getSigmaY()
const {
return gpu::CAMath::Sqrt(getSigmaY2()); }
78 GPUd() float getSigmaZ()
const {
return gpu::CAMath::Sqrt(getSigmaZ2()); }
81 GPUd() float getCov(
int e)
const {
return mCov[
e]; }
125 std::array<float, kNCov>
mCov{};
134template <
typename Stamp>
150#if !defined(GPUCA_NO_FMT) && !defined(GPUCA_GPUCODE_DEVICE)
165 GPUd() float getChi2()
const {
return mChi2; }
180#if !defined(GPUCA_GPUCODE_DEVICE) && !defined(GPUCA_NO_FMT)
187 { os <<
a } -> std::same_as<std::ostream&>;
192 { fmt::format(
"{}", t.getTimeStamp()) } -> std::convertible_to<std::string>;
196template <
typename Stamp>
199 const std::string stamp = [&]() -> std::string {
201 std::ostringstream oss;
205 return fmt::format(
"{}", mTimeStamp.getTimeStamp());
210 return fmt::format(
"{} NContrib:{} Chi2:{:.2f} Flags:{:b} Stamp:{}",
VertexBase::asString(), mNContributors, mChi2, mBits, stamp);
213template <
typename Stamp>
220template <
typename Stamp>
223 std::cout << *
this <<
'\n';
229#ifndef GPUCA_GPUCODE_DEVICE
234struct is_messageable;
typedef void(APIENTRYP PFNGLCULLFACEPROC)(GLenum mode)
GLboolean GLboolean GLboolean GLboolean a
GLdouble GLdouble GLdouble z
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
Defining DataPointCompositeObject explicitly as copiable.
VectorOfTObjectPtrs other