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

#include <CaloClusterContainerCnv_p5.h>

Inheritance diagram for CaloClusterContainerCnv_p5:
Collaboration diagram for CaloClusterContainerCnv_p5:

Public Types

using base_class = TPConverterConstBase
 
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

virtual void persToTrans (const CaloClusterContainer_p5 *pers, CaloClusterContainer *trans, MsgStream &log) const override
 
virtual void transToPers (const CaloClusterContainer *trans, CaloClusterContainer_p5 *pers, MsgStream &log) const override
 
virtual void transToPers (const TRANS *transObj, PERS *persObj, MsgStream &log) const=0
 Convert transient representation to persistent one. More...
 
virtual void transToPers (const TRANS *transObj, PERS *persObj, MsgStream &log) override final
 
virtual void persToTrans (const PERS *persObj, TRANS *transObj, MsgStream &log) const=0
 Convert persistent representation to transient one. More...
 
virtual void persToTrans (const PERS *persObj, TRANS *transObj, MsgStream &log) override final
 
virtual void persToTrans (const PERS *persObj, TRANS *transObj, MsgStream &log) const =0
 Convert persistent representation to transient one. More...
 
virtual void persToTrans (const PERS *persObj, TRANS *transObj, MsgStream &log) override final
 Convert persistent representation to transient one. More...
 
virtual void transToPers (const TRANS *transObj, PERS *persObj, MsgStream &log) const =0
 Convert transient representation to persistent one. More...
 
virtual void transToPers (const TRANS *transObj, PERS *persObj, MsgStream &log) override final
 Convert transient representation to persistent one. More...
 
virtual TRANS * createTransientConst (const PERS *persObj, MsgStream &log) const
 
virtual PERScreatePersistentConst (const TRANS *transObj, MsgStream &log) const
 
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 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 Types

typedef ElementLinkCnv_p2< ElementLink< CaloShowerContainer > >::State ShowerLinkState
 
typedef ElementLinkCnv_p2< ElementLink< CaloCellLinkContainer > >::State CellLinkState
 

Private Member Functions

void persToTrans (const CaloClusterContainer_p5::CaloCluster_p *pers, CaloCluster *trans, ShowerLinkState &showerLinkState, CellLinkState &cellLinkState, MsgStream &) const
 
void transToPers (const CaloCluster *trans, CaloClusterContainer_p5::CaloCluster_p *pers, ShowerLinkState &showerLinkState, CellLinkState &cellLinkState, MsgStream &) const
 

Private Attributes

CaloTowerSegCnv_p1 m_caloTowerSegCnv
 
P4EEtaPhiMCnv_p2 m_P4EEtaPhiMCnv
 
ElementLinkCnv_p2< ElementLink< CaloShowerContainer > > m_showerElementLinkCnv
 
ElementLinkCnv_p2< ElementLink< CaloCellLinkContainer > > m_cellElementLinkCnv
 

Detailed Description

Definition at line 25 of file CaloClusterContainerCnv_p5.h.

Member Typedef Documentation

◆ base_class

template<class TRANS , class PERS >
using TPConverterConstBase< TRANS, PERS >::base_class = TPConverterConstBase
inherited

Definition at line 779 of file TPConverter.h.

◆ CellLinkState

Definition at line 49 of file CaloClusterContainerCnv_p5.h.

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

◆ ShowerLinkState

Definition at line 47 of file CaloClusterContainerCnv_p5.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.

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

◆ createPersistentConst()

template<class TRANS , class PERS >
virtual PERS* TPConverterConstBase< TRANS, PERS >::createPersistentConst ( const TRANS *  transObj,
MsgStream &  log 
) const
virtualinherited

◆ 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()

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

◆ createTransientConst()

template<class TRANS , class PERS >
virtual TRANS* TPConverterConstBase< TRANS, PERS >::createTransientConst ( const PERS persObj,
MsgStream &  log 
) const
virtualinherited

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

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

◆ 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/6]

void CaloClusterContainerCnv_p5::persToTrans ( const CaloClusterContainer_p5 pers,
CaloClusterContainer trans,
MsgStream &  log 
) const
overridevirtual

Definition at line 29 of file CaloClusterContainerCnv_p5.cxx.

32 {
33  if (log.level() <= MSG::DEBUG) log<< MSG::DEBUG << "Reading CaloClusterContainerCnv_p5" << endmsg;
34 
35  // reset element link converters, and provide container name lookup table
36  ShowerLinkState showerLinkState (pers->m_linkNames);
37  CellLinkState cellLinkState (pers->m_linkNames);
38 
39  // Use data pool for clusters to avoid calling constructor for each event
41 
42  trans->clear (SG::VIEW_ELEMENTS);
43  trans->reserve(pers->m_vec.size());
44 
47 
48  std::vector<float> temp_Moments;
49  Compressor A;
50  A.expandToFloat( pers->m_momentContainer.m_Mvalue, temp_Moments); // unpacks moments
51 
52  std::vector<float>::const_iterator i_mom = temp_Moments.begin();
53  std::vector<float>::const_iterator i_mom_e = temp_Moments.end();
54 
55  const std::vector<unsigned short>& keys = pers->m_momentContainer.m_Mkey;
56  unsigned int nkeys = keys.size();
57 
58  unsigned int c1=0;
59 
60  std::vector<float> tmp_badChannelEta;
61  std::vector<float> tmp_badChannelPhi;
62  Compressor B;
63  B.expandToFloat(pers->m_badEtaList,tmp_badChannelEta);
64  B.expandToFloat(pers->m_badPhiList,tmp_badChannelPhi);
65 
66  std::vector<float> tmp_rawE;
67  std::vector<float> tmp_rawEtaPhiM;
68  Compressor C;
69  C.expandToFloat(pers->m_rawE,tmp_rawE);
70  std::vector<float>::const_iterator iraw1 = tmp_rawE.begin();
71  std::vector<float>::const_iterator iraw2 = tmp_rawE.end();
72 
73  Compressor D;
74  D.expandToFloat(pers->m_rawEtaPhiM,tmp_rawEtaPhiM);
75  std::vector<float>::const_iterator iraw3 = tmp_rawEtaPhiM.begin();
76  std::vector<float>::const_iterator iraw4 = tmp_rawEtaPhiM.end();
77 
78  std::vector<short>::const_iterator ibad1 = pers->m_badClusIndexList.begin();
79  std::vector<short>::const_iterator ibad2 = pers->m_badClusIndexList.end();
80  int nbad=0;
81 
82  bool mom_overrun_err = false;
83  bool store_overrun_err = false;
84  bool raw_overrun_err = false;
85  size_t dataStore_size = pers->m_dataStore.size();
86 
87  bool fillBad=true;
88  if (tmp_badChannelEta.size() != pers->m_badClusIndexList.size() ||
89  tmp_badChannelPhi.size() != pers->m_badClusIndexList.size() ||
90  pers->m_badLayerStatusList.size() != pers->m_badClusIndexList.size()) {
91  log << MSG::WARNING << " problem to decode bad channel information, not filled..." << endmsg;
92  fillBad=false;
93  }
94 
95  short index=0;
96  for(;itp!=itp_e;++itp) {
97  index++;
98 
99  CaloCluster* transCluster = clusters.nextElementPtr();// Get next ptr for next cluster
100  persToTrans(&(*itp),transCluster,
101  showerLinkState,
102  cellLinkState,
103  log); //Convert Cluster-quantities
104 
105  CaloSamplingData *trDS =&(transCluster->m_dataStore);
106 
107  trDS->m_varTypePattern = pers->m_varTypePattern;
108  int nVar=trDS->getNumberOfVariableTypes();
109  int nSamplings=trDS->getNumberOfSamplings();
110 
111  typedef CaloSamplingData::variable_key_type vartype;
112  typedef CaloSamplingData::sampling_key_type samptype;
113 
114  for (int i=0;i<nVar;++i) {// here loops to read them in ...
115  if (testbit (trDS->m_varTypePattern, i)) {
116 
117  // can be optimized: no decoding for each variable.
118  for (int j=0;j<nSamplings; ++j){
119 
120  if ( testbit(transCluster->m_samplingPattern, j) ){
121  float val;
122  if (c1 < dataStore_size)
123  val = pers->m_dataStore[c1++];
124  else {
125  val = 0;
126  if (!store_overrun_err) {
127  REPORT_MESSAGE_WITH_CONTEXT(MSG::WARNING,
128  "CaloClusterContainerCnv_p5")
129  << "Corrupted data: data store array overrun "
130  << pers->m_vec.size() << " clusters "
131  << nkeys << " moment keys "
132  << temp_Moments.size() << " total moments.";
133  store_overrun_err = true;
134  }
135  }
136  trDS->storeData(static_cast<vartype>(i),
137  static_cast<samptype>(j),
138  val);
139  }
140  else{
141 
142  trDS->removeVariable(static_cast<vartype>(i),
143  static_cast<samptype>(j));
144  //std::cout<<"a:0"<<"\t";
145  }
146  }
147  // std::cout<<std::endl;
148  }
149  else
150  trDS->removeVariable(static_cast<vartype>(i));
151  }
152 
153  transCluster->m_barrel= (bool)(0x001ff00f & transCluster->m_samplingPattern);
154  transCluster->m_endcap= (bool)(0x00e00ff0 & transCluster->m_samplingPattern);
155  // std::cout<<" <<< Read"<<std::endl;
156 
157 
158  //Convert moment store
160  for (unsigned short i=0;i<nkeys;++i) {
161  float val;
162  if (i_mom == i_mom_e) {
163  val = 0;
164  if (!mom_overrun_err) {
165  REPORT_MESSAGE_WITH_CONTEXT(MSG::WARNING,
166  "CaloClusterContainerCnv_p5")
167  << "Corrupted data: moment array overrun "
168  << pers->m_vec.size() << " clusters "
169  << nkeys << " moment keys "
170  << temp_Moments.size() << " total moments.";
171  mom_overrun_err = true;
172  }
173  }
174  else {
175  val = *i_mom;
176  ++i_mom;
177  }
178  transStore.insert (transStore.end(), CaloClusterMomentStore::moment_store::value_type( keys[i], val ) );
179  }
180  transCluster->m_momentStore.setMomentStore (std::move (transStore));
181 
182  // fill bad channel information
183  transCluster->resetBadChannel();
184  if (fillBad){
185  while (ibad1 != ibad2 && (*ibad1) ==index) {
186  float eta = tmp_badChannelEta[nbad] + transCluster->eta();
187  float phi = CaloPhiRange::fix(tmp_badChannelPhi[nbad] + transCluster->phi());
188  short status=pers->m_badLayerStatusList[nbad];
190  CaloBadChannel flag = CaloBadChannel( ((status>>8) & 0xff) );
192  // std::cout << " add bad channel data " << transCluster << " " << eta << " " << phi << " " << layer << " " << status << " " << flag.packedData() << std::endl;
193  transCluster->addBadChannel(data);
194  ++ibad1;
195  ++nbad;
196  }
197  }
198 
199 // fill raw E,eta,phi,M
200  if (iraw1 != iraw2) {
201  if (std::fabs(transCluster->e())>0.1) {
202  transCluster->m_rawE = (*iraw1) * transCluster->e();
203  }
204  else
205  transCluster->m_rawE = (*iraw1);
206  ++iraw1;
207  }
208  if (iraw3 != iraw4) {
209  transCluster->m_rawEta = (*iraw3) + transCluster->eta();
210  ++iraw3;
211  }
212  if (iraw3 != iraw4) {
213  transCluster->m_rawPhi = CaloPhiRange::fix((*iraw3)+transCluster->phi());
214  ++iraw3;
215  }
216  if (iraw3 == iraw4 && !raw_overrun_err) {
217  REPORT_MESSAGE_WITH_CONTEXT(MSG::WARNING,
218  "CaloClusterContainerCnv_p5")
219  << "Corrupted data: raw array overrun "
220  << pers->m_vec.size() << " clusters "
221  << tmp_rawE.size() << " raw values.";
222  raw_overrun_err = true;
223  }
224  if (iraw3 != iraw4) {
225  transCluster->m_rawM = (*iraw3);
226  ++iraw3;
227  }
228  // std::cout << " perstotrans rawE/eta/phi/M " << transCluster->m_rawE << " " << transCluster->m_rawEta << " " <<
229  // transCluster->m_rawPhi << " " << transCluster->m_rawM << std::endl;
230 
231  // no alt calib information available in p5 persistent
232  transCluster->m_altE=0.;
233  transCluster->m_altEta=0.;
234  transCluster->m_altPhi=0.;
235  transCluster->m_altM=0.;
236 
237  trans->push_back(transCluster);
238  }
239 
240  if (i_mom != i_mom_e && !mom_overrun_err) {
241  REPORT_MESSAGE_WITH_CONTEXT(MSG::WARNING,
242  "CaloClusterContainerCnv_p5")
243  << "Corrupted data: not all moments read "
244  << pers->m_vec.size() << " clusters "
245  << nkeys << " moment keys "
246  << temp_Moments.size() << " total moments "
247  << i_mom-temp_Moments.begin() << " read.";
248  }
249 
250  if (c1 != dataStore_size && !store_overrun_err) {
251  REPORT_MESSAGE_WITH_CONTEXT(MSG::WARNING,
252  "CaloClusterContainerCnv_p5")
253  << "Corrupted data: not all data store members read "
254  << dataStore_size << " elements "
255  << c1 << " read.";
256  }
257 
258  if (iraw1 != iraw2 && !raw_overrun_err) {
259  REPORT_MESSAGE_WITH_CONTEXT(MSG::WARNING,
260  "CaloClusterContainerCnv_p5")
261  << "Corrupted data: not all raw values read "
262  << pers->m_vec.size() << " clusters "
263  << tmp_rawE.size() << " raw values "
264  << iraw1-tmp_rawE.begin() << " read.";
265  }
266 
267  if (iraw3 != iraw4 && !raw_overrun_err) {
268  REPORT_MESSAGE_WITH_CONTEXT(MSG::WARNING,
269  "CaloClusterContainerCnv_p5")
270  << "Corrupted data: not all raw values read "
271  << pers->m_vec.size() << " clusters "
272  << tmp_rawEtaPhiM.size() << " raw values "
273  << iraw3-tmp_rawEtaPhiM.begin() << " read.";
274  }
275 
276 
277  if (ibad1 != ibad2) {
278  REPORT_MESSAGE_WITH_CONTEXT(MSG::WARNING,
279  "CaloClusterContainerCnv_p5")
280  << "Corrupted data: not all bad data read "
281  << pers->m_badClusIndexList.size() << " bad values "
282  << nbad << " read.";
283  }
284 
285  //Convert TowerSegment
286  CaloTowerSeg seg;
288  trans->setTowerSeg (seg);
289 }

