ATLAS Offline Software
Loading...
Searching...
No Matches
DetElementSurfaceCnv_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 TRK_DETELEMENTSURFACECNV_P1_H
6#define TRK_DETELEMENTSURFACECNV_P1_H
7
8//-----------------------------------------------------------------------------
9//
10// file: DetElementSurfaceCnv_p1.h
11//
12//-----------------------------------------------------------------------------
13
16#include "TrkSurfaces/Surface.h"
17#include "GaudiKernel/ToolHandle.h"
18#include "TrkEventCnvTools/IEventCnvSuperTool.h" // for some reason cant be forward declared (template business)
20
21class MsgStream;
22
23// #include "TrkSurfaces/StraightLineSurface.h"
24// #include "TrkSurfaces/DiscSurface.h"
25// #include "TrkSurfaces/PlaneSurface.h"
26// #include "TrkSurfaces/CylinderSurface.h"
27
28// template< class SURFACE >
29// class DetElementSurfaceCnv_p1
30// : public T_AthenaPoolTPAbstractPolyCnvBase< Trk::Surface, Trk::DetElementSurface<SURFACE>, Trk::DetElementSurface_p1 >
31// {
32// public:
33// DetElementSurfaceCnv_p1() {}
34// //Trk::DetElementSurface<SURFACE> * createTransient( const Trk::DetElementSurface_p1 *persObj, MsgStream & log );
35// void persToTrans( const Trk::DetElementSurface_p1 *persObj, Trk::DetElementSurface<SURFACE> *transObj, MsgStream &log ) {}
36// void transToPers( const Trk::DetElementSurface<SURFACE> *transObj, Trk::DetElementSurface_p1 *persObj, MsgStream &log );
37// };
38//
39// class DetElementStraightLineSurfaceCnv_p1 : public DetElementSurfaceCnv_p1<Trk::StraightLineSurface> {};
40// class DetElementDiscSurfaceCnv_p1 : public DetElementSurfaceCnv_p1<Trk::DiscSurface>();
41// class DetElementPlaneSurfaceCnv_p1 : public DetElementSurfaceCnv_p1<Trk::PlaneSurface>();
42// class DetElementCylinderSurfaceCnv_p1 : public DetElementSurfaceCnv_p1<Trk::CylinderSurface>();
43
45 : public T_AthenaPoolTPPolyCnvBase< Trk::Surface, Trk::DetElementSurface, Trk::DetElementSurface_p1 >
46{
47public:
48 DetElementSurfaceCnv_p1() : m_eventCnvTool("Trk::EventCnvSuperTool/EventCnvSuperTool"){}
49 virtual Trk::DetElementSurface * createTransient( const Trk::DetElementSurface_p1 *persObj, MsgStream & log ); // DO NOT USE
50 const Trk::Surface* createSurface( MsgStream & log ); // DO USE!!!
51 virtual void persToTrans( const Trk::DetElementSurface_p1 *persObj, Trk::DetElementSurface *transObj, MsgStream &log );
52 virtual void transToPers( const Trk::DetElementSurface *transObj, Trk::DetElementSurface_p1 *persObj, MsgStream &log );
53 //virtual Trk::Surface* virt_createTransFromPStore( unsigned index, MsgStream &log ){}
54private:
55 ToolHandle<Trk::IEventCnvSuperTool> m_eventCnvTool;
57};
58
59
60#endif
TPPolyCnvBase< TRANS_BASE, TRANS, PERS > T_AthenaPoolTPPolyCnvBase
const Trk::Surface * createSurface(MsgStream &log)
Identifier m_id
Used in a horrible hack, in createSurface()
ToolHandle< Trk::IEventCnvSuperTool > m_eventCnvTool
virtual void transToPers(const Trk::DetElementSurface *transObj, Trk::DetElementSurface_p1 *persObj, MsgStream &log)
virtual void persToTrans(const Trk::DetElementSurface_p1 *persObj, Trk::DetElementSurface *transObj, MsgStream &log)
virtual Trk::DetElementSurface * createTransient(const Trk::DetElementSurface_p1 *persObj, MsgStream &log)
Abstract Base Class for tracking surfaces.