Project
Loading...
Searching...
No Matches
LineVertexerHelpers.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
12#ifndef O2_ITS_TRACKING_LINE_VERTEXER_HELPERS_H_
13#define O2_ITS_TRACKING_LINE_VERTEXER_HELPERS_H_
14
15#include <memory>
16#include <span>
17
20
22{
23
26
27struct Settings {
28 float beamX = 0.f;
29 float beamY = 0.f;
30 float pairCut = 0.f;
31 float pairCut2 = 0.f;
32 float clusterCut = 0.f;
33 float coarseZWindow = 0.f;
34 float seedDedupZCut = 0.f;
35 float refitDedupZCut = 0.f;
36 float duplicateZCut = 0.f;
38 float finalSelectionZCut = 0.f;
39 float maxZ = 0.f;
42 std::shared_ptr<BoundedMemoryResource> memoryPool;
43};
44
47 bounded_vector<int> lineIndices;
48
49 const float* getVertex() const noexcept { return fit.getVertex(); }
50 const float* getRMS2() const noexcept { return fit.getRMS2(); }
51 int getSize() const noexcept { return fit.getSize(); }
52 float getAvgDistance2() const noexcept { return fit.getAvgDistance2(); }
53 const auto& getTimeStamp() const noexcept { return fit.getTimeStamp(); }
54 bool isValid() const noexcept { return fit.isValid(); }
55 const auto& getLabels() const noexcept { return lineIndices; }
56};
57
58bounded_vector<ClusterWithLines> buildClusters(std::span<const Line> lines, const Settings& settings);
59
60} // namespace o2::its::line_vertexer
61
62#endif
Least-squares vertex fit over a set of lines (the normal equations AX = -B).
GLfloat GLfloat GLfloat GLfloat GLfloat GLfloat maxZ
Definition glcorearb.h:2910
bounded_vector< ClusterWithLines > buildClusters(std::span< const Line > lines, const Settings &settings)
std::pmr::vector< T > bounded_vector
const auto & getLabels() const noexcept
const auto & getTimeStamp() const noexcept
const float * getVertex() const noexcept
const float * getRMS2() const noexcept
std::shared_ptr< BoundedMemoryResource > memoryPool