Struct ActsFatras::Channelizer

struct Channelizer

The Channelizer splits a surface segment, i.e.

after projection onto the readout surface into channel segments.

Public Types

using Bin2D = std::array<unsigned int, 2>

Shorthand for a 2D bin.

using BinDelta2D = std::array<int, 2>

shorthand for a 2D bin delta

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

Shorthand for a 2D segment.

Public Functions

std::vector<ChannelSegment> segments(const Acts::GeometryContext &geoCtx, const Acts::Surface &surface, const Acts::BinUtility &segmentation, const Segment2D &segment) const

Divide the surface segment into channel segments.


Channelizing is done in cartesian coordinates (start/end)


The start and end cartesian vector is supposed to be inside the surface bounds (pre-run through the SurfaceMasker)


The segmentation has to be 2-dimensional, even if the actual readout is 1-dimensional, in latter case one bin in the second coordinate direction is required.

  • geoCtx – The geometry context for the localToGlobal, etc.

  • surface – The surface for the channelizing

  • segmentation – The segmentation for the channelizing

  • segment – The surface segment (cartesian coordinates)


a vector of ChannelSegment objects

struct ChannelSegment

Nested struct for representing channel steps.

Public Functions

inline ChannelSegment(Bin2D bin_, Segment2D path2D_, double activation_)

Constructor with arguments.

  • bin_ – The bin corresponding to this step

  • path2D_ – The start/end 2D position of the segement

  • activation_ – The segment activation (clean: length) for this bin

Public Members

double activation = 0.

The (clipped) value (uncorrected: path length)

Bin2D bin = {0, 0}

The bin of this segment.

Segment2D path2D

The segment start, end points.

struct ChannelStep

Nested struct for stepping from one channel to the next.

Public Functions

inline ChannelStep(BinDelta2D delta_, Acts::Vector2 intersect_, const Acts::Vector2 &start)

Constructor with arguments for a ChannelStep.

  • delta_ – The bin delta for this step

  • intersect_ – The intersect with the channel boundary

  • start – The start of the surface segment, for path from origin

inline bool operator<(const ChannelStep &cstep) const

Smaller operator for sorting the ChannelStep objects.

The ChannelStep objects can be compared with its path distance from the start (surface segment origin)


cstep – The other ChannelStep to be compared

Public Members

BinDelta2D delta = {0, 0}

This is the delta to the last step in bins.

Acts::Vector2 intersect

The intersection with the channel boundary.

double path = 0.

The patlength from the start.