ATLAS Offline Software
Loading...
Searching...
No Matches
TRT_LayerBuilderImpl.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 INDETTRACKINGGEOMETRY_TRT_LAYERBUILDERIMPL_H
6#define INDETTRACKINGGEOMETRY_TRT_LAYERBUILDERIMPL_H
7
8// Amg
10// Athena
12// Gaudi
13#include "GaudiKernel/SystemOfUnits.h"
14// Trk
16// InDet
18// StoreGate
20// STL
21#include <memory>
22#include <vector>
23
24#ifndef TRKDETDESCR_TAKESMALLERBIGGER
25#define TRKDETDESCR_TAKESMALLERBIGGER
26#define takeSmaller(current,test) current = current < test ? current : test
27#define takeBigger(current,test) current = current > test ? current : test
28#define takeSmallerBigger(cSmallest, cBiggest, test) takeSmaller(cSmallest, test); takeBigger(cBiggest, test)
29#endif
30
31namespace InDetDD {
32 class TRT_DetectorManager;
33}
34
35namespace Trk {
36 class Surface;
37 class Layer;
38 class CylinderLayer;
39 class DiscLayer;
40 class ExtendedMaterialProperties;
41 typedef std::pair< std::shared_ptr<Surface>, Amg::Vector3D > SurfaceOrderPosition;
42}
43
44namespace InDet {
45
51 public AthAlgTool {
52
54 friend class TRT_VolumeBuilder;
55
56 public:
57
59 virtual ~TRT_LayerBuilderImpl() = default;
60
61 protected:
63 TRT_LayerBuilderImpl(const std::string&,const std::string&,const IInterface*);
64
65 std::unique_ptr<const std::vector<Trk::CylinderLayer*> >
67
68 std::unique_ptr<const std::vector<Trk::DiscLayer*> >
69 discLayersImpl(const InDetDD::TRT_DetElementContainer* trtContainer) const;
70
71 double m_layerStrawRadius{2.0*Gaudi::Units::mm};
72 DoubleProperty m_layerThickness{this, "LayerThickness", 0.1*Gaudi::Units::mm};
73 BooleanProperty m_modelGeometry{this, "ModelLayersOnly", true};
74 UnsignedIntegerProperty m_modelBarrelLayers{this, "ModelBarrelLayers", 7};
75 UnsignedIntegerProperty m_modelEndcapLayers{this, "ModelEndcapLayers", 14};
76
77 UnsignedIntegerProperty m_barrelLayerBinsZ{this, "BarrelLayerBinsZ", 25};
78 UnsignedIntegerProperty m_barrelLayerBinsPhi{this, "BarrelLayerBinsPhi", 1};
79 UnsignedIntegerProperty m_endcapLayerBinsR{this, "EndcapLayerBinsR", 25};
80 UnsignedIntegerProperty m_endcapLayerBinsPhi{this, "EndcapLayerBinsPhi", 1};
81 BooleanProperty m_endcapConly{this, "EndcapConly", false};
82
83 BooleanProperty m_registerStraws{this, "RegisterStraws", false};
84 IntegerProperty m_barrelSectorAtPiBoundary{this, "BarrelSectorAtPi", 16};
85
86 StringProperty m_identification{this, "Identification", "TRT"};
87
88
89 };
90} // end of namespace
91
92
93#endif // INDETTRACKINGGEOMETRY_TRT_LAYERBUILDERIMPL_H
#define ATLAS_NOT_THREAD_SAFE
getNoisyStrip() Find noisy strips from hitmaps and write out into xml/db formats
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
Class to hold different TRT detector elements structures.
UnsignedIntegerProperty m_endcapLayerBinsR
Bins for the Endcap material - in r.
DoubleProperty m_layerThickness
modelled layer thickness
virtual ~TRT_LayerBuilderImpl()=default
Destructor.
std::unique_ptr< const std::vector< Trk::CylinderLayer * > > cylindricalLayersImpl(const InDetDD::TRT_DetElementContainer *trtContainer) const
UnsignedIntegerProperty m_modelEndcapLayers
model endcap layers with material
BooleanProperty m_endcapConly
Only build the endcapC.
UnsignedIntegerProperty m_barrelLayerBinsPhi
Bins for the Barrel material - in phi.
TRT_LayerBuilderImpl(const std::string &, const std::string &, const IInterface *)
AlgTool style constructor.
UnsignedIntegerProperty m_endcapLayerBinsPhi
Bins for the Endcap material - in phi.
std::unique_ptr< const std::vector< Trk::DiscLayer * > > discLayersImpl(const InDetDD::TRT_DetElementContainer *trtContainer) const
UnsignedIntegerProperty m_modelBarrelLayers
model barrel layers with material
IntegerProperty m_barrelSectorAtPiBoundary
this is the barrel Sector where +pi/-pi is within
friend class TRT_VolumeBuilder
Declare the TRT_VolumeBuilder as friend.
BooleanProperty m_registerStraws
register the straws
StringProperty m_identification
string identification
BooleanProperty m_modelGeometry
Build the geometry with model layers.
double m_layerStrawRadius
straw radius
UnsignedIntegerProperty m_barrelLayerBinsZ
Bins for the Barrel material - in z.
Class to describe a cylindrical detector layer for tracking, it inhertis from both,...
Class to describe a disc-like detector layer for tracking, it inhertis from both, Layer base class an...
Definition DiscLayer.h:45
Base Class for a Detector Layer in the Tracking realm.
Definition Layer.h:72
Abstract Base Class for tracking surfaces.
Eigen::Matrix< double, 3, 1 > Vector3D
Message Stream Member.
Primary Vertex Finder.
Ensure that the ATLAS eigen extensions are properly loaded.
std::pair< std::shared_ptr< Surface >, Amg::Vector3D > SurfaceOrderPosition