ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Tracking
Acts
ActsGeometry
src
TrackingGeoAlignVisitor.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#include "
TrackingGeoAlignVisitor.h
"
7
#include "
ActsGeometryInterfaces/IVolumePlacement.h
"
8
#include "
ActsGeometryInterfaces/ISurfacePlacement.h
"
9
//
10
11
#include "Acts/Geometry/TrackingVolume.hpp"
12
#include "Acts/Surfaces/Surface.hpp"
13
14
namespace
ActsTrk
{
15
TrackingGeoAlignVisitor::TrackingGeoAlignVisitor
(
DetectorAlignStore
& store)
noexcept
:
16
m_store
{store}{}
17
18
void
TrackingGeoAlignVisitor::visitVolume
(
const
Acts::TrackingVolume& volume) {
19
if
(!volume.isAlignable()) {
20
return
;
21
}
22
const
auto
* placement =
dynamic_cast<
const
IVolumePlacement
*
>
(volume.volumePlacement());
23
if
(!placement) {
24
return
;
25
}
26
m_aligned
+= placement->storeAlignedTransforms(
m_store
);
27
}
28
29
void
TrackingGeoAlignVisitor::visitSurface
(
const
Acts::Surface& surface) {
30
// Alignment of the portals is taking care by the VolumePlacement.
31
if
(!surface.isAlignable() || !surface.isSensitive()) {
32
return
;
33
}
34
35
const
auto
* placement =
dynamic_cast<
const
ISurfacePlacement
*
>
(surface.surfacePlacement());
36
if
(!placement) {
37
return
;
38
}
39
m_aligned
+= placement->detectorElement()->storeAlignedTransforms(
m_store
);
40
}
41
unsigned
TrackingGeoAlignVisitor::alignedObjects
()
const
{
return
m_aligned
; }
42
}
ISurfacePlacement.h
IVolumePlacement.h
TrackingGeoAlignVisitor.h
ActsTrk::DetectorAlignStore
Definition
DetectorAlignStore.h:38
ActsTrk::ISurfacePlacement
Extension of the interface of the Acts::SurfacePlacementBase for ATLAS.
Definition
ISurfacePlacement.h:19
ActsTrk::IVolumePlacement
ATLAS extension of the VolumePlacementBase interface.
Definition
IVolumePlacement.h:18
ActsTrk::TrackingGeoAlignVisitor::visitSurface
void visitSurface(const Acts::Surface &surface) override final
Override the visitSurface to align the sensitive surfaces.
Definition
TrackingGeoAlignVisitor.cxx:29
ActsTrk::TrackingGeoAlignVisitor::TrackingGeoAlignVisitor
TrackingGeoAlignVisitor(DetectorAlignStore &store) noexcept
Constructor.
Definition
TrackingGeoAlignVisitor.cxx:15
ActsTrk::TrackingGeoAlignVisitor::alignedObjects
unsigned alignedObjects() const
Returns how many transforms have been written into the store.
Definition
TrackingGeoAlignVisitor.cxx:41
ActsTrk::TrackingGeoAlignVisitor::m_store
DetectorAlignStore & m_store
Definition
TrackingGeoAlignVisitor.h:39
ActsTrk::TrackingGeoAlignVisitor::visitVolume
void visitVolume(const Acts::TrackingVolume &volume) override final
Override the visitVolume to align the volume and its portals.
Definition
TrackingGeoAlignVisitor.cxx:18
ActsTrk::TrackingGeoAlignVisitor::m_aligned
unsigned m_aligned
Definition
TrackingGeoAlignVisitor.h:40
ActsTrk
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
Definition
MdtCalibInput.h:31
Generated on
for ATLAS Offline Software by
1.17.0