ATLAS Offline Software
AtaSurfaceCnv_p1.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 AtaSurfaceCnv_p1_H
6 #define AtaSurfaceCnv_p1_H
7 
8 //-----------------------------------------------------------------------------
9 //
10 // file: AtaSurfaceCnv_p1.h
11 //
12 //-----------------------------------------------------------------------------
13 
15 
17 #include "TrackParametersCnv_p1.h"
22 
23 #include "GaudiKernel/ToolHandle.h"
24 #include "TrkEventCnvTools/IEventCnvSuperTool.h" // for some reason cant be forward declared (template business)
25 
26 class MsgStream;
27 
28 template< class SURFACE_CNV, class ATA_SURFACE >
29 class AtaSurfaceCnv_p1
30  : public T_AthenaPoolTPPolyCnvBase< Trk::TrackParameters, ATA_SURFACE, Trk::AtaSurface_p1>
31 {
32 public:
33  AtaSurfaceCnv_p1(): m_paramCnv(0), m_surfaceCnv(0), m_eventCnvTool("Trk::EventCnvSuperTool/EventCnvSuperTool") {}
34 
35  void persToTrans( const Trk::AtaSurface_p1 *, ATA_SURFACE *, MsgStream & );
36  void transToPers( const ATA_SURFACE *, Trk::AtaSurface_p1 *, MsgStream & );
37 
38 private:
40  SURFACE_CNV *m_surfaceCnv; // always same type (hence no ITPConverterFor)
41  ToolHandle<Trk::IEventCnvSuperTool> m_eventCnvTool;
42 };
43 
44 
45 // Here we create instances of the various convertors, where the code is in AtaSurfaceCnv.icc
46 // (with a specialisation for AtaStraightLine, which actually behaves like PerigeeCnv)
47 class AtaDiscCnv_p1 : public AtaSurfaceCnv_p1< DiscSurfaceCnv_p1, Trk::AtaDisc > {};
48 class AtaCylinderCnv_p1 : public AtaSurfaceCnv_p1< CylinderSurfaceCnv_p1, Trk::AtaCylinder > {};
49 class AtaPlaneCnv_p1 : public AtaSurfaceCnv_p1< PlaneSurfaceCnv_p1, Trk::AtaPlane > {};
50 class AtaStraightLineCnv_p1 : public AtaSurfaceCnv_p1< StraightLineSurfaceCnv_p1, Trk::AtaStraightLine > {};
51 class CurvilinearParametersCnv_p1 : public AtaSurfaceCnv_p1< PlaneSurfaceCnv_p1, Trk::CurvilinearParameters > {};
52 
53 #endif
54 
55 
56 
57 
58 
59 
60 
61 
62 
63 
64 
65 
AtaSurfaceCnv_p1::transToPers
void transToPers(const ATA_SURFACE *, Trk::AtaSurface_p1 *, MsgStream &)
Trk::AtaSurface_p1
Definition: AtaSurface_p1.h:17
TrackParameters.h
AtaStraightLineCnv_p1
Definition: AtaSurfaceCnv_p1.h:50
AtaSurfaceCnv_p1::persToTrans
void persToTrans(const Trk::AtaSurface_p1 *, ATA_SURFACE *, MsgStream &)
IEventCnvSuperTool.h
TPPolyCnvBase
Definition: TPConverter.h:674
AtaSurfaceCnv_p1::m_surfaceCnv
SURFACE_CNV * m_surfaceCnv
Definition: AtaSurfaceCnv_p1.h:40
T_AthenaPoolTPConverter.h
AtaSurfaceCnv_p1
Definition: ParametersBase.h:26
AtaSurfaceCnv_p1::m_paramCnv
TrackParametersCnv_p1 * m_paramCnv
Definition: AtaSurfaceCnv_p1.h:39
AtaSurfaceCnv_p1::AtaSurfaceCnv_p1
AtaSurfaceCnv_p1()
Definition: AtaSurfaceCnv_p1.h:33
AtaPlaneCnv_p1
Definition: AtaSurfaceCnv_p1.h:49
AtaDiscCnv_p1
Definition: AtaSurfaceCnv_p1.h:47
AtaSurface_p1.h
SurfaceCnv_p1.h
CurvilinearParametersCnv_p1
Definition: AtaSurfaceCnv_p1.h:51
AtaSurfaceCnv_p1::m_eventCnvTool
ToolHandle< Trk::IEventCnvSuperTool > m_eventCnvTool
Definition: AtaSurfaceCnv_p1.h:41
AtaCylinderCnv_p1
Definition: AtaSurfaceCnv_p1.h:48
TrackParametersCnv_p1.h
BoundSurfaceCnv_p1.h
TrackParametersCnv_p1
Definition: TrackParametersCnv_p1.h:24