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

#include <SiHitCollectionCnv_p4.h>

Inheritance diagram for SiHitCollectionCnv_p4:
Collaboration diagram for SiHitCollectionCnv_p4:

Public Types

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

Public Member Functions

 SiHitCollectionCnv_p4 ()
virtual SiHitCollectioncreateTransient (const SiHitCollection_p4 *persObj, MsgStream &log)
virtual void persToTrans (const SiHitCollection_p4 *persCont, SiHitCollection *transCont, MsgStream &log)
virtual void transToPers (const SiHitCollection *transCont, SiHitCollection_p4 *persCont, MsgStream &log)
virtual TPObjRef virt_toPersistent (const TRANS *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 *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 void pstoreToTrans (unsigned index, TRANS *trans, MsgStream &log)
 Convert persistent representation stored in the storage vector of the top-level object to transient.
virtual TRANS * createTransient (const PERS *persObj, MsgStream &log)
 Create transient representation of a persistent object.
virtual TRANS * createTransientWithKey (const PERS *persObj, const std::string &key, MsgStream &log)
 Create transient representation of a persistent object, with SG key.
virtual TRANS * virt_createTransFromPStore (unsigned index, MsgStream &log)
 Internal interface method that is used to invoke the real conversion method (createTransient)
virtual TRANS * virt_createTransFromPStoreWithKey (unsigned index, const std::string &key, MsgStream &log)
 Internal interface method that is used to invoke the real conversion method (createTransient)
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
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.
template<class CNV>
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.
template<class CNV>
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.
template<class CNV>
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.
template<class CNV>
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.
template<class CNV, class TRANS_T>
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.
template<class CNV>
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
 return the top-level converter for this elemental TP converter
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

Static Private Attributes

static const double m_persEneUnit = 1.0e-5
static const double m_persLenUnit = 1.0e-5
static const double m_persAngUnit = 1.0e-5
static const double m_2bHalfMaximum = pow(2.0, 15.0)
static const int m_2bMaximum = (unsigned short)(-1)

Detailed Description

Definition at line 13 of file SiHitCollectionCnv_p4.h.

Member Typedef Documentation

◆ Factory

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

Definition at line 26 of file ITPCnvBase.h.

◆ Pers_t

typedef PERS TPAbstractPolyCnvBase< TRANS, TRANS, PERS >::Pers_t
inherited

Definition at line 335 of file TPConverter.h.

◆ PersBase_t

typedef PERS TPAbstractPolyCnvBase< TRANS, TRANS, PERS >::PersBase_t
inherited

Definition at line 336 of file TPConverter.h.

◆ PolyCnvBase_t

template<class TRANS>
typedef ITPConverterFor< TRANS > ITPConverterFor< TRANS >::PolyCnvBase_t
inherited

Definition at line 41 of file TPConverter.h.

◆ Trans_t

typedef TRANS TPAbstractPolyCnvBase< TRANS, TRANS, PERS >::Trans_t
inherited

Definition at line 334 of file TPConverter.h.

◆ TransBase_t

template<class TRANS>
typedef TRANS ITPConverterFor< TRANS >::TransBase_t
inherited

Definition at line 39 of file TPConverter.h.

Constructor & Destructor Documentation

◆ SiHitCollectionCnv_p4()

SiHitCollectionCnv_p4::SiHitCollectionCnv_p4 ( )
inline

Definition at line 17 of file SiHitCollectionCnv_p4.h.

17{};

Member Function Documentation

◆ baseToPersistent()

template<class TRANS>
template<class CNV>
TPObjRef ITPConverterFor< TRANS >::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
Find converter for a given C++ type ID, that is or ihnerits from CNV type.
Definition TPConverter.h:58
bool wasUsedForReading()

◆ clearReadingFlag()

template<class TRANS>
void ITPConverterFor< TRANS >::clearReadingFlag ( )
inlineinherited

Definition at line 235 of file TPConverter.h.

235{ m_wasUsedForReading = false; }
bool m_wasUsedForReading
flag set when using this converter for reading triggers search for a new converter before writing,...

◆ converterForRef()

template<class TRANS>
template<class CNV>
CNV * ITPConverterFor< TRANS >::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
top level converter "owning" this TP converter at runtime (different from m_topConverter in case the ...
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
method called when the right TP converter was not found during writing

◆ converterForType()

template<class TRANS>
template<class CNV>
CNV * ITPConverterFor< TRANS >::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 22 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}
#define endmsg
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 40 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}
virtual const TPObjRef::typeID_t & typeID() const =0
Return TP typeID for persistent objects produced by this converter.

