1 #ifndef FixedPadAngleDiskLayout_h
2 #define FixedPadAngleDiskLayout_h 1
5 #include "gearimpl/FixedDiskLayoutBase.h"
43 std::vector<double> _extent {};
44 mutable std::vector< std::vector<int>* > _padIndices {};
67 double phiMin,
double phiMax,
int nPadsInRow ) ;
149 virtual const std::vector<int>&
getPadsInRow(
int rowNumber)
const ;
170 virtual int getPadIndex(
int rowNum,
int padNum)
const;
186 virtual bool isInsidePad(
double c0,
double c1,
int padIndex)
const;
190 virtual bool isInsidePad(
double c0,
double c1)
const;
201 #endif // ifndef FixedPadAngleDiskLayout_h
virtual int getNearestPad(double c0, double c1) const
The index of the pad nearest to the given point in 2d coordinates (r, phi).
virtual Vector2D getPadCenter(int padIndex) const
The center of the pad in 2d coordinates (r,phi).
virtual ~FixedPadAngleDiskLayout()
Destructor.
Abstract description of a planar subdetector with pads (cells) that are positioned in rows (circular ...
virtual int getRightNeighbour(int padIndex) const
The index of the right neighbour pad.
virtual double getPadGap() const
The gap width in mm that was given in the C'tor.
Base class for circular PadRowLayout2D implementations.
Implementation of PadRowLayout2D for a disk with fixed angled keystone pads.
virtual const std::vector< double > & getPlaneExtent() const
Extent of the sensitive plane [rmin,rmax,phimin,phimax].
FixedPadAngleDiskLayout & operator=(const FixedPadAngleDiskLayout &)
The assignment operator.
virtual int getLeftNeighbour(int padIndex) const
The index of the left neighbour pad.
virtual bool isInsidePad(double c0, double c1, int padIndex) const
True if coordinate (c0,c1) is within the given pad.
virtual double getPadHeight(int) const
The height of the pad in mm.
virtual int getPadLayoutImplType() const
The type of the row layout implementation: PadRowLayout2D.FIXEDPADANGLEDISKLAYOUT.
virtual int getNPads() const
The total number of pads in the TPC.
void copy_and_assign(const FixedPadAngleDiskLayout &)
Function to copy all internal variables, incl. the objects pointed to and owned by the FixedPadAngleD...
FixedPadAngleDiskLayout(double rMin, double rMax, int nRow, double phiMin, double phiMax, int nPadsInRow)
Construct the FixedPadAngleDiskLayout from the given parameters rMin, rMax, nRow, phiMin...
virtual int getPadIndex(int rowNum, int padNum) const
Create a padIndex for the given row and pad ( column ) number.
virtual double getFixedPadAngle() const
The fixed width of the pads in mm.
virtual double getRowHeight(int) const
The row height in mm.
PadRowLayout2D * clone() const
Returns a copy (clone) of this class.
virtual int getNRows() const
The number of rows.
virtual const std::vector< int > & getPadsInRow(int rowNumber) const
Indices of all pads in row rowNumber (row indices start at rMin).
virtual double getPadPitch(int) const
The pitch of the pad in radians! (In this implementation there is no gap, identical to the pad width)...
void cleanup()
Function to delete all the objects pointed to and owned by the FixedPadAngleDiskLayout.
virtual int getNPadsInRow() const
Get the (fixed) number of pads per row.
virtual double getPadWidth(int) const
The width of the pad in radians! (In this implementation there is no gap, identical to the pad pitch)...