ATLAS Offline Software
TRT_LayerBuilderImpl.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 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
17 // InDet
19 // StoreGate
21 // STL
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 
31 namespace InDetDD {
32  class TRT_DetectorManager;
33 }
34 
35 namespace Trk {
36  class Surface;
37  class Layer;
38  class CylinderLayer;
39  class DiscLayer;
40  class ExtendedMaterialProperties;
41  typedef std::pair< SharedObject<Surface>, Amg::Vector3D > SurfaceOrderPosition;
42 }
43 
44 namespace 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*> >
66  cylindricalLayersImpl(const InDetDD::TRT_DetElementContainer* trtContainer) const;
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
ATLAS_NOT_THREAD_SAFE
#define ATLAS_NOT_THREAD_SAFE
getNoisyStrip() Find noisy strips from hitmaps and write out into xml/db formats
Definition: checker_macros.h:212
InDetDD::TRT_DetElementContainer
Class to hold different TRT detector elements structures.
Definition: TRT_DetElementContainer.h:25
TRT_DetElementContainer.h
InDet
DUMMY Primary Vertex Finder.
Definition: VP1ErrorUtils.h:36
Surface
Definition: Trigger/TrigAccel/TrigCudaFitter/src/Surface.h:7
python.RingerConstants.Layer
Layer
Definition: RingerConstants.py:42
GeoPrimitives.h
InDet::TRT_LayerBuilderImpl::~TRT_LayerBuilderImpl
virtual ~TRT_LayerBuilderImpl()=default
Destructor.
InDet::TRT_LayerBuilderImpl
Definition: TRT_LayerBuilderImpl.h:51
AthAlgTool.h
SharedObject.h
ReadCondHandleKey.h
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
python.SystemOfUnits.mm
int mm
Definition: SystemOfUnits.py:83
InDetDD
Message Stream Member.
Definition: FakeTrackBuilder.h:8
TrackingGeometry.h
AthAlgTool
Definition: AthAlgTool.h:26
Trk::SurfaceOrderPosition
std::pair< SharedObject< Surface >, Amg::Vector3D > SurfaceOrderPosition
Definition: HGTD_LayerBuilderCond.h:36