◆ createPersistent()

virtual PERS * TPAbstractPolyCnvBase< TRANS, 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()

virtual PERS * TPAbstractPolyCnvBase< TRANS, 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()

template<class TRANS>
template<class CNV>
CNV::Trans_t * ITPConverterFor< TRANS >::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
Find converter for a TP type ID (passed in a TP Ref), that is or ihnerits from CNV type.
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() [1/2]

SiHitCollection * SiHitCollectionCnv_p4::createTransient ( const SiHitCollection_p4 * persObj,
MsgStream & log )
virtual

Definition at line 275 of file SiHitCollectionCnv_p4.cxx.

275 {
276 std::unique_ptr<SiHitCollection> trans(std::make_unique<SiHitCollection>("DefaultCollectionName",persObj->m_nHits.size()));
277 persToTrans(persObj, trans.get(), log);
278 return(trans.release());
279}
virtual void persToTrans(const SiHitCollection_p4 *persCont, SiHitCollection *transCont, MsgStream &log)
std::vector< unsigned short > m_nHits

◆ createTransient() [2/2]

virtual TRANS * TPPolyCnvBase< TRANS, TRANS, PERS >::createTransient ( const PERS * persObj,
MsgStream & log )
virtualinherited

Create transient representation of a persistent object.

Simply creates a new transient object and calls persToTrans()

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

◆ createTransientWithKey()

virtual TRANS * TPPolyCnvBase< TRANS, TRANS, PERS >::createTransientWithKey ( const PERS * persObj,
const std::string & key,
MsgStream & log )
virtualinherited

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

Simply creates a new transient object and calls persToTransWithKey()

Parameters
persObj[IN] persistent object
key[IN] SG key of object being read
log[IN] output message stream
Returns
the created transient object

◆ fillTransFromPStore()

template<class TRANS>
template<class CNV, class TRANS_T>
void ITPConverterFor< TRANS >::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()

void TPAbstractPolyCnvBase< TRANS, 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.

◆ initPrivateConverters()

◆ persistentTInfo()

virtual const std::type_info & TPAbstractPolyCnvBase< TRANS, 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]

void SiHitCollectionCnv_p4::persToTrans ( const SiHitCollection_p4 * persCont,
SiHitCollection * transCont,
MsgStream & log )
virtual

Definition at line 285 of file SiHitCollectionCnv_p4.cxx.

