ATLAS Offline Software
Public Types | Public Member Functions | Protected Attributes | Private Member Functions | Private Attributes | List of all members
Muon::sTgcPrepDataContainerCnv_p1 Class Referenceabstract

Class to handle the conversion of the transient sTgcPrepDataContainer into its persistent representation (defined in MuonPRD_Container_p1). More...

#include <sTgcPrepDataContainerCnv_p1.h>

Inheritance diagram for Muon::sTgcPrepDataContainerCnv_p1:
Collaboration diagram for Muon::sTgcPrepDataContainerCnv_p1:

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

 sTgcPrepDataContainerCnv_p1 ()=default
 
virtual void persToTrans (const Muon::sTgcPrepDataContainer_p1 *persCont, Muon::sTgcPrepDataContainer *transCont, MsgStream &log)
 
virtual void transToPers (const Muon::sTgcPrepDataContainer *transCont, Muon::sTgcPrepDataContainer_p1 *persCont, MsgStream &log)
 
virtual Muon::sTgcPrepDataContainercreateTransient (const Muon::sTgcPrepDataContainer_p1 *persObj, 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. More...
 
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. More...
 
virtual void pstoreToTrans (unsigned index, TRANS *trans, MsgStream &log)
 Convert persistent representation stored in the storage vector of the top-level object to transient. More...
 
virtual TRANS * createTransient (const PERS *persObj, MsgStream &log)
 Create transient representation of a persistent object. More...
 
virtual TRANS * createTransientWithKey (const PERS *persObj, const std::string &key, MsgStream &log)
 Create transient representation of a persistent object, with SG key. More...
 
virtual TRANS * virt_createTransFromPStore (unsigned index, MsgStream &log)
 Internal interface method that is used to invoke the real conversion method (createTransient) More...
 
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) More...
 
virtual void persToTrans (const PERS *persObj, TRANS *transObj, MsgStream &log)=0
 Convert persistent representation to transient one. More...
 
virtual void transToPers (const TRANS *transObj, PERS *persObj, MsgStream &log)=0
 Convert transient representation to persistent one. More...
 
virtual void persToTransWithKey (const PERS *persObj, TRANS *transObj, const std::string &, MsgStream &log)
 Convert persistent representation to transient one. More...
 
virtual void transToPersWithKey (const TRANS *transObj, PERS *persObj, const std::string &, MsgStream &log)
 Convert transient representation to persistent one. More...
 
virtual void persToTransUntyped (const void *pers, void *trans, MsgStream &log)
 Convert persistent object representation to transient. More...
 
virtual void transToPersUntyped (const void *trans, void *pers, MsgStream &log)
 Convert transient object representation to persistent. More...
 
virtual void persToTransWithKeyUntyped (const void *pers, void *trans, const std::string &key, MsgStream &log)
 Convert persistent object representation to transient. More...
 
virtual void transToPersWithKeyUntyped (const void *trans, void *pers, const std::string &key, MsgStream &log)
 Convert transient object representation to persistent. More...
 
virtual PERScreatePersistent (const TRANS *transObj, MsgStream &log)
 Create persistent representation of a transient object. More...
 
virtual PERScreatePersistentWithKey (const TRANS *transObj, const std::string &key, MsgStream &log)
 Create persistent representation of a transient object, with SG key. More...
 
TPObjRef toPersistentWithKey_impl (const TRANS *trans, const std::string &key, MsgStream &log)
 Convert transient object to persistent representation. More...
 
virtual const std::type_info & transientTInfo () const
 return C++ type id of the transient class this converter is for More...
 
virtual const std::type_info & transientTInfo () const
 return C++ type id of the transient class this converter is for More...
 
virtual const std::type_info & persistentTInfo () const
 return C++ type id of the persistent class this converter is for More...
 
virtual const std::type_info & persistentTInfo () const =0
 return C++ type id of the persistent class this converter is for More...
 
void setPStorage (std::vector< PERS > *storage)
 Tell this converter which storage vector it should use to store or retrieve persistent representations. More...
 
void setRecursive (bool flag=true)
 Tell the converter if it should work in recursive mode slower but it can safely handle recursion. More...
 
void ignoreRecursion (bool flag=false)
 Tell the converter to ignore recursion (do not throw errors) even when recurion is detected. More...
 
virtual void reservePStorage (size_t size)
 Reserve 'size' elements for persistent storage. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
virtual void initPrivateConverters (TopLevelTPCnvBase *)
 
virtual TopLevelTPCnvBasetopConverter ()
 return the top-level converter for this elemental TP converter More...
 
virtual const TopLevelTPCnvBasetopConverter () const
 return the top-level converter for this elemental TP converter More...
 
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 More...
 
virtual const TPObjRef::typeID_ttypeID () const
 Return TP typeID for persistent objects produced by this converter. More...
 
unsigned typeIDvalue () const
 inlined non-virtual version to get the typeID value fast More...
 
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. More...
 
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. More...
 
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 More...
 
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 More...
 

Protected Attributes

std::vector< PERS > * m_pStorage
 the address of the storage vector for persistent representations More...
 
int m_curRecLevel
 count recursive invocations, to detect recursion More...
 
bool m_recursive
 if true, work in recursion-safe way (slower) More...
 
bool m_ignoreRecursion
 if true, do not throw errors in case of recursion. More...
 
TPObjRef::typeID_t m_pStorageTID
 TP Ref typeID for the persistent objects this converter is creating. More...
 
unsigned m_pStorageTIDvalue
 m_pStorageTID converted to integer value More...
 
TopLevelTPCnvBasem_topConverter
 top level converter that owns this elemental TP converter it also holds the storage object More...
 
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) More...
 
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 More...
 

Private Member Functions

const MuonGM::sTgcReadoutElementgetReadOutElement (const Identifier &id) const
 
StatusCode initialize (MsgStream &log)
 

Private Attributes

const sTgcIdHelperm_sTgcId {nullptr}
 
StoreGateSvcm_storeGate {nullptr}
 
ToolHandle< Trk::IEventCnvSuperToolm_eventCnvTool {"Trk::EventCnvSuperTool/EventCnvSuperTool"}
 
bool m_isInitialized {false}
 

Detailed Description

Class to handle the conversion of the transient sTgcPrepDataContainer into its persistent representation (defined in MuonPRD_Container_p1).

This replaces sTgcPrepDataContainerCnv_tlp1, which is a AthenaPoolTopLevelTPConverter, as I have now simplified/flattened the sTgcPrepData.

