Project
Loading...
Searching...
No Matches
TripletFitting.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
12#ifndef ALICEO2_ITSMFT_TRACKING_TRIPLETFITTING_H_
13#define ALICEO2_ITSMFT_TRACKING_TRIPLETFITTING_H_
14
15#include <array>
16#include <type_traits>
17
18#include "GPUCommonDef.h"
20
22{
23
25 float theta{0.f};
26 float phi{0.f};
27};
28
29// Theta and phi rows of the hit-coordinate Jacobian H.
31 std::array<float, 3> theta{};
32 std::array<float, 3> phi{};
33};
34
35// Linearized local-triplet factor from Eq. (19) of the General Triplet Track
36// Fit. H is evaluated at kappaRef = -Psi_phi / rho_phi and hit slot i maps to
37// Triplet::getClusterReference(i). Measurement and MS covariances are added
38// when adjacent triplets are compared.
42 std::array<TripletHitJacobian, 3> h{};
43
44 GPUhdi() bool isValid() const noexcept
45 {
46 return rho.phi != 0.f;
47 }
48};
49
50static_assert(std::is_standard_layout_v<TripletFitFactor>);
51static_assert(std::is_trivially_copyable_v<TripletFitFactor>);
52static_assert(sizeof(TripletFitFactor) == 88);
53
55 float curvature{0.};
57 float chi2{0.};
58};
59
61 const std::array<GlobalMeasurement, 3>& measurements,
62 TripletFitFactor& factor) noexcept;
63
64// Minimize Eq. (19) for adjacent triplets sharing one curvature. measurements
65// are the four unique ordered hits; angularVariance is the space-angle MS
66// variance for each triplet.
68 const TripletFitFactor& firstFactor,
69 const TripletFitFactor& secondFactor,
70 const std::array<GlobalMeasurement, 4>& measurements,
71 const std::array<float, 2>& angularVariance,
72 AdjacentTripletFitResult& result) noexcept;
73
74} // namespace o2::itsmft::tracking
75
76#endif // ALICEO2_ITSMFT_TRACKING_TRIPLETFITTING_H_
Class for time synchronization of RawReader instances.
GLuint64EXT * result
Definition glcorearb.h:5662
uint32_t trackClusterIndicesSize noexcept
bool fitAdjacentTripletFactors(const TripletFitFactor &firstFactor, const TripletFitFactor &secondFactor, const std::array< GlobalMeasurement, 4 > &measurements, const std::array< float, 2 > &angularVariance, AdjacentTripletFitResult &result) noexcept
bool makeTripletFitFactor(const std::array< GlobalMeasurement, 3 > &measurements, TripletFitFactor &factor) noexcept
bool isValid(std::string alias)
GPUhdi() bool isValid() const noexcept