AliRoot Core  da88d91 (da88d91)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
AliMpVSegmentation Class Referenceabstract

The abstract base class for the segmentation. More...

#include <AliMpVSegmentation.h>

Inheritance diagram for AliMpVSegmentation:

Public Member Functions

 AliMpVSegmentation ()
 
virtual ~AliMpVSegmentation ()
 
virtual AliMpVPadIteratorCreateIterator (const AliMpArea &area) const =0
 Create iterator over pads in the given area. More...
 
virtual AliMpVPadIteratorCreateIterator () const =0
 Create a pad iterator over the whole area. More...
 
virtual Int_t GetNeighbours (const AliMpPad &pad, TObjArray &neighbours, Bool_t includeSelf=kFALSE, Bool_t includeVoid=kFALSE) const =0
 
virtual AliMpPad PadByLocation (Int_t manuId, Int_t manuChannel, Bool_t warning=true) const =0
 Find pad by location. More...
 
virtual AliMpPad PadByIndices (Int_t ix, Int_t iy, Bool_t warning=true) const =0
 Find pad by indices. More...
 
virtual AliMpPad PadByPosition (Double_t x, Double_t y, Bool_t warning=true) const =0
 Find pad by position. More...
 
virtual Bool_t HasPadByIndices (Int_t ix, Int_t iy) const
 
virtual Bool_t HasPadByLocation (Int_t manuId, Int_t manuChannel) const
 Return true if the pad with given location exists. More...
 
virtual Int_t MaxPadIndexX () const =0
 Return maximum pad index in X direction. More...
 
virtual Int_t MaxPadIndexY () const =0
 Return maximum pad index in Y direction. More...
 
virtual Int_t NofPads () const =0
 Return the number of pads in the detection element. More...
 
virtual void GetAllElectronicCardIDs (TArrayI &ecn) const =0
 Fill the given array with the electronic card IDs. More...
 
virtual Int_t GetNofElectronicCards () const =0
 Get the number of electronic card IDs. More...
 
virtual Bool_t HasMotifPosition (Int_t manuId) const =0
 Whether or not we have a given manu. More...
 
virtual AliMpMotifPositionMotifPosition (Int_t manuId) const =0
 Return the position of a given manu (aka motifPosition) More...
 
virtual AliMp::PlaneType PlaneType () const =0
 Return the plane type. More...
 
virtual AliMp::StationType StationType () const =0
 Return the station type. More...
 
virtual Double_t GetDimensionX () const =0
 Return the x half-sizes of the detection element. More...
 
virtual Double_t GetDimensionY () const =0
 Return the y half-sizes of the detection element. More...
 
virtual Double_t GetPositionX () const =0
 Return the x position of the origin of the detection element. More...
 
virtual Double_t GetPositionY () const =0
 Return the y position of the origin of the detection element. More...
 

Detailed Description

The abstract base class for the segmentation.

Provides methods related to pads: conversion between pad indices, pad location, pad position; finding pad neighbour.

Author
David Guez, Ivana Hrivnacova, IPN Orsay; Laurent Aphecetche, SUBATECH

Definition at line 36 of file AliMpVSegmentation.h.

Constructor & Destructor Documentation

AliMpVSegmentation::AliMpVSegmentation ( )

Default constructor

Definition at line 47 of file AliMpVSegmentation.cxx.

AliMpVSegmentation::~AliMpVSegmentation ( )
virtual

Destructor

Definition at line 54 of file AliMpVSegmentation.cxx.

Member Function Documentation

virtual AliMpVPadIterator* AliMpVSegmentation::CreateIterator ( const AliMpArea area) const
pure virtual
virtual AliMpVPadIterator* AliMpVSegmentation::CreateIterator ( ) const
pure virtual

Create a pad iterator over the whole area.

Implemented in AliMpSlatSegmentation, AliMpFastSegmentation, AliMpTriggerSegmentation, and AliMpSectorSegmentation.