Definition at line 24 of file sTgcPrepDataContainerCnv_p1.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

◆ sTgcPrepDataContainerCnv_p1()

Muon::sTgcPrepDataContainerCnv_p1::sTgcPrepDataContainerCnv_p1 ( )
default

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  }

◆ clearReadingFlag()

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

Definition at line 235 of file TPConverter.h.

235 { m_wasUsedForReading = false; }

◆ 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  {
76  cnv = dynamic_cast<CNV*>(c);
77  if( !cnv )
78  this->converterNotFound( ref.typeID(), c, typeid(CNV).name(), log );
79  return cnv;
80  }

◆ 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  {
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;
34  errorHandler();
35 }

◆ 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;
54  errorHandler();
55 }

◆ 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  }

◆ createTransient() [1/2]

Muon::sTgcPrepDataContainer * Muon::sTgcPrepDataContainerCnv_p1::createTransient ( const Muon::sTgcPrepDataContainer_p1 persObj,
MsgStream &  log 
)
virtual

Definition at line 268 of file sTgcPrepDataContainerCnv_p1.cxx.

269 {
270  if(!m_isInitialized) {
271  if (this->initialize(log) != StatusCode::SUCCESS) {
272  log << MSG::FATAL << "Could not initialize sTgcPrepDataContainerCnv_p1 " << endmsg;
273  return nullptr;
274  }
275  }
276  std::unique_ptr<Muon::sTgcPrepDataContainer> trans(new Muon::sTgcPrepDataContainer(m_sTgcId->module_hash_max()));
277  persToTrans(persObj, trans.get(), log);
278  return(trans.release());
279 }

◆ 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  }

◆ getReadOutElement()

const MuonGM::sTgcReadoutElement * Muon::sTgcPrepDataContainerCnv_p1::getReadOutElement ( const Identifier id) const
private

Definition at line 62 of file sTgcPrepDataContainerCnv_p1.cxx.

62  {
63  const Trk::ITrkEventCnvTool* cnv_tool = m_eventCnvTool->getCnvTool(id);
64  if (!cnv_tool) return nullptr;
65  return dynamic_cast<const MuonGM::sTgcReadoutElement*>(cnv_tool->getDetectorElement(id));
66 }

◆ 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  }

◆ initialize()

StatusCode Muon::sTgcPrepDataContainerCnv_p1::initialize ( MsgStream &  log)
private

Definition at line 22 of file sTgcPrepDataContainerCnv_p1.cxx.

22  {
23  // Do not initialize again:
24  m_isInitialized=true;
25 
26  // Get Storegate, ID helpers, and so on
27  ISvcLocator* svcLocator = Gaudi::svcLocator();
28  // get StoreGate service
29  StatusCode sc = svcLocator->service("StoreGateSvc", m_storeGate);
30  if (sc.isFailure()) {
31  log << MSG::FATAL << "StoreGate service not found !" << endmsg;
32  return StatusCode::FAILURE;
33  }
34 
35  // get DetectorStore service
37  sc = svcLocator->service("DetectorStore", detStore);
38  if (sc.isFailure()) {
39  log << MSG::FATAL << "DetectorStore service not found !" << endmsg;
40  return StatusCode::FAILURE;
41  } else {
42  if (log.level() <= MSG::DEBUG) log << MSG::DEBUG << "Found DetectorStore." << endmsg;
43  }
44 
45  // Get the helper from the detector store
46  sc = detStore->retrieve(m_sTgcId);
47  if (sc.isFailure()) {
48  log << MSG::FATAL << "Could not get ID helper !" << endmsg;
49  return StatusCode::FAILURE;
50  } else {
51  if (log.level() <= MSG::DEBUG) log << MSG::DEBUG << "Found the ID helper." << endmsg;
52  }
53 
54  if (m_eventCnvTool.retrieve().isFailure()) {
55  log << MSG::FATAL << "Could not get DetectorDescription manager" << endmsg;
56  return StatusCode::FAILURE;
57  }
58 
59  if (log.level() <= MSG::DEBUG) log << MSG::DEBUG << "Converter initialized. " << endmsg;
60  return StatusCode::SUCCESS;
61 }

◆ initPrivateConverters()

template<class TRANS >
virtual void ITPConverterFor< TRANS >::initPrivateConverters ( TopLevelTPCnvBase )
inlinevirtualinherited

◆ persistentTInfo() [1/2]

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&

Definition at line 482 of file TPConverter.h.

482 { return typeid(PERS); }

◆ persistentTInfo() [2/2]

virtual const std::type_info& ITPCnvBase::persistentTInfo ( ) const
pure virtualinherited

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

Returns
std::type_info&

Implemented in TopLevelTPConverter< MAIN_CNV, TL_PERS >, TPAbstractPolyCnvBase< TRANS_BASE, TRANS, PERS >, and DummyDetElementSurfaceCnv_p1.

◆ persToTrans() [1/2]

void Muon::sTgcPrepDataContainerCnv_p1::persToTrans ( const Muon::sTgcPrepDataContainer_p1 persCont,
Muon::sTgcPrepDataContainer transCont,
MsgStream &  log 
)
virtual

get the cluster Identifier from the collection Identifier and the persCont->m_prdDeltaId (unsigned short)

Definition at line 172 of file sTgcPrepDataContainerCnv_p1.cxx.

173 {
174 
175  // The transient model has a container holding collections and the
176  // collections hold channels.
177  //
178  // The persistent model flattens this so that the persistent
179  // container has two vectors:
180  // 1) all collections, and
181  // 2) all channels
182  //
183  // The persistent collections, then only maintain indexes into the
184  // container's vector of all channels.
185  //
186  // So here we loop over all collection and extract their channels
187  // from the vector.
188 
189  Muon::sTgcPrepDataCollection* coll = nullptr;
190 
191  sTgcPrepDataCnv_p1 chanCnv;
192  unsigned int pchanIndex(0); // position within persCont->m_prds. Incremented inside innermost loop
193  unsigned int pCollEnd = persCont->m_collections.size();
194  if (log.level() <= MSG::DEBUG)
195  log << MSG::DEBUG<< " Reading " << pCollEnd << "Collections" <<endmsg;
196  for (unsigned int pcollIndex = 0; pcollIndex < pCollEnd; ++pcollIndex) {
197  const Muon::MuonPRD_Collection_p2& pcoll = persCont->m_collections[pcollIndex];
198  IdentifierHash collIDHash(pcoll.m_hashId);
199  coll = new Muon::sTgcPrepDataCollection(collIDHash);
200  coll->setIdentifier(Identifier(pcoll.m_id));
201 
202  unsigned int pchanEnd = pchanIndex+pcoll.m_size;
203  unsigned int chanIndex = 0; // transient index
204 
205  coll->reserve(pcoll.m_size);
206  // Fill with channels
207  for (; pchanIndex < pchanEnd; ++ pchanIndex, ++chanIndex) {
208  const sTgcPrepData_p1* pchan = &(persCont->m_prds[pchanIndex]);
209 
211  unsigned short diff = persCont->m_prdDeltaId[pchanIndex];
212  // we need to redo the bit-shift to retrieve channel, gasGap and multilayer
213  int channel = (diff>>5);
214  int channelType = ( 3 & (diff>>3) );
215  int gasGap = ( 3 & (diff>>1));
216  int multilayer = ( 1 & diff );
217  Identifier clusId = m_sTgcId->channelID(Identifier(pcoll.m_id), multilayer+1, gasGap+1,
218  channelType, channel+sTgcIdHelper::channelMin());
219  log << MSG::DEBUG << "Diff of " << diff << " translated into multilayer="
220  << multilayer << ", gasGap=" << gasGap << ", channelType=" << channelType
221  << ", channel=" << channel << " -> id=" << clusId.get_compact() << endmsg;
222 
223  if ( !m_sTgcId->valid(clusId) ) {
224  // have invalid PRD
225  log << MSG::WARNING << "Tgc PRD has invalid Identifier of "<< m_sTgcId->show_to_string(clusId)<< " - are you sure you have the correct geometry loaded, and NSW enabled?"<<endmsg;
226  }
227 
228  // The reason I need to do the following is that one collection can have several detector elements in, the collection hashes!=detector element hashes
229  IdentifierHash deIDHash;
230  int result = m_sTgcId->get_detectorElement_hash(clusId, deIDHash);
231  if (result&&log.level() <= MSG::WARNING)
232  log << MSG::WARNING<< " Muon::sTgcPrepDataContainerCnv_p1::persToTrans: problem converting Identifier to DE hash "<<endmsg;
233  const MuonGM::sTgcReadoutElement* detEl =
234  getReadOutElement(clusId);
235  if (!detEl) {
236  log << MSG::WARNING<< "Muon::sTgcPrepDataContainerCnv_p1::persToTrans: could not get valid det element for PRD with id="<<clusId<<". Skipping."<<endmsg;
237  continue;
238  }
239 
240  auto chan = std::make_unique<sTgcPrepData>
241  (chanCnv.createsTgcPrepData (pchan,
242  clusId,
243  detEl,
244  log));
245 
246  chan->setHashAndIndex(collIDHash, chanIndex);
247  coll->push_back(std::move(chan));
248  }
249 
250  // register the rdo collection in IDC with hash - faster addCollection
251  StatusCode sc = transCont->addCollection(coll, collIDHash);
252  if (sc.isFailure()) {
253  throw std::runtime_error("Failed to add collection to Identifiable Container");
254  }
255  if (log.level() <= MSG::DEBUG) {
256  log << MSG::DEBUG << "AthenaPoolTPCnvIDCont::persToTrans, collection, hash_id/coll id = " << (int) collIDHash << " / " <<
257  coll->identify().get_compact() << ", added to Identifiable container." << endmsg;
258  }
259  }
260 
261  if (log.level() <= MSG::DEBUG)
262  log << MSG::DEBUG<< " *** Reading sTgcPrepDataContainer ***" << endmsg;
263 }

◆ 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 TPCnvIDContFromIdentifier< TRANS, PERS, CONV >, TPCnvIDCont< TRANS, PERS, CONV >, TPCnvStdVector< TRANS, PERS, CONV >, TPCnvVector< TRANS, PERS, CONV >, TPValVectorCnv< TRANS, PERS, CONV >, TPPtrVectorCnv< TRANS, PERS, CONV >, TPConverterConstBase< TRANS, PERS >, T_AtlasHitsVectorCnv< TRANS, PERS, CONV >, and T_AthenaHitsVectorCnv< TRANS, PERS, CONV >.

◆ 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  }

◆ 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 TPConverterWithKeyBase< TRANS, PERS >.

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  }

◆ 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  {
761  assert (index < this->m_pStorage->size());
762  this->persToTrans( &(*this->m_pStorage)[index], trans, log );
763  }

◆ 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.

551  {
552  m_pStorage = storage;
553  m_curRecLevel = 0;
554  }

◆ 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.

559  {
560  m_recursive = flag;
561  }

◆ 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.

◆ 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  {
225  m_pStorageTID = TPtypeID;
226  m_pStorageTIDvalue = TPtypeID.value();
228  }

◆ 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  }

◆ 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() [1/2]

template<class TRANS >
virtual const std::type_info& ITPConverterFor< TRANS >::transientTInfo ( ) const
inlinevirtualinherited

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

Returns
std::type_info&

Implements ITPCnvBase.