◆ persToTrans() [2/6]

void CaloClusterContainerCnv_p5::persToTrans ( const CaloClusterContainer_p5::CaloCluster_p pers,
CaloCluster trans,
ShowerLinkState showerLinkState,
CellLinkState cellLinkState,
MsgStream &  log 
) const
private

Definition at line 501 of file CaloClusterContainerCnv_p5.cxx.

506 {
508  trans->setBasicEnergy (pers->m_basicSignal);
509  trans->setTime (pers->m_time);
510  trans->m_samplingPattern=pers->m_samplingPattern;
511  trans->m_eta0=pers->m_eta0;
512  trans->m_phi0=pers->m_phi0;
513  trans->m_status = CaloRecoStatus(pers->m_caloRecoStatus);
514  trans->setClusterSize (pers->m_clusterSize);
515 
516  //Convert base class and element links
518  m_showerElementLinkCnv.persToTrans(showerLinkState, pers->m_dataLink, trans->m_dataLink,log);
519  m_cellElementLinkCnv.persToTrans(cellLinkState, pers->m_cellLink, trans->m_cellLink,log);
520  trans->setAthenaBarCode (IAthenaBarCode::UNDEFINEDBARCODE);
521 
522 }

◆ persToTrans() [3/6]

template<class TRANS , class PERS >
virtual void TPConverterConstBase< TRANS, PERS >::persToTrans ( const PERS persObj,
TRANS *  transObj,
MsgStream &  log 
) const
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 TPCnvVectorConst< TrigCaloClusterContainer, TrigCaloClusterContainer_p3, TrigCaloClusterCnv_p3 >, TPCnvStdVectorConst< std::vector< TrigMonTE >, std::vector< TrigMonTE_p1 >, TrigMonTECnv_p1 >, TPCnvStdVectorConst< std::vector< TrigMonSeq >, std::vector< TrigMonSeq_p1 >, TrigMonSeqCnv_p1 >, TPCnvStdVectorConst< std::vector< TrigMonRoi >, std::vector< TrigMonRoi_p1 >, TrigMonRoiCnv_p1 >, TPCnvStdVectorConst< std::vector< TrigMonROBData >, std::vector< TrigMonROBData_p1 >, TrigMonROBDataCnv_p1 >, TPCnvStdVectorConst< std::vector< TrigMonROB >, std::vector< TrigMonROB_p1 >, TrigMonROBCnv_p1 >, TPCnvStdVectorConst< std::vector< TrigMonAlg >, std::vector< TrigMonAlg_p1 >, TrigMonAlgCnv_p1 >, TPCnvStdVectorConst< std::vector< TrigConfSig >, std::vector< TrigConfSig_p1 >, TrigConfSigCnv_p1 >, TPCnvStdVectorConst< std::vector< TrigConfSeq >, std::vector< TrigConfSeq_p1 >, TrigConfSeqCnv_p1 >, TPCnvStdVectorConst< std::vector< TrigConfChain >, std::vector< TrigConfChain_p1 >, TrigConfChainCnv_p1 >, TPCnvStdVectorConst< std::vector< TrigConfAlg >, std::vector< TrigConfAlg_p1 >, TrigConfAlgCnv_p1 >, TPPtrVectorCnvConst< std::vector< const JetTagInfoBase * >, std::vector< TPObjRef >, ITPConverterFor< JetTagInfoBase > >, TPPtrVectorCnvConst< std::vector< const JetAssociationBase * >, std::vector< TPObjRef >, ITPConverterFor< JetAssociationBase > >, TPCnvVectorConst< RingerRingsContainer, RingerRingsContainer_p2, RingerRingsCnv_p2 >, TPCnvStdVectorConst< TRANS, PERS, CONV >, TPCnvVectorConst< TRANS, PERS, CONV >, TPPtrVectorCnvConst< TRANS, PERS, CONV >, T_TilePoolContainerCnv< TRANS, PERS, CONV >, TPConverterWithKeyBase< TRANS, PERS >, TPCnvVectorConst< JetCollection, ParticleJetContainer_p1, ParticleJetCnv_p1 >, TPCnvVectorConst< Analysis::MuonContainer, MuonContainer_p6, MuonCnv_p6 >, TPCnvVectorConst< Analysis::MuonContainer, MuonContainer_p5, MuonCnv_p5 >, TPCnvVectorConst< Analysis::MuonContainer, MuonContainer_p4, MuonCnv_p4 >, and TPCnvVectorConst< Analysis::MuonContainer, MuonContainer_p3, MuonCnv_p3 >.

◆ persToTrans() [4/6]

virtual void TPConverterConstBase< TRANS, PERS >::persToTrans

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

◆ persToTrans() [5/6]

virtual void TPConverterConstBase< TRANS, PERS >::persToTrans
inlinefinaloverride

Definition at line 807 of file TPConverter.h.

810  {
811  return const_cast<const TPConverterConstBase*>(this)->persToTrans (persObj, transObj, log);
812  }

◆ persToTrans() [6/6]

template<class TRANS , class PERS >
virtual void TPConverterConstBase< TRANS, PERS >::persToTrans ( const PERS persObj,
TRANS *  transObj,
MsgStream &  log 
)
inlinefinaloverridevirtualinherited

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

Implements TPAbstractPolyCnvBase< TRANS, TRANS, PERS >.

Definition at line 807 of file TPConverter.h.

810  {
811  return const_cast<const TPConverterConstBase*>(this)->persToTrans (persObj, transObj, log);
812  }

◆ 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< std::vector< Analysis::TauShot * >, std::vector< Analysis::TauShot * >, std::vector< TPObjRef > >, TPAbstractPolyCnvBase< TrigEMClusterContainer, TrigEMClusterContainer, TrigEMClusterContainer_p4 >, TPAbstractPolyCnvBase< DataVector< eflowObject >, DataVector< eflowObject >, std::vector< eflowObject_p4 > >, TPAbstractPolyCnvBase< std::vector< TrigMonRoi >, std::vector< TrigMonRoi >, std::vector< TrigMonRoi_p1 > >, TPAbstractPolyCnvBase< TrigMuonEFContainer, TrigMuonEFContainer, TrigMuonEFContainer_p2 >, TPAbstractPolyCnvBase< DataVector< eflowObject >, DataVector< eflowObject >, std::vector< eflowObject_p5 > >, TPAbstractPolyCnvBase< TrigTauContainer, TrigTauContainer, TrigTauContainer_p3 >, TPAbstractPolyCnvBase< TrigEMClusterContainer, TrigEMClusterContainer, TrigEMClusterContainer_p3 >, 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/6]

