ATLAS Offline Software
Loading...
Searching...
No Matches
ActsTrk::TrackingGeoAlignVisitor Class Referencefinal

TrackingGeometryVisitor to load the aligned surface and volume transforms into the DetectorAlignStore of a given subdetector. More...

#include <TrackingGeoAlignVisitor.h>

Inheritance diagram for ActsTrk::TrackingGeoAlignVisitor:
Collaboration diagram for ActsTrk::TrackingGeoAlignVisitor:

Public Member Functions

 TrackingGeoAlignVisitor (DetectorAlignStore &store) noexcept
 Constructor.
 TrackingGeoAlignVisitor (const TrackingGeoAlignVisitor &other) noexcept=delete
 Delete the copy constructor.
 TrackingGeoAlignVisitor (TrackingGeoAlignVisitor &&other)=delete
 Delete the move constructor.
TrackingGeoAlignVisitoroperator= (const TrackingGeoAlignVisitor &other)=delete
 Delete the copy assignemnt operator.
TrackingGeoAlignVisitoroperator= (TrackingGeoAlignVisitor &&other)=delete
 Delete the move assignemnt operator.
void visitVolume (const Acts::TrackingVolume &volume) override final
 Override the visitVolume to align the volume and its portals.
void visitSurface (const Acts::Surface &surface) override final
 Override the visitSurface to align the sensitive surfaces.
unsigned alignedObjects () const
 Returns how many transforms have been written into the store.

Private Attributes

DetectorAlignStorem_store
unsigned m_aligned {}

Detailed Description

TrackingGeometryVisitor to load the aligned surface and volume transforms into the DetectorAlignStore of a given subdetector.

The tracking geometry tree is traversed and the store is passed to the VolumePlacement and SurfacePlacement instances. If the detectorType of the two matches, the placement writes its aligned transforms ino the store

Definition at line 19 of file TrackingGeoAlignVisitor.h.

Constructor & Destructor Documentation

◆ TrackingGeoAlignVisitor() [1/3]

ActsTrk::TrackingGeoAlignVisitor::TrackingGeoAlignVisitor ( DetectorAlignStore & store)
explicitnoexcept

Constructor.

Parameters
store;Mutable reference to the alignment store to fill

Definition at line 15 of file TrackingGeoAlignVisitor.cxx.

15 :
16 m_store{store}{}
TestStore store
Definition TestStore.cxx:23

◆ TrackingGeoAlignVisitor() [2/3]

ActsTrk::TrackingGeoAlignVisitor::TrackingGeoAlignVisitor ( const TrackingGeoAlignVisitor & other)
deletenoexcept

Delete the copy constructor.

◆ TrackingGeoAlignVisitor() [3/3]

ActsTrk::TrackingGeoAlignVisitor::TrackingGeoAlignVisitor ( TrackingGeoAlignVisitor && other)
delete

Delete the move constructor.

Member Function Documentation

◆ alignedObjects()

unsigned ActsTrk::TrackingGeoAlignVisitor::alignedObjects ( ) const

Returns how many transforms have been written into the store.

Definition at line 41 of file TrackingGeoAlignVisitor.cxx.

◆ operator=() [1/2]

TrackingGeoAlignVisitor & ActsTrk::TrackingGeoAlignVisitor::operator= ( const TrackingGeoAlignVisitor & other)
delete

Delete the copy assignemnt operator.

◆ operator=() [2/2]

TrackingGeoAlignVisitor & ActsTrk::TrackingGeoAlignVisitor::operator= ( TrackingGeoAlignVisitor && other)
delete

Delete the move assignemnt operator.

◆ visitSurface()

void ActsTrk::TrackingGeoAlignVisitor::visitSurface ( const Acts::Surface & surface)
finaloverride

Override the visitSurface to align the sensitive surfaces.

Definition at line 29 of file TrackingGeoAlignVisitor.cxx.

29 {
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 }

◆ visitVolume()

void ActsTrk::TrackingGeoAlignVisitor::visitVolume ( const Acts::TrackingVolume & volume)
finaloverride

Override the visitVolume to align the volume and its portals.

Definition at line 18 of file TrackingGeoAlignVisitor.cxx.

18 {
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 }

Member Data Documentation

◆ m_aligned

unsigned ActsTrk::TrackingGeoAlignVisitor::m_aligned {}
private

Definition at line 40 of file TrackingGeoAlignVisitor.h.

40{};

◆ m_store

DetectorAlignStore& ActsTrk::TrackingGeoAlignVisitor::m_store
private

Definition at line 39 of file TrackingGeoAlignVisitor.h.


The documentation for this class was generated from the following files: