/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice */
-/* $Id: */
+/* $Id$ */
//*********************************************************
// Segmentation classes for slat modules
class TArrayF;
class TArrayI;
+class AliMUONSegmentManuIndex;
+class AliMUONSegmentationDetectionElement;
class AliMUONSt345SlatSegmentation : public AliMUONVGeometryDESegmentation
{
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 Float_t GetAnod(Float_t xhit) const; // Anod wire coordinate closest to xhit
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 GetPadE(Int_t &ix, Int_t &iy, AliMUONSegmentManuIndex* connect); // get pad for a given connection
+ virtual AliMUONSegmentManuIndex* GetMpConnection(Int_t ix, Int_t iy); // get electronics connection for given pad
+
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)
AliMUONSt345SlatSegmentation(const AliMUONSt345SlatSegmentation& rhs);
AliMUONSt345SlatSegmentation& operator=(const AliMUONSt345SlatSegmentation& rhs);
-
+ void GetMpFileName(Char_t* name) const;
+ void Swap(Int_t padX, Int_t &padY);
+
+ private:
// Internal geometry of the slat
Bool_t fBending; // 0: Bending or 1:Non Bending segmentation
Int_t fId; // Identifier of detection element
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
+
+ // electronics mapping
+ AliMUONSegmentationDetectionElement* fSegmentationDetectionElement; //! pointer to the electronics mapping
+
+ ClassDef(AliMUONSt345SlatSegmentation,3)
};
#endif