ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Tracking
TrkEventCnv
TrkEventTPCnv
src
TrkMaterialOnTrack
MaterialEffectsBaseCnv_p1.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#include "
TrkMaterialOnTrack/MaterialEffectsBase.h
"
6
#include "
TrkEventTPCnv/TrkMaterialOnTrack/MaterialEffectsBaseCnv_p1.h
"
7
#include "
TrkEventTPCnv/TrkSurfaces/SurfaceCnv_p1.h
"
8
#include "
TrkSurfaces/Surface.h
"
9
#include "
TrkEventCnvTools/DetElementSurface.h
"
10
#include "
TrkEventTPCnv/TrkDetElementSurface/DetElementSurfaceCnv_p1.h
"
11
12
13
14
void
MaterialEffectsBaseCnv_p1::persToTrans
(
15
const
Trk::MaterialEffectsBase_p1
*persObj,
16
Trk::MaterialEffectsBase
*transObj,
17
MsgStream& log)
18
{
19
transObj->
m_tInX0
= persObj->
m_tInX0
;
20
21
ITPConverterFor<Trk::Surface>
* surfaceCnv=
nullptr
;
22
const
Trk::Surface
* temp = this->
createTransFromPStore
( &surfaceCnv, persObj->
m_associatedSurface
, log );
23
24
DetElementSurfaceCnv_p1
* detElCnv =
dynamic_cast<
DetElementSurfaceCnv_p1
*
>
(surfaceCnv);
25
if
(detElCnv) {
26
// have a DetElementSurface
27
temp = detElCnv->
createSurface
(log);
28
}
29
transObj->
m_associatedSurface
= temp;
30
31
//
32
// ITPConverterFor<Trk::Surface> *associatedSurfaceCnv(0);
33
// transObj->m_associatedSurface =
34
// createTransFromPStore( &associatedSurfaceCnv, persObj->m_associatedSurface, log);
35
// FIXME check that TrackCollectionCnv can make diff between
36
// private and detStore surfaces
37
transObj->
m_typeFlags
= persObj->
m_typeFlags
;
38
}
39
40
void
MaterialEffectsBaseCnv_p1 :: transToPers(
41
const
Trk::MaterialEffectsBase
*transObj,
42
Trk :: MaterialEffectsBase_p1 *persObj,
43
MsgStream& log)
44
{
45
persObj->m_tInX0 = (float)transObj->
thicknessInX0
();
46
// persObj->m_associatedSurface = toPersistent( (ITPConverterFor<Trk::Surface>**)0, transObj->m_associatedSurface, log );
47
persObj->m_typeFlags = (short)transObj->
m_typeFlags
;
48
49
if
(transObj->
associatedSurface
().
isFree
() )
// if this is a free surface, write it out 'as is'
50
persObj->m_associatedSurface =
toPersistent
((
ITPConverterFor<Trk::Surface>
**)
nullptr
, &transObj->
associatedSurface
(), log);
51
else
{
// else, make it into a DetElementSurface, to allow the correct convertor to be called
52
Trk::DetElementSurface
surf( transObj->
associatedSurface
() );
53
persObj->m_associatedSurface =
toPersistent
((
ITPConverterFor<Trk::Surface>
**)
nullptr
, &surf, log );
54
}
55
}
DetElementSurfaceCnv_p1.h
DetElementSurface.h
MaterialEffectsBaseCnv_p1.h
MaterialEffectsBase.h
SurfaceCnv_p1.h
Surface.h
DetElementSurfaceCnv_p1
Definition
DetElementSurfaceCnv_p1.h:46
DetElementSurfaceCnv_p1::createSurface
const Trk::Surface * createSurface(MsgStream &log)
Definition
DetElementSurfaceCnv_p1.cxx:19
ITPConverterFor< TRANS_BASE >::createTransFromPStore
CNV::Trans_t * createTransFromPStore(CNV **cnv, const TPObjRef &ref, MsgStream &log) const
Definition
TPConverter.h:172
ITPConverterFor< TRANS_BASE >::toPersistent
TPObjRef toPersistent(CNV **cnv, const typename CNV::TransBase_t *transObj, MsgStream &log) const
Definition
TPConverter.h:119
ITPConverterFor< TRANS_BASE >::ITPConverterFor
ITPConverterFor()
Definition
TPConverter.h:43
MaterialEffectsBaseCnv_p1::persToTrans
virtual void persToTrans(const Trk ::MaterialEffectsBase_p1 *persObj, Trk ::MaterialEffectsBase *transObj, MsgStream &log)
Definition
MaterialEffectsBaseCnv_p1.cxx:14
Trk::DetElementSurface
Definition
DetElementSurface.h:32
Trk::MaterialEffectsBase_p1
Definition
MaterialEffectsBase_p1.h:20
Trk::MaterialEffectsBase_p1::m_tInX0
float m_tInX0
Definition
MaterialEffectsBase_p1.h:24
Trk::MaterialEffectsBase_p1::m_associatedSurface
TPObjRef m_associatedSurface
Definition
MaterialEffectsBase_p1.h:26
Trk::MaterialEffectsBase_p1::m_typeFlags
short m_typeFlags
Definition
MaterialEffectsBase_p1.h:25
Trk::MaterialEffectsBase
base class to integrate material effects on Trk::Track in a flexible way.
Definition
MaterialEffectsBase.h:35
Trk::MaterialEffectsBase::associatedSurface
const Surface & associatedSurface() const
returns the surface to which these m.eff. are associated.
Trk::MaterialEffectsBase::thicknessInX0
double thicknessInX0() const
returns the actually traversed material .
Trk::MaterialEffectsBase::m_typeFlags
long m_typeFlags
Definition
MaterialEffectsBase.h:140
Trk::MaterialEffectsBase::m_tInX0
double m_tInX0
- the traversed thickness in RadiationLengths
Definition
MaterialEffectsBase.h:139
Trk::SurfacePtrHolderImplDetEl::m_associatedSurface
const S * m_associatedSurface
Definition
SurfaceHolderImpl.h:221
Trk::Surface
Abstract Base Class for tracking surfaces.
Definition
Surface.h:79
Trk::Surface::isFree
bool isFree() const
Returns 'true' if this surface is 'free', i.e.
Generated on
for ATLAS Offline Software by
1.17.0