Reimplemented in TPAbstractPolyCnvBase< Analysis::MuonContainer, Analysis::MuonContainer, MuonContainer_p3 >, TPAbstractPolyCnvBase< TileTrackMuFeatureContainer, TileTrackMuFeatureContainer, TileTrackMuFeatureContainer_p3 >, TPAbstractPolyCnvBase< std::vector< Analysis::TauPi0Cluster * >, std::vector< Analysis::TauPi0Cluster * >, std::vector< TPObjRef > >, TPAbstractPolyCnvBase< IsoMuonFeatureContainer, IsoMuonFeatureContainer, IsoMuonFeatureContainer_p2 >, TPAbstractPolyCnvBase< MuonFeatureDetailsContainer, MuonFeatureDetailsContainer, MuonFeatureDetailsContainer_p2 >, TPAbstractPolyCnvBase< std::vector< Trk::VxCandidate * >, std::vector< Trk::VxCandidate * >, std::vector< TPObjRef > >, TPAbstractPolyCnvBase< MuonFeatureContainer, MuonFeatureContainer, MuonFeatureContainer_p3 >, TPAbstractPolyCnvBase< std::vector< TrigConfAlg >, std::vector< TrigConfAlg >, std::vector< TrigConfAlg_p1 > >, TPAbstractPolyCnvBase< TrigT2MbtsBitsContainer, TrigT2MbtsBitsContainer, TrigT2MbtsBitsContainer_p3 >, TPAbstractPolyCnvBase< TrigCompositeContainer, TrigCompositeContainer, TrigCompositeContainer_p1 >, TPAbstractPolyCnvBase< LumiBlockCollection, LumiBlockCollection, LumiBlockCollection_p2 >, TPAbstractPolyCnvBase< TrigTauClusterContainer, TrigTauClusterContainer, TrigTauClusterContainer_p5 >, TPAbstractPolyCnvBase< TrigRNNOutputContainer, TrigRNNOutputContainer, TrigRNNOutputContainer_p2 >, TPAbstractPolyCnvBase< TrigRoiDescriptorCollection, TrigRoiDescriptorCollection, TrigRoiDescriptorCollection_p3 >, TPAbstractPolyCnvBase< TrigTauClusterContainer, TrigTauClusterContainer, TrigTauClusterContainer_p4 >, TPAbstractPolyCnvBase< TrigT2JetContainer, TrigT2JetContainer, TrigT2JetContainer_p3 >, TPAbstractPolyCnvBase< TrigPassBitsCollection, TrigPassBitsCollection, TrigPassBitsCollection_p1 >, TPAbstractPolyCnvBase< TrigRoiDescriptorCollection, TrigRoiDescriptorCollection, TrigRoiDescriptorCollection_p2 >, TPAbstractPolyCnvBase< std::vector< const JetTagInfoBase * >, std::vector< const JetTagInfoBase * >, std::vector< TPObjRef > >, TPAbstractPolyCnvBase< TrigTauClusterContainer, TrigTauClusterContainer, TrigTauClusterContainer_p3 >, TPAbstractPolyCnvBase< TrigMuonEFIsolationContainer, TrigMuonEFIsolationContainer, TrigMuonEFIsolationContainer_p1 >, TPAbstractPolyCnvBase< MultiComponentStateOnSurfaceDV, MultiComponentStateOnSurfaceDV, std::vector< TPObjRef > >, TPAbstractPolyCnvBase< RingerRingsContainer, RingerRingsContainer, RingerRingsContainer_p2 >, TPAbstractPolyCnvBase< std::vector< Trk::VxTrackAtVertex * >, std::vector< Trk::VxTrackAtVertex * >, std::vector< TPObjRef > >, TPAbstractPolyCnvBase< std::vector< TrigMonTE >, std::vector< TrigMonTE >, std::vector< TrigMonTE_p1 > >, TPAbstractPolyCnvBase< Analysis::MuonContainer, Analysis::MuonContainer, MuonContainer_p6 >, TPAbstractPolyCnvBase< TrigMissingETContainer, TrigMissingETContainer, TrigMissingETContainer_p3 >, TPAbstractPolyCnvBase< TileHitVector, TileHitVector, TileHitVector_p1 >, TPAbstractPolyCnvBase< DataVector< eflowObject >, DataVector< eflowObject >, std::vector< eflowObject_p2 > >, TPAbstractPolyCnvBase< std::vector< TrigConfSeq >, std::vector< TrigConfSeq >, std::vector< TrigConfSeq_p1 > >, TPAbstractPolyCnvBase< TrigTrtHitCountsCollection, TrigTrtHitCountsCollection, TrigTrtHitCountsCollection_p2 >, TPAbstractPolyCnvBase< JetCollection, JetCollection, ParticleJetContainer_p1 >, TPAbstractPolyCnvBase< TrigL2BjetContainer, TrigL2BjetContainer, TrigL2BjetContainer_p3 >, TPAbstractPolyCnvBase< TrigMuonEFIsolationContainer, TrigMuonEFIsolationContainer, TrigMuonEFIsolationContainer_p2 >, TPAbstractPolyCnvBase< TrigPassFlagsCollection, TrigPassFlagsCollection, TrigPassFlagsCollection_p1 >, TPAbstractPolyCnvBase< DataVector< const Trk::MeasurementBase >, DataVector< const Trk::MeasurementBase >, std::vector< TPObjRef > >, TPAbstractPolyCnvBase< DataVector< eflowObject >, DataVector< eflowObject >, std::vector< eflowObject_p3 > >, TPAbstractPolyCnvBase< TrigTauTracksInfoCollection, TrigTauTracksInfoCollection, TrigTauTracksInfoCollection_p2 >, TPAbstractPolyCnvBase< TrackInVertexVector, TrackInVertexVector, std::vector< TPObjRef > >, TPAbstractPolyCnvBase< TrigTauClusterDetailsContainer, TrigTauClusterDetailsContainer, TrigTauClusterDetailsContainer_p2 >, TPAbstractPolyCnvBase< TrigEMClusterContainer, TrigEMClusterContainer, TrigEMClusterContainer_p4 >, TPAbstractPolyCnvBase< std::vector< Analysis::TauShot * >, std::vector< Analysis::TauShot * >, std::vector< TPObjRef > >, TPAbstractPolyCnvBase< DataVector< eflowObject >, DataVector< eflowObject >, std::vector< eflowObject_p4 > >, TPAbstractPolyCnvBase< std::vector< TrigMonRoi >, std::vector< TrigMonRoi >, std::vector< TrigMonRoi_p1 > >, TPAbstractPolyCnvBase< DataVector< eflowObject >, DataVector< eflowObject >, std::vector< eflowObject_p5 > >, TPAbstractPolyCnvBase< TrigTauContainer, TrigTauContainer, TrigTauContainer_p3 >, TPAbstractPolyCnvBase< TrigEMClusterContainer, TrigEMClusterContainer, TrigEMClusterContainer_p3 >, TPAbstractPolyCnvBase< TrigMuonEFContainer, TrigMuonEFContainer, TrigMuonEFContainer_p2 >, TPAbstractPolyCnvBase< ElectronMuonTopoInfoContainer, ElectronMuonTopoInfoContainer, ElectronMuonTopoInfoContainer_p1 >, TPAbstractPolyCnvBase< TrigInDetTrackCollection, TrigInDetTrackCollection, std::vector< TPObjRef > >, TPAbstractPolyCnvBase< std::vector< const Trk::TrackParameters * >, std::vector< const Trk::TrackParameters * >, std::vector< TPObjRef > >, TPAbstractPolyCnvBase< EventBookkeeperCollection, EventBookkeeperCollection, EventBookkeeperCollection_p2 >, TPAbstractPolyCnvBase< SkimDecisionCollection, SkimDecisionCollection, SkimDecisionCollection_p1 >, TPAbstractPolyCnvBase< std::vector< TrigConfChain >, std::vector< TrigConfChain >, std::vector< TrigConfChain_p1 > >, TPAbstractPolyCnvBase< Trk::TrackStates, Trk::TrackStates, std::vector< TPObjRef > >, TPAbstractPolyCnvBase< CombinedMuonFeatureContainer, CombinedMuonFeatureContainer, CombinedMuonFeatureContainer_p4 >, TPAbstractPolyCnvBase< TrigPhotonContainer, TrigPhotonContainer, TrigPhotonContainer_p3 >, TPAbstractPolyCnvBase< std::vector< TrigMonSeq >, std::vector< TrigMonSeq >, std::vector< TrigMonSeq_p1 > >, TPAbstractPolyCnvBase< EventBookkeeperCollection, EventBookkeeperCollection, EventBookkeeperCollection_p1 >, TPAbstractPolyCnvBase< std::vector< TrigMonAlg >, std::vector< TrigMonAlg >, std::vector< TrigMonAlg_p1 > >, TPAbstractPolyCnvBase< CombinedMuonFeatureContainer, CombinedMuonFeatureContainer, CombinedMuonFeatureContainer_p3 >, TPAbstractPolyCnvBase< DataVector< eflowObject >, DataVector< eflowObject >, std::vector< eflowObject_p1 > >, TPAbstractPolyCnvBase< std::vector< Analysis::TauPi0Candidate * >, std::vector< Analysis::TauPi0Candidate * >, std::vector< TPObjRef > >, TPAbstractPolyCnvBase< CombinedMuonFeatureContainer, CombinedMuonFeatureContainer, CombinedMuonFeatureContainer_p2 >, TPAbstractPolyCnvBase< TrigElectronContainer, TrigElectronContainer, TrigElectronContainer_p3 >, TPAbstractPolyCnvBase< TrigSpacePointCountsCollection, TrigSpacePointCountsCollection, TrigSpacePointCountsCollection_p4 >, TPAbstractPolyCnvBase< Analysis::MuonContainer, Analysis::MuonContainer, MuonContainer_p5 >, TPAbstractPolyCnvBase< TileMuFeatureContainer, TileMuFeatureContainer, TileMuFeatureContainer_p2 >, TPAbstractPolyCnvBase< std::vector< TrigConfSig >, std::vector< TrigConfSig >, std::vector< TrigConfSig_p1 > >, TPAbstractPolyCnvBase< std::vector< TrigMonROBData >, std::vector< TrigMonROBData >, std::vector< TrigMonROBData_p1 > >, TPAbstractPolyCnvBase< Analysis::MuonContainer, Analysis::MuonContainer, MuonContainer_p4 >, TPAbstractPolyCnvBase< LumiBlockCollection, LumiBlockCollection, LumiBlockCollection_p1 >, TPAbstractPolyCnvBase< std::vector< const JetAssociationBase * >, std::vector< const JetAssociationBase * >, std::vector< TPObjRef > >, TPAbstractPolyCnvBase< IsoMuonFeatureContainer, IsoMuonFeatureContainer, IsoMuonFeatureContainer_p3 >, TPAbstractPolyCnvBase< TrigCaloClusterContainer, TrigCaloClusterContainer, TrigCaloClusterContainer_p3 >, and TPAbstractPolyCnvBase< std::vector< TrigMonROB >, std::vector< TrigMonROB >, std::vector< TrigMonROB_p1 > >.

