10#ifndef TRKTRACKSTATEONSURFACE_H
11#define TRKTRACKSTATEONSURFACE_H
72 friend class ::TrackCollectionCnv;
73 friend class ::TrackStateOnSurfaceCnv_p3;
184 const std::bitset<NumberOfTrackStateOnSurfaceTypes>&
types,
185 const std::bitset<NumberOfPersistencyHints>&
hints)
188 unsigned int long res =
hints.to_ulong();
197 const unsigned int long input,
198 std::bitset<NumberOfTrackStateOnSurfaceTypes>&
types,
199 std::bitset<NumberOfPersistencyHints>&
hints)
202 constexpr unsigned int long maskTypesSet =
205 types = std::bitset<NumberOfTrackStateOnSurfaceTypes>(input & maskTypesSet);
207 hints = std::bitset<NumberOfPersistencyHints>(
232 std::unique_ptr<MeasurementBase> meas,
234 std::unique_ptr<MaterialEffectsBase> materialEffects =
nullptr,
238 std::unique_ptr<MeasurementBase> meas,
240 std::unique_ptr<MaterialEffectsBase> materialEffects =
nullptr,
259 std::unique_ptr<MeasurementBase> meas,
262 const std::bitset<TrackStateOnSurface::NumberOfTrackStateOnSurfaceTypes>& typePattern,
266 std::unique_ptr<MeasurementBase> meas,
269 const std::bitset<TrackStateOnSurface::NumberOfTrackStateOnSurfaceTypes>& typePattern,
341 const std::bitset<NumberOfTrackStateOnSurfaceTypes>
types()
const;
353 const std::bitset<NumberOfPersistencyHints>
hints()
const;
379operator<<(MsgStream& sl,
const TrackStateOnSurface& tsos);
383operator<<(std::ostream& sl,
const TrackStateOnSurface& tsos);
std::pair< std::vector< unsigned int >, bool > res
Class to represent misalignments or 'discontinuities' on tracks These have a surface where the z axis...
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.
Abstract Base Class for tracking surfaces.
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.
virtual TrackStateOnSurface * clone() const
Pseudo-constructor: needed to avoid excessive RTTI.
const MeasurementBase * measurementOnTrack() const
returns MeasurementBase const overload
std::unique_ptr< TrackParameters > m_trackParameters
std::unique_ptr< MeasurementBase > m_measurementOnTrack
MeasurementBase * measurementOnTrack()
returns MeasurementBase non-const overload
void setFlags()
set sensible default flags
virtual Trk::TrackStateOnSurface::Variety variety() const
Use this method to find if this is a Single, Multi or Align TrackStateOnsurface.
TrackStateOnSurface()
Default ctor for POOL.
std::unique_ptr< MaterialEffectsBase > m_materialEffectsOnTrack
const TrackParameters * trackParameters() const
return ptr to trackparameters const overload
const std::bitset< NumberOfPersistencyHints > hints() const
Use this method to get the persistification hints.
virtual ~TrackStateOnSurface()=default
destructor
std::string dumpType() const
returns a string with the expanded type of the object (i.e.
AlignmentEffectsOnTrack * alignmentEffectsOnTrack()
return the the alignment effects non-const overload
void setHints(const uint8_t hints) const
Use this method to set persistification hints.
static unsigned int long joinBitsets(const std::bitset< NumberOfTrackStateOnSurfaceTypes > &types, const std::bitset< NumberOfPersistencyHints > &hints)
FitQualityOnSurface & fitQualityOnSurface()
return FitQuality On Surface non-const overload
const FitQualityOnSurface & fitQualityOnSurface() const
return FitQuality On Surface const overload
Trk::TrackStateOnSurface & operator=(const Trk::TrackStateOnSurface &rhs)
std::atomic< uint8_t > m_hints
bool type(const TrackStateOnSurfaceType type) const
Use this method to find out if the TSoS is of a certain type: i.e.
@ PartialPersistification
@ PersistifySlimCaloDeposit
Mark track parameters for persisitification.
@ PersistifyMeasurement
Mark the measuremenet for persistification.
@ PersistifyTrackParameters
Mark track parameters for persisitification.
@ NumberOfPersistencyHints
static void splitToBitsets(const unsigned int long input, std::bitset< NumberOfTrackStateOnSurfaceTypes > &types, std::bitset< NumberOfPersistencyHints > &hints)
@ Unknown
For some reason this does not fall into any of the other categories PLEASE DO NOT USE THIS - DEPRECAT...
@ Measurement
This is a measurement, and will at least contain a Trk::MeasurementBase.
@ NumberOfTrackStateOnSurfaceTypes
@ Perigee
This represents a perigee, and so will contain a Perigee object only.
@ BremPoint
This represents a brem point on the track, and so will contain TrackParameters and MaterialEffectsBas...
@ Parameter
This TSOS contains a Trk::ParameterBase.
@ Alignment
This TSOS contains a Trk::AlignmentEffectsOnTrack.
@ Outlier
This TSoS contains an outlier, that is, it contains a MeasurementBase/RIO_OnTrack which was not used ...
@ InertMaterial
This represents inert material, and so will contain MaterialEffectsBase.
@ Scatterer
This represents a scattering point on the track, and so will contain TrackParameters and MaterialEffe...
@ Hole
A hole on the track - this is defined in the following way.
@ CaloDeposit
This TSOS contains a CaloEnergy object.
@ FitQuality
This TSOS contains a Trk::FitQualityOnSurface.
std::unique_ptr< AlignmentEffectsOnTrack > m_alignmentEffectsOnTrack
MaterialEffectsBase * materialEffectsOnTrack()
return material effects non-const overload
const MaterialEffectsBase * materialEffectsOnTrack() const
return material effects const overload
TrackParameters * trackParameters()
return ptr to trackparameters non-const overload
FitQualityOnSurface m_fitQualityOnSurface
const Trk::Surface & surface() const
return associated surface
const AlignmentEffectsOnTrack * alignmentEffectsOnTrack() const
return the the alignment effects const overload
Ensure that the ATLAS eigen extensions are properly loaded.
MsgStream & operator<<(MsgStream &sl, const AlignModule &alignModule)
overload of << operator for MsgStream for debug output
ParametersBase< TrackParametersDim, Charged > TrackParameters