ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
DetectorDescription
GeoModel
GeoModelSvc
src
RDBMaterialManager.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#ifndef GEOMODELSVC_RDBMATERIALMANAGER_H
6
#define GEOMODELSVC_RDBMATERIALMANAGER_H
7
14
15
#include "
GeoModelInterfaces/StoredMaterialManager.h
"
16
#include "
RDBAccessSvc/IRDBAccessSvc.h
"
17
#include "GeoModelKernel/GeoIntrusivePtr.h"
18
#include "GeoModelKernel/GeoElement.h"
19
#include "
AthenaBaseComps/AthMessaging.h
"
20
21
#include <string>
22
#include <string_view>
23
#include <vector>
24
#include <iosfwd>
25
26
class
GeoMaterial;
27
class
ISvcLocator;
28
29
class
RDBMaterialManager
final :
public
StoredMaterialManager
,
public
AthMessaging
{
30
31
public
:
32
33
// Constructor:
34
RDBMaterialManager
(ISvcLocator* pSvcLocator);
35
36
// Destructor:
37
virtual
~RDBMaterialManager
();
38
39
// Query the material:
40
virtual
const
GeoMaterial *
getMaterial
(std::string_view name)
override
;
41
42
// Query the elements:
43
virtual
const
GeoElement *
getElement
(
const
std::string & name)
override
;
44
45
// Query the elements (by atomic number):
46
virtual
const
GeoElement *
getElement
(
unsigned
int
atomicNumber)
override
;
47
48
// Add new material
49
virtual
void
addMaterial
(
const
std::string& space, GeoMaterial* material)
override
;
50
51
virtual
StoredMaterialManager::MaterialMapIterator
begin
()
const override
;
52
virtual
StoredMaterialManager::MaterialMapIterator
end
()
const override
;
53
54
// Number of materials in the manager
55
virtual
size_t
size
()
override
;
56
57
virtual
std::ostream &
printAll
(std::ostream & o)
const override
;
58
//default std::cout output
59
virtual
std::ostream &
printAll
()
const override
;
60
private
:
61
62
StatusCode
readMaterialsFromDB
(ISvcLocator* pSvcLocator);
63
64
void
buildSpecialMaterials
();
65
66
GeoElement *
searchElementVector
(
const
std::string & name)
const
;
67
GeoElement *
searchElementVector
(
const
unsigned
int
atomicNumber)
const
;
68
GeoMaterial *
searchMaterialMap
(std::string_view name)
const
;
69
70
IRDBRecordset_ptr
m_elements
;
71
72
using
GeoEleVec
= std::vector<GeoIntrusivePtr<GeoElement>>;
73
GeoEleVec
m_elementVector
;
74
StoredMaterialManager::MaterialMap
m_materialMap
;
75
76
struct
DetectorAuxData
77
{
78
DetectorAuxData
(
const
std::string& prim_key
79
,
IRDBRecordset_ptr
materials
80
,
IRDBRecordset_ptr
matcomponents)
81
:
m_prim_key
(prim_key)
82
,
m_materials
(
std
::move(materials))
83
,
m_matcomponents
(
std
::move(matcomponents))
84
{}
85
86
std::string
m_prim_key
{};
87
IRDBRecordset_ptr
m_materials
{};
88
IRDBRecordset_ptr
m_matcomponents
{};
89
};
90
91
std::map<std::string,DetectorAuxData>
m_detData
;
92
};
93
94
95
#endif
AthMessaging.h
IRDBAccessSvc.h
Definition of the abstract IRDBAccessSvc interface.
IRDBRecordset_ptr
std::shared_ptr< IRDBRecordset > IRDBRecordset_ptr
Definition
IRDBAccessSvc.h:30
StoredMaterialManager.h
AthMessaging::AthMessaging
AthMessaging(IMessageSvc *msgSvc, const std::string &name)
Constructor.
Definition
AthMessaging.cxx:13
RDBMaterialManager::searchMaterialMap
GeoMaterial * searchMaterialMap(std::string_view name) const
Definition
RDBMaterialManager.cxx:201
RDBMaterialManager::readMaterialsFromDB
StatusCode readMaterialsFromDB(ISvcLocator *pSvcLocator)
Definition
RDBMaterialManager.cxx:32
RDBMaterialManager::end
virtual StoredMaterialManager::MaterialMapIterator end() const override
Definition
RDBMaterialManager.cxx:424
RDBMaterialManager::GeoEleVec
std::vector< GeoIntrusivePtr< GeoElement > > GeoEleVec
Definition
RDBMaterialManager.h:72
RDBMaterialManager::buildSpecialMaterials
void buildSpecialMaterials()
Definition
RDBMaterialManager.cxx:456
RDBMaterialManager::addMaterial
virtual void addMaterial(const std::string &space, GeoMaterial *material) override
Definition
RDBMaterialManager.cxx:404
RDBMaterialManager::m_detData
std::map< std::string, DetectorAuxData > m_detData
Definition
RDBMaterialManager.h:91
RDBMaterialManager::begin
virtual StoredMaterialManager::MaterialMapIterator begin() const override
Definition
RDBMaterialManager.cxx:419
RDBMaterialManager::RDBMaterialManager
RDBMaterialManager(ISvcLocator *pSvcLocator)
Definition
RDBMaterialManager.cxx:24
RDBMaterialManager::m_elements
IRDBRecordset_ptr m_elements
Definition
RDBMaterialManager.h:70
RDBMaterialManager::printAll
virtual std::ostream & printAll() const override
Definition
RDBMaterialManager.cxx:452
RDBMaterialManager::m_elementVector
GeoEleVec m_elementVector
Definition
RDBMaterialManager.h:73
RDBMaterialManager::searchElementVector
GeoElement * searchElementVector(const std::string &name) const
Definition
RDBMaterialManager.cxx:215
RDBMaterialManager::getMaterial
virtual const GeoMaterial * getMaterial(std::string_view name) override
Definition
RDBMaterialManager.cxx:250
RDBMaterialManager::m_materialMap
StoredMaterialManager::MaterialMap m_materialMap
Definition
RDBMaterialManager.h:74
RDBMaterialManager::size
virtual size_t size() override
Definition
RDBMaterialManager.cxx:429
RDBMaterialManager::~RDBMaterialManager
virtual ~RDBMaterialManager()
RDBMaterialManager::getElement
virtual const GeoElement * getElement(const std::string &name) override
Definition
RDBMaterialManager.cxx:360
StoredMaterialManager::StoredMaterialManager
StoredMaterialManager()=default
StoredMaterialManager::MaterialMapIterator
MaterialMap::const_iterator MaterialMapIterator
Definition
StoredMaterialManager.h:33
StoredMaterialManager::MaterialMap
std::map< std::string, GeoIntrusivePtr< GeoMaterial >, std::less<> > MaterialMap
Definition
StoredMaterialManager.h:32
std
STL namespace.
RDBMaterialManager::DetectorAuxData::DetectorAuxData
DetectorAuxData(const std::string &prim_key, IRDBRecordset_ptr materials, IRDBRecordset_ptr matcomponents)
Definition
RDBMaterialManager.h:78
RDBMaterialManager::DetectorAuxData::m_materials
IRDBRecordset_ptr m_materials
Definition
RDBMaterialManager.h:87
RDBMaterialManager::DetectorAuxData::m_prim_key
std::string m_prim_key
Definition
RDBMaterialManager.h:86
RDBMaterialManager::DetectorAuxData::m_matcomponents
IRDBRecordset_ptr m_matcomponents
Definition
RDBMaterialManager.h:88
Generated on
for ATLAS Offline Software by
1.17.0