ATLAS Offline Software
Loading...
Searching...
No Matches
AGDDMaterialStore Class Reference

#include <AGDDMaterialStore.h>

Collaboration diagram for AGDDMaterialStore:

Public Member Functions

 AGDDMaterialStore ()
void RegisterElement (AGDDElement *)
void RegisterMaterial (AGDDSimpleMaterial *)
AGDDSimpleMaterialGetMaterial (std::string_view)
AGDDElementGetElement (std::string_view)
int NumberOfMaterials ()
int NumberOfElements ()
MaterialIterator MaterialBegin ()
MaterialIterator MaterialEnd ()
ElementIterator ElementBegin ()
ElementIterator ElementEnd ()
void PrintElementNames ()
void PrintMaterialNames ()
void PrintElement (const std::string &n)
void PrintMaterial (const std::string &n)

Private Attributes

AGDDMaterialMap m_theMaterials
AGDDElementMap m_theElements
int m_nrOfMaterials
int m_nrOfElements

Detailed Description

Definition at line 23 of file AGDDMaterialStore.h.

Constructor & Destructor Documentation

◆ AGDDMaterialStore()

AGDDMaterialStore::AGDDMaterialStore ( )

Definition at line 11 of file AGDDMaterialStore.cxx.

12{
13 m_theMaterials.clear();
14 m_theElements.clear();
15}
AGDDMaterialMap m_theMaterials
AGDDElementMap m_theElements

Member Function Documentation

◆ ElementBegin()

ElementIterator AGDDMaterialStore::ElementBegin ( )
inline

Definition at line 36 of file AGDDMaterialStore.h.

36{return m_theElements.begin();}

◆ ElementEnd()

ElementIterator AGDDMaterialStore::ElementEnd ( )
inline

Definition at line 37 of file AGDDMaterialStore.h.

37{return m_theElements.end();}

◆ GetElement()

AGDDElement * AGDDMaterialStore::GetElement ( std::string_view el)

Definition at line 45 of file AGDDMaterialStore.cxx.

45 {
46 const auto it = m_theElements.find(el);
47 if (it == m_theElements.end()){
48 std::cout<<" Element "<<el<<" not found!"<<std::endl;
49 return nullptr;
50 }
51 return it->second;
52}

◆ GetMaterial()

AGDDSimpleMaterial * AGDDMaterialStore::GetMaterial ( std::string_view mat)

Definition at line 37 of file AGDDMaterialStore.cxx.

37 {
38 const auto it = m_theMaterials.find(mat);
39 if (it == m_theMaterials.end()) {
40 std::cout << " Material " << mat << " not found!\n";
41 return nullptr;
42 }
43 return it->second;
44}

◆ MaterialBegin()

MaterialIterator AGDDMaterialStore::MaterialBegin ( )
inline

Definition at line 34 of file AGDDMaterialStore.h.

34{return m_theMaterials.begin();}

◆ MaterialEnd()

MaterialIterator AGDDMaterialStore::MaterialEnd ( )
inline

Definition at line 35 of file AGDDMaterialStore.h.

35{return m_theMaterials.end();}

◆ NumberOfElements()

int AGDDMaterialStore::NumberOfElements ( )
inline

Definition at line 32 of file AGDDMaterialStore.h.

32{return m_nrOfElements;}

◆ NumberOfMaterials()

int AGDDMaterialStore::NumberOfMaterials ( )
inline

Definition at line 31 of file AGDDMaterialStore.h.

31{return m_nrOfMaterials;}

◆ PrintElement()

void AGDDMaterialStore::PrintElement ( const std::string & n)

Definition at line 82 of file AGDDMaterialStore.cxx.

83{
84 if (m_theElements.find(n)!=m_theElements.end())
85 std::cout<<*(m_theElements[n]);
86 else
87 std::cout<<"Element "<<n<<" not found!"<<std::endl;
88}

◆ PrintElementNames()

void AGDDMaterialStore::PrintElementNames ( )

Definition at line 54 of file AGDDMaterialStore.cxx.

55{
56 std::cout<<"List of elements so far defined: "<<
57 std::endl<<"-----> ";
58 AGDDElementMap::const_iterator it;
59 int i=0;
60 for (it=m_theElements.begin();it!=m_theElements.end();++it)
61 {
62 i++;
63 if (!(i%5)) std::cout<<std::endl<<"-----> ";
64 std::cout<<(*it).first<<",";
65 }
66}

◆ PrintMaterial()

void AGDDMaterialStore::PrintMaterial ( const std::string & n)

Definition at line 90 of file AGDDMaterialStore.cxx.

91{
92 if (m_theMaterials.find(n)!=m_theMaterials.end())
93 std::cout<<*(m_theMaterials[n]);
94 else
95 std::cout<<"Material "<<n<<" not found!"<<std::endl;
96}

◆ PrintMaterialNames()

void AGDDMaterialStore::PrintMaterialNames ( )

Definition at line 68 of file AGDDMaterialStore.cxx.

69{
70 std::cout<<"List of materials so far defined: "<<
71 std::endl<<"-----> ";
72 AGDDMaterialMap::const_iterator it;
73 int i=0;
74 for (it=m_theMaterials.begin();it!=m_theMaterials.end();++it)
75 {
76 i++;
77 if (!(i%5)) std::cout<<std::endl<<"-----> ";
78 std::cout<<(*it).first<<",";
79 }
80}

◆ RegisterElement()

void AGDDMaterialStore::RegisterElement ( AGDDElement * el)

Definition at line 18 of file AGDDMaterialStore.cxx.

18 {
19 const auto &[it, inserted] = m_theElements.try_emplace(el->GetName(), el);
20 if (!inserted) {
21 std::cout << "Element " << el->GetName()<< " already defined: skipping\n";
22 return;
23 }
25}

◆ RegisterMaterial()

void AGDDMaterialStore::RegisterMaterial ( AGDDSimpleMaterial * mat)

Definition at line 27 of file AGDDMaterialStore.cxx.

27 {
28 const auto &[it, inserted] = m_theMaterials.try_emplace(mat->GetName(), mat);
29 if (!inserted) {
30 std::cout << "Material " << mat->GetName() << " already defined: skipping\n";
31 return;
32 }
34}

Member Data Documentation

◆ m_nrOfElements

int AGDDMaterialStore::m_nrOfElements
private

Definition at line 50 of file AGDDMaterialStore.h.

◆ m_nrOfMaterials

int AGDDMaterialStore::m_nrOfMaterials
private

Definition at line 49 of file AGDDMaterialStore.h.

◆ m_theElements

AGDDElementMap AGDDMaterialStore::m_theElements
private

Definition at line 47 of file AGDDMaterialStore.h.

◆ m_theMaterials

AGDDMaterialMap AGDDMaterialStore::m_theMaterials
private

Definition at line 46 of file AGDDMaterialStore.h.


The documentation for this class was generated from the following files: