ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Tracking
TrkDetDescr
TrkDetDescrTPCnv
TrkDetDescrTPCnv
TrkGeometry
LayerMaterialMapCnv_p1.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2025:$ CERN for the benefit of the ATLAS collaboration
3
*/
4
6
// LayerMaterialMapCnv_p1.h, (c) ATLAS Detector software
8
9
#ifndef LAYERMATERIALMAP_CNV_P1_TRK_H
10
#define LAYERMATERIALMAP_CNV_P1_TRK_H
11
12
#include "
AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h
"
13
14
#include "
TrkGeometry/LayerMaterialProperties.h
"
15
#include "
TrkGeometry/LayerMaterialMap.h
"
16
#include "
TrkDetDescrUtils/LayerIndex.h
"
17
#include "
TrkDetDescrTPCnv/TrkGeometry/LayerMaterialMap_p1.h
"
18
#include "
TrkDetDescrTPCnv/TrkGeometry/ElementTableCnv_p1.h
"
19
20
#include <memory>
21
class
MsgStream;
22
23
class
LayerMaterialMapCnv_p1
:
public
T_AthenaPoolTPCnvBase
< Trk::LayerMaterialMap, Trk::LayerMaterialMap_p1 >
24
{
25
public
:
26
28
LayerMaterialMapCnv_p1
(){}
29
31
~LayerMaterialMapCnv_p1
(){}
32
34
virtual
void
persToTrans
(
const
Trk::LayerMaterialMap_p1
* persMap,
Trk::LayerMaterialMap
* transMap, MsgStream &mlog) {
35
transMap->clear();
36
37
// update the element table
38
Trk::ElementTable
* eTable =
new
Trk::ElementTable
();
39
m_eTableCnv
.persToTrans((&persMap->
elementTable
), eTable, mlog);
40
std::shared_ptr<const Trk::ElementTable> soeTable(eTable);
41
transMap->
updateElementTable
(soeTable);
42
43
// convert vector entries one by one
44
std::vector<TPObjRef>::const_iterator it = persMap->
lmVector
.begin();
45
std::vector<TPObjRef>::const_iterator iEnd = persMap->
lmVector
.end();
46
for
(
size_t
iidx=0 ; it != iEnd; ++it, ++iidx ) {
47
int
layIdex = persMap->
idxVector
[iidx];
48
Trk::LayerMaterialProperties
* tProperties =
createTransFromPStore
( (
ITPConverterFor<Trk::LayerMaterialProperties>
**)0, *it, mlog );
49
tProperties->
updateElementTable
(soeTable);
50
(*transMap)[
Trk::LayerIndex
(layIdex)] = tProperties;
51
}
52
}
53
55
virtual
void
transToPers
(
const
Trk::LayerMaterialMap
* transMap,
Trk::LayerMaterialMap_p1
* persMap, MsgStream &mlog) {
56
persMap->
lmVector
.clear();
57
persMap->
lmVector
.reserve( transMap->size() );
58
persMap->
idxVector
.clear();
59
persMap->
idxVector
.reserve( transMap->size() );
60
// write out the ElementTable
61
if
(transMap->
elementTable
())
62
m_eTableCnv
.transToPers((transMap->
elementTable
()), &persMap->
elementTable
,mlog);
63
// convert vector entries one by one
64
for
(
auto
& it : (*transMap) ) {
65
persMap->
idxVector
.push_back( it.first.value() );
66
persMap->
lmVector
.push_back(
toPersistent
( (
ITPConverterFor<Trk::LayerMaterialProperties>
**)0, it.second, mlog ) );
67
}
68
}
69
70
protected
:
71
ElementTableCnv_p1
m_eTableCnv
;
72
73
};
74
75
#endif
// MATERIAKSTEPCOLLECTION_CNV_P1_TRK_H
ElementTableCnv_p1.h
LayerIndex.h
LayerMaterialMap.h
LayerMaterialMap_p1.h
LayerMaterialProperties.h
T_AthenaPoolTPConverter.h
T_AthenaPoolTPCnvBase
TPConverterBase< TRANS, PERS > T_AthenaPoolTPCnvBase
Definition
T_AthenaPoolTPConverter.h:41
ElementTableCnv_p1
Definition
ElementTableCnv_p1.h:22
ITPConverterFor
Common base class for all TP converters, specialized for a given transient type.
Definition
TPConverter.h:37
TPPolyCnvBase< TRANS, TRANS, PERS >::createTransFromPStore
CNV::Trans_t * createTransFromPStore(CNV **cnv, const TPObjRef &ref, MsgStream &log) const
Definition
TPConverter.h:172
TPPolyCnvBase< TRANS, TRANS, PERS >::toPersistent
TPObjRef toPersistent(CNV **cnv, const typename CNV::TransBase_t *transObj, MsgStream &log) const
Definition
TPConverter.h:119
LayerMaterialMapCnv_p1::LayerMaterialMapCnv_p1
LayerMaterialMapCnv_p1()
Standard constructor.
Definition
LayerMaterialMapCnv_p1.h:28
LayerMaterialMapCnv_p1::~LayerMaterialMapCnv_p1
~LayerMaterialMapCnv_p1()
Destructor constructor.
Definition
LayerMaterialMapCnv_p1.h:31
LayerMaterialMapCnv_p1::m_eTableCnv
ElementTableCnv_p1 m_eTableCnv
Definition
LayerMaterialMapCnv_p1.h:71
LayerMaterialMapCnv_p1::transToPers
virtual void transToPers(const Trk::LayerMaterialMap *transMap, Trk::LayerMaterialMap_p1 *persMap, MsgStream &mlog)
transient to persistent
Definition
LayerMaterialMapCnv_p1.h:55
LayerMaterialMapCnv_p1::persToTrans
virtual void persToTrans(const Trk::LayerMaterialMap_p1 *persMap, Trk::LayerMaterialMap *transMap, MsgStream &mlog)
persistent to transient
Definition
LayerMaterialMapCnv_p1.h:34
Trk::ElementTable
Definition
ElementTable.h:24
Trk::LayerIndex
LayerIndex for the identification of layers in a simplified detector geometry of Cylinders and Discs.
Definition
LayerIndex.h:37
Trk::LayerMaterialMap_p1
Definition
LayerMaterialMap_p1.h:20
Trk::LayerMaterialMap_p1::lmVector
std::vector< TPObjRef > lmVector
Definition
LayerMaterialMap_p1.h:22
Trk::LayerMaterialMap_p1::idxVector
std::vector< int > idxVector
Definition
LayerMaterialMap_p1.h:23
Trk::LayerMaterialMap_p1::elementTable
ElementTable_p1 elementTable
Definition
LayerMaterialMap_p1.h:25
Trk::LayerMaterialMap
This class extends the DataVector<Trk::LayerMaterialProperties> by an elementTable;.
Definition
LayerMaterialMap.h:32
Trk::LayerMaterialMap::elementTable
const ElementTable * elementTable() const
retrieval method
Definition
LayerMaterialMap.h:63
Trk::LayerMaterialMap::updateElementTable
void updateElementTable(const std::shared_ptr< const ElementTable > &eTable)
update method
Definition
LayerMaterialMap.h:66
Trk::LayerMaterialProperties
This virtual base class encapsulates the logics to build pre/post/full update material for Layer stru...
Definition
LayerMaterialProperties.h:64
Trk::LayerMaterialProperties::updateElementTable
void updateElementTable(const std::shared_ptr< const ElementTable > &) const
Update the ElementTable.
Definition
LayerMaterialProperties.h:95
Generated on
for ATLAS Offline Software by
1.17.0