ATLAS Offline Software
Loading...
Searching...
No Matches
TrackParametersCnv_p2.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3*/
4
5//-----------------------------------------------------------------------------
6//
7// file: TrackParametersCnv_p2.h
8// author: edward.moyse@cern.ch
9//
10//-----------------------------------------------------------------------------
11
12#ifndef TRACK_PARAMETERS_CNV_P2_H
13#define TRACK_PARAMETERS_CNV_P2_H
14
16
19#include "GaudiKernel/ToolHandle.h"
22
23class MsgStream;
24
28 : public T_AthenaPoolTPAbstractPolyCnvBase<Trk::TrackParameters, Trk::TrackParameters, Trk::TrackParameters_p2>
29 // : public T_AthenaPoolTPCnvBase<Trk::ParametersBase,Trk::TrackParameters_p2>
30{
31public:
32 TrackParametersCnv_p2(bool nosurf = false)
33 : m_emConverter(0),
34 m_eventCnvTool("Trk::EventCnvSuperTool/EventCnvSuperTool"),
35 m_nosurf (nosurf)
36 {}
37
38 void persToTrans( const Trk :: TrackParameters_p2 *persObj,
39 Trk :: TrackParameters *transObj,
40 MsgStream &log );
41
42 Trk::TrackParameters* createTransient( const Trk::TrackParameters_p2 * persObj, MsgStream& log);
43
44 void transToPers( const Trk::TrackParameters *transObj,
46 MsgStream &log );
47
48 virtual Trk::TrackParameters* virt_createTransFromPStore( unsigned index, MsgStream& log) {
49 //FIXME - I'm really not sure if this is correct to have this here. Perhaps I just need to change the T_AthenaXXX baseclass that this cnv inherits from?
50 // The method I wanted to call is in T_AthenaPoolTPPolyCnvBase
51 // But T_AthenaPoolTPPolyCnvBase doesn't work because T_AthenaPoolTPConverter.icc:63 tries to instantiate a Trk::ParametersBase, which isn't possible.
52 assert (index < this->m_pStorage->size());
53 return createTransient( &(*this->m_pStorage)[index], log );
54 }
55
56
57private:
58 AmgSymMatrix(5)* transErrorMatrix(const Trk :: TrackParameters_p2 *persObj, MsgStream& log);
59 const Trk::Surface* transSurface( const Trk :: TrackParameters_p2 *persObj, Trk::SurfaceType type, MsgStream& log);
60 static void fillPersSurface( const Trk :: TrackParameters *transObj, Trk :: TrackParameters_p2 *persObj, MsgStream& log);
61 static void convertTransCurvilinearToPers(const Trk :: TrackParameters *transObj, Trk :: TrackParameters_p2 *persObj) ;
62 static bool isPersistifiableType(const Trk :: TrackParameters *transObj) ;
63
65 ToolHandle<Trk::IEventCnvSuperTool> m_eventCnvTool;
67};
68
69#endif // TRACK_PARAMETERS_CNV_P2_H
#define AmgSymMatrix(dim)
TPAbstractPolyCnvBase< TRANS_BASE, TRANS, PERS > T_AthenaPoolTPAbstractPolyCnvBase
std::vector< PERS > * m_pStorage
the address of the storage vector for persistent representations
void persToTrans(const Trk ::TrackParameters_p2 *persObj, Trk ::TrackParameters *transObj, MsgStream &log)
Trk::TrackParameters * createTransient(const Trk::TrackParameters_p2 *persObj, MsgStream &log)
ErrorMatrixCnv_p1 * m_emConverter
virtual Trk::TrackParameters * virt_createTransFromPStore(unsigned index, MsgStream &log)
This method implements a pure virtual base class method, but should never be called,...
ToolHandle< Trk::IEventCnvSuperTool > m_eventCnvTool
void transToPers(const Trk::TrackParameters *transObj, Trk::TrackParameters_p2 *persObj, MsgStream &log)
static void convertTransCurvilinearToPers(const Trk ::TrackParameters *transObj, Trk ::TrackParameters_p2 *persObj)
static void fillPersSurface(const Trk ::TrackParameters *transObj, Trk ::TrackParameters_p2 *persObj, MsgStream &log)
TrackParametersCnv_p2(bool nosurf=false)
AmgSymMatrix(5) *transErrorMatrix(const Trk const Trk::Surface * transSurface(const Trk ::TrackParameters_p2 *persObj, Trk::SurfaceType type, MsgStream &log)
static bool isPersistifiableType(const Trk ::TrackParameters *transObj)
Abstract Base Class for tracking surfaces.
SurfaceType
This enumerator simplifies the persistency & calculations,.
ParametersBase< TrackParametersDim, Charged > TrackParameters
Definition index.py:1