Correction of the inheritance scheme
[u/mrichter/AliRoot.git] / ITS / AliITSMap.h
CommitLineData
b0f5e3fc 1#ifndef ALIITSMAP_H
2#define ALIITSMAP_H
3
4
5#include "AliITS.h"
6
7typedef enum {kEmpty, kUsed, kUnused} Flag_t;
8
9//___________________________________________________________________________
10
11class AliITSMap :
12 public TObject {
13
14public:
15 virtual ~AliITSMap() {}
16 virtual void FillMap() =0;
17 virtual void ClearMap() =0;
18 virtual void SetHit(Int_t iz, Int_t ix, Int_t idigit) =0;
19 virtual void DeleteHit(Int_t iz, Int_t ix) =0;
20 virtual void FlagHit(Int_t iz, Int_t ix) =0;
21 virtual Int_t GetHitIndex(Int_t iz, Int_t ix) =0;
22 virtual TObject * GetHit(Int_t iz, Int_t ix) =0;
23 virtual Flag_t TestHit(Int_t iz, Int_t ix) =0;
24 virtual Double_t GetSignal(Int_t iz, Int_t ix) =0;
25
26 ClassDef(AliITSMap,1) //virtual base class for ITS Hit/Digit Map
27
28 };
29
30
31class AliITSMapA1 :
32 public AliITSMap
33{
34
35public:
36 AliITSMapA1() {
37 // constructor
38 }
39 AliITSMapA1(AliITSsegmentation *seg);
40 AliITSMapA1(AliITSsegmentation *seg, TObjArray *dig);
41 AliITSMapA1(const AliITSMapA1 &source); // copy constructor
42 AliITSMapA1& operator=(const AliITSMapA1 &source); // assignment operator
43
44 virtual ~AliITSMapA1();
45 virtual void FillMap();
46 virtual void ClearMap();
47 virtual Double_t GetSignal(Int_t iz, Int_t ix) {
48 // get signal
49 return 0.;
50 }
51 virtual void SetHit(Int_t iz, Int_t ix, Int_t idigit);
52 virtual void DeleteHit(Int_t iz, Int_t ix);
53 virtual Int_t GetHitIndex(Int_t iz, Int_t ix);
54 virtual TObject* GetHit(Int_t iz, Int_t ix);
55 virtual void FlagHit(Int_t iz, Int_t ix);
56 virtual Flag_t TestHit(Int_t iz, Int_t ix);
57 Int_t CheckedIndex(Int_t iz, Int_t ix);
58 Int_t MaxIndex() {
59 // max index
60 return fMaxIndex;
61 }
62 void SetArray(TObjArray *obj);
63
64protected:
65 AliITSsegmentation *fSegmentation; // segmentation class
66 Int_t fNpx; // fNpx
67 Int_t fNpz; // fNpz
68 TObjArray *fObjects; // object
69 Int_t fNobjects; // nu of object
70 Int_t fMaxIndex; // max index
71
72private:
73 Int_t *fHitMap; // hit map
74
75 ClassDef(AliITSMapA1,1) // Implements Hit/Digit Map for SDD - read tree
76 };
77
78
79class AliITSMapA2 :
80public AliITSMapA1
81{
82
83public:
84 AliITSMapA2(AliITSsegmentation *seg);
85 AliITSMapA2(AliITSsegmentation *seg, TObjArray *hist,Double_t thresh);
86 virtual ~AliITSMapA2();
87 AliITSMapA2(const AliITSMapA2 &source); // copy constructor
88 AliITSMapA2& operator=(const AliITSMapA2 &source); // assignment operator
89 virtual void FillMap();
90 virtual void ClearMap();
91 virtual void SetHit(Int_t iz, Int_t ix, Int_t signal){
92 // set hit
93 }
94 virtual void FlagHit(Int_t iz, Int_t ix);
95 virtual void DeleteHit(Int_t iz, Int_t ix);
96 virtual Int_t GetHitIndex(Int_t iz, Int_t ix);
97 virtual TObject * GetHit(Int_t iz, Int_t dummy);
98 virtual Flag_t TestHit(Int_t iz, Int_t ix);
99 virtual Double_t GetSignal(Int_t iz, Int_t ix);
100 void SetHit(Int_t iz, Int_t ix, Double_t signal);
101 Double_t GetSignal(Int_t index);
102
103private:
104 Double_t *fHitMap; // fHitMap
105 Double_t fMapThreshold; // fMapThreshold
106
107 void FillMapFromHist();
108 void FillHist();
109 void ResetHist();
110
111 ClassDef(AliITSMapA2,1) // Implements Signal Map for SDD -fill or read hist
112 };
113
114
115#endif
116
117
118
119