/* $Id$ */
-#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 {
+public AliSegmentation {
public:
AliMUONSegmentationV1();
AliMUONSegmentationV1(const AliMUONSegmentationV1 & segmentation);
virtual void DefaultCut(void);
//
// Initialisation
- virtual void Init(AliMUONChamber* chamber);
+ virtual void Init(Int_t id);
//
// 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);
// 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 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
// 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;}
// 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
// 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
};