ATLAS Offline Software
TrackingVolumeManipulator.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 // TrackingVolumeManipulator.h, (c) ATLAS Detector software
8 
9 #ifndef TRKGEOMETRY_TRACKINGVOLUMEMANIPULATOR_H
10 #define TRKGEOMETRY_TRACKINGVOLUMEMANIPULATOR_H
11 
12 // Trk
14 #include <memory>
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,
55  std::shared_ptr<BoundarySurface<TrackingVolume>> bsurf,
56  BoundarySurfaceFace face);
57 
63  static void setInsideVolume(TrackingVolume& tvol,
65  TrackingVolume* insidevol);
66 
72  static void setInsideVolumeArray(
73  TrackingVolume& tvol,
75  const std::shared_ptr<BinnedArray<TrackingVolume>>& insidevolarray);
76 
82  static void setOutsideVolume(TrackingVolume& tvol,
84  TrackingVolume* outsidevol);
85 
91  static void setOutsideVolumeArray(
92  TrackingVolume& tvol,
94  const std::shared_ptr<BinnedArray<TrackingVolume>>& outsidevolarray);
95 
100  static void confineVolume(TrackingVolume& tvol, TrackingVolume* outsidevol);
101 };
102 } // namespace Trk
103 
104 #endif
Trk::TrackingVolumeManipulator
Definition: TrackingVolumeManipulator.h:32
Trk::BoundarySurface
Definition: BoundarySurface.h:43
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:71
Trk::BoundarySurfaceFace
BoundarySurfaceFace
Definition: BoundarySurfaceFace.h:31
Trk::TrackingVolumeManipulator::setInsideVolumeArray
static void setInsideVolumeArray(TrackingVolume &tvol, BoundarySurfaceFace face, const std::shared_ptr< BinnedArray< TrackingVolume >> &insidevolarray)
protected method to set inside VolumeArray of a BoundarySurface: input:
Definition: TrackingVolumeManipulator.cxx:61
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
Trk::TrackingVolumeManipulator::setBoundarySurface
static void setBoundarySurface(TrackingVolume &tvol, std::shared_ptr< BoundarySurface< TrackingVolume >> bsurf, BoundarySurfaceFace face)
protected method to set the boundary surface of a tracking volume
Definition: TrackingVolumeManipulator.cxx:43
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::setOutsideVolumeArray
static void setOutsideVolumeArray(TrackingVolume &tvol, BoundarySurfaceFace face, const std::shared_ptr< BinnedArray< TrackingVolume >> &outsidevolarray)
protected method to set outside VolumeArray of a BoundarySurface: input:
Definition: TrackingVolumeManipulator.cxx:80
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:90
Trk::BinnedArray
Definition: BinnedArray.h:36
Trk::TrackingVolume
Definition: TrackingVolume.h:119
Trk::TrackingVolumeManipulator::TrackingVolumeManipulator
TrackingVolumeManipulator()
constructor
Definition: TrackingVolumeManipulator.h:35