ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Tracking
TrkDetDescr
TrkDetDescrTPCnv
src
TrkGeometry
ElementTableCnv_p1.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3
*/
4
6
// ElementTableCnv_p1.cxx, (c) ATLAS Detector software
8
9
#include "
TrkGeometry/ElementTable.h
"
10
#include "
TrkGeometry/Material.h
"
11
#include "
TrkDetDescrTPCnv/TrkGeometry/ElementTableCnv_p1.h
"
12
#include "
TrkDetDescrTPCnv/TrkGeometry/ElementTable_p1.h
"
13
#include "
TrkDetDescrTPCnv/TrkGeometry/MaterialCnv_p1.h
"
14
15
void
ElementTableCnv_p1::persToTrans
(
const
Trk::ElementTable_p1
*persObj,
16
Trk::ElementTable
*transObj,
17
MsgStream& mlog)
18
{
19
// create the transient representation of the element table
20
for
(
size_t
im = 0; im < persObj->
table
.size(); ++im){
21
auto
tMaterial = std::make_unique<Trk::Material>();
22
m_materialCnv
.persToTrans( &persObj->
table
[im], tMaterial.get(), mlog );
23
transObj->
addElement
(std::move (tMaterial), persObj->
names
[im]);
24
}
25
}
26
27
void
ElementTableCnv_p1::transToPers
(
const
Trk::ElementTable
*transObj,
28
Trk::ElementTable_p1
*persObj,
29
MsgStream& mlog)
30
{
31
// create the persistent representation of the element table - only write out what you have
32
for
(
size_t
im = 0; im < transObj->
size
(); ++im){
33
if
(transObj->
contains
(im)){
34
Trk::Material_p1
pMaterial;
35
m_materialCnv
.transToPers( transObj->
element
(im), &pMaterial, mlog );
36
persObj->
table
.push_back( std::move(pMaterial) );
37
persObj->
names
.push_back( transObj->
elementName
(im) );
38
}
39
}
40
}
ElementTableCnv_p1.h
ElementTable.h
ElementTable_p1.h
MaterialCnv_p1.h
Material.h
ElementTableCnv_p1::persToTrans
virtual void persToTrans(const Trk::ElementTable_p1 *persObj, Trk::ElementTable *transObj, MsgStream &log)
Definition
ElementTableCnv_p1.cxx:15
ElementTableCnv_p1::m_materialCnv
MaterialCnv_p1 m_materialCnv
Definition
ElementTableCnv_p1.h:33
ElementTableCnv_p1::transToPers
virtual void transToPers(const Trk::ElementTable *transObj, Trk::ElementTable_p1 *persObj, MsgStream &log)
Definition
ElementTableCnv_p1.cxx:27
Trk::ElementTable_p1
elements & fractions as unsigned char - if filled
Definition
ElementTable_p1.h:25
Trk::ElementTable_p1::table
std::vector< Material_p1 > table
Definition
ElementTable_p1.h:32
Trk::ElementTable_p1::names
std::vector< std::string > names
Definition
ElementTable_p1.h:33
Trk::ElementTable
Definition
ElementTable.h:24
Trk::ElementTable::contains
bool contains(unsigned int Z) const
quick check
Definition
ElementTable.h:93
Trk::ElementTable::addElement
void addElement(const Material &mat, const std::string &mname="")
Add material to the Table - if the elment is already filled ignore.
Definition
ElementTable.h:75
Trk::ElementTable::size
size_t size() const
Print the table size.
Definition
ElementTable.h:96
Trk::ElementTable::element
const Material * element(unsigned int Z) const
Get the material.
Definition
ElementTable.h:71
Trk::ElementTable::elementName
const std::string & elementName(unsigned int Z) const
Get the element name.
Definition
ElementTable.h:73
Trk::Material_p1
the persistent object is simply a std::vector<float> where
Definition
Material_p1.h:32
Generated on
for ATLAS Offline Software by
1.17.0