/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice */
-/* $Id: */
-
-//*********************************************************
-// Segmentation classes for slat modules
-// This class works with local coordinates
-// of the slats via the class AliMUONGeometrySegmentation
-// This class contains the size of the slats and the
-// and the differents PCB densities.
-//*********************************************************
+/* $Id$ */
+
+/// \ingroup base
+/// \class AliMUONSt345SlatSegmentation
+/// \brief Segmentation for slat modules
+///
+///*********************************************************
+/// Segmentation classes for slat modules
+/// This class works with local coordinates
+/// of the slats via the class AliMUONGeometrySegmentation
+/// This class contains the size of the slats and the
+/// and the differents PCB densities.
+///*********************************************************
#include "AliMUONVGeometryDESegmentation.h"
class TArrayF;
class TArrayI;
+
class AliMUONSt345SlatSegmentation : public AliMUONVGeometryDESegmentation
{
public:
virtual void FirstPad(Float_t xhit, Float_t yhit, Float_t zhit, Float_t dx, Float_t dy);
virtual Bool_t HasPad(Float_t /*x*/, Float_t /*y*/, Float_t /*z*/) { return true; }
- virtual Bool_t HasPad(Int_t /*ix*/, Int_t /*iy*/) { return true; }
+ virtual Bool_t HasPad(Int_t ix, Int_t iy);
virtual AliMUONGeometryDirection GetDirection() { return kDirUndefined; }
+ virtual const AliMpVSegmentation* GetMpSegmentation() const { return 0; }
virtual Float_t GetAnod(Float_t xhit) const; // Anod wire coordinate closest to xhit
virtual void GetPadI(Float_t x ,Float_t y ,Int_t &ix,Int_t &iy); // Transform from pad to real coordinates
virtual void GetPadI(Float_t x, Float_t y , Float_t z, Int_t &ix, Int_t &iy);
virtual void GetPadC(Int_t ix, Int_t iy, Float_t &x, Float_t &y);
virtual void GetPadC(Int_t ix, Int_t iy, Float_t &x, Float_t &y, Float_t &z) {z=0; GetPadC(ix, iy, x , y);}
-
-
+
virtual void IntegrationLimits(Float_t& x1, Float_t& x2, Float_t& y1, Float_t& y2); //Current integration limits
virtual Int_t ISector() {return fSector;} // Current Pad during Integration (current sector)
virtual Int_t Ix() {return fIx;} // x-coordinate
AliMUONSt345SlatSegmentation(const AliMUONSt345SlatSegmentation& rhs);
AliMUONSt345SlatSegmentation& operator=(const AliMUONSt345SlatSegmentation& rhs);
-
+
private:
// Internal geometry of the slat
Bool_t fBending; // 0: Bending or 1:Non Bending segmentation
Int_t fNpx; // Number of pads in x
Int_t fNpy; // Number of pads in y
Float_t fWireD; // wire pitch
+ Int_t fRtype; // type of the slat: rounded R=1,2,3, rounded short R=-1,-2,-3, short R=4, normal R=0
//
Int_t fSector; // Current density sector
Float_t fDxPCB; // x-size of PCB board
Float_t fYmin; // upper right x
Float_t fYmax; // upper right y
- ClassDef(AliMUONSt345SlatSegmentation,1)
+ Bool_t fInitDone; // flag for initialization
+
+ ClassDef(AliMUONSt345SlatSegmentation,3)
};
#endif