void CaloClusterContainerCnv_p5::transToPers ( const CaloCluster trans,
CaloClusterContainer_p5::CaloCluster_p pers,
ShowerLinkState showerLinkState,
CellLinkState cellLinkState,
MsgStream &  log 
) const
private

Definition at line 525 of file CaloClusterContainerCnv_p5.cxx.

530 {
531  pers->m_basicSignal=trans->getBasicEnergy();
532  pers->m_time=trans->getTime();
533  pers->m_samplingPattern=trans->m_samplingPattern;
534  pers->m_eta0=trans->eta0();
535  pers->m_phi0=trans->phi0();
536  pers->m_caloRecoStatus=trans->m_status.getStatusWord();
537  pers->m_clusterSize=trans->getClusterSize();
538 
539  //Convert base class and element links
540  P4EEtaPhiM tmp = *trans;
542  m_showerElementLinkCnv.transToPers(showerLinkState, trans->m_dataLink, pers->m_dataLink,log);
543  m_cellElementLinkCnv.transToPers(cellLinkState, trans->m_cellLink, pers->m_cellLink,log);
544 }

◆ transToPers() [2/6]

void CaloClusterContainerCnv_p5::transToPers ( const CaloClusterContainer trans,
CaloClusterContainer_p5 pers,
MsgStream &  log 
) const
overridevirtual

Definition at line 292 of file CaloClusterContainerCnv_p5.cxx.

295 {
296  if (log.level() <= MSG::DEBUG) log<< MSG::DEBUG << "Writing CaloClusterContainerCnv_p5" << endmsg;
297 
298 
299  // reset element link converters, and provide container name lookup table
300  ShowerLinkState showerLinkState (pers->m_linkNames);
301  CellLinkState cellLinkState (pers->m_linkNames);
302 
303  pers->m_vec.resize(trans->size());
307 
308  pers->m_badClusIndexList.clear();
309  pers->m_badLayerStatusList.clear();
310  pers->m_badEtaList.clear();
311  pers->m_badPhiList.clear();
312 
313  pers->m_rawEtaPhiM.clear();
314  pers->m_rawE.clear();
315 
316  // Set varTypePattern to the OR of the patterns of all clusters.
317  // (For samplings.)
318  // Trigger can make cluster collections with multiple pattern masks!
319  //
320  // Also pick up moment keys here. Trigger can make clusters with no
321  // stored moments, so we need to look until we find one that isn't empty.
322  // Store the moment keys and their number.
323  pers->m_varTypePattern=0;
324  pers->m_momentContainer.m_Mkey.clear();
325  pers->m_momentContainer.m_nMoments = 0;
326  for (CaloClusterContainer::const_iterator it2 = it; it2 != it_e; ++it2)
327  {
328  const CaloCluster& cl = **it2;
329  const CaloClusterMomentStore& ms = cl.m_momentStore;
330  pers->m_varTypePattern |= cl.m_dataStore.m_varTypePattern;
331 
332  if (pers->m_momentContainer.m_nMoments == 0 && ms.size() != 0) {
334  int nMom=ms.size();
335  pers->m_momentContainer.m_nMoments = nMom;
336  for (int w=0; w<nMom; w++){ // here stores moment keys per container not cluster
337  pers->m_momentContainer.m_Mkey.push_back(mit.getMomentType());
338  ++mit;
339  }
340  }
341  else if (ms.size() > 0 && pers->m_momentContainer.m_nMoments != ms.size())
342  {
343  REPORT_MESSAGE_WITH_CONTEXT(MSG::WARNING,
344  "CaloClusterContainerCnv_p5")
345  << "Inconsistent number of cluster moments: cluster "
346  << it2 - trans->begin() << " of " << trans->size()
347  << " have " << ms.size()
348  << " expect " << pers->m_momentContainer.m_nMoments;
349  }
350 
351  }
352 
353  std::vector<float> temp_Moments;
354  temp_Moments.reserve (trans->size() * pers->m_momentContainer.m_nMoments);
355  std::vector<float> tmp_badChannelEta;
356  std::vector<float> tmp_badChannelPhi;
357 
358  std::vector<float> tmp_rawE;
359  std::vector<float> tmp_rawEtaPhiM;
360  tmp_rawE.reserve(trans->size());
361  tmp_rawEtaPhiM.reserve(3*trans->size());
362 
363 
364  short index=0;
365  for(;it!=it_e;++it,++itp) { // LOOP over clusters
366  const CaloCluster& cl = **it;
367  index++;
368  transToPers(&cl,&(*itp),
369  showerLinkState,
370  cellLinkState,
371  log); // tP of CaloCluster to CaloCluster_p
372 
373  const CaloSamplingData* trDS=&cl.m_dataStore; //transient
374  int nVar=trDS->getNumberOfVariableTypes();
375  int nSamplings=trDS->getNumberOfSamplings();
376 // std::cout<<"vars:"<<nVar<<"\t samplings:"<<nSamplings<<std::endl;
377 // std::cout<<"b:"<<(*it)->m_barrel<<"\te:"<<(*it)->m_endcap<<std::endl;
378 // std::cout<<"sPattern: "<<(*it)->m_samplingPattern<<"\tgB:"<<(0x001ff00f & (*it)->m_samplingPattern) <<"\tgEC:"<< (0x00e00ff0 & (*it)->m_samplingPattern) <<std::endl;
379 
380  typedef CaloSamplingData::variable_key_type vartype;
381  typedef CaloSamplingData::sampling_key_type samptype;
382 
383  for (int i=0;i<nVar;++i) {
384  if (testbit (pers->m_varTypePattern, i)) {
385  // We're writing this pattern. Was it in the cluster?
386  if (testbit (trDS->m_varTypePattern, i)) {
387  // Yes, store it.
388  for (int j=0;j<nSamplings; ++j)
389  if ( testbit(cl.m_samplingPattern, j)) {
390  pers->m_dataStore.push_back(trDS->retrieveData
391  (static_cast<vartype>(i),
392  static_cast<samptype>(j)));
393  }
394  }
395  else {
396  // Not in the cluster. Store 0's.
397  for (int j=0;j<nSamplings; ++j)
398  if ( testbit(cl.m_samplingPattern, j))
399  pers->m_dataStore.push_back(0);
400  }
401  }
402  else{
403  // We're not writing. Check that nothing was stored...
404  for (int j=0;j<nSamplings; ++j)
405  if ( testbit(cl.m_samplingPattern, j))
406  if(trDS->retrieveData(static_cast<vartype>(i),
407  static_cast<samptype>(j)))
408  if (log.level() <= MSG::DEBUG) log<< MSG::DEBUG<<"BIG PROBLEM ! not stored and has value:"
409  <<trDS->retrieveData(static_cast<vartype>(i),
410  static_cast<samptype>(j))
411  <<"\t var: "<<i
412  <<"\t sampling: "<<j<<endmsg;
413  }
414  }
415 
416 
417  //CaloClusterMomentStore::moment_iterator itm=cl.m_momentStore.begin();
418  //CaloClusterMomentStore::moment_iterator itm_e=cl.m_momentStore.end();
419 
420  std::vector<unsigned short>::const_iterator itk =
421  pers->m_momentContainer.m_Mkey.begin();
422  std::vector<unsigned short>::const_iterator itk_e =
423  pers->m_momentContainer.m_Mkey.end();
425  cl.m_momentStore.begin();
427  cl.m_momentStore.end();
428  for (; itk != itk_e; ++itk) {
429  float val = 0;
430  if (itm != itm_e && itm.getMomentType() == *itk) {
431  val = (*itm).getValue();
432  ++itm;
433  }
434  else {
435  itm = cl.m_momentStore.find
436  (static_cast<CaloClusterMomentStore::moment_type> (*itk));
437  if (itm != itm_e) {
438  val = (*itm).getValue();
439  ++itm;
440  }
441  }
442  temp_Moments.push_back(val);
443  }
444 
445 // bad channel info
446  const CaloCluster::badChannelList* badlist = cl.getBadChannel();
447  // std::cout << " transtopers: bad channel size " << badlist->size() << std::endl;
448  for (const CaloClusterBadChannelData& bad : *badlist) {
449  pers->m_badClusIndexList.push_back(index);
450  float etac = bad.getEta()-(cl.eta());
451  float phic = CaloPhiRange::diff(bad.getPhi(),cl.phi());
452  CaloSampling::CaloSample sampl = bad.getLayer();
453  CaloBadChannel flag = bad.getFlag();
454  short status = ((sampl & 0xff) | ((flag.packedData() & 0xff) << 8));
455  tmp_badChannelEta.push_back(etac);
456  tmp_badChannelPhi.push_back(phic);
457  pers->m_badLayerStatusList.push_back(status);
458  }
459 
460 // raw E-eta-phi-M
461  // std::cout << "transtopers: rawE/eta/phi/M " << (*it)->m_rawE << " " << (*it)->m_rawEta << " " << (*it)->m_rawPhi << " " << (*it)->m_rawM << std::endl;
462  double e = cl.e();
463  if (std::fabs(e)>0.1) {
464  float eratio = cl.m_rawE / e;
465  tmp_rawE.push_back( eratio);
466  }
467  else
468  tmp_rawE.push_back( cl.m_rawE);
469  tmp_rawEtaPhiM.push_back( cl.m_rawEta-cl.eta());
470  float dphi = CaloPhiRange::diff ( cl.m_rawPhi, cl.phi());
471  tmp_rawEtaPhiM.push_back( dphi);
472  tmp_rawEtaPhiM.push_back( cl.m_rawM);
473  } // end of loop over clusters
474 
475 
476  Compressor A;
477  A.setNrBits(16);
478  // A.setIgnoreSign();
479  A.reduce(temp_Moments,pers->m_momentContainer.m_Mvalue); // packs moments
480 
481  Compressor B;
482  B.setNrBits(16);
483  B.reduce(tmp_badChannelEta,pers->m_badEtaList);
484  B.reduce(tmp_badChannelPhi,pers->m_badPhiList);
485 
486  Compressor C;
487  C.setNrBits(21);
488  C.reduce(tmp_rawE,pers->m_rawE);
489 
490 
491  Compressor D;
492  D.setNrBits(16);
493  D.reduce(tmp_rawEtaPhiM,pers->m_rawEtaPhiM);
494 
495 
497 
498 }

