ATLAS Offline Software
Loading...
Searching...
No Matches
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 -----------------------------------------------
8begin : Monday 20th December 2004
9author : atkinson, amorley,anastopoulos
10description : 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
34class MsgStream;
37namespace Trk {
39class MeasurementBase;
40
42{
43
44 friend class ::TrackCollectionCnv;
45 friend class ::TrackStateOnSurfaceCnv_p3;
46
47public:
50
56 std::unique_ptr<MeasurementBase>,
57 std::unique_ptr<TrackParameters>,
59 std::unique_ptr<MaterialEffectsBase> materialEffectsOnTrack = nullptr);
60
66 std::unique_ptr<MeasurementBase>,
67 std::unique_ptr<TrackParameters>,
69 std::unique_ptr<MaterialEffectsBase>,
70 const std::bitset<NumberOfTrackStateOnSurfaceTypes>& types);
71
75 const MultiComponentStateOnSurface& other);
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
101};
102
104MsgStream&
105operator<<(MsgStream&, const MultiComponentStateOnSurface&);
106
108std::ostream&
109operator<<(std::ostream&, const MultiComponentStateOnSurface&);
110
111} // end of Trk namespace
112
121
123#endif
Definition of component parameters for use in a mixture of many components. In this regime each track...
An STL vector of pointers that by default owns its pointed-to elements.
#define DATAVECTOR_BASE(T, BASE)
Declare base class info to DataVector.
Definition DataVector.h:649
DataVector< const Trk::MultiComponentStateOnSurface > MultiComponentStateOnSurfaceDV
Derived DataVector<T>.
Definition DataVector.h:795
base class to integrate material effects on Trk::Track in a flexible way.
This class is the pure abstract base class for all fittable tracking measurements.
MultiComponentStateOnSurface & operator=(MultiComponentStateOnSurface &&other) noexcept=default
MultiComponentStateOnSurface(MultiComponentStateOnSurface &&other) noexcept=default
Move constructor and assignment.
virtual MultiComponentStateOnSurface * clone() const override final
Clone method for deep copy of MultiComponentStateOnSurface.
MultiComponentStateOnSurface & operator=(const MultiComponentStateOnSurface &other)
MultiComponentStateOnSurface()
Default constructor for POOL.
const MultiComponentState & components() const
Method to return a referenceto the multi-component state const overload.
virtual TrackStateOnSurface::Variety variety() const override final
This is Multi.
virtual ~MultiComponentStateOnSurface()=default
Virtual destructor.
represents the track state (measurement, material, fit parameters and quality) at a surface.
const std::bitset< NumberOfTrackStateOnSurfaceTypes > types() const
returns a bitset with the types of this bitset.
TrackStateOnSurface()
Default ctor for POOL.
const MaterialEffectsBase * materialEffectsOnTrack() const
return material effects const overload
Ensure that the ATLAS eigen extensions are properly loaded.
std::vector< ComponentParameters > MultiComponentState
MsgStream & operator<<(MsgStream &sl, const AlignModule &alignModule)
overload of << operator for MsgStream for debug output
#define private