virtual void AliMpVSegmentation::GetAllElectronicCardIDs ( TArrayI &  ecn) const
pure virtual
virtual Double_t AliMpVSegmentation::GetDimensionX ( ) const
pure virtual
virtual Double_t AliMpVSegmentation::GetDimensionY ( ) const
pure virtual
Int_t AliMpVSegmentation::GetNeighbours ( const AliMpPad pad,
TObjArray neighbours,
Bool_t  includeSelf = kFALSE,
Bool_t  includeVoid = kFALSE 
) const
pure virtual

Fill the array with the pads that are neighbours of pad. Returns the number of neighbours.

Returns the list of neighbours of pad testPositions are the positions (L,T,R,B) relative to pad's center (O) were we'll try to get a neighbouring pad, by getting a little bit outside the pad itself. The pad density can only decrease when going from left to right except for round slates where it is the opposite. The pad density can only decrease when going from bottom to top but to be symmetric we also consider the opposite. The order in which we actually test the positions has some importance, i.e. when using this information to compute status map later on. Here's the sequence :

4- 5- 6-7
|       |
3       8
|   0   |
2       9
|       |
1-12-11-10

Implemented in AliMpSlatSegmentation, AliMpFastSegmentation, AliMpSectorSegmentation, and AliMpTriggerSegmentation.

Definition at line 61 of file AliMpVSegmentation.cxx.

Referenced by AliMUONPreClusterFinderV2::AddPad(), AliMpSectorSegmentation::GetNeighbours(), AliMpFastSegmentation::GetNeighbours(), and AliMpSlatSegmentation::GetNeighbours().

virtual Int_t AliMpVSegmentation::GetNofElectronicCards ( ) const
pure virtual
virtual Double_t AliMpVSegmentation::GetPositionX ( ) const
pure virtual
virtual Double_t AliMpVSegmentation::GetPositionY ( ) const
pure virtual
Bool_t AliMpVSegmentation::HasMotifPosition ( Int_t  manuId) const
pure virtual

Whether or not we have a given manu.

Default implementation to know if we hold a given manu

Implemented in AliMpSlatSegmentation, AliMpTriggerSegmentation, AliMpFastSegmentation, and AliMpSectorSegmentation.

Definition at line 167 of file AliMpVSegmentation.cxx.

Referenced by AliMpSectorSegmentation::HasMotifPosition(), AliMpTriggerSegmentation::HasMotifPosition(), and AliMpSlatSegmentation::HasMotifPosition().

Bool_t AliMpVSegmentation::HasPadByIndices ( Int_t  ix,
Int_t  iy 
) const
virtual

Return true if the pad with given indices exists. Compared with the PadByIndices method, this one can generally be implemented faster, as one does not have to create an AliMpPad object...

Default implementation. Must be overwritten if can be made more efficient in the child class

Reimplemented in AliMpSlatSegmentation, AliMpSectorSegmentation, and AliMpFastSegmentation.

Definition at line 147 of file AliMpVSegmentation.cxx.

Referenced by AliMpTriggerSegmentation::AliMpTriggerSegmentation(), and AliMpFastSegmentation::HasPadByIndices().

Bool_t AliMpVSegmentation::HasPadByLocation ( Int_t  manuId,
Int_t  manuChannel 
) const
virtual

Return true if the pad with given location exists.

Default implementation. Must be overwritten if can be made more efficient in the child class

Reimplemented in AliMpSlatSegmentation, AliMpSectorSegmentation, and AliMpFastSegmentation.

Definition at line 157 of file AliMpVSegmentation.cxx.

Referenced by AliMpFastSegmentation::AliMpFastSegmentation(), AliMUONManuPadPainter::ComputeDataRange(), and AliMpFastSegmentation::HasPadByLocation().

virtual AliMpMotifPosition* AliMpVSegmentation::MotifPosition ( Int_t  manuId) const
pure virtual
virtual Int_t AliMpVSegmentation::NofPads ( ) const
pure virtual

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