39 #include <Riostream.h>
55 fNofMotifPositionIds(0)
68 fNofMotifPositionIds(0)
101 if ( y >= lowBorder && y <= highBorder)
104 lowBorder = highBorder;
123 return padRowSegment;
151 if ( ansIx < nofPadsX ) ansIx = nofPadsX;
152 if ( ansIy >i ) ansIy = i;
157 if ( nofPadsX > maxNofPadsX ) maxNofPadsX = nofPadsX;
159 if ( ansIx == ans0Ix && ansIy == ans0Iy )
return -1;
169 Int_t maxNofPads = 0;
175 if (nofPads > maxNofPads) maxNofPads = nofPads;
187 for (Int_t i=0; i<
fMotifs.GetEntriesFast(); i++)
188 if (
fMotifs[i] == (
const TObject*)motif)
return true;
256 Double_t halfSizeY = 0.;
271 if ( ! padRow )
return 0;
275 if (! padRowSegment )
return 0;
288 if ( ! padRow )
return 0;
292 if ( ! padRowSegment )
return 0;
311 Double_t& x, Double_t& y)
const
377 return fMotifs.GetEntriesFast();
Double_t GetPositionY() const
Return y position.
virtual ~AliMpVRowSegmentSpecial()
AliMpPadRow * FindPadRow(Double_t y) const
A pad row composed of the pad row segments.
static const Int_t fgkMaxNofMotifPositionIds
dimension of fMotifPositionIds
virtual AliMpRow * GetRow() const
Return the row.which this row segment belongs to.
Bool_t HasMotif(const AliMpVMotif *motif) const
void AddPadRow(AliMpPadRow *padRow)
virtual Double_t GetDimensionY() const
Return the y dimension of the row segment centre.
virtual Double_t RightBorderX() const =0
Int_t MaxNofPadsInRow() const
void SetOffsetX(Double_t offsetX)
AliMpVPadRowSegment * GetPadRowSegment(Int_t i) const
MpPair_t Pair(Int_t first, Int_t second)
Encode the pair of integers to another integer.
AliMpRow * fRow
the row containing this segment
TObjArray fMotifs
motifs vector
Double_t LowBorderY() const
virtual Int_t GetMotifPositionId(Int_t i) const
Return the i-th motif position Id of this row segment.
AliMpPadRow * GetPadRow(Int_t i) const
virtual Bool_t HasMotifPosition(Int_t motifPositionId) const
Has the motif position with the given Id ?
An interface for a row segment.
TObjArray fPadRows
pad rows vector
Double_t HalfSizeY() const
Int_t GetNofPadRowSegments() const
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.
TArrayI fMotifPositionIds
motifs position Ids vector
virtual Double_t GetDimensionX() const
Return the x dimension of the row segment centre.
Double_t fOffsetX
the x position of the border that touches a standard row segment
virtual AliMpVMotif * FindMotif(Double_t x, Double_t y) const
Find the motif in the given positions.
AliMpVRowSegmentSpecial()
AliMpVPadRowSegment * FindPadRowSegment(Int_t motifPositionId) const
virtual AliMpMotif * GetMotif() const
AliMpVPadRowSegment * FindPadRowSegment(Double_t x) const
A row composed of the row segments.
virtual AliMpVMotif * GetMotif(Int_t i) const
Return the i-th motif of this row segment.
Int_t GetNofPadRows() const
Abstract base class for a special row segment composed of the pad rows.
Abstract base class for a motif with its unique ID and the motif type.
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 . ...
virtual Double_t HalfSizeY() const
Return the half size in y of this row segment.
AliMpMotifPosition * FindMotifPosition(Int_t motifPositionID) const
Int_t GetNofPads() const
Return number of pads.
virtual Int_t GetNofMotifs() const
Return the number of motifs in this this row segment.
Double_t GetPositionX() const
Return x position.
virtual Double_t LeftBorderX() const =0
Return the x coordinate of the left border in the global coordinate system.
Int_t fNofMotifPositionIds
number of motif positions Ids
virtual Int_t GetMotifPositionId() const
AliMpMotifMap * GetMotifMap() const
Return the motif map associated with its sector.
MpPair_t FindRelativeLowIndicesOf(Int_t motifPositionId) const
The abstract base class for a pad row segment composed of the the identic pads.
virtual Int_t FindMotifPositionId(Double_t x, Double_t y) const
Find the motif position Id in the given positions.