Definition at line 201 of file TPConverter.h.

201 { return typeid(TRANS); }

◆ transientTInfo() [2/2]

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&

Definition at line 479 of file TPConverter.h.

479 { return typeid(TRANS); }

◆ transToPers() [1/2]

void Muon::sTgcPrepDataContainerCnv_p1::transToPers ( const Muon::sTgcPrepDataContainer transCont,
Muon::sTgcPrepDataContainer_p1 persCont,
MsgStream &  log 
)
virtual

Definition at line 68 of file sTgcPrepDataContainerCnv_p1.cxx.

69 {
70 
71  if(!m_isInitialized) {
72  if (this->initialize(log) != StatusCode::SUCCESS) {
73  log << MSG::FATAL << "Could not initialize sTgcPrepDataContainerCnv_p1 " << endmsg;
74  }
75  }
76 
77  // The transient model has a container holding collections and the
78  // collections hold channels.
79  //
80  // The persistent model flattens this so that the persistent
81  // container has two vectors:
82  // 1) all collections, and
83  // 2) all PRDs
84  //
85  // The persistent collections, then only maintain indexes into the
86  // container's vector of all channels.
87  //
88  // So here we loop over all collection and add their channels
89  // to the container's vector, saving the indexes in the
90  // collection.
91 
92  typedef Muon::sTgcPrepDataContainer TRANS;
93 
94  sTgcPrepDataCnv_p1 chanCnv;
95  TRANS::const_iterator it_Coll = transCont->begin();
96  TRANS::const_iterator it_CollEnd = transCont->end();
97  unsigned int pcollIndex = 0; // index to the persistent collection we're filling
98  unsigned int pcollBegin = 0; // index to start of persistent collection we're filling, in long list of persistent PRDs
99  unsigned int pcollEnd = 0; // index to end
100  int numColl = transCont->numberOfCollections();
101  persCont->m_collections.resize(numColl);
102 
103  if (log.level() <= MSG::DEBUG)
104  log << MSG::DEBUG<< " Preparing " << persCont->m_collections.size() << "Collections" <<endmsg;
105 
106  for (pcollIndex = 0; it_Coll != it_CollEnd; ++pcollIndex, ++it_Coll) {
107  // Add in new collection
108  if (log.level() <= MSG::DEBUG)
109  log << MSG::DEBUG<<"New collection"<<endmsg;
110  const Muon::sTgcPrepDataCollection& collection = (**it_Coll);
111  Muon::MuonPRD_Collection_p2& pcollection = persCont->m_collections[pcollIndex]; //get ref to collection we're going to fill
112 
113  pcollBegin = pcollEnd; // Next collection starts at end of previous one.
114  pcollEnd += collection.size();
115 
116  pcollection.m_hashId = collection.identifyHash();
117  pcollection.m_id = collection.identify().get_identifier32().get_compact();
118  pcollection.m_size = collection.size();
119 
120  // Add in channels
121  persCont->m_prds.resize(pcollEnd);
122  persCont->m_prdDeltaId.resize(pcollEnd);
123 
124  unsigned int lastPRDIdHash = 0;
125  for (unsigned int i = 0; i < collection.size(); ++i) {
126  unsigned int pchanIndex=i+pcollBegin;
127 
128  const sTgcPrepData* chan = collection[i]; // channel being converted
129  sTgcPrepData_p1* pchan = &(persCont->m_prds[pchanIndex]); // persistent version to fill
130 
131  chanCnv.transToPers(chan, pchan, log); // convert from sTgcPrepData to sTgcPrepData_p1
132 
133  // persCont->m_prdDeltaId is of data type unsigned short, thus we need to encode the channel (starting from the
134  // collection (module) is in contained) into 16 bits, we do it by storing multilayer, gasGap and channel
135  int multilayer = (m_sTgcId->multilayer(chan->identify())-1); // ranges between 1-2 (1bit)
136  int gasGap = (m_sTgcId->gasGap(chan->identify())-1); // ranges between 1-4 (2bits)
137  int channelType = (m_sTgcId->channelType(chan->identify())); // ranges between 0-2 (2bits)
138  int channel = (m_sTgcId->channel(chan->identify())-sTgcIdHelper::channelMin());
139 
140  // created an unsigned short and store multilayer, gasGap and channel by bit-shifts
141  unsigned short diff = ( channel << 5 | channelType << 3 | gasGap << 1 | multilayer) ;
142  log << MSG::DEBUG << "Translated id=" << chan->identify().get_compact() << " (multilayer=" << multilayer
143  << ", gasGap << " << gasGap << ", channel=" << channel << ") into diff=" << diff << endmsg;
144 
145 
146  persCont->m_prdDeltaId[pchanIndex]=diff; //store delta identifiers, rather than full identifiers
147 
148  if(log.level() <= MSG::DEBUG){
149  Identifier temp(pcollection.m_id + persCont->m_prdDeltaId[pchanIndex]);
150  if (temp!=chan->identify() )
151  log << MSG::WARNING << "PRD ids differ! Transient:"<<chan->identify()<<", From persistent:"<<temp<<" diff = "<<chan->identify().get_compact()-temp.get_compact()<<endmsg;
152  else
153  log << MSG::DEBUG <<" PRD ids match."<<endmsg;
154  if (lastPRDIdHash && lastPRDIdHash != chan->collectionHash() ) log << MSG::WARNING << "Collection Identifier hashes differ!"<<endmsg;
155  lastPRDIdHash = chan->collectionHash();
156  log << MSG::DEBUG<<"Collection hash = "<<lastPRDIdHash<<endmsg;
157 
158  if (chan->collectionHash()!= collection.identifyHash() ) log << MSG::WARNING << "Collection's idHash does not match PRD collection hash!"<<endmsg;
159  if (chan->detectorElement() !=getReadOutElement(chan->identify()))
160  log << MSG::WARNING << "Getting de from identity didn't work!"<<endmsg;
161  else
162  log << MSG::DEBUG<<"Getting de from identity did work "<<endmsg;
163  if (chan->detectorElement() !=getReadOutElement(temp)) log << MSG::WARNING << "Getting de from reconstructed identity didn't work!"<<endmsg;
164  log << MSG::DEBUG<<"Finished loop"<<endmsg;
165  }
166  }
167  }
168  if (log.level() <= MSG::DEBUG)
169  log << MSG::DEBUG<< " *** Writing sTgcPrepDataContainer ***" <<endmsg;
170 }

