1 #ifndef ALIMUONSEGMENTATIONV02_H
2 #define ALIMUONSEGMENTATIONV02_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
7 // Revision of includes 07/05/2004
9 /////////////////////////////////////////////////////
10 // Segmentation and Response classes version 02 //
11 /////////////////////////////////////////////////////
14 #include "AliMUONSegmentationV01.h"
16 class AliMUONSegmentationV02 : public AliMUONSegmentationV01
19 AliMUONSegmentationV02();
20 AliMUONSegmentationV02(Int_t nsec);
22 virtual ~AliMUONSegmentationV02(){}
25 virtual void SetPadSize(Float_t p1, Float_t p2);
29 virtual Float_t Dpx() const {return fDpy;}
31 virtual Float_t Dpy() const {return fDpx;}
32 // Pad size in x by Sector
33 virtual Float_t Dpx(Int_t isec) const;
34 // Pad size in y by Sector
35 virtual Float_t Dpy(Int_t isec) const;
36 // Max number of Pads in x
37 virtual Int_t Npx() const;
38 // max number of Pads in y
39 virtual Int_t Npy() const;
40 // calculate sector from pad coordinates
41 virtual Int_t Sector(Int_t ix, Int_t iy);
42 virtual void Draw(const char *opt="") const;
44 // Transform from pad (wire) to real coordinates and vice versa
45 // Transform from pad to real coordinates
46 virtual void GetPadC(Int_t ix, Int_t iy, Float_t &x ,Float_t &y );
47 virtual void GetPadC(Int_t ix, Int_t iy, Float_t &x, Float_t &y, Float_t &z)
48 {z=fZ; GetPadC(ix, iy, x , y);}
49 // Transform from pad to real coordinates
50 virtual void GetPadI(Float_t x ,Float_t y , Int_t &ix, Int_t &iy);
51 virtual void GetPad(Float_t x, Float_t y , Float_t z, Int_t &ix, Int_t &iy);
53 virtual void SetPad(Int_t ix,Int_t iy);
55 virtual void NextPad();
57 virtual Int_t MorePads();
58 // Get next neighbours
59 virtual void Neighbours
60 (Int_t iX, Int_t iY, Int_t* Nlist, Int_t Xlist[10], Int_t Ylist[10]);
61 // Get next neighbours
62 ClassDef(AliMUONSegmentationV02,1) // Segmentation approximating circular zones with different pad size