File Channelizer.hpp

namespace Acts

Note

This file is foreseen for the Geometry module to replace Extent

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

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.

Note

Channelizing is done in cartesian coordinates (start/end)

Note

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

Note

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.

Parameters
  • 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)

Returns

a vector of ChannelSegment objects

struct ChannelSegment
#include <ActsFatras/Digitization/Channelizer.hpp>

Nested struct for representing channel steps.

Public Functions

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

Constructor with arguments.

Parameters
  • 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
#include <ActsFatras/Digitization/Channelizer.hpp>

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.

Parameters
  • 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)

Parameters

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.