◆ transToPers() [3/6]

template<class TRANS , class PERS >
virtual void TPConverterConstBase< TRANS, PERS >::transToPers ( const TRANS *  transObj,
PERS persObj,
MsgStream &  log 
) const
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 TPCnvVectorConst< TrigCaloClusterContainer, TrigCaloClusterContainer_p3, TrigCaloClusterCnv_p3 >, TPCnvStdVectorConst< TRANS, PERS, CONV >, TPCnvVectorConst< TRANS, PERS, CONV >, TPPtrVectorCnvConst< TRANS, PERS, CONV >, TPPolyVectorCnvConst< TRANS, PERS, CONV >, T_TilePoolContainerCnv< TRANS, PERS, CONV >, TPConverterWithKeyBase< TRANS, PERS >, TPCnvStdVectorConst< std::vector< TrigMonTE >, std::vector< TrigMonTE_p1 >, TrigMonTECnv_p1 >, TPCnvStdVectorConst< std::vector< TrigMonSeq >, std::vector< TrigMonSeq_p1 >, TrigMonSeqCnv_p1 >, TPCnvStdVectorConst< std::vector< TrigMonRoi >, std::vector< TrigMonRoi_p1 >, TrigMonRoiCnv_p1 >, TPCnvStdVectorConst< std::vector< TrigMonROBData >, std::vector< TrigMonROBData_p1 >, TrigMonROBDataCnv_p1 >, TPCnvStdVectorConst< std::vector< TrigMonROB >, std::vector< TrigMonROB_p1 >, TrigMonROBCnv_p1 >, TPCnvStdVectorConst< std::vector< TrigMonAlg >, std::vector< TrigMonAlg_p1 >, TrigMonAlgCnv_p1 >, TPCnvStdVectorConst< std::vector< TrigConfSig >, std::vector< TrigConfSig_p1 >, TrigConfSigCnv_p1 >, TPCnvStdVectorConst< std::vector< TrigConfSeq >, std::vector< TrigConfSeq_p1 >, TrigConfSeqCnv_p1 >, TPCnvStdVectorConst< std::vector< TrigConfChain >, std::vector< TrigConfChain_p1 >, TrigConfChainCnv_p1 >, TPCnvStdVectorConst< std::vector< TrigConfAlg >, std::vector< TrigConfAlg_p1 >, TrigConfAlgCnv_p1 >, TPPtrVectorCnvConst< std::vector< const JetTagInfoBase * >, std::vector< TPObjRef >, ITPConverterFor< JetTagInfoBase > >, TPPolyVectorCnvConst< std::vector< const JetTagInfoBase * >, std::vector< TPObjRef >, ITPConverterFor< JetTagInfoBase > >, TPPtrVectorCnvConst< std::vector< const JetAssociationBase * >, std::vector< TPObjRef >, ITPConverterFor< JetAssociationBase > >, TPPolyVectorCnvConst< std::vector< const JetAssociationBase * >, std::vector< TPObjRef >, ITPConverterFor< JetAssociationBase > >, TPCnvVectorConst< RingerRingsContainer, RingerRingsContainer_p2, RingerRingsCnv_p2 >, TPCnvVectorConst< JetCollection, ParticleJetContainer_p1, ParticleJetCnv_p1 >, TPCnvVectorConst< Analysis::MuonContainer, MuonContainer_p6, MuonCnv_p6 >, TPCnvVectorConst< Analysis::MuonContainer, MuonContainer_p5, MuonCnv_p5 >, TPCnvVectorConst< Analysis::MuonContainer, MuonContainer_p4, MuonCnv_p4 >, and TPCnvVectorConst< Analysis::MuonContainer, MuonContainer_p3, MuonCnv_p3 >.

◆ transToPers() [4/6]

virtual void TPConverterConstBase< TRANS, PERS >::transToPers

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

◆ transToPers() [5/6]

virtual void TPConverterConstBase< TRANS, PERS >::transToPers
inlinefinaloverride

Definition at line 815 of file TPConverter.h.

818  {
819  return const_cast<const TPConverterConstBase*>(this)->transToPers (transObj, persObj, log);
820  }

◆ transToPers() [6/6]

