ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Tracking
Acts
ActsGeometry
ActsGeometry
ActsHGTDLayerBuilder.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#ifndef ACTSGEOMETRY_ACTSHGTDLAYERBUILDER_H
6
#define ACTSGEOMETRY_ACTSHGTDLAYERBUILDER_H
7
8
// PACKAGE
9
#include "
ActsGeometry/ActsDetectorElement.h
"
10
#include "
ActsGeometry/ActsElementVector.h
"
11
12
// ATHENA
13
#include "
CxxUtils/checker_macros.h
"
14
#include <mutex>
15
16
// ACTS
17
#include "Acts/Geometry/ILayerBuilder.hpp"
18
#include "Acts/Utilities/Logger.hpp"
19
#include "Acts/Utilities/BinningType.hpp"
20
#include "Acts/Geometry/GeometryContext.hpp"
21
#include "Acts/Definitions/Units.hpp"
22
23
class
ActsTrackingGeomtrySvc;
24
25
class
HGTD_ID
;
26
class
HGTD_DetectorManager
;
27
class
ActsDetectorElement
;
28
29
namespace
Acts
{
30
class
Surface;
31
class
LayerCreator;
32
}
33
35
class
ActsHGTDLayerBuilder
:
public
Acts::ILayerBuilder
36
{
37
public
:
38
39
using
ElementVector
=
ActsElementVector
;
40
43
44
struct
Config
45
{
47
std::string
configurationName
=
"undefined"
;
48
const
HGTD_DetectorManager
*
mng
{
nullptr
};
49
const
HGTD_ID
*
idHelper
=
nullptr
;
50
std::shared_ptr<const Acts::LayerCreator>
layerCreator
=
nullptr
;
51
Acts::BinningType
bTypePhi
= Acts::equidistant;
54
Acts::BinningType
bTypeR
= Acts::equidistant;
57
Acts::BinningType
bTypeZ
= Acts::equidistant;
58
59
std::shared_ptr<ElementVector>
elementStore
{
nullptr
};
60
61
std::array<double, 2>
endcapEnvelopeR
= {50 * Acts::UnitConstants::mm,
62
50 * Acts::UnitConstants::mm};
// m_discEnvelopeR in athena/HighGranularityTimingDetector/HGTD_Reconstruction/HGTD_TrackingGeometry/src/HGTD_LayerBuilderCond.cxx
63
std::array<double, 2>
endcapEnvelopeZ
= {0.2 * Acts::UnitConstants::mm,
64
0.2 * Acts::UnitConstants::mm};
// m_discThickness
65
66
std::pair<size_t, size_t>
endcapMaterialBins
= {20, 50};
//{Phi, R}
67
68
bool
objDebugOutput
=
false
;
69
73
double
numberOfBinsFactor
= 5.0;
74
};
75
79
80
ActsHGTDLayerBuilder
(
const
Config
& cfg,
81
std::unique_ptr<const Acts::Logger>
logger
);
82
84
virtual
~ActsHGTDLayerBuilder
() =
default
;
85
86
virtual
const
Acts::LayerVector
87
negativeLayers
(
const
Acts::GeometryContext& gctx)
const override
;
88
89
virtual
const
Acts::LayerVector
90
centralLayers
(
const
Acts::GeometryContext& gctx)
const override
;
91
92
virtual
const
Acts::LayerVector
93
positiveLayers
(
const
Acts::GeometryContext& gctx)
const override
;
94
95
virtual
96
const
std::string&
97
identification
()
const override
98
{
99
return
m_cfg
.configurationName;
100
}
101
102
private
:
104
Config
m_cfg
;
105
107
const
Acts::Logger&
108
logger
()
const
109
{
110
return
*
m_logger
;
111
}
112
113
std::vector<std::shared_ptr<const ActsDetectorElement>>
114
getDetectorElements
()
const
;
115
117
std::unique_ptr<const Acts::Logger>
m_logger
;
118
119
// Private helper method : build layers
120
// @param layers is goint to be filled
121
// @param type is the indication which ones to build -1 | 0 | 1
122
void
123
buildEndcap
(
const
Acts::GeometryContext& gctx, Acts::LayerVector& layersOutput,
int
type
= 0)
const
;
124
125
};
126
127
#endif
ActsDetectorElement.h
ActsElementVector.h
Helper to hold elements for deletion.
checker_macros.h
Define macros for attributes used to control the static checker.
ActsDetectorElement
Definition
ActsDetectorElement.h:58
ActsElementVector
Helper to hold elements for deletion.
Definition
ActsElementVector.h:30
ActsHGTDLayerBuilder::negativeLayers
virtual const Acts::LayerVector negativeLayers(const Acts::GeometryContext &gctx) const override
Definition
ActsHGTDLayerBuilder.cxx:49
ActsHGTDLayerBuilder::ElementVector
ActsElementVector ElementVector
Definition
ActsHGTDLayerBuilder.h:39
ActsHGTDLayerBuilder::ActsHGTDLayerBuilder
ActsHGTDLayerBuilder(const Config &cfg, std::unique_ptr< const Acts::Logger > logger)
Constructor.
Definition
ActsHGTDLayerBuilder.cxx:41
ActsHGTDLayerBuilder::m_logger
std::unique_ptr< const Acts::Logger > m_logger
logging instance
Definition
ActsHGTDLayerBuilder.h:117
ActsHGTDLayerBuilder::getDetectorElements
std::vector< std::shared_ptr< const ActsDetectorElement > > getDetectorElements() const
Definition
ActsHGTDLayerBuilder.cxx:234
ActsHGTDLayerBuilder::~ActsHGTDLayerBuilder
virtual ~ActsHGTDLayerBuilder()=default
Destructor.
ActsHGTDLayerBuilder::centralLayers
virtual const Acts::LayerVector centralLayers(const Acts::GeometryContext &gctx) const override
Definition
ActsHGTDLayerBuilder.cxx:57
ActsHGTDLayerBuilder::positiveLayers
virtual const Acts::LayerVector positiveLayers(const Acts::GeometryContext &gctx) const override
Definition
ActsHGTDLayerBuilder.cxx:64
ActsHGTDLayerBuilder::m_cfg
Config m_cfg
configuration object
Definition
ActsHGTDLayerBuilder.h:104
ActsHGTDLayerBuilder::buildEndcap
void buildEndcap(const Acts::GeometryContext &gctx, Acts::LayerVector &layersOutput, int type=0) const
Definition
ActsHGTDLayerBuilder.cxx:71
ActsHGTDLayerBuilder::logger
const Acts::Logger & logger() const
Private access to the logger.
Definition
ActsHGTDLayerBuilder.h:108
ActsHGTDLayerBuilder::identification
virtual const std::string & identification() const override
Definition
ActsHGTDLayerBuilder.h:97
HGTD_DetectorManager
The Detector manager has methods to retrieve the Identifier helper and methods to retrieve the detect...
Definition
HGTD_DetectorManager.h:33
HGTD_ID
This is an Identifier helper class for the HGTD subdetector.
Definition
HGTD_ID.h:47
Acts
This class is not to needed in AthSimulation.
Definition
MuonSpectrometer/MuonPhaseII/Event/xAOD/xAODMuonPrepData/xAODMuonPrepData/UtilFunctions.h:23
ActsHGTDLayerBuilder::Config
nested configuration struct for steering of the layer builder
Definition
ActsHGTDLayerBuilder.h:45
ActsHGTDLayerBuilder::Config::objDebugOutput
bool objDebugOutput
Definition
ActsHGTDLayerBuilder.h:68
ActsHGTDLayerBuilder::Config::bTypeZ
Acts::BinningType bTypeZ
the binning type of the contained surfaces in z (equidistant/arbitrary)
Definition
ActsHGTDLayerBuilder.h:57
ActsHGTDLayerBuilder::Config::layerCreator
std::shared_ptr< const Acts::LayerCreator > layerCreator
Definition
ActsHGTDLayerBuilder.h:50
ActsHGTDLayerBuilder::Config::idHelper
const HGTD_ID * idHelper
Definition
ActsHGTDLayerBuilder.h:49
ActsHGTDLayerBuilder::Config::bTypeR
Acts::BinningType bTypeR
the binning type of the contained surfaces in r (equidistant/arbitrary)
Definition
ActsHGTDLayerBuilder.h:54
ActsHGTDLayerBuilder::Config::endcapMaterialBins
std::pair< size_t, size_t > endcapMaterialBins
Definition
ActsHGTDLayerBuilder.h:66
ActsHGTDLayerBuilder::Config::mng
const HGTD_DetectorManager * mng
Definition
ActsHGTDLayerBuilder.h:48
ActsHGTDLayerBuilder::Config::bTypePhi
Acts::BinningType bTypePhi
Definition
ActsHGTDLayerBuilder.h:51
ActsHGTDLayerBuilder::Config::numberOfBinsFactor
double numberOfBinsFactor
controls how many bins are created for the sensitive surface grid.
Definition
ActsHGTDLayerBuilder.h:73
ActsHGTDLayerBuilder::Config::elementStore
std::shared_ptr< ElementVector > elementStore
Definition
ActsHGTDLayerBuilder.h:59
ActsHGTDLayerBuilder::Config::endcapEnvelopeZ
std::array< double, 2 > endcapEnvelopeZ
Definition
ActsHGTDLayerBuilder.h:63
ActsHGTDLayerBuilder::Config::endcapEnvelopeR
std::array< double, 2 > endcapEnvelopeR
Definition
ActsHGTDLayerBuilder.h:61
ActsHGTDLayerBuilder::Config::configurationName
std::string configurationName
string based identification
Definition
ActsHGTDLayerBuilder.h:47
type
Generated on
for ATLAS Offline Software by
1.17.0