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

Abstract base class for a special row segment composed of the pad rows. More...

#include <AliMpVRowSegmentSpecial.h>

Inheritance diagram for AliMpVRowSegmentSpecial:

Public Member Functions

 AliMpVRowSegmentSpecial (AliMpRow *row, Double_t offsetX)
 
 AliMpVRowSegmentSpecial ()
 
virtual ~AliMpVRowSegmentSpecial ()
 
void AddPadRow (AliMpPadRow *padRow)
 
void UpdateMotifVector ()
 
virtual void UpdatePadsOffset ()=0
 Update pads offset. More...
 
virtual Double_t LeftBorderX () const =0
 Return the x coordinate of the left border in the global coordinate system. More...
 
virtual Double_t RightBorderX () const =0
 Return the x coordinate of the right border in the global coordinate system. More...
 
virtual Double_t HalfSizeY () const
 Return the half size in y of this row segment. More...
 
virtual AliMpVMotifFindMotif (Double_t x, Double_t y) const
 Find the motif in the given positions. More...
 
virtual Int_t FindMotifPositionId (Double_t x, Double_t y) const
 Find the motif position Id in the given positions. More...
 
virtual Bool_t HasMotifPosition (Int_t motifPositionId) const
 Has the motif position with the given Id ? More...
 
virtual void MotifCenter (Int_t motifPositionId, Double_t &x, Double_t &y) const
 Fill the coordinates of the motif specified with the given motif position Id. More...
 
virtual Double_t GetPositionX () const =0
 Return the x position of the row segment centre. More...
 
virtual Double_t GetPositionY () const =0
 Return the y position of the row segment centre. More...
 
virtual Double_t GetDimensionX () const
 Return the x dimension of the row segment centre. More...
 
virtual Double_t GetDimensionY () const
 Return the y dimension of the row segment centre. More...
 
virtual void SetOffset (Double_t, Double_t)
 Calculate offset. More...
 
virtual void SetGlobalIndices (AliMpRow *rowBefore)=0
 Set global indices limits. More...
 
virtual Int_t SetIndicesToMotifPosition (Int_t i, MpPair_t indices)=0
 Set global indices to i-th motif position and returns next index in x. More...
 
virtual AliMpRowGetRow () const
 Return the row.which this row segment belongs to. More...
 
virtual Int_t GetNofMotifs () const
 Return the number of motifs in this this row segment. More...
 
virtual AliMpVMotifGetMotif (Int_t i) const
 Return the i-th motif of this row segment. More...
 
virtual Int_t GetMotifPositionId (Int_t i) const
 Return the i-th motif position Id of this row segment. More...
 
- Public Member Functions inherited from AliMpVRowSegment
 AliMpVRowSegment ()
 
virtual ~AliMpVRowSegment ()
 
virtual AliMpVPadIteratorCreateIterator () const
 Create iterator over this element. More...
 
- Public Member Functions inherited from AliMpVIndexed
 AliMpVIndexed ()
 
virtual ~AliMpVIndexed ()
 
virtual MpPair_t GlobalIndices (MpPair_t localIndices) const
 
virtual Int_t GlobalIx (Int_t localIx) const
 
virtual Int_t GlobalIy (Int_t localIy) const
 
void SetLowIndicesLimit (MpPair_t limit, Bool_t valid=true)
 
void SetLowIndicesLimit (Int_t ix, Int_t iy, Bool_t valid=true)
 
void SetHighIndicesLimit (MpPair_t limit, Bool_t valid=true)
 
void SetHighIndicesLimit (Int_t ix, Int_t iy, Bool_t valid=true)
 
Bool_t HasIndices (MpPair_t indices) const
 
Bool_t HasIndices (Int_t ix, Int_t iy) const
 
Bool_t HasValidIndices () const
 
MpPair_t GetLowIndicesLimit () const
 
Int_t GetLowLimitIx () const
 
Int_t GetLowLimitIy () const
 
Bool_t IsLowLimitValid () const
 
MpPair_t GetHighIndicesLimit () const
 
Int_t GetHighLimitIx () const
 
Int_t GetHighLimitIy () const
 
Bool_t IsHighLimitValid () const
 

Protected Member Functions

virtual void MotifCenterSlow (Int_t motifPositionId, Double_t &x, Double_t &y) const =0
 Return the coordinates of the motif specified with the given motif position Id
. More...
 
AliMpPadRowFindPadRow (Double_t y) const
 
