ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
Acts::PortalShellBase Class Referenceabstract

The portal shell of a volume is the set of portals that describes connections "outside" of the volume. More...

#include <Acts/Geometry/PortalShell.hpp>

Inheritance diagram for Acts::PortalShellBase:
[legend]

Public Member Functions

virtual ~PortalShellBase ()=default
 Virtual destructor.
virtual void applyToVolume ()=0
 Instruct the shell to register the portals with the volume, handing over shared ownership in the process.
virtual void fill (TrackingVolume &volume)=0
 Fill the open slots of the shell with a TrivialPortalLink to the given volume.
virtual bool isValid () const =0
 Check if a portal is valid, e.g.
virtual std::string label () const =0
 Get a label for the portal shell for debugging purposes.
virtual std::size_t size () const =0
 Get the number of portals in the shell.

Detailed Description

The portal shell of a volume is the set of portals that describes connections "outside" of the volume.

Which boundary surfaces of a volume are included in the shell depends on the volume. Portal shells are only used during geometry construction, and are not part of the final geometry description.

This class is the base class for all portal shells

Constructor & Destructor Documentation

◆ ~PortalShellBase()

virtual Acts::PortalShellBase::~PortalShellBase ( )
virtualdefault

Virtual destructor.

Member Function Documentation

◆ applyToVolume()

virtual void Acts::PortalShellBase::applyToVolume ( )
pure virtual

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.

Implemented in Acts::CuboidStackPortalShell, Acts::CylinderStackPortalShell, Acts::SingleCuboidPortalShell, Acts::SingleCylinderPortalShell, Acts::SingleDiamondPortalShell, and Acts::SingleTrapezoidPortalShell.

◆ fill()

virtual void Acts::PortalShellBase::fill ( TrackingVolume & volume)
pure virtual

Fill the open slots of the shell with a TrivialPortalLink to the given volume.

Parameters
volumeThe volume to connect

Implemented in Acts::CuboidPortalShell, Acts::CylinderPortalShell, Acts::DiamondPortalShell, and Acts::TrapezoidPortalShell.

◆ isValid()

virtual bool Acts::PortalShellBase::isValid ( ) const
pure virtual

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

Implemented in Acts::CuboidStackPortalShell, Acts::CylinderStackPortalShell, Acts::SingleCuboidPortalShell, Acts::SingleCylinderPortalShell, Acts::SingleDiamondPortalShell, and Acts::SingleTrapezoidPortalShell.

◆ label()

virtual std::string Acts::PortalShellBase::label ( ) const
pure virtual

Get a label for the portal shell for debugging purposes.

Returns
A label for the portal shell

Implemented in Acts::CuboidStackPortalShell, Acts::CylinderStackPortalShell, Acts::SingleCuboidPortalShell, Acts::SingleCylinderPortalShell, Acts::SingleDiamondPortalShell, and Acts::SingleTrapezoidPortalShell.

◆ size()

virtual std::size_t Acts::PortalShellBase::size ( ) const
pure virtual

Get the number of portals in the shell.

This number depends on the volume type

Returns
The number of portals in the shell

Implemented in Acts::CuboidStackPortalShell, Acts::CylinderStackPortalShell, Acts::SingleCuboidPortalShell, Acts::SingleCylinderPortalShell, Acts::SingleDiamondPortalShell, and Acts::SingleTrapezoidPortalShell.