]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONSegmentationTriggerX.h
Bug found (Jean-Pierre)
[u/mrichter/AliRoot.git] / MUON / AliMUONSegmentationTriggerX.h
1 #ifndef ALIMUONSEGMENTATIONTRIGGERX_H
2 #define ALIMUONSEGMENTATIONTRIGGERX_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 /* $Id$ */
8 // Revision of includes 07/05/2004
9
10 //----------------------------------------------
11 //
12 // Chamber segmentation virtual base class
13 //
14
15 #include "AliMUONSegmentationTrigger.h"
16
17 class AliMUONChamber;
18
19 class AliMUONSegmentationTriggerX : public AliMUONSegmentationTrigger 
20 {
21  public:
22   AliMUONSegmentationTriggerX(){}
23   virtual ~AliMUONSegmentationTriggerX(){}
24   // Transform from pad to real coordinates
25   virtual void    GetPadI(Float_t x, Float_t y, Int_t &ix, Int_t &iy);
26   virtual void    GetPadI(Float_t x, Float_t y, Float_t z, Int_t &ix, Int_t &iy);
27   // Transform from real to pad coordinates
28   virtual void    GetPadC(Int_t ix, Int_t iy, Float_t &x, Float_t &y);
29   virtual void    GetPadC(Int_t ix, Int_t iy, Float_t &x, Float_t &y, Float_t &z) 
30       {z=-10000.; GetPadC(ix, iy, x , y);}
31   // Draw the segmentation zones
32   virtual void Draw(const char *opt = "") const;
33
34   // Pad size Dx*Dy 
35   virtual void SetPadSize(Float_t dp1, Float_t dp2);
36   // Strip size 
37   virtual Float_t Dpx(Int_t imodule) const;
38   virtual Float_t Dpy(Int_t imodule) const;
39   // Set pad position
40   virtual void     SetPad(Int_t ix, Int_t iy);
41   // Set hit position
42   virtual void     SetHit(Float_t xhit, Float_t yhit);
43   virtual void     SetHit(Float_t xhit, Float_t yhit, Float_t zhit);
44   // Current integration parameters
45   virtual void IntegrationLimits(Float_t& x1, Float_t& x2, Float_t& x3, Float_t& x4);
46   // Current Pad during Integration
47   // x-coordinate
48   virtual Int_t  Ix();
49   // y-coordinate
50   virtual Int_t  Iy();
51   // Sector
52   virtual Int_t ISector();
53   // calculate sector from pad coordinates
54   virtual Int_t Sector(Int_t ix, Int_t iy);
55   // Get next neighbours 
56   virtual void Neighbours
57     (Int_t iX, Int_t iY, Int_t* Nlist, Int_t Xlist[10], Int_t Ylist[10]);
58   
59   //
60   // Initialisation
61   virtual void Init(Int_t chamber);    
62   
63   ClassDef(AliMUONSegmentationTriggerX,1) //Segmentation class for trigger X
64     
65   protected:
66    void  IntegrationParam(Float_t& x1, Float_t& x2, Float_t& y1);
67 // Geometry Parameters
68   float fXofxsmin[126][64];    // x-min
69   float fXofxsmax[126][64];    // x-max
70   float fYofxsmin[126][64];    // y-min
71   float fYofxsmax[126][64];    // y-max
72 };
73 #endif
74
75
76