AliMpVPadRowSegmentFindPadRowSegment (Int_t motifPositionId) const
 
MpPair_t FindRelativeLowIndicesOf (Int_t motifPositionId) const
 
Int_t MaxNofPadsInRow () const
 
Bool_t HasMotif (const AliMpVMotif *motif) const
 
Int_t GetNofPadRows () const
 
AliMpPadRowGetPadRow (Int_t i) const
 
Double_t GetOffsetX () const
 Return the x position of the border that touches a standard row segment. More...
 

Private Member Functions

 AliMpVRowSegmentSpecial (const AliMpVRowSegmentSpecial &right)
 Not implemented. More...
 
AliMpVRowSegmentSpecialoperator= (const AliMpVRowSegmentSpecial &right)
 Not implemented. More...
 

Private Attributes

AliMpRowfRow
 the row containing this segment More...
 
Double_t fOffsetX
 the x position of the border that touches a standard row segment More...
 
TObjArray fPadRows
 pad rows vector More...
 
TObjArray fMotifs
 motifs vector More...
 
TArrayI fMotifPositionIds
 motifs position Ids vector More...
 
Int_t fNofMotifPositionIds
 number of motif positions Ids More...
 

Static Private Attributes

static const Int_t fgkMaxNofMotifPositionIds = 20
 dimension of fMotifPositionIds More...
 

Detailed Description

Abstract base class for a special row segment composed of the pad rows.

Author
David Guez, Ivana Hrivnacova; IPN Orsay

Definition at line 28 of file AliMpVRowSegmentSpecial.h.

Constructor & Destructor Documentation

AliMpVRowSegmentSpecial::AliMpVRowSegmentSpecial ( AliMpRow row,
Double_t  offsetX 
)

Standard constructor

Definition at line 48 of file AliMpVRowSegmentSpecial.cxx.

AliMpVRowSegmentSpecial::AliMpVRowSegmentSpecial ( )

Default constructor

Definition at line 61 of file AliMpVRowSegmentSpecial.cxx.

AliMpVRowSegmentSpecial::~AliMpVRowSegmentSpecial ( )
virtual

Destructor

Definition at line 76 of file AliMpVRowSegmentSpecial.cxx.

AliMpVRowSegmentSpecial::AliMpVRowSegmentSpecial ( const AliMpVRowSegmentSpecial right)
private

Not implemented.

Member Function Documentation

void AliMpVRowSegmentSpecial::AddPadRow ( AliMpPadRow padRow)

Add a pad row.

Definition at line 214 of file AliMpVRowSegmentSpecial.cxx.

Referenced by AliMpSectorReader::ReadRowSegmentSpecialData().

AliMpVMotif * AliMpVRowSegmentSpecial::FindMotif ( Double_t  x,
Double_t  y 
) const
virtual

Find the motif in the given positions.

Return the motif of this row;

Implements AliMpVRowSegment.

Definition at line 265 of file AliMpVRowSegmentSpecial.cxx.

Int_t AliMpVRowSegmentSpecial::FindMotifPositionId ( Double_t  x,
Double_t  y 
) const
virtual

Find the motif position Id in the given positions.

Return the motif position identified for the given geometric position.

Implements AliMpVRowSegment.

Definition at line 281 of file AliMpVRowSegmentSpecial.cxx.

AliMpPadRow * AliMpVRowSegmentSpecial::FindPadRow ( Double_t  y) const
protected

Find the pad row in the given y coordinate.

Definition at line 89 of file AliMpVRowSegmentSpecial.cxx.

Referenced by FindMotif(), and FindMotifPositionId().

AliMpVPadRowSegment * AliMpVRowSegmentSpecial::FindPadRowSegment ( Int_t  motifPositionId) const
protected
MpPair_t AliMpVRowSegmentSpecial::FindRelativeLowIndicesOf ( Int_t  motifPositionId) const
protected

Return the lowest pad indices where the motif of the given position ID exist in this segment.

Definition at line 131 of file AliMpVRowSegmentSpecial.cxx.

Referenced by AliMpRowSegmentLSpecial::SetIndicesToMotifPosition().

Double_t AliMpVRowSegmentSpecial::GetDimensionX ( ) const
virtual

Return the x dimension of the row segment centre.

Return the halflengths in x, y of the row segment rectangular envelope.

Implements AliMpVRowSegment.

Definition at line 330 of file AliMpVRowSegmentSpecial.cxx.

