ATLAS Offline Software
Loading...
Searching...
No Matches
TrackParametersCnv_p2 Class Referenceabstract

New convertor which handles all track parameters in one go - i.e. More...

#include <TrackParametersCnv_p2.h>

Inheritance diagram for TrackParametersCnv_p2:
Collaboration diagram for TrackParametersCnv_p2:

Public Types

typedef TRANS Trans_t
typedef PERS Pers_t
typedef PERS PersBase_t
typedef TRANS_BASE TransBase_t
typedef ITPConverterFor< TRANS_BASE > PolyCnvBase_t
typedef Gaudi::PluginService::Factory< ITPCnvBase *()> Factory

Public Member Functions

 TrackParametersCnv_p2 (bool nosurf=false)
void persToTrans (const Trk ::TrackParameters_p2 *persObj, Trk ::TrackParameters *transObj, MsgStream &log)
Trk::TrackParameterscreateTransient (const Trk::TrackParameters_p2 *persObj, MsgStream &log)
void transToPers (const Trk::TrackParameters *transObj, Trk::TrackParameters_p2 *persObj, MsgStream &log)
virtual Trk::TrackParametersvirt_createTransFromPStore (unsigned index, MsgStream &log)
 This method implements a pure virtual base class method, but should never be called, as abstract type can not be instantiated.
virtual void persToTrans (const PERS *persObj, TRANS *transObj, MsgStream &log)=0
 Convert persistent representation to transient one.
virtual void transToPers (const TRANS *transObj, PERS *persObj, MsgStream &log)=0
 Convert transient representation to persistent one.
virtual void persToTransWithKey (const PERS *persObj, TRANS *transObj, const std::string &, MsgStream &log)
 Convert persistent representation to transient one.
virtual void transToPersWithKey (const TRANS *transObj, PERS *persObj, const std::string &, MsgStream &log)
 Convert transient representation to persistent one.
virtual void persToTransUntyped (const void *pers, void *trans, MsgStream &log)
 Convert persistent object representation to transient.
virtual void transToPersUntyped (const void *trans, void *pers, MsgStream &log)
 Convert transient object representation to persistent.
virtual void persToTransWithKeyUntyped (const void *pers, void *trans, const std::string &key, MsgStream &log)
 Convert persistent object representation to transient.
virtual void transToPersWithKeyUntyped (const void *trans, void *pers, const std::string &key, MsgStream &log)
 Convert transient object representation to persistent.
virtual PERScreatePersistent (const TRANS *transObj, MsgStream &log)
 Create persistent representation of a transient object.
virtual PERScreatePersistentWithKey (const TRANS *transObj, const std::string &key, MsgStream &log)
 Create persistent representation of a transient object, with SG key.
TPObjRef toPersistentWithKey_impl (const TRANS *trans, const std::string &key, MsgStream &log)
 Convert transient object to persistent representation.
virtual const std::type_info & transientTInfo () const
 return C++ type id of the transient class this converter is for
virtual const std::type_info & persistentTInfo () const
 return C++ type id of the persistent class this converter is for
virtual void pstoreToTrans (unsigned index, TRANS_BASE *trans, MsgStream &log)
 Convert persistent representation stored in the storage vector of the top-level object to transient.
virtual TPObjRef virt_toPersistent (const TRANS_BASE *trans, MsgStream &log)
 Internal interface method that is used to invoke the real conversion method (toPersistent_impl) in the derived converter.
virtual TPObjRef virt_toPersistentWithKey (const TRANS_BASE *trans, const std::string &key, MsgStream &log)
 Internal interface method that is used to invoke the real conversion method (toPersistent_impl) in the derived converter.
virtual TRANS * virt_createTransFromPStoreWithKey (unsigned, const std::string &, MsgStream &)
 This method implements a pure virtual base class method, but should never be called, as abstract type can not be instantiated.
void setPStorage (std::vector< PERS > *storage)
 Tell this converter which storage vector it should use to store or retrieve persistent representations.
void setRecursive (bool flag=true)
 Tell the converter if it should work in recursive mode slower but it can safely handle recursion.
void ignoreRecursion (bool flag=false)
 Tell the converter to ignore recursion (do not throw errors) even when recurion is detected.
virtual void reservePStorage (size_t size)
 Reserve 'size' elements for persistent storage.
CNV * converterForType (CNV *cnv, const std::type_info &t_info, MsgStream &log) const
 Find converter for a given C++ type ID, that is or ihnerits from CNV type.
CNV * converterForRef (CNV *cnv, const TPObjRef &ref, MsgStream &log) const
 Find converter for a TP type ID (passed in a TP Ref), that is or ihnerits from CNV type.
TPObjRef baseToPersistent (CNV **cnv, const typename CNV::Trans_t *transObj, MsgStream &log) const
 Persistify bass class of a given object and store the persistent represenation in the storage vector of the top-level persistent object.
TPObjRef toPersistent (CNV **cnv, const typename CNV::TransBase_t *transObj, MsgStream &log) const
 Persistify an object and store the persistent represenation in the storage vector of the top-level persistent object.
void fillTransFromPStore (CNV **cnv, const TPObjRef &ref, TRANS_T *trans, MsgStream &log) const
 Convert persistent object, stored in the the top-level persistent object and referenced by the TP Ref, to transient representation.
CNV::Trans_t * createTransFromPStore (CNV **cnv, const TPObjRef &ref, MsgStream &log) const
 Create transient representation of a persistent object, stored in the the top-level persistent object and referenced by the TP Ref.
virtual void initPrivateConverters (TopLevelTPCnvBase *)
virtual TopLevelTPCnvBasetopConverter ()
 return the top-level converter for this elemental TP converter
virtual const TopLevelTPCnvBasetopConverter () const
const std::type_info & transBaseTInfo () const
 return C++ type id of the common base transient type for all converters for a group of polymorphic types
virtual const TPObjRef::typeID_ttypeID () const
 Return TP typeID for persistent objects produced by this converter.
unsigned typeIDvalue () const
 inlined non-virtual version to get the typeID value fast
virtual void setRuntimeTopConverter (TopLevelTPCnvBase *topConverter)
 Set runtime top-level converter - usually it is the owning TL converter, but in case of extended objects it will be the TL converter of the extended object.
virtual void setTopConverter (TopLevelTPCnvBase *topConverter, const TPObjRef::typeID_t &TPtypeID)
 Set which top-level converter owns this elemental converter, and what TPtypeID was assigned to the persistent objects it produces.
void setReadingFlag ()
void clearReadingFlag ()
bool wasUsedForReading ()
virtual void converterNotFound (const std::type_info &converterType, ITPConverter *c, const std::string &typeName, MsgStream &log) const
 method called when the right TP converter was not found during writing
virtual void converterNotFound (unsigned typeID, ITPConverter *c, const std::string &typeName, MsgStream &log) const
 method called when the right TP converter was not found during reading

Protected Attributes

std::vector< PERS > * m_pStorage
 the address of the storage vector for persistent representations
int m_curRecLevel
 count recursive invocations, to detect recursion
bool m_recursive
 if true, work in recursion-safe way (slower)
bool m_ignoreRecursion
 if true, do not throw errors in case of recursion.
TPObjRef::typeID_t m_pStorageTID
 TP Ref typeID for the persistent objects this converter is creating.
unsigned m_pStorageTIDvalue
 m_pStorageTID converted to integer value
TopLevelTPCnvBasem_topConverter
 top level converter that owns this elemental TP converter it also holds the storage object
TopLevelTPCnvBasem_topConverterRuntime
 top level converter "owning" this TP converter at runtime (different from m_topConverter in case the top-level converter and object have extensions)
bool m_wasUsedForReading
 flag set when using this converter for reading triggers search for a new converter before writing, to prevent possible use of old version

Private Member Functions

