ATLAS Offline Software
Loading...
Searching...
No Matches
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
9//
10
11#include "Acts/Geometry/TrackingVolume.hpp"
12#include "Acts/Surfaces/Surface.hpp"
13
14namespace ActsTrk{
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 }
42}
Extension of the interface of the Acts::SurfacePlacementBase for ATLAS.
ATLAS extension of the VolumePlacementBase interface.
void visitSurface(const Acts::Surface &surface) override final
Override the visitSurface to align the sensitive surfaces.
TrackingGeoAlignVisitor(DetectorAlignStore &store) noexcept
Constructor.
unsigned alignedObjects() const
Returns how many transforms have been written into the store.
void visitVolume(const Acts::TrackingVolume &volume) override final
Override the visitVolume to align the volume and its portals.
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...