◆ 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 TPCnvIDContFromIdentifier< TRANS, PERS, CONV >, TPCnvIDCont< TRANS, PERS, CONV >, TPCnvStdVector< TRANS, PERS, CONV >, TPCnvVector< TRANS, PERS, CONV >, TPValVectorCnv< TRANS, PERS, CONV >, TPPolyVectorCnv< TRANS, PERS, CONV >, TPPtrVectorCnv< TRANS, PERS, CONV >, TPConverterConstBase< TRANS, PERS >, T_AtlasHitsVectorCnv< TRANS, PERS, CONV >, and T_AthenaHitsVectorCnv< TRANS, PERS, CONV >.

◆ 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  }

◆ 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 TPConverterWithKeyBase< TRANS, PERS >.

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  }

◆ 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  {
707  assert (index < this->m_pStorage->size());
708  return createTransient( &(*this->m_pStorage)[index], log );
709  }

◆ 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  {
722  assert (index < this->m_pStorage->size());
723  return createTransientWithKey( &(*this->m_pStorage)[index], key, log );
724  }

◆ 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  }

◆ 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_curRecLevel

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

count recursive invocations, to detect recursion

Definition at line 582 of file TPConverter.h.

◆ m_eventCnvTool

ToolHandle< Trk::IEventCnvSuperTool > Muon::sTgcPrepDataContainerCnv_p1::m_eventCnvTool {"Trk::EventCnvSuperTool/EventCnvSuperTool"}
private

Definition at line 43 of file sTgcPrepDataContainerCnv_p1.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_isInitialized

bool Muon::sTgcPrepDataContainerCnv_p1::m_isInitialized {false}
private

Definition at line 44 of file sTgcPrepDataContainerCnv_p1.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_sTgcId

const sTgcIdHelper* Muon::sTgcPrepDataContainerCnv_p1::m_sTgcId {nullptr}
private

Definition at line 41 of file sTgcPrepDataContainerCnv_p1.h.

◆ m_storeGate

StoreGateSvc* Muon::sTgcPrepDataContainerCnv_p1::m_storeGate {nullptr}
private

