ATLAS Offline Software
Loading...
Searching...
No Matches
GSFTsos.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3*/
4
11
12#ifndef TrkGsfTsos_H
13#define TrkGsfTsos_H
14
16
17struct GSFTsos {
18
19 // Full state
21 // Collapsed to single Parameters state
22 std::unique_ptr<Trk::TrackParameters> trackParameters{};
23 // Measurement
24 std::unique_ptr<Trk::MeasurementBase> measurementOnTrack{};
25 // FitQuality
27 // Type of TSOS
28 std::bitset<Trk::TrackStateOnSurface::NumberOfTrackStateOnSurfaceTypes>
30
31 // default move, move assignment and dtor
32 GSFTsos() = default;
33 GSFTsos& operator=(GSFTsos&&) = default;
34 GSFTsos(GSFTsos&&) = default;
35 ~GSFTsos() = default;
36
37 // implement copy and copy assignment
38 GSFTsos(const GSFTsos& rhs) = delete;
39 GSFTsos& operator=(const GSFTsos& rhs) = delete;
40
41 // Full constructor with passing of type flags
43 const Trk::FitQualityOnSurface& inFitQualityOnSurface,
44 std::unique_ptr<Trk::MeasurementBase> inMeasurementBase,
45 std::unique_ptr<Trk::TrackParameters> inTrackParameters,
46 Trk::MultiComponentState&& inMultiComponentState,
47 const std::bitset<Trk::TrackStateOnSurface::NumberOfTrackStateOnSurfaceTypes>& inTypeFlags)
48 : multiComponentState(std::move(inMultiComponentState)),
49 trackParameters(std::move(inTrackParameters)),
50 measurementOnTrack(std::move(inMeasurementBase)),
51 fitQualityOnSurface(inFitQualityOnSurface),
52 typeFlags(inTypeFlags) {}
53
54 // constructor with automatic setting of type flags
55 GSFTsos(const Trk::FitQualityOnSurface& inFitQualityOnSurface,
56 std::unique_ptr<Trk::MeasurementBase> inMeasurementBase,
57 std::unique_ptr<Trk::TrackParameters> inTrackParameters,
58 Trk::MultiComponentState&& inMultiComponentState)
59 : multiComponentState(std::move(inMultiComponentState)),
60 trackParameters(std::move(inTrackParameters)),
61 measurementOnTrack(std::move(inMeasurementBase)),
62 fitQualityOnSurface(inFitQualityOnSurface) {
65 }
66 if (!multiComponentState.empty()) {
67 typeFlags.set(Trk::TrackStateOnSurface::Parameter);
68 }
71 }
72 }
73 // convert pass ownership to MTSOS
74 std::unique_ptr<const Trk::MultiComponentStateOnSurface> convert(bool slim) {
75 if (!trackParameters) {
76 trackParameters = multiComponentState.front().params->uniqueClone();
77 }
78 if (slim) {
79 multiComponentState.clear();
80 }
81 return std::make_unique<const Trk::MultiComponentStateOnSurface>(
83 std::move(trackParameters), std::move(multiComponentState), nullptr,
84 typeFlags);
85 }
86};
87
88#endif
if(febId1==febId2)
@ Measurement
This is a measurement, and will at least contain a Trk::MeasurementBase.
@ FitQuality
This TSOS contains a Trk::FitQualityOnSurface.
std::vector< ComponentParameters > MultiComponentState
STL namespace.
Trk::FitQualityOnSurface fitQualityOnSurface
Definition GSFTsos.h:26
GSFTsos(const Trk::FitQualityOnSurface &inFitQualityOnSurface, std::unique_ptr< Trk::MeasurementBase > inMeasurementBase, std::unique_ptr< Trk::TrackParameters > inTrackParameters, Trk::MultiComponentState &&inMultiComponentState, const std::bitset< Trk::TrackStateOnSurface::NumberOfTrackStateOnSurfaceTypes > &inTypeFlags)
Definition GSFTsos.h:42
Trk::MultiComponentState multiComponentState
Definition GSFTsos.h:20
GSFTsos()=default
GSFTsos(const GSFTsos &rhs)=delete
std::unique_ptr< Trk::TrackParameters > trackParameters
Definition GSFTsos.h:22
std::bitset< Trk::TrackStateOnSurface::NumberOfTrackStateOnSurfaceTypes > typeFlags
Definition GSFTsos.h:29
GSFTsos(GSFTsos &&)=default
std::unique_ptr< const Trk::MultiComponentStateOnSurface > convert(bool slim)
Definition GSFTsos.h:74
std::unique_ptr< Trk::MeasurementBase > measurementOnTrack
Definition GSFTsos.h:24
GSFTsos(const Trk::FitQualityOnSurface &inFitQualityOnSurface, std::unique_ptr< Trk::MeasurementBase > inMeasurementBase, std::unique_ptr< Trk::TrackParameters > inTrackParameters, Trk::MultiComponentState &&inMultiComponentState)
Definition GSFTsos.h:55
GSFTsos & operator=(const GSFTsos &rhs)=delete
GSFTsos & operator=(GSFTsos &&)=default
~GSFTsos()=default