ATLAS Offline Software
ILayerArrayCreator.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // ILayerArrayCreator.h, (c) ATLAS Detector software
8 
9 #ifndef TRKDETDESCRINTERFACES_ILAYERARRAYCREATOR_H
10 #define TRKDETDESCRINTERFACES_ILAYERARRAYCREATOR_H
11 
12 // Gaudi
13 #include "GaudiKernel/IAlgTool.h"
14 // TrkDetDescrUtils - templated class and enum
17 // STL
18 #include <vector>
19 #include <memory>
20 
21 namespace Trk {
22 
24  class Layer;
25  class CylinderLayer;
26  class DiscLayer;
27  class PlaneLayer;
28 
42  class ILayerArrayCreator : virtual public IAlgTool {
43 
44  public:
45 
48 
50  virtual ~ILayerArrayCreator() = default;
51 
53  virtual std::unique_ptr<Trk::BinnedArray1D<Layer>> cylinderLayerArray(
54  const std::vector<CylinderLayer*>& layers,
55  double rmin,
56  double rmax,
57  BinningType btype = arbitrary) const = 0;
58 
60  virtual std::unique_ptr<Trk::BinnedArray1D<Layer>> discLayerArray(
61  const std::vector<DiscLayer*>& layers,
62  double zmin,
63  double zmax,
64  BinningType btype = arbitrary) const = 0;
65 
67  virtual std::unique_ptr<Trk::BinnedArray1D<Layer>> planeLayerArray(
68  const std::vector<PlaneLayer*>& layers,
69  double min, double max,
70  BinningType btype = arbitrary,
71  Trk::BinningValue bv = Trk::binX) const = 0;
72 
75  virtual void validationAction() const {}
76  };
77 
78 
79 } // end of namespace
80 
81 
82 #endif // TRKDETDESCRINTERFACES_ILAYERARRAYCREATOR_H
83 
84 
Trk::ILayerArrayCreator
Definition: ILayerArrayCreator.h:42
PixelAthClusterMonAlgCfg.zmin
zmin
Definition: PixelAthClusterMonAlgCfg.py:169
max
constexpr double max()
Definition: ap_fixedTest.cxx:33
Trk::ILayerArrayCreator::cylinderLayerArray
virtual std::unique_ptr< Trk::BinnedArray1D< Layer > > cylinderLayerArray(const std::vector< CylinderLayer * > &layers, double rmin, double rmax, BinningType btype=arbitrary) const =0
LayerArrayCreator interface method - for Barrel-like layers.
min
constexpr double min()
Definition: ap_fixedTest.cxx:26
module_driven_slicing.layers
layers
Definition: module_driven_slicing.py:113
BinningType.h
Trk::BinningType
BinningType
Definition: BinningType.h:31
python.RingerConstants.Layer
Layer
Definition: RingerConstants.py:42
Trk::ILayerArrayCreator::DeclareInterfaceID
DeclareInterfaceID(ILayerArrayCreator, 1, 0)
Creates the InterfaceID and interfaceID() method.
Trk::ILayerArrayCreator::~ILayerArrayCreator
virtual ~ILayerArrayCreator()=default
Virtual destructor.
Trk::arbitrary
@ arbitrary
Definition: BinningType.h:34
BinnedArray1D.h
Trk::BinningValue
BinningValue
how to take the global / local position
Definition: BinningType.h:46
PixelAthClusterMonAlgCfg.zmax
zmax
Definition: PixelAthClusterMonAlgCfg.py:169
Trk::binX
@ binX
Definition: BinningType.h:47
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Trk::ILayerArrayCreator::planeLayerArray
virtual 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 =0
LayerArrayCreator interface method - for Planar-like layers.
Trk::ILayerArrayCreator::validationAction
virtual void validationAction() const
Validation Action: Can be implemented optionally, outside access to internal validation steps.
Definition: ILayerArrayCreator.h:75
Trk::ILayerArrayCreator::discLayerArray
virtual std::unique_ptr< Trk::BinnedArray1D< Layer > > discLayerArray(const std::vector< DiscLayer * > &layers, double zmin, double zmax, BinningType btype=arbitrary) const =0
LayerArrayCreator interface method - for Endcap-like layers.