ATLAS Offline Software
Loading...
Searching...
No Matches
ITrackingVolumeArrayCreator.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// ITrackingVolumeArrayCreator.h, (c) ATLAS Detector software
8
9#ifndef TRKDETDESCRINTERFACES_ITRACKINGVOLUMEARRAYCREATOR_H
10#define TRKDETDESCRINTERFACES_ITRACKINGVOLUMEARRAYCREATOR_H
11
12// Gaudi
13#include "GaudiKernel/IAlgTool.h"
14// TrkDetDescrUtils - templated classes & enums
17// STL
18#include <memory>
19#include <vector>
20namespace Trk {
21
23class TrackingVolume;
24
28
42class ITrackingVolumeArrayCreator : virtual public IAlgTool {
43
44 public:
47 using VolumePtr = std::shared_ptr<TrackingVolume>;
49 virtual ~ITrackingVolumeArrayCreator() = default;
50
52 virtual std::unique_ptr<TrackingVolumeArray> cylinderVolumesArrayInR(
53 const std::vector<TrackingVolume*>& vols,
54 bool navigationtype = false) const = 0;
55 virtual std::unique_ptr<TrackingVolumeArray> cylinderVolumesArrayInZ(
56 const std::vector<TrackingVolume*>& vols,
57 bool navigationtype = false) const = 0;
58 virtual std::unique_ptr<TrackingVolumeArray> cylinderVolumesArrayInPhiR(
59 const std::vector<TrackingVolume*>& vols,
60 bool navigationtype = false) const = 0;
61 virtual std::unique_ptr<TrackingVolumeArray> cylinderVolumesArrayInPhiZ(
62 const std::vector<TrackingVolume*>& vols,
63 bool navigationtype = false) const = 0;
64
67 virtual std::unique_ptr<TrackingVolumeArray> cylinderVolumesArrayInR(
68 const std::vector<VolumePtr>& vols,
69 bool navigationtype = false) const = 0;
72 virtual std::unique_ptr<TrackingVolumeArray> cylinderVolumesArrayInZ(
73 const std::vector<VolumePtr>& vols,
74 bool navigationtype = false) const = 0;
77 virtual std::unique_ptr<TrackingVolumeArray> cylinderVolumesArrayInPhi(
78 const std::vector<VolumePtr>& vols,
79 bool navigationtype = false) const = 0;
82 virtual std::unique_ptr<TrackingVolumeArray> cylinderVolumesArrayInPhiR(
83 const std::vector<VolumePtr>& vols,
84 bool navigationtype = false) const = 0;
87 virtual std::unique_ptr<TrackingVolumeArray> cylinderVolumesArrayInPhiZ(
88 const std::vector<VolumePtr>& vols,
89 bool navigationtype = false) const = 0;
92 virtual std::unique_ptr<TrackingVolumeArray> cuboidVolumesArrayNav(
93 const std::vector<VolumePtr>& vols,
94 const Trk::BinUtility& binUtil) const = 0;
97 virtual std::unique_ptr<TrackingVolumeArray> trapezoidVolumesArrayNav(
98 const std::vector<VolumePtr>& vols,
99 const Trk::BinUtility& binUtil) const = 0;
102 virtual std::unique_ptr<TrackingVolumeArray> doubleTrapezoidVolumesArrayNav(
103 const std::vector<VolumePtr>& vols,
104 const Trk::BinUtility& binUtil) const = 0;
105};
106
107} // namespace Trk
108
109#endif
110
A generic symmetric BinUtility, for fully symmetric binning in terms of binning grid and binning type...
Definition BinUtility.h:39
Binned Array for avoiding map searches/.
Definition BinnedArray.h:36
Interface class ITrackingVolumeArrayCreators It inherits from IAlgTool.
virtual std::unique_ptr< TrackingVolumeArray > cylinderVolumesArrayInZ(const std::vector< TrackingVolume * > &vols, bool navigationtype=false) const =0
std::shared_ptr< TrackingVolume > VolumePtr
virtual ~ITrackingVolumeArrayCreator()=default
Virtual destructor.
virtual std::unique_ptr< TrackingVolumeArray > cylinderVolumesArrayInR(const std::vector< TrackingVolume * > &vols, bool navigationtype=false) const =0
Extra interface methods for compatibility.
virtual std::unique_ptr< TrackingVolumeArray > cylinderVolumesArrayInPhiR(const std::vector< TrackingVolume * > &vols, bool navigationtype=false) const =0
virtual std::unique_ptr< TrackingVolumeArray > cylinderVolumesArrayInPhi(const std::vector< VolumePtr > &vols, bool navigationtype=false) const =0
TrackingVolumeArrayCreator interface method - create a Phi-binned cylindrical volume array.
virtual std::unique_ptr< TrackingVolumeArray > cylinderVolumesArrayInPhiZ(const std::vector< TrackingVolume * > &vols, bool navigationtype=false) const =0
virtual std::unique_ptr< TrackingVolumeArray > doubleTrapezoidVolumesArrayNav(const std::vector< VolumePtr > &vols, const Trk::BinUtility &binUtil) const =0
TrackingVolumeArrayCreator interface method - create a doubleTrapezoid volume array.
DeclareInterfaceID(ITrackingVolumeArrayCreator, 1, 0)
Creates the InterfaceID and interfaceID() method.
virtual std::unique_ptr< TrackingVolumeArray > cylinderVolumesArrayInPhiZ(const std::vector< VolumePtr > &vols, bool navigationtype=false) const =0
TrackingVolumeArrayCreator interface method - create a 2dim cylindrical volume array.
virtual std::unique_ptr< TrackingVolumeArray > trapezoidVolumesArrayNav(const std::vector< VolumePtr > &vols, const Trk::BinUtility &binUtil) const =0
TrackingVolumeArrayCreator interface method - create a trapezoid volume array.
virtual std::unique_ptr< TrackingVolumeArray > cuboidVolumesArrayNav(const std::vector< VolumePtr > &vols, const Trk::BinUtility &binUtil) const =0
TrackingVolumeArrayCreator interface method - create a cuboid volume array.
virtual std::unique_ptr< TrackingVolumeArray > cylinderVolumesArrayInR(const std::vector< VolumePtr > &vols, bool navigationtype=false) const =0
TrackingVolumeArrayCreator interface method - create a R-binned cylindrical volume array.
virtual std::unique_ptr< TrackingVolumeArray > cylinderVolumesArrayInZ(const std::vector< VolumePtr > &vols, bool navigationtype=false) const =0
TrackingVolumeArrayCreator interface method - create a R-binned cylindrical volume array.
virtual std::unique_ptr< TrackingVolumeArray > cylinderVolumesArrayInPhiR(const std::vector< VolumePtr > &vols, bool navigationtype=false) const =0
TrackingVolumeArrayCreator interface method - create a 2dim cylindrical volume array.
Full Volume description used in Tracking, it inherits from Volume to get the geometrical structure,...
Ensure that the ATLAS eigen extensions are properly loaded.
BinnedArray< TrackingVolume > TrackingVolumeArray
simply for the eye