50 #include <Riostream.h>
71 AliDebugStream(1) <<
"this = " <<
this << endl;
89 AliDebugStream(1) <<
"this = " <<
this << endl;
97 AliDebugStream(1) <<
"this = " <<
this << endl;
198 Double_t posx = startx;
226 Double_t posy = starty;
259 Fatal(
"CreateIterator",
"Incomplete switch on Sector direction");
276 Bool_t includeVoid)
const
285 Bool_t warning)
const
295 if (warning) Warning(
"PadByLocation",
"The pad motif position ID doesn't exists");
302 if ( localIndices < 0 ) {
303 if (warning) Warning(
"PadByLocation",
"The pad number doesn't exists");
332 Warning(
"PadByIndices",
"Pad indices not contained in any motif!");
344 if (warning) Warning(
"PadByIndices",
"No connection with the given indices!");
358 ix, iy, posx, posy, dx, dy);
364 Bool_t warning)
const
377 if (warning) Warning(
"PadByPosition",
"Position outside limits");
386 if ( localIndices < 0 ) {
387 if (warning) Warning(
"PadByPosition",
"Position outside motif limits");
395 if (warning) Warning(
"PadByPosition",
"Position outside motif limits");
416 Double_t distance)
const
431 Fatal(
"PadByDirection",
"Incomplete switch on Sector direction");
605 cout <<
"Pad (" << ix <<
',' << iy <<
") lead to inconsistency" << endl;
606 cout <<
"in indice->location->position->indice way..." << endl;
607 cout <<
"starting from indices " << pad1 << endl
608 <<
"--> location " << pad2 << endl
610 <<
'(' << pad3.
GetPositionX() <<
',' << pad3.GetPositionY() <<
')'
621 cout <<
"Pad (" << ix <<
',' << iy <<
") lead to inconsistency" << endl;
622 cout <<
"in indice->position->location->indice way..." << endl;
623 cout <<
"starting from indices " << pad1 << endl
626 <<
"--> location " << pad3bis
Double_t GetPositionY() const
Return y position.
AliMpSectorSegmentation()
AliMpMotifPosition * FindMotifPosition(Int_t ix, Int_t iy) const
virtual AliMpVPadIterator * CreateIterator() const
Create a pad iterator over the whole area.
Int_t GetLowLimitIx() const
virtual Bool_t HasMotifPosition(Int_t manuId) const =0
Whether or not we have a given manu.
Double_t GetDimensionX() const
const AliMpSector * GetSector() const
Return the sector.
Bool_t CircleTest(Int_t ix, Int_t iy) const
Bool_t HasIndices(MpPair_t indices) const
virtual AliMpPad PadByYDirection(Double_t startx, Double_t starty, Double_t maxY) const
virtual AliMpPad PadByDirection(Double_t startx, Double_t starty, Double_t distance) const
virtual AliMpPad PadByIndices(Int_t ix, Int_t iy, Bool_t warning=kTRUE) const
Find pad by indices.
virtual void Print(Option_t *opt="") const
virtual AliMpPad PadByLocation(Int_t manuId, Int_t manuChannel, Bool_t warning=kTRUE) const
Find pad by location.
MpPair_t Pair(Int_t first, Int_t second)
Encode the pair of integers to another integer.
Int_t GetLowLimitIy() const
An iterator over the pads inside a given area in a sector in vertical direction.
Int_t GetHighLimitIy() const
Double_t GetMaxPadDimensionY() const
Return minimum y pad dimensions.
A rectangle area positioned in plane..
virtual AliMpMotifPosition * MotifPosition(Int_t manuId) const
Return the position of a given manu (aka motifPosition)
Bool_t HasPadByIndices(MpPair_t indices) const
Double_t GetMinPadDimensionX() const
Return minimum x pad dimensions.
AliMpConnection * FindConnectionByLocalIndices(MpPair_t localIndices) const
MpPair_t GetIndices() const
Return pad indices as encoded pair (ix, iy)
virtual Double_t GetDimensionY() const
Return the y half-sizes of the detection element.
MpPair_t FindLocalIndicesByGassiNum(Int_t gassiNum) const
virtual Int_t GetNofElectronicCards() const
Get the number of electronic card IDs.
virtual Double_t GetPositionY() const
Return the y position of the origin of the detection element.
AliMpMotifType * GetMotifType() const
Return the motif type.
An iterator over the pads of a sector.
static AliMpPad Invalid()
Return invalid pad.
AliMp::PlaneType GetPlaneType() const
Int_t GetManuChannel() const
An interface for a row segment.
virtual void GetAllElectronicCardIDs(TArrayI &ecn) const
Fill the given array with the electronic card IDs.
virtual void Print(Option_t *opt="") const
virtual Bool_t HasPadByIndices(Int_t ix, Int_t iy) const
MpPair_t GetMaxPadIndices() const
Return maximum pad indices.
Int_t GetID() const
Return motif position ID = manu id.
AliMpVRowSegment * GetRowSegment(Int_t i) const
Double_t GetMinPadDimensionY() const
AliMp::Direction GetDirection() const
Return the direction of constant pad size.
virtual AliMpPad PadByXDirection(Double_t startx, Double_t starty, Double_t maxX) const
An interface for an iterator over pads.
Double_t GetPositionY() const
Return the pad x position (in cm)
MpPair_t GetLowIndicesLimit() const
virtual ~AliMpSectorSegmentation()
AliMpVMotif * GetMotif() const
Return motif.
Int_t FindMotifPositionId(Double_t x, Double_t y) const
A row composed of the row segments.
A sector (quadrant) of the MUON chamber of stations 1 and 2.
virtual Int_t GetMotifPositionId(Int_t i) const =0
Return the i-th motif position Id of this row segment.
virtual Double_t GetPositionX() const
Return the x position of the origin of the detection element.
const AliMpSector * fkSector
Sector.
Bool_t fIsOwner
Sector ownership.
virtual MpPair_t PadIndicesLocal(Double_t localPosX, Double_t localPosY) const =0
Return local indices of the pad specified by local position.
virtual Double_t GetDimensionX() const
Return the x half-sizes of the detection element.
virtual void PadPositionLocal(MpPair_t localIndices, Double_t &posx, Double_t &posy) const =0
Fill local position of the pad specified by local indices.
AliMpMotifMap * GetMotifMap() const
Return the motif map.
Bool_t IsValid() const
Return validity.
A segmentation of the sector.
Abstract base class for a motif with its unique ID and the motif type.
virtual Int_t GetNeighbours(const AliMpPad &pad, TObjArray &neighbours, Bool_t includeSelf=kFALSE, Bool_t includeVoid=kFALSE) const
The abstract base class for the segmentation.
virtual MpPair_t GlobalIndices(MpPair_t localIndices) const
virtual AliMpPad PadByPosition(Double_t x, Double_t y, Bool_t warning=kTRUE) const
Find pad by position.
Int_t GetManuChannel() const
Return manu channel number.
Double_t GetDimensionY() const
Return the y pad dimension - half length (in cm)
Double_t GetMaxPadDimensionX() const
Return maximum x pad dimensions.
Int_t PairFirst(MpPair_t pair)
Decode the first integer from encoded pair.
An iterator over the pads inside a given area in a sector in horizontal direction.
AliMpMotifPosition * FindMotifPosition(Int_t motifPositionID) const
virtual Int_t GetNeighbours(const AliMpPad &pad, TObjArray &neighbours, Bool_t includeSelf=kFALSE, Bool_t includeVoid=kFALSE) const =0
Double_t GetMinPadDimensionX() const
Class which encapsuate all information about a pad.
Int_t GetNofPads() const
Return total number of pads.
Double_t GetPositionX() const
Return x position.
AliMpPad * fPadBuffer
The pad buffer.
void GetAllMotifPositionsIDs(TArrayI &ecn) const
virtual Bool_t HasPadByLocation(Int_t manuId, Int_t manuChannel) const
Return true if the pad with given location exists.
Double_t GetPositionX() const
Return the pad x position (in cm)
Int_t PairSecond(MpPair_t pair)
Decode the second integer from encoded pair.
virtual Int_t MaxPadIndexX() const
Return maximum pad index in X direction.
Int_t GetNofRowSegments() const
Int_t GetHighLimitIx() const
Double_t GetDimensionY() const
AliMpRow * GetRow(Int_t i) const
virtual Bool_t HasMotifPosition(Int_t motifPositionID) const
Whether or not we have a given manu.
Int_t GetNofMotifPositions() const
Double_t GetDimensionX() const
Return the x pad dimension - half length (in cm)
Bool_t HasPadByManuChannel(Int_t manuChannel) const
virtual Int_t MaxPadIndexY() const
Return maximum pad index in Y direction.
Double_t GetMinPadDimensionY() const
Return maximum y pad dimensions.
virtual Int_t GetNofMotifs() const =0
Return the number of motifs in this this row segment.
virtual Int_t NofPads() const
Return the number of pads in the detection element.
virtual void GetPadDimensionsByIndices(MpPair_t localIndices, Double_t &dx, Double_t &dy) const =0
Return the dimensions of the pad specified by localIndices.
virtual AliMp::PlaneType PlaneType() const
Return the plane type.