ATLAS Offline Software
MultiComponentStateOnSurface.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 /*******************************************************************************
6  MultiComponentStateOnSurface.h - description
7  -----------------------------------------------
8 begin : Monday 20th December 2004
9 author : atkinson, amorley,anastopoulos
10 description : This class is a multi component adaptation of the
11  class TrackStateOnSurface (from Moyse).
12  In that class the track state was represented
13  by a single 5 component track paramter
14  vector (a0, z0, phi0, theta0, q/p) and the associated
15  covariance matrix.
16  In its multi-component form the track
17  state on surface is represented by many track parameters
18  each with a covariance matrix and additionally a
19  weighting is attached to each component which reflects
20  the importance of that particular component in the
21  overall mixture of components which is used to describe
22  the track state at that surface.
23 *******************************************************************************/
24 
25 #ifndef TrkMultiComponentStateOnSurface_H
26 #define TrkMultiComponentStateOnSurface_H
27 
32 #include <iostream>
33 
34 class MsgStream;
35 class TrackCollectionCnv;
37 namespace Trk {
38 class MaterialEffectsBase;
39 class MeasurementBase;
40 
42 {
43 
44  friend class ::TrackCollectionCnv;
45  friend class ::TrackStateOnSurfaceCnv_p3;
46 
47 public:
50 
55  const FitQualityOnSurface&,
56  std::unique_ptr<MeasurementBase>,
57  std::unique_ptr<TrackParameters>,
59  std::unique_ptr<MaterialEffectsBase> materialEffectsOnTrack = nullptr);
60 
65  const FitQualityOnSurface&,
66  std::unique_ptr<MeasurementBase>,
67  std::unique_ptr<TrackParameters>,
69  std::unique_ptr<MaterialEffectsBase>,
70  const std::bitset<NumberOfTrackStateOnSurfaceTypes>& types);
71 
76 
79  default;
81  MultiComponentStateOnSurface&& other) noexcept = default;
82 
84  virtual ~MultiComponentStateOnSurface() = default;
85 
87  virtual MultiComponentStateOnSurface* clone() const override final;
88 
90  virtual TrackStateOnSurface::Variety variety() const override final;
91 
94 
98 
99 private:
101 };
102 
104 MsgStream&
105 operator<<(MsgStream&, const MultiComponentStateOnSurface&);
106 
108 std::ostream&
109 operator<<(std::ostream&, const MultiComponentStateOnSurface&);
110 
111 } // end of Trk namespace
112 
121 
123 #endif
Trk::MultiComponentStateOnSurface::MultiComponentStateOnSurface
MultiComponentStateOnSurface(MultiComponentStateOnSurface &&other) noexcept=default
Move constructor and assignment.
Trk::MultiComponentStateOnSurface::clone
virtual MultiComponentStateOnSurface * clone() const override final
Clone method for deep copy of MultiComponentStateOnSurface.
Definition: MultiComponentStateOnSurface.cxx:80
TrackParameters.h
DATAVECTOR_BASE
DATAVECTOR_BASE(const Trk::MultiComponentStateOnSurface, const Trk::TrackStateOnSurface)
Trk::Track is constucted from DataVector<const Trk::TrackStateOnSurface>.
Trk::MultiComponentStateOnSurface::operator=
MultiComponentStateOnSurface & operator=(const MultiComponentStateOnSurface &other)
Definition: MultiComponentStateOnSurface.cxx:68
Trk::TrackStateOnSurface::types
const std::bitset< NumberOfTrackStateOnSurfaceTypes > types() const
returns a bitset with the types of this bitset.
FitQualityOnSurface.h
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:562
Trk::FitQualityOnSurface
Definition: FitQualityOnSurface.h:19
Trk::MultiComponentStateOnSurface::~MultiComponentStateOnSurface
virtual ~MultiComponentStateOnSurface()=default
Virtual destructor.
Trk::TrackStateOnSurface::materialEffectsOnTrack
const MaterialEffectsBase * materialEffectsOnTrack() const
return material effects const overload
TrackCollectionCnv
Definition: TrackCollectionCnv.h:47
Trk::MultiComponentState
std::vector< ComponentParameters > MultiComponentState
Definition: ComponentParameters.h:27
Trk::MultiComponentStateOnSurface::MultiComponentStateOnSurface
MultiComponentStateOnSurface()
Default constructor for POOL.
Definition: MultiComponentStateOnSurface.cxx:14
Trk::MultiComponentStateOnSurface::components
const MultiComponentState & components() const
Method to return a referenceto the multi-component state const overload.
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
MultiComponentStateOnSurfaceDV
DataVector< const Trk::MultiComponentStateOnSurface > MultiComponentStateOnSurfaceDV
Definition: MultiComponentStateOnSurface.h:120
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Trk::TrackStateOnSurface::Variety
Variety
Definition: TrackStateOnSurface.h:212
Trk::TrackStateOnSurface
represents the track state (measurement, material, fit parameters and quality) at a surface.
Definition: TrackStateOnSurface.h:71
private
#define private
Definition: DetDescrConditionsDict_dict_fixes.cxx:13
Trk::MultiComponentStateOnSurface::operator=
MultiComponentStateOnSurface & operator=(MultiComponentStateOnSurface &&other) noexcept=default
TrackStateOnSurfaceCnv_p3
Definition: TrackStateOnSurfaceCnv_p3.h:28
DataVector.h
An STL vector of pointers that by default owns its pointed-to elements.
ComponentParameters.h
Definition of component parameters for use in a mixture of many components. In this regime each track...
InDetDD::other
@ other
Definition: InDetDD_Defs.h:16
Trk::MultiComponentStateOnSurface
Definition: MultiComponentStateOnSurface.h:42
Trk::operator<<
MsgStream & operator<<(MsgStream &sl, const AlignModule &alignModule)
overload of << operator for MsgStream for debug output
Definition: AlignModule.cxx:204
Trk::MultiComponentStateOnSurface::m_multiComponentState
MultiComponentState m_multiComponentState
Definition: MultiComponentStateOnSurface.h:100
Trk::MultiComponentStateOnSurface::variety
virtual TrackStateOnSurface::Variety variety() const override final
This is Multi.
TrackStateOnSurface.h
MultiComponentStateOnSurface.icc