]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONSt345SlatSegmentation.h
From Laurent:
[u/mrichter/AliRoot.git] / MUON / AliMUONSt345SlatSegmentation.h
index 1dbedb04ddca4b9a28a93578f01281fd013ae79c..47f474dcc45301e9e369fbf7f33032b571ddffbe 100644 (file)
@@ -3,7 +3,7 @@
 /* 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          
@@ -17,6 +17,8 @@
 
 class TArrayF;
 class TArrayI;
+class AliMUONSegmentManuIndex;
+class AliMUONSegmentationDetectionElement;
 
 class AliMUONSt345SlatSegmentation : public AliMUONVGeometryDESegmentation 
 {
@@ -35,7 +37,7 @@ 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
@@ -43,7 +45,10 @@ class AliMUONSt345SlatSegmentation : public AliMUONVGeometryDESegmentation
     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)
@@ -83,7 +88,10 @@ class AliMUONSt345SlatSegmentation : public AliMUONVGeometryDESegmentation
 
     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
@@ -96,6 +104,7 @@ class AliMUONSt345SlatSegmentation : public AliMUONVGeometryDESegmentation
     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
@@ -131,7 +140,12 @@ class AliMUONSt345SlatSegmentation : public AliMUONVGeometryDESegmentation
     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