1 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2 * See cxx source for full Copyright notice */
5 // $MpId: AliMpMotifSpecial.h,v 1.11 2006/05/24 13:58:18 ivana Exp $
8 /// \class AliMpMotifSpecial
9 /// \brief A special motif with varying pad dimensions
11 /// \author David Guez, Ivana Hrivnacova; IPN Orsay
13 #ifndef ALI_MP_MOTIF_SPECIAL_H
14 #define ALI_MP_MOTIF_SPECIAL_H
16 #include "AliMpVMotif.h"
17 #include "AliMpExMap.h"
19 #include <TObjArray.h>
24 class AliMpMotifSpecial : public AliMpVMotif
27 AliMpMotifSpecial(const TString &id, AliMpMotifType *motifType);
28 AliMpMotifSpecial(TRootIOCtor* ioCtor);
29 virtual ~AliMpMotifSpecial();
32 virtual void GetPadDimensionsByIndices(MpPair_t localIndices,
33 Double_t& dx, Double_t& dy) const;
34 virtual void GetPadDimensionsByIndices(Int_t ixLocal, Int_t iyLocal,
35 Double_t& dx, Double_t& dy) const;
37 virtual Int_t GetNofPadDimensions() const;
38 virtual Double_t GetPadDimensionX(Int_t i) const;
39 virtual Double_t GetPadDimensionY(Int_t i) const;
42 void SetPadDimensions(MpPair_t localIndices,
43 Double_t dx, Double_t dy);
44 void SetPadDimensions(Int_t ixLocal, Int_t iyLocal,
45 Double_t dx, Double_t dy);
48 void CalculateDimensions();
50 virtual Double_t DimensionX() const;
51 virtual Double_t DimensionY() const;
54 virtual void PadPositionLocal(MpPair_t localIndices,
55 Double_t& posx, Double_t& posy ) const;
56 virtual void PadPositionLocal(Int_t ixLocal, Int_t iyLocal,
57 Double_t& posx, Double_t& posy ) const;
59 virtual MpPair_t PadIndicesLocal(
60 Double_t localPosX, Double_t localPosY) const;
66 // static data members
67 static Int_t fgkPadDimensions2Size; ///< The fPadDimensionsX/Y2 array size
70 Double_t fDimensionX; ///< motif x dimensions
71 Double_t fDimensionY; ///< motif y dimensions
72 AliMpExMap fPadDimensionsVector; ///< the vector of pad dimensions
73 Int_t fNofPadDimensions2; ///< number of different pad dimensions
74 TArrayD fPadDimensions2X; ///< the vector of x of different pad dimensions
75 TArrayD fPadDimensions2Y; ///< the vector of y of different pad dimensions
77 ClassDef(AliMpMotifSpecial,3) // A motif with its ID
80 #endif //ALI_MP_MOTIF_SPECIAL_H