]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/mapping/AliMpMotifSpecial.h
Fixing display of data at pad level (pads were hollow)
[u/mrichter/AliRoot.git] / MUON / mapping / AliMpMotifSpecial.h
index f11bcf8db16f543d7039b5102a48c807ca27b8c5..8d45d32f56f7fe20763818a7bea3426470c83bc9 100755 (executable)
@@ -2,77 +2,79 @@
  * See cxx source for full Copyright notice                               */
 
 // $Id$
-// $MpId: AliMpMotifSpecial.h,v 1.8 2006/03/17 11:37:51 ivana Exp $
+// $MpId: AliMpMotifSpecial.h,v 1.11 2006/05/24 13:58:18 ivana Exp $
 
 /// \ingroup motif
 /// \class AliMpMotifSpecial
 /// \brief A special motif with varying pad dimensions
 ///
-/// Authors: David Guez, Ivana Hrivnacova; IPN Orsay
+/// \author David Guez, Ivana Hrivnacova; IPN Orsay
 
 #ifndef ALI_MP_MOTIF_SPECIAL_H
 #define ALI_MP_MOTIF_SPECIAL_H
 
-#include "AliMpContainers.h"
-
 #include "AliMpVMotif.h"
-#ifdef WITH_ROOT
 #include "AliMpExMap.h"
-#endif
 
-#include <TVector2.h>
-#ifdef WITH_ROOT
 #include <TObjArray.h>
-#endif
-
-#ifdef WITH_STL
-#include <vector>
-#endif
+#include <TArrayD.h>
 
 class TString;
 
 class AliMpMotifSpecial : public AliMpVMotif
 {
- public:
-#ifdef WITH_STL
-  typedef std::vector< TVector2 > DimensionsMap;
-  typedef std::vector< TVector2 > DimensionsMap2;
-#endif    
-#ifdef WITH_ROOT
-  typedef AliMpExMap DimensionsMap;
-  typedef TObjArray  DimensionsMap2;
-#endif    
-
  public:
   AliMpMotifSpecial(const TString &id, AliMpMotifType *motifType);
-  AliMpMotifSpecial();
+  AliMpMotifSpecial(TRootIOCtor* ioCtor);
   virtual ~AliMpMotifSpecial();
 
   // Access methods
-  virtual TVector2 GetPadDimensions(const AliMpIntPair& localIndices) const;
+  virtual void GetPadDimensionsByIndices(MpPair_t localIndices,
+                      Double_t& dx, Double_t& dy) const;
+  virtual void GetPadDimensionsByIndices(Int_t ixLocal, Int_t iyLocal,
+                      Double_t& dx, Double_t& dy) const;
+
   virtual Int_t    GetNofPadDimensions() const;
-  virtual TVector2 GetPadDimensions(Int_t i) const;
+  virtual Double_t GetPadDimensionX(Int_t i) const;
+  virtual Double_t GetPadDimensionY(Int_t i) const;
 
   // Set methods
-  void SetPadDimensions(const AliMpIntPair& localIndices,
-                        const TVector2& dimensions);
+  void SetPadDimensions(MpPair_t localIndices, 
+                        Double_t dx, Double_t dy);
+  void SetPadDimensions(Int_t ixLocal, Int_t iyLocal, 
+                        Double_t dx, Double_t dy);
   
   // Geometry
-  virtual TVector2 Dimensions() const;
+  void CalculateDimensions();
+
+  virtual Double_t DimensionX() const;
+  virtual Double_t DimensionY() const;
 
   // Other methods
-  virtual TVector2     PadPositionLocal(const AliMpIntPair& localIndices) const;
-  virtual AliMpIntPair PadIndicesLocal(const TVector2& localPos) const;
+  virtual void PadPositionLocal(MpPair_t localIndices,
+                      Double_t& posx, Double_t& posy  ) const;
+  virtual void PadPositionLocal(Int_t ixLocal, Int_t iyLocal,
+                      Double_t& posx, Double_t& posy  ) const;
+
+  virtual MpPair_t PadIndicesLocal(
+                      Double_t localPosX, Double_t localPosY) const;
 
  private:
-  // methods
-  Int_t VectorIndex(const AliMpIntPair& indices) const;
+  /// Not implemented
+  AliMpMotifSpecial();
 
-  // data members
-  DimensionsMap   fPadDimensionsVector;  // the vector of pad dimensions
-  DimensionsMap2  fPadDimensionsVector2; // the vector of different pad dimensions
+  // static data members
+  static Int_t fgkPadDimensions2Size; ///< The fPadDimensionsX/Y2 array size
 
-  ClassDef(AliMpMotifSpecial,1) // A motif with its ID
+  // data members
+  Double_t     fDimensionX; ///< motif x dimensions
+  Double_t     fDimensionY; ///< motif y dimensions
+  AliMpExMap   fPadDimensionsVector;  ///< the vector of pad dimensions
+  Int_t        fNofPadDimensions2; ///< number of different pad dimensions
+  TArrayD      fPadDimensions2X; ///< the vector of x of different pad dimensions
+  TArrayD      fPadDimensions2Y; ///< the vector of y of different pad dimensions
+
+  ClassDef(AliMpMotifSpecial,3) // A motif with its ID
 };
 
 #endif //ALI_MP_MOTIF_SPECIAL_H