Skip to content

Commit 21a662f

Browse files
committed
DataFormats: first steps toward a unified barrel/fwd track
1 parent aafbebf commit 21a662f

1 file changed

Lines changed: 68 additions & 0 deletions

File tree

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
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+
12+
/// @file TrackParametrizationData.h
13+
/// @brief Common storage for track parameterizations.
14+
15+
#ifndef INCLUDE_RECONSTRUCTIONDATAFORMATS_TRACKPARAMETRIZATIONDATA_H_
16+
#define INCLUDE_RECONSTRUCTIONDATAFORMATS_TRACKPARAMETRIZATIONDATA_H_
17+
18+
#include "GPUCommonDef.h"
19+
#include "GPUCommonRtypes.h"
20+
21+
#include <array>
22+
23+
namespace o2::track
24+
{
25+
26+
template <typename value_T, int nParams>
27+
class TrackParametrizationData
28+
{
29+
public:
30+
using value_t = value_T;
31+
32+
GPUdDefault() TrackParametrizationData() = default;
33+
GPUd() explicit TrackParametrizationData(value_t s) : mX{s} {}
34+
GPUdDefault() TrackParametrizationData(const TrackParametrizationData&) = default;
35+
GPUdDefault() TrackParametrizationData(TrackParametrizationData&&) = default;
36+
GPUhdDefault() TrackParametrizationData& operator=(const TrackParametrizationData&) = default;
37+
GPUhdDefault() TrackParametrizationData& operator=(TrackParametrizationData&&) = default;
38+
GPUdDefault() ~TrackParametrizationData() = default;
39+
40+
protected:
41+
value_t mX = 0; ///< Intrinsic coordinate of the track parameterization
42+
value_t mP[nParams] = {}; ///< Local track parameters
43+
44+
ClassDefNV(TrackParametrizationData, 1);
45+
};
46+
47+
template <typename value_T, int nCov>
48+
class TrackCovarianceData
49+
{
50+
public:
51+
using value_t = value_T;
52+
53+
GPUdDefault() TrackCovarianceData() = default;
54+
GPUdDefault() TrackCovarianceData(const TrackCovarianceData&) = default;
55+
GPUdDefault() TrackCovarianceData(TrackCovarianceData&&) = default;
56+
GPUhdDefault() TrackCovarianceData& operator=(const TrackCovarianceData&) = default;
57+
GPUhdDefault() TrackCovarianceData& operator=(TrackCovarianceData&&) = default;
58+
GPUdDefault() ~TrackCovarianceData() = default;
59+
60+
protected:
61+
std::array<value_t, nCov> mC{}; ///< Packed covariance matrix
62+
63+
ClassDefNV(TrackCovarianceData, 1);
64+
};
65+
66+
} // namespace o2::track
67+
68+
#endif

0 commit comments

Comments
 (0)