AmgSymMatrix(5) *transErrorMatrix(const Trk const Trk::SurfacetransSurface (const Trk ::TrackParameters_p2 *persObj, Trk::SurfaceType type, MsgStream &log)

Static Private Member Functions

static void fillPersSurface (const Trk ::TrackParameters *transObj, Trk ::TrackParameters_p2 *persObj, MsgStream &log)
static void convertTransCurvilinearToPers (const Trk ::TrackParameters *transObj, Trk ::TrackParameters_p2 *persObj)
static bool isPersistifiableType (const Trk ::TrackParameters *transObj)

Private Attributes

ErrorMatrixCnv_p1m_emConverter
ToolHandle< Trk::IEventCnvSuperToolm_eventCnvTool
bool m_nosurf

Detailed Description

New convertor which handles all track parameters in one go - i.e.

it replaces all the rest of the classes in the TrkParameters directory. It does not (currently) write out bounds.

Definition at line 27 of file TrackParametersCnv_p2.h.

Member Typedef Documentation

◆ Factory

typedef Gaudi::PluginService::Factory<ITPCnvBase*()> ITPCnvBase::Factory
inherited

Definition at line 26 of file ITPCnvBase.h.

◆ Pers_t

template<class TRANS_BASE, class TRANS, class PERS>
typedef PERS TPAbstractPolyCnvBase< TRANS_BASE, TRANS, PERS >::Pers_t
inherited

Definition at line 335 of file TPConverter.h.

◆ PersBase_t

template<class TRANS_BASE, class TRANS, class PERS>
typedef PERS TPAbstractPolyCnvBase< TRANS_BASE, TRANS, PERS >::PersBase_t
inherited

Definition at line 336 of file TPConverter.h.

◆ PolyCnvBase_t

typedef ITPConverterFor< TRANS_BASE > ITPConverterFor< TRANS_BASE >::PolyCnvBase_t
inherited

Definition at line 41 of file TPConverter.h.

◆ Trans_t

template<class TRANS_BASE, class TRANS, class PERS>
typedef TRANS TPAbstractPolyCnvBase< TRANS_BASE, TRANS, PERS >::Trans_t
inherited

Definition at line 334 of file TPConverter.h.

◆ TransBase_t

typedef TRANS_BASE ITPConverterFor< TRANS_BASE >::TransBase_t
inherited

Definition at line 39 of file TPConverter.h.

Constructor & Destructor Documentation

◆ TrackParametersCnv_p2()

TrackParametersCnv_p2::TrackParametersCnv_p2 ( bool nosurf = false)
inline

Definition at line 32 of file TrackParametersCnv_p2.h.

33 : m_emConverter(0),
34 m_eventCnvTool("Trk::EventCnvSuperTool/EventCnvSuperTool"),
35 m_nosurf (nosurf)
36 {}
ErrorMatrixCnv_p1 * m_emConverter
ToolHandle< Trk::IEventCnvSuperTool > m_eventCnvTool

Member Function Documentation

◆ baseToPersistent()

TPObjRef ITPConverterFor< TRANS_BASE >::baseToPersistent ( CNV ** cnv,
const typename CNV::Trans_t * transObj,
MsgStream & log ) const
inlineinherited

Persistify bass class of a given object and store the persistent represenation in the storage vector of the top-level persistent object.

The converter is located using the transient type from the CNV parameter, not from the object itself (because we need the base type, not the actual type)

Parameters
cnv[IN/OUT] type of this parameter decides which converter will be used. Once the converter is found, this pointer will be set so the search is done only once
transObj[IN] transient object
log[IN] output message stream
Returns
TPObjRef TP reference to the persistent representation stored in the storage vector of the top-level persistent object

Definition at line 97 of file TPConverter.h.

97 {
98 if( !*cnv || (*cnv)->wasUsedForReading() ) {
99 // don't trust the converter if it was used for reading, find again
100 *cnv = converterForType( *cnv, typeid(typename CNV::Trans_t), log );
101 if( !*cnv ) return TPObjRef();
102 (*cnv)->clearReadingFlag();
103 }
104// return (**cnv).toPersistent_impl(transObj, log);
105 return (**cnv).virt_toPersistent(transObj, log);
106 }
Common base class for all TP converters, specialized for a given transient type.
Definition TPConverter.h:37
CNV * converterForType(CNV *cnv, const std::type_info &t_info, MsgStream &log) const
Definition TPConverter.h:58
bool wasUsedForReading()

◆ clearReadingFlag()

void ITPConverterFor< TRANS_BASE >::clearReadingFlag ( )
inlineinherited

Definition at line 235 of file TPConverter.h.

◆ converterForRef()

CNV * ITPConverterFor< TRANS_BASE >::converterForRef ( CNV * cnv,
const TPObjRef & ref,
MsgStream & log ) const
inlineinherited

Find converter for a TP type ID (passed in a TP Ref), that is or ihnerits from CNV type.

Parameters
cnv[IN] parameter specifying the converter type
ref[IN] TP Ref to an object for which a converter is sought
log[IN] output message stream
Returns
CNV* pointer to the converter, if found

Definition at line 74 of file TPConverter.h.

74 {
75 ITPConverter *c = m_topConverterRuntime->converterForRef( ref );
76 cnv = dynamic_cast<CNV*>(c);
77 if( !cnv )
78 this->converterNotFound( ref.typeID(), c, typeid(CNV).name(), log );
79 return cnv;
80 }
TopLevelTPCnvBase * m_topConverterRuntime
virtual const TPObjRef::typeID_t & typeID() const
Return TP typeID for persistent objects produced by this converter.
virtual void converterNotFound(const std::type_info &converterType, ITPConverter *c, const std::string &typeName, MsgStream &log) const

◆ converterForType()

CNV * ITPConverterFor< TRANS_BASE >::converterForType ( CNV * cnv,
const std::type_info & t_info,
MsgStream & log ) const
inlineinherited

Find converter for a given C++ type ID, that is or ihnerits from CNV type.

Parameters
cnv[IN] parameter specifying the converter type
t_info[IN] C++ type id for which a converter is sought
log[IN] output message stream
Returns
CNV* pointer to the converter, if found

Definition at line 58 of file TPConverter.h.

58 {
59 ITPConverter *c = m_topConverterRuntime->converterForType( t_info );
60 cnv = dynamic_cast< CNV* >( c );
61 if( !cnv )
62 this->converterNotFound( typeid(CNV), c, t_info.name(), log );
63 return cnv;
64 }

◆ converterNotFound() [1/2]

void ITPConverter::converterNotFound ( const std::type_info & converterType,
ITPConverter * c,
const std::string & typeName,
MsgStream & log ) const
virtualinherited

method called when the right TP converter was not found during writing

  • useful as a debugging hook, prints a detailed error message
Parameters
converterType[IN] converterType that was requested
c[IN] converter that was actually found (0 if not)
typeName[IN] the C++ type name of the type for which converter was searched for
log[IN] output message stream

Definition at line 82 of file ITPConverter.cxx.

26{
27 log << MSG::ERROR << ">>>>>> in parent TP converter " << typeid(*this).name()
28 << ": could not find matching TP converter for type " << typeName << endmsg;
29 if( c ) {
30 log << MSG::ERROR << " - found incompatible converter of type "
31 << typeid(*c).name() << endmsg;
32 }
33 log << MSG::ERROR << " Converter handle type was " << converterType.name() << endmsg;
35}
static void errorHandler()

◆ converterNotFound() [2/2]

void ITPConverter::converterNotFound ( unsigned typeID,
ITPConverter * c,
const std::string & typeName,
MsgStream & log ) const
virtualinherited

method called when the right TP converter was not found during reading

  • useful as a debugging hook, prints a detailed error message
Parameters
typeID[IN] converter ID that was requested
c[IN] converter that was actually found (0 if not)
typeName[IN] the C++ type name of the type for which converter was searched for
log[IN] output message stream

Definition at line 95 of file ITPConverter.cxx.

44{
45 log << MSG::ERROR << ">>>>>> in parent TP converter " << typeid(*this).name()
46 << " requested TP converter for TP type ID " << typeID << " not found " << endmsg;
47 if( c ) {
48 log << MSG::ERROR << " - found converter " << typeid(*c).name()
49 << " for " << c->transientTInfo().name()
50 << " with an incompatible base type " << c->transBaseTInfo().name()
51 << endmsg;
52 }
53 log << MSG::ERROR << " Converter handle type was " << reqCnvTypeName << endmsg;
55}
const std::type_info & transBaseTInfo() const
return C++ type id of the common base transient type for all converters for a group of polymorphic ty...
virtual const std::type_info & transientTInfo() const
return C++ type id of the transient class this converter is for

◆ convertTransCurvilinearToPers()

void TrackParametersCnv_p2::convertTransCurvilinearToPers ( const Trk ::TrackParameters * transObj,
Trk ::TrackParameters_p2 * persObj )
staticprivate

Definition at line 199 of file TrackParametersCnv_p2.cxx.

200 {
201 // Curvilinear: here we store the 3 position + 3 momentum, rather than the 5
202 // parameters.
203 // This avoids writing the surface
204 persObj->m_parameters.resize(7);
205 for (unsigned int i = 0; i < 3; ++i) {
206 persObj->m_parameters[i] = transObj->position()[i];
207 persObj->m_parameters[i + 3] = transObj->momentum()[i];
208 }
209 persObj->m_parameters[6] = transObj->charge();
210 // And lets remember to always set the type of the surface
211 persObj->m_surfaceType = static_cast<uint8_t>(Trk::SurfaceType::Curvilinear);
212}

◆ createPersistent()

template<class TRANS_BASE, class TRANS, class PERS>
virtual PERS * TPAbstractPolyCnvBase< TRANS_BASE, TRANS, PERS >::createPersistent ( const TRANS * transObj,
MsgStream & log )
virtualinherited

Create persistent representation of a transient object.

Simply creates a new persistent object and calls transToPers()

Parameters
transObj[IN] transient object
log[IN] output message stream
Returns
the created persistent representation

◆ createPersistentWithKey()

template<class TRANS_BASE, class TRANS, class PERS>
virtual PERS * TPAbstractPolyCnvBase< TRANS_BASE, TRANS, PERS >::createPersistentWithKey ( const TRANS * transObj,
const std::string & key,
MsgStream & log )
virtualinherited

Create persistent representation of a transient object, with SG key.

Simply creates a new persistent object and calls transToPersWithKey()

Parameters
transObj[IN] transient object
key[IN] SG key of object being written
log[IN] output message stream
Returns
the created persistent representation

◆ createTransFromPStore()

CNV::Trans_t * ITPConverterFor< TRANS_BASE >::createTransFromPStore ( CNV ** cnv,
const TPObjRef & ref,
MsgStream & log ) const
inlineinherited

Create transient representation of a persistent object, stored in the the top-level persistent object and referenced by the TP Ref.

If a TP converter is not specified, it will be found based on the Ref type.

Parameters
cnv[IN][OUT] pointer to the converter, usually 0 at the start. Once the right converter is found, this pointer will be set so the search is done only once
ref[IN] TP Ref to the persistent object to be converted
log[IN] output message stream
Returns
pointer to the created transient represention

Definition at line 172 of file TPConverter.h.

172 {
173 if( ref.isNull() ) return 0;
174 CNV *temp_cnv_p = 0;
175 if( !cnv ) cnv = &temp_cnv_p;
176 // see if we already have a converter and if it is the right one
177 if( !*cnv || (*cnv)->typeID().value() != ref.typeID() ) {
178 // we don't - find the right converter for ref.typeID()
179 *cnv = converterForRef( *cnv, ref, log );
180 if( !*cnv ) return 0;
181 (*cnv)->setReadingFlag();
182 }
183 return (**cnv).virt_createTransFromPStore( ref.index(), log );
184 }
CNV * converterForRef(CNV *cnv, const TPObjRef &ref, MsgStream &log) const
Definition TPConverter.h:74
virtual TRANS * virt_createTransFromPStore(unsigned index, MsgStream &log)=0
Internal interface method that is used to invoke the real conversion method (createTransient) in the ...
unsigned value() const
Returns the type ID as an integer.
Definition TPObjRef.h:46

◆ createTransient()

Trk::TrackParameters * TrackParametersCnv_p2::createTransient ( const Trk::TrackParameters_p2 * persObj,
MsgStream & log )

Definition at line 38 of file TrackParametersCnv_p2.cxx.

39 {
40 // ---- Covariance matrix
41 std::optional<AmgSymMatrix(5)> cov = std::nullopt;
42 auto transcov =
43 std::unique_ptr<AmgSymMatrix(5)>(transErrorMatrix(persObj, log));
44 if (transcov) {
45 cov = (*transcov);
46 }
47 // ---- Parameters
48 Trk::TrackParameters *transObj=nullptr;
49 unsigned int size=persObj->m_parameters.size();
50 if (size==7){ // size 7 means we chose to write
51 // as a Curvillinear representation
52 // In principle we could check
53 // the persObject for Trk::SurfaceType::Curvilinear
54 AmgVector(7) parameters;
55 for (unsigned int i=0; i<size; ++i) parameters[i]=persObj->m_parameters[i];
56 transObj= new Trk::CurvilinearParameters(parameters, cov);
57 return transObj;
58 } else {
59 // Not a curvilinear representation.
60 // We need to have a surface to handle local->global transformations etc/
61 // Get surface type
62 Trk::SurfaceType type = static_cast<Trk::SurfaceType>(persObj->m_surfaceType);
63 // Get surface & fill parameter vector
64 const Trk::Surface* surface = transSurface(persObj, type, log);
65 AmgVector(5) parameters;
66 for (unsigned int i = 0; i < size; ++i){
67 parameters[i] = persObj->m_parameters[i];
68 }
69 // Now create concrete parameters ...
70 if (surface){
71 if (type == Trk::SurfaceType::Perigee) {
72 transObj = new Trk::Perigee(
73 parameters, static_cast<const Trk::PerigeeSurface*>(surface), cov);
74 return transObj;
75 } else if (type == Trk::SurfaceType::Plane) {
76 transObj = new Trk::AtaPlane(
77 parameters, static_cast<const Trk::PlaneSurface*>(surface), cov);
78 return transObj;
79 } else if (type == Trk::SurfaceType::Line) {
80 transObj = new Trk::AtaStraightLine(
81 parameters,
82 static_cast<const Trk::StraightLineSurface*>(surface),
83 cov);
84 return transObj;
85 }
86 } else if (!m_nosurf) {
87 // FIXME: next line changed to DEBUG to avoid filling the derivation job
88 // options with garbage. Underlying issue should be fixed.
89 log << MSG::DEBUG << "No surface of type=" << static_cast<int>(type)
90 << " created - so these parameters cannot be made!" << endmsg;
91 return nullptr;
92 }
93 }
94 return nullptr;
95}
#define endmsg
#define AmgSymMatrix(dim)
#define AmgVector(rows)
AmgSymMatrix(5) *transErrorMatrix(const Trk const Trk::Surface * transSurface(const Trk ::TrackParameters_p2 *persObj, Trk::SurfaceType type, MsgStream &log)
std::vector< float > m_parameters
uint8_t m_surfaceType
Used to recreate the correct TrackParameters.
SurfaceType
This enumerator simplifies the persistency & calculations,.
ParametersT< TrackParametersDim, Charged, PerigeeSurface > Perigee
ParametersT< TrackParametersDim, Charged, StraightLineSurface > AtaStraightLine
ParametersBase< TrackParametersDim, Charged > TrackParameters
ParametersT< TrackParametersDim, Charged, PlaneSurface > AtaPlane

◆ fillPersSurface()

void TrackParametersCnv_p2::fillPersSurface ( const Trk ::TrackParameters * transObj,
Trk ::TrackParameters_p2 * persObj,
MsgStream & log )
staticprivate

Definition at line 221 of file TrackParametersCnv_p2.cxx.

221 {
222 //----- Surface
223 const Trk::Surface* surf = transObj->associatedSurface ().baseSurface();
224 assert (surf);
225 persObj->m_surfaceType = static_cast<uint8_t>(surf->type()); // Store type
226
227 persObj->m_associatedDetElementId = surf->associatedDetectorElementIdentifier().get_identifier32().get_compact();
228 static const Trk::PerigeeSurface s_nominalPerigeeSurface; // FIXME - should there be a common 'nominal' surface ie on Perigee, as before?
229 // Need to write out transforms for TG owned surfaces, and 'free' (noOwn) surfaces - i.e. anything which isn't on det element
230 if( surf->cachedTransform()!=nullptr ) {
231 // FIXME - I think maybe we can just remove all of the code below and ALWAYS write out the transform if it exists - i.e. it won't exist if the surface is 'nominal'
232 if (surf->type() != Trk::SurfaceType::Perigee ||
233 (surf->type() == Trk::SurfaceType::Perigee &&
234 *surf != s_nominalPerigeeSurface)) {
236 persObj->m_transform);
237 }
238 }
239}
static void eigenTransform3DToVector(const Amg::Transform3D &trans, T &vec)
Convert HepGeom::Transform3D to std :: vector<double>
value_type get_compact() const
Get the compact id.
Identifier32 get_identifier32() const
Get the 32-bit version Identifier, will be invalid if >32 bits needed.
const Amg::Transform3D * cachedTransform() const
Return the cached transformation directly.
Identifier associatedDetectorElementIdentifier() const
return Identifier of the associated Detector Element
virtual constexpr SurfaceType type() const =0
Returns the Surface type to avoid dynamic casts.

◆ fillTransFromPStore()

void ITPConverterFor< TRANS_BASE >::fillTransFromPStore ( CNV ** cnv,
const TPObjRef & ref,
TRANS_T * trans,
MsgStream & log ) const
inlineinherited

Convert persistent object, stored in the the top-level persistent object and referenced by the TP Ref, to transient representation.

An empty transient object to be filled in is provided. If converter is not given, it will be found based on the Ref type.

Parameters
cnv[IN][OUT] pointer to the converter, usually 0 at the start. Once the right converter is found, this pointer will be set so the search is done only once
ref[IN] TP Ref to the persistent object to be converted
trans[IN] pointer to the empty transient object
log[IN] output message stream

Definition at line 145 of file TPConverter.h.

145 {
146 if( ref.isNull() ) return;
147 CNV *temp_cnv_p = 0;
148 if( !cnv ) cnv = &temp_cnv_p;
149 // see if we already have a converter and if it is the right one
150 if( !*cnv || (*cnv)->typeID().value() != ref.typeID() ) {
151 // we don't - find the right converter for ref.typeID()
152 *cnv = converterForRef( *cnv, ref, log );
153 if( !*cnv ) return;
154 (*cnv)->setReadingFlag();
155 }
156 (**cnv).pstoreToTrans( ref.index(), trans, log );
157 }
virtual void pstoreToTrans(unsigned index, TransBase_t *transObj, MsgStream &log)=0
Internal interface method that is used to invoke the real conversion method (persToTrans) in the deri...

◆ ignoreRecursion()

template<class TRANS_BASE, class TRANS, class PERS>
void TPAbstractPolyCnvBase< TRANS_BASE, TRANS, PERS >::ignoreRecursion ( bool flag = false)
inlineinherited

Tell the converter to ignore recursion (do not throw errors) even when recurion is detected.

UNSAFE! use only if you are sure you preallocated enough persistent storage

Definition at line 568 of file TPConverter.h.

568 {
570 }
The most basic TP converter template which is parametrized by transient and persistent types.
bool m_ignoreRecursion
if true, do not throw errors in case of recursion.

◆ initPrivateConverters()

◆ isPersistifiableType()

bool TrackParametersCnv_p2::isPersistifiableType ( const Trk ::TrackParameters * transObj)
staticprivate

Definition at line 214 of file TrackParametersCnv_p2.cxx.

214 {
215 const Trk::Surface* surf = transObj->associatedSurface ().baseSurface();
216 assert (surf);
217 Trk::SurfaceType type = surf->type();
219}

◆ persistentTInfo()

template<class TRANS_BASE, class TRANS, class PERS>
virtual const std::type_info & TPAbstractPolyCnvBase< TRANS_BASE, TRANS, PERS >::persistentTInfo ( ) const
inlinevirtualinherited

return C++ type id of the persistent class this converter is for

Returns
std::type_info&

Implements ITPCnvBase.

Definition at line 482 of file TPConverter.h.

482{ return typeid(PERS); }

◆ persToTrans() [1/2]

template<class TRANS_BASE, class TRANS, class PERS>
virtual void TPAbstractPolyCnvBase< TRANS_BASE, TRANS, PERS >::persToTrans ( const PERS * persObj,
TRANS * transObj,
MsgStream & log )
pure virtualinherited

Convert persistent representation to transient one.

Copies data members from persistent object to an existing transient one. Needs to be implemented by the developer on the actual converter.

Parameters
persObj[IN] persistent object
transObj[IN] transient object
log[IN] output message stream

Implemented in AFP_SiDigiCnv_p1, AFP_SIDLocRecoEvCollectionCnv_p1, AFP_SIDLocRecoEventCnv_p1, AFP_SIDSimHitCnv_p1, AFP_TDDigiCnv_p1, AFP_TDLocRecoEvCollectionCnv_p1, AFP_TDLocRecoEventCnv_p1, AFP_TDSimHitCnv_p1, ALFA_CLinkEventCnv_p1, ALFA_DigitCnv_p1, ALFA_DigitCollectionCnv_p1, ALFA_GloRecEvCollectionCnv_p1, ALFA_GloRecEventCnv_p1, ALFA_HitCnv_p1, ALFA_LocRecCorrEvCollectionCnv_p1, ALFA_LocRecCorrEventCnv_p1, ALFA_LocRecCorrODEvCollectionCnv_p1, ALFA_LocRecCorrODEventCnv_p1, ALFA_LocRecEvCollectionCnv_p1, ALFA_LocRecEventCnv_p1, ALFA_LocRecODEvCollectionCnv_p1, ALFA_LocRecODEventCnv_p1, ALFA_ODDigitCnv_p1, ALFA_ODDigitCollectionCnv_p1, ALFA_ODHitCnv_p1, ALFA_RawDataCnv_charge_p1, ALFA_RawDataCnv_p1, AthenaBarCodeCnv_p1, CaloClusterContainerCnv_p1, CaloClusterContainerCnv_p2, CaloClusterContainerCnv_p3, CaloClusterContainerCnv_p4, CaloClusterContainerCnv_p5, CaloClusterContainerCnv_p6, CaloClusterContainerCnv_p7, CaloEnergyCnv_p1, CaloShowerContainerCnv_p1, CaloShowerContainerCnv_p2, CaloTopoTowerContainerCnv_p1, CaloTowerContainerCnv_p1, ChamberT0sCnv_p1, CompositeParticleCnv_p1, CompositeParticleContainerCnv_p1, DataLinkCnv_p1< DLINK_TYPE >, DataLinkCnv_p1< DataLink< ALFA_DigitCollection > >, DataLinkCnv_p1< DataLink< ALFA_LocRecCorrEvCollection > >, DataLinkCnv_p1< DataLink< ALFA_LocRecCorrODEvCollection > >, DataLinkCnv_p1< DataLink< ALFA_LocRecEvCollection > >, DataLinkCnv_p1< DataLink< ALFA_LocRecODEvCollection > >, DataLinkCnv_p1< DataLink< ALFA_ODDigitCollection > >, DataLinkCnv_p1< DataLink< ALFA_RawDataContainer > >, DataLinkCnv_p1< DataLink< CaloCellContainer > >, DataLinkCnv_p1< DataLink< CaloClusterContainer > >, DataLinkCnv_p1< DataLink< CaloTowerContainer > >, DataLinkCnv_p1< DataLink< INav4MomAssocs > >, DataLinkCnv_p1< DataLink< LArSamples::Container > >, DataLinkCnv_p1< DataLink< LArSamples::ParticleBaseContainer > >, DataLinkCnv_p2< DLINK_TYPE >, DataLinkCnv_p2< DataLink< CaloCellContainer > >, DataLinkCnv_p2< DataLink< INav4MomAssocs > >, DataLinkCnv_p2< DataLink< INav4MomToTrackParticleAssocs > >, DataLinkCnv_p2< DataLink< TrackParticleAssocs > >, DepositInCaloCnv_p1, DepositInCaloCnv_p2, DetailedTrackTruthCnv_p1, DetailedTrackTruthCnv_p2, DetailedTrackTruthCnv_p3, DetailedTrackTruthCnv_p4, DMTest::CLinksAODCnv_p1, ElementLinkCnv_p1< LINK_TYPE >, ElementLinkCnv_p1< ElementLink< Analysis::MuonContainer > >, ElementLinkCnv_p1< ElementLink< AthExParticles > >, ElementLinkCnv_p1< ElementLink< CaloCellLinkContainer > >, ElementLinkCnv_p1< ElementLink< CaloClusterContainer > >, ElementLinkCnv_p1< ElementLink< CaloShowerContainer > >, ElementLinkCnv_p1< ElementLink< ElectronContainer > >, ElementLinkCnv_p1< ElementLink< InDet::PixelClusterContainer > >, ElementLinkCnv_p1< ElementLink< InDet::SCT_ClusterContainer > >, ElementLinkCnv_p1< ElementLink< InDet::TRT_DriftCircleContainer > >, ElementLinkCnv_p1< ElementLink< McEventCollection > >, ElementLinkCnv_p1< ElementLink< Muon::CscPrepDataContainer > >, ElementLinkCnv_p1< ElementLink< Muon::MdtPrepDataContainer > >, ElementLinkCnv_p1< ElementLink< Muon::RpcPrepDataContainer > >, ElementLinkCnv_p1< ElementLink< Muon::TgcPrepDataContainer > >, ElementLinkCnv_p1< ElementLink< MuonCaloEnergyContainer > >, ElementLinkCnv_p1< ElementLink< MuonFeatureContainer > >, ElementLinkCnv_p1< ElementLink< PhotonContainer > >, ElementLinkCnv_p1< ElementLink< Rec::TrackParticleContainer > >, ElementLinkCnv_p1< ElementLink< RingerRingsContainer > >, ElementLinkCnv_p1< ElementLink< TileMuFeatureContainer > >, ElementLinkCnv_p1< ElementLink< TrigEFBphysContainer > >, ElementLinkCnv_p1< ElementLink< TrigEMClusterContainer > >, ElementLinkCnv_p1< ElementLink< TrigInDetTrackCollection > >, ElementLinkCnv_p1< ElementLink< TrigL2BphysContainer > >, ElementLinkCnv_p1< ElementLink< TrigTauClusterDetailsContainer > >, ElementLinkCnv_p1< ElementLink< TruthEtIsolationsContainer > >, ElementLinkCnv_p1< ElementLink< VxContainer > >, ElementLinkCnv_p3< LINK_TYPE >, ElementLinkCnv_p3< ElementLink< CaloCellContainer > >, ElementLinkCnv_p3< ElementLink< CaloCellLinkContainer > >, ElementLinkCnv_p3< ElementLink< CaloClusterContainer > >, ElementLinkCnv_p3< ElementLink< CaloRingsContainer > >, ElementLinkCnv_p3< ElementLink< CaloShowerContainer > >, ElementLinkCnv_p3< ElementLink< DataVector< C_v1 > > >, ElementLinkCnv_p3< ElementLink< DataVector< TrackParticleBase > > >, ElementLinkCnv_p3< ElementLink< DataVector< Trk::Track > > >, ElementLinkCnv_p3< ElementLink< ExampleHitContainer > >, ElementLinkCnv_p3< ElementLink< INavigable4MomentumCollection > >, ElementLinkCnv_p3< ElementLink< McEventCollection > >, ElementLinkCnv_p3< ElementLink< Muon::CscPrepDataContainer > >, ElementLinkCnv_p3< ElementLink< Muon::MdtPrepDataContainer > >, ElementLinkCnv_p3< ElementLink< Muon::MMPrepDataContainer > >, ElementLinkCnv_p3< ElementLink< Muon::RpcPrepDataContainer > >, ElementLinkCnv_p3< ElementLink< Muon::sTgcPrepDataContainer > >, ElementLinkCnv_p3< ElementLink< Muon::TgcPrepDataContainer > >, ElementLinkCnv_p3< ElementLink< MuonCaloEnergyContainer > >, ElementLinkCnv_p3< ElementLink< MuonFeatureContainer > >, ElementLinkCnv_p3< ElementLink< Rec::TrackParticleContainer > >, ElementLinkCnv_p3< ElementLink< RingerRingsContainer > >, ElementLinkCnv_p3< ElementLink< TileMuFeatureContainer > >, ElementLinkCnv_p3< ElementLink< TrigEFBphysContainer > >, ElementLinkCnv_p3< ElementLink< TrigEMClusterContainer > >, ElementLinkCnv_p3< ElementLink< TrigInDetTrackCollection > >, ElementLinkCnv_p3< ElementLink< TrigL2BphysContainer > >, ElementLinkCnv_p3< ElementLink< TrigMuonEFInfoContainer > >, ElementLinkCnv_p3< ElementLink< TrigTauClusterDetailsContainer > >, ElementLinkCnv_p3< ElementLink< TruthEtIsolationsContainer > >, ElementLinkCnv_p3< ElementLink< VxContainer > >, ElementLinkCnv_p3< MasterLink_t >, ElementLinkCnv_p3< typename LinkVect_t::value_type >, ElementLinkVectorCnv_p1< LINK_VECT >, ElementLinkVectorCnv_p1< ElementLinkVector< AthExIParticles > >, ElementLinkVectorCnv_p1< ElementLinkVector< CaloClusterContainer > >, ElementLinkVectorCnv_p1< ElementLinkVector< DataVector< C_v1 > > >, ElementLinkVectorCnv_p1< ElementLinkVector< egDetailContainer > >, ElementLinkVectorCnv_p1< ElementLinkVector< ExampleHitContainer > >, ElementLinkVectorCnv_p1< ElementLinkVector< Rec::TrackParticleContainer > >, ElementLinkVectorCnv_p1< ElementLinkVector< Trk::SegmentCollection > >, ElementLinkVectorCnv_p1< ElementLinkVector< typename NAV::container_type > >, ElementLinkVectorCnv_p1< ElementLinkVector< typename Navigable< Analysis::MuonContainer, double >::container_type > >, ElementLinkVectorCnv_p1< ElementLinkVector< typename Navigable< CaloCellContainer, double >::container_type > >, ElementLinkVectorCnv_p1< ElementLinkVector< typename Navigable< ElectronContainer, double >::container_type > >, ElementLinkVectorCnv_p1< ElementLinkVector< typename Navigable< PhotonContainer, double >::container_type > >, ElementLinkVectorCnv_p1< ElementLinkVector< typename Navigable< Rec::TrackParticleContainer, double >::container_type > >, ElementLinkVectorCnv_p1< ElementLinkVector< VxContainer > >, EnergyLossCnv_p1, EventIDCnv_p1, EventInfoCnv_p1, EventInfoCnv_p2, EventInfoCnv_p3, EventInfoCnv_p4, EventStreamInfoCnv_p1, EventStreamInfoCnv_p2, EventStreamInfoCnv_p3, EventTypeCnv_p1, EventTypeCnv_p3, FitQualityCnv_p1, HepLorentzVectorCnv_p1, HepMcParticleLinkCnv_p1, HepMcParticleLinkCnv_p2, HepMcParticleLinkCnv_p3, INav4MomAssocsCnv_p1, INav4MomAssocsCnv_p2, INav4MomAssocsCnv_p3, INav4MomLinkContainerCnv_p1, INav4MomToTrackParticleAssocsCnv_p1, IParticleLinkContainerCnv_p1, JetAssociationBaseCnv_p1, JetCnv_p1, JetCnv_p2, JetCnv_p3, JetCnv_p4, JetCollectionCnv_p1, JetCollectionCnv_p2, JetCollectionCnv_p3, JetCollectionCnv_p4, JetCollectionCnv_p5, JetCollectionCnv_p6, JetKeyDescriptorCnv_p1, JetSamplingCnv_p1, JetSamplingCnv_p2, JetSamplingCollectionCnv_p1, JetSamplingCollectionCnv_p2, LArAutoCorrSubsetCnv_p1, LArCaliWaveSubsetCnv_p1, LArCaliWaveSubsetCnv_p2, LArCaliWaveSubsetCnv_p3, LArDigitContainerCnv_p1, LArDigitContainerCnv_p2, LArDigitContainerCnv_p3, LArDSPThresholdsSubsetCnv_p1, LArFebErrorSummaryCnv_p1, LArLATOMEHeaderContainerCnv_p1, LArMphysOverMcalSubsetCnv_p1, LArNoisyROSummaryCnv_p1, LArNoisyROSummaryCnv_p2, LArNoisyROSummaryCnv_p3, LArNoisyROSummaryCnv_p4, LArNoisyROSummaryCnv_p5, LArNoisyROSummaryCnv_p6, LArOFCBinSubsetCnv_p1, LArOFCSubsetCnv_p1, LArPedestalMCCnv_p1, LArPedestalSubsetCnv_p1, LArPedestalSubsetCnv_p2, LArPhysWaveSubsetCnv_p1, LArRampSubsetCnv_p1, LArRawChannelCnv_p1, LArRawChannelCnv_p2, LArRawChannelContainerCnv_p1, LArRawChannelContainerCnv_p2, LArRawChannelContainerCnv_p3, LArRawChannelContainerCnv_p4, LArRawSCContainerCnv_p1, LArSCDigitContainerCnv_p1, LArShapeSubsetCnv_p1, LArShapeSubsetCnv_p2, LArSingleFloatSubsetCnv_p1, LArTTL1Cnv_p1, LUCID_DigitCnv_p1, LUCID_DigitCnv_p2, LUCID_DigitContainerCnv_p1, LUCID_DigitContainerCnv_p2, LUCID_RawDataCnv_p1, LUCID_RawDataContainerCnv_p1, LVL1_ROICnv_p1, LVL1CTP::Lvl1ResultCnv_p1, LVL1CTP::Lvl1ResultCnv_p2, MergedEventInfoCnv_p1, MergedEventInfoCnv_p2, MissingEtCaloCnv_p1, MissingEtCaloCnv_p2, MissingEtCaloCnv_p3, MissingETCnv_p1, MissingETCnv_p2, MissingETCnv_p3, MissingEtRegionsCnv_p1, MissingEtRegionsCnv_p2, MissingEtRegionsCnv_p3, MissingEtTruthCnv_p1, MissingEtTruthCnv_p2, MissingEtTruthCnv_p3, MuonCnv_p1, MuonCnv_p2, MuonCnv_p3, MuonCnv_p4, MuonCnv_p5, MuonCnv_p6, MuonContainerCnv_p1, MuonContainerCnv_p2, MuonSpShowerCnv_p1, MuonSpShowerContainerCnv_p1, NavigableCnv_p1< NAV, RPAR >, NavigableCnv_p1< NAV, NavigationDefaults::DefaultWeight >, NavigableCnv_p1< Navigable< Analysis::MuonContainer, double >, float >, NavigableCnv_p1< Navigable< CaloCellContainer, double >, float >, NavigableCnv_p1< Navigable< ElectronContainer, double >, float >, NavigableCnv_p1< Navigable< INavigable4MomentumCollection, double > >, NavigableCnv_p1< Navigable< PhotonContainer, double >, float >, NavigableCnv_p1< Navigable< Rec::TrackParticleContainer, double >, float >, NavigableCnv_p2< NAV, RPAR >, NavigableCnv_p2< MissingETComposition, MissingETComposition_p1::Weight_p1 >, NavigableCnv_p2< MissingETComposition, Weight_p1 >, NavigableCnv_p2< NAV, NavigationDefaults::DefaultWeight >, NavigableCnv_p2< Navigable< ExampleHitContainer > >, NavigableCnv_p2< Navigable< ExampleHitContainer, double > >, NavigableCnv_p2< Navigable< INavigable4MomentumCollection, double >, float >, NeutrinoCnv_p1, NeutrinoCnv_p2, P4EEtaPhiMCnv_p1, P4EEtaPhiMCnv_p2, P4ImplEEtaPhiMCnv_p1, P4ImplEEtaPhiMCnv_p2, P4ImplIPtCotThPhiMCnv_p1, P4ImplPtEtaPhiMCnv_p1, P4ImplPtEtaPhiMCnv_p2, P4ImplPxPyPzECnv_p1, P4IPtCotThPhiMCnv_p1, P4PtEtaPhiMCnv_p1, P4PtEtaPhiMCnv_p2, P4PxPyPzECnv_p1, ParticleBaseCnv_p1, ParticleBaseCnv_p2, ParticleJetCnv_p1, ParticleLinksCnv_p1< Container >, ParticleLinksCnv_p1< ParticleBaseContainer >, ParticleShallowCloneCnv_p1, ParticleShallowCloneContainerCnv_p1, PileUpEventInfoCnv_p1, PileUpEventInfoCnv_p2, PileUpEventInfoCnv_p3, PileUpEventInfoCnv_p4, PileUpEventInfoCnv_p5, RingerRingsCnv_p1, RingerRingsCnv_p2, RpcByteStreamErrorContainerCnv_p1, RpcSectorLogicContainerCnv_p1, SelectedParticlesCnv_p1, SubDetHitStatisticsCnv_p0, T_AthenaHitsVectorCnv< TRANS, PERS, CONV >, T_AtlasHitsVectorCnv< TRANS, PERS, CONV >, T_AtlasHitsVectorCnv< TileHitVector, TileHitVector_p1, TileHitCnv_p1 >, TBADCRawContCnv_p1, TBBPCContCnv_p1, TBEventInfoCnv_p1, TBLArDigitContainerCnv_p1, TBMWPCContCnv_p1, TBPhaseCnv_p1, TBScintillatorContCnv_p1, TBTailCatcherCnv_p1, TBTDCCnv_p1, TBTDCRawContCnv_p1, TBTrackCnv_p1, TBTrackInfoCnv_p1, TBTriggerPatternUnitCnv_p1, TileBeamElemCnv_p1, TileCosmicMuonCnv_p1, TileCosmicMuonCnv_p2, TileDigitsCnv_p1, TileDigitsCnv_p2, TileDigitsCnv_p3, TileHitCnv_p1, TileL2Cnv_p1, TileL2Cnv_p2, TileMuCnv_p1, TileMuonReceiverObjCnv_p1, TileRawChannelCnv_p1, TileTTL1CellCnv_p1, TileTTL1Cnv_p1, TPAbstractPolyCnvConstBase< TRANS_BASE, TRANS, PERS >, TPCnvIDCont< TRANS, PERS, CONV >, TPCnvIDContFromIdentifier< TRANS, PERS, CONV >, TPCnvStdVector< TRANS, PERS, CONV >, TPCnvVector< TRANS, PERS, CONV >, TPCnvVector< DataVector< eflowObject >, std::vector< eflowObject_p1 >, eflowObjectCnv_p1 >, TPCnvVector< DataVector< eflowObject >, std::vector< eflowObject_p2 >, eflowObjectCnv_p2 >, TPCnvVector< DataVector< eflowObject >, std::vector< eflowObject_p3 >, eflowObjectCnv_p3 >, TPCnvVector< DataVector< eflowObject >, std::vector< eflowObject_p4 >, eflowObjectCnv_p4 >, TPCnvVector< DataVector< eflowObject >, std::vector< eflowObject_p5 >, eflowObjectCnv_p5 >, TPConverterConstBase< TRANS, PERS >, TPPtrVectorCnv< TRANS, PERS, CONV >, TPPtrVectorCnv< std::vector< Analysis::TauPi0Candidate * >, std::vector< TPObjRef >, ITPConverterFor< Analysis::TauPi0Candidate > >, TPPtrVectorCnv< std::vector< Analysis::TauPi0Cluster * >, std::vector< TPObjRef >, ITPConverterFor< Analysis::TauPi0Cluster > >, TPPtrVectorCnv< std::vector< Analysis::TauShot * >, std::vector< TPObjRef >, ITPConverterFor< Analysis::TauShot > >, TPPtrVectorCnv< TRANS, TPIntegerVector_p2, CONV >, TPValVectorCnv< TRANS, PERS, CONV >, TrackParticleAssocsCnv_p1, TrackParticleTruthCollectionCnv_p1, TrackParticleTruthCollectionCnv_p2, TrackParticleTruthCollectionCnv_p3, TrackRecordCnv_p1, TrackRecordCnv_p2, TrigCaloClusterCnv_p1, TrigCaloClusterCnv_p2, TrigCaloClusterCnv_p3, TrigConfAlgCnv_p1, TrigConfChainCnv_p1, TrigConfSeqCnv_p1, TrigConfSigCnv_p1, TrigDec::TrigDecisionCnv_p2, TrigDec::TrigDecisionCnv_p3, TrigDec::TrigDecisionCnv_p4, TrigDec::TrigDecisionCnv_p5, TrigEMClusterCnv_p3, TrigEMClusterCnv_p4, TriggerInfoCnv_p1, TriggerInfoCnv_p2, TrigMonAlgCnv_p1, TrigMonConfigCnv_p1, TrigMonEventCnv_p1, TrigMonROBCnv_p1, TrigMonROBDataCnv_p1, TrigMonROBDataCnv_p2, TrigMonRoiCnv_p1, TrigMonSeqCnv_p1, TrigMonTECnv_p1, TrigRNNOutputCnv_p2, TrigT2JetCnv_p1, TrigT2JetCnv_p2, TrigT2JetCnv_p3, TrigT2MbtsBitsCnv_p1, TrigT2MbtsBitsCnv_p2, TrigT2MbtsBitsCnv_p3, TrigT2ZdcSignalsCnv_p1, TrigTauClusterCnv_p1, TrigTauClusterCnv_p2, TrigTauClusterCnv_p3, TrigTauClusterCnv_p4, TrigTauClusterCnv_p5, TrigTauClusterDetailsCnv_p1, TrigTauClusterDetailsCnv_p2, TruthEtIsolationsCnv_p1, TruthParticleContainerCnv_p5, TruthParticleContainerCnv_p6, TruthTrajectoryCnv_p1, TruthTrajectoryCnv_p2, TruthTrajectoryCnv_p3, xAODBTaggingAuxContainerCnv_v1, xAODCaloClusterAuxContainerCnv_v1, xAODElectronAuxContainerCnv_v1, xAODElectronAuxContainerCnv_v2, xAODEmTauRoIAuxContainerCnv_v1, xAODEmTauRoIContainerCnv_v1, xAODEnergySumRoIAuxInfoCnv_v1, xAODEnergySumRoICnv_v1, xAODEventAuxInfoCnv_v1, xAODEventAuxInfoCnv_v2, xAODJetRoIAuxContainerCnv_v1, xAODJetRoIContainerCnv_v1, xAODJetTrigAuxContainerCnv_v1, xAODL2StandAloneMuonAuxContainerCnv_v1, xAODL2StandAloneMuonContainerCnv_v1, xAODMissingETAuxAssociationMapCnv_v1, xAODMuonAuxContainerCnv_v1, xAODMuonAuxContainerCnv_v2, xAODMuonAuxContainerCnv_v3, xAODMuonAuxContainerCnv_v4, xAODPhotonAuxContainerCnv_v1, xAODPhotonAuxContainerCnv_v2, xAODRODHeaderAuxContainerCnv_v1, xAODRODHeaderContainerCnv_v1, xAODTauJetAuxContainerCnv_v1, xAODTauJetContainerCnv_v1, xAODTauJetContainerCnv_v2, xAODTrackCaloClusterAuxContainerCnv_v1, xAODTrackParticleAuxContainerCnv_v1, xAODTrackParticleAuxContainerCnv_v2, xAODTrackParticleAuxContainerCnv_v3, xAODTrackParticleAuxContainerCnv_v4, xAODTrigCompositeAuxContainerCnv_v1, xAODTrigRingerRingsAuxContainerCnv_v1, xAODTrigRingerRingsContainerCnv_v1, xAODTrigRNNOutputAuxContainerCnv_v1, xAODTrigRNNOutputContainerCnv_v1, xAODTruthParticleAuxContainerCnv_v1, xAODTruthVertexAuxContainerCnv_v1, ZDC_SimFiberHit_CollectionCnv_p1, ZDC_SimFiberHitCnv_p1, ZdcDigitsCnv_p1, ZdcDigitsCollectionCnv_p1, ZdcRawChannelCnv_p1, and ZdcRawChannelCollectionCnv_p1.

◆ persToTrans() [2/2]

void TrackParametersCnv_p2::persToTrans ( const Trk ::TrackParameters_p2 * persObj,
Trk ::TrackParameters * transObj,
MsgStream & log )
Parameters
persObjpersObj
transObjtransObj
loglog

Definition at line 31 of file TrackParametersCnv_p2.cxx.

33 {
34 throw std::runtime_error(
35 "TrackParametersCnv_p2::persToTrans shouldn't be called any more!");
36}

◆ persToTransUntyped()

template<class TRANS_BASE, class TRANS, class PERS>
virtual void TPAbstractPolyCnvBase< TRANS_BASE, TRANS, PERS >::persToTransUntyped ( const void * pers,
void * trans,
MsgStream & log )
inlinevirtualinherited

Convert persistent object representation to transient.

Parameters
pers[IN] void* pointer to the persistent object
trans[OUT] void* pointer to the empty transient object
log[IN] output message stream

Implements ITPCnvBase.

Definition at line 400 of file TPConverter.h.

403 {
404 persToTrans (reinterpret_cast<const PERS*> (pers),
405 reinterpret_cast<TRANS*> (trans),
406 log);
407 }
virtual void persToTrans(const PERS *persObj, TRANS *transObj, MsgStream &log)=0
Convert persistent representation to transient one.

◆ persToTransWithKey()

template<class TRANS_BASE, class TRANS, class PERS>
virtual void TPAbstractPolyCnvBase< TRANS_BASE, TRANS, PERS >::persToTransWithKey ( const PERS * persObj,
TRANS * transObj,
const std::string & ,
MsgStream & log )
inlinevirtualinherited

Convert persistent representation to transient one.

Copies data members from persistent object to an existing transient one. Needs to be implemented by the developer on the actual converter.

Parameters
persObj[IN] persistent object
transObj[IN] transient object
log[IN] output message stream

Reimplemented in AthExParticlesCnv_p1, CaloCellContainerCnv_p1, CaloCellLinkContainerCnv_p1, CaloCellLinkContainerCnv_p2, CaloClusterCellLinkContainerCnv_p1, TPConverterWithKeyBase< TRANS, PERS >, and xAODTauJetAuxContainerCnv_v2.

Definition at line 376 of file TPConverter.h.

379 {
380 return persToTrans (persObj, transObj, log);
381 }

◆ persToTransWithKeyUntyped()

template<class TRANS_BASE, class TRANS, class PERS>
virtual void TPAbstractPolyCnvBase< TRANS_BASE, TRANS, PERS >::persToTransWithKeyUntyped ( const void * pers,
void * trans,
const std::string & key,
MsgStream & log )
inlinevirtualinherited

Convert persistent object representation to transient.

Parameters
pers[IN] void* pointer to the persistent object
trans[OUT] void* pointer to the empty transient object
key[IN] SG key of object being read.
log[IN] output message stream

Reimplemented from ITPCnvBase.

Definition at line 420 of file TPConverter.h.

424 {
425 persToTransWithKey (reinterpret_cast<const PERS*> (pers),
426 reinterpret_cast<TRANS*> (trans),
427 key,
428 log);
429 }
virtual void persToTransWithKey(const PERS *persObj, TRANS *transObj, const std::string &, MsgStream &log)
Convert persistent representation to transient one.

◆ pstoreToTrans()

template<class TRANS_BASE, class TRANS, class PERS>
virtual void TPAbstractPolyCnvBase< TRANS_BASE, TRANS, PERS >::pstoreToTrans ( unsigned index,
TRANS_BASE * trans,
MsgStream & log )
inlinevirtualinherited

Convert persistent representation stored in the storage vector of the top-level object to transient.

Internal.

Parameters
index[IN] index of the persistent representation in the storage vector
trans[IN] empty transient object
log[IN] output message stream

Implements ITPConverterFor< TRANS_BASE >.

Reimplemented in TPCnvBase< TRANS, TPIntegerVector_p1 >, TPCnvBase< TRANS, TPIntegerVector_p2 >, TPConverterBase< TRANS, PERS >, TPConverterBase< DataVector< eflowObject >, std::vector< eflowObject_p1 > >, TPConverterBase< DataVector< eflowObject >, std::vector< eflowObject_p2 > >, TPConverterBase< DataVector< eflowObject >, std::vector< eflowObject_p3 > >, TPConverterBase< DataVector< eflowObject >, std::vector< eflowObject_p4 > >, TPConverterBase< DataVector< eflowObject >, std::vector< eflowObject_p5 > >, TPConverterBase< std::vector< Analysis::TauPi0Candidate * >, std::vector< TPObjRef > >, TPConverterBase< std::vector< Analysis::TauPi0Cluster * >, std::vector< TPObjRef > >, TPConverterBase< std::vector< Analysis::TauShot * >, std::vector< TPObjRef > >, TPConverterBase< std::vector< TrigConfAlg >, std::vector< TrigConfAlg_p1 > >, TPConverterBase< std::vector< TrigConfChain >, std::vector< TrigConfChain_p1 > >, TPConverterBase< std::vector< TrigConfSeq >, std::vector< TrigConfSeq_p1 > >, TPConverterBase< std::vector< TrigConfSig >, std::vector< TrigConfSig_p1 > >, TPConverterBase< std::vector< TrigMonAlg >, std::vector< TrigMonAlg_p1 > >, TPConverterBase< std::vector< TrigMonROB >, std::vector< TrigMonROB_p1 > >, TPConverterBase< std::vector< TrigMonROBData >, std::vector< TrigMonROBData_p1 > >, TPConverterBase< std::vector< TrigMonRoi >, std::vector< TrigMonRoi_p1 > >, TPConverterBase< std::vector< TrigMonSeq >, std::vector< TrigMonSeq_p1 > >, TPConverterBase< std::vector< TrigMonTE >, std::vector< TrigMonTE_p1 > >, and TPConverterBase< TileHitVector, TileHitVector_p1 >.

Definition at line 494 of file TPConverter.h.

494 {
496 TRANS* trans_der = dynamic_cast<TRANS*>(trans);
497 if (!trans_der) std::abort();
498 this->persToTrans( &(*m_pStorage)[index], trans_der, log );
499 }
std::vector< PERS > * m_pStorage
the address of the storage vector for persistent representations

◆ reservePStorage()

template<class TRANS_BASE, class TRANS, class PERS>
virtual void TPAbstractPolyCnvBase< TRANS_BASE, TRANS, PERS >::reservePStorage ( size_t size)
inlinevirtualinherited

Reserve 'size' elements for persistent storage.

Implements ITPConverter.

Definition at line 573 of file TPConverter.h.

573 {
574 m_pStorage->reserve( size );
575 }

◆ setPStorage()

template<class TRANS_BASE, class TRANS, class PERS>
void TPAbstractPolyCnvBase< TRANS_BASE, TRANS, PERS >::setPStorage ( std::vector< PERS > * storage)
inlineinherited

Tell this converter which storage vector it should use to store or retrieve persistent representations.

Parameters
storage[IN] the address of the storage vector

Definition at line 551 of file TPConverter.h.

551 {
553 m_curRecLevel = 0;
554 }
int m_curRecLevel
count recursive invocations, to detect recursion

◆ setReadingFlag()

void ITPConverterFor< TRANS_BASE >::setReadingFlag ( )
inlineinherited

Definition at line 234 of file TPConverter.h.

234{ m_wasUsedForReading = true; }

◆ setRecursive()

template<class TRANS_BASE, class TRANS, class PERS>
void TPAbstractPolyCnvBase< TRANS_BASE, TRANS, PERS >::setRecursive ( bool flag = true)
inlineinherited

Tell the converter if it should work in recursive mode slower but it can safely handle recursion.

Definition at line 559 of file TPConverter.h.

559 {
561 }
bool m_recursive
if true, work in recursion-safe way (slower)

◆ setRuntimeTopConverter()

virtual void ITPConverterFor< TRANS_BASE >::setRuntimeTopConverter ( TopLevelTPCnvBase * topConverter)
inlinevirtualinherited

Set runtime top-level converter - usually it is the owning TL converter, but in case of extended objects it will be the TL converter of the extended object.

Parameters
topConverter[IN] runtime top-level converter for this converter

Implements ITPConverter.

Definition at line 215 of file TPConverter.h.

215 {
218 }
virtual void initPrivateConverters(TopLevelTPCnvBase *)
virtual TopLevelTPCnvBase * topConverter()

◆ setTopConverter()

virtual void ITPConverterFor< TRANS_BASE >::setTopConverter ( TopLevelTPCnvBase * topConverter,
const TPObjRef::typeID_t & TPtypeID )
inlinevirtualinherited

Set which top-level converter owns this elemental converter, and what TPtypeID was assigned to the persistent objects it produces.

Parameters
topConverter[IN] the top-level converter owning this converter
TPtypeID[IN] TP type id for persistent objects (used in TP refs)

Implements ITPConverter.

Definition at line 221 of file TPConverter.h.

◆ topConverter() [1/2]

virtual const TopLevelTPCnvBase * ITPConverter::topConverter ( ) const
inlinevirtualinherited

Reimplemented in ITPConverterFor< TRANS >, and ITPConverterFor< Trk::SurfaceBounds >.

Definition at line 58 of file TPTools/TPTools/ITPConverter.h.

58{ return 0; }

◆ topConverter() [2/2]

virtual TopLevelTPCnvBase * ITPConverterFor< TRANS_BASE >::topConverter ( )
inlinevirtualinherited

return the top-level converter for this elemental TP converter

Returns
TopLevelTPCnvBas

Reimplemented from ITPConverter.

Definition at line 191 of file TPConverter.h.

191 {
192 return m_topConverter;
193 }

◆ toPersistent()

TPObjRef ITPConverterFor< TRANS_BASE >::toPersistent ( CNV ** cnv,
const typename CNV::TransBase_t * transObj,
MsgStream & log ) const
inlineinherited

Persistify an object and store the persistent represenation in the storage vector of the top-level persistent object.

The correct converter is located using the actual object type.

Parameters
cnv[IN/OUT] pointer to the converter, usually 0 at the start. Once the right converter is found, this pointer will be set so the search is done only once
transObj[IN] transient object
log[IN] output message stream
Returns
TPObjRef TP reference to the persistent representation stored in the storage vector of the top-level persistent object

Definition at line 119 of file TPConverter.h.

119 {
120 if( !transObj ) return TPObjRef();
121 CNV *temp_cnv_p = 0;
122 if( !cnv ) cnv = &temp_cnv_p;
123 if( !*cnv || (*cnv)->wasUsedForReading() ) {
124 // don't trust the converter if it was used for reading, find again
125 *cnv = converterForType( *cnv, typeid(*transObj), log );
126 if( !*cnv ) return TPObjRef();
127 (*cnv)->clearReadingFlag();
128 }
129 return (**cnv).virt_toPersistent(transObj, log);
130 }
virtual TPObjRef virt_toPersistent(const TransBase_t *trans, MsgStream &log)=0
Internal interface method that is used to invoke the real conversion method (toPersistent_impl) in th...

◆ toPersistentWithKey_impl()

template<class TRANS_BASE, class TRANS, class PERS>
TPObjRef TPAbstractPolyCnvBase< TRANS_BASE, TRANS, PERS >::toPersistentWithKey_impl ( const TRANS * trans,
const std::string & key,
MsgStream & log )
inherited

Convert transient object to persistent representation.

Stores the result in the storage vector of the top-level object and returns a TP Ref to it.

Parameters
trans[IN] transient object
key[IN] SG key of object being converted
log[IN] output message stream
Returns
TP reference to the persistent representation

◆ transBaseTInfo()

const std::type_info & ITPConverterFor< TRANS_BASE >::transBaseTInfo ( ) const
inlinevirtualinherited

return C++ type id of the common base transient type for all converters for a group of polymorphic types

Returns
std::type_info& this method is not overwritten in the subclasses like transientTInfo()

Implements ITPConverter.

Definition at line 205 of file TPConverter.h.

205{ return typeid(TRANS); }

◆ transientTInfo()

template<class TRANS_BASE, class TRANS, class PERS>
virtual const std::type_info & TPAbstractPolyCnvBase< TRANS_BASE, TRANS, PERS >::transientTInfo ( ) const
inlinevirtualinherited

return C++ type id of the transient class this converter is for

Returns
std::type_info&

Reimplemented from ITPConverterFor< TRANS_BASE >.

Reimplemented in BoundSaggedLineSurfaceCnv_p2, and SaggedLineSurfaceCnv_p2.

Definition at line 479 of file TPConverter.h.

479{ return typeid(TRANS); }

◆ transSurface()

const Trk::Surface * TrackParametersCnv_p2::transSurface ( const Trk ::TrackParameters_p2 * persObj,
Trk::SurfaceType type,
MsgStream & log )
private

Definition at line 110 of file TrackParametersCnv_p2.cxx.

113{
114 const Trk::Surface* surface = nullptr;
115 // check if surface had transform.
116 if (!persObj->m_transform.empty()){
117 auto transform = std::make_unique<Amg::Transform3D>();
118 EigenHelpers::vectorToEigenTransform3D( persObj->m_transform, *transform.get());
119 // recreate free surface
120 if (type==Trk::SurfaceType::Perigee) {
121 surface = new Trk::PerigeeSurface(*transform);
122 } else if (type==Trk::SurfaceType::Plane){
123 surface = new Trk::PlaneSurface(*transform);
124 } else if (type==Trk::SurfaceType::Line){
125 surface = new Trk::StraightLineSurface(*transform);
126 }
127 if (!surface){
128 log << MSG::WARNING << "Free surface of type=" << static_cast<int>(type)
129 << " isn't currently supported in TrackParametersCnv_p2" << endmsg;
130 return nullptr;
131 }
132 } else {
133 // Surface must have belonged to a ReadoutElement, or some part of the geometry or have a nominal/default perigee surface.
134 if (type!=Trk::SurfaceType::Perigee) {
135 Identifier id=Identifier32(persObj->m_associatedDetElementId);
136 if (!id.get_compact() && persObj->m_associatedDetElementId != 0)
137 id = Identifier(persObj->m_associatedDetElementId);
138 if (m_nosurf)surface = nullptr;
139 else {
140 const Trk::Surface* detSurf = m_eventCnvTool->getSurface(id);
141 if (!detSurf){
142 log << MSG::WARNING << "Surface of type=" << static_cast<int>(type)
143 << " was not found by the eventCnvTool." << endmsg;
144 }
145 surface = detSurf;
146 }
147 } else {
148 surface = new Trk::PerigeeSurface(); // FIXME! How do we support nominal Perigee Surfaces now?
149 }
150 }
151 return surface;
152}
static void vectorToEigenTransform3D(const T &vec, Amg::Transform3D &trans)
Convert std :: vector<double> to Amg::Transform3D.
Amg::Vector3D transform(Amg::Vector3D &v, Amg::Transform3D &tr)
Transform a point from a Trasformation3D.

◆ transToPers() [1/2]

template<class TRANS_BASE, class TRANS, class PERS>
virtual void TPAbstractPolyCnvBase< TRANS_BASE, TRANS, PERS >::transToPers ( const TRANS * transObj,
PERS * persObj,
MsgStream & log )
pure virtualinherited

Convert transient representation to persistent one.

Copies data members from transient object to an existing persistent one. Needs to be implemented by the developer on the actual converter.

Parameters
transObj[IN] transient object
persObj[IN] persistent object
log[IN] output message stream

Implemented in AFP_SiDigiCnv_p1, AFP_SIDLocRecoEvCollectionCnv_p1, AFP_SIDLocRecoEventCnv_p1, AFP_SIDSimHitCnv_p1, AFP_TDDigiCnv_p1, AFP_TDLocRecoEvCollectionCnv_p1, AFP_TDLocRecoEventCnv_p1, AFP_TDSimHitCnv_p1, ALFA_CLinkEventCnv_p1, ALFA_DigitCnv_p1, ALFA_DigitCollectionCnv_p1, ALFA_GloRecEvCollectionCnv_p1, ALFA_GloRecEventCnv_p1, ALFA_HitCnv_p1, ALFA_LocRecCorrEvCollectionCnv_p1, ALFA_LocRecCorrEventCnv_p1, ALFA_LocRecCorrODEvCollectionCnv_p1, ALFA_LocRecCorrODEventCnv_p1, ALFA_LocRecEvCollectionCnv_p1, ALFA_LocRecEventCnv_p1, ALFA_LocRecODEvCollectionCnv_p1, ALFA_LocRecODEventCnv_p1, ALFA_ODDigitCnv_p1, ALFA_ODDigitCollectionCnv_p1, ALFA_ODHitCnv_p1, ALFA_RawDataCnv_charge_p1, ALFA_RawDataCnv_p1, AthenaBarCodeCnv_p1, CaloClusterContainerCnv_p1, CaloClusterContainerCnv_p2, CaloClusterContainerCnv_p3, CaloClusterContainerCnv_p4, CaloClusterContainerCnv_p5, CaloClusterContainerCnv_p6, CaloClusterContainerCnv_p7, CaloEnergyCnv_p1, CaloShowerContainerCnv_p1, CaloShowerContainerCnv_p2, CaloTopoTowerContainerCnv_p1, CaloTowerContainerCnv_p1, ChamberT0sCnv_p1, CompositeParticleCnv_p1, CompositeParticleContainerCnv_p1, DataLinkCnv_p1< DLINK_TYPE >, DataLinkCnv_p1< DataLink< ALFA_DigitCollection > >, DataLinkCnv_p1< DataLink< ALFA_LocRecCorrEvCollection > >, DataLinkCnv_p1< DataLink< ALFA_LocRecCorrODEvCollection > >, DataLinkCnv_p1< DataLink< ALFA_LocRecEvCollection > >, DataLinkCnv_p1< DataLink< ALFA_LocRecODEvCollection > >, DataLinkCnv_p1< DataLink< ALFA_ODDigitCollection > >, DataLinkCnv_p1< DataLink< ALFA_RawDataContainer > >, DataLinkCnv_p1< DataLink< CaloCellContainer > >, DataLinkCnv_p1< DataLink< CaloClusterContainer > >, DataLinkCnv_p1< DataLink< CaloTowerContainer > >, DataLinkCnv_p1< DataLink< INav4MomAssocs > >, DataLinkCnv_p1< DataLink< LArSamples::Container > >, DataLinkCnv_p1< DataLink< LArSamples::ParticleBaseContainer > >, DataLinkCnv_p2< DLINK_TYPE >, DataLinkCnv_p2< DataLink< CaloCellContainer > >, DataLinkCnv_p2< DataLink< INav4MomAssocs > >, DataLinkCnv_p2< DataLink< INav4MomToTrackParticleAssocs > >, DataLinkCnv_p2< DataLink< TrackParticleAssocs > >, DepositInCaloCnv_p1, DepositInCaloCnv_p2, DetailedTrackTruthCnv_p1, DetailedTrackTruthCnv_p2, DetailedTrackTruthCnv_p3, DetailedTrackTruthCnv_p4, DMTest::CLinksAODCnv_p1, ElementLinkCnv_p1< LINK_TYPE >, ElementLinkCnv_p1< ElementLink< Analysis::MuonContainer > >, ElementLinkCnv_p1< ElementLink< AthExParticles > >, ElementLinkCnv_p1< ElementLink< CaloCellLinkContainer > >, ElementLinkCnv_p1< ElementLink< CaloClusterContainer > >, ElementLinkCnv_p1< ElementLink< CaloShowerContainer > >, ElementLinkCnv_p1< ElementLink< ElectronContainer > >, ElementLinkCnv_p1< ElementLink< InDet::PixelClusterContainer > >, ElementLinkCnv_p1< ElementLink< InDet::SCT_ClusterContainer > >, ElementLinkCnv_p1< ElementLink< InDet::TRT_DriftCircleContainer > >, ElementLinkCnv_p1< ElementLink< McEventCollection > >, ElementLinkCnv_p1< ElementLink< Muon::CscPrepDataContainer > >, ElementLinkCnv_p1< ElementLink< Muon::MdtPrepDataContainer > >, ElementLinkCnv_p1< ElementLink< Muon::RpcPrepDataContainer > >, ElementLinkCnv_p1< ElementLink< Muon::TgcPrepDataContainer > >, ElementLinkCnv_p1< ElementLink< MuonCaloEnergyContainer > >, ElementLinkCnv_p1< ElementLink< MuonFeatureContainer > >, ElementLinkCnv_p1< ElementLink< PhotonContainer > >, ElementLinkCnv_p1< ElementLink< Rec::TrackParticleContainer > >, ElementLinkCnv_p1< ElementLink< RingerRingsContainer > >, ElementLinkCnv_p1< ElementLink< TileMuFeatureContainer > >, ElementLinkCnv_p1< ElementLink< TrigEFBphysContainer > >, ElementLinkCnv_p1< ElementLink< TrigEMClusterContainer > >, ElementLinkCnv_p1< ElementLink< TrigInDetTrackCollection > >, ElementLinkCnv_p1< ElementLink< TrigL2BphysContainer > >, ElementLinkCnv_p1< ElementLink< TrigTauClusterDetailsContainer > >, ElementLinkCnv_p1< ElementLink< TruthEtIsolationsContainer > >, ElementLinkCnv_p1< ElementLink< VxContainer > >, ElementLinkCnv_p3< LINK_TYPE >, ElementLinkCnv_p3< ElementLink< CaloCellContainer > >, ElementLinkCnv_p3< ElementLink< CaloCellLinkContainer > >, ElementLinkCnv_p3< ElementLink< CaloClusterContainer > >, ElementLinkCnv_p3< ElementLink< CaloRingsContainer > >, ElementLinkCnv_p3< ElementLink< CaloShowerContainer > >, ElementLinkCnv_p3< ElementLink< DataVector< C_v1 > > >, ElementLinkCnv_p3< ElementLink< DataVector< TrackParticleBase > > >, ElementLinkCnv_p3< ElementLink< DataVector< Trk::Track > > >, ElementLinkCnv_p3< ElementLink< ExampleHitContainer > >, ElementLinkCnv_p3< ElementLink< INavigable4MomentumCollection > >, ElementLinkCnv_p3< ElementLink< McEventCollection > >, ElementLinkCnv_p3< ElementLink< Muon::CscPrepDataContainer > >, ElementLinkCnv_p3< ElementLink< Muon::MdtPrepDataContainer > >, ElementLinkCnv_p3< ElementLink< Muon::MMPrepDataContainer > >, ElementLinkCnv_p3< ElementLink< Muon::RpcPrepDataContainer > >, ElementLinkCnv_p3< ElementLink< Muon::sTgcPrepDataContainer > >, ElementLinkCnv_p3< ElementLink< Muon::TgcPrepDataContainer > >, ElementLinkCnv_p3< ElementLink< MuonCaloEnergyContainer > >, ElementLinkCnv_p3< ElementLink< MuonFeatureContainer > >, ElementLinkCnv_p3< ElementLink< Rec::TrackParticleContainer > >, ElementLinkCnv_p3< ElementLink< RingerRingsContainer > >, ElementLinkCnv_p3< ElementLink< TileMuFeatureContainer > >, ElementLinkCnv_p3< ElementLink< TrigEFBphysContainer > >, ElementLinkCnv_p3< ElementLink< TrigEMClusterContainer > >, ElementLinkCnv_p3< ElementLink< TrigInDetTrackCollection > >, ElementLinkCnv_p3< ElementLink< TrigL2BphysContainer > >, ElementLinkCnv_p3< ElementLink< TrigMuonEFInfoContainer > >, ElementLinkCnv_p3< ElementLink< TrigTauClusterDetailsContainer > >, ElementLinkCnv_p3< ElementLink< TruthEtIsolationsContainer > >, ElementLinkCnv_p3< ElementLink< VxContainer > >, ElementLinkCnv_p3< MasterLink_t >, ElementLinkCnv_p3< typename LinkVect_t::value_type >, ElementLinkVectorCnv_p1< LINK_VECT >, ElementLinkVectorCnv_p1< ElementLinkVector< AthExIParticles > >, ElementLinkVectorCnv_p1< ElementLinkVector< CaloClusterContainer > >, ElementLinkVectorCnv_p1< ElementLinkVector< DataVector< C_v1 > > >, ElementLinkVectorCnv_p1< ElementLinkVector< egDetailContainer > >, ElementLinkVectorCnv_p1< ElementLinkVector< ExampleHitContainer > >, ElementLinkVectorCnv_p1< ElementLinkVector< Rec::TrackParticleContainer > >, ElementLinkVectorCnv_p1< ElementLinkVector< Trk::SegmentCollection > >, ElementLinkVectorCnv_p1< ElementLinkVector< typename NAV::container_type > >, ElementLinkVectorCnv_p1< ElementLinkVector< typename Navigable< Analysis::MuonContainer, double >::container_type > >, ElementLinkVectorCnv_p1< ElementLinkVector< typename Navigable< CaloCellContainer, double >::container_type > >, ElementLinkVectorCnv_p1< ElementLinkVector< typename Navigable< ElectronContainer, double >::container_type > >, ElementLinkVectorCnv_p1< ElementLinkVector< typename Navigable< PhotonContainer, double >::container_type > >, ElementLinkVectorCnv_p1< ElementLinkVector< typename Navigable< Rec::TrackParticleContainer, double >::container_type > >, ElementLinkVectorCnv_p1< ElementLinkVector< VxContainer > >, EnergyLossCnv_p1, EventIDCnv_p1, EventInfoCnv_p1, EventInfoCnv_p2, EventInfoCnv_p3, EventInfoCnv_p4, EventStreamInfoCnv_p1, EventStreamInfoCnv_p2, EventStreamInfoCnv_p3, EventTypeCnv_p1, EventTypeCnv_p3, FitQualityCnv_p1, HepLorentzVectorCnv_p1, HepMcParticleLinkCnv_p1, HepMcParticleLinkCnv_p2, HepMcParticleLinkCnv_p3, INav4MomAssocsCnv_p1, INav4MomAssocsCnv_p2, INav4MomAssocsCnv_p3, INav4MomLinkContainerCnv_p1, INav4MomToTrackParticleAssocsCnv_p1, IParticleLinkContainerCnv_p1, JetAssociationBaseCnv_p1, JetCnv_p1, JetCnv_p2, JetCnv_p3, JetCnv_p4, JetCollectionCnv_p1, JetCollectionCnv_p2, JetCollectionCnv_p3, JetCollectionCnv_p4, JetCollectionCnv_p5, JetCollectionCnv_p6, JetKeyDescriptorCnv_p1, JetSamplingCnv_p1, JetSamplingCnv_p2, JetSamplingCollectionCnv_p1, JetSamplingCollectionCnv_p2, LArAutoCorrSubsetCnv_p1, LArCaliWaveSubsetCnv_p1, LArCaliWaveSubsetCnv_p2, LArCaliWaveSubsetCnv_p3, LArDigitContainerCnv_p1, LArDigitContainerCnv_p2, LArDigitContainerCnv_p3, LArDSPThresholdsSubsetCnv_p1, LArFebErrorSummaryCnv_p1, LArLATOMEHeaderContainerCnv_p1, LArMphysOverMcalSubsetCnv_p1, LArNoisyROSummaryCnv_p1, LArNoisyROSummaryCnv_p2, LArNoisyROSummaryCnv_p3, LArNoisyROSummaryCnv_p4, LArNoisyROSummaryCnv_p5, LArNoisyROSummaryCnv_p6, LArOFCBinSubsetCnv_p1, LArOFCSubsetCnv_p1, LArPedestalMCCnv_p1, LArPedestalSubsetCnv_p1, LArPedestalSubsetCnv_p2, LArPhysWaveSubsetCnv_p1, LArRampSubsetCnv_p1, LArRawChannelCnv_p1, LArRawChannelCnv_p2, LArRawChannelContainerCnv_p1, LArRawChannelContainerCnv_p2, LArRawChannelContainerCnv_p3, LArRawChannelContainerCnv_p4, LArRawSCContainerCnv_p1, LArSCDigitContainerCnv_p1, LArShapeSubsetCnv_p1, LArShapeSubsetCnv_p2, LArSingleFloatSubsetCnv_p1, LArTTL1Cnv_p1, LUCID_DigitCnv_p1, LUCID_DigitCnv_p2, LUCID_DigitContainerCnv_p1, LUCID_DigitContainerCnv_p2, LUCID_RawDataCnv_p1, LUCID_RawDataContainerCnv_p1, LVL1_ROICnv_p1, LVL1CTP::Lvl1ResultCnv_p1, LVL1CTP::Lvl1ResultCnv_p2, MergedEventInfoCnv_p1, MergedEventInfoCnv_p2, MissingEtCaloCnv_p1, MissingEtCaloCnv_p2, MissingEtCaloCnv_p3, MissingETCnv_p1, MissingETCnv_p2, MissingETCnv_p3, MissingEtRegionsCnv_p1, MissingEtRegionsCnv_p2, MissingEtRegionsCnv_p3, MissingEtTruthCnv_p1, MissingEtTruthCnv_p2, MissingEtTruthCnv_p3, MuonCnv_p1, MuonCnv_p2, MuonCnv_p3, MuonCnv_p4, MuonCnv_p5, MuonCnv_p6, MuonContainerCnv_p1, MuonContainerCnv_p2, MuonSpShowerCnv_p1, MuonSpShowerContainerCnv_p1, NavigableCnv_p1< NAV, RPAR >, NavigableCnv_p1< NAV, NavigationDefaults::DefaultWeight >, NavigableCnv_p1< Navigable< Analysis::MuonContainer, double >, float >, NavigableCnv_p1< Navigable< CaloCellContainer, double >, float >, NavigableCnv_p1< Navigable< ElectronContainer, double >, float >, NavigableCnv_p1< Navigable< INavigable4MomentumCollection, double > >, NavigableCnv_p1< Navigable< PhotonContainer, double >, float >, NavigableCnv_p1< Navigable< Rec::TrackParticleContainer, double >, float >, NavigableCnv_p2< NAV, RPAR >, NavigableCnv_p2< MissingETComposition, MissingETComposition_p1::Weight_p1 >, NavigableCnv_p2< MissingETComposition, Weight_p1 >, NavigableCnv_p2< NAV, NavigationDefaults::DefaultWeight >, NavigableCnv_p2< Navigable< ExampleHitContainer > >, NavigableCnv_p2< Navigable< ExampleHitContainer, double > >, NavigableCnv_p2< Navigable< INavigable4MomentumCollection, double >, float >, NeutrinoCnv_p1, NeutrinoCnv_p2, P4EEtaPhiMCnv_p1, P4EEtaPhiMCnv_p2, P4ImplEEtaPhiMCnv_p1, P4ImplEEtaPhiMCnv_p2, P4ImplIPtCotThPhiMCnv_p1, P4ImplPtEtaPhiMCnv_p1, P4ImplPtEtaPhiMCnv_p2, P4ImplPxPyPzECnv_p1, P4IPtCotThPhiMCnv_p1, P4PtEtaPhiMCnv_p1, P4PtEtaPhiMCnv_p2, P4PxPyPzECnv_p1, ParticleBaseCnv_p1, ParticleBaseCnv_p2, ParticleJetCnv_p1, ParticleLinksCnv_p1< Container >, ParticleLinksCnv_p1< ParticleBaseContainer >, ParticleShallowCloneCnv_p1, ParticleShallowCloneContainerCnv_p1, PileUpEventInfoCnv_p1, PileUpEventInfoCnv_p2, PileUpEventInfoCnv_p3, PileUpEventInfoCnv_p4, PileUpEventInfoCnv_p5, RingerRingsCnv_p1, RingerRingsCnv_p2, RpcByteStreamErrorContainerCnv_p1, RpcSectorLogicContainerCnv_p1, SelectedParticlesCnv_p1, SubDetHitStatisticsCnv_p0, T_AthenaHitsVectorCnv< TRANS, PERS, CONV >, T_AtlasHitsVectorCnv< TRANS, PERS, CONV >, T_AtlasHitsVectorCnv< TileHitVector, TileHitVector_p1, TileHitCnv_p1 >, TBADCRawContCnv_p1, TBBPCContCnv_p1, TBEventInfoCnv_p1, TBLArDigitContainerCnv_p1, TBMWPCContCnv_p1, TBPhaseCnv_p1, TBScintillatorContCnv_p1, TBTailCatcherCnv_p1, TBTDCCnv_p1, TBTDCRawContCnv_p1, TBTrackCnv_p1, TBTrackInfoCnv_p1, TBTriggerPatternUnitCnv_p1, TileBeamElemCnv_p1, TileCosmicMuonCnv_p1, TileCosmicMuonCnv_p2, TileDigitsCnv_p1, TileDigitsCnv_p2, TileDigitsCnv_p3, TileHitCnv_p1, TileL2Cnv_p1, TileL2Cnv_p2, TileMuCnv_p1, TileMuonReceiverObjCnv_p1, TileRawChannelCnv_p1, TileTTL1CellCnv_p1, TileTTL1Cnv_p1, TPAbstractPolyCnvConstBase< TRANS_BASE, TRANS, PERS >, TPCnvIDCont< TRANS, PERS, CONV >, TPCnvIDContFromIdentifier< TRANS, PERS, CONV >, TPCnvStdVector< TRANS, PERS, CONV >, TPCnvVector< TRANS, PERS, CONV >, TPCnvVector< DataVector< eflowObject >, std::vector< eflowObject_p1 >, eflowObjectCnv_p1 >, TPCnvVector< DataVector< eflowObject >, std::vector< eflowObject_p2 >, eflowObjectCnv_p2 >, TPCnvVector< DataVector< eflowObject >, std::vector< eflowObject_p3 >, eflowObjectCnv_p3 >, TPCnvVector< DataVector< eflowObject >, std::vector< eflowObject_p4 >, eflowObjectCnv_p4 >, TPCnvVector< DataVector< eflowObject >, std::vector< eflowObject_p5 >, eflowObjectCnv_p5 >, TPConverterConstBase< TRANS, PERS >, TPPolyVectorCnv< TRANS, PERS, CONV >, TPPolyVectorCnv< TRANS, TPIntegerVector_p2, CONV >, TPPtrVectorCnv< TRANS, PERS, CONV >, TPPtrVectorCnv< std::vector< Analysis::TauPi0Candidate * >, std::vector< TPObjRef >, ITPConverterFor< Analysis::TauPi0Candidate > >, TPPtrVectorCnv< std::vector< Analysis::TauPi0Cluster * >, std::vector< TPObjRef >, ITPConverterFor< Analysis::TauPi0Cluster > >, TPPtrVectorCnv< std::vector< Analysis::TauShot * >, std::vector< TPObjRef >, ITPConverterFor< Analysis::TauShot > >, TPPtrVectorCnv< TRANS, TPIntegerVector_p2, CONV >, TPValVectorCnv< TRANS, PERS, CONV >, TrackParticleAssocsCnv_p1, TrackParticleTruthCollectionCnv_p1, TrackParticleTruthCollectionCnv_p2, TrackParticleTruthCollectionCnv_p3, TrackRecordCnv_p1, TrackRecordCnv_p2, TrigCaloClusterCnv_p1, TrigCaloClusterCnv_p2, TrigCaloClusterCnv_p3, TrigConfAlgCnv_p1, TrigConfChainCnv_p1, TrigConfSeqCnv_p1, TrigConfSigCnv_p1, TrigDec::TrigDecisionCnv_p2, TrigDec::TrigDecisionCnv_p3, TrigDec::TrigDecisionCnv_p4, TrigDec::TrigDecisionCnv_p5, TrigEMClusterCnv_p3, TrigEMClusterCnv_p4, TriggerInfoCnv_p1, TriggerInfoCnv_p2, TrigMonAlgCnv_p1, TrigMonConfigCnv_p1, TrigMonEventCnv_p1, TrigMonROBCnv_p1, TrigMonROBDataCnv_p1, TrigMonROBDataCnv_p2, TrigMonRoiCnv_p1, TrigMonSeqCnv_p1, TrigMonTECnv_p1, TrigRNNOutputCnv_p2, TrigT2JetCnv_p1, TrigT2JetCnv_p2, TrigT2JetCnv_p3, TrigT2MbtsBitsCnv_p1, TrigT2MbtsBitsCnv_p2, TrigT2MbtsBitsCnv_p3, TrigT2ZdcSignalsCnv_p1, TrigTauClusterCnv_p1, TrigTauClusterCnv_p2, TrigTauClusterCnv_p3, TrigTauClusterCnv_p4, TrigTauClusterCnv_p5, TrigTauClusterDetailsCnv_p1, TrigTauClusterDetailsCnv_p2, TruthEtIsolationsCnv_p1, TruthParticleContainerCnv_p5, TruthParticleContainerCnv_p6, TruthTrajectoryCnv_p1, TruthTrajectoryCnv_p2, TruthTrajectoryCnv_p3, xAODBTaggingAuxContainerCnv_v1, xAODCaloClusterAuxContainerCnv_v1, xAODElectronAuxContainerCnv_v1, xAODElectronAuxContainerCnv_v2, xAODEmTauRoIAuxContainerCnv_v1, xAODEmTauRoIContainerCnv_v1, xAODEnergySumRoIAuxInfoCnv_v1, xAODEnergySumRoICnv_v1, xAODEventAuxInfoCnv_v1, xAODEventAuxInfoCnv_v2, xAODJetRoIAuxContainerCnv_v1, xAODJetRoIContainerCnv_v1, xAODJetTrigAuxContainerCnv_v1, xAODL2StandAloneMuonAuxContainerCnv_v1, xAODL2StandAloneMuonContainerCnv_v1, xAODMissingETAuxAssociationMapCnv_v1, xAODMuonAuxContainerCnv_v1, xAODMuonAuxContainerCnv_v2, xAODMuonAuxContainerCnv_v3, xAODMuonAuxContainerCnv_v4, xAODPhotonAuxContainerCnv_v1, xAODPhotonAuxContainerCnv_v2, xAODRODHeaderAuxContainerCnv_v1, xAODRODHeaderContainerCnv_v1, xAODTauJetAuxContainerCnv_v1, xAODTauJetContainerCnv_v1, xAODTauJetContainerCnv_v2, xAODTrackCaloClusterAuxContainerCnv_v1, xAODTrackParticleAuxContainerCnv_v1, xAODTrackParticleAuxContainerCnv_v2, xAODTrackParticleAuxContainerCnv_v3, xAODTrackParticleAuxContainerCnv_v4, xAODTrigCompositeAuxContainerCnv_v1, xAODTrigRingerRingsAuxContainerCnv_v1, xAODTrigRingerRingsContainerCnv_v1, xAODTrigRNNOutputAuxContainerCnv_v1, xAODTrigRNNOutputContainerCnv_v1, xAODTruthParticleAuxContainerCnv_v1, xAODTruthVertexAuxContainerCnv_v1, ZDC_SimFiberHit_CollectionCnv_p1, ZDC_SimFiberHitCnv_p1, ZdcDigitsCnv_p1, ZdcDigitsCollectionCnv_p1, ZdcRawChannelCnv_p1, and ZdcRawChannelCollectionCnv_p1.

◆ transToPers() [2/2]

void TrackParametersCnv_p2::transToPers ( const Trk::TrackParameters * transObj,
Trk::TrackParameters_p2 * persObj,
MsgStream & log )

Definition at line 154 of file TrackParametersCnv_p2.cxx.

156 {
157
158 bool isCurvilinear = (transObj->type() == Trk::Curvilinear);
159 bool deleteAtEnd = false;
160 if (isCurvilinear){
161 convertTransCurvilinearToPers(transObj,persObj);
162 // Not bothering with Surface here - not relevant for curvilinear
163 } else {
164 // normal track parameters - check if the type is 'permitted' to be written.
165 if (isPersistifiableType(transObj)) {
166 unsigned int nRows = transObj->parameters().rows();
167 persObj->m_parameters.resize( nRows);
168 for( unsigned int i = 0; i < nRows; i++ ){
169 persObj->m_parameters[i] = transObj->parameters()[i];
170 }
171 fillPersSurface(transObj, persObj, log);
172 } else { // if not, convert to curvilinear
173 std::optional<AmgSymMatrix(5)> newcov = std::nullopt;
174 if (transObj->covariance()) {
175 newcov = *(transObj->covariance());
176 }
177 const Trk::CurvilinearParameters* curvilinear =
178 new Trk::CurvilinearParameters(transObj->position(),
179 transObj->momentum(),
180 transObj->charge(), newcov);
181 transObj = curvilinear;
182 deleteAtEnd = true; // Because the curvilinear will leak otherwise
183 convertTransCurvilinearToPers(transObj, persObj);
184 }
185 }
186
187 // Errormatrix
188 if (transObj->covariance()){
189 Trk::ErrorMatrix pMat;
190 EigenHelpers::eigenMatrixToVector(pMat.values, *transObj->covariance(), "TrackParametersCnv_p2");
191 persObj->m_errorMatrix = toPersistent( &m_emConverter, &pMat, log );
192 }
193
194 if (deleteAtEnd) {
195 delete transObj;
196 }
197}
TPObjRef toPersistent(CNV **cnv, const typename CNV::TransBase_t *transObj, MsgStream &log) const
static void convertTransCurvilinearToPers(const Trk ::TrackParameters *transObj, Trk ::TrackParameters_p2 *persObj)
static void fillPersSurface(const Trk ::TrackParameters *transObj, Trk ::TrackParameters_p2 *persObj, MsgStream &log)
static bool isPersistifiableType(const Trk ::TrackParameters *transObj)
std::vector< float > values
const Amg::Vector3D & momentum() const
Access method for the momentum.
const Amg::Vector3D & position() const
Access method for the position.
double charge() const
Returns the charge.
virtual constexpr ParametersType type() const override=0
Return the ParametersType enum.
static void eigenMatrixToVector(VECTOR &vec, COVARIANCE &cov, const char *)
unsigned int constexpr nRows
Definition RPDUtils.h:24
CurvilinearParametersT< TrackParametersDim, Charged, PlaneSurface > CurvilinearParameters

◆ transToPersUntyped()

template<class TRANS_BASE, class TRANS, class PERS>
virtual void TPAbstractPolyCnvBase< TRANS_BASE, TRANS, PERS >::transToPersUntyped ( const void * trans,
void * pers,
MsgStream & log )
inlinevirtualinherited

Convert transient object representation to persistent.

Parameters
trans[IN] void* pointer to the transient object
pers[OUT] void* pointer to the empty persistent object
log[IN] output message stream

Implements ITPCnvBase.

Definition at line 410 of file TPConverter.h.

413 {
414 transToPers (reinterpret_cast<const TRANS*> (trans),
415 reinterpret_cast<PERS*> (pers),
416 log);
417 }
virtual void transToPers(const TRANS *transObj, PERS *persObj, MsgStream &log)=0
Convert transient representation to persistent one.

◆ transToPersWithKey()

template<class TRANS_BASE, class TRANS, class PERS>
virtual void TPAbstractPolyCnvBase< TRANS_BASE, TRANS, PERS >::transToPersWithKey ( const TRANS * transObj,
PERS * persObj,
const std::string & ,
MsgStream & log )
inlinevirtualinherited

Convert transient representation to persistent one.

Copies data members from transient object to an existing persistent one. Needs to be implemented by the developer on the actual converter.

Parameters
transObj[IN] transient object
persObj[IN] persistent object
key[IN] SG key of object being written.
log[IN] output message stream

Reimplemented in AthExParticlesCnv_p1, CaloCellContainerCnv_p1, CaloCellLinkContainerCnv_p1, CaloCellLinkContainerCnv_p2, CaloClusterCellLinkContainerCnv_p1, TPConverterWithKeyBase< TRANS, PERS >, and xAODTauJetAuxContainerCnv_v2.

Definition at line 392 of file TPConverter.h.

395 {
396 return transToPers (transObj, persObj, log);
397 }

◆ transToPersWithKeyUntyped()

template<class TRANS_BASE, class TRANS, class PERS>
virtual void TPAbstractPolyCnvBase< TRANS_BASE, TRANS, PERS >::transToPersWithKeyUntyped ( const void * trans,
void * pers,
const std::string & key,
MsgStream & log )
inlinevirtualinherited

Convert transient object representation to persistent.

Parameters
trans[IN] void* pointer to the transient object
pers[OUT] void* pointer to the empty persistent object
key[IN] SG key of object being written.
log[IN] output message stream

Reimplemented from ITPCnvBase.

Definition at line 432 of file TPConverter.h.

436 {
437 transToPersWithKey (reinterpret_cast<const TRANS*> (trans),
438 reinterpret_cast<PERS*> (pers),
439 key,
440 log);
441 }
virtual void transToPersWithKey(const TRANS *transObj, PERS *persObj, const std::string &, MsgStream &log)
Convert transient representation to persistent one.

◆ typeID()

virtual const TPObjRef::typeID_t & ITPConverterFor< TRANS_BASE >::typeID ( ) const
inlinevirtualinherited

Return TP typeID for persistent objects produced by this converter.

Returns
TPObjRef::typeID_t&

Implements ITPConverter.

Definition at line 208 of file TPConverter.h.

208{ return m_pStorageTID; }

◆ typeIDvalue()

unsigned ITPConverterFor< TRANS_BASE >::typeIDvalue ( ) const
inlineinherited

inlined non-virtual version to get the typeID value fast

Definition at line 211 of file TPConverter.h.

211{ return m_pStorageTIDvalue; }

◆ virt_createTransFromPStore()

virtual Trk::TrackParameters * TrackParametersCnv_p2::virt_createTransFromPStore ( unsigned ,
MsgStream &  )
inlinevirtual

This method implements a pure virtual base class method, but should never be called, as abstract type can not be instantiated.

If it is called, it is a TP converter design error

Reimplemented from TPAbstractPolyCnvBase< TRANS_BASE, TRANS, PERS >.

Definition at line 48 of file TrackParametersCnv_p2.h.

48 {
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 }
Trk::TrackParameters * createTransient(const Trk::TrackParameters_p2 *persObj, MsgStream &log)

◆ virt_createTransFromPStoreWithKey()

template<class TRANS_BASE, class TRANS, class PERS>
virtual TRANS * TPAbstractPolyCnvBase< TRANS_BASE, TRANS, PERS >::virt_createTransFromPStoreWithKey ( unsigned ,
const std::string & ,
MsgStream &  )
inlinevirtualinherited

This method implements a pure virtual base class method, but should never be called, as abstract type can not be instantiated.

If it is called, it is a TP converter design error

Implements ITPConverterFor< TRANS_BASE >.

Reimplemented in TPPolyCnvBase< TRANS_BASE, TRANS, PERS >, TPPolyCnvBase< DataVector< eflowObject >, DataVector< eflowObject >, std::vector< eflowObject_p1 > >, TPPolyCnvBase< DataVector< eflowObject >, DataVector< eflowObject >, std::vector< eflowObject_p2 > >, TPPolyCnvBase< DataVector< eflowObject >, DataVector< eflowObject >, std::vector< eflowObject_p3 > >, TPPolyCnvBase< DataVector< eflowObject >, DataVector< eflowObject >, std::vector< eflowObject_p4 > >, TPPolyCnvBase< DataVector< eflowObject >, DataVector< eflowObject >, std::vector< eflowObject_p5 > >, TPPolyCnvBase< std::vector< Analysis::TauPi0Candidate * >, std::vector< Analysis::TauPi0Candidate * >, std::vector< TPObjRef > >, TPPolyCnvBase< std::vector< Analysis::TauPi0Cluster * >, std::vector< Analysis::TauPi0Cluster * >, std::vector< TPObjRef > >, TPPolyCnvBase< std::vector< Analysis::TauShot * >, std::vector< Analysis::TauShot * >, std::vector< TPObjRef > >, TPPolyCnvBase< std::vector< TrigConfAlg >, std::vector< TrigConfAlg >, std::vector< TrigConfAlg_p1 > >, TPPolyCnvBase< std::vector< TrigConfChain >, std::vector< TrigConfChain >, std::vector< TrigConfChain_p1 > >, TPPolyCnvBase< std::vector< TrigConfSeq >, std::vector< TrigConfSeq >, std::vector< TrigConfSeq_p1 > >, TPPolyCnvBase< std::vector< TrigConfSig >, std::vector< TrigConfSig >, std::vector< TrigConfSig_p1 > >, TPPolyCnvBase< std::vector< TrigMonAlg >, std::vector< TrigMonAlg >, std::vector< TrigMonAlg_p1 > >, TPPolyCnvBase< std::vector< TrigMonROB >, std::vector< TrigMonROB >, std::vector< TrigMonROB_p1 > >, TPPolyCnvBase< std::vector< TrigMonROBData >, std::vector< TrigMonROBData >, std::vector< TrigMonROBData_p1 > >, TPPolyCnvBase< std::vector< TrigMonRoi >, std::vector< TrigMonRoi >, std::vector< TrigMonRoi_p1 > >, TPPolyCnvBase< std::vector< TrigMonSeq >, std::vector< TrigMonSeq >, std::vector< TrigMonSeq_p1 > >, TPPolyCnvBase< std::vector< TrigMonTE >, std::vector< TrigMonTE >, std::vector< TrigMonTE_p1 > >, TPPolyCnvBase< TileHitVector, TileHitVector, TileHitVector_p1 >, TPPolyCnvBase< TRANS, TRANS, PERS >, TPPolyCnvBase< TRANS, TRANS, TPIntegerVector_p1 >, TPPolyCnvBase< TRANS, TRANS, TPIntegerVector_p2 >, TPPolyCnvBase< TRANS_BASE, TRANS, TPIntegerVector_p1 >, and TPPolyCnvBase< TRANS_BASE, TRANS, TPIntegerVector_p2 >.

Definition at line 539 of file TPConverter.h.

539 {
540 throw std::runtime_error(
541 std::string("virt_createTransFromPStore() method not supported in TP converter for an abstract class: ")
542 + typeid(*this).name() );
543 return 0;
544 }

◆ virt_toPersistent()

template<class TRANS_BASE, class TRANS, class PERS>
virtual TPObjRef TPAbstractPolyCnvBase< TRANS_BASE, TRANS, PERS >::virt_toPersistent ( const TRANS_BASE * trans,
MsgStream & log )
inlinevirtualinherited

Internal interface method that is used to invoke the real conversion method (toPersistent_impl) in the derived converter.

Parameters
trans[IN] transient object
log[IN] output message stream
Returns
TPObjRef TP reference to the persistent representation stored in the storage vector of the top-level persistent object Here toPersistent_impl is invoked with the dynamic cast of the transient type pointer to it's actual type

Implements ITPConverterFor< TRANS_BASE >.

Reimplemented in TPCnvBase< TRANS, TPIntegerVector_p1 >, TPCnvBase< TRANS, TPIntegerVector_p2 >, TPConverterBase< TRANS, PERS >, TPConverterBase< DataVector< eflowObject >, std::vector< eflowObject_p1 > >, TPConverterBase< DataVector< eflowObject >, std::vector< eflowObject_p2 > >, TPConverterBase< DataVector< eflowObject >, std::vector< eflowObject_p3 > >, TPConverterBase< DataVector< eflowObject >, std::vector< eflowObject_p4 > >, TPConverterBase< DataVector< eflowObject >, std::vector< eflowObject_p5 > >, TPConverterBase< std::vector< Analysis::TauPi0Candidate * >, std::vector< TPObjRef > >, TPConverterBase< std::vector< Analysis::TauPi0Cluster * >, std::vector< TPObjRef > >, TPConverterBase< std::vector< Analysis::TauShot * >, std::vector< TPObjRef > >, TPConverterBase< std::vector< TrigConfAlg >, std::vector< TrigConfAlg_p1 > >, TPConverterBase< std::vector< TrigConfChain >, std::vector< TrigConfChain_p1 > >, TPConverterBase< std::vector< TrigConfSeq >, std::vector< TrigConfSeq_p1 > >, TPConverterBase< std::vector< TrigConfSig >, std::vector< TrigConfSig_p1 > >, TPConverterBase< std::vector< TrigMonAlg >, std::vector< TrigMonAlg_p1 > >, TPConverterBase< std::vector< TrigMonROB >, std::vector< TrigMonROB_p1 > >, TPConverterBase< std::vector< TrigMonROBData >, std::vector< TrigMonROBData_p1 > >, TPConverterBase< std::vector< TrigMonRoi >, std::vector< TrigMonRoi_p1 > >, TPConverterBase< std::vector< TrigMonSeq >, std::vector< TrigMonSeq_p1 > >, TPConverterBase< std::vector< TrigMonTE >, std::vector< TrigMonTE_p1 > >, and TPConverterBase< TileHitVector, TileHitVector_p1 >.

Definition at line 505 of file TPConverter.h.

505 {
506 const TRANS* trans_der = dynamic_cast<const TRANS*>(trans);
507 if (!trans_der) std::abort();
509 }
TPObjRef toPersistentWithKey_impl(const TRANS *trans, const std::string &key, MsgStream &log)
Convert transient object to persistent representation.

◆ virt_toPersistentWithKey()

template<class TRANS_BASE, class TRANS, class PERS>
virtual TPObjRef TPAbstractPolyCnvBase< TRANS_BASE, TRANS, PERS >::virt_toPersistentWithKey ( const TRANS_BASE * trans,
const std::string & key,
MsgStream & log )
inlinevirtualinherited

Internal interface method that is used to invoke the real conversion method (toPersistent_impl) in the derived converter.

Parameters
trans[IN] transient object
key[IN] SG key of the object being converted.
log[IN] output message stream
Returns
TPObjRef TP reference to the persistent representation stored in the storage vector of the top-level persistent object Here toPersistentWithKey_impl is invoked with the dynamic cast of the transient type pointer to it's actual type

Implements ITPConverterFor< TRANS_BASE >.

Reimplemented in TPConverterBase< TRANS, PERS >, TPConverterBase< DataVector< eflowObject >, std::vector< eflowObject_p1 > >, TPConverterBase< DataVector< eflowObject >, std::vector< eflowObject_p2 > >, TPConverterBase< DataVector< eflowObject >, std::vector< eflowObject_p3 > >, TPConverterBase< DataVector< eflowObject >, std::vector< eflowObject_p4 > >, TPConverterBase< DataVector< eflowObject >, std::vector< eflowObject_p5 > >, TPConverterBase< std::vector< Analysis::TauPi0Candidate * >, std::vector< TPObjRef > >, TPConverterBase< std::vector< Analysis::TauPi0Cluster * >, std::vector< TPObjRef > >, TPConverterBase< std::vector< Analysis::TauShot * >, std::vector< TPObjRef > >, TPConverterBase< std::vector< TrigConfAlg >, std::vector< TrigConfAlg_p1 > >, TPConverterBase< std::vector< TrigConfChain >, std::vector< TrigConfChain_p1 > >, TPConverterBase< std::vector< TrigConfSeq >, std::vector< TrigConfSeq_p1 > >, TPConverterBase< std::vector< TrigConfSig >, std::vector< TrigConfSig_p1 > >, TPConverterBase< std::vector< TrigMonAlg >, std::vector< TrigMonAlg_p1 > >, TPConverterBase< std::vector< TrigMonROB >, std::vector< TrigMonROB_p1 > >, TPConverterBase< std::vector< TrigMonROBData >, std::vector< TrigMonROBData_p1 > >, TPConverterBase< std::vector< TrigMonRoi >, std::vector< TrigMonRoi_p1 > >, TPConverterBase< std::vector< TrigMonSeq >, std::vector< TrigMonSeq_p1 > >, TPConverterBase< std::vector< TrigMonTE >, std::vector< TrigMonTE_p1 > >, and TPConverterBase< TileHitVector, TileHitVector_p1 >.

Definition at line 515 of file TPConverter.h.

518 {
519 const TRANS* trans_der = dynamic_cast<const TRANS*>(trans);
520 if (!trans_der) std::abort();
522 }

◆ wasUsedForReading()

bool ITPConverterFor< TRANS_BASE >::wasUsedForReading ( )
inlineinherited

Definition at line 236 of file TPConverter.h.

236{ return m_wasUsedForReading; }

Member Data Documentation

◆ m_curRecLevel

template<class TRANS_BASE, class TRANS, class PERS>
int TPAbstractPolyCnvBase< TRANS_BASE, TRANS, PERS >::m_curRecLevel
protectedinherited

count recursive invocations, to detect recursion

Definition at line 582 of file TPConverter.h.

◆ m_emConverter

ErrorMatrixCnv_p1* TrackParametersCnv_p2::m_emConverter
private

Definition at line 64 of file TrackParametersCnv_p2.h.

◆ m_eventCnvTool

ToolHandle<Trk::IEventCnvSuperTool> TrackParametersCnv_p2::m_eventCnvTool
private

Definition at line 65 of file TrackParametersCnv_p2.h.

◆ m_ignoreRecursion

template<class TRANS_BASE, class TRANS, class PERS>
bool TPAbstractPolyCnvBase< TRANS_BASE, TRANS, PERS >::m_ignoreRecursion
protectedinherited

if true, do not throw errors in case of recursion.

Definition at line 588 of file TPConverter.h.

◆ m_nosurf

bool TrackParametersCnv_p2::m_nosurf
private

Definition at line 66 of file TrackParametersCnv_p2.h.

◆ m_pStorage

template<class TRANS_BASE, class TRANS, class PERS>
std::vector< PERS >* TPAbstractPolyCnvBase< TRANS_BASE, TRANS, PERS >::m_pStorage
protectedinherited

the address of the storage vector for persistent representations

Definition at line 579 of file TPConverter.h.

◆ m_pStorageTID

TPObjRef::typeID_t ITPConverterFor< TRANS_BASE >::m_pStorageTID
protectedinherited

TP Ref typeID for the persistent objects this converter is creating.

Definition at line 292 of file TPConverter.h.

◆ m_pStorageTIDvalue

unsigned ITPConverterFor< TRANS_BASE >::m_pStorageTIDvalue
protectedinherited

m_pStorageTID converted to integer value

Definition at line 295 of file TPConverter.h.

◆ m_recursive

template<class TRANS_BASE, class TRANS, class PERS>
bool TPAbstractPolyCnvBase< TRANS_BASE, TRANS, PERS >::m_recursive
protectedinherited

if true, work in recursion-safe way (slower)

Definition at line 585 of file TPConverter.h.

◆ m_topConverter

TopLevelTPCnvBase* ITPConverterFor< TRANS_BASE >::m_topConverter
protectedinherited

top level converter that owns this elemental TP converter it also holds the storage object

Definition at line 299 of file TPConverter.h.

◆ m_topConverterRuntime

TopLevelTPCnvBase* ITPConverterFor< TRANS_BASE >::m_topConverterRuntime
protectedinherited

top level converter "owning" this TP converter at runtime (different from m_topConverter in case the top-level converter and object have extensions)

Definition at line 302 of file TPConverter.h.

◆ m_wasUsedForReading

bool ITPConverterFor< TRANS_BASE >::m_wasUsedForReading
protectedinherited

flag set when using this converter for reading triggers search for a new converter before writing, to prevent possible use of old version

Definition at line 306 of file TPConverter.h.


The documentation for this class was generated from the following files: