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() bool OK() const { return mFlags & 0x01; }
45 GPUd() bool Looper() const { return mFlags & 0x02; }
46 GPUd() bool CSide() const { return mFlags & 0x04; }
47 GPUd() bool CCE() const { return mFlags & 0x08; }
48 GPUd() bool MergedLooper() const { return mFlags & 0x10; }
49
50 GPUd() void SetNClusters(int32_t v) { mNClusters = v; }
51 GPUd() void SetNClustersFitted(int32_t v) { mNClustersFitted = v; }
52 GPUd() void SetFirstClusterRef(int32_t v) { mFirstClusterRef = v; }
53 GPUd() void SetParam(const GPUTPCGMTrackParam& v) { mParam = v; }
54 GPUd() void SetAlpha(float v) { mAlpha = v; }
55 GPUd() void SetOK(bool v)
56 {
57 if (v) {
58 mFlags |= 0x01;
59 } else {
60 mFlags &= 0xFE;
61 }
62 }
63 GPUd() void SetLooper(bool v)
64 {
65 if (v) {
66 mFlags |= 0x02;
67 } else {
68 mFlags &= 0xFD;
69 }
70 }
71 GPUd() void SetCSide(bool v)
72 {
73 if (v) {
74 mFlags |= 0x04;
75 } else {
76 mFlags &= 0xFB;
77 }
78 }
79 GPUd() void SetCCE(bool v)
80 {
81 if (v) {
82 mFlags |= 0x08;
83 } else {
84 mFlags &= 0xF7;
85 }
86 }
87 GPUd() void SetMergedLooper(bool v)
88 {
89 if (v) {
90 mFlags |= 0x10;
91 } else {
92 mFlags &= 0xEF;
93 }
94 }
95 GPUd() void SetFlags(uint8_t v) { mFlags = v; }
96 GPUd() void SetLegs(uint8_t v) { mLegs = v; }
97 GPUd() uint8_t Legs() const { return mLegs; }
98 GPUd() uint8_t Flags() const { return mFlags; }
99
100 GPUd() const gputpcgmmergertypes::GPUTPCOuterParam& OuterParam() const { return mOuterParam; }
101 GPUd() gputpcgmmergertypes::GPUTPCOuterParam& OuterParam() { return mOuterParam; }
102
103 private:
104 GPUTPCGMTrackParam mParam; //* fitted track parameters
105 gputpcgmmergertypes::GPUTPCOuterParam mOuterParam; //* outer param
106
107 float mAlpha; //* alpha angle
108 uint32_t mFirstClusterRef; //* index of the first track cluster in corresponding cluster arrays
109 // TODO: Change to 8 bit
110 uint32_t mNClusters; //* number of track clusters
111 uint32_t mNClustersFitted; //* number of clusters used in fit
112 uint8_t mFlags;
113 uint8_t mLegs;
114
115#if !defined(GPUCA_STANDALONE)
116 ClassDefNV(GPUTPCGMMergedTrack, 0);
117#endif
118};
119} // namespace o2::gpu
120
121#endif
GPUd() void SetNClustersFitted(int32_t v)
GPUd() float GetAlpha() const
GPUd() void SetFlags(uint8_t v)
GPUd() void SetParam(const GPUTPCGMTrackParam &v)
GPUd() uint32_t NClustersFitted() const
GPUd() const GPUTPCGMTrackParam &GetParam() const
GPUd() void SetNClusters(int32_t v)
GPUd() uint8_t Flags() const
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() const gputpcgmmergertypes
const GLdouble * v
Definition glcorearb.h:832
typedef void(APIENTRYP PFNGLCULLFACEPROC)(GLenum mode)