Project
Loading...
Searching...
No Matches
GPUTPCGMMergedTrack.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 GPUTPCGMMERGEDTRACK_H
16#define GPUTPCGMMERGEDTRACK_H
17
18#include "GPUTPCGMTrackParam.h"
20
21namespace o2::gpu
22{
29{
30 public:
31 GPUd() uint32_t NClusters() const { return mNClusters; }
32 GPUd() uint32_t NClustersFitted() const { return mNClustersFitted; }
33 GPUd() uint32_t FirstClusterRef() const { return mFirstClusterRef; }
34 GPUd() const GPUTPCGMTrackParam& GetParam() const { return mParam; }
35 GPUd() float GetAlpha() const { return mAlpha; }
37 {
38 return mParam;
39 }
40 GPUd() float& Alpha()
41 {
42 return mAlpha;
43 }
44 GPUd() float LastX() const { return mLastX; }
45 GPUd() float LastY() const { return mLastY; }
46 GPUd() float LastZ() const { return mLastZ; }
47 GPUd() bool OK() const { return mFlags & 0x01; }
48 GPUd() bool Looper() const { return mFlags & 0x02; }
49 GPUd() bool CSide() const { return mFlags & 0x04; }
50 GPUd() bool CCE() const { return mFlags & 0x08; }
51 GPUd() bool MergedLooper() const { return mFlags & 0x10; }
52
53 GPUd() void SetNClusters(int32_t v) { mNClusters = v; }
54 GPUd() void SetNClustersFitted(int32_t v) { mNClustersFitted = v; }
55 GPUd() void SetFirstClusterRef(int32_t v) { mFirstClusterRef = v; }
56 GPUd() void SetParam(const GPUTPCGMTrackParam& v) { mParam = v; }
57 GPUd() void SetAlpha(float v) { mAlpha = v; }
58 GPUd() void SetLastX(float v) { mLastX = v; }
59 GPUd() void SetLastY(float v) { mLastY = v; }
60 GPUd() void SetLastZ(float v) { mLastZ = v; }
61 GPUd() void SetOK(bool v)
62 {
63 if (v) {
64 mFlags |= 0x01;
65 } else {
66 mFlags &= 0xFE;
67 }
68 }
69 GPUd() void SetLooper(bool v)
70 {
71 if (v) {
72 mFlags |= 0x02;
73 } else {
74 mFlags &= 0xFD;
75 }
76 }
77 GPUd() void SetCSide(bool v)
78 {
79 if (v) {
80 mFlags |= 0x04;
81 } else {
82 mFlags &= 0xFB;
83 }
84 }
85 GPUd() void SetCCE(bool v)
86 {
87 if (v) {
88 mFlags |= 0x08;
89 } else {
90 mFlags &= 0xF7;
91 }
92 }
93 GPUd() void SetMergedLooper(bool v)
94 {
95 if (v) {
96 mFlags |= 0x10;
97 } else {
98 mFlags &= 0xEF;
99 }
100 }
101 GPUd() void SetFlags(uint8_t v) { mFlags = v; }
102 GPUd() void SetLegs(uint8_t v) { mLegs = v; }
103 GPUd() uint8_t Legs() const { return mLegs; }
104
105 GPUd() const gputpcgmmergertypes::GPUTPCOuterParam& OuterParam() const { return mOuterParam; }
106 GPUd() gputpcgmmergertypes::GPUTPCOuterParam& OuterParam() { return mOuterParam; }
107
108 private:
109 GPUTPCGMTrackParam mParam; //* fitted track parameters
110 gputpcgmmergertypes::GPUTPCOuterParam mOuterParam; //* outer param
111
112 float mAlpha; //* alpha angle
113 float mLastX; //* outer X
114 float mLastY; //* outer Y
115 float mLastZ; //* outer Z
116 uint32_t mFirstClusterRef; //* index of the first track cluster in corresponding cluster arrays
117 uint32_t mNClusters; //* number of track clusters
118 uint32_t mNClustersFitted; //* number of clusters used in fit
119 uint8_t mFlags;
120 uint8_t mLegs;
121
122#if !defined(GPUCA_STANDALONE)
123 ClassDefNV(GPUTPCGMMergedTrack, 0);
124#endif
125};
126} // namespace o2::gpu
127
128#endif
GPUd() void SetNClustersFitted(int32_t v)
GPUd() void SetLastZ(float v)
GPUd() float GetAlpha() const
GPUd() void SetFlags(uint8_t v)
GPUd() void SetLastX(float v)
GPUd() void SetParam(const GPUTPCGMTrackParam &v)
GPUd() uint32_t NClustersFitted() const
GPUd() const GPUTPCGMTrackParam &GetParam() const
GPUd() void SetNClusters(int32_t v)
GPUd() void SetLegs(uint8_t v)
GPUd() void SetCSide(bool v)
GPUd() void SetAlpha(float v)
GPUd() uint32_t NClusters() const
GPUd() uint32_t FirstClusterRef() const
GPUd() bool MergedLooper() const
GPUd() GPUTPCGMTrackParam &Param()
GPUd() void SetFirstClusterRef(int32_t v)
GPUd() void SetMergedLooper(bool v)
GPUd() void SetLooper(bool v)
GPUd() void SetLastY(float v)
GPUd() const gputpcgmmergertypes
const GLdouble * v
Definition glcorearb.h:832
typedef void(APIENTRYP PFNGLCULLFACEPROC)(GLenum mode)