Referenced by AliMpRowSegmentLSpecial::GetPositionX(), and AliMpRowSegmentRSpecial::GetPositionX().

Double_t AliMpVRowSegmentSpecial::GetDimensionY ( ) const
virtual

Return the y dimension of the row segment centre.

Return the halflengths in x, y of the row segment rectangular envelope.

Implements AliMpVRowSegment.

Definition at line 349 of file AliMpVRowSegmentSpecial.cxx.

AliMpVMotif * AliMpVRowSegmentSpecial::GetMotif ( Int_t  i) const
virtual

Return the i-th motif of this row segment.

Return the i-th motif present in this row segment.

Implements AliMpVRowSegment.

Definition at line 381 of file AliMpVRowSegmentSpecial.cxx.

Referenced by AliMpSectorReader::ReadRowSpecialData().

Int_t AliMpVRowSegmentSpecial::GetMotifPositionId ( Int_t  i) const
virtual

Return the i-th motif position Id of this row segment.

Return the i-th motif position Id present in this row segment.

Implements AliMpVRowSegment.

Definition at line 389 of file AliMpVRowSegmentSpecial.cxx.

Referenced by AliMpRowSegmentRSpecial::SetGlobalIndices(), AliMpRowSegmentLSpecial::SetIndicesToMotifPosition(), and AliMpRowSegmentRSpecial::SetIndicesToMotifPosition().

Int_t AliMpVRowSegmentSpecial::GetNofMotifs ( ) const
virtual

Return the number of motifs in this this row segment.

Return the number of different motifs present in this row segment.

Implements AliMpVRowSegment.

Definition at line 373 of file AliMpVRowSegmentSpecial.cxx.

Referenced by AliMpSectorReader::ReadRowSpecialData(), and AliMpRowSegmentLSpecial::SetIndicesToMotifPosition().

Double_t AliMpVRowSegmentSpecial::GetOffsetX ( ) const
inlineprotected

Return the x position of the border that touches a standard row segment.

Definition at line 131 of file AliMpVRowSegmentSpecial.h.

Referenced by AliMpRowSegmentLSpecial::GetPositionX(), AliMpRowSegmentRSpecial::GetPositionX(), AliMpRowSegmentRSpecial::LeftBorderX(), and AliMpRowSegmentLSpecial::RightBorderX().

virtual Double_t AliMpVRowSegmentSpecial::GetPositionX ( ) const
pure virtual

Return the x position of the row segment centre.

Implements AliMpVRowSegment.

Implemented in AliMpRowSegmentRSpecial, and AliMpRowSegmentLSpecial.

virtual Double_t AliMpVRowSegmentSpecial::GetPositionY ( ) const
pure virtual

Return the y position of the row segment centre.

Implements AliMpVRowSegment.

Implemented in AliMpRowSegmentRSpecial, and AliMpRowSegmentLSpecial.

Double_t AliMpVRowSegmentSpecial::HalfSizeY ( ) const
virtual

Return the half size in y of this row segment.

Return the size in y of this row segment.

Implements AliMpVRowSegment.

Definition at line 252 of file AliMpVRowSegmentSpecial.cxx.

Bool_t AliMpVRowSegmentSpecial::HasMotif ( const AliMpVMotif motif) const
protected

Return true if the specified motif is already in fMotifs vector, returns false otherwise.

Definition at line 182 of file AliMpVRowSegmentSpecial.cxx.

Referenced by UpdateMotifVector().

Bool_t AliMpVRowSegmentSpecial::HasMotifPosition ( Int_t  motifPositionId) const
virtual

Has the motif position with the given Id ?

Return true if the motif specified with the given position identifier is in this segment.

Implements AliMpVRowSegment.

Definition at line 298 of file AliMpVRowSegmentSpecial.cxx.

virtual Double_t AliMpVRowSegmentSpecial::LeftBorderX ( ) const
pure virtual

Return the x coordinate of the left border in the global coordinate system.

Implements AliMpVRowSegment.

Implemented in AliMpRowSegmentRSpecial, and AliMpRowSegmentLSpecial.

Referenced by GetDimensionX().

Int_t AliMpVRowSegmentSpecial::MaxNofPadsInRow ( ) const
protected
void AliMpVRowSegmentSpecial::MotifCenter ( Int_t  motifPositionId,
Double_t &  x,
Double_t &  y 
) const
virtual