287{
288 const EventContext& ctx = Gaudi::Hive::currentContext();
289#ifdef ENABLE_SANITY_CHECKS
290 // Sanity check
291 const unsigned int transContSize = persCont->m_hitEne_2b.size(); // this vector has one entry per transient SiHit, so its size can be used as a proxy for the transient Container size
292 const unsigned int init(0);
293 if (std::accumulate(persCont->m_nTruthID.begin(), persCont->m_nTruthID.end(), init)!=transContSize) {
294 log << MSG::ERROR << "persToTrans: sum of entries of persCont->m_nTruthID (" << std::accumulate(persCont->m_nTruthID.begin(), persCont->m_nTruthID.end(), init) << ") does not match transient container size = " << transContSize << endmsg;
295 }
296 if (std::accumulate(persCont->m_nId.begin(), persCont->m_nId.end(), init)!=transContSize) {
297 log << MSG::ERROR << "persToTrans: sum of entries of persCont->m_nId (" << std::accumulate(persCont->m_nId.begin(), persCont->m_nId.end(), init) << ") does not match transient container size = " << transContSize << endmsg;
298 }
299 if (std::accumulate(persCont->m_nHits.begin(), persCont->m_nHits.end(), init)!=transContSize) {
300 log << MSG::ERROR << "persToTrans: sum of entries of persCont->m_nHits (" << std::accumulate(persCont->m_nHits.begin(), persCont->m_nHits.end(), init) << ") does not match transient container size = " << transContSize << endmsg;
301 }
302#endif
303
304 unsigned int hitCount = 0;
305 unsigned int angleCount = 0;
306 unsigned int idxTruthID = 0;
307 unsigned int idxId = 0;
308 unsigned int idxEne4b = 0;
309 unsigned int idxLen4b = 0;
310 unsigned int endHit = 0;
311 unsigned int endTruthID = 0;
312 unsigned int endId = 0;
313
314 for (unsigned int i = 0; i < persCont->m_nHits.size(); i++) {
315
316 if (persCont->m_nHits[i]) {
317
318 const unsigned int start = endHit;
319 endHit += persCont->m_nHits[i];
320
321 const double t0 = persCont->m_hit1_meanTime[i];
322 const double theta0 = persCont->m_hit1_theta[i];
323 const double phi0 = persCont->m_hit1_phi[i];
324 HepGeom::Point3D<double> endLast(persCont->m_hit1_x0[i], persCont->m_hit1_y0[i], persCont->m_hit1_z0[i]);
325
326 for (unsigned int j = start; j < endHit; j++) {
327
328 if (j >= endTruthID + persCont->m_nTruthID[idxTruthID])
329 endTruthID += persCont->m_nTruthID[idxTruthID++];
330
331 if (j >= endId + persCont->m_nId[idxId])
332 endId += persCont->m_nId[idxId++];
333
334 const double eneLoss_2b = persCont->m_hitEne_2b[hitCount];
335 const double hitLength_2b = persCont->m_hitLength_2b[hitCount];
336
337 const double eneLoss = (eneLoss_2b < m_2bMaximum) ? eneLoss_2b * m_persEneUnit : persCont->m_hitEne_4b[idxEne4b++];
338 const double length = (hitLength_2b < m_2bMaximum) ? hitLength_2b * m_persLenUnit : persCont->m_hitLength_4b[idxLen4b++];
339
340 const double dTheta = (j > start) ? ((double)persCont->m_dTheta[angleCount] - m_2bHalfMaximum) * m_persAngUnit : 0.0;
341 const double dPhi = (j > start) ? ((double)persCont->m_dPhi[angleCount] - m_2bHalfMaximum) * m_persAngUnit : 0.0;
342
343 const double meanTime = t0;
344 const double theta = theta0 + dTheta;
345 const double phi = phicorr(phi0 + dPhi);
346
347 CLHEP::Hep3Vector r(length, 0.0, 0.0);
348 r.setTheta(theta);
349 r.setPhi(phi);
350
351 HepGeom::Point3D<double> endThis( endLast + r );
352
354 if (persCont->m_mcEvtIndex[idxTruthID] == 0) {
356 }
357 HepMcParticleLink partLink( persCont->m_truthID[idxTruthID], persCont->m_mcEvtIndex[idxTruthID], flag, HepMcParticleLink::IS_ID, ctx );
358 partLink.setTruthSuppressionType(HepMcParticleLink::ExtendedBarCode::truthSuppressionTypeFromChar (persCont->m_truthSupp[idxTruthID]));
359 transCont->Emplace( endLast, endThis, eneLoss, meanTime, partLink, persCont->m_id[idxId] );
360
361 endLast = std::move(endThis);
362
363 ++hitCount;
364 if (j > start) ++angleCount;
365 }
366 }
367 }
368}
Scalar phi() const
phi method
Scalar theta() const
theta method
double length(const pvec &v)
static Double_t t0
double phicorr(double a)
void Emplace(Args &&... args)
static const double m_persLenUnit
static const double m_2bHalfMaximum
static const double m_persEneUnit
static const double m_persAngUnit
std::vector< unsigned short > m_hitEne_2b
std::vector< char > m_truthSupp
std::vector< float > m_hit1_y0
std::vector< unsigned short > m_dTheta
std::vector< float > m_hit1_z0
std::vector< float > m_hit1_phi
std::vector< unsigned short > m_dPhi
std::vector< unsigned short > m_hitLength_2b
std::vector< float > m_hit1_meanTime
std::vector< float > m_hit1_x0
std::vector< float > m_hit1_theta
std::vector< unsigned long > m_truthID
std::vector< unsigned short > m_nTruthID
std::vector< unsigned long > m_id
std::vector< unsigned short > m_nId
std::vector< unsigned short > m_mcEvtIndex
int r
Definition globals.cxx:22
bool dPhi(const xAOD::TauJet &tau, const xAOD::CaloVertexedTopoCluster &cluster, float &out)
bool flag
Definition master.py:29
init(v_theApp, v_rootStream=None)
Definition PyKernel.py:45

