ATLAS Offline Software
TrackingVolumeArrayCreator.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 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
20 // STL
21 #include <algorithm>
22 
23 namespace Trk {
24 
25  class Layer;
26  class PlaneLayer;
27 
38  virtual public ITrackingVolumeArrayCreator {
39 
40  public:
41  using TrackingVolumeOrderPosition = std::pair<VolumePtr, Amg::Vector3D> ;
42  using TrackingVolumeNavOrder = std::pair<VolumePtr, const Amg::Transform3D*>;
43 
44 
46  TrackingVolumeArrayCreator(const std::string&,const std::string&,const IInterface*);
47 
50 
53  TrackingVolumeArray* cylinderVolumesArrayInR(const std::vector< TrackingVolume* >& vols,
54  bool navigationtype=false) const override;
55 
56  std::unique_ptr<TrackingVolumeArray> cylinderVolumesArrayInR(const std::vector<VolumePtr>& vols,
57  bool navigationtype=false) const override;
60  TrackingVolumeArray* cylinderVolumesArrayInZ(const std::vector< TrackingVolume* >& vols,
61  bool navigationtype=false) const override;
62 
63  std::unique_ptr<TrackingVolumeArray> cylinderVolumesArrayInZ(const std::vector<VolumePtr>& vols,
64  bool navigationtype=false) const override;
67  TrackingVolumeArray* cylinderVolumesArrayInPhi(const std::vector< TrackingVolume* >& vols,
68  bool navigationtype=false) const override;
69 
70  std::unique_ptr<TrackingVolumeArray> cylinderVolumesArrayInPhi(const std::vector<VolumePtr>& vols,
71  bool navigationtype=false) const override;
74  TrackingVolumeArray* cylinderVolumesArrayInPhiR(const std::vector< TrackingVolume* >& vols,
75  bool navigationtype=false) const override;
76 
77  std::unique_ptr<TrackingVolumeArray> cylinderVolumesArrayInPhiR(const std::vector<VolumePtr>& vols,
78  bool navigationtype=false) const override;
81  TrackingVolumeArray* cylinderVolumesArrayInPhiZ(const std::vector< TrackingVolume* >& vols,
82  bool navigationtype=false) const override;
83 
84  std::unique_ptr<TrackingVolumeArray> cylinderVolumesArrayInPhiZ(const std::vector<VolumePtr>& vols,
85  bool navigationtype=false) const override;
86 
89  TrackingVolumeArray* cuboidVolumesArrayNav(const std::vector< TrackingVolume* >& vols,
90  Trk::BinUtility* binUtil,
91  bool navigationtype=false) const override;
92 
93  std::unique_ptr<TrackingVolumeArray> cuboidVolumesArrayNav(const std::vector<VolumePtr>& vols,
94  Trk::BinUtility* binUtil) const override;
97  TrackingVolumeArray* trapezoidVolumesArrayNav(const std::vector< TrackingVolume* >& vols,
98  Trk::BinUtility* binUtil,
99  bool navigationtype=false) const override;
100  std::unique_ptr<TrackingVolumeArray> trapezoidVolumesArrayNav(const std::vector<VolumePtr>& vols,
101  Trk::BinUtility* binUtil) const override;
102 
105  TrackingVolumeArray* doubleTrapezoidVolumesArrayNav(const std::vector< TrackingVolume* >& vols,
106  Trk::BinUtility* binUtil,
107  bool navigationtype=false) const override;
108  std::unique_ptr<TrackingVolumeArray> doubleTrapezoidVolumesArrayNav(const std::vector<VolumePtr>& vols,
109  Trk::BinUtility* binUtil) const override;
110 
111  };
112 
113 }
114 
115 #endif
116 
Trk::TrackingVolumeArrayCreator::cylinderVolumesArrayInZ
TrackingVolumeArray * cylinderVolumesArrayInZ(const std::vector< TrackingVolume * > &vols, bool navigationtype=false) const override
TrackingVolumeArrayCreator interface method - create a R-binned cylindrical volume array.
Definition: TrackingVolumeArrayCreator.cxx:136
Trk::TrackingVolumeArrayCreator::TrackingVolumeArrayCreator
TrackingVolumeArrayCreator(const std::string &, const std::string &, const IInterface *)
Constructor.
Definition: TrackingVolumeArrayCreator.cxx:48
Trk::TrackingVolumeArrayCreator
Definition: TrackingVolumeArrayCreator.h:38
ITrackingVolumeArrayCreator.h
python.RingerConstants.Layer
Layer
Definition: RingerConstants.py:42
Trk::TrackingVolumeArrayCreator::TrackingVolumeNavOrder
std::pair< VolumePtr, const Amg::Transform3D * > TrackingVolumeNavOrder
Definition: TrackingVolumeArrayCreator.h:42
Trk::TrackingVolumeArrayCreator::~TrackingVolumeArrayCreator
virtual ~TrackingVolumeArrayCreator()
Destructor.
Trk::TrackingVolumeArrayCreator::cylinderVolumesArrayInPhi
TrackingVolumeArray * cylinderVolumesArrayInPhi(const std::vector< TrackingVolume * > &vols, bool navigationtype=false) const override
TrackingVolumeArrayCreator interface method - create a R-binned cylindrical volume array.
Definition: TrackingVolumeArrayCreator.cxx:214
GeoPrimitives.h
AthAlgTool.h
Trk::TrackingVolumeArrayCreator::doubleTrapezoidVolumesArrayNav
TrackingVolumeArray * doubleTrapezoidVolumesArrayNav(const std::vector< TrackingVolume * > &vols, Trk::BinUtility *binUtil, bool navigationtype=false) const override
TrackingVolumeArrayCreator interface method - create a doubleTrapezoid volume array - linked to detac...
Definition: TrackingVolumeArrayCreator.cxx:886
Trk::TrackingVolumeArrayCreator::cylinderVolumesArrayInPhiZ
TrackingVolumeArray * cylinderVolumesArrayInPhiZ(const std::vector< TrackingVolume * > &vols, bool navigationtype=false) const override
TrackingVolumeArrayCreator interface method - create a 2dim cylindrical volume array.
Definition: TrackingVolumeArrayCreator.cxx:644
SharedObject.h
Trk::BinUtility
Definition: BinUtility.h:39
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Trk::ITrackingVolumeArrayCreator
Definition: ITrackingVolumeArrayCreator.h:44
Trk::TrackingVolumeArrayCreator::cylinderVolumesArrayInPhiR
TrackingVolumeArray * cylinderVolumesArrayInPhiR(const std::vector< TrackingVolume * > &vols, bool navigationtype=false) const override
TrackingVolumeArrayCreator interface method - create a 2dim cylindrical volume array.
Definition: TrackingVolumeArrayCreator.cxx:255
TrackingVolume.h
Trk::TrackingVolumeArrayCreator::trapezoidVolumesArrayNav
TrackingVolumeArray * trapezoidVolumesArrayNav(const std::vector< TrackingVolume * > &vols, Trk::BinUtility *binUtil, bool navigationtype=false) const override
TrackingVolumeArrayCreator interface method - create a trapezoid volume array - linked to detached tr...
Definition: TrackingVolumeArrayCreator.cxx:857
Trk::TrackingVolumeArrayCreator::cuboidVolumesArrayNav
TrackingVolumeArray * cuboidVolumesArrayNav(const std::vector< TrackingVolume * > &vols, Trk::BinUtility *binUtil, bool navigationtype=false) const override
TrackingVolumeArrayCreator interface method - create a cuboid volume array - linked to detached track...
Definition: TrackingVolumeArrayCreator.cxx:826
Trk::TrackingVolumeArrayCreator::cylinderVolumesArrayInR
TrackingVolumeArray * cylinderVolumesArrayInR(const std::vector< TrackingVolume * > &vols, bool navigationtype=false) const override
TrackingVolumeArrayCreator interface method - create a R-binned cylindrical volume array.
Definition: TrackingVolumeArrayCreator.cxx:59
Trk::BinnedArray
Definition: BinnedArray.h:38
AthAlgTool
Definition: AthAlgTool.h:26
Trk::TrackingVolumeArrayCreator::TrackingVolumeOrderPosition
std::pair< VolumePtr, Amg::Vector3D > TrackingVolumeOrderPosition
Definition: TrackingVolumeArrayCreator.h:41