File NavigationState.hpp

namespace Acts

Note

This file is foreseen for the Geometry module to replace Extent

namespace Experimental
struct DetectorVolumeFiller
#include <Acts/Navigation/NavigationState.hpp>

Filler of the current volume.

Public Static Functions

static inline void fill(NavigationState &nState, const DetectorVolume *volume)

Helper struct that allows to fill a volume into the navigation state, it allows to use common navigation structs for volume, portal, surfaces.

Parameters
  • nState – the navigation state

  • volume – the volume that is filled

struct NavigationState
#include <Acts/Navigation/NavigationState.hpp>

A navigation state struct that is holding the current navigation information.

It relies on Surfaces and Portals, all navigation entities have to be described in these terms.

Public Types

using SurfaceCandidates = std::vector<SurfaceCandidate>

Surface candidate vector alias, this allows to use e.g.

boost_small vector or other stl like containers

Public Members

ActsScalar absMomentum = 0.

The current absolute momentum.

std::any auxilliary

Auxilliary attached information.

ActsScalar charge = 0.

The current charge.

const Detector *currentDetector = nullptr

The current detector in processing.

const Surface *currentSurface = nullptr

The current surface, i.e the position is on surface.

const DetectorVolume *currentVolume = nullptr

The current volume in processing, i.e. the position is inside.

Vector3 direction = Vector3(0., 0., 0.)

The current direction.

Vector3 magneticField = Vector3(0., 0., 0.)

The current magnetic field.

ActsScalar overstepTolerance = -0.1

An overstep tolerance.

Vector3 position = Vector3(0., 0., 0.)

The current position.

BoundaryCheck surfaceBoundaryCheck = true

Boundary directives for surfaces.

SurfaceCandidates::iterator surfaceCandidate = surfaceCandidates.end()
SurfaceCandidates surfaceCandidates = {}

That are the candidate surfaces to process.

struct SurfaceCandidate
#include <Acts/Navigation/NavigationState.hpp>

A surface candidate and its intersection.

A candidates can either be a surface or a portal (which contain a surface)

Public Members

BoundaryCheck bCheck = true

The boundary check used for the candidate, boundary checks can differ for sensitive surfaces and portals.

ObjectIntersection<Surface> objectIntersection

A candidate intersection, in Surface view.

const Portal *portal = nullptr

Or a portal.

const Surface *surface = nullptr

A candidate is either a detector Surface.

struct PortalsFiller
#include <Acts/Navigation/NavigationState.hpp>

Fillers and attachers for portals to act on the navigation state.

Public Static Functions

static inline void fill(NavigationState &nState, const std::vector<const Portal*> &portals)

Helper struct that allows to fill surfaces into the candidate vector it allows to use common navigation structs for volume, portal, surfaces.

Parameters
  • nState – the navigation state

  • portals – the portals that are filled in

struct SurfacesFiller
#include <Acts/Navigation/NavigationState.hpp>

Fillers and attachers for surfaces to act on the navigation state.

Public Static Functions

static inline void fill(NavigationState &nState, const std::vector<const Surface*> &surfaces)

Helper struct that allows to fill surfaces into the candidate vector it allows to use common navigation structs for volume, portal, surfaces.

Parameters
  • nState – the navigation state

  • surfaces – the surfaces that are filled in