◆ persToTrans() [2/2]

virtual void TPAbstractPolyCnvBase< TRANS, 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, 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 >, 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, TPCnvIDCont< TRANS, PERS, CONV >, TPCnvIDContFromIdentifier< TRANS, PERS, CONV >, TPCnvStdVector< TRANS, PERS, CONV >, TPCnvVector< TRANS, PERS, CONV >, TPConverterConstBase< TRANS, PERS >, TPPtrVectorCnv< TRANS, PERS, 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.

◆ persToTransUntyped()

virtual void TPAbstractPolyCnvBase< TRANS, 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

◆ persToTransWithKey()

virtual void TPAbstractPolyCnvBase< TRANS, 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()

virtual void TPAbstractPolyCnvBase< TRANS, 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)

◆ pstoreToTrans()

template<class TRANS, class PERS>
virtual void TPConverterBase< TRANS, PERS >::pstoreToTrans ( unsigned index,
TRANS * 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

Reimplemented from TPAbstractPolyCnvBase< TRANS, TRANS, PERS >.

Definition at line 760 of file TPConverter.h.

760 {
762 this->persToTrans( &(*this->m_pStorage)[index], trans, log );
763 }
TP Converter template for a "regular" type.

◆ reservePStorage()

virtual void TPAbstractPolyCnvBase< TRANS, 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()

void TPAbstractPolyCnvBase< TRANS, 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.

◆ setReadingFlag()

template<class TRANS>
void ITPConverterFor< TRANS >::setReadingFlag ( )
inlineinherited

Definition at line 234 of file TPConverter.h.

234{ m_wasUsedForReading = true; }

◆ setRecursive()

void TPAbstractPolyCnvBase< TRANS, 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.

◆ setRuntimeTopConverter()

template<class TRANS>
virtual void ITPConverterFor< TRANS >::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()
return the top-level converter for this elemental TP converter

◆ setTopConverter()

template<class TRANS>
virtual void ITPConverterFor< TRANS >::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.

223 {
228 }
unsigned m_pStorageTIDvalue
m_pStorageTID converted to integer value
TPObjRef::typeID_t m_pStorageTID
TP Ref typeID for the persistent objects this converter is creating.
TopLevelTPCnvBase * m_topConverter
top level converter that owns this elemental TP converter it also holds the storage object

◆ topConverter() [1/2]

template<class TRANS>
virtual TopLevelTPCnvBase * ITPConverterFor< TRANS >::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 }

◆ topConverter() [2/2]

template<class TRANS>
virtual const TopLevelTPCnvBase * ITPConverterFor< TRANS >::topConverter ( ) const
inlinevirtualinherited

return the top-level converter for this elemental TP converter

Returns
TopLevelTPCnvBas

Reimplemented from ITPConverter.

Definition at line 196 of file TPConverter.h.

196 {
197 return m_topConverter;
198 }

◆ toPersistent()

template<class TRANS>
template<class CNV>
TPObjRef ITPConverterFor< TRANS >::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()

TPObjRef TPAbstractPolyCnvBase< TRANS, 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()

template<class TRANS>
const std::type_info & ITPConverterFor< TRANS >::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()

virtual const std::type_info & TPAbstractPolyCnvBase< TRANS, 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 >.

Definition at line 479 of file TPConverter.h.

479{ return typeid(TRANS); }

◆ transToPers() [1/2]

void SiHitCollectionCnv_p4::transToPers ( const SiHitCollection * transCont,
SiHitCollection_p4 * persCont,
MsgStream & log )
virtual

Definition at line 66 of file SiHitCollectionCnv_p4.cxx.

