Project
Loading...
Searching...
No Matches
GPUROOTCartesianFwd.h
Go to the documentation of this file.
1// Copyright 2019-2020 CERN and copyright holders of ALICE O2.
2// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
3// All rights not expressly granted are reserved.
4//
5// This software is distributed under the terms of the GNU General Public
6// License v3 (GPL Version 3), copied verbatim in the file "COPYING".
7//
8// In applying this license CERN does not waive the privileges and immunities
9// granted to it by virtue of its status as an Intergovernmental Organization
10// or submit itself to any jurisdiction.
11
14
15#ifndef GPUROOTCARTESIANFWD_H
16#define GPUROOTCARTESIANFWD_H
17
18// Standalone forward declarations for Cartesian2D / Cartesian3D / Point2D / Point3D etc.
19// To be used on GPU where ROOT is not available.
20
21#include "GPUCommonDef.h"
22
23namespace ROOT
24{
25namespace Math
26{
27template <class T, uint32_t D1, uint32_t D2, class R>
28class SMatrix;
29template <class T, uint32_t D>
31template <class T, uint32_t D1, uint32_t D2>
33template <class CoordSystem, class Tag>
35template <class CoordSystem, class Tag>
37template <class CoordSystem, class Tag>
39template <class CoordSystem, class Tag>
41template <class T>
43template <class T>
45class DefaultCoordinateSystemTag;
46} // namespace Math
47} // namespace ROOT
48
49namespace o2
50{
51namespace math_utils
52{
53
54namespace detail
55{
56template <typename T, int32_t I>
57struct GPUPoint2D;
58template <typename T, int32_t I>
59struct GPUPoint3D;
60} // namespace detail
61
62#if (!defined(GPUCA_STANDALONE) || !defined(DGPUCA_NO_ROOT)) && !defined(GPUCA_GPUCODE) && !defined(GPUCOMMONRTYPES_H_ACTIVE)
63template <typename T>
64using Point2D = ROOT::Math::PositionVector2D<ROOT::Math::Cartesian2D<T>, ROOT::Math::DefaultCoordinateSystemTag>;
65template <typename T>
66using Vector2D = ROOT::Math::DisplacementVector2D<ROOT::Math::Cartesian2D<T>, ROOT::Math::DefaultCoordinateSystemTag>;
67template <typename T>
68using Point3D = ROOT::Math::PositionVector3D<ROOT::Math::Cartesian3D<T>, ROOT::Math::DefaultCoordinateSystemTag>;
69template <typename T>
70using Vector3D = ROOT::Math::DisplacementVector3D<ROOT::Math::Cartesian3D<T>, ROOT::Math::DefaultCoordinateSystemTag>;
71#else
72template <typename T>
74template <typename T>
76template <typename T>
78template <typename T>
80#endif
81
82} // namespace math_utils
83} // namespace o2
84
85#endif
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...