ATLAS Offline Software
NavigableCnv_p2.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef DATAMODELATHENAPOOL_NAVIGABLECNV_P2_H
6 #define DATAMODELATHENAPOOL_NAVIGABLECNV_P2_H
7 
16 #include "AthLinks/ElementLink.h"
18 #include "Navigable_p2.h"
19 namespace SG {
20  class ThinningCache;
21 }
22 
23 
28 template <class NAV, typename RPAR = typename NAV::parameter_type>
30  : public T_AthenaPoolTPCnvConstBase< NAV, typename GeneratePersNavigableType_p2<NAV, RPAR >::type > {
31 public:
32  typedef NAV Navigable_t;
34  typedef std::vector<ElementLink<typename NAV::container_type> > ElementLinkVect_t;
35 
39 
41 
42  void transToPers(const Navigable_t& trans, PersNavigable_t& pers,
43  const SG::ThinningCache* cache,
44  MsgStream& log) const;
45 
46  void transToPers(const Navigable_t& trans, PersNavigable_t& pers, MsgStream& log) const;
47  void persToTrans(const PersNavigable_t& pers, Navigable_t& trans, MsgStream& log) const;
48 
49  // standard interface for TP converter
50  virtual void transToPers(const Navigable_t* trans, PersNavigable_t* pers, MsgStream& log) const override;
51  virtual void persToTrans(const PersNavigable_t* pers, Navigable_t* trans, MsgStream& log) const override;
52 
53 
54 protected:
55  // converter for element link vector
57 };
58 
59 
60 // Specialized version of the converter for Navigables without weight parameters
61 
62 template <class NAV >
63 class NavigableCnv_p2<NAV, NavigationDefaults::DefaultWeight >
64  : public T_AthenaPoolTPCnvConstBase< NAV, typename GeneratePersNavigableType_p2<NAV >::type > {
65 public:
66  typedef NAV Navigable_t;
68  typedef std::vector<ElementLink<typename NAV::container_type> > ElementLinkVect_t;
69 
73 
75 
76  void transToPers(const Navigable_t& trans, PersNavigable_t& pers,
77  const SG::ThinningCache* cache,
78  MsgStream& log) const;
79 
80  void transToPers(const Navigable_t& trans, PersNavigable_t& pers, MsgStream& log) const;
81  void persToTrans(const PersNavigable_t& pers, Navigable_t& trans, MsgStream& log) const;
82 
83  // standard interface for TP converter
84  virtual void transToPers(const Navigable_t* trans, PersNavigable_t* pers, MsgStream& log) const override;
85  virtual void persToTrans(const PersNavigable_t* pers, Navigable_t* trans, MsgStream& log) const override;
86 
87 
88 protected:
89  // converter for element link vector
91 };
92 
93 
94 #ifndef __REFLEX__
95 #include "NavigableCnv_p2.icc"
96 #endif // not __REFLEX__
97 
98 #endif
99 
NavigableCnv_p2::m_linkCnv
VectorElementLinkCnv_p1< ElementLinkVect_t > m_linkCnv
Definition: NavigableCnv_p2.h:56
SG
Forward declaration.
Definition: CaloCellPacker_400_500.h:32
NavigableCnv_p2::transToPers
void transToPers(const Navigable_t &trans, PersNavigable_t &pers, const SG::ThinningCache *cache, MsgStream &log) const
TPConverterConstBase::transToPers
virtual void transToPers(const TRANS *transObj, PERS *persObj, MsgStream &log) const =0
Convert transient representation to persistent one.
NavigableCnv_p2< NAV, NavigationDefaults::DefaultWeight >::ElementLinkVect_t
std::vector< ElementLink< typename NAV::container_type > > ElementLinkVect_t
Definition: NavigableCnv_p2.h:68
NavigableCnv_p2
Definition: NavigableCnv_p2.h:30
NavigableCnv_p2< NAV, NavigationDefaults::DefaultWeight >::Navigable_t
NAV Navigable_t
Definition: NavigableCnv_p2.h:66
NavigableCnv_p2::ElementLinkVect_t
std::vector< ElementLink< typename NAV::container_type > > ElementLinkVect_t
Definition: NavigableCnv_p2.h:34
VectorElementLinkCnv_p1.h
Navigable_p2.h
This file contains the class definition for the Navigable_p2 class.
NavigableCnv_p2::persToTrans
virtual void persToTrans(const PersNavigable_t *pers, Navigable_t *trans, MsgStream &log) const override
NavigableCnv_p2.icc
NavigableCnv_p2::NavigableCnv_p2
NavigableCnv_p2()
Definition: NavigableCnv_p2.h:40
NavigableCnv_p2::transToPers
virtual void transToPers(const Navigable_t *trans, PersNavigable_t *pers, MsgStream &log) const override
NavigableCnv_p2::Navigable_t
NAV Navigable_t
Definition: NavigableCnv_p2.h:32
NavigableCnv_p2< NAV, NavigationDefaults::DefaultWeight >::PersNavigable_t
GeneratePersNavigableType_p2< Navigable_t >::type PersNavigable_t
Definition: NavigableCnv_p2.h:67
NavigableCnv_p2< NAV, NavigationDefaults::DefaultWeight >::NavigableCnv_p2
NavigableCnv_p2()
Definition: NavigableCnv_p2.h:74
T_AthenaPoolTPConverter.h
NavigableCnv_p2< NAV, NavigationDefaults::DefaultWeight >::m_linkCnv
VectorElementLinkCnv_p1< ElementLinkVect_t > m_linkCnv
Definition: NavigableCnv_p2.h:90
NavigableCnv_p2< NAV, NavigationDefaults::DefaultWeight >::transToPers
void transToPers(const Navigable_t &trans, PersNavigable_t &pers, const SG::ThinningCache *cache, MsgStream &log) const
VectorElementLinkCnv_p1< ElementLinkVect_t >
TPConverterConstBase::persToTrans
virtual void persToTrans(const PERS *persObj, TRANS *transObj, MsgStream &log) const =0
Convert persistent representation to transient one.
NavigableCnv_p2::transToPers
void transToPers(const Navigable_t &trans, PersNavigable_t &pers, MsgStream &log) const
Navigable< ExampleHitContainer >
NavigableCnv_p2< NAV, NavigationDefaults::DefaultWeight >::persToTrans
void persToTrans(const PersNavigable_t &pers, Navigable_t &trans, MsgStream &log) const
python.CaloCondTools.log
log
Definition: CaloCondTools.py:20
NavigationDefaults
Definition: Navigable_p1.h:46
NavigableCnv_p2< NAV, NavigationDefaults::DefaultWeight >::transToPers
virtual void transToPers(const Navigable_t *trans, PersNavigable_t *pers, MsgStream &log) const override
NavigableCnv_p2< NAV, NavigationDefaults::DefaultWeight >::persToTrans
virtual void persToTrans(const PersNavigable_t *pers, Navigable_t *trans, MsgStream &log) const override
TPConverterConstBase
Definition: TPConverter.h:776
SG::ThinningCache
Cache thinning decisions for converters.
Definition: ThinningCache.h:48
Navigable_p2
Definition: Navigable_p2.h:22
NavigableCnv_p2::persToTrans
void persToTrans(const PersNavigable_t &pers, Navigable_t &trans, MsgStream &log) const
NavigableCnv_p2< NAV, NavigationDefaults::DefaultWeight >::transToPers
void transToPers(const Navigable_t &trans, PersNavigable_t &pers, MsgStream &log) const
NavigableCnv_p2::PersNavigable_t
GeneratePersNavigableType_p2< Navigable_t, RPAR >::type PersNavigable_t
Definition: NavigableCnv_p2.h:33