ATLAS Offline Software
LayerArrayCreator.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // LayerArrayCreator.h, (c) ATLAS Detector software
8 
9 #ifndef TRKDETDESCRTOOLS_LAYERARRAYCREATOR_H
10 #define TRKDETDESCRTOOLS_LAYERARRAYCREATOR_H
11 
12 #ifndef TRKDETDESCR_TAKESMALLERBIGGER
13 #define TRKDETDESCR_TAKESMALLERBIGGER
14 #define takeSmaller(current,test) current = current < test ? current : test
15 #define takeBigger(current,test) current = current > test ? current : test
16 #define takeSmallerBigger(cSmallest, cBiggest, test) takeSmaller(cSmallest, test); takeBigger(cBiggest, test)
17 #endif
18 // Amg
20 // Trk
22 #include "TrkGeometry/PlaneLayer.h"
24 #include "TrkGeometry/DiscLayer.h"
25 // Gaudi & Athena
27 // STL
28 #include <algorithm>
29 #include <memory>
30 
31 namespace Trk {
32 
33  class Layer;
34  class PlaneLayer;
35 
50  class LayerArrayCreator : public AthAlgTool, virtual public ILayerArrayCreator {
52  using LayerOrderPosition = std::pair< std::shared_ptr<const Layer>, Amg::Vector3D>;
53 
54  public:
56  LayerArrayCreator(const std::string&,const std::string&,const IInterface*);
57 
59  virtual ~LayerArrayCreator() = default;
60 
62  std::unique_ptr<Trk::BinnedArray1D<Layer>> cylinderLayerArray(
63  const std::vector<CylinderLayer*>& layers,
64  double rmin,
65  double rmax,
66  BinningType btype = arbitrary) const;
67 
69  std::unique_ptr<Trk::BinnedArray1D<Layer>> discLayerArray(
70  const std::vector<DiscLayer*>& layers,
71  double zmin,
72  double zmax,
73  BinningType btype = arbitrary) const;
74 
76  std::unique_ptr<Trk::BinnedArray1D<Layer>> planeLayerArray(
77  const std::vector<PlaneLayer*>& layers,
78  double min,
79  double max,
80  BinningType btype = arbitrary,
81  Trk::BinningValue bv = Trk::binX) const;
82 
83  private:
86  };
87 
88 } // end of namespace
89 
90 #endif // TRKDETDESCRTOOLS_LAYERARRAYCREATOR_H
91 
Trk::ILayerArrayCreator
Definition: ILayerArrayCreator.h:42
Trk::LayerArrayCreator::planeLayerArray
std::unique_ptr< Trk::BinnedArray1D< Layer > > planeLayerArray(const std::vector< PlaneLayer * > &layers, double min, double max, BinningType btype=arbitrary, Trk::BinningValue bv=Trk::binX) const
LayerArrayCreator interface method - for Planar-like layers.
Definition: LayerArrayCreator.cxx:414
PixelAthClusterMonAlgCfg.zmin
zmin
Definition: PixelAthClusterMonAlgCfg.py:169
Trk::LayerArrayCreator::m_emptyLayerMode
int m_emptyLayerMode
0 - do nothing, 1 - replace with navigation layer, 2 - delete
Definition: LayerArrayCreator.h:85
max
constexpr double max()
Definition: ap_fixedTest.cxx:33
min
constexpr double min()
Definition: ap_fixedTest.cxx:26
module_driven_slicing.layers
layers
Definition: module_driven_slicing.py:113
DiscLayer.h
Trk::LayerArrayCreator::~LayerArrayCreator
virtual ~LayerArrayCreator()=default
Destructor.
Trk::BinningType
BinningType
Definition: BinningType.h:31
python.RingerConstants.Layer
Layer
Definition: RingerConstants.py:42
ILayerArrayCreator.h
Trk::arbitrary
@ arbitrary
Definition: BinningType.h:34
GeoPrimitives.h
Trk::BinningValue
BinningValue
how to take the global / local position
Definition: BinningType.h:46
Trk::LayerArrayCreator::LayerOrderPosition
std::pair< std::shared_ptr< const Layer >, Amg::Vector3D > LayerOrderPosition
Definition: LayerArrayCreator.h:52
AthAlgTool.h
Trk::LayerArrayCreator::LayerArrayCreator
LayerArrayCreator(const std::string &, const std::string &, const IInterface *)
Constructor.
Definition: LayerArrayCreator.cxx:28
PixelAthClusterMonAlgCfg.zmax
zmax
Definition: PixelAthClusterMonAlgCfg.py:169
CylinderLayer.h
Trk::LayerArrayCreator::discLayerArray
std::unique_ptr< Trk::BinnedArray1D< Layer > > discLayerArray(const std::vector< DiscLayer * > &layers, double zmin, double zmax, BinningType btype=arbitrary) const
LayerArrayCreator interface method - for Endcap-like layers.
Definition: LayerArrayCreator.cxx:220
Trk::binX
@ binX
Definition: BinningType.h:47
Trk::LayerArrayCreator::checkAndReplaceEmptyLayer
Trk::Layer * checkAndReplaceEmptyLayer(Trk::Layer *lay) const
Definition: LayerArrayCreator.cxx:673
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
Trk::LayerArrayCreator::cylinderLayerArray
std::unique_ptr< Trk::BinnedArray1D< Layer > > cylinderLayerArray(const std::vector< CylinderLayer * > &layers, double rmin, double rmax, BinningType btype=arbitrary) const
LayerArrayCreator interface method - for Barrel-like layers.
Definition: LayerArrayCreator.cxx:38
AthAlgTool
Definition: AthAlgTool.h:26
Trk::LayerArrayCreator
Definition: LayerArrayCreator.h:50
PlaneLayer.h
Trk::Layer
Definition: Layer.h:72