]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EVE/Reve/GridStepper.h
Dealing with two different loaders for simulation and reconstruction if necessary...
[u/mrichter/AliRoot.git] / EVE / Reve / GridStepper.h
1 // $Header$
2
3 #ifndef REVE_GridStepper_H
4 #define REVE_GridStepper_H
5
6 #include <Reve/Reve.h>
7
8 #include <TObject.h>
9
10 namespace Reve {
11
12 class ZTrans;
13
14 class GridStepper : public TObject
15 {
16   Int_t *ls[3], *ns[3];
17 private:
18   GridStepper(const GridStepper&);            // Not implemented
19   GridStepper& operator=(const GridStepper&); // Not implemented
20
21 public: 
22   enum StepMode_e { SM_XYZ, SM_YXZ, SM_XZY };
23   StepMode_e Mode; 
24
25   Int_t   nx, ny, nz;
26   Int_t   Nx, Ny, Nz;
27   Float_t Dx, Dy, Dz;
28   Float_t Ox, Oy, Oz;
29
30   GridStepper(Int_t sm=SM_XYZ);
31   virtual ~GridStepper() {}
32
33   void Reset();
34   void Subtract(GridStepper& s);
35   void SetNs(Int_t nx, Int_t ny, Int_t nz=1)
36   { Nx = nx; Ny = ny; Nz = nz; }
37   void SetDs(Float_t dx, Float_t dy, Float_t dz=0)
38   { Dx = dx; Dy = dy; Dz = dz; }
39   
40   bool Step();
41
42   void GetPosition(Float_t* p);
43
44   void SetTrans(ZTrans* mx);
45   void SetTransAdvance(ZTrans* mx);
46
47   ClassDef(GridStepper, 1);
48 }; // end class GridStepper
49
50 }  // namespace Reve
51
52 #endif