67{
68 // Finds hits belonging to a "string" (in which the end point of one hit is the same as the start point of the next) and
69 // persistifies the end point of each hit plus the start point of the first hit in each string.
70 //
71 // Further compression is achieved by optimising the storage of the position vectors:- start (x,y,z) and (theta,phi) of
72 // first hit are stored as floats, (delta_theta,delta_phi) relative to the fisrst hit are stored as 2 byte numbers and
73 // used to specify the hit direction. All hit lengths are stored as 2 byte numbers.
74 //
75 // Additional savings are achieved by storing the energy loss for each hit as a 2 byte number and only storing the mean
76 // time of the first hit per string.
77 //
78 // See http://indico.cern.ch/getFile.py/access?contribId=11&resId=2&materialId=slides&confId=30893 for more info.
79
80 static const double dRcut = 1.0e-7;
81 static const double dTcut = 1.0;
82
83 const EventContext& ctx = Gaudi::Hive::currentContext();
84 const IProxyDict* proxy = Atlas::getExtendedEventContext(ctx).proxy();
85 int lastIndex{-1};
86 int lastTruthId{-1};
87 int lastId = -1;
88 double stringFirstTheta = 0.0;
89 double stringFirstPhi = 0.0;
90 double lastT = 0.0;
91 double persSumE = 0.0;
92 double transSumE = 0.0;
93 unsigned int idx = 0;
94 unsigned int endTruthID = 0;
95 unsigned int endId = 0;
96 unsigned int endHit = 0;
97 HepGeom::Point3D<double> lastTransEnd(0.0, 0.0, 0.0);
98 HepGeom::Point3D<double> lastPersEnd(0.0, 0.0, 0.0);
99
100 for (SiHitCollection::const_iterator it = transCont->begin(); it != transCont->end(); ++it) {
101
103 const HepMcParticleLink * currentLink = &(siHit->particleLink());
104 const int truthId = currentLink->id();
105 const char truthSupp= currentLink->getTruthSuppressionTypeAsChar();
106 int index{0};
108 proxy).at(0) != 0) {
109 index = currentLink->eventIndex();
110 }
111
112 if ( lastTruthId != truthId || lastIndex != index || (idx-endTruthID)==USHRT_MAX ) {
113 lastTruthId = truthId;
114 lastIndex = index;
115 const unsigned short persIndex = static_cast<unsigned short>(index);
116 if (static_cast<HepMcParticleLink::index_type>(lastIndex) != static_cast<HepMcParticleLink::index_type>(persIndex)) {
117 log << MSG::WARNING << "Attempting to persistify an eventIndex larger than max unsigned short!" << endmsg;
118 }
119 // store truthId and eventIndex once for set of consecutive hits
120 // with the same truthId and eventIndex.
121 persCont->m_truthID.push_back(static_cast<unsigned long>(truthId));
122 persCont->m_mcEvtIndex.push_back(persIndex);
123 persCont->m_truthSupp.push_back(truthSupp); // TODO include this in the equality check above?
124 if (idx > 0) {
125 persCont->m_nTruthID.push_back(idx - endTruthID);
126 endTruthID = idx;
127 }
128 }
129
130 if ( ( (int)siHit->identify() != lastId ) || (idx-endId)==USHRT_MAX) {
131
132 // store SiHitIdentifier once for set of consecutive hits with
133 // the same SiHitIdentifier
134
135 lastId = siHit->identify();
136 persCont->m_id.push_back(lastId);
137
138 if (idx > 0) {
139 persCont->m_nId.push_back(idx - endId);
140 endId = idx;
141 }
142 }
143
144 HepGeom::Point3D<double> st = siHit->localStartPosition();
145 HepGeom::Point3D<double> en = siHit->localEndPosition();
146
147 const double dx = st.x() - lastTransEnd.x();
148 const double dy = st.y() - lastTransEnd.y();
149 const double dz = st.z() - lastTransEnd.z();
150 const double t = siHit->meanTime();
151
152 const double dRLast = sqrt(dx * dx + dy * dy + dz * dz); // dR between end of previous hit and start of current one
153 const double dTLast = fabs(t - lastT);
154
155 CLHEP::Hep3Vector direction(0.0, 0.0, 0.0);
156 double theta = 0.0;
157 double phi = 0.0;
158 bool startNewString = (dRLast >= dRcut || dTLast >= dTcut || (idx - endHit) == USHRT_MAX);
159
160 if (!startNewString) {
161
162 // hit is part of existing string
163
164 direction = CLHEP::Hep3Vector( en.x() - lastPersEnd.x(), en.y() - lastPersEnd.y(), en.z() - lastPersEnd.z() );
165
166 theta = direction.theta();
167 phi = phicorr( direction.phi() );
168
169 const int dTheta_2b = (int)( (theta - stringFirstTheta) / m_persAngUnit + m_2bHalfMaximum + 0.5 );
170 const int dPhi_2b = (int)( (cycle(phi, stringFirstPhi) - stringFirstPhi) / m_persAngUnit + m_2bHalfMaximum + 0.5 );
171
172 if ( dTheta_2b < m_2bMaximum && dTheta_2b >= 0 && dPhi_2b < m_2bMaximum && dPhi_2b >= 0) {
173 persCont->m_dTheta.push_back(dTheta_2b);
174 persCont->m_dPhi.push_back(dPhi_2b);
175 theta = stringFirstTheta + ( (double)dTheta_2b - m_2bHalfMaximum ) * m_persAngUnit;
176 phi = stringFirstPhi + ( (double)dPhi_2b - m_2bHalfMaximum ) * m_persAngUnit;
177 phi = phicorr(phi);
178 }
179 else {
180 startNewString = true;
181 }
182 }
183
184 if (startNewString) {
185
186 // begin new hit string
187
188 direction = CLHEP::Hep3Vector( en.x() - st.x(), en.y() - st.y(), en.z() - st.z() );
189
190 theta = direction.theta();
191 phi = phicorr( direction.phi() );
192
193 persCont->m_hit1_meanTime.push_back(t);
194 persCont->m_hit1_x0.push_back(st.x());
195 persCont->m_hit1_y0.push_back(st.y());
196 persCont->m_hit1_z0.push_back(st.z());
197 persCont->m_hit1_theta.push_back(theta);
198 persCont->m_hit1_phi.push_back(phi);
199
200 lastPersEnd = HepGeom::Point3D<double>(st.x(), st.y(), st.z());
201
202 stringFirstTheta = theta;
203 stringFirstPhi = phi;
204
205 if (idx > 0) {
206 persCont->m_nHits.push_back(idx - endHit);
207 endHit = idx;
208 }
209 }
210
211 lastTransEnd = HepGeom::Point3D<double>(en.x(), en.y(), en.z());
212 transSumE += siHit->energyLoss();
213
214 const int eneLoss_2b = (int)((transSumE - persSumE) / m_persEneUnit + 0.5); // calculated to allow recovery sum over
215 // whole hit string to chosen precision
216
217 const int hitLength_2b = (int)(direction.mag() / m_persLenUnit + 0.5); // calculated to give the correct position to
218 // the chosen precision, NOT the length of the
219 // hit (small difference in practice).
220 double eneLoss = 0.0;
221
222 if (eneLoss_2b >= m_2bMaximum) {
223 eneLoss = siHit->energyLoss();
224 persCont->m_hitEne_2b.push_back(m_2bMaximum);
225 persCont->m_hitEne_4b.push_back(eneLoss);
226 }
227 else {
228 eneLoss = eneLoss_2b * m_persEneUnit;
229 persCont->m_hitEne_2b.push_back(eneLoss_2b);
230 }
231
232 double length = 0.0;
233
234 if (hitLength_2b >= m_2bMaximum) {
235 length = direction.mag();
236 persCont->m_hitLength_2b.push_back(m_2bMaximum);
237 persCont->m_hitLength_4b.push_back(direction.mag());
238 }
239 else {
240 length = hitLength_2b * m_persLenUnit;
241 persCont->m_hitLength_2b.push_back(hitLength_2b);
242 }
243
244 CLHEP::Hep3Vector persDir(length, 0.0, 0.0);
245 persDir.setTheta(theta);
246 persDir.setPhi(phi);
247
248 lastPersEnd = (CLHEP::Hep3Vector)lastPersEnd + persDir;
249 persSumE += eneLoss;
250 lastT = t;
251
252 ++idx;
253 }
254
255 persCont->m_nTruthID.push_back(idx - endTruthID);
256 persCont->m_nId.push_back(idx - endId);
257 persCont->m_nHits.push_back(idx - endHit);
258#ifdef ENABLE_SANITY_CHECKS
259 // Sanity check
260 const unsigned int init(0);
261 const unsigned int transContSize = transCont->size();
262 if (std::accumulate(persCont->m_nTruthID.begin(), persCont->m_nTruthID.end(), init)!=transContSize) {
263 log << MSG::ERROR << "transToPers: sum of entries of persCont->m_nTruthID (" << std::accumulate(persCont->m_nTruthID.begin(), persCont->m_nTruthID.end(), init) << ") does not match transient container size = " << transContSize << endmsg;
264 }
265 if (std::accumulate(persCont->m_nId.begin(), persCont->m_nId.end(), init)!=transContSize) {
266 log << MSG::ERROR << "transToPers: sum of entries of persCont->m_nId (" << std::accumulate(persCont->m_nId.begin(), persCont->m_nId.end(), init) << ") does not match transient container size = " << transContSize << endmsg;
267 }
268 if (std::accumulate(persCont->m_nHits.begin(), persCont->m_nHits.end(), init)!=transContSize) {
269 log << MSG::ERROR << "transToPers: sum of entries of persCont->m_nHits (" << std::accumulate(persCont->m_nHits.begin(), persCont->m_nHits.end(), init) << ") does not match transient container size = " << transContSize << endmsg;
270 }
271#endif
272}
double cycle(double a, double b)
CONT::const_iterator const_iterator
const_iterator begin() const
size_type size() const
const_iterator end() const
std::vector< float > m_hitEne_4b
std::vector< float > m_hitLength_4b
const ExtendedEventContext & getExtendedEventContext(const EventContext &ctx)
Retrieve an extended context from a context object.
str index
Definition DeMoScan.py:362