template<class TRANS , class PERS >
virtual void TPConverterConstBase< TRANS, PERS >::transToPers ( const TRANS *  transObj,
PERS persObj,
MsgStream &  log 
)
inlinefinaloverridevirtualinherited

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

Implements TPAbstractPolyCnvBase< TRANS, TRANS, PERS >.

Definition at line 815 of file TPConverter.h.

818  {
819  return const_cast<const TPConverterConstBase*>(this)->transToPers (transObj, persObj, log);
820  }

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

CaloTowerSegCnv_p1 CaloClusterContainerCnv_p5::m_caloTowerSegCnv
private

Definition at line 64 of file CaloClusterContainerCnv_p5.h.

◆ m_cellElementLinkCnv

ElementLinkCnv_p2<ElementLink<CaloCellLinkContainer> > CaloClusterContainerCnv_p5::m_cellElementLinkCnv
private

Definition at line 67 of file CaloClusterContainerCnv_p5.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_P4EEtaPhiMCnv

P4EEtaPhiMCnv_p2 CaloClusterContainerCnv_p5::m_P4EEtaPhiMCnv
private

Definition at line 65 of file CaloClusterContainerCnv_p5.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_showerElementLinkCnv

ElementLinkCnv_p2<ElementLink<CaloShowerContainer> > CaloClusterContainerCnv_p5::m_showerElementLinkCnv
private

