ATLAS Offline Software
Loading...
Searching...
No Matches
TrackingVolumeArrayCreator.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// 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
23namespace Trk {
24
25class Layer;
26class PlaneLayer;
27
36
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
50 std::unique_ptr<TrackingVolumeArray> cylinderVolumesArrayInR(
51 const std::vector<TrackingVolume*>& vols,
52 bool navigationtype = false) const override;
53 std::unique_ptr<TrackingVolumeArray> cylinderVolumesArrayInZ(
54 const std::vector<TrackingVolume*>& vols,
55 bool navigationtype = false) const override;
56 std::unique_ptr<TrackingVolumeArray> cylinderVolumesArrayInPhiR(
57 const std::vector<TrackingVolume*>& vols,
58 bool navigationtype = false) const override;
59 std::unique_ptr<TrackingVolumeArray> cylinderVolumesArrayInPhiZ(
60 const std::vector<TrackingVolume*>& vols,
61 bool navigationtype = false) const override;
62
65 std::unique_ptr<TrackingVolumeArray> cylinderVolumesArrayInR(
66 const std::vector<VolumePtr>& vols,
67 bool navigationtype = false) const override;
70 std::unique_ptr<TrackingVolumeArray> cylinderVolumesArrayInZ(
71 const std::vector<VolumePtr>& vols,
72 bool navigationtype = false) const override;
75 std::unique_ptr<TrackingVolumeArray> cylinderVolumesArrayInPhi(
76 const std::vector<VolumePtr>& vols,
77 bool navigationtype = false) const override;
80 std::unique_ptr<TrackingVolumeArray> cylinderVolumesArrayInPhiR(
81 const std::vector<VolumePtr>& vols,
82 bool navigationtype = false) const override;
85 std::unique_ptr<TrackingVolumeArray> cylinderVolumesArrayInPhiZ(
86 const std::vector<VolumePtr>& vols,
87 bool navigationtype = false) const override;
88
91 std::unique_ptr<TrackingVolumeArray> cuboidVolumesArrayNav(
92 const std::vector<VolumePtr>& vols,
93 const Trk::BinUtility& binUtil) const override;
96 std::unique_ptr<TrackingVolumeArray> trapezoidVolumesArrayNav(
97 const std::vector<VolumePtr>& vols,
98 const Trk::BinUtility& binUtil) const override;
99
103 std::unique_ptr<TrackingVolumeArray> doubleTrapezoidVolumesArrayNav(
104 const std::vector<VolumePtr>& vols,
105 const Trk::BinUtility& binUtil) const override;
106};
107
108} // namespace Trk
109
110#endif
111
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
A generic symmetric BinUtility, for fully symmetric binning in terms of binning grid and binning type...
Definition BinUtility.h:39
Interface class ITrackingVolumeArrayCreators It inherits from IAlgTool.
Base Class for a Detector Layer in the Tracking realm.
Definition Layer.h:72
Class to describe a planar detector layer for tracking, it inhertis from both, Layer base class and P...
Definition PlaneLayer.h:40
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...
std::pair< VolumePtr, const Amg::Transform3D * > TrackingVolumeNavOrder
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...
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.
std::unique_ptr< TrackingVolumeArray > cylinderVolumesArrayInR(const std::vector< TrackingVolume * > &vols, bool navigationtype=false) const override
Extra interface methods for compatibility.
TrackingVolumeArrayCreator(const std::string &, const std::string &, const IInterface *)
Constructor.
std::unique_ptr< TrackingVolumeArray > cylinderVolumesArrayInZ(const std::vector< TrackingVolume * > &vols, bool navigationtype=false) const override
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...
std::unique_ptr< TrackingVolumeArray > cylinderVolumesArrayInPhiZ(const std::vector< TrackingVolume * > &vols, bool navigationtype=false) const override
std::pair< VolumePtr, Amg::Vector3D > TrackingVolumeOrderPosition
std::unique_ptr< TrackingVolumeArray > cylinderVolumesArrayInPhiR(const std::vector< TrackingVolume * > &vols, bool navigationtype=false) const override
Ensure that the ATLAS eigen extensions are properly loaded.