ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Tracking
TrkDetDescr
TrkDetDescrTools
TrkDetDescrTools
LayerArrayCreator.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2026 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
19
#include "
GeoPrimitives/GeoPrimitives.h
"
20
// Trk
21
#include "
TrkDetDescrInterfaces/ILayerArrayCreator.h
"
22
#include "
TrkGeometry/PlaneLayer.h
"
23
#include "
TrkGeometry/CylinderLayer.h
"
24
#include "
TrkGeometry/DiscLayer.h
"
25
// Gaudi & Athena
26
#include "
AthenaBaseComps/AthAlgTool.h
"
27
// STL
28
#include <algorithm>
29
#include <memory>
30
31
namespace
Trk
{
32
33
class
Layer;
34
class
PlaneLayer;
35
49
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
:
84
Trk::Layer
*
checkAndReplaceEmptyLayer
(
Trk::Layer
* lay)
const
;
85
Gaudi::Property<int>
m_emptyLayerMode
{
this
,
"EmptyLayerMode"
, 0,
86
"0 - do nothing, 1 - replace with navigation layer, 2 - delete"
};
87
};
88
89
}
// end of namespace
90
91
#endif
// TRKDETDESCRTOOLS_LAYERARRAYCREATOR_H
92
AthAlgTool.h
CylinderLayer.h
DiscLayer.h
GeoPrimitives.h
ILayerArrayCreator.h
PlaneLayer.h
min
#define min(a, b)
Definition
cfImp.cxx:40
max
#define max(a, b)
Definition
cfImp.cxx:41
AthAlgTool::AthAlgTool
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
Definition
AthAlgTool.cxx:16
Trk::ILayerArrayCreator
Interface class ILayerArrayCreators It inherits from IAlgTool.
Definition
ILayerArrayCreator.h:42
Trk::LayerArrayCreator::LayerOrderPosition
std::pair< std::shared_ptr< const Layer >, Amg::Vector3D > LayerOrderPosition
Definition
LayerArrayCreator.h:52
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:34
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:216
Trk::LayerArrayCreator::LayerArrayCreator
LayerArrayCreator(const std::string &, const std::string &, const IInterface *)
Constructor.
Definition
LayerArrayCreator.cxx:28
Trk::LayerArrayCreator::~LayerArrayCreator
virtual ~LayerArrayCreator()=default
Destructor.
Trk::LayerArrayCreator::checkAndReplaceEmptyLayer
Trk::Layer * checkAndReplaceEmptyLayer(Trk::Layer *lay) const
Definition
LayerArrayCreator.cxx:669
Trk::LayerArrayCreator::m_emptyLayerMode
Gaudi::Property< int > m_emptyLayerMode
Definition
LayerArrayCreator.h:85
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:410
Trk::Layer
Base Class for a Detector Layer in the Tracking realm.
Definition
Layer.h:72
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition
GeoPrimitives.h:47
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition
FakeTrackBuilder.h:9
Trk::BinningType
BinningType
, BinningOption & BinningAccess
Definition
BinningType.h:31
Trk::arbitrary
@ arbitrary
Definition
BinningType.h:34
Trk::BinningValue
BinningValue
how to take the global / local position
Definition
BinningType.h:46
Trk::binX
@ binX
Definition
BinningType.h:47
Generated on
for ATLAS Offline Software by
1.17.0