]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONSegmentationV1.h
syntax correction for Mylar
[u/mrichter/AliRoot.git] / MUON / AliMUONSegmentationV1.h
index 92f1bbf2efc0ddd420e6e675df40359aa76a67ed..c424ba8460c5e39a93fefd67e3226a9110ef6211 100644 (file)
@@ -4,18 +4,14 @@
  * See cxx source for full Copyright notice                               */
 
 /* $Id$ */
+// Revision of includes 07/05/2004
 
-#include "AliMUONSegmentation.h"
+#include "AliSegmentation.h"
 
-const Int_t kNzone = 3;                // Specific for chamber with equal pads
-const Int_t kNzonem1 = 2;              // kNzone - 1
-const Int_t kNzoneCUT = 30;            
-
-class AliMUONSegmentationV1 :
-public AliMUONSegmentation {
+class AliMUONSegmentationV1 : public AliSegmentation 
+{
  public:
     AliMUONSegmentationV1();
-    AliMUONSegmentationV1(const AliMUONSegmentationV1 & segmentation);
     virtual ~AliMUONSegmentationV1(){}
     //    
     // Set Chamber Segmentation Parameters
@@ -39,17 +35,17 @@ public AliMUONSegmentation {
     // Get member data
     //
     // Pad size in x
-    virtual Float_t Dpx(){return fDpx;}
+    virtual Float_t Dpx() const {return fDpx;}
      // Pad size in y 
-    virtual Float_t Dpy(){return fDpy;}
+    virtual Float_t Dpy() const {return fDpy;}
     // Pad size in x by Sector
-    virtual Float_t Dpx(Int_t i){return fDpx;}
+    virtual Float_t Dpx(Int_t /*i*/) const {return fDpx;}
     // Pad size in y by Sector 
-    virtual Float_t Dpy(Int_t i){return fDpy;}
+    virtual Float_t Dpy(Int_t /*i*/)const {return fDpy;}
     // Maximum number of Pads in x
-    virtual Int_t   Npx(){return fNpx;}
+    virtual Int_t   Npx() const {return fNpx;}
     // Maximum number of Pads in y
-    virtual Int_t   Npy(){return fNpy;}
+    virtual Int_t   Npy() const {return fNpy;}
     //
     // Get  the zone of segmentation
     virtual Int_t GetZone(Float_t X, Float_t Y);
@@ -58,20 +54,20 @@ public AliMUONSegmentation {
     // Transform from pad (wire) to real coordinates and vice versa  
     virtual Int_t GetiAnod(Float_t xhit);
     // Anod wire coordinate closest to xhit
-    virtual Float_t GetAnod(Float_t xhit);
+    virtual Float_t GetAnod(Float_t xhit) const;
     // Transform from pad to real coordinates
-    virtual void    GetPadIxy(Float_t x ,Float_t y , Int_t &ix, Int_t &iy);
-    virtual void    GetPadIxy(Float_t x, Float_t y , Float_t z, Int_t &ix, Int_t &iy)
-       {GetPadIxy(x, y, ix, iy);}
+    virtual void    GetPadI(Float_t x ,Float_t y , Int_t &ix, Int_t &iy);
+    virtual void    GetPadI(Float_t x, Float_t y , Float_t /*z*/, Int_t &ix, Int_t &iy)
+       {GetPadI(x, y, ix, iy);}
     // Transform from real to pad coordinates
-    virtual void    GetPadCxy(Int_t ix, Int_t iy, Float_t &x, Float_t &y);
-    virtual void    GetPadCxy(Int_t ix, Int_t iy, Float_t &x, Float_t &y, Float_t &z)
-       {z=0; GetPadCxy(ix, iy, x , y);}
+    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=fZ; GetPadC(ix, iy, x , y);}
     // Set pad position
     virtual void     SetPad(Int_t ix, Int_t iy);
     // Set hit position
     virtual void     SetHit(Float_t xhit, Float_t yhit);
-    virtual void     SetHit(Float_t xhit, Float_t yhit, Float_t zhit)
+    virtual void     SetHit(Float_t xhit, Float_t yhit, Float_t /*zhit*/)
         {SetHit(xhit, yhit);}
     //
     // Iterate over pads
@@ -79,7 +75,7 @@ public AliMUONSegmentation {
     virtual void SetPadCoord(Int_t iX, Int_t iY);
     // Initialiser
     virtual void  FirstPad(Float_t xhit, Float_t yhit, Float_t dx, Float_t dy);
-    virtual void  FirstPad(Float_t xhit, Float_t yhit, Float_t zhit, Float_t dx, Float_t dy)
+    virtual void  FirstPad(Float_t xhit, Float_t yhit, Float_t /*zhit*/, Float_t dx, Float_t dy)
        {FirstPad(xhit, yhit, dx, dy);}
     // Stepper
     virtual void  NextPad();
@@ -99,17 +95,18 @@ public AliMUONSegmentation {
     virtual Int_t Ix(Int_t trueX, Int_t trueY);
     virtual Int_t Ix();
     // y-coordinate
-    virtual Int_t Iy(){return fiy;}
+    virtual Int_t Iy() {return fIy;}
     // current sector
     virtual Int_t ISector();
     // calculate sector from pad coordinates
-    virtual Int_t Sector(Int_t ix, Int_t iy) {return 1;}
+    virtual Int_t Sector(Int_t /*ix*/, Int_t /*iy*/)   {return 1;}
+    virtual Int_t Sector(Float_t /*x*/, Float_t /*y*/) {return 1;}
     // Position of pad in perellel read-out
-    virtual Int_t IsParallel2(Int_t iX, Int_t iY);
-    virtual Int_t IsParallel3(Int_t iX, Int_t iY);
+    virtual Int_t IsParallel2(Int_t iX, Int_t iY) const;
+    virtual Int_t IsParallel3(Int_t iX, Int_t iY) const;
     // Number of pads read in parallel
-    virtual Int_t NParallel2(Int_t iX, Int_t iY);
-    virtual Int_t NParallel3(Int_t iX, Int_t iY);
+    virtual Int_t NParallel2(Int_t iX, Int_t iY) const;
+    virtual Int_t NParallel3(Int_t iX, Int_t iY) const;
     //
     // Number of pads read in parallel and offset to add to x
     virtual void GetNParallelAndOffset(Int_t iX, Int_t iY,
@@ -122,33 +119,40 @@ public AliMUONSegmentation {
     // Initialise signal generation at coord (x,y,z)
     void  SigGenInit(Float_t x, Float_t y, Float_t z);
     // Test points for auto calibration
-    void  GiveTestPoints(Int_t &n, Float_t *x, Float_t *y);
+    void  GiveTestPoints(Int_t &n, Float_t *x, Float_t *y) const;
     // Current integration limits 
     virtual void IntegrationLimits
        (Float_t& x1, Float_t& x2, Float_t& y1, Float_t& y2);
     // Draw the segmentation zones
-    virtual void Draw(){;}
+    virtual void Draw(const char * = "") const {}
     // Function for systematic corrections
     // Set the correction function
-    virtual void SetCorrFunc(Int_t dum, TF1* func) {fCorr=func;}
+    virtual void SetCorrFunc(Int_t /*dum*/, TF1* func) {fCorr=func;}
     // Get the correction function
-    virtual TF1* CorrFunc(Int_t) {return fCorr;}
+    virtual TF1* CorrFunc(Int_t) const {return fCorr;}
     //
-    AliMUONSegmentationV1& operator=(const AliMUONSegmentationV1& rhs);
     ClassDef(AliMUONSegmentationV1,1) // Implementation of the Lyon type chamber segmentation with parallel read-out
- protected:
+
+  protected:
+    AliMUONSegmentationV1(const AliMUONSegmentationV1 & segmentation);
+    AliMUONSegmentationV1& operator=(const AliMUONSegmentationV1& rhs);
+
     //
     // Implementation of the segmentation data
     // Version This models rectangular pads with the same dimensions all
     // over the cathode plane but let the possibilit for different design.
     //
+    static const Int_t fgkNzone = 3;     // Specific for chamber with equal pads
+    static const Int_t fgkNzonem1 = 2;   // fgkNzone - 1
+    static const Int_t fgkNzoneCUT = 30; // NzoneCUT           
+
     //  geometry
     Int_t fNzone; // Number of differents sensitive zones
     Float_t fDpx;         // X pad width
     Float_t fDpy;         // Y pad width
-    Int_t   fNZoneCut[kNzonem1];    // Number of cuts for given zone 
-    Int_t fZoneX[kNzonem1][kNzoneCUT]; // X descriptor of zone segmentations
-    Int_t fZoneY[kNzonem1][kNzoneCUT]; // Y descriptor of zone segmentations
+    Int_t   fNZoneCut[fgkNzonem1];    // Number of cuts for given zone 
+    Int_t fZoneX[fgkNzonem1][fgkNzoneCUT]; // X descriptor of zone segmentations
+    Int_t fZoneY[fgkNzonem1][fgkNzoneCUT]; // Y descriptor of zone segmentations
     Float_t frSensMax2; // square of maximum sensitive radius
     Float_t frSensMin2; // square of minimum sensitive radius
     Int_t   fNpx;         // Maximum number of pads along x
@@ -158,26 +162,27 @@ public AliMUONSegmentation {
     
     // Chamber region consideres during disintegration (lower left and upper right corner)
     //
-    Int_t fixmin; // lower left  x
-    Int_t fixmax; // lower left  y
-    Int_t fiymin; // upper right x
-    Int_t fiymax; // upper right y 
+    Int_t fIxmin; // lower left  x
+    Int_t fIxmax; // lower left  y
+    Int_t fIymin; // upper right x
+    Int_t fIymax; // upper right y 
     //
     // Current pad during integration (cursor for disintegration)
-    Int_t fix;   // pad coord.  x
-    Int_t fiy;   // pad coord.  y
-    Float_t fx;  // real coord. x
-    Float_t fy;  // real ccord. y
+    Int_t fIx;   // pad coord.  x
+    Int_t fIy;   // pad coord.  y
+    Float_t fX;  // real coord. x
+    Float_t fY;  // real ccord. y
     //
     // Current pad and wire during tracking (cursor at hit centre)
-    Int_t fixt;  // x-position of hit
-    Int_t fiyt;  // y-position of hit
+    Int_t fIxt;  // x-position of hit
+    Int_t fIyt;  // y-position of hit
     // Reference point to define signal generation condition
-    Int_t fiwt;     // wire number
-    Float_t fxt;    // x
-    Float_t fyt;    // y
-    Float_t fxhit;  // x-position of hit
-    Float_t fyhit;  // y-position of hit
+    Int_t fIwt;     // wire number
+    Float_t fXt;    // x
+    Float_t fYt;    // y
+    Float_t fXhit;  // x-position of hit
+    Float_t fYhit;  // y-position of hit
+    Float_t fZ;     // z-position of chamber
     
     TF1* fCorr;     // correction function
 };