Fill the coordinates of the motif specified with the given motif position Id.

Return the coordinates of the motif specified with the given position identifier.

Implements AliMpVRowSegment.

Definition at line 310 of file AliMpVRowSegmentSpecial.cxx.

virtual void AliMpVRowSegmentSpecial::MotifCenterSlow ( Int_t  motifPositionId,
Double_t &  x,
Double_t &  y 
) const
protectedpure virtual

Return the coordinates of the motif specified with the given motif position Id
.

Implemented in AliMpRowSegmentRSpecial, and AliMpRowSegmentLSpecial.

Referenced by MotifCenter().

AliMpVRowSegmentSpecial& AliMpVRowSegmentSpecial::operator= ( const AliMpVRowSegmentSpecial right)
private

Not implemented.

virtual Double_t AliMpVRowSegmentSpecial::RightBorderX ( ) const
pure virtual

Return the x coordinate of the right border in the global coordinate system.

Implements AliMpVRowSegment.

Implemented in AliMpRowSegmentRSpecial, and AliMpRowSegmentLSpecial.

virtual void AliMpVRowSegmentSpecial::SetGlobalIndices ( AliMpRow rowBefore)
pure virtual

Set global indices limits.

Implements AliMpVRowSegment.

Implemented in AliMpRowSegmentRSpecial, and AliMpRowSegmentLSpecial.

virtual Int_t AliMpVRowSegmentSpecial::SetIndicesToMotifPosition ( Int_t  i,
MpPair_t  indices 
)
pure virtual

Set global indices to i-th motif position and returns next index in x.

Implements AliMpVRowSegment.

Implemented in AliMpRowSegmentRSpecial, and AliMpRowSegmentLSpecial.

virtual void AliMpVRowSegmentSpecial::SetOffset ( Double_t  ,
Double_t   
)
inlinevirtual

Calculate offset.

Implements AliMpVRowSegment.

Definition at line 77 of file AliMpVRowSegmentSpecial.h.

void AliMpVRowSegmentSpecial::UpdateMotifVector ( )

Add motifs associated with the pad row segments in the specified pad row in the fMotifs vector.

Definition at line 225 of file AliMpVRowSegmentSpecial.cxx.

Referenced by AliMpSectorReader::ReadRowSpecialData().

virtual void AliMpVRowSegmentSpecial::UpdatePadsOffset ( )
pure virtual

Update pads offset.

Implemented in AliMpRowSegmentRSpecial, and AliMpRowSegmentLSpecial.

Referenced by AliMpSectorReader::ReadRowSpecialData().

Member Data Documentation

const Int_t AliMpVRowSegmentSpecial::fgkMaxNofMotifPositionIds = 20
staticprivate

dimension of fMotifPositionIds

Definition at line 114 of file AliMpVRowSegmentSpecial.h.

Referenced by AliMpVRowSegmentSpecial(), and UpdateMotifVector().

TArrayI AliMpVRowSegmentSpecial::fMotifPositionIds
private

motifs position Ids vector

Definition at line 122 of file AliMpVRowSegmentSpecial.h.

Referenced by AliMpVRowSegmentSpecial(), GetMotifPositionId(), and UpdateMotifVector().

TObjArray AliMpVRowSegmentSpecial::fMotifs
private

motifs vector

Definition at line 121 of file AliMpVRowSegmentSpecial.h.

Referenced by GetMotif(), GetNofMotifs(), HasMotif(), and UpdateMotifVector().

Int_t AliMpVRowSegmentSpecial::fNofMotifPositionIds
private

number of motif positions Ids

Definition at line 123 of file AliMpVRowSegmentSpecial.h.

Referenced by UpdateMotifVector().

Double_t AliMpVRowSegmentSpecial::fOffsetX
private

the x position of the border that touches a standard row segment

Definition at line 118 of file AliMpVRowSegmentSpecial.h.

Referenced by AddPadRow(), and GetOffsetX().

TObjArray AliMpVRowSegmentSpecial::fPadRows
private

pad rows vector

Definition at line 120 of file AliMpVRowSegmentSpecial.h.

Referenced by AddPadRow(), GetNofPadRows(), GetPadRow(), and ~AliMpVRowSegmentSpecial().

AliMpRow* AliMpVRowSegmentSpecial::fRow
private

the row containing this segment

Definition at line 117 of file AliMpVRowSegmentSpecial.h.

Referenced by FindPadRow(), and GetRow().


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