ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
InnerDetector
InDetDetDescr
SCT_GeoModel
src
SCT_ComponentFactory.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#ifndef SCT_GEOMODEL_SCT_COMPONENTFACTORY_H
6
#define SCT_GEOMODEL_SCT_COMPONENTFACTORY_H
7
8
#include "
SCT_Identifier.h
"
9
#include <string>
10
#include <map>
11
#include <memory>
12
13
namespace
InDetDD
{
class
SCT_DetectorManager
;}
14
class
SCT_GeometryManager
;
15
class
SCT_MaterialManager
;
16
17
class
GeoLogVol;
18
class
GeoVPhysVol;
19
class
GeoFullPhysVol;
20
class
GeoAlignableTransform;
21
22
namespace
GeoModelIO
{
23
class
ReadGeoModel;
24
}
25
26
class
SCT_ComponentFactory
27
{
28
29
public
:
30
SCT_ComponentFactory
(
const
std::string & name,
31
InDetDD::SCT_DetectorManager
* detectorManager,
32
SCT_GeometryManager
* geometryManager,
33
SCT_MaterialManager
* materials);
34
35
const
std::string &
getName
()
const
{
return
m_name
;}
36
37
protected
:
38
InDetDD::SCT_DetectorManager
*
m_detectorManager
{};
39
SCT_GeometryManager
*
m_geometryManager
{};
40
SCT_MaterialManager
*
m_materials
{};
41
42
double
epsilon
()
const
;
43
virtual
~SCT_ComponentFactory
();
44
45
private
:
46
std::string
m_name
;
47
static
const
double
s_epsilon
;
48
49
};
50
51
52
class
SCT_SharedComponentFactory
:
public
SCT_ComponentFactory
53
{
54
55
public
:
56
SCT_SharedComponentFactory
(
const
std::string & name,
57
InDetDD::SCT_DetectorManager
* detectorManager,
58
SCT_GeometryManager
* geometryManager,
59
SCT_MaterialManager
* materials=
nullptr
) :
60
SCT_ComponentFactory
(name, detectorManager, geometryManager, materials)
61
{};
62
63
GeoVPhysVol *
getVolume
() {
return
m_physVolume
;}
64
65
protected
:
66
GeoVPhysVol *
m_physVolume
{};
67
virtual
GeoVPhysVol *
build
() = 0;
68
69
};
70
71
class
SCT_UniqueComponentFactory
:
public
SCT_ComponentFactory
72
{
73
74
public
:
75
SCT_UniqueComponentFactory
(
const
std::string & name,
76
InDetDD::SCT_DetectorManager
* detectorManager,
77
SCT_GeometryManager
* geometryManager,
78
SCT_MaterialManager
* materials=
nullptr
,
79
GeoModelIO::ReadGeoModel* sqliteReader=
nullptr
,
80
std::shared_ptr<std::map<std::string, GeoFullPhysVol*>> mapFPV=
nullptr
,
81
std::shared_ptr<std::map<std::string, GeoAlignableTransform*>> mapAX=
nullptr
);
82
83
virtual
GeoVPhysVol *
build
(
SCT_Identifier
id
) = 0;
84
85
protected
:
86
const
GeoLogVol *
m_logVolume
{};
87
GeoModelIO::ReadGeoModel*
m_sqliteReader
{};
88
89
virtual
const
GeoLogVol *
preBuild
() = 0;
90
91
std::shared_ptr<std::map<std::string, GeoFullPhysVol*>>
m_mapFPV
;
92
std::shared_ptr<std::map<std::string, GeoAlignableTransform*>>
m_mapAX
;
93
94
};
95
96
#endif
// SCT_GEOMODEL_SCT_COMPONENTFACTORY_H
SCT_Identifier.h
InDetDD::SCT_DetectorManager
Dedicated detector manager extending the functionality of the SiDetectorManager with dedicated SCT in...
Definition
SCT_DetectorManager.h:50
SCT_ComponentFactory::getName
const std::string & getName() const
Definition
SCT_ComponentFactory.h:35
SCT_ComponentFactory::SCT_ComponentFactory
SCT_ComponentFactory(const std::string &name, InDetDD::SCT_DetectorManager *detectorManager, SCT_GeometryManager *geometryManager, SCT_MaterialManager *materials)
Definition
SCT_ComponentFactory.cxx:15
SCT_ComponentFactory::s_epsilon
static const double s_epsilon
Definition
SCT_ComponentFactory.h:47
SCT_ComponentFactory::m_detectorManager
InDetDD::SCT_DetectorManager * m_detectorManager
Definition
SCT_ComponentFactory.h:38
SCT_ComponentFactory::~SCT_ComponentFactory
virtual ~SCT_ComponentFactory()
SCT_ComponentFactory::epsilon
double epsilon() const
Definition
SCT_ComponentFactory.cxx:28
SCT_ComponentFactory::m_geometryManager
SCT_GeometryManager * m_geometryManager
Definition
SCT_ComponentFactory.h:39
SCT_ComponentFactory::m_name
std::string m_name
Definition
SCT_ComponentFactory.h:46
SCT_ComponentFactory::m_materials
SCT_MaterialManager * m_materials
Definition
SCT_ComponentFactory.h:40
SCT_GeometryManager
Definition
SCT_GeometryManager.h:25
SCT_Identifier
Definition
SCT_Identifier.h:12
SCT_MaterialManager
Definition
SCT_MaterialManager.h:21
SCT_SharedComponentFactory::build
virtual GeoVPhysVol * build()=0
SCT_SharedComponentFactory::m_physVolume
GeoVPhysVol * m_physVolume
Definition
SCT_ComponentFactory.h:66
SCT_SharedComponentFactory::getVolume
GeoVPhysVol * getVolume()
Definition
SCT_ComponentFactory.h:63
SCT_SharedComponentFactory::SCT_SharedComponentFactory
SCT_SharedComponentFactory(const std::string &name, InDetDD::SCT_DetectorManager *detectorManager, SCT_GeometryManager *geometryManager, SCT_MaterialManager *materials=nullptr)
Definition
SCT_ComponentFactory.h:56
SCT_UniqueComponentFactory::SCT_UniqueComponentFactory
SCT_UniqueComponentFactory(const std::string &name, InDetDD::SCT_DetectorManager *detectorManager, SCT_GeometryManager *geometryManager, SCT_MaterialManager *materials=nullptr, GeoModelIO::ReadGeoModel *sqliteReader=nullptr, std::shared_ptr< std::map< std::string, GeoFullPhysVol * > > mapFPV=nullptr, std::shared_ptr< std::map< std::string, GeoAlignableTransform * > > mapAX=nullptr)
Definition
SCT_ComponentFactory.cxx:34
SCT_UniqueComponentFactory::m_mapFPV
std::shared_ptr< std::map< std::string, GeoFullPhysVol * > > m_mapFPV
Definition
SCT_ComponentFactory.h:91
SCT_UniqueComponentFactory::preBuild
virtual const GeoLogVol * preBuild()=0
SCT_UniqueComponentFactory::m_logVolume
const GeoLogVol * m_logVolume
Definition
SCT_ComponentFactory.h:86
SCT_UniqueComponentFactory::m_mapAX
std::shared_ptr< std::map< std::string, GeoAlignableTransform * > > m_mapAX
Definition
SCT_ComponentFactory.h:92
SCT_UniqueComponentFactory::m_sqliteReader
GeoModelIO::ReadGeoModel * m_sqliteReader
Definition
SCT_ComponentFactory.h:87
SCT_UniqueComponentFactory::build
virtual GeoVPhysVol * build(SCT_Identifier id)=0
GeoModelIO
Definition
IGeoDbTagSvc.h:12
InDetDD
Message Stream Member.
Definition
FakeTrackBuilder.h:8
Generated on
for ATLAS Offline Software by
1.17.0