ATLAS Offline Software
|
represents the track state (measurement, material, fit parameters and quality) at a surface. More...
#include <TrackStateOnSurface.h>
Public Types | |
enum | TrackStateOnSurfaceType { Measurement = 0, InertMaterial = 1, BremPoint = 2, Scatterer = 3, Perigee = 4, Outlier = 5, Hole = 6, Unknown = 7, CaloDeposit = 8, Parameter = 9, FitQuality = 10, Alignment = 11, NumberOfTrackStateOnSurfaceTypes = 12 } |
enum | PersistencyHint { PartialPersistification = 0, PersistifyMeasurement = 1, PersistifyTrackParameters = 2, PersistifySlimCaloDeposit = 3, NumberOfPersistencyHints = 4 } |
enum | Variety { SingleComponent = 0, MultiComponent = 1, Align = 2 } |
Static Public Member Functions | |
static unsigned int long | joinBitsets (const std::bitset< NumberOfTrackStateOnSurfaceTypes > &types, const std::bitset< NumberOfPersistencyHints > &hints) |
static void | splitToBitsets (const unsigned int long input, std::bitset< NumberOfTrackStateOnSurfaceTypes > &types, std::bitset< NumberOfPersistencyHints > &hints) |
Protected Attributes | |
uint16_t | m_typeFlags {} |
std::atomic< uint8_t > | m_hints {} |
Private Member Functions | |
void | setFlags () |
set sensible default flags More... | |
Private Attributes | |
FitQualityOnSurface | m_fitQualityOnSurface {} |
std::unique_ptr< TrackParameters > | m_trackParameters {} |
std::unique_ptr< MeasurementBase > | m_measurementOnTrack {} |
std::unique_ptr< MaterialEffectsBase > | m_materialEffectsOnTrack {} |
std::unique_ptr< AlignmentEffectsOnTrack > | m_alignmentEffectsOnTrack {} |
Friends | |
class | ::TrackCollectionCnv |
class | ::TrackStateOnSurfaceCnv_p3 |
represents the track state (measurement, material, fit parameters and quality) at a surface.
As the name suggests TrackStateOnSurface is intended to represent the state of a track at a surface, and will be of particular relevance for track fitting, extrapolating and following (for example it provides a way to store scattering angle information).
The principle is that these objects can contain pointers to other objects. Not all are required to be passed, and so not all will exist. As a rule of thumb, if an object is returned by pointer then you cannot be sure it exists and should check.
The code does not (for speed reasons) enforce contraints on what is placed in a TrackStateOnSurface. What follows are simple guidelines for the use of TrackStateOnSurface.
Definition at line 70 of file TrackStateOnSurface.h.
Definition at line 155 of file TrackStateOnSurface.h.
Enumerator | |
---|---|
Measurement | This is a measurement, and will at least contain a Trk::MeasurementBase. |
InertMaterial | This represents inert material, and so will contain MaterialEffectsBase. |
BremPoint | This represents a brem point on the track, and so will contain TrackParameters and MaterialEffectsBase. |
Scatterer | This represents a scattering point on the track, and so will contain TrackParameters and MaterialEffectsBase. |
Perigee | This represents a perigee, and so will contain a Perigee object only. |
Outlier | This TSoS contains an outlier, that is, it contains a MeasurementBase/RIO_OnTrack which was not used in the track fit. |
Hole | A hole on the track - this is defined in the following way. A hole is a missing measurement BETWEEN the first and last actual measurements. i.e. if your track starts in the SCT, you should not consider a missing b-layer hit as a hole. |
Unknown | For some reason this does not fall into any of the other categories PLEASE DO NOT USE THIS - DEPRECATED! |
CaloDeposit | This TSOS contains a CaloEnergy object. |
Parameter | This TSOS contains a Trk::ParameterBase. |
FitQuality | This TSOS contains a Trk::FitQualityOnSurface. |
Alignment | This TSOS contains a Trk::AlignmentEffectsOnTrack. |
NumberOfTrackStateOnSurfaceTypes |
Definition at line 97 of file TrackStateOnSurface.h.
Enumerator | |
---|---|
SingleComponent | |
MultiComponent | |
Align |
Definition at line 211 of file TrackStateOnSurface.h.
|
explicit |
Partial constructors.
The objects passed in belong to the this object, or to the Track to which this FQOS will be assigned.
These ctors will set appropriate flags for all non-null objects passed
Definition at line 15 of file TrackStateOnSurface.cxx.
|
explicit |
Definition at line 31 of file TrackStateOnSurface.cxx.
|
explicit |
Full constructors.
[in] | FitQualityOnSurface | (we provide one without it) |
[in] | unique | pointer to a MeasurementBase, or 0 if no object is being passed. |
[in] | unigue | trackParameter pointer to a TrackParameters, or 0 if no object is being passed. being passed. |
[in] | materialEffectsOnTrack | pointer to a MaterialEffectsBase, or 0 if no object is being passed. |
[in] | typePattern | The pattern of 'types' which correspond to this TSoS. You create the bitset as follows: |
Definition at line 47 of file TrackStateOnSurface.cxx.
|
explicit |
Definition at line 64 of file TrackStateOnSurface.cxx.
Trk::TrackStateOnSurface::TrackStateOnSurface | ( | const TrackStateOnSurface & | trackStateOnSurface | ) |
|
noexcept |
|
virtualdefault |
destructor
AlignmentEffectsOnTrack* Trk::TrackStateOnSurface::alignmentEffectsOnTrack | ( | ) |
return the the alignment effects non-const overload
const AlignmentEffectsOnTrack* Trk::TrackStateOnSurface::alignmentEffectsOnTrack | ( | ) | const |
return the the alignment effects const overload
|
virtual |
Pseudo-constructor: needed to avoid excessive RTTI.
Reimplemented in Trk::MultiComponentStateOnSurface.
std::string Trk::TrackStateOnSurface::dumpType | ( | ) | const |
returns a string with the expanded type of the object (i.e.
if it has several type bits set, they all will be returned)
Definition at line 147 of file TrackStateOnSurface.cxx.
FitQualityOnSurface& Trk::TrackStateOnSurface::fitQualityOnSurface | ( | ) |
return FitQuality On Surface non-const overload
const FitQualityOnSurface& Trk::TrackStateOnSurface::fitQualityOnSurface | ( | ) | const |
return FitQuality On Surface const overload
const std::bitset<NumberOfPersistencyHints> Trk::TrackStateOnSurface::hints | ( | ) | const |
Use this method to get the persistification hints.
bool Trk::TrackStateOnSurface::isSane | ( | ) | const |
Definition at line 203 of file TrackStateOnSurface.cxx.
|
inlinestatic |
Definition at line 183 of file TrackStateOnSurface.h.
MaterialEffectsBase* Trk::TrackStateOnSurface::materialEffectsOnTrack | ( | ) |
return material effects non-const overload
const MaterialEffectsBase* Trk::TrackStateOnSurface::materialEffectsOnTrack | ( | ) | const |
return material effects const overload
MeasurementBase* Trk::TrackStateOnSurface::measurementOnTrack | ( | ) |
returns MeasurementBase non-const overload
const MeasurementBase* Trk::TrackStateOnSurface::measurementOnTrack | ( | ) | const |
returns MeasurementBase const overload
TrackStateOnSurface & Trk::TrackStateOnSurface::operator= | ( | const Trk::TrackStateOnSurface & | rhs | ) |
Definition at line 110 of file TrackStateOnSurface.cxx.
|
noexcept |
Definition at line 133 of file TrackStateOnSurface.cxx.
|
private |
set sensible default flags
void Trk::TrackStateOnSurface::setHints | ( | const uint8_t | hints | ) | const |
Use this method to set persistification hints.
This can be called only once per TSOS It will set a cached Value which we can not reset But this allows it to be const..
Definition at line 235 of file TrackStateOnSurface.cxx.
|
inlinestatic |
Definition at line 196 of file TrackStateOnSurface.h.
return associated surface
Used to perform sanity checks on this object (i.e. all consistuents are on the same surface). Returns 'true' if it seems okay.
Definition at line 188 of file TrackStateOnSurface.cxx.
TrackParameters* Trk::TrackStateOnSurface::trackParameters | ( | ) |
return ptr to trackparameters non-const overload
const TrackParameters* Trk::TrackStateOnSurface::trackParameters | ( | ) | const |
return ptr to trackparameters const overload
bool Trk::TrackStateOnSurface::type | ( | const TrackStateOnSurfaceType | type | ) | const |
Use this method to find out if the TSoS is of a certain type: i.e.
if ( tsos->type(TrackStateOnSurface::Measurement) { //etc }
const std::bitset<NumberOfTrackStateOnSurfaceTypes> Trk::TrackStateOnSurface::types | ( | ) | const |
returns a bitset with the types of this bitset.
As an example of how this is used, see the type( const TrackStateOnSurfaceType& type ) method but a better example would be if you wanted to check several type flags at once.
|
virtual |
Use this method to find if this is a Single, Multi or Align TrackStateOnsurface.
Reimplemented in Trk::AlignTSOS, and Trk::MultiComponentStateOnSurface.
|
friend |
Definition at line 72 of file TrackStateOnSurface.h.
|
friend |
Definition at line 73 of file TrackStateOnSurface.h.
|
private |
Definition at line 371 of file TrackStateOnSurface.h.
|
private |
Definition at line 367 of file TrackStateOnSurface.h.
|
mutableprotected |
Definition at line 374 of file TrackStateOnSurface.h.
|
private |
Definition at line 370 of file TrackStateOnSurface.h.
|
private |
Definition at line 369 of file TrackStateOnSurface.h.
|
private |
Definition at line 368 of file TrackStateOnSurface.h.
|
protected |
Definition at line 373 of file TrackStateOnSurface.h.