]> git.uio.no Git - u/mrichter/AliRoot.git/blob - RICH/AliRICHHitMap.h
903efad1e740da9a0bc42dcd6fed6f6b705e231e
[u/mrichter/AliRoot.git] / RICH / AliRICHHitMap.h
1 #ifndef AliRICHHitMap_H
2 #define AliRICHHitMap_H
3
4 #include "AliRICH.h"
5 #include "TArrayI.h"
6 typedef enum {empty, used, unused} Flag_t;
7 const Int_t kMaxNpadx=1200, kMaxNpady=1200;
8
9 class AliRICHHitMap :
10 public TObject {
11  public:
12     virtual  void  FillHits()                                      =0;
13     virtual  void  Clear()                                         =0;
14     virtual  void  SetHit(Int_t ix, Int_t iy, Int_t idigit)        =0;
15     virtual  void  DeleteHit(Int_t ix, Int_t iy)                   =0;
16     virtual Int_t  GetHitIndex(Int_t ix, Int_t iy)                 =0;
17     virtual TObject * GetHit(Int_t ix, Int_t iy)                   =0;
18     virtual void   FlagHit(Int_t ix, Int_t iy)                     =0;    
19     virtual Flag_t TestHit(Int_t ix, Int_t iy)                     =0;
20     
21     ClassDef(AliRICHHitMap,1) //virtual base class for muon HitMap
22 };
23
24 class AliRICHHitMapA1 :
25 public AliRICHHitMap 
26 {
27  private:
28     AliRICHsegmentation *fSegmentation;
29     Int_t fNpx;
30     Int_t fNpy;
31     TObjArray *fDigits;
32     Int_t fNdigits;
33     Int_t *fHitMap;
34     Int_t fMaxIndex;
35     
36  public:
37     AliRICHHitMapA1(AliRICHsegmentation *seg, TObjArray *dig);
38     virtual ~AliRICHHitMapA1();
39     virtual  void  FillHits();
40     virtual  void  Clear();    
41     virtual  void  SetHit(Int_t ix, Int_t iy, Int_t idigit);
42     virtual  void  DeleteHit(Int_t ix, Int_t iy);
43     virtual Int_t  GetHitIndex(Int_t ix, Int_t iy);
44     virtual TObject*  GetHit(Int_t ix, Int_t);
45     virtual  void  FlagHit(Int_t ix, Int_t iy);    
46     virtual Flag_t TestHit(Int_t ix, Int_t iy);
47     private:
48     Int_t CheckedIndex(Int_t ix, Int_t iy);
49     ClassDef(AliRICHHitMapA1,1) // Implements HitMap as a 2-dim array
50 };
51 #endif  
52
53