11#ifndef READOUTGEOMETRYBASE_PIXELDIODEMAP_H
12#define READOUTGEOMETRYBASE_PIXELDIODEMAP_H
49 PixelDiodeMap(std::shared_ptr<const PixelDiodeMatrix> diodeMatrix);
77 std::vector<SiCellId> &neighbours)
const;
129 const double x2,
const double dx2) ;
133 std::vector<SiCellId> &neighbours)
const;
207 return m_matrix->createDebugStringRepr();
std::string debugStringRepr() const
Debug representation.
PixelDiodeMap(const PixelDiodeMap &map)
Copy constructor:
double leftColumn() const
static double intersectionLength1D(const double x1, const double dx1, const double x2, const double dx2)
Compute the intersection length along one direction: return 0 if no intersection x1,...
PixelDiodeParametersProxy parametersProxy(const SiCellId &cellId) const
Search diode for the given cell and return proxy to access its parameters.
PixelDiodeMap(std::shared_ptr< const PixelDiodeMatrix > diodeMatrix)
Constructor from Diode matrix description.
bool m_generalLayout
Flag set to allow for dealing wth more general layouts.
double rightColumn() const
SiCellId cellIdInRange(const SiCellId &cellId) const
Check if cellId is within range.
PixelDiodeMap & operator=(const PixelDiodeMap &map)
Assignment operator.
~PixelDiodeMap()
Destructor.
double intersectionLength(const SiCellId &diode1, const SiCellId &diode2) const
Compute the intersection length of two diodes: return: the intersection length when the two diodes ar...
void setGeneralLayout()
Set general layout flag.
double intersectionLengthGeneral(const SiCellId &diode1, const SiCellId &diode2) const
Slower method.
std::shared_ptr< const PixelDiodeMatrix > m_matrix
diode matrix
void neighboursOfCell(const SiCellId &cellId, std::vector< SiCellId > &neighbours) const
Get the neighbouring PixelDiodes of a given PixelDiode: Cell for which the neighbours must be found L...
SiCellId cellIdOfPosition(const Amg::Vector2D &localPosition) const
cell id for a given local position
SiDiodesParameters parameters(const SiCellId &diodeId) const
Get diodes parameters (position and size):
void neighboursOfCellGeneral(const SiCellId &cellId, std::vector< SiCellId > &neighbours) const
Slower method.
Class used to describe the segmentation of the pixel and allow for conversion between cell id and pos...
Helper class to cache a pixel diode position, and provide access to diode parameters.
const Amg::Vector2D & position() const
return the center position of the diode if the proxy is valid.
PixelDiodeMatrixPtr & cell_ptr()
provide access to internal storage for initializing the proxy.
Identifier for the strip or pixel cell.
int phiIndex() const
Get phi index. Equivalent to strip().
bool isValid() const
Test if its in a valid state.
int etaIndex() const
Get eta index.
Class to handle the position of the centre and the width of a diode or a cluster of diodes Version 1....
Eigen::Matrix< double, 2, 1 > Vector2D