ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Tracking
TrkDetDescr
TrkVolumes
TrkVolumes
VolumeBounds.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
// VolumeBounds.h, (c) ATLAS Detector software
8
9
#ifndef TRKVOLUMES_VOLUMEBOUNDS_H
10
#define TRKVOLUMES_VOLUMEBOUNDS_H
11
12
// STD
13
#include <iomanip>
14
#include <iostream>
15
#include <memory>
16
// GaudiKernel
17
#include "GaudiKernel/MsgStream.h"
18
// Trk
19
#include "
CxxUtils/checker_macros.h
"
20
#include "
GeoPrimitives/GeoPrimitives.h
"
21
#include "
TrkDetDescrUtils/ObjectAccessor.h
"
22
23
namespace
Trk
{
24
25
class
Surface
;
26
class
Volume
;
27
45
46
class
VolumeBounds
{
47
public
:
49
VolumeBounds
() {}
50
52
virtual
~VolumeBounds
() {}
53
56
virtual
VolumeBounds
*
clone
()
const
= 0;
57
59
virtual
bool
inside
(
const
Amg::Vector3D
& pos,
double
tol = 0.)
const
= 0;
60
63
virtual
std::vector<std::unique_ptr<Trk::Surface>>
decomposeToSurfaces
(
64
const
Amg::Transform3D
& transform) = 0;
65
67
virtual
ObjectAccessor
boundarySurfaceAccessor
(
68
const
Amg::Vector3D
& gp,
const
Amg::Vector3D
& dir,
69
bool
forceInside =
false
)
const
= 0;
70
72
virtual
MsgStream&
dump
(MsgStream& sl)
const
= 0;
73
75
virtual
std::ostream&
dump
(std::ostream& sl)
const
= 0;
76
};
77
80
MsgStream&
operator<<
(MsgStream& sl,
const
VolumeBounds
& vb);
81
std::ostream&
operator<<
(std::ostream& sl,
const
VolumeBounds
& vb);
82
83
}
// namespace Trk
84
85
#endif
// TRKVOLUMES_VOLUMEBOUNDS_H
GeoPrimitives.h
ObjectAccessor.h
checker_macros.h
Define macros for attributes used to control the static checker.
Trk::ObjectAccessor
Definition
ObjectAccessor.h:15
Trk::Surface
Abstract Base Class for tracking surfaces.
Definition
Surface.h:79
Trk::VolumeBounds
Pure Absract Base Class for Volume bounds.
Definition
VolumeBounds.h:46
Trk::VolumeBounds::~VolumeBounds
virtual ~VolumeBounds()
Destructor.
Definition
VolumeBounds.h:52
Trk::VolumeBounds::clone
virtual VolumeBounds * clone() const =0
clone() method to make deep copy in Volume copy constructor and for assigment operator of the Surface...
Trk::VolumeBounds::dump
virtual MsgStream & dump(MsgStream &sl) const =0
Output Method for MsgStream, to be overloaded by child classes.
Trk::VolumeBounds::boundarySurfaceAccessor
virtual ObjectAccessor boundarySurfaceAccessor(const Amg::Vector3D &gp, const Amg::Vector3D &dir, bool forceInside=false) const =0
Provide accessor for BoundarySurfaces.
Trk::VolumeBounds::decomposeToSurfaces
virtual std::vector< std::unique_ptr< Trk::Surface > > decomposeToSurfaces(const Amg::Transform3D &transform)=0
Method to decompose the Bounds into Surfaces, the Volume can turn them into BoundarySurfaces.
Trk::VolumeBounds::inside
virtual bool inside(const Amg::Vector3D &pos, double tol=0.) const =0
Checking if position given in volume frame is inside.
Trk::VolumeBounds::VolumeBounds
VolumeBounds()
Default Constructor.
Definition
VolumeBounds.h:49
Trk::VolumeBounds::dump
virtual std::ostream & dump(std::ostream &sl) const =0
Output Method for std::ostream, to be overloaded by child classes.
Trk::Volume
Base class for all volumes inside the tracking realm, it defines the interface for inherited Volume c...
Definition
Volume.h:36
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition
GeoPrimitives.h:46
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition
GeoPrimitives.h:47
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition
FakeTrackBuilder.h:9
Trk::operator<<
MsgStream & operator<<(MsgStream &sl, const AlignModule &alignModule)
overload of << operator for MsgStream for debug output
Definition
AlignModule.cxx:204
Generated on
for ATLAS Offline Software by
1.17.0