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 
20 namespace Trk {
21 
23  class Layer;
24  class CylinderLayer;
25  class DiscLayer;
26  class PlaneLayer;
27 
31 
42  class ILayerArrayCreator : virtual public IAlgTool {
43 
44  public:
47 
49  virtual ~ILayerArrayCreator(){}
50 
52  virtual LayerArray* cylinderLayerArray(const std::vector< CylinderLayer* >& layers,
53  double rmin,
54  double rmax,
55  BinningType btype = arbitrary) const = 0;
56 
58  virtual LayerArray* discLayerArray(const std::vector< DiscLayer* >& layers,
59  double zmin,
60  double zmax,
61  BinningType btype = arbitrary) const = 0;
62 
64  virtual LayerArray* planeLayerArray(const std::vector< PlaneLayer* >& layers,
65  double min,
66  double max,
67  BinningType btype = arbitrary,
68  Trk::BinningValue bv = Trk::binX) const = 0;
69 
72  virtual void validationAction() const {}
73  };
74 
75 
76 } // end of namespace
77 
78 
79 #endif // TRKDETDESCRINTERFACES_ILAYERARRAYCREATOR_H
80 
81 
Trk::ILayerArrayCreator
Definition: ILayerArrayCreator.h:42
max
#define max(a, b)
Definition: cfImp.cxx:41
PixelAthClusterMonAlgCfg.zmin
zmin
Definition: PixelAthClusterMonAlgCfg.py:169
BinnedArray.h
module_driven_slicing.layers
layers
Definition: module_driven_slicing.py:114
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()
Virtual destructor.
Definition: ILayerArrayCreator.h:49
Trk::arbitrary
@ arbitrary
Definition: BinningType.h:34
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
min
#define min(a, b)
Definition: cfImp.cxx:40
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Trk::ILayerArrayCreator::planeLayerArray
virtual LayerArray * 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::cylinderLayerArray
virtual LayerArray * cylinderLayerArray(const std::vector< CylinderLayer * > &layers, double rmin, double rmax, BinningType btype=arbitrary) const =0
LayerArrayCreator interface method - for Barrel-like layers.
Trk::LayerArray
BinnedArray< Layer > LayerArray
Definition: ILayerArrayCreator.h:30
Trk::ILayerArrayCreator::validationAction
virtual void validationAction() const
Validation Action: Can be implemented optionally, outside access to internal validation steps.
Definition: ILayerArrayCreator.h:72
Trk::BinnedArray
Definition: BinnedArray.h:38
Trk::ILayerArrayCreator::discLayerArray
virtual LayerArray * discLayerArray(const std::vector< DiscLayer * > &layers, double zmin, double zmax, BinningType btype=arbitrary) const =0
LayerArrayCreator interface method - for Endcap-like layers.