ATLAS Offline Software
NavigableCnv_p1.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_P1_H
6 #define DATAMODELATHENAPOOL_NAVIGABLECNV_P1_H
7 
16 #include "AthLinks/ElementLinkVector.h"
18 #include "Navigable_p1.h"
19 namespace SG {
20  class ThinningCache;
21 }
22 
27 template <class NAV, typename RPAR = typename NAV::parameter_type>
29  : public T_AthenaPoolTPCnvConstBase< NAV, typename GeneratePersNavigableType<NAV, RPAR >::type > {
30 public:
31  typedef NAV Navigable_t;
34 
38 
40 
41  void transToPers(const Navigable_t& trans, PersNavigable_t& pers,
42  const SG::ThinningCache* cache,
43  MsgStream& log) const;
44 
45  void transToPers(const Navigable_t& trans, PersNavigable_t& pers, MsgStream& log) const;
46  void persToTrans(const PersNavigable_t& pers, Navigable_t& trans, MsgStream& log) const;
47 
48  // standard interface for TP converter
49  virtual void transToPers(const Navigable_t* trans, PersNavigable_t* pers, MsgStream& log) const override;
50  virtual void persToTrans(const PersNavigable_t* pers, Navigable_t* trans, MsgStream& log) const override;
51 
52 
53 protected:
54  // converter for element link vector
56 };
57 
58 
59 // Specialized version of the converter for Navigables without weight parameters
60 
61 template <class NAV >
62 class NavigableCnv_p1<NAV, NavigationDefaults::DefaultWeight >
63  : public T_AthenaPoolTPCnvConstBase< NAV, typename GeneratePersNavigableType<NAV >::type > {
64 public:
65  typedef NAV Navigable_t;
68 
72 
74 
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 
84  // standard interface for TP converter
85  virtual void transToPers(const Navigable_t* trans, PersNavigable_t* pers, MsgStream& log) const override;
86  virtual void persToTrans(const PersNavigable_t* pers, Navigable_t* trans, MsgStream& log) const override;
87 
88 protected:
89  // converter for element link vector
91 };
92 
93 
94 #ifndef __REFLEX__
95 #include "NavigableCnv_p1.icc"
96 #endif // not __REFLEX__
97 
98 #endif
99 
NavigableCnv_p1::Navigable_t
NAV Navigable_t
Definition: NavigableCnv_p1.h:31
SG
Forward declaration.
Definition: CaloCellPacker_400_500.h:32
NavigableCnv_p1::transToPers
void transToPers(const Navigable_t &trans, PersNavigable_t &pers, MsgStream &log) const
Navigable_p1
Definition: Navigable_p1.h:22
NavigableCnv_p1< NAV, NavigationDefaults::DefaultWeight >::persToTrans
void persToTrans(const PersNavigable_t &pers, Navigable_t &trans, MsgStream &log) const
TPConverterConstBase::transToPers
virtual void transToPers(const TRANS *transObj, PERS *persObj, MsgStream &log) const =0
Convert transient representation to persistent one.
NavigableCnv_p1< NAV, NavigationDefaults::DefaultWeight >::m_linkCnv
ElementLinkVectorCnv_p1< ElementLinkVect_t > m_linkCnv
Definition: NavigableCnv_p1.h:90
ElementLinkVectorCnv_p1
Definition: ElementLinkVectorCnv_p1.h:28
NavigableCnv_p1< NAV, NavigationDefaults::DefaultWeight >::transToPers
virtual void transToPers(const Navigable_t *trans, PersNavigable_t *pers, MsgStream &log) const override
ElementLinkVectorCnv_p1.h
This file contains the class definition for the ElementLinkVectorCnv_p1 class. NOTE: it should be inc...
ElementLinkVector
ElementLinkVector implementation for standalone ROOT.
Definition: AthLinks/ElementLinkVector.h:65
NavigableCnv_p1::transToPers
virtual void transToPers(const Navigable_t *trans, PersNavigable_t *pers, MsgStream &log) const override
NavigableCnv_p1::persToTrans
void persToTrans(const PersNavigable_t &pers, Navigable_t &trans, MsgStream &log) const
NavigableCnv_p1< NAV, NavigationDefaults::DefaultWeight >::Navigable_t
NAV Navigable_t
Definition: NavigableCnv_p1.h:65
NavigableCnv_p1< NAV, NavigationDefaults::DefaultWeight >::transToPers
void transToPers(const Navigable_t &trans, PersNavigable_t &pers, const SG::ThinningCache *cache, MsgStream &log) const
NavigableCnv_p1< NAV, NavigationDefaults::DefaultWeight >::ElementLinkVect_t
ElementLinkVector< typename NAV::container_type > ElementLinkVect_t
Definition: NavigableCnv_p1.h:67
Navigable_p1.h
This file contains the class definition for the Navigable_p1 class.
NavigableCnv_p1::m_linkCnv
ElementLinkVectorCnv_p1< ElementLinkVect_t > m_linkCnv
Definition: NavigableCnv_p1.h:55
T_AthenaPoolTPConverter.h
TPConverterConstBase::persToTrans
virtual void persToTrans(const PERS *persObj, TRANS *transObj, MsgStream &log) const =0
Convert persistent representation to transient one.
NavigableCnv_p1::NavigableCnv_p1
NavigableCnv_p1()
Definition: NavigableCnv_p1.h:39
Navigable< PhotonContainer, double >
NavigableCnv_p1::transToPers
void transToPers(const Navigable_t &trans, PersNavigable_t &pers, const SG::ThinningCache *cache, MsgStream &log) const
NavigableCnv_p1< NAV, NavigationDefaults::DefaultWeight >::transToPers
void transToPers(const Navigable_t &trans, PersNavigable_t &pers, MsgStream &log) const
NavigableCnv_p1< NAV, NavigationDefaults::DefaultWeight >::persToTrans
virtual void persToTrans(const PersNavigable_t *pers, Navigable_t *trans, MsgStream &log) const override
python.CaloCondTools.log
log
Definition: CaloCondTools.py:20
NavigableCnv_p1::ElementLinkVect_t
ElementLinkVector< typename NAV::container_type > ElementLinkVect_t
Definition: NavigableCnv_p1.h:33
NavigableCnv_p1::PersNavigable_t
GeneratePersNavigableType< Navigable_t, RPAR >::type PersNavigable_t
Definition: NavigableCnv_p1.h:32
NavigationDefaults
Definition: Navigable_p1.h:46
TPConverterConstBase
Definition: TPConverter.h:776
SG::ThinningCache
Cache thinning decisions for converters.
Definition: ThinningCache.h:48
NavigableCnv_p1< NAV, NavigationDefaults::DefaultWeight >::PersNavigable_t
GeneratePersNavigableType< Navigable_t >::type PersNavigable_t
Definition: NavigableCnv_p1.h:66
NavigableCnv_p1< NAV, NavigationDefaults::DefaultWeight >::NavigableCnv_p1
NavigableCnv_p1()
Definition: NavigableCnv_p1.h:73
NavigableCnv_p1
Definition: NavigableCnv_p1.h:29
NavigableCnv_p1.icc
NavigableCnv_p1::persToTrans
virtual void persToTrans(const PersNavigable_t *pers, Navigable_t *trans, MsgStream &log) const override