◆ transToPers() [2/2]

virtual void TPAbstractPolyCnvBase< TRANS, 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, 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 >, 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, TPCnvIDCont< TRANS, PERS, CONV >, TPCnvIDContFromIdentifier< TRANS, PERS, CONV >, TPCnvStdVector< TRANS, PERS, CONV >, TPCnvVector< TRANS, PERS, CONV >, TPConverterConstBase< TRANS, PERS >, TPPolyVectorCnv< TRANS, PERS, CONV >, TPPtrVectorCnv< TRANS, PERS, 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.

◆ transToPersUntyped()

virtual void TPAbstractPolyCnvBase< TRANS, 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

◆ transToPersWithKey()

virtual void TPAbstractPolyCnvBase< TRANS, 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()

virtual void TPAbstractPolyCnvBase< TRANS, 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)

◆ typeID()

template<class TRANS>
virtual const TPObjRef::typeID_t & ITPConverterFor< TRANS >::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()

template<class TRANS>
unsigned ITPConverterFor< TRANS >::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 TRANS * TPPolyCnvBase< TRANS, TRANS, PERS >::virt_createTransFromPStore ( unsigned index,
MsgStream & log )
inlinevirtualinherited

Internal interface method that is used to invoke the real conversion method (createTransient)

Parameters
index[IN] index of the persistent object in the storage vector
log[IN] output message stream
Returns
Created transient object (by pointer)

