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)
168 GPUd() float getChi2()
const {
return mChi2; }
183#if !defined(GPUCA_GPUCODE_DEVICE) && !defined(GPUCA_NO_FMT)
193 -> std::same_as<std::ostream&>;
199 fmt::format(
"{}", t.getTimeStamp())
201 -> std::convertible_to<std::string>;
207 fmt::format(
"{}+-{}", t.getTimeStamp(), t.getTimeStampError())
209 -> std::convertible_to<std::string>;
213template <
typename Stamp>
216 const std::string stamp = [&]() -> std::string {
218 std::ostringstream oss;
222 return fmt::format(
"{}+-{}", mTimeStamp.getTimeStamp(), mTimeStamp.getTimeStampError());
224 return fmt::format(
"{}", mTimeStamp.getTimeStamp());
229 return fmt::format(
"{} NContrib:{} Chi2:{:.2f} Flags:{:b} Stamp:{}",
VertexBase::asString(), mNContributors, mChi2, mBits, stamp);
232template <
typename Stamp>
239template <
typename Stamp>
242 std::cout << *
this <<
'\n';
248#ifndef GPUCA_GPUCODE_DEVICE
253struct 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 ...
VectorOfTObjectPtrs other