ATLAS Offline Software
SurfaceCnv_p2.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef SURFACE_CNV_P2_H
6 #define SURFACE_CNV_P2_H
7 
8 //-----------------------------------------------------------------------------
9 //
10 // file: SurfaceCnv_p2.h
11 //
12 //-----------------------------------------------------------------------------
13 
15 #include "GaudiKernel/ToolHandle.h"
17 
18 #include "TrkSurfaces/Surface.h"
27 
28 class MsgStream;
29 
30 template< class SURFACE >
32  : public T_AthenaPoolTPPolyCnvBase<Trk::Surface, SURFACE, Trk::Surface_p2>
33 {
34 public:
35  SurfaceCnv_p2() : m_eventCnvTool("Trk::EventCnvSuperTool/EventCnvSuperTool"){}
36 
37  void persToTrans( const Trk::Surface_p2*, SURFACE*, MsgStream& );
38  void transToPers( const SURFACE*, Trk::Surface_p2*, MsgStream& );
39 
40  SURFACE* createTransient( const Trk::Surface_p2 * persObj, MsgStream& log);
41 
42  void setCnvToolName (const std::string& name)
43  { m_eventCnvTool.setTypeAndName(name); }
44 
45 private:
46  ToolHandle<Trk::IEventCnvSuperTool> m_eventCnvTool;
47 };
48 
50  : public SurfaceCnv_p2< Trk::ConeSurface> {};
52  : public SurfaceCnv_p2< Trk::CylinderSurface> {};
54  : public SurfaceCnv_p2< Trk::DiscSurface> {};
56  : public SurfaceCnv_p2< Trk::PerigeeSurface> {};
58  : public SurfaceCnv_p2< Trk::PlaneSurface> {};
60  : public SurfaceCnv_p2< Trk::StraightLineSurface> {};
62  : public SurfaceCnv_p2< Trk::SaggedLineSurface> {};
63 
64 
65 #endif // SURFACE_CNV_p2_H
SurfaceCnv_p2::m_eventCnvTool
ToolHandle< Trk::IEventCnvSuperTool > m_eventCnvTool
Definition: SurfaceCnv_p2.h:46
SurfaceCnv_p2::createTransient
SURFACE * createTransient(const Trk::Surface_p2 *persObj, MsgStream &log)
Definition: SurfaceCnv_p2.cxx:23
StraightLineSurface.h
PerigeeSurface.h
Surface.h
CylinderSurfaceCnv_p2
Definition: SurfaceCnv_p2.h:52
Trk::Surface_p2
Definition: Surface_p2.h:20
SurfaceCnv_p2::transToPers
void transToPers(const SURFACE *, Trk::Surface_p2 *, MsgStream &)
Definition: SurfaceCnv_p2.cxx:52
PerigeeSurfaceCnv_p2
Definition: SurfaceCnv_p2.h:56
StraightLineSurfaceCnv_p2
Definition: SurfaceCnv_p2.h:60
SurfaceCnv_p2::SurfaceCnv_p2
SurfaceCnv_p2()
Definition: SurfaceCnv_p2.h:35
IEventCnvSuperTool.h
TPPolyCnvBase
Definition: TPConverter.h:674
ConeSurface.h
PlaneSurfaceCnv_p2
Definition: SurfaceCnv_p2.h:58
T_AthenaPoolTPConverter.h
CylinderSurface.h
Surface_p2.h
SurfaceCnv_p2::setCnvToolName
void setCnvToolName(const std::string &name)
Definition: SurfaceCnv_p2.h:42
ConeSurfaceCnv_p2
Definition: SurfaceCnv_p2.h:50
DiscSurfaceCnv_p2
Definition: SurfaceCnv_p2.h:54
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
SurfaceCnv_p2
Definition: SurfaceCnv_p2.h:33
SaggedLineSurface.h
PlaneSurface.h
python.CaloCondTools.log
log
Definition: CaloCondTools.py:20
DiscSurface.h
SurfaceCnv_p2::persToTrans
void persToTrans(const Trk::Surface_p2 *, SURFACE *, MsgStream &)
Definition: SurfaceCnv_p2.cxx:45
SaggedLineSurfaceCnv_p2
Definition: SurfaceCnv_p2.h:62