Reimplemented from TPAbstractPolyCnvBase< TRANS, TRANS, PERS >.

Definition at line 706 of file TPConverter.h.

706 {
708 return createTransient( &(*this->m_pStorage)[index], log );
709 }
Base TP converter template parametrized by transient and persistent types.
virtual TRANS * createTransient(const PERS *persObj, MsgStream &log)

◆ virt_createTransFromPStoreWithKey()

virtual TRANS * TPPolyCnvBase< TRANS, TRANS, PERS >::virt_createTransFromPStoreWithKey ( unsigned index,
const std::string & key,
MsgStream & log )
inlinevirtualinherited

Internal interface method that is used to invoke the real conversion method (createTransient)

Parameters
index[IN] index of the persistent object in the storage vector
key[IN] SG key of the object being converted
log[IN] output message stream
Returns
Created transient object (by pointer)

Reimplemented from TPAbstractPolyCnvBase< TRANS, TRANS, PERS >.

Definition at line 718 of file TPConverter.h.

721 {
723 return createTransientWithKey( &(*this->m_pStorage)[index], key, log );
724 }
virtual TRANS * createTransientWithKey(const PERS *persObj, const std::string &key, MsgStream &log)

◆ virt_toPersistent()

template<class TRANS, class PERS>
virtual TPObjRef TPConverterBase< TRANS, PERS >::virt_toPersistent ( const TRANS * 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

Reimplemented from TPAbstractPolyCnvBase< TRANS, TRANS, PERS >.

Definition at line 747 of file TPConverter.h.

747 {
748 return this->toPersistentWithKey_impl( trans, "", log);
749 }
TPObjRef toPersistentWithKey_impl(const TRANS *trans, const std::string &key, MsgStream &log)

◆ virt_toPersistentWithKey()

template<class TRANS, class PERS>
virtual TPObjRef TPConverterBase< TRANS, PERS >::virt_toPersistentWithKey ( const TRANS * 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

Reimplemented from TPAbstractPolyCnvBase< TRANS, TRANS, PERS >.

Definition at line 752 of file TPConverter.h.

755 {
756 return this->toPersistentWithKey_impl( trans, key, log);
757 }

◆ wasUsedForReading()

template<class TRANS>
bool ITPConverterFor< TRANS >::wasUsedForReading ( )
inlineinherited

Definition at line 236 of file TPConverter.h.

236{ return m_wasUsedForReading; }

Member Data Documentation

◆ m_2bHalfMaximum

const double SiHitCollectionCnv_p4::m_2bHalfMaximum = pow(2.0, 15.0)
staticprivate

Definition at line 33 of file SiHitCollectionCnv_p4.h.

◆ m_2bMaximum

const int SiHitCollectionCnv_p4::m_2bMaximum = (unsigned short)(-1)
staticprivate

Definition at line 34 of file SiHitCollectionCnv_p4.h.

◆ m_curRecLevel

int TPAbstractPolyCnvBase< TRANS, TRANS, PERS >::m_curRecLevel
protectedinherited

count recursive invocations, to detect recursion

Definition at line 582 of file TPConverter.h.

◆ m_ignoreRecursion

bool TPAbstractPolyCnvBase< TRANS, TRANS, PERS >::m_ignoreRecursion
protectedinherited

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

Definition at line 588 of file TPConverter.h.

◆ m_persAngUnit

const double SiHitCollectionCnv_p4::m_persAngUnit = 1.0e-5
staticprivate

Definition at line 32 of file SiHitCollectionCnv_p4.h.

◆ m_persEneUnit

const double SiHitCollectionCnv_p4::m_persEneUnit = 1.0e-5
staticprivate

Definition at line 30 of file SiHitCollectionCnv_p4.h.

◆ m_persLenUnit

const double SiHitCollectionCnv_p4::m_persLenUnit = 1.0e-5
staticprivate

Definition at line 31 of file SiHitCollectionCnv_p4.h.

◆ m_pStorage

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

the address of the storage vector for persistent representations

Definition at line 579 of file TPConverter.h.

◆ m_pStorageTID

template<class TRANS>
TPObjRef::typeID_t ITPConverterFor< TRANS >::m_pStorageTID
protectedinherited

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

Definition at line 292 of file TPConverter.h.

◆ m_pStorageTIDvalue

template<class TRANS>
unsigned ITPConverterFor< TRANS >::m_pStorageTIDvalue
protectedinherited

m_pStorageTID converted to integer value

Definition at line 295 of file TPConverter.h.

◆ m_recursive

bool TPAbstractPolyCnvBase< TRANS, TRANS, PERS >::m_recursive
protectedinherited

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

Definition at line 585 of file TPConverter.h.

◆ m_topConverter

template<class TRANS>
TopLevelTPCnvBase* ITPConverterFor< TRANS >::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

template<class TRANS>
TopLevelTPCnvBase* ITPConverterFor< TRANS >::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

template<class TRANS>
bool ITPConverterFor< TRANS >::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: