ATLAS Offline Software
HGTD_LayerBuilderCond.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // HGTD_LayerBuilderCond.h, (c) ATLAS Detector software
8 
9 #ifndef HGTD_TRACKINGGEOMETRY_HGTDLAYERBUILDERCOND_H
10 #define HGTD_TRACKINGGEOMETRY_HGTDLAYERBUILDERCOND_H
11 
12 // Athena
13 // Athena
17 
18 // Amg
20 // Trk
25 // STL
26 #include <vector>
27 
28 class HGTD_ID;
30 
31 namespace Trk {
32  class Surface;
33  class CylinderLayer;
34  class DiscLayer;
35  class PlaneLayer;
36  class BinnedLayerMaterial;
37  typedef std::pair< SharedObject<Surface>, Amg::Vector3D > SurfaceOrderPosition;
38 }
39 
49 public AthAlgTool, virtual public Trk::ILayerBuilderCond {
50 
51  public:
52 
54  HGTD_LayerBuilderCond(const std::string&,const std::string&,const IInterface*);
55 
58 
60  virtual StatusCode initialize() override;
61 
63  virtual std::unique_ptr<const std::vector<Trk::CylinderLayer*> >
64  cylindricalLayers(const EventContext& ctx,
65  SG::WriteCondHandle<Trk::TrackingGeometry>& whandle) const override final;
66 
68  virtual std::unique_ptr<const std::vector<Trk::DiscLayer*> >
69  discLayers(const EventContext& ctx,
70  SG::WriteCondHandle<Trk::TrackingGeometry>& whandle) const override final;
71 
73  virtual std::unique_ptr<const std::vector<Trk::PlaneLayer*> >
74  planarLayers(const EventContext& ctx,
75  SG::WriteCondHandle<Trk::TrackingGeometry>& whandle) const override final;
76 
78  virtual const std::string& identification() const override final;
79 
80  private:
81  SG::ReadCondHandle<InDetDD::HGTD_DetectorElementCollection> retrieveHGTDdetElements(const EventContext& ctx) const;
83  const Trk::BinnedLayerMaterial discLayerMaterial(double rMin, double rMax) const;
84 
86  void registerSurfacesToLayer( Trk::BinnedArraySpan<Trk::Surface * const>& surfaces,const Trk::Layer& layer) const;
87 
88  static void evaluateBestBinning(std::vector<Trk::SurfaceOrderPosition>& surfaces,
89  std::vector<float>& rBins,
90  float& maxRadius,
91  std::vector<std::vector<float>>& phiBins) ;
92 
94  const HGTD_ID* m_hgtdHelper;
95 
96  bool m_setLayerAssociation;
97 
98  std::string m_identification;
99 
100  int m_rBins;
101  int m_phiBins;
102 
103  float m_discEnvelopeR;
104  float m_discThickness;
105 
106  bool m_runGeometryValidation;
107 
108  SG::ReadCondHandleKey<InDetDD::HGTD_DetectorElementCollection>
109  m_HGTD_ReadKey{
110  this,
111  "HGTD_ReadKey",
112  "HGTD_DetectorElementCollection",
113  "Key of output HGTD_DetectorElementCollection for HGTD"
114  };
115 };
116 
117 inline std::unique_ptr<const std::vector<Trk::CylinderLayer*> >
120 {
121  return nullptr;
122 }
123 
124 inline std::unique_ptr<const std::vector<Trk::PlaneLayer*> >
127 {
128  return nullptr;
129 }
130 
131 inline const std::string& HGTD_LayerBuilderCond::identification() const
132 { return m_identification; }
133 
134 #endif // HGTD_TRACKINGGEOMETRY_HGTDLAYERBUILDERCOND_H
HGTD_LayerBuilderCond
Definition: HGTD_LayerBuilderCond.h:49
Trk::ILayerBuilderCond::planarLayers
virtual std::unique_ptr< const std::vector< PlaneLayer * > > planarLayers(const EventContext &ctx, SG::WriteCondHandle< TrackingGeometry > &whandle) const =0
LayerBuilder interface method - returning Planar-like layers.
SG
Forward declaration.
Definition: CaloCellPacker_400_500.h:32
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
Trk::ILayerBuilderCond::cylindricalLayers
virtual std::unique_ptr< const std::vector< CylinderLayer * > > cylindricalLayers(const EventContext &ctx, SG::WriteCondHandle< TrackingGeometry > &whandle) const =0
LayerBuilder interface method - returning Barrel-like layers.
BinnedArray.h
initialize
void initialize()
Definition: run_EoverP.cxx:894
Trk::ILayerBuilderCond
Definition: ILayerBuilderCond.h:35
Surface
Definition: Trigger/TrigAccel/TrigCudaFitter/src/Surface.h:7
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:562
HGTD_LayerBuilderCond::cylindricalLayers
virtual std::unique_ptr< const std::vector< Trk::CylinderLayer * > > cylindricalLayers(const EventContext &ctx, SG::WriteCondHandle< Trk::TrackingGeometry > &whandle) const override final
LayerBuilder interface method - returning Barrel-like layers.
Definition: HGTD_LayerBuilderCond.h:118
python.RingerConstants.Layer
Layer
Definition: RingerConstants.py:42
GeoPrimitives.h
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
vector
Definition: MultiHisto.h:13
TRT::Hit::layer
@ layer
Definition: HitInfo.h:79
AthAlgTool.h
HGTD_ID
Definition: HGTD_ID.h:47
SharedObject.h
Trk::ILayerBuilderCond::identification
virtual const std::string & identification() const =0
Name identification.
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
private
#define private
Definition: DetDescrConditionsDict_dict_fixes.cxx:13
HGTD_DetectorElementCollection.h
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
HGTD_LayerBuilderCond::~HGTD_LayerBuilderCond
virtual ~HGTD_LayerBuilderCond()
Destructor.
HGTD_LayerBuilderCond::identification
virtual const std::string & identification() const override final
Name identification.
Definition: HGTD_LayerBuilderCond.h:131
InDetDD
Message Stream Member.
Definition: FakeTrackBuilder.h:8
HGTD_LayerBuilderCond::m_identification
std::string m_identification
string identification
Definition: HGTD_LayerBuilderCond.h:98
HGTD_DetectorManager
Definition: HGTD_DetectorManager.h:33
TrackingGeometry.h
HGTD_LayerBuilderCond::planarLayers
virtual std::unique_ptr< const std::vector< Trk::PlaneLayer * > > planarLayers(const EventContext &ctx, SG::WriteCondHandle< Trk::TrackingGeometry > &whandle) const override final
LayerBuilder interface method - returning Planar-like layers.
Definition: HGTD_LayerBuilderCond.h:125
Trk::ILayerBuilderCond::discLayers
virtual std::unique_ptr< const std::vector< DiscLayer * > > discLayers(const EventContext &ctx, SG::WriteCondHandle< TrackingGeometry > &whandle) const =0
LayerBuilder interface method - returning Endcap-like layers.
AthAlgTool
Definition: AthAlgTool.h:26
checker_macros.h
Define macros for attributes used to control the static checker.
Trk::BinnedArraySpan
std::span< T > BinnedArraySpan
Definition: BinnedArray.h:34
SG::WriteCondHandle
Definition: WriteCondHandle.h:26
ILayerBuilderCond.h
Trk::SurfaceOrderPosition
std::pair< SharedObject< Surface >, Amg::Vector3D > SurfaceOrderPosition
Definition: HGTD_LayerBuilderCond.h:36