ATLAS Offline Software
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 
16 
17 
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( &paramsCnv, 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 =
34  }
35 
36  if (!persObj->m_materialEffectsOnTrack.isNull()) {
37  materialEffects =
39  }
40 
41  std::bitset<Trk::TrackStateOnSurface::NumberOfTrackStateOnSurfaceTypes> types;
42  std::bitset<Trk::TrackStateOnSurface::NumberOfPersistencyHints> 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 
61 {
62  throw std::runtime_error("TrackStateOnSurfaceCnv_p1::transToPers is deprecated!");
63 }
64 
ITPConverterFor< Trk::MeasurementBase >
TrackParameters.h
MeasurementBase.h
xAOD::uint8_t
uint8_t
Definition: Muon_v1.cxx:575
Trk::TrackStateOnSurface_p1::m_typeFlags
long m_typeFlags
Definition: TrackStateOnSurface_p1.h:33
TrackStateOnSurfaceCnv_p1::m_scatCnv
ScatteringAngleOnTrackCnv_p1 * m_scatCnv
Definition: TrackStateOnSurfaceCnv_p1.h:41
Trk::TrackStateOnSurface_p1::m_materialEffectsOnTrack
TPObjRef m_materialEffectsOnTrack
Definition: TrackStateOnSurface_p1.h:30
Trk::MaterialEffectsBase
base class to integrate material effects on Trk::Track in a flexible way.
Definition: MaterialEffectsBase.h:35
Trk::FitQualityOnSurface
Definition: FitQualityOnSurface.h:19
TPObjRef::isNull
bool isNull() const
Tests if the reference is NULL.
Definition: TPObjRef.h:68
Trk::ParametersBase
Definition: ParametersBase.h:55
Trk::TrackStateOnSurface_p1::m_trackParameters
TPObjRef m_trackParameters
Definition: TrackStateOnSurface_p1.h:24
Trk::MeasurementBase
Definition: MeasurementBase.h:58
Trk::TrackStateOnSurface
represents the track state (measurement, material, fit parameters and quality) at a surface.
Definition: TrackStateOnSurface.h:71
RIO_OnTrack.h
TrackStateOnSurfaceCnv_p1::transToPers
virtual void transToPers(const Trk::TrackStateOnSurface *transObj, Trk::TrackStateOnSurface_p1 *persObj, MsgStream &log)
Definition: TrackStateOnSurfaceCnv_p1.cxx:60
Trk::TrackStateOnSurface::splitToBitsets
static void splitToBitsets(const unsigned int long input, std::bitset< NumberOfTrackStateOnSurfaceTypes > &types, std::bitset< NumberOfPersistencyHints > &hints)
Definition: TrackStateOnSurface.h:196
Trk::TrackStateOnSurface::setHints
void setHints(const uint8_t hints) const
Use this method to set persistification hints.
Definition: TrackStateOnSurface.cxx:235
TrackStateOnSurfaceCnv_p1::m_fitQCnv
FitQualityCnv_p1 * m_fitQCnv
Definition: TrackStateOnSurfaceCnv_p1.h:42
Trk::TrackStateOnSurface_p1::m_measurementOnTrack
TPObjRef m_measurementOnTrack
Definition: TrackStateOnSurface_p1.h:32
python.CaloCondTools.log
log
Definition: CaloCondTools.py:20
TrackStateOnSurfaceCnv_p1::m_bremCnv
MaterialEffectsOnTrackCnv_p1 * m_bremCnv
Definition: TrackStateOnSurfaceCnv_p1.h:43
Trk::TrackStateOnSurface_p1
Definition: TrackStateOnSurface_p1.h:19
Trk::TrackStateOnSurface_p1::m_scatteringAngle
TPObjRef m_scatteringAngle
Definition: TrackStateOnSurface_p1.h:28
Trk::TrackStateOnSurface_p1::m_fitQualityOnSurface
TPObjRef m_fitQualityOnSurface
Definition: TrackStateOnSurface_p1.h:26
TrackStateOnSurface.h
TrackStateOnSurfaceCnv_p1::persToTrans
virtual void persToTrans(const Trk::TrackStateOnSurface_p1 *persObj, Trk::TrackStateOnSurface *transObj, MsgStream &log)
Definition: TrackStateOnSurfaceCnv_p1.cxx:19
TrackStateOnSurfaceCnv_p1.h
ITPConverterFor::createTransFromPStore
CNV::Trans_t * createTransFromPStore(CNV **cnv, const TPObjRef &ref, MsgStream &log) const
Create transient representation of a persistent object, stored in the the top-level persistent object...
Definition: TPConverter.h:172