ATLAS Offline Software
TrackingVolumeManipulator.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // TrackingVolumeManipulator.h, (c) ATLAS Detector software
8 
9 #ifndef TRKGEOMETRY_TRACKINGVOLUMEMANIPULATOR_H
10 #define TRKGEOMETRY_TRACKINGVOLUMEMANIPULATOR_H
11 
12 // Trk
17 
18 namespace Trk {
19 
20 class TrackingVolume;
21 
32 {
33 public:
38 
39 protected:
47  void glueVolumes(TrackingVolume& firstVol,
48  BoundarySurfaceFace firstFace,
49  TrackingVolume& secondVol,
50  BoundarySurfaceFace secondFace) const;
51 
53  static void setBoundarySurface(
54  TrackingVolume& tvol,
56  BoundarySurfaceFace face);
57 
63  static void setInsideVolume(TrackingVolume& tvol,
65  TrackingVolume* insidevol);
66 
72  static void setInsideVolumeArray(TrackingVolume& tvol,
74  BinnedArray<TrackingVolume>* insidevolarray);
75 
81  static void setInsideVolumeArray(
82  TrackingVolume& tvol,
84  const SharedObject<BinnedArray<TrackingVolume>>& insidevolarray);
85 
91  static void setOutsideVolume(TrackingVolume& tvol,
93  TrackingVolume* outsidevol);
94 
100  static void setOutsideVolumeArray(
101  TrackingVolume& tvol,
102  BoundarySurfaceFace face,
103  BinnedArray<TrackingVolume>* outsidevolarray);
104 
111  TrackingVolume& tvol,
112  BoundarySurfaceFace face,
113  const SharedObject<BinnedArray<TrackingVolume>>& outsidevolarray);
114 
119  static void confineVolume(TrackingVolume& tvol, TrackingVolume* outsidevol);
120 };
121 } // namespace Trk
122 
123 #endif
Trk::TrackingVolumeManipulator
Definition: TrackingVolumeManipulator.h:32
Trk::TrackingVolumeManipulator::setOutsideVolumeArray
static void setOutsideVolumeArray(TrackingVolume &tvol, BoundarySurfaceFace face, const SharedObject< BinnedArray< TrackingVolume >> &outsidevolarray)
protected method to set outside VolumeArray of a BoundarySurface: input:
Trk::BoundarySurface
Definition: BoundarySurface.h:50
BinnedArray.h
Trk::TrackingVolumeManipulator::setOutsideVolume
static void setOutsideVolume(TrackingVolume &tvol, BoundarySurfaceFace face, TrackingVolume *outsidevol)
protected method to set outside Volume of a BoundarySurface: input:
Definition: TrackingVolumeManipulator.cxx:82
Trk::TrackingVolumeManipulator::setInsideVolumeArray
static void setInsideVolumeArray(TrackingVolume &tvol, BoundarySurfaceFace face, BinnedArray< TrackingVolume > *insidevolarray)
protected method to set inside VolumeArray of a BoundarySurface: input:
Definition: TrackingVolumeManipulator.cxx:61
Trk::BoundarySurfaceFace
BoundarySurfaceFace
Definition: BoundarySurfaceFace.h:31
Trk::TrackingVolumeManipulator::setOutsideVolumeArray
static void setOutsideVolumeArray(TrackingVolume &tvol, BoundarySurfaceFace face, BinnedArray< TrackingVolume > *outsidevolarray)
protected method to set outside VolumeArray of a BoundarySurface: input:
Definition: TrackingVolumeManipulator.cxx:91
SharedObject.h
Trk::TrackingVolumeManipulator::~TrackingVolumeManipulator
~TrackingVolumeManipulator()
Destructor.
Definition: TrackingVolumeManipulator.h:37
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
BoundarySurfaceFace.h
BoundarySurface.h
Trk::TrackingVolumeManipulator::setInsideVolume
static void setInsideVolume(TrackingVolume &tvol, BoundarySurfaceFace face, TrackingVolume *insidevol)
protected method to set inside Volume of a BoundarySurface: input:
Definition: TrackingVolumeManipulator.cxx:52
Trk::TrackingVolumeManipulator::setInsideVolumeArray
static void setInsideVolumeArray(TrackingVolume &tvol, BoundarySurfaceFace face, const SharedObject< BinnedArray< TrackingVolume >> &insidevolarray)
protected method to set inside VolumeArray of a BoundarySurface: input:
Trk::SharedObject
std::shared_ptr< T > SharedObject
Definition: SharedObject.h:24
Trk::TrackingVolumeManipulator::setBoundarySurface
static void setBoundarySurface(TrackingVolume &tvol, SharedObject< BoundarySurface< TrackingVolume >> bsurf, BoundarySurfaceFace face)
protected method to set the boundary surface of a tracking volume
Definition: TrackingVolumeManipulator.cxx:43
Trk::TrackingVolumeManipulator::glueVolumes
void glueVolumes(TrackingVolume &firstVol, BoundarySurfaceFace firstFace, TrackingVolume &secondVol, BoundarySurfaceFace secondFace) const
protected method to glue two Volumes together input:
Definition: TrackingVolumeManipulator.cxx:17
Trk::TrackingVolumeManipulator::confineVolume
static void confineVolume(TrackingVolume &tvol, TrackingVolume *outsidevol)
protected method to confine (dense) volumes: input:
Definition: TrackingVolumeManipulator.cxx:112
Trk::BinnedArray
Definition: BinnedArray.h:38
Trk::TrackingVolume
Definition: TrackingVolume.h:121
Trk::TrackingVolumeManipulator::TrackingVolumeManipulator
TrackingVolumeManipulator()
constructor
Definition: TrackingVolumeManipulator.h:35