ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Tracking
Acts
ActsGeoUtils
ActsGeoUtils
SurfacePlacement.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#ifndef MUONREADOUTGEOMETRY_SurfacePlacement_H
6
#define MUONREADOUTGEOMETRY_SurfacePlacement_H
7
#ifndef SIMULATIONBASE
8
9
#include <
GeoPrimitives/GeoPrimitivesHelpers.h
>
11
#include <
ActsGeoUtils/TransformCache.h
>
12
#include <
ActsGeometryInterfaces/ISurfacePlacement.h
>
13
14
#include "Acts/Surfaces/SurfacePlacementBase.hpp"
15
#include "Acts/Surfaces/Surface.hpp"
16
#include "Acts/Surfaces/SurfaceBounds.hpp"
17
18
namespace
Acts
{
19
class
Surface;
20
}
21
namespace
ActsTrk
{
22
32
class
SurfacePlacement
final:
public
ISurfacePlacement
{
33
public
:
46
template
<
typename
Surface_t,
47
typename
Bounds_t>
48
static
std::shared_ptr<SurfacePlacement>
makeShared
(
IReadoutSurfacePositioning
& transformCache,
49
std::shared_ptr<Bounds_t>&& bounds)
50
requires
(std::is_base_of_v<Acts::SurfaceBounds, Bounds_t>);
51
52
virtual
~SurfacePlacement
() =
default
;
53
55
SurfacePlacement
(
const
SurfacePlacement
& other) =
delete
;
57
SurfacePlacement
&
operator=
(
const
SurfacePlacement
& other) =
delete
;
59
SurfacePlacement
(
SurfacePlacement
&& other) =
delete
;
61
SurfacePlacement
&
operator=
(
SurfacePlacement
&& other) =
delete
;
63
const
Acts::Transform3&
localToGlobalTransform
(
const
Acts::GeometryContext& tgContext)
const
override
final
;
64
66
const
Acts::Surface&
surface
()
const
override final;
67
69
Acts
::Surface&
surface
() override final;
70
72
std
::shared_ptr<
Acts
::Surface>
getSurface
()
const
;
73
75
IdentifierHash
hash
()
const
;
76
78
Identifier
identify
()
const
override final;
79
81
DetectorType
detectorType
()
const
override final;
82
84
const
IDetectorElement
*
detectorElement
()
const
override final;
85
private
:
87
explicit
SurfacePlacement
(
IReadoutSurfacePositioning
* transformCache);
89
const
IReadoutSurfacePositioning
*
m_transformCache
{
nullptr
};
90
};
91
92
template
<
typename
Surface_t,
typename
Bounds_t>
93
std::shared_ptr<SurfacePlacement>
94
SurfacePlacement::makeShared
(
IReadoutSurfacePositioning
& transformCache,
95
std::shared_ptr<Bounds_t>&& bounds)
96
requires
(std::is_base_of_v<Acts::SurfaceBounds, Bounds_t>){
97
if
(transformCache.m_surface || transformCache.m_placement) {
98
return
nullptr
;
99
}
100
transformCache.m_placement.reset(
new
SurfacePlacement
(&transformCache));
101
transformCache.m_surface = Acts::Surface::makeShared<Surface_t>(std::move(bounds), *transformCache.m_placement);
102
return
transformCache.m_placement;
103
}
104
}
105
106
#endif
107
#endif
GeoPrimitivesHelpers.h
ISurfacePlacement.h
TransformCache.h
ActsTrk::IDetectorElement
ATLAS interface of a detector element.
Definition
IDetectorElement.h:20
ActsTrk::IReadoutSurfacePositioning
Interface extension for caches used to hold the transforms of surfaces from the readout geometry.
Definition
TransformCache.h:111
ActsTrk::ISurfacePlacement
Extension of the interface of the Acts::SurfacePlacementBase for ATLAS.
Definition
ISurfacePlacement.h:19
ActsTrk::SurfacePlacement::detectorType
DetectorType detectorType() const override final
Returns the detector element type.
Definition
SurfacePlacement.cxx:27
ActsTrk::SurfacePlacement::operator=
SurfacePlacement & operator=(const SurfacePlacement &other)=delete
The copy assignment operator.
ActsTrk::SurfacePlacement::SurfacePlacement
SurfacePlacement(SurfacePlacement &&other)=delete
Delete the move constructor.
ActsTrk::SurfacePlacement::getSurface
std::shared_ptr< Acts::Surface > getSurface() const
Returns a mutable shared pointer to the surface held by the placement.
Definition
SurfacePlacement.cxx:24
ActsTrk::SurfacePlacement::~SurfacePlacement
virtual ~SurfacePlacement()=default
ActsTrk::SurfacePlacement::m_transformCache
const IReadoutSurfacePositioning * m_transformCache
Pointer to the parent.
Definition
SurfacePlacement.h:89
ActsTrk::SurfacePlacement::identify
Identifier identify() const override final
Return the ATLAS identifier of the surface.
Definition
SurfacePlacement.cxx:26
ActsTrk::SurfacePlacement::SurfacePlacement
SurfacePlacement(const SurfacePlacement &other)=delete
Delete the copy consturctor.
ActsTrk::SurfacePlacement::surface
const Acts::Surface & surface() const override final
Definition
SurfacePlacement.cxx:18
ActsTrk::SurfacePlacement::detectorElement
const IDetectorElement * detectorElement() const override final
Returns the detector element upstream.
Definition
SurfacePlacement.cxx:14
ActsTrk::SurfacePlacement::makeShared
static std::shared_ptr< SurfacePlacement > makeShared(IReadoutSurfacePositioning &transformCache, std::shared_ptr< Bounds_t > &&bounds)
Factory method to create a SurfacePlacement together with an Acts::Surface.
Definition
SurfacePlacement.h:94
ActsTrk::SurfacePlacement::localToGlobalTransform
const Acts::Transform3 & localToGlobalTransform(const Acts::GeometryContext &tgContext) const override final
Definition
SurfacePlacement.cxx:15
ActsTrk::SurfacePlacement::hash
IdentifierHash hash() const
Identifierhash of the associated IReadoutSurfacePositioning.
Definition
SurfacePlacement.cxx:25
ActsTrk::SurfacePlacement::operator=
SurfacePlacement & operator=(SurfacePlacement &&other)=delete
Delete the move assignment operator.
IdentifierHash
This is a "hash" representation of an Identifier.
Definition
IdentifierHash.h:25
const
ActsTrk
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
Definition
MdtCalibInput.h:31
ActsTrk::DetectorType
DetectorType
Simple enum to Identify the Type of the ACTS sub detector.
Definition
GeometryDefs.h:25
Acts
This class is not to needed in AthSimulation.
Definition
MuonSpectrometer/MuonPhaseII/Event/xAOD/xAODMuonPrepData/xAODMuonPrepData/UtilFunctions.h:23
Identifier
Definition
IdentifierFieldParser.cxx:14
std
STL namespace.
private
#define private
Definition
testRead.cxx:27
Generated on
for ATLAS Offline Software by
1.17.0