ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
Acts::SingleTrapezoidPortalShell Class Reference

This class describes a trapezoid shell containing a single volume. More...

#include <Acts/Geometry/TrapezoidPortalShell.hpp>

Inheritance diagram for Acts::SingleTrapezoidPortalShell:
[legend]
Collaboration diagram for Acts::SingleTrapezoidPortalShell:
[legend]

Public Member Functions

 SingleTrapezoidPortalShell (TrackingVolume &volume)
 Construct a single trapezoid shell for the given tracking volume.
void applyToVolume () override
 Instruct the shell to register the portals with the volume, handing over shared ownership in the process.
bool isValid () const override
 Check if a portal is valid, e.g.
std::string label () const override
 Get a label for the portal shell for debugging purposes.
std::shared_ptr< Portalportal (Face face) override
 Retrieve a shared_ptr for the portal associated to the given face.
void setPortal (std::shared_ptr< Portal > portal, Face face) override
 Set the portal associated to the given face.
std::size_t size () const override
 Get the number of portals in the shell.
Public Member Functions inherited from Acts::TrapezoidPortalShell
void fill (TrackingVolume &volume) override
 Fill the open slots of the shell with a TrivialPortalLink to the given volume.
Public Member Functions inherited from Acts::PortalShellBase
virtual ~PortalShellBase ()=default
 Virtual destructor.

Additional Inherited Members

Public Types inherited from Acts::TrapezoidPortalShell
using Face = TrapezoidVolumeBounds::Face
 Type alias for trapezoid volume face enumeration.

Detailed Description

This class describes a trapezoid shell containing a single volume.

Constructor & Destructor Documentation

◆ SingleTrapezoidPortalShell()

Acts::SingleTrapezoidPortalShell::SingleTrapezoidPortalShell ( TrackingVolume & volume)
explicit

Construct a single trapezoid shell for the given tracking volume.

Parameters
volumeThe volume to create the shell for

Member Function Documentation

◆ applyToVolume()

void Acts::SingleTrapezoidPortalShell::applyToVolume ( )
overridevirtual

Instruct the shell to register the portals with the volume, handing over shared ownership in the process.

Note
The target volume depends on the shell type, e.g. composite shells like the CylinerStackPortalShell register portals to the correct volumes.

Implements Acts::PortalShellBase.

◆ isValid()

bool Acts::SingleTrapezoidPortalShell::isValid ( ) const
overridevirtual

Check if a portal is valid, e.g.

if non of the portals has two unconnected sides.

Returns
True if the shell is valid, false otherwise

Implements Acts::PortalShellBase.

◆ label()

std::string Acts::SingleTrapezoidPortalShell::label ( ) const
overridevirtual

Get a label for the portal shell for debugging purposes.

Returns
A label for the portal shell

Implements Acts::PortalShellBase.

◆ portal()

std::shared_ptr< Portal > Acts::SingleTrapezoidPortalShell::portal ( Face face)
overridevirtual

Retrieve a shared_ptr for the portal associated to the given face.

Can be nullptr if unset.

Parameters
faceThe face to retrieve the portal for
Returns
The portal associated to the face

Implements Acts::TrapezoidPortalShell.

◆ setPortal()

void Acts::SingleTrapezoidPortalShell::setPortal ( std::shared_ptr< Portal > portal,
Face face )
overridevirtual

Set the portal associated to the given face.

Parameters
portalThe portal to set
faceThe face to set the portal

Implements Acts::TrapezoidPortalShell.

◆ size()

std::size_t Acts::SingleTrapezoidPortalShell::size ( ) const
overridevirtual

Get the number of portals in the shell.

This number depends on the volume type

Returns
The number of portals in the shell

Implements Acts::PortalShellBase.