ATLAS Offline Software
Loading...
Searching...
No Matches
BoundSurfaceCnv_p2.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef BOUND_SURFACE_CNV_P2_H
6#define BOUND_SURFACE_CNV_P2_H
7
8//-----------------------------------------------------------------------------
9//
10// file: BoundSurfaceCnv_p2.h
11//
12//-----------------------------------------------------------------------------
13
15
23
25
26#include "SurfaceCnv_p2.h"
28#include "DiscBoundsCnv_p1.h"
29#include "ConeBoundsCnv_p1.h"
30
31class MsgStream;
32
33template< class SURFACE, class BOUNDS_CNV = ITPConverterFor<Trk::SurfaceBounds> >
35 : public T_AthenaPoolTPPolyCnvBase< Trk::Surface, SURFACE, Trk::BoundSurface_p2>
36{
37public:
39
40 void persToTrans( const Trk::BoundSurface_p2 *, SURFACE *, MsgStream & );
41 void transToPers( const SURFACE *, Trk::BoundSurface_p2 *, MsgStream & );
42 SURFACE* createTransient( const Trk::BoundSurface_p2 * persObj, MsgStream& log);
43
44private:
45 SurfaceCnv_p2 < SURFACE > m_surfaceCnv; // Base class convertor
46 BOUNDS_CNV *m_boundsCnv;
47};
48
49
50
51
52template< class SURFACE >
53class BoundSurfaceCnv_p2< SURFACE, ITPConverterFor<Trk::SurfaceBounds> >
54 : public T_AthenaPoolTPPolyCnvBase< Trk::Surface, SURFACE, Trk::BoundSurface_p2>
55{
56public:
57 void persToTrans( const Trk::BoundSurface_p2 *, SURFACE *, MsgStream & );
58 void transToPers( const SURFACE *, Trk::BoundSurface_p2 *, MsgStream & );
59 SURFACE* createTransient( const Trk::BoundSurface_p2 * persObj, MsgStream& log);
60
61private:
62 SurfaceCnv_p2 <SURFACE> m_surfaceCnv;
63};
64
66 : public BoundSurfaceCnv_p2< Trk::DiscSurface, DiscBoundsCnv_p1 > {};
67
69 : public BoundSurfaceCnv_p2< Trk::CylinderSurface, CylinderBoundsCnv_p1 > {};
70
72 : public BoundSurfaceCnv_p2< Trk::StraightLineSurface, CylinderBoundsCnv_p1 > {};
73
75 : public BoundSurfaceCnv_p2< Trk::PlaneSurface > {};
76
78 : public BoundSurfaceCnv_p2< Trk::ConeSurface, ConeBoundsCnv_p1 > {};
79
80// Special case for SaggedLineSurface: the detector elements we get back
81// are now StraightLineSurface's.
83 : public BoundSurfaceCnv_p2< Trk::StraightLineSurface, CylinderBoundsCnv_p1 > {
84public:
85 virtual const std::type_info& transientTInfo() const override
86 { return typeid (Trk::SaggedLineSurface); }
87};
88
89
90// PerigeeSurface is boundless.
91
92
93#endif
94
95
96
97
TPPolyCnvBase< TRANS_BASE, TRANS, PERS > T_AthenaPoolTPPolyCnvBase
virtual const std::type_info & transientTInfo() const override
return C++ type id of the transient class this converter is for
void transToPers(const SURFACE *, Trk::BoundSurface_p2 *, MsgStream &)
SURFACE * createTransient(const Trk::BoundSurface_p2 *persObj, MsgStream &log)
void persToTrans(const Trk::BoundSurface_p2 *, SURFACE *, MsgStream &)
void transToPers(const SURFACE *, Trk::BoundSurface_p2 *, MsgStream &)
void persToTrans(const Trk::BoundSurface_p2 *, SURFACE *, MsgStream &)
SurfaceCnv_p2< SURFACE > m_surfaceCnv
SURFACE * createTransient(const Trk::BoundSurface_p2 *persObj, MsgStream &log)
The distorted surface itself is the nominal surface.
Ensure that the ATLAS eigen extensions are properly loaded.