37 #include <Riostream.h>
52 fPadDimensionsVector(),
53 fNofPadDimensions2(0),
54 fPadDimensions2X(fgkPadDimensions2Size),
55 fPadDimensions2Y(fgkPadDimensions2Size)
66 fPadDimensionsVector(ioCtor),
89 Double_t& dx, Double_t& dy)
const
101 Double_t& dx, Double_t& dy)
const
105 if (
GetMotifType()->HasPadByLocalIndices(ixLocal, iyLocal) ) {
107 Warning(
"GetPadDimensionsByIndices",
"Indices outside limits");
117 Warning(
"GetPadDimensionsByIndices",
"Indices outside limits");
137 AliFatal(
"Index outside limits.");
150 AliFatal(
"Index outside limits.");
207 Double_t& posx, Double_t& posy)
const
221 Double_t& posx, Double_t& posy)
const
230 for ( Int_t i=0 ;i<ixLocal; ++i ) {
237 for ( Int_t j=0; j<iyLocal; ++j ) {
265 Double_t padDimX, padDimY;
274 Warning(
"PadIndicesLocal",
"The position is outside the motif");
284 Double_t padDimX, padDimY;
295 Warning(
"PadIndicesLocal",
"The position is outside the motif");
305 Double_t dx, Double_t dy)
316 Double_t dx, Double_t dy)
321 if ( !
GetMotifType()->HasPadByLocalIndices(ixLocal, iyLocal) ) {
322 Warning(
"SetPadDimensions",
"Pad indices outside limits");
327 TVector2* dimensionsObj =
new TVector2(dx, dy);
332 Bool_t isPresent =
false;
virtual Double_t DimensionY() const
Return y dimensions.
void CalculateDimensions()
void SetPadDimensions(MpPair_t localIndices, Double_t dx, Double_t dy)
A special motif with varying pad dimensions.
virtual Double_t GetPadDimensionX(Int_t i) const
Return the i-th pad x dimension.
Double_t fDimensionX
motif x dimensions
MpPair_t Pair(Int_t first, Int_t second)
Encode the pair of integers to another integer.
virtual MpPair_t PadIndicesLocal(Double_t localPosX, Double_t localPosY) const
Return local indices of the pad specified by local position.
AliMpMotifType * GetMotifType() const
Return the motif type.
virtual Double_t DimensionX() const
Return x dimensions.
Double_t fDimensionY
motif y dimensions
virtual void GetPadDimensionsByIndices(MpPair_t localIndices, Double_t &dx, Double_t &dy) const
Return the dimensions of the pad specified by localIndices.
TArrayD fPadDimensions2Y
the vector of y of different pad dimensions
TArrayD fPadDimensions2X
the vector of x of different pad dimensions
Int_t GetNofPadsX() const
Return number of pads in x direction.
Int_t fNofPadDimensions2
number of different pad dimensions
Int_t GetNofPadsY() const
Return number of pads in y direction.
virtual Double_t GetPadDimensionY(Int_t i) const
Return the i-th pad y dimension.
TObject * GetValue(Int_t keyFirst, Int_t keySecond) const
virtual Int_t GetNofPadDimensions() const
Return the number of pad dimensions.
void Add(Int_t keyFirst, Int_t keySecond, TObject *object)
static Bool_t IsEqual(Double_t length1, Double_t length2)
Abstract base class for a motif with its unique ID and the motif type.
AliMpExMap fPadDimensionsVector
the vector of pad dimensions
virtual ~AliMpMotifSpecial()
Int_t PairFirst(MpPair_t pair)
Decode the first integer from encoded pair.
AliMpMotifSpecial()
Not implemented.
Int_t PairSecond(MpPair_t pair)
Decode the second integer from encoded pair.
virtual void PadPositionLocal(MpPair_t localIndices, Double_t &posx, Double_t &posy) const
Fill local position of the pad specified by local indices.
Class that defines the motif properties.