ATLAS Offline Software
ITrackingVolumeArrayCreator.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 // ITrackingVolumeArrayCreator.h, (c) ATLAS Detector software
8 
9 #ifndef TRKDETDESCRINTERFACES_ITRACKINGVOLUMEARRAYCREATOR_H
10 #define TRKDETDESCRINTERFACES_ITRACKINGVOLUMEARRAYCREATOR_H
11 
12 
13 // Gaudi
14 #include "GaudiKernel/IAlgTool.h"
15 // TrkDetDescrUtils - templated classes & enums
19 // STL
20 #include <vector>
21 #include <memory>
22 namespace Trk {
23 
25  class TrackingVolume;
26 
30 
44  class ITrackingVolumeArrayCreator : virtual public IAlgTool {
45 
46  public:
49  using VolumePtr = std::shared_ptr<TrackingVolume>;
51  virtual ~ITrackingVolumeArrayCreator() = default;
52 
55  virtual TrackingVolumeArray* cylinderVolumesArrayInR(const std::vector< TrackingVolume* >& vols,
56  bool navigationtype=false) const = 0;
57 
58  virtual std::unique_ptr<TrackingVolumeArray> cylinderVolumesArrayInR(const std::vector<VolumePtr>& vols,
59  bool navigationtype = false) const = 0;
62  virtual TrackingVolumeArray* cylinderVolumesArrayInZ(const std::vector< TrackingVolume* >& vols,
63  bool navigationtype=false) const = 0;
64 
65  virtual std::unique_ptr<TrackingVolumeArray> cylinderVolumesArrayInZ(const std::vector<VolumePtr>& vols,
66  bool navigationtype=false) const = 0;
67 
70  virtual TrackingVolumeArray* cylinderVolumesArrayInPhi(const std::vector< TrackingVolume* >& vols,
71  bool navigationtype=false) const = 0;
72 
73  virtual std::unique_ptr<TrackingVolumeArray> cylinderVolumesArrayInPhi(const std::vector<VolumePtr>& vols,
74  bool navigationtype=false) const = 0;
75 
76 
79  virtual TrackingVolumeArray* cylinderVolumesArrayInPhiR(const std::vector< TrackingVolume* >& vols,
80  bool navigationtype=false) const = 0;
81 
82  virtual std::unique_ptr<TrackingVolumeArray> cylinderVolumesArrayInPhiR(const std::vector<VolumePtr>& vols,
83  bool navigationtype=false) const = 0;
84 
87  virtual TrackingVolumeArray* cylinderVolumesArrayInPhiZ(const std::vector< TrackingVolume* >& vols,
88  bool navigationtype=false) const = 0;
89 
90  virtual std::unique_ptr<TrackingVolumeArray> cylinderVolumesArrayInPhiZ(const std::vector<VolumePtr>& vols,
91  bool navigationtype=false) const = 0;
92 
95  virtual TrackingVolumeArray* cuboidVolumesArrayNav(const std::vector< TrackingVolume* >& vols,
96  Trk::BinUtility* binUtil,
97  bool navigationtype=false) const = 0;
98 
99  virtual std::unique_ptr<TrackingVolumeArray> cuboidVolumesArrayNav(const std::vector<VolumePtr>& vols,
100  Trk::BinUtility* binUtil) const = 0;
101 
104  virtual TrackingVolumeArray* trapezoidVolumesArrayNav(const std::vector< TrackingVolume* >& vols,
105  Trk::BinUtility* binUtil,
106  bool navigationtype=false) const = 0;
107 
108  virtual std::unique_ptr<TrackingVolumeArray> trapezoidVolumesArrayNav(const std::vector<VolumePtr>& vols,
109  Trk::BinUtility* binUtil) const = 0;
110 
113  virtual TrackingVolumeArray* doubleTrapezoidVolumesArrayNav(const std::vector< TrackingVolume* >& vols,
114  Trk::BinUtility* binUtil,
115  bool navigationtype=false) const = 0;
116 
117  virtual std::unique_ptr<TrackingVolumeArray> doubleTrapezoidVolumesArrayNav(const std::vector<VolumePtr>& vols,
118  Trk::BinUtility* binUtil) const = 0;
119 
120  };
121 
122 } // end of namespace
123 
124 #endif
125 
Trk::ITrackingVolumeArrayCreator::cylinderVolumesArrayInPhiR
virtual std::unique_ptr< TrackingVolumeArray > cylinderVolumesArrayInPhiR(const std::vector< VolumePtr > &vols, bool navigationtype=false) const =0
Trk::ITrackingVolumeArrayCreator::cuboidVolumesArrayNav
virtual std::unique_ptr< TrackingVolumeArray > cuboidVolumesArrayNav(const std::vector< VolumePtr > &vols, Trk::BinUtility *binUtil) const =0
BinnedArray.h
Trk::ITrackingVolumeArrayCreator::cuboidVolumesArrayNav
virtual TrackingVolumeArray * cuboidVolumesArrayNav(const std::vector< TrackingVolume * > &vols, Trk::BinUtility *binUtil, bool navigationtype=false) const =0
TrackingVolumeArrayCreator interface method - create a cuboid volume array.
BinningType.h
Trk::ITrackingVolumeArrayCreator::cylinderVolumesArrayInZ
virtual TrackingVolumeArray * cylinderVolumesArrayInZ(const std::vector< TrackingVolume * > &vols, bool navigationtype=false) const =0
TrackingVolumeArrayCreator interface method - create a R-binned cylindrical volume array.
Trk::ITrackingVolumeArrayCreator::cylinderVolumesArrayInPhi
virtual std::unique_ptr< TrackingVolumeArray > cylinderVolumesArrayInPhi(const std::vector< VolumePtr > &vols, bool navigationtype=false) const =0
Trk::ITrackingVolumeArrayCreator::VolumePtr
std::shared_ptr< TrackingVolume > VolumePtr
Definition: ITrackingVolumeArrayCreator.h:49
Trk::ITrackingVolumeArrayCreator::cylinderVolumesArrayInPhiR
virtual TrackingVolumeArray * cylinderVolumesArrayInPhiR(const std::vector< TrackingVolume * > &vols, bool navigationtype=false) const =0
TrackingVolumeArrayCreator interface method - create a 2dim cylindrical volume array.
Trk::ITrackingVolumeArrayCreator::cylinderVolumesArrayInPhiZ
virtual std::unique_ptr< TrackingVolumeArray > cylinderVolumesArrayInPhiZ(const std::vector< VolumePtr > &vols, bool navigationtype=false) const =0
SharedObject.h
Trk::BinUtility
Definition: BinUtility.h:39
Trk::ITrackingVolumeArrayCreator::~ITrackingVolumeArrayCreator
virtual ~ITrackingVolumeArrayCreator()=default
Virtual destructor.
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Trk::ITrackingVolumeArrayCreator::cylinderVolumesArrayInR
virtual std::unique_ptr< TrackingVolumeArray > cylinderVolumesArrayInR(const std::vector< VolumePtr > &vols, bool navigationtype=false) const =0
Trk::ITrackingVolumeArrayCreator::trapezoidVolumesArrayNav
virtual std::unique_ptr< TrackingVolumeArray > trapezoidVolumesArrayNav(const std::vector< VolumePtr > &vols, Trk::BinUtility *binUtil) const =0
Trk::ITrackingVolumeArrayCreator
Definition: ITrackingVolumeArrayCreator.h:44
Trk::ITrackingVolumeArrayCreator::trapezoidVolumesArrayNav
virtual TrackingVolumeArray * trapezoidVolumesArrayNav(const std::vector< TrackingVolume * > &vols, Trk::BinUtility *binUtil, bool navigationtype=false) const =0
TrackingVolumeArrayCreator interface method - create a trapezoid volume array.
Trk::ITrackingVolumeArrayCreator::cylinderVolumesArrayInPhiZ
virtual TrackingVolumeArray * cylinderVolumesArrayInPhiZ(const std::vector< TrackingVolume * > &vols, bool navigationtype=false) const =0
TrackingVolumeArrayCreator interface method - create a 2dim cylindrical volume array.
Trk::ITrackingVolumeArrayCreator::cylinderVolumesArrayInR
virtual TrackingVolumeArray * cylinderVolumesArrayInR(const std::vector< TrackingVolume * > &vols, bool navigationtype=false) const =0
TrackingVolumeArrayCreator interface method - create a R-binned cylindrical volume array.
Trk::ITrackingVolumeArrayCreator::DeclareInterfaceID
DeclareInterfaceID(ITrackingVolumeArrayCreator, 1, 0)
Creates the InterfaceID and interfaceID() method.
Trk::BinnedArray
Definition: BinnedArray.h:38
Trk::ITrackingVolumeArrayCreator::cylinderVolumesArrayInZ
virtual std::unique_ptr< TrackingVolumeArray > cylinderVolumesArrayInZ(const std::vector< VolumePtr > &vols, bool navigationtype=false) const =0
Trk::ITrackingVolumeArrayCreator::cylinderVolumesArrayInPhi
virtual TrackingVolumeArray * cylinderVolumesArrayInPhi(const std::vector< TrackingVolume * > &vols, bool navigationtype=false) const =0
TrackingVolumeArrayCreator interface method - create a Phi-binned cylindrical volume array.
Trk::ITrackingVolumeArrayCreator::doubleTrapezoidVolumesArrayNav
virtual TrackingVolumeArray * doubleTrapezoidVolumesArrayNav(const std::vector< TrackingVolume * > &vols, Trk::BinUtility *binUtil, bool navigationtype=false) const =0
TrackingVolumeArrayCreator interface method - create a doubleTrapezoid volume array.
Trk::ITrackingVolumeArrayCreator::doubleTrapezoidVolumesArrayNav
virtual std::unique_ptr< TrackingVolumeArray > doubleTrapezoidVolumesArrayNav(const std::vector< VolumePtr > &vols, Trk::BinUtility *binUtil) const =0