File PlanarSurfaceDrift.hpp

namespace ActsFatras
struct PlanarSurfaceDrift
#include <ActsFatras/Digitization/PlanarSurfaceDrift.hpp>

The PlanarSurfaceDrift takes an intersection in the nominal surface and projects the ends into the readout surface, which can be at : -1, 0, 1.

A Lorentz drift angle can be applied.

Public Types

using Segment2D = std::array<Acts::Vector2, 2>

Shorthand for a 2D segment.

Public Functions

Segment2D toReadout(const Acts::GeometryContext &gctx, const Acts::Surface &surface, double thickness, const Acts::Vector3 &pos, const Acts::Vector3 &dir, const Acts::Vector3 &driftdir) const

Drift the full 3D segment onto a surface 2D readout plane.

Note

a drift direction of (0,0,0) is drift to central plane any other a drift direction with driftDir.z() != 0. will result on a readout on either + 0.5*depletion or -0.5*depletion

Note

without masking

Parameters
  • gctx – The current Geometry context

  • surface – The nominal intersection surface

  • thickness – The emulated module/depletion thickness

  • pos – The position in global coordinates

  • dir – The direction in global coordinates

  • driftdir – The drift direction in local (surface) coordinates

Returns

a Segment on the readout surface