5 #ifndef INDETTRACKINGGEOMETRY_ROBUSTTRACKINGGEOMETRYBUILDERIMPL_H
6 #define INDETTRACKINGGEOMETRY_ROBUSTTRACKINGGEOMETRYBUILDERIMPL_H
21 #include "GaudiKernel/ServiceHandle.h"
22 #include "GaudiKernel/SystemOfUnits.h"
23 #include "GaudiKernel/ToolHandle.h"
41 #ifndef TRKDETDESCR_TAKESMALLERBIGGER
42 #define TRKDETDESCR_TAKESMALLERBIGGER
43 #define takeSmaller(current, test) current = current < test ? current : test
44 #define takeBigger(current, test) current = current > test ? current : test
45 #define takeSmallerBigger(cSmallest, cBiggest, test) \
46 takeSamller(cSmallest, cBiggest, test); \
47 takeBigger(cSmallest, cBiggest, test)
86 template <ToolType type,
typename LayerBuilders,
typename PipeBuilder>
88 const LayerBuilders& layerHandles,
const PipeBuilder& pipeHandle,
89 const EventContext* ctx =
nullptr,
95 const std::vector<Trk::Layer*>& negLayers,
96 const std::vector<Trk::Layer*>& centralLayers,
97 const std::vector<Trk::Layer*>& posLayers,
double rMin,
double rMax,
98 double zMin,
double zPosCentral,
99 const std::string& baseName =
"UndefinedVolume",
int colorCode = 21,
105 const std::vector<Trk::TrackingVolume*>& negVolumes,
106 const std::vector<Trk::TrackingVolume*>& centralVolumes,
107 const std::vector<Trk::TrackingVolume*>& posVolumes,
108 const std::string& baseName =
"UndefinedVolume")
const;
116 PublicToolHandle<Trk::ITrackingVolumeCreator> m_trackingVolumeCreator{
117 this,
"TrackingVolumeCreator",
118 "Trk::CylinderVolumeCreator/"
119 "CylinderVolumeCreator"};
120 PublicToolHandle<Trk::ILayerArrayCreator> m_layerArrayCreator{
123 this,
"LayerArrayCreator",
124 "Trk::LayerArrayCreator/LayerArrayCreator"};
128 IntegerArrayProperty m_layerBinningType{
129 this,
"LayerBinningType", {}};
130 IntegerArrayProperty m_colorCodesConfig{
131 this,
"ColorCodes", {}};
135 this,
"EnvelopeDefinitionSvc",
136 "AtlasEnvelopeDefSvc"};
137 DoubleArrayProperty m_enclosingCylinderRadius{
140 "VolumeEnclosureCylinderRadii",
142 DoubleArrayProperty m_enclosingDiscPositionZ{
144 "VolumeEnclosureDiscPositions",
147 DoubleProperty m_layerEnvelopeCover{
149 BooleanProperty m_buildBoundaryLayers{
this,
"BuildBoundaryLayers",
151 BooleanProperty m_replaceJointBoundaries{
152 this,
"ReplaceAllJointBoundaries",
156 DoubleProperty m_outwardsFraction{
157 this,
"OutwardsFraction",
161 BooleanProperty m_indexStaticLayers{
162 this,
"IndexStaticLayers",
true};
164 StringProperty m_namespace{
this,
"VolumeNamespace",
167 StringProperty m_exitVolume{
168 this,
"ExitVolumeName",
169 "InDet::Containers::InnerDetector"};
170 BooleanProperty m_isITk{
177 #endif // INDETTRACKINGGEOMETRY_ROBUSTTRACKINGGEOMETRYBUILDERIMPL_H