ATLAS Offline Software
Loading...
Searching...
No Matches
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
22
23#include "GaudiKernel/ToolHandle.h"
24#include "TrkEventCnvTools/IEventCnvSuperTool.h" // for some reason cant be forward declared (template business)
25
26class MsgStream;
27
28template< class SURFACE_CNV, class ATA_SURFACE >
30 : public T_AthenaPoolTPPolyCnvBase< Trk::TrackParameters, ATA_SURFACE, Trk::AtaSurface_p1>
31{
32public:
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
38private:
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)
47class AtaDiscCnv_p1 : public AtaSurfaceCnv_p1< DiscSurfaceCnv_p1, Trk::AtaDisc > {};
48class AtaCylinderCnv_p1 : public AtaSurfaceCnv_p1< CylinderSurfaceCnv_p1, Trk::AtaCylinder > {};
49class AtaPlaneCnv_p1 : public AtaSurfaceCnv_p1< PlaneSurfaceCnv_p1, Trk::AtaPlane > {};
50class AtaStraightLineCnv_p1 : public AtaSurfaceCnv_p1< StraightLineSurfaceCnv_p1, Trk::AtaStraightLine > {};
51class CurvilinearParametersCnv_p1 : public AtaSurfaceCnv_p1< PlaneSurfaceCnv_p1, Trk::CurvilinearParameters > {};
52
53#endif
54
55
56
57
58
59
60
61
62
63
64
65
TPPolyCnvBase< TRANS_BASE, TRANS, PERS > T_AthenaPoolTPPolyCnvBase
ToolHandle< Trk::IEventCnvSuperTool > m_eventCnvTool
TrackParametersCnv_p1 * m_paramCnv
SURFACE_CNV * m_surfaceCnv
void persToTrans(const Trk::AtaSurface_p1 *, ATA_SURFACE *, MsgStream &)
void transToPers(const ATA_SURFACE *, Trk::AtaSurface_p1 *, MsgStream &)