Project
Loading...
Searching...
No Matches
LineProjection.h
Go to the documentation of this file.
1
// Copyright 2019-2026 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
15
16
#ifndef O2_ITS_TRACKING_LINE_PROJECTION_H_
17
#define O2_ITS_TRACKING_LINE_PROJECTION_H_
18
19
#include "
GPUCommonDef.h
"
20
#include "
DataFormatsITS/TimeEstBC.h
"
21
#include <cstdint>
22
#include <vector>
23
24
namespace
o2::its
25
{
26
27
// Half-open [lo, hi) range of sorted-line slots falling inside one z-window.
28
struct
LineWindow
{
29
int
lo
{0};
30
int
hi
{0};
31
};
32
33
// Per-line quality estimators carried alongside the projected line.
34
struct
LineQuality
{
35
float
chi2
{-1.f};
36
float
pt
{-1.f};
37
};
38
39
// Host mirror of the per-peak inputs needed to recompute, off-device, which lines a vertex candidate accepted.
40
// MC-only: filled just to feed the majority-vote labels.
41
struct
PeakMembershipHost
{
42
std::vector<int>
peakLineIdx
;
// per compacted peak: the sorted line slot it came from
43
std::vector<LineWindow>
win
;
// per sorted line: [lo, hi) z-window bounds
44
std::vector<TimeEstBC>
times
;
// per sorted line: its time interval
45
std::vector<int>
sortedToLine
;
// sorted slot -> global line index
46
47
void
clear
()
48
{
49
peakLineIdx
.clear();
50
win
.clear();
51
times
.clear();
52
sortedToLine
.clear();
53
}
54
};
55
56
namespace
gpu
57
{
58
59
// Spelled gpu::LineWindow at the device call sites; qualified lookup does not reach the
60
// enclosing namespace, so the alias has to be declared here.
61
using
LineWindow
=
o2::its::LineWindow
;
62
63
// Device SoA view of the lines projected onto the beam line.
64
struct
LineProjSoA
{
65
float
*
z
{
nullptr
};
// projected z at the beamline; sort key and binary-search key, kept dense
66
o2::its::TimeEstBC
*
t
{
nullptr
};
// time interval of the line
67
int
*
idx
{
nullptr
};
// sorted slot -> original line index
68
int
*
rof
{
nullptr
};
// ROF of the line
69
};
70
71
// One vertex candidate produced by the device fit, before the host emit step
72
struct
VertexCand
{
73
float
x
,
y
,
z
;
74
float
rms2
[6];
75
float
avgDist2
;
76
int
nGood
;
77
float
seed
[3];
78
o2::its::TimeEstBC
time
;
79
int
size
;
80
uint8_t
ok
;
// 1 if the candidate passed the fit cuts
81
uint8_t
keep
;
// 1 if it survived duplicate suppression (subset of ok)
82
uint8_t
fine
;
83
};
84
85
}
// namespace gpu
86
87
}
// namespace o2::its
88
89
#endif
GPUCommonDef.h
TimeEstBC.h
o2::its::TimeEstBC
Definition
TimeEstBC.h:32
z
GLdouble GLdouble GLdouble z
Definition
glcorearb.h:843
o2::its
Definition
RecoContainer.h:65
o2::its::LineQuality
Definition
LineProjection.h:34
o2::its::LineQuality::chi2
float chi2
Definition
LineProjection.h:35
o2::its::LineQuality::pt
float pt
Definition
LineProjection.h:36
o2::its::LineWindow
Definition
LineProjection.h:28
o2::its::LineWindow::lo
int lo
Definition
LineProjection.h:29
o2::its::LineWindow::hi
int hi
Definition
LineProjection.h:30
o2::its::PeakMembershipHost
Definition
LineProjection.h:41
o2::its::PeakMembershipHost::clear
void clear()
Definition
LineProjection.h:47
o2::its::PeakMembershipHost::sortedToLine
std::vector< int > sortedToLine
Definition
LineProjection.h:45
o2::its::PeakMembershipHost::times
std::vector< TimeEstBC > times
Definition
LineProjection.h:44
o2::its::PeakMembershipHost::win
std::vector< LineWindow > win
Definition
LineProjection.h:43
o2::its::PeakMembershipHost::peakLineIdx
std::vector< int > peakLineIdx
Definition
LineProjection.h:42
o2::its::gpu::LineProjSoA
Definition
LineProjection.h:64
o2::its::gpu::LineProjSoA::rof
int * rof
Definition
LineProjection.h:68
o2::its::gpu::LineProjSoA::t
o2::its::TimeEstBC * t
Definition
LineProjection.h:66
o2::its::gpu::LineProjSoA::idx
int * idx
Definition
LineProjection.h:67
o2::its::gpu::VertexCand
Definition
LineProjection.h:72
o2::its::gpu::VertexCand::x
float x
Definition
LineProjection.h:73
o2::its::gpu::VertexCand::seed
float seed[3]
Definition
LineProjection.h:77
o2::its::gpu::VertexCand::z
float z
Definition
LineProjection.h:73
o2::its::gpu::VertexCand::fine
uint8_t fine
Definition
LineProjection.h:82
o2::its::gpu::VertexCand::size
int size
Definition
LineProjection.h:79
o2::its::gpu::VertexCand::y
float y
Definition
LineProjection.h:73
o2::its::gpu::VertexCand::time
o2::its::TimeEstBC time
Definition
LineProjection.h:78
o2::its::gpu::VertexCand::nGood
int nGood
Definition
LineProjection.h:76
o2::its::gpu::VertexCand::keep
uint8_t keep
Definition
LineProjection.h:81
o2::its::gpu::VertexCand::ok
uint8_t ok
Definition
LineProjection.h:80
o2::its::gpu::VertexCand::rms2
float rms2[6]
Definition
LineProjection.h:74
o2::its::gpu::VertexCand::avgDist2
float avgDist2
Definition
LineProjection.h:75
Detectors
ITSMFT
ITS
tracking
include
ITStracking
LineProjection.h
Generated on Tue Oct 6 2026 07:34:08 for Project by
1.9.8