Definition at line 66 of file CaloClusterContainerCnv_p5.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.
bad
@ bad
Definition: SUSYToolsTester.cxx:100
AllowedVariables::e
e
Definition: AsgElectronSelectorTool.cxx:37
ITPConverter::typeID
virtual const TPObjRef::typeID_t & typeID() const =0
Return TP typeID for persistent objects produced by this converter.
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
CaloClusterMoment::MomentType
MomentType
enums to identify different moments
Definition: CaloClusterMoment.h:38
data
char data[hepevt_bytes_allocation_ATLAS]
Definition: HepEvt.cxx:11
xAOD::eratio
setCharge setNTRTHiThresholdHits eratio
Definition: TrigElectron_v1.cxx:96
CaloCluster::phi0
double phi0() const
Returns raw of cluster seed.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:1186
CaloCluster::m_momentStore
CaloClusterMomentStore m_momentStore
cluster moments
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:480
TruthTest.itp
itp
Definition: TruthTest.py:46
CaloVariableType::VariableType
VariableType
Definition: CaloVariableType.h:15
DataModel_detail::const_iterator
Const iterator class for DataVector/DataList.
Definition: DVLIterator.h:82
CaloCluster::setTime
void setTime(double theTime)
Set cluster time.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:889
IAthenaBarCode::UNDEFINEDBARCODE
static const AthenaBarCode_t UNDEFINEDBARCODE
Definition: AthenaKernel/AthenaKernel/IAthenaBarCode.h:52
CaloCluster::m_altPhi
double m_altPhi
Stores calibrated (cell weight) signal.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:709
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
CaloSamplingData::retrieveData
value_type retrieveData(variable_key_type theVariable, sampling_key_type theSampling) const
Retrieve const reference to individual variable.
Definition: CaloSamplingData.h:225
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:67
CaloClusterContainer::getTowerSeg
virtual const CaloTowerSeg & getTowerSeg() const
Retrieve tower segmentation.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloClusterContainer.h:104
TPAbstractPolyCnvBase< TRANS, TRANS, PERS >::toPersistentWithKey_impl
TPObjRef toPersistentWithKey_impl(const TRANS *trans, const std::string &key, MsgStream &log)
Convert transient object to persistent representation.
ElementLinkCnv_p2::transToPers
void transToPers(State &state, const Link_t &trans, PersLink_t &pers, const SG::ThinningCache *cache, MsgStream &log) const
SG::VIEW_ELEMENTS
@ VIEW_ELEMENTS
this data object is a view, it does not own its elmts
Definition: OwnershipPolicy.h:18
TPObjRef::typeID_t::value
unsigned value() const
Returns the type ID as an integer.
Definition: TPObjRef.h:46
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:83
index
Definition: index.py:1
TPConverterConstBase::transToPers
virtual void transToPers(const TRANS *transObj, PERS *persObj, MsgStream &log) const =0
Convert transient representation to persistent one.
CaloCluster::m_eta0
double m_eta0
Cluster seed
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:558
TPPolyCnvBase< TRANS, TRANS, PERS >::createTransient
virtual TRANS * createTransient(const PERS *persObj, MsgStream &log)
Create transient representation of a persistent object.
CaloClusterMomentStore::setMomentStore
virtual void setMomentStore(const moment_store &rMomStore)
Set internal store.
Definition: CaloClusterMomentStore.h:253
CaloSamplingData::storeData
bool storeData(variable_key_type theVariable, sampling_key_type theSampling, value_type theData)
}
Definition: CaloSamplingData.cxx:109
extractSporadic.c1
c1
Definition: extractSporadic.py:134
DMTest::C
C_v1 C
Definition: C.h:26
CaloClusterContainerCnv_p5::m_showerElementLinkCnv
ElementLinkCnv_p2< ElementLink< CaloShowerContainer > > m_showerElementLinkCnv
Definition: CaloClusterContainerCnv_p5.h:66
CaloClusterContainer_p5::CaloCluster_p::m_samplingPattern
unsigned int m_samplingPattern
Definition: CaloClusterContainer_p5.h:29
P4EEtaPhiM
Definition: P4EEtaPhiM.h:25
skel.it
it
Definition: skel.GENtoEVGEN.py:396
CaloClusterMomentContainer_p2::m_nMoments
unsigned short m_nMoments
Definition: CaloClusterMomentContainer_p2.h:14
CaloClusterContainer_p5::CaloCluster_p::m_basicSignal
float m_basicSignal
Definition: CaloClusterContainer_p5.h:24
CaloSamplingData::m_varTypePattern
unsigned int m_varTypePattern
Definition: CaloSamplingData.h:117
CaloClusterContainer_p5::CaloCluster_p::m_dataLink
ElementLinkInt_p2 m_dataLink
Definition: CaloClusterContainer_p5.h:36
CaloClusterContainer_p5::CaloCluster_p::m_phi0
float m_phi0
Definition: CaloClusterContainer_p5.h:27
CaloClusterContainer_p5::m_badLayerStatusList
std::vector< short > m_badLayerStatusList
Definition: CaloClusterContainer_p5.h:60
CaloClusterContainer_p5::CaloCluster_p::m_cellLink
ElementLinkInt_p2 m_cellLink
Definition: CaloClusterContainer_p5.h:37
TopLevelTPCnvBase::converterForRef
ITPConverter * converterForRef(const TPObjRef &ref) const
Find and return a TP converter for persistent type referenced by ref.
Definition: TopLevelTPCnvBase.h:89
CaloCluster::m_altE
double m_altE
Stores calibrated (cell weight) signal.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:705
CaloClusterContainer_p5::m_towerSeg
CaloTowerSeg_p1 m_towerSeg
Definition: CaloClusterContainer_p5.h:51
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.
CaloClusterMomentStore::CaloClusterMomentIterator
Internally used iterator.
Definition: CaloClusterMomentStore.h:54
P4EEtaPhiMCnv_p2::transToPers
virtual void transToPers(const P4EEtaPhiM *transObj, P4EEtaPhiMFloat_p2 *persObj, MsgStream &log) const override
Method creating the persistent representation P4EEtaPhiMFloat_p2 from its transient representation P4...
Definition: P4EEtaPhiMCnv_p2.cxx:38
CaloCluster::getBasicEnergy
virtual double getBasicEnergy() const
Access basic energy scale signal.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:876
CaloCluster::setDefaultSignalState
bool setDefaultSignalState(signalstate_t s)
Sets default signal state.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:865
CaloClusterContainerCnv_p5::m_P4EEtaPhiMCnv
P4EEtaPhiMCnv_p2 m_P4EEtaPhiMCnv
Definition: CaloClusterContainerCnv_p5.h:65
CaloSamplingData::removeVariable
bool removeVariable(variable_key_type theVariable, sampling_key_type theSampling)
Remove a certain variable.
Definition: CaloSamplingData.h:248
python.SystemOfUnits.ms
int ms
Definition: SystemOfUnits.py:132
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
CaloClusterMomentContainer_p2::m_Mvalue
std::vector< unsigned int > m_Mvalue
Definition: CaloClusterMomentContainer_p2.h:19
CaloClusterMomentStore
Stores CaloClusterMoment in a keyed map.
Definition: CaloClusterMomentStore.h:15
Compressor
Definition: Compressor.h:26
CaloClusterContainer_p5::CaloCluster_p::m_caloRecoStatus
unsigned int m_caloRecoStatus
Definition: CaloClusterContainer_p5.h:30
CaloClusterContainer_p5::CaloCluster_p::m_eta0
float m_eta0
Definition: CaloClusterContainer_p5.h:26
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
CaloTowerSegCnv_p1::persToTrans
void persToTrans(const CaloTowerSeg_p1 *, CaloTowerSeg *) const
Definition: CaloTowerSegCnv_p1.cxx:9
dqt_zlumi_alleff_HIST.A
A
Definition: dqt_zlumi_alleff_HIST.py:110
CaloClusterContainerCnv_p5::ShowerLinkState
ElementLinkCnv_p2< ElementLink< CaloShowerContainer > >::State ShowerLinkState
Definition: CaloClusterContainerCnv_p5.h:47
python.setupRTTAlg.size
int size
Definition: setupRTTAlg.py:39
CaloClusterContainer_p5::m_linkNames
ElementLinkContNames_p2 m_linkNames
Definition: CaloClusterContainer_p5.h:54
CaloClusterNavigable::m_cellLink
cell_link_type m_cellLink
Local pointer to cell store.
Definition: CaloClusterNavigable.h:186
CaloCluster::m_dataLink
data_link_type m_dataLink
{
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:488
CaloClusterContainer_p5::m_rawE
std::vector< unsigned int > m_rawE
Definition: CaloClusterContainer_p5.h:65
CaloClusterContainerCnv_p5::CellLinkState
ElementLinkCnv_p2< ElementLink< CaloCellLinkContainer > >::State CellLinkState
Definition: CaloClusterContainerCnv_p5.h:49
CaloSamplingData::getNumberOfSamplings
size_t getNumberOfSamplings() const
Set variable type pattern for this store.
Definition: CaloSamplingData.h:186
A
CaloCluster::m_phi0
double m_phi0
Cluster seed
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:560
CaloClusterContainer_p5::m_varTypePattern
unsigned int m_varTypePattern
Definition: CaloClusterContainer_p5.h:47
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
Compressor::expandToFloat
void expandToFloat(const std::vector< unsigned int > &vc, std::vector< float > &vf)
Definition: Compressor.cxx:115
lumiFormat.i
int i
Definition: lumiFormat.py:85
CaloSampling::CaloSample
CaloSample
Definition: Calorimeter/CaloGeoHelpers/CaloGeoHelpers/CaloSampling.h:22
CaloSamplingData::getNumberOfVariableTypes
size_t getNumberOfVariableTypes() const
Return number of variable types.
Definition: CaloSamplingData.h:189
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
TRT::Hit::layer
@ layer
Definition: HitInfo.h:79
Compressor::reduce
void reduce(const std::vector< float > &vf, std::vector< unsigned int > &vi)
Definition: Compressor.cxx:42
CaloCluster::m_endcap
bool m_endcap
Flag is true if at least one cell in EMB.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:551
CaloCluster::m_dataStore
CaloSamplingData m_dataStore
{\ brief Cached Stores
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:479
Compressor::setNrBits
void setNrBits(int bits)
Definition: Compressor.h:36
master.flag
bool flag
Definition: master.py:29
CaloClusterContainerCnv_p5::m_cellElementLinkCnv
ElementLinkCnv_p2< ElementLink< CaloCellLinkContainer > > m_cellElementLinkCnv
Definition: CaloClusterContainerCnv_p5.h:67
CaloCluster::m_altM
double m_altM
Stores calibrated (cell weight) signal.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:711
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
CaloCluster
Principal data class for CaloCell clusters.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:79
CaloCluster::m_rawM
double m_rawM
Stores raw signal.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:702
CaloTowerSegCnv_p1::transToPers
void transToPers(const CaloTowerSeg *, CaloTowerSeg_p1 *) const
Definition: CaloTowerSegCnv_p1.cxx:23
CaloCluster::m_samplingPattern
unsigned int m_samplingPattern
Sampling pattern.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:501
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
CaloCluster::badChannelList
std::vector< CaloClusterBadChannelData > badChannelList
Get Bad Channel information.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:458
DeMoUpdate.tmp
string tmp
Definition: DeMoUpdate.py:1167
CaloPhiRange::fix
static double fix(double phi)
Definition: CaloPhiRange.cxx:14
CaloClusterContainerCnv_p5::transToPers
virtual void transToPers(const CaloClusterContainer *trans, CaloClusterContainer_p5 *pers, MsgStream &log) const override
Definition: CaloClusterContainerCnv_p5.cxx:292
CaloClusterContainerCnv_p5::persToTrans
virtual void persToTrans(const CaloClusterContainer_p5 *pers, CaloClusterContainer *trans, MsgStream &log) const override
Definition: CaloClusterContainerCnv_p5.cxx:29
DataVector::clear
void clear()
Erase all the elements in the collection.
ElementLinkCnv_p2::persToTrans
void persToTrans(State &state, const PersLink_t &pers, Link_t &trans, MsgStream &log) const
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
REPORT_MESSAGE_WITH_CONTEXT
#define REPORT_MESSAGE_WITH_CONTEXT(LVL, CONTEXT_NAME)
Report a message, with an explicitly specified context name.
Definition: Control/AthenaKernel/AthenaKernel/errorcheck.h:345
CaloClusterContainer_p5::m_dataStore
std::vector< float > m_dataStore
Definition: CaloClusterContainer_p5.h:48
CaloCluster::m_rawPhi
double m_rawPhi
Stores raw signal.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:700
TPConverterConstBase::persToTrans
virtual void persToTrans(const PERS *persObj, TRANS *transObj, MsgStream &log) const =0
Convert persistent representation to transient one.
CaloClusterContainer_p5::m_badPhiList
std::vector< unsigned int > m_badPhiList
Definition: CaloClusterContainer_p5.h:62
CaloCluster::getTime
double getTime() const
Access cluster time.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:886
PERS
RpcSectorLogicContainer_p1 PERS
Definition: RpcSectorLogicContainerCnv.h:13
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.
dqt_zlumi_alleff_HIST.B
B
Definition: dqt_zlumi_alleff_HIST.py:110
CaloClusterContainer_p5::m_badEtaList
std::vector< unsigned int > m_badEtaList
Definition: CaloClusterContainer_p5.h:61
CaloCompositeKineBase::m_status
CaloRecoStatus m_status
Calorimeter reconstruction status.
Definition: CaloCompositeKineBase.h:58
CaloClusterContainer_p5::const_iterator
contType::const_iterator const_iterator
Definition: CaloClusterContainer_p5.h:43
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
CaloCluster::m_altEta
double m_altEta
Stores calibrated (cell weight) signal.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:707
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
DataVector::end
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
CaloClusterContainerCnv_p5::m_caloTowerSegCnv
CaloTowerSegCnv_p1 m_caloTowerSegCnv
Definition: CaloClusterContainerCnv_p5.h:64
CaloClusterContainer_p5::CaloCluster_p::m_clusterSize
unsigned int m_clusterSize
Definition: CaloClusterContainer_p5.h:31
CaloClusterContainer_p5::m_rawEtaPhiM
std::vector< unsigned int > m_rawEtaPhiM
Definition: CaloClusterContainer_p5.h:66
CaloClusterContainer_p5::iterator
contType::iterator iterator
Definition: CaloClusterContainer_p5.h:44
CaloClusterBadChannelData
Definition: Calorimeter/CaloEvent/CaloEvent/CaloClusterBadChannelData.h:12
CaloClusterContainer_p5::m_badClusIndexList
std::vector< short > m_badClusIndexList
Definition: CaloClusterContainer_p5.h:59
ITPConverterFor::m_pStorageTIDvalue
unsigned m_pStorageTIDvalue
m_pStorageTID converted to integer value
Definition: TPConverter.h:295
CaloCluster::getClusterSize
unsigned int getClusterSize() const
Get cluster size.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:895
CaloClusterMomentStore::moment_store
std::map< moment_key, moment_value > moment_store
Internal moment store type.
Definition: CaloClusterMomentStore.h:35
CaloCluster::eta
virtual double eta() const
Retrieve eta independent of signal state.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:755
CaloClusterContainer_p5::m_momentContainer
CaloClusterMomentContainer_p2 m_momentContainer
Definition: CaloClusterContainer_p5.h:50
ref
const boost::regex ref(r_ef)
Pythia8_RapidityOrderMPI.val
val
Definition: Pythia8_RapidityOrderMPI.py:14
CaloClusterMomentContainer_p2::m_Mkey
std::vector< unsigned short > m_Mkey
Definition: CaloClusterMomentContainer_p2.h:20
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
CaloClusterContainer_p5::CaloCluster_p::m_P4EEtaPhiM
P4EEtaPhiMFloat_p2 m_P4EEtaPhiM
Definition: CaloClusterContainer_p5.h:33
python.CaloCondTools.log
log
Definition: CaloCondTools.py:20
RunTileMonitoring.clusters
clusters
Definition: RunTileMonitoring.py:133
CaloCluster::e
virtual double e() const
Retrieve energy independent of signal state.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:753
CaloCluster::setClusterSize
void setClusterSize(unsigned int theClusterSize)
Set cluster size.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:892
DataPool
a typed memory pool that saves time spent allocation small object. This is typically used by containe...
Definition: DataPool.h:63
CaloBadChannel
Definition: CaloBadChannel.h:8
P4SignalState::CALIBRATED
@ CALIBRATED
Definition: ISignalState.h:31
CaloRecoStatus::getStatusWord
virtual const store_type & getStatusWord() const
retrieve the entire status word
Definition: CaloRecoStatus.h:112
CaloCluster::m_rawE
double m_rawE
Stores raw signal.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:696
ReadCalibFromCool.typeName
typeName
Definition: ReadCalibFromCool.py:477
CaloCluster::eta0
double eta0() const
Returns raw of cluster seed.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:1180
CaloTowerSeg
Data object stores CaloTower segmentation.
Definition: CaloTowerSeg.h:37
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:798
merge.status
status
Definition: merge.py:17
CaloClusterContainer::setTowerSeg
virtual void setTowerSeg(const CaloTowerSeg &towerSeg)
Set tower segmentation into CaloClusterContainer.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloClusterContainer.h:101
ITPConverter
Definition: TPTools/TPTools/ITPConverter.h:32
CaloCluster::setBasicEnergy
virtual void setBasicEnergy(double theEnergy)
Set basic energy scale signal.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:883
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
CaloSamplingData
Simple data object to store all variables in calorimeter samplings.
Definition: CaloSamplingData.h:18
python.IoTestsLib.w
def w
Definition: IoTestsLib.py:200
TPConverterConstBase
Definition: TPConverter.h:776
xAOD::bool
setBGCode setTAP setLVL2ErrorBits bool
Definition: TrigDecision_v1.cxx:60
CaloClusterContainer_p5::m_vec
contType m_vec
Definition: CaloClusterContainer_p5.h:41
CaloCluster::addBadChannel
void addBadChannel(const CaloClusterBadChannelData &badChannel)
Add Bad channel information.
Definition: CaloCluster.cxx:1424
python.compressB64.c
def c
Definition: compressB64.py:93
dq_make_web_display.cl
cl
print [x.__class__ for x in toList(dqregion.getSubRegions()) ]
Definition: dq_make_web_display.py:26
DataVector::size
size_type size() const noexcept
Returns the number of elements in the collection.
CaloCluster::m_barrel
bool m_barrel
Flag is true if at least one cell in EMB.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:549
CaloRecoStatus
reconstruction status indicator
Definition: CaloRecoStatus.h:12
CaloCluster::resetBadChannel
void resetBadChannel()
Reset Bad channel list.
Definition: CaloCluster.cxx:1429
CaloCluster::m_rawEta
double m_rawEta
Stores raw signal.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:698
P4EEtaPhiMCnv_p2::persToTrans
virtual void persToTrans(const P4EEtaPhiMFloat_p2 *persObj, P4EEtaPhiM *transObj, MsgStream &log) const override
Method creating the transient representation of P4EEtaPhiM from its persistent representation P4EEtaP...
Definition: P4EEtaPhiMCnv_p2.cxx:26
TPAbstractPolyCnvBase< TRANS, TRANS, PERS >::m_curRecLevel
int m_curRecLevel
count recursive invocations, to detect recursion
Definition: TPConverter.h:582
DataVector::begin
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
CaloPhiRange::diff
static double diff(double phi1, double phi2)
simple phi1 - phi2 calculation, but result is fixed to respect range.
Definition: CaloPhiRange.cxx:22
CaloClusterContainer_p5::CaloCluster_p::m_time
float m_time
Definition: CaloClusterContainer_p5.h:25
mapkey::key
key
Definition: TElectronEfficiencyCorrectionTool.cxx:37
CaloCluster::phi
virtual double phi() const
Retrieve phi independent of signal state.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:759