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 "
GeoPrimitives/GeoPrimitives.h
"
10
#include "
SCT_Identifier.h
"
11
#include <string>
12
#include <map>
13
#include <memory>
14
15
namespace
InDetDD
{
class
SCT_DetectorManager
;}
16
class
SCT_GeometryManager
;
17
class
SCT_MaterialManager
;
18
19
class
GeoLogVol;
20
class
GeoVPhysVol;
21
class
GeoFullPhysVol;
22
class
GeoAlignableTransform;
23
24
namespace
GeoModelIO
{
25
class
ReadGeoModel;
26
}
27
28
class
SCT_ComponentFactory
29
{
30
31
public
:
32
SCT_ComponentFactory
(
const
std::string & name,
33
InDetDD::SCT_DetectorManager
* detectorManager,
34
SCT_GeometryManager
* geometryManager,
35
SCT_MaterialManager
* materials);
36
37
const
std::string &
getName
()
const
{
return
m_name
;}
38
39
protected
:
40
InDetDD::SCT_DetectorManager
*
m_detectorManager
{};
41
SCT_GeometryManager
*
m_geometryManager
{};
42
SCT_MaterialManager
*
m_materials
{};
43
44
double
epsilon
()
const
;
45
virtual
~SCT_ComponentFactory
();
46
47
private
:
48
std::string
m_name
;
49
static
const
double
s_epsilon
;
50
51
};
52
53
54
class
SCT_SharedComponentFactory
:
public
SCT_ComponentFactory
55
{
56
57
public
:
58
SCT_SharedComponentFactory
(
const
std::string & name,
59
InDetDD::SCT_DetectorManager
* detectorManager,
60
SCT_GeometryManager
* geometryManager,
61
SCT_MaterialManager
* materials=
nullptr
) :
62
SCT_ComponentFactory
(name, detectorManager, geometryManager, materials)
63
{};
64
65
GeoVPhysVol *
getVolume
() {
return
m_physVolume
;}
66
67
protected
:
68
GeoVPhysVol *
m_physVolume
{};
69
virtual
GeoVPhysVol *
build
() = 0;
70
71
};
72
73
class
SCT_UniqueComponentFactory
:
public
SCT_ComponentFactory
74
{
75
76
public
:
77
SCT_UniqueComponentFactory
(
const
std::string & name,
78
InDetDD::SCT_DetectorManager
* detectorManager,
79
SCT_GeometryManager
* geometryManager,
80
SCT_MaterialManager
* materials=
nullptr
,
81
GeoModelIO::ReadGeoModel* sqliteReader=
nullptr
,
82
std::shared_ptr<std::map<std::string, GeoFullPhysVol*>> mapFPV=
nullptr
,
83
std::shared_ptr<std::map<std::string, GeoAlignableTransform*>> mapAX=
nullptr
);
84
85
virtual
GeoVPhysVol *
build
(
SCT_Identifier
id
) = 0;
86
87
protected
:
88
const
GeoLogVol *
m_logVolume
{};
89
GeoModelIO::ReadGeoModel*
m_sqliteReader
{};
90
91
virtual
const
GeoLogVol *
preBuild
() = 0;
92
93
std::shared_ptr<std::map<std::string, GeoFullPhysVol*>>
m_mapFPV
;
94
std::shared_ptr<std::map<std::string, GeoAlignableTransform*>>
m_mapAX
;
95
96
};
97
98
#endif
// SCT_GEOMODEL_SCT_COMPONENTFACTORY_H
GeoPrimitives.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:37
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:49
SCT_ComponentFactory::m_detectorManager
InDetDD::SCT_DetectorManager * m_detectorManager
Definition
SCT_ComponentFactory.h:40
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:41
SCT_ComponentFactory::m_name
std::string m_name
Definition
SCT_ComponentFactory.h:48
SCT_ComponentFactory::m_materials
SCT_MaterialManager * m_materials
Definition
SCT_ComponentFactory.h:42
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:68
SCT_SharedComponentFactory::getVolume
GeoVPhysVol * getVolume()
Definition
SCT_ComponentFactory.h:65
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:58
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:93
SCT_UniqueComponentFactory::preBuild
virtual const GeoLogVol * preBuild()=0
SCT_UniqueComponentFactory::m_logVolume
const GeoLogVol * m_logVolume
Definition
SCT_ComponentFactory.h:88
SCT_UniqueComponentFactory::m_mapAX
std::shared_ptr< std::map< std::string, GeoAlignableTransform * > > m_mapAX
Definition
SCT_ComponentFactory.h:94
SCT_UniqueComponentFactory::m_sqliteReader
GeoModelIO::ReadGeoModel * m_sqliteReader
Definition
SCT_ComponentFactory.h:89
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