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

Implementation of a portal shell class for a single convex polygon volume. More...

#include <Acts/Geometry/DiamondPortalShell.hpp>

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

Public Member Functions

 SingleDiamondPortalShell (TrackingVolume &volume)
 Constructor of a convex polygon shape portal shell for the given 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< PortalportalPtr (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::DiamondPortalShell
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::DiamondPortalShell
using Face = DiamondVolumeBounds::Face

Detailed Description

Implementation of a portal shell class for a single convex polygon volume.

Constructor & Destructor Documentation

◆ SingleDiamondPortalShell()

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

Constructor of a convex polygon shape portal shell for the given volume.

Parameters
volumeThe tracking volume this portal shell is associated with

Member Function Documentation

◆ applyToVolume()

void Acts::SingleDiamondPortalShell::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::SingleDiamondPortalShell::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::SingleDiamondPortalShell::label ( ) const
overridevirtual

Get a label for the portal shell for debugging purposes.

Returns
A label for the portal shell

Implements Acts::PortalShellBase.

◆ portalPtr()

std::shared_ptr< Portal > Acts::SingleDiamondPortalShell::portalPtr ( 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::DiamondPortalShell.

◆ setPortal()

void Acts::SingleDiamondPortalShell::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::DiamondPortalShell.

◆ size()

std::size_t Acts::SingleDiamondPortalShell::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.