Definition at line 42 of file sTgcPrepDataContainerCnv_p1.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:
DataVector::reserve
void reserve(size_type n)
Attempt to preallocate enough memory for a specified number of elements.
ITPConverter::typeID
virtual const TPObjRef::typeID_t & typeID() const =0
Return TP typeID for persistent objects produced by this converter.
sTgcIdHelper::multilayer
int multilayer(const Identifier &id) const
Definition: sTgcIdHelper.cxx:1017
TopLevelTPCnvBase::converterForType
ITPConverter * converterForType(const std::type_info &info) const
Find and return a TP converter for a given C++ type info.
Definition: TopLevelTPCnvBase.h:80
TPAbstractPolyCnvBase< TRANS, TRANS, PERS >::m_pStorage
std::vector< PERS > * m_pStorage
the address of the storage vector for persistent representations
Definition: TPConverter.h:579
Muon::MuonPrepDataContainer
Template for Muon PRD containers (which are basically collections of MuonPrepDataCollections).
Definition: MuonPrepDataContainer.h:42
dumpTgcDigiDeadChambers.gasGap
list gasGap
Definition: dumpTgcDigiDeadChambers.py:33
get_generator_info.result
result
Definition: get_generator_info.py:21
ITPConverterFor::m_topConverter
TopLevelTPCnvBase * m_topConverter
top level converter that owns this elemental TP converter it also holds the storage object
Definition: TPConverter.h:299
plotting.yearwise_efficiency.channel
channel
Definition: yearwise_efficiency.py:28
python.Constants.FATAL
int FATAL
Definition: Control/AthenaCommon/python/Constants.py:19
TPAbstractPolyCnvBase< TRANS, TRANS, PERS >::toPersistentWithKey_impl
TPObjRef toPersistentWithKey_impl(const TRANS *trans, const std::string &key, MsgStream &log)
Convert transient object to persistent representation.
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
IdentifiableContainerMT::addCollection
virtual StatusCode addCollection(const T *coll, IdentifierHash hashId) override final
insert collection into container with id hash if IDC should not take ownership of collection,...
Definition: IdentifiableContainerMT.h:300
Muon::sTgcPrepDataContainerCnv_p1::m_isInitialized
bool m_isInitialized
Definition: sTgcPrepDataContainerCnv_p1.h:44
Muon::MuonPRD_Container_p2::m_prds
std::vector< PRD > m_prds
Definition: MuonPRD_Container_p2.h:31
TPObjRef::typeID_t::value
unsigned value() const
Returns the type ID as an integer.
Definition: TPObjRef.h:46
index
Definition: index.py:1
sTgcIdHelper::channelID
Identifier channelID(int stationName, int stationEta, int stationPhi, int multilayer, int gasGap, int channelType, int channel) const
Definition: sTgcIdHelper.cxx:886
TPPolyCnvBase< TRANS, TRANS, PERS >::createTransient
virtual TRANS * createTransient(const PERS *persObj, MsgStream &log)
Create transient representation of a persistent object.
mc.diff
diff
Definition: mc.SFGenPy8_MuMu_DD.py:14
Muon::sTgcPrepDataContainerCnv_p1::m_sTgcId
const sTgcIdHelper * m_sTgcId
Definition: sTgcPrepDataContainerCnv_p1.h:41
TopLevelTPCnvBase::converterForRef
ITPConverter * converterForRef(const TPObjRef &ref) const
Find and return a TP converter for persistent type referenced by ref.
Definition: TopLevelTPCnvBase.h:89
TPPolyCnvBase< TRANS, TRANS, PERS >::createTransientWithKey
virtual TRANS * createTransientWithKey(const PERS *persObj, const std::string &key, MsgStream &log)
Create transient representation of a persistent object, with SG key.
Muon::MuonPrepDataCollection::setIdentifier
virtual void setIdentifier(Identifier id)
TPAbstractPolyCnvBase< TRANS, TRANS, PERS >::m_ignoreRecursion
bool m_ignoreRecursion
if true, do not throw errors in case of recursion.
Definition: TPConverter.h:588
ITPConverterFor::topConverter
virtual TopLevelTPCnvBase * topConverter()
return the top-level converter for this elemental TP converter
Definition: TPConverter.h:191
TPObjRef
Definition: TPObjRef.h:20
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
Muon::sTgcPrepDataContainerCnv_p1::m_eventCnvTool
ToolHandle< Trk::IEventCnvSuperTool > m_eventCnvTool
Definition: sTgcPrepDataContainerCnv_p1.h:43
Muon::sTgcPrepDataContainerCnv_p1::getReadOutElement
const MuonGM::sTgcReadoutElement * getReadOutElement(const Identifier &id) const
Definition: sTgcPrepDataContainerCnv_p1.cxx:62
TPAbstractPolyCnvBase< TRANS, TRANS, PERS >::transToPers
virtual void transToPers(const TRANS *transObj, PERS *persObj, MsgStream &log)=0
Convert transient representation to persistent one.
ITPConverterFor::m_wasUsedForReading
bool m_wasUsedForReading
flag set when using this converter for reading triggers search for a new converter before writing,...
Definition: TPConverter.h:306
python.setupRTTAlg.size
int size
Definition: setupRTTAlg.py:39
StoreGateSvc
The Athena Transient Store API.
Definition: StoreGateSvc.h:128
sTgcPrepDataCnv_p1::createsTgcPrepData
static Muon::sTgcPrepData createsTgcPrepData(const Muon::sTgcPrepData_p1 *persObj, const Identifier clusId, const MuonGM::sTgcReadoutElement *m_detEl, MsgStream &log)
Definition: sTgcPrepDataCnv_p1.cxx:17
Muon::MuonPrepDataCollection::identifyHash
virtual IdentifierHash identifyHash() const override final
IdentifiableContainerMT::numberOfCollections
virtual size_t numberOfCollections() const override final
return number of collections
Definition: IdentifiableContainerMT.h:216
Muon::MuonPRD_Collection_p2::m_size
unsigned short m_size
Collection size into master collection Note I use a short.
Definition: MuonPRD_Collection_p2.h:51
sTgcPrepDataCnv_p1::transToPers
void transToPers(const Muon::sTgcPrepData *transObj, Muon::sTgcPrepData_p1 *persObj, MsgStream &log)
Definition: sTgcPrepDataCnv_p1.cxx:58
sTgcIdHelper::channel
int channel(const Identifier &id) const override
Definition: sTgcIdHelper.cxx:1027
ITPConverterFor::converterForType
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
Identifier32::get_compact
value_type get_compact(void) const
Get the compact id.
Definition: Identifier32.h:171
lumiFormat.i
int i
Definition: lumiFormat.py:92
ReadCellNoiseFromCool.chan
chan
Definition: ReadCellNoiseFromCool.py:52
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
ITPConverterFor::m_pStorageTID
TPObjRef::typeID_t m_pStorageTID
TP Ref typeID for the persistent objects this converter is creating.
Definition: TPConverter.h:292
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
sTgcPrepDataCnv_p1
Definition: sTgcPrepDataCnv_p1.h:22
Muon::MuonPRD_Collection_p2
Class to hold the persistent representation of MuonPRD_Collection.
Definition: MuonPRD_Collection_p2.h:22
MuonGM::sTgcReadoutElement
An sTgcReadoutElement corresponds to a single STGC module; therefore typicaly a barrel muon station c...
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/sTgcReadoutElement.h:28
master.flag
bool flag
Definition: master.py:29
Muon::MuonPrepDataCollection::identify
virtual Identifier identify() const override final
sTgcIdHelper::gasGap
int gasGap(const Identifier &id) const override
get the hashes
Definition: sTgcIdHelper.cxx:1020
TPAbstractPolyCnvBase< TRANS, TRANS, PERS >::persToTransWithKey
virtual void persToTransWithKey(const PERS *persObj, TRANS *transObj, const std::string &, MsgStream &log)
Convert persistent representation to transient one.
Definition: TPConverter.h:376
Trk::ITrkEventCnvTool
Definition: ITrkEventCnvTool.h:31
IdentifiableContainerMT::end
const_iterator end() const
return const_iterator for end of container
Definition: IdentifiableContainerMT.h:242
IdentifiableContainerMT::begin
const_iterator begin() const
return const_iterator for first entry
Definition: IdentifiableContainerMT.h:236
ITPConverterFor::m_topConverterRuntime
TopLevelTPCnvBase * m_topConverterRuntime
top level converter "owning" this TP converter at runtime (different from m_topConverter in case the ...
Definition: TPConverter.h:302
Muon::MuonPRD_Container_p2::m_collections
std::vector< MuonPRD_Collection_p2 > m_collections
Definition: MuonPRD_Container_p2.h:29
Muon::MuonPrepDataCollection
Template to hold collections of MuonPrepRawData objects.
Definition: MuonPrepDataCollection.h:46
ITPConverterFor::converterForRef
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
Muon::sTgcPrepDataContainerCnv_p1::initialize
StatusCode initialize(MsgStream &log)
Definition: sTgcPrepDataContainerCnv_p1.cxx:22
python.PyKernel.detStore
detStore
Definition: PyKernel.py:41
sTgcIdHelper::channelMin
static int channelMin()
Definition: sTgcIdHelper.cxx:1050
PERS
RpcSectorLogicContainer_p1 PERS
Definition: RpcSectorLogicContainerCnv.h:13
sTgcIdHelper::valid
bool valid(const Identifier &id) const
Definition: sTgcIdHelper.cxx:690
Trk::PrepRawDataType::sTgcPrepData
@ sTgcPrepData
RpcSectorLogicContainer_p1
Class to represent.
Definition: RpcSectorLogicContainer_p1.h:19
DataVector::push_back
value_type push_back(value_type pElem)
Add an element to the end of the collection.
Muon::MuonPRD_Collection_p2::m_hashId
unsigned int m_hashId
Hash Identifier of this collection.
Definition: MuonPRD_Collection_p2.h:46
TPAbstractPolyCnvBase< TRANS, TRANS, PERS >::transToPersWithKey
virtual void transToPersWithKey(const TRANS *transObj, PERS *persObj, const std::string &, MsgStream &log)
Convert transient representation to persistent one.
Definition: TPConverter.h:392
sTgcIdHelper::get_detectorElement_hash
virtual int get_detectorElement_hash(const Identifier &id, IdentifierHash &hash_id) const override
Definition: sTgcIdHelper.cxx:287
MuonIdHelper::module_hash_max
size_type module_hash_max() const
the maximum hash value
Definition: MuonIdHelper.cxx:752
ITPConverterFor::initPrivateConverters
virtual void initPrivateConverters(TopLevelTPCnvBase *)
Definition: TPConverter.h:187
TPAbstractPolyCnvBase< TRANS, TRANS, PERS >::m_recursive
bool m_recursive
if true, work in recursion-safe way (slower)
Definition: TPConverter.h:585
Muon::MuonPRD_Container_p2::m_prdDeltaId
std::vector< unsigned short > m_prdDeltaId
The delta identifiers of the PRD i.e.
Definition: MuonPRD_Container_p2.h:33
Muon::sTgcPrepDataContainerCnv_p1::m_storeGate
StoreGateSvc * m_storeGate
Definition: sTgcPrepDataContainerCnv_p1.h:42
ITPConverterFor::m_pStorageTIDvalue
unsigned m_pStorageTIDvalue
m_pStorageTID converted to integer value
Definition: TPConverter.h:295
Identifier::get_compact
value_type get_compact(void) const
Get the compact id.
AtlasDetectorID::show_to_string
std::string show_to_string(Identifier id, const IdContext *context=0, char sep='.') const
or provide the printout in string form
Definition: AtlasDetectorID.cxx:574
ref
const boost::regex ref(r_ef)
Trk::ITrkEventCnvTool::getDetectorElement
virtual const Trk::TrkDetElementBase * getDetectorElement(const Identifier &id, const IdentifierHash &idHash) const =0
Returns the detectorElement associated with this Identifier & Hash.
Muon::sTgcPrepDataCollection
MuonPrepDataCollection< sTgcPrepData > sTgcPrepDataCollection
Definition: MuonPrepDataCollection.h:112
TPAbstractPolyCnvBase< TRANS, TRANS, PERS >::persToTrans
virtual void persToTrans(const PERS *persObj, TRANS *transObj, MsgStream &log)=0
Convert persistent representation to transient one.
DEBUG
#define DEBUG
Definition: page_access.h:11
python.CaloCondTools.log
log
Definition: CaloCondTools.py:20
ReadCalibFromCool.typeName
typeName
Definition: ReadCalibFromCool.py:477
ITPConverter
Definition: TPTools/TPTools/ITPConverter.h:32
ITPConverter::converterNotFound
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
Definition: ITPConverter.cxx:22
TPObjRef::typeID
unsigned typeID() const
returns the type ID (as integer) of the referenced object
Definition: TPObjRef.h:71
IdentifierHash
Definition: IdentifierHash.h:38
Identifier::get_identifier32
Identifier32 get_identifier32(void) const
Get the 32-bit version Identifier, will be invalid if >32 bits needed.
Muon::sTgcPrepDataContainerCnv_p1::persToTrans
virtual void persToTrans(const Muon::sTgcPrepDataContainer_p1 *persCont, Muon::sTgcPrepDataContainer *transCont, MsgStream &log)
Definition: sTgcPrepDataContainerCnv_p1.cxx:172
sTgcIdHelper::channelType
int channelType(const Identifier &id) const
Definition: sTgcIdHelper.cxx:1022
python.compressB64.c
def c
Definition: compressB64.py:93
DataVector::size
size_type size() const noexcept
Returns the number of elements in the collection.
TPAbstractPolyCnvBase< TRANS, TRANS, PERS >::m_curRecLevel
int m_curRecLevel
count recursive invocations, to detect recursion
Definition: TPConverter.h:582
Muon::MuonPRD_Collection_p2::m_id
unsigned int m_id
Identifier of this collection.
Definition: MuonPRD_Collection_p2.h:43
mapkey::key
key
Definition: TElectronEfficiencyCorrectionTool.cxx:37