ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Tracking
TrkEventCnv
TrkEventTPCnv
src
TrkTrack
TrackStateOnSurfaceCnv_p1.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
//-----------------------------------------------------------------------------
6
//
7
// file: TrackStateOnSurfaceCnv_p1.cxx
8
//
9
//-----------------------------------------------------------------------------
10
11
#include "
TrkTrack/TrackStateOnSurface.h
"
12
#include "
TrkEventTPCnv/TrkTrack/TrackStateOnSurfaceCnv_p1.h
"
13
#include "
TrkMeasurementBase/MeasurementBase.h
"
14
#include "
TrkRIO_OnTrack/RIO_OnTrack.h
"
15
#include "
TrkParameters/TrackParameters.h
"
16
17
18
void
TrackStateOnSurfaceCnv_p1::
19
persToTrans
(
const
Trk::TrackStateOnSurface_p1
*persObj,
Trk::TrackStateOnSurface
*transObj, MsgStream &log )
20
{
21
ITPConverterFor<Trk::MeasurementBase>
*measureCnv =
nullptr
;
22
Trk::MeasurementBase
* meas =
createTransFromPStore
( &measureCnv, persObj->
m_measurementOnTrack
, log );
23
24
ITPConverterFor<Trk::TrackParameters>
*paramsCnv =
nullptr
;
25
Trk::TrackParameters
* trackParameters =
dynamic_cast<
Trk::TrackParameters
*
>
(
createTransFromPStore
( ¶msCnv, persObj->
m_trackParameters
, log ));
26
27
std::unique_ptr<const Trk::FitQuality> fitQ(
createTransFromPStore
( &
m_fitQCnv
, persObj->
m_fitQualityOnSurface
, log));
28
auto
fitQos = fitQ ?
Trk::FitQualityOnSurface
(*fitQ) :
Trk::FitQualityOnSurface
{};
29
30
Trk::MaterialEffectsBase
* materialEffects =
nullptr
;
31
if
(! persObj->
m_scatteringAngle
.
isNull
() ) {
32
materialEffects =
33
createTransFromPStore
( &
m_scatCnv
, persObj->
m_scatteringAngle
, log );
34
}
35
36
if
(!persObj->
m_materialEffectsOnTrack
.
isNull
()) {
37
materialEffects =
38
createTransFromPStore
( &
m_bremCnv
, persObj->
m_materialEffectsOnTrack
,log);
39
}
40
41
std::bitset<Trk::TrackStateOnSurface::NumberOfTrackStateOnSurfaceTypes>
types
;
42
std::bitset<Trk::TrackStateOnSurface::NumberOfPersistencyHints> hints;
43
Trk::TrackStateOnSurface::splitToBitsets
(persObj->
m_typeFlags
,
types
, hints);
44
*transObj =
Trk::TrackStateOnSurface
(fitQos,
45
std::unique_ptr<Trk::MeasurementBase>(meas),
46
std::unique_ptr<Trk::TrackParameters>(trackParameters),
47
std::unique_ptr<Trk::MaterialEffectsBase>(materialEffects),
48
types
);
49
//Hints are atomic. Set once here if TSOS was slimmed
50
//aka not 0. If 0 we want to allow setting them later on
51
uint8_t hintsUInt = hints.to_ulong();
52
if
(hintsUInt!=0){
53
transObj->
setHints
(hintsUInt);
54
}
55
56
}
57
58
59
void
TrackStateOnSurfaceCnv_p1::
60
transToPers
(
const
Trk::TrackStateOnSurface
*,
Trk::TrackStateOnSurface_p1
*, MsgStream & )
61
{
62
throw
std::runtime_error(
"TrackStateOnSurfaceCnv_p1::transToPers is deprecated!"
);
63
}
64
MeasurementBase.h
types
static const std::vector< std::string > types
Definition
MuonTriggerSFFilesTest.cxx:20
RIO_OnTrack.h
TrackStateOnSurfaceCnv_p1.h
TrackStateOnSurface.h
TrackParameters.h
ITPConverterFor
Common base class for all TP converters, specialized for a given transient type.
Definition
TPConverter.h:37
TPPolyCnvBase< TRANS, TRANS, PERS >::createTransFromPStore
CNV::Trans_t * createTransFromPStore(CNV **cnv, const TPObjRef &ref, MsgStream &log) const
Definition
TPConverter.h:172
TPObjRef::isNull
bool isNull() const
Tests if the reference is NULL.
Definition
TPObjRef.h:68
TrackStateOnSurfaceCnv_p1::m_bremCnv
MaterialEffectsOnTrackCnv_p1 * m_bremCnv
Definition
TrackStateOnSurfaceCnv_p1.h:43
TrackStateOnSurfaceCnv_p1::m_scatCnv
ScatteringAngleOnTrackCnv_p1 * m_scatCnv
Definition
TrackStateOnSurfaceCnv_p1.h:41
TrackStateOnSurfaceCnv_p1::transToPers
virtual void transToPers(const Trk::TrackStateOnSurface *transObj, Trk::TrackStateOnSurface_p1 *persObj, MsgStream &log)
Definition
TrackStateOnSurfaceCnv_p1.cxx:60
TrackStateOnSurfaceCnv_p1::persToTrans
virtual void persToTrans(const Trk::TrackStateOnSurface_p1 *persObj, Trk::TrackStateOnSurface *transObj, MsgStream &log)
Definition
TrackStateOnSurfaceCnv_p1.cxx:19
TrackStateOnSurfaceCnv_p1::m_fitQCnv
FitQualityCnv_p1 * m_fitQCnv
Definition
TrackStateOnSurfaceCnv_p1.h:42
Trk::FitQualityOnSurface
Definition
FitQualityOnSurface.h:19
Trk::MaterialEffectsBase
base class to integrate material effects on Trk::Track in a flexible way.
Definition
MaterialEffectsBase.h:35
Trk::MeasurementBase
This class is the pure abstract base class for all fittable tracking measurements.
Definition
MeasurementBase.h:58
Trk::TrackStateOnSurface_p1
Definition
TrackStateOnSurface_p1.h:19
Trk::TrackStateOnSurface_p1::m_fitQualityOnSurface
TPObjRef m_fitQualityOnSurface
Definition
TrackStateOnSurface_p1.h:26
Trk::TrackStateOnSurface_p1::m_measurementOnTrack
TPObjRef m_measurementOnTrack
Definition
TrackStateOnSurface_p1.h:32
Trk::TrackStateOnSurface_p1::m_typeFlags
long m_typeFlags
Definition
TrackStateOnSurface_p1.h:33
Trk::TrackStateOnSurface_p1::m_trackParameters
TPObjRef m_trackParameters
Definition
TrackStateOnSurface_p1.h:24
Trk::TrackStateOnSurface_p1::m_materialEffectsOnTrack
TPObjRef m_materialEffectsOnTrack
Definition
TrackStateOnSurface_p1.h:30
Trk::TrackStateOnSurface_p1::m_scatteringAngle
TPObjRef m_scatteringAngle
Definition
TrackStateOnSurface_p1.h:28
Trk::TrackStateOnSurface
represents the track state (measurement, material, fit parameters and quality) at a surface.
Definition
TrackStateOnSurface.h:71
Trk::TrackStateOnSurface::setHints
void setHints(const uint8_t hints) const
Use this method to set persistification hints.
Definition
TrackStateOnSurface.cxx:235
Trk::TrackStateOnSurface::splitToBitsets
static void splitToBitsets(const unsigned int long input, std::bitset< NumberOfTrackStateOnSurfaceTypes > &types, std::bitset< NumberOfPersistencyHints > &hints)
Definition
TrackStateOnSurface.h:196
Trk::TrackParameters
ParametersBase< TrackParametersDim, Charged > TrackParameters
Definition
Tracking/TrkEvent/TrkParameters/TrkParameters/TrackParameters.h:27
Generated on
for ATLAS Offline Software by
1.17.0