3accc66c3b784e6075a53c272deb13252c676a51
[u/mrichter/AliRoot.git] / MUON / AliMUONSegmentationV02.h
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                               */
5
6 /* $Id$ */
7
8 /////////////////////////////////////////////////////
9 //  Segmentation and Response classes version 02   //
10 /////////////////////////////////////////////////////
11  
12
13 #include "AliMUONSegmentationV01.h"
14
15 class AliMUONSegmentationV02 :
16 public AliMUONSegmentationV01 {
17  public:
18     AliMUONSegmentationV02(){};
19     virtual ~AliMUONSegmentationV02(){}
20     //
21     // Pad size Dx*Dy 
22     virtual void SetPadSize(Float_t p1, Float_t p2);
23     //
24     // Get member data
25     // Pad size in x
26     virtual Float_t Dpx() {return fDpy;}
27     // Pad size in y
28     virtual Float_t Dpy() {return fDpx;}
29     // Pad size in x by Sector
30     virtual Float_t Dpx(Int_t isec);
31     // Pad size in y by Sector
32     virtual Float_t Dpy(Int_t isec);
33     // Max number of Pads in x
34     virtual Int_t   Npx();
35      // max number of Pads in y
36     virtual Int_t   Npy();
37     // calculate sector from pad coordinates
38     virtual Int_t   Sector(Int_t ix, Int_t iy);
39     virtual void Draw(const char *opt="") {}
40     //
41     // Transform from pad (wire) to real coordinates and vice versa
42     // Transform from pad to real coordinates
43     virtual void    GetPadC(Int_t ix, Int_t iy, Float_t &x ,Float_t &y );
44     virtual void    GetPadC(Int_t ix, Int_t iy, Float_t &x, Float_t &y, Float_t &z)
45         {z=0; GetPadC(ix, iy, x , y);}
46     // Transform from pad to real coordinates
47     virtual void    GetPadI(Float_t x ,Float_t y , Int_t &ix, Int_t &iy);
48     virtual void    GetPad(Float_t x, Float_t y , Float_t z, Int_t &ix, Int_t &iy)
49         {GetPadI(x, y, ix, iy);}
50     // Set pad position
51     virtual void    SetPad(Int_t ix,Int_t iy);
52     // Stepper
53     virtual void    NextPad();
54     // Condition
55     virtual Int_t   MorePads();
56     // Get next neighbours 
57     virtual void Neighbours
58         (Int_t iX, Int_t iY, Int_t* Nlist, Int_t Xlist[10], Int_t Ylist[10]);
59     // Get next neighbours 
60     ClassDef(AliMUONSegmentationV02,1)  // Segmentation approximating circular zones with different pad size
61         };
62 #endif
63
64
65
66
67
68
69
70
71