9#ifndef TRKDIGEVENT_RECTANGLESEGMENTATION_H
10#define TRKDIGEVENT_RECTANGLESEGMENTATION_H
57 std::vector< std::shared_ptr< const Surface> >& segmentationSurfacesX,
58 std::vector< std::shared_ptr< const Surface> >& segmentationSurfacesY,
60 int readoutDirection=1.,
61 double lorentzAngle=0.)
const override;
76 int readoutDirection=1,
77 double lorentzAngle=0.)
const override;
A generic symmetric BinUtility, for fully symmetric binning in terms of binning grid and binning type...
const DigitizationCell cell(const Amg::Vector3D &position) const override
Get the digitization cell fropm a 3D position - ignores the shift.
virtual ~RectangularSegmentation()
Virtual Destructor.
const Amg::Vector2D cellPosition(const DigitizationCell &cId) const override
calculate the cell Position from the Id
const SurfaceBounds & moduleBounds() const override
return the surface bounds by reference
size_t numCellsY() const
Return the simple binning parameters.
const DigitizationStep digitizationStep(const Amg::Vector3D &start, const Amg::Vector3D &end, double halfThickness, int readoutDirection=1, double lorentzAngle=0.) const override
Fill the associated digitsation cell from this start and end position, correct for lorentz effect if ...
void createSegmenationSurfaces(std::vector< std::shared_ptr< const Surface > > &boundarySurfaces, std::vector< std::shared_ptr< const Surface > > &segmentationSurfacesX, std::vector< std::shared_ptr< const Surface > > &segmentationSurfacesY, double halfThickness, int readoutDirection=1., double lorentzAngle=0.) const override
Create the segmentation surfaces in X.
const DigitizationCell cellT(const T &position) const
RectangularSegmentation & operator=(const RectangularSegmentation &)=delete
size_t numCellsX() const
Return the simple binning parameters.
RectangularSegmentation(std::shared_ptr< const Trk::RectangleBounds >, size_t numCellsX, size_t numCellsY=1)
Constructor for all same-size pixels or strips (in cas numCellsY is set to 1)
BinUtility * m_binUtility
std::shared_ptr< const RectangleBounds > m_activeBounds
RectangularSegmentation(const RectangularSegmentation &)=delete
TODO contructor from BinUtilities for more complex readouts.
Segementation class for generic pixel, strixels and strip segmentations on a rectangle shape.
Abstract base class for surface bounds to be specified.
Eigen::Matrix< double, 2, 1 > Vector2D
Eigen::Matrix< double, 3, 1 > Vector3D
Ensure that the ATLAS eigen extensions are properly loaded.
std::pair< size_t, size_t > DigitizationCell