GEAR  1.9.0
 All Classes Namespaces Functions Variables Typedefs Enumerations Friends Pages
Public Member Functions | Static Public Attributes | List of all members
gear::PadRowLayout2D Class Referenceabstract

Abstract description of a planar subdetector with pads (cells) that are positioned in rows (circular or rectangular). More...

#include <PadRowLayout2D.h>

Inheritance diagram for gear::PadRowLayout2D:
gear::FixedDiskLayoutBase gear::RectangularPadRowLayout gear::TPCModule gear::FixedPadAngleDiskLayout gear::FixedPadSizeDiskLayout gear::VersatileDiskRowLayout gear::TPCModuleImpl

Public Member Functions

virtual ~PadRowLayout2D ()
 Destructor.
 
virtual PadRowLayout2Dclone () const =0
 Returns a copy (clone) of this class. More...
 
virtual int getPadLayoutType () const =0
 
virtual int getPadLayoutImplType () const =0
 The type of the row layout implementation: PadRowLayout2D.RECTANGULARPADROWLAYOUT, PadRowLayout2D.FIXEDPADSIZEDISKLAYOUT, PadRowLayout2D.FIXEDPADANGLEDISKLAYOUT or PadRowLayout2D.TPCMODULE.
 
virtual int getCoordinateType () const =0
 The type of the row layouts coordinate system: PadRowLayout2D.CARTESIAN or PadRowLayout2D.POLAR.
 
virtual int getPadShape () const =0
 The shape of the pads, one of PadRowLayout2D.RECTANGLE (Keystone), PadRowLayout2D.DIAMOND, PadRowLayout2D.HEXAGON, PadRowLayout2D.CHEVRON.
 
virtual int getNPads () const =0
 The total number of pads.
 
virtual int getNRows () const =0
 The number of rows.
 
virtual double getRowHeight (int rowNumber) const =0
 The row height in mm.
 
virtual double getPadWidth (int padIndex) const =0
 The width of the pad at padIndex in mm (CARTESIAN) or radians (POLAR). More...
 
virtual double getPadPitch (int padIndex) const =0
 The pitch (i. More...
 
virtual Vector2D getPadCenter (int padIndex) const =0
 The center of the pad in 2d coordinates, (x,y) or (r,phi).
 
virtual double getPadHeight (int padIndex) const =0
 The height of the pad in mm.
 
virtual const std::vector< int > & getPadsInRow (int rowNumber) const =0
 Indices of all pads in row rowNumber (row indices start from 0 at the bottom (CARTESIAN) or at the center (POLAR)).
 
virtual const std::vector
< double > & 
getPlaneExtent () const =0
 Extent of the sensitive plane - [xmin,xmax,ymin,ymax] CARTESIAN or [rmin,rmax,phimin,phimax] POLAR.
 
virtual int getRowNumber (int padIndex) const =0
 The number of the row that contains the pad at padIndex - numbering starts at r/y==0.
 
virtual int getPadNumber (int padIndex) const =0
 The pad number (column) within the row - numbering starts at phi/x == 0.
 
virtual int getPadIndex (int rowNum, int padNum) const =0
 Create a padIndex for the given row and pad ( column ) number.
 
virtual int getNearestPad (double c0, double c1) const =0
 The index of the pad nearest to the given point in 2d coordinates (x,y,) or (r,phi).
 
virtual int getRightNeighbour (int padIndex) const =0
 The index of the right neighbour pad.
 
virtual int getLeftNeighbour (int padIndex) const =0
 The index of the left neighbour pad.
 
virtual bool isInsidePad (double c0, double c1, int padIndex) const =0
 True if coordinate (c0,c1) is within the given pad.
 
virtual bool isInsidePad (double c0, double c1) const =0
 True if coordinate (c0,c1) is within any pad.
 
virtual double getDistanceToPad (double c0, double c1, int padIndex) const =0
 Returns the closest distance to the edge (outer border) of the pad. More...
 

Static Public Attributes

static const int RECTANGULARPADROWLAYOUT = 1
 
static const int FIXEDPADSIZEDISKLAYOUT = 2
 
static const int FIXEDPADANGLEDISKLAYOUT = 3
 
static const int VERSATILEDISKROWLAYOUT = 4
 
static const int TPCMODULE = 100
 
static const int CARTESIAN = 1
 
static const int POLAR = 2
 
static const int RECTANGLE = 1
 
static const int DIAMOND = 2
 
static const int HEXAGON = 3
 
static const int CHEVRON = 4
 

Detailed Description

Abstract description of a planar subdetector with pads (cells) that are positioned in rows (circular or rectangular).

This can be used, e.g. to describe the layout of the GEMs in a TPC or the FTD disks. The pads are indexed by row and column numbers in one 32-bit word.

Author
F. Gaede, DESY
Version
$Id$

Definition at line 20 of file PadRowLayout2D.h.

Member Function Documentation

virtual PadRowLayout2D* gear::PadRowLayout2D::clone ( ) const
pure virtual

Returns a copy (clone) of this class.

As PadRowLayout2D is an abstract interface with several implementation, this is used get a copy of the actual implementation without having to know what the actual implementation is.

Implemented in gear::VersatileDiskRowLayout, gear::TPCModuleImpl, gear::FixedPadSizeDiskLayout, gear::RectangularPadRowLayout, and gear::FixedPadAngleDiskLayout.

Referenced by gear::TPCModuleImpl::copy_and_assign().

virtual double gear::PadRowLayout2D::getDistanceToPad ( double  c0,
double  c1,
int  padIndex 
) const
pure virtual

Returns the closest distance to the edge (outer border) of the pad.

For coordinates inside the pad it returns 0. ATTENTION: This gives the distance to the effective pad, which is the relevant one, and not the distance to the metal. I. e. it uses the pad pitch and the row height instead of pad width and pad height.

Implemented in gear::TPCModuleImpl, gear::RectangularPadRowLayout, gear::TPCModule, and gear::FixedDiskLayoutBase.

Referenced by gear::TPCModuleImpl::getDistanceToPad().

virtual int gear::PadRowLayout2D::getPadLayoutType ( ) const
pure virtual
Deprecated:
{ As there now is more than one implementation for each coordinate type this is not sufficient to distinguish the implementations any more. Use getPadLayoutImplType() to get the implementation type. Use getCoordinateType() to get the type of the coordinate system.

For backward compatibility this function returns PadRowLayout2D.CARTESIAN or PadRowLayout2D.POLAR, i. e. getCoordinateType().}

Implemented in gear::VersatileDiskRowLayout, gear::TPCModuleImpl, gear::RectangularPadRowLayout, gear::TPCModule, and gear::FixedDiskLayoutBase.

virtual double gear::PadRowLayout2D::getPadPitch ( int  padIndex) const
pure virtual

The pitch (i.

e. pad width plus gap) of the pad at padIndex in mm (CARTESIAN) or radians (POLAR).

Implemented in gear::VersatileDiskRowLayout, gear::RectangularPadRowLayout, gear::TPCModuleImpl, gear::FixedPadSizeDiskLayout, and gear::FixedPadAngleDiskLayout.

Referenced by gear::FixedDiskLayoutBase::getDistanceToPad(), and gear::TPCModuleImpl::getPadPitch().

virtual double gear::PadRowLayout2D::getPadWidth ( int  padIndex) const
pure virtual

The width of the pad at padIndex in mm (CARTESIAN) or radians (POLAR).

This is only the metal of the pad. Use getPadPitch() to get the effective pitch.

Implemented in gear::VersatileDiskRowLayout, gear::RectangularPadRowLayout, gear::TPCModuleImpl, gear::FixedPadSizeDiskLayout, gear::FixedPadAngleDiskLayout, and gear::TPCModule.

Referenced by gear::TPCModuleImpl::getPadWidth().


The documentation for this class was generated from the following file: