ATLAS Offline Software
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 
12 #ifndef TrkGsfTsos_H
13 #define TrkGsfTsos_H
14 
16 
17 struct 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
48  std::bitset<Trk::TrackStateOnSurface::NumberOfTrackStateOnSurfaceTypes>&
49  inTypeFlags)
50  : multiComponentState(std::move(inMultiComponentState)),
51  trackParameters(std::move(inTrackParameters)),
52  measurementOnTrack(std::move(inMeasurementBase)),
53  fitQualityOnSurface(inFitQualityOnSurface),
54  typeFlags(inTypeFlags) {}
55 
56  // constructor with automatic setting of type flags
57  GSFTsos(const Trk::FitQualityOnSurface& inFitQualityOnSurface,
58  std::unique_ptr<Trk::MeasurementBase> inMeasurementBase,
59  std::unique_ptr<Trk::TrackParameters> inTrackParameters,
60  Trk::MultiComponentState&& inMultiComponentState)
61  : multiComponentState(std::move(inMultiComponentState)),
62  trackParameters(std::move(inTrackParameters)),
63  measurementOnTrack(std::move(inMeasurementBase)),
64  fitQualityOnSurface(inFitQualityOnSurface) {
65  if (measurementOnTrack) {
67  }
68  if (!multiComponentState.empty()) {
70  }
71  if (fitQualityOnSurface) {
73  }
74  }
75  // convert pass ownership to MTSOS
76  std::unique_ptr<const Trk::MultiComponentStateOnSurface> convert(bool slim) {
77  if (!trackParameters) {
78  trackParameters = multiComponentState.front().params->uniqueClone();
79  }
80  if (slim) {
81  multiComponentState.clear();
82  }
83  return std::make_unique<const Trk::MultiComponentStateOnSurface>(
85  std::move(trackParameters), std::move(multiComponentState), nullptr,
86  typeFlags);
87  }
88 };
89 
90 #endif
GSFTsos::~GSFTsos
~GSFTsos()=default
GSFTsos::GSFTsos
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::FitQualityOnSurface
Definition: FitQualityOnSurface.h:19
GSFTsos::typeFlags
std::bitset< Trk::TrackStateOnSurface::NumberOfTrackStateOnSurfaceTypes > typeFlags
Definition: GSFTsos.h:29
GSFTsos::trackParameters
std::unique_ptr< Trk::TrackParameters > trackParameters
Definition: GSFTsos.h:22
GSFTsos::measurementOnTrack
std::unique_ptr< Trk::MeasurementBase > measurementOnTrack
Definition: GSFTsos.h:24
GSFTsos::GSFTsos
GSFTsos(GSFTsos &&)=default
Trk::MultiComponentState
std::vector< ComponentParameters > MultiComponentState
Definition: ComponentParameters.h:27
Trk::TrackStateOnSurface::Parameter
@ Parameter
This TSOS contains a Trk::ParameterBase.
Definition: TrackStateOnSurface.h:140
GSFTsos::GSFTsos
GSFTsos(const Trk::FitQualityOnSurface &inFitQualityOnSurface, std::unique_ptr< Trk::MeasurementBase > inMeasurementBase, std::unique_ptr< Trk::TrackParameters > inTrackParameters, Trk::MultiComponentState &&inMultiComponentState)
Definition: GSFTsos.h:57
GSFTsos
Definition: GSFTsos.h:17
GSFTsos::multiComponentState
Trk::MultiComponentState multiComponentState
Definition: GSFTsos.h:20
GSFTsos::fitQualityOnSurface
Trk::FitQualityOnSurface fitQualityOnSurface
Definition: GSFTsos.h:26
Trk::TrackStateOnSurface::FitQuality
@ FitQuality
This TSOS contains a Trk::FitQualityOnSurface.
Definition: TrackStateOnSurface.h:145
GSFTsos::GSFTsos
GSFTsos()=default
GSFTsos::GSFTsos
GSFTsos(const GSFTsos &rhs)=delete
GSFTsos::operator=
GSFTsos & operator=(GSFTsos &&)=default
GSFTsos::convert
std::unique_ptr< const Trk::MultiComponentStateOnSurface > convert(bool slim)
Definition: GSFTsos.h:76
MultiComponentStateOnSurface.h
Trk::TrackStateOnSurface::Measurement
@ Measurement
This is a measurement, and will at least contain a Trk::MeasurementBase.
Definition: TrackStateOnSurface.h:101
GSFTsos::operator=
GSFTsos & operator=(const GSFTsos &rhs)=delete