9#ifndef TRKGEOMETRY_ELEMENTTABLE_H
10#define TRKGEOMETRY_ELEMENTTABLE_H
35 for (
size_t im = 0; im <
et.m_table.size(); ++im) {
48 for (; elIter !=
m_table.end();
delete (*elIter), ++elIter)
51 for (
size_t im = 0; im <
et.m_table.size(); ++im) {
61 for (
size_t ie = 0; ie < size_t(UCHAR_MAX); ++ie) {
76 unsigned int Zint = (
unsigned int)mat.Z;
84 void addElement(std::unique_ptr<Material> mat,
const std::string& mname) {
85 unsigned int Zint = (
unsigned int)mat->Z;
macros to associate a CLID to a type
#define CLASS_DEF(NAME, CID, VERSION)
associate a clid and a version to a type eg
bool contains(unsigned int Z) const
quick check
void addElement(const Material &mat, const std::string &mname="")
Add material to the Table - if the elment is already filled ignore.
ElementTable()
Empty constructor.
size_t size() const
Print the table size.
void addElement(std::unique_ptr< Material > mat, const std::string &mname)
Version that takes ownership of a pointer.
ElementTable & operator+=(const ElementTable &et)
Adding two tables : add table entries from another table.
ElementTable & operator=(const ElementTable &et)
Assignment operator.
const Material * element(unsigned int Z) const
Get the material.
const std::string & elementName(unsigned int Z) const
Get the element name.
~ElementTable()
Destructor.
ElementTable(const ElementTable &et)
Empty constructor.
std::vector< std::string > m_names
std::vector< Material * > m_table
A common object to be contained by.
Ensure that the ATLAS eigen extensions are properly loaded.
MsgStream & operator<<(MsgStream &sl, const AlignModule &alignModule)
overload of << operator for MsgStream for debug output
Extra patterns decribing particle interation process.