ATLAS Offline Software
LayerArrayCreator.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 // 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
23 #include "TrkGeometry/PlaneLayer.h"
25 #include "TrkGeometry/DiscLayer.h"
26 // Gaudi & Athena
28 // STL
29 #include <algorithm>
30 
31 namespace Trk {
32 
33  class Layer;
34  class PlaneLayer;
35 
37  typedef std::pair< SharedObject<const Layer>, Amg::Vector3D> LayerOrderPosition;
38 
39 
51  class LayerArrayCreator : public AthAlgTool, virtual public ILayerArrayCreator {
52 
53  public:
55  LayerArrayCreator(const std::string&,const std::string&,const IInterface*);
56 
58  virtual ~LayerArrayCreator();
59 
61  LayerArray* cylinderLayerArray(const std::vector<CylinderLayer* >& layers,
62  double rmin,
63  double rmax,
64  BinningType btype = arbitrary) const;
65 
67  LayerArray* discLayerArray(const std::vector< DiscLayer* >& layers,
68  double zmin,
69  double zmax,
70  BinningType btype = arbitrary) const;
71 
73  LayerArray* planeLayerArray(const std::vector< PlaneLayer* >& layers,
74  double min,
75  double max,
76  BinningType btype = arbitrary,
77  Trk::BinningValue bv = Trk::binX) const;
78  private :
81  };
82 
83 } // end of namespace
84 
85 #endif // TRKDETDESCRTOOLS_LAYERARRAYCREATOR_H
86 
Trk::ILayerArrayCreator
Definition: ILayerArrayCreator.h:42
max
#define max(a, b)
Definition: cfImp.cxx:41
Trk::LayerOrderPosition
std::pair< SharedObject< const Layer >, Amg::Vector3D > LayerOrderPosition
Definition: LayerArrayCreator.h:37
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:80
Trk::LayerArrayCreator::planeLayerArray
LayerArray * 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:420
module_driven_slicing.layers
layers
Definition: module_driven_slicing.py:114
DiscLayer.h
Trk::BinningType
BinningType
Definition: BinningType.h:31
Trk::LayerArrayCreator::discLayerArray
LayerArray * discLayerArray(const std::vector< DiscLayer * > &layers, double zmin, double zmax, BinningType btype=arbitrary) const
LayerArrayCreator interface method - for Endcap-like layers.
Definition: LayerArrayCreator.cxx:222
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
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::binX
@ binX
Definition: BinningType.h:47
SharedObject.h
min
#define min(a, b)
Definition: cfImp.cxx:40
Trk::LayerArrayCreator::checkAndReplaceEmptyLayer
Trk::Layer * checkAndReplaceEmptyLayer(Trk::Layer *lay) const
Definition: LayerArrayCreator.cxx:679
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
private
#define private
Definition: DetDescrConditionsDict_dict_fixes.cxx:13
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
Trk::LayerArrayCreator::~LayerArrayCreator
virtual ~LayerArrayCreator()
Destructor.
Trk::LayerArrayCreator::cylinderLayerArray
LayerArray * cylinderLayerArray(const std::vector< CylinderLayer * > &layers, double rmin, double rmax, BinningType btype=arbitrary) const
LayerArrayCreator interface method - for Barrel-like layers.
Definition: LayerArrayCreator.cxx:42
Trk::BinnedArray
Definition: BinnedArray.h:38
AthAlgTool
Definition: AthAlgTool.h:26
Trk::LayerArrayCreator
Definition: LayerArrayCreator.h:51
PlaneLayer.h
Trk::Layer
Definition: Layer.h:73