The Channelizer splits a surface segment, i.e.
after projection onto the readout surface into channel segments.
using Bin2D = std::array<unsigned int, 2>
Shorthand for a 2D bin.
using BinDelta2D = std::array<int, 2>
shorthand for a 2D bin delta
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
Nested struct for representing channel steps.
Nested struct for stepping from one channel to the next.
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
- inline ChannelStep(BinDelta2D delta_, Acts::Vector2 intersect_, const Acts::Vector2 &start)
- using Bin2D = std::array<unsigned int, 2>