ATLAS Offline Software
TrackingVolumeArrayCreator.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 // TrackingVolumeArrayCreator.h, (c) ATLAS Detector software
8 
9 #ifndef TRKDETDESCRTOOLS_TRACKINGVOLUMEARRAYCREATOR_H
10 #define TRKDETDESCRTOOLS_TRACKINGVOLUMEARRAYCREATOR_H
11 
12 // Gaudi & Athena
14 // Amg
16 // Trk
19 // STL
20 #include <algorithm>
21 #include <memory>
22 
23 namespace Trk {
24 
25 class Layer;
26 class PlaneLayer;
27 
38  : public AthAlgTool,
39  virtual public ITrackingVolumeArrayCreator {
40 
41  public:
42  using TrackingVolumeOrderPosition = std::pair<VolumePtr, Amg::Vector3D>;
43  using TrackingVolumeNavOrder = std::pair<VolumePtr, const Amg::Transform3D*>;
44 
46  TrackingVolumeArrayCreator(const std::string&, const std::string&,
47  const IInterface*);
48 
51 
53  std::unique_ptr<TrackingVolumeArray> cylinderVolumesArrayInR(
54  const std::vector<TrackingVolume*>& vols,
55  bool navigationtype = false) const override;
56  std::unique_ptr<TrackingVolumeArray> cylinderVolumesArrayInZ(
57  const std::vector<TrackingVolume*>& vols,
58  bool navigationtype = false) const override;
59  std::unique_ptr<TrackingVolumeArray> cylinderVolumesArrayInPhiR(
60  const std::vector<TrackingVolume*>& vols,
61  bool navigationtype = false) const override;
62  std::unique_ptr<TrackingVolumeArray> cylinderVolumesArrayInPhiZ(
63  const std::vector<TrackingVolume*>& vols,
64  bool navigationtype = false) const override;
65 
68  std::unique_ptr<TrackingVolumeArray> cylinderVolumesArrayInR(
69  const std::vector<VolumePtr>& vols,
70  bool navigationtype = false) const override;
73  std::unique_ptr<TrackingVolumeArray> cylinderVolumesArrayInZ(
74  const std::vector<VolumePtr>& vols,
75  bool navigationtype = false) const override;
78  std::unique_ptr<TrackingVolumeArray> cylinderVolumesArrayInPhi(
79  const std::vector<VolumePtr>& vols,
80  bool navigationtype = false) const override;
83  std::unique_ptr<TrackingVolumeArray> cylinderVolumesArrayInPhiR(
84  const std::vector<VolumePtr>& vols,
85  bool navigationtype = false) const override;
88  std::unique_ptr<TrackingVolumeArray> cylinderVolumesArrayInPhiZ(
89  const std::vector<VolumePtr>& vols,
90  bool navigationtype = false) const override;
91 
94  std::unique_ptr<TrackingVolumeArray> cuboidVolumesArrayNav(
95  const std::vector<VolumePtr>& vols,
96  const Trk::BinUtility& binUtil) const override;
99  std::unique_ptr<TrackingVolumeArray> trapezoidVolumesArrayNav(
100  const std::vector<VolumePtr>& vols,
101  const Trk::BinUtility& binUtil) const override;
102 
106  std::unique_ptr<TrackingVolumeArray> doubleTrapezoidVolumesArrayNav(
107  const std::vector<VolumePtr>& vols,
108  const Trk::BinUtility& binUtil) const override;
109 };
110 
111 } // namespace Trk
112 
113 #endif
114 
Trk::TrackingVolumeArrayCreator::trapezoidVolumesArrayNav
std::unique_ptr< TrackingVolumeArray > trapezoidVolumesArrayNav(const std::vector< VolumePtr > &vols, const Trk::BinUtility &binUtil) const override
TrackingVolumeArrayCreator interface method - create a trapezoid volume array - linked to detached tr...
Definition: TrackingVolumeArrayCreator.cxx:850
Trk::TrackingVolumeArrayCreator::cuboidVolumesArrayNav
std::unique_ptr< TrackingVolumeArray > cuboidVolumesArrayNav(const std::vector< VolumePtr > &vols, const Trk::BinUtility &binUtil) const override
TrackingVolumeArrayCreator interface method - create a cuboid volume array - linked to detached track...
Definition: TrackingVolumeArrayCreator.cxx:826
Trk::TrackingVolumeArrayCreator::doubleTrapezoidVolumesArrayNav
std::unique_ptr< TrackingVolumeArray > doubleTrapezoidVolumesArrayNav(const std::vector< VolumePtr > &vols, const Trk::BinUtility &binUtil) const override
TrackingVolumeArrayCreator interface method - create a doubleTrapezoid volume array - linked to detac...
Definition: TrackingVolumeArrayCreator.cxx:874
Trk::TrackingVolumeArrayCreator::TrackingVolumeArrayCreator
TrackingVolumeArrayCreator(const std::string &, const std::string &, const IInterface *)
Constructor.
Definition: TrackingVolumeArrayCreator.cxx:51
Trk::TrackingVolumeArrayCreator
Definition: TrackingVolumeArrayCreator.h:39
ITrackingVolumeArrayCreator.h
python.RingerConstants.Layer
Layer
Definition: RingerConstants.py:42
Trk::TrackingVolumeArrayCreator::TrackingVolumeNavOrder
std::pair< VolumePtr, const Amg::Transform3D * > TrackingVolumeNavOrder
Definition: TrackingVolumeArrayCreator.h:43
Trk::TrackingVolumeArrayCreator::~TrackingVolumeArrayCreator
virtual ~TrackingVolumeArrayCreator()
Destructor.
GeoPrimitives.h
AthAlgTool.h
columnar::final
CM final
Definition: ColumnAccessor.h:106
Trk::BinUtility
Definition: BinUtility.h:39
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Trk::TrackingVolumeArrayCreator::cylinderVolumesArrayInPhi
std::unique_ptr< TrackingVolumeArray > cylinderVolumesArrayInPhi(const std::vector< VolumePtr > &vols, bool navigationtype=false) const override
TrackingVolumeArrayCreator interface method - create a R-binned cylindrical volume array.
Definition: TrackingVolumeArrayCreator.cxx:232
Trk::ITrackingVolumeArrayCreator
Definition: ITrackingVolumeArrayCreator.h:42
Trk::TrackingVolumeArrayCreator::cylinderVolumesArrayInR
std::unique_ptr< TrackingVolumeArray > cylinderVolumesArrayInR(const std::vector< TrackingVolume * > &vols, bool navigationtype=false) const override
Extra interface methods for compatibility.
Definition: TrackingVolumeArrayCreator.cxx:62
TrackingVolume.h
Trk::TrackingVolumeArrayCreator::cylinderVolumesArrayInPhiZ
std::unique_ptr< TrackingVolumeArray > cylinderVolumesArrayInPhiZ(const std::vector< TrackingVolume * > &vols, bool navigationtype=false) const override
Definition: TrackingVolumeArrayCreator.cxx:76
Trk::TrackingVolumeArrayCreator::cylinderVolumesArrayInZ
std::unique_ptr< TrackingVolumeArray > cylinderVolumesArrayInZ(const std::vector< TrackingVolume * > &vols, bool navigationtype=false) const override
Definition: TrackingVolumeArrayCreator.cxx:67
AthAlgTool
Definition: AthAlgTool.h:26
Trk::TrackingVolumeArrayCreator::TrackingVolumeOrderPosition
std::pair< VolumePtr, Amg::Vector3D > TrackingVolumeOrderPosition
Definition: TrackingVolumeArrayCreator.h:42
Trk::TrackingVolumeArrayCreator::cylinderVolumesArrayInPhiR
std::unique_ptr< TrackingVolumeArray > cylinderVolumesArrayInPhiR(const std::vector< TrackingVolume * > &vols, bool navigationtype=false) const override
Definition: TrackingVolumeArrayCreator.cxx:72