e8189707 |
1 | #ifndef ALIITSMAPA1_H |
2 | #define ALIITSMAPA1_H |
766e3066 |
3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * |
4 | * See cxx source for full Copyright notice */ |
5 | /* $Id$ */ |
6 | //////////////////////////////////////////////////////////////////////// |
7 | // Map Class for ITS. Implementation A1. In this implementation, the // |
8 | // 2 dimensional (iz,ix) map is filled with integers values. For each // |
9 | // cell a corresponding TObject, a hit, can also be stored. // |
10 | //////////////////////////////////////////////////////////////////////// |
e8189707 |
11 | #include "AliITSMap.h" |
f45f6658 |
12 | #include "TArrayI.h" |
13 | |
e8189707 |
14 | class AliITSsegmentation; |
15 | class TObjArray; |
16 | |
766e3066 |
17 | class AliITSMapA1 : public AliITSMap{ |
e8189707 |
18 | |
766e3066 |
19 | public: |
20 | AliITSMapA1(); // default creator |
21 | // Standard reator using only a segmentation class |
22 | AliITSMapA1(AliITSsegmentation *seg); |
23 | // Standard reator using only a segmentation class and pointer to digits |
24 | AliITSMapA1(AliITSsegmentation *seg, TObjArray *dig); |
25 | // Standard reator using only a segmentation class and pointer to digits |
26 | // and a threshold value |
f45f6658 |
27 | AliITSMapA1(AliITSsegmentation *seg, TObjArray *dig, Int_t thr); |
28 | AliITSMapA1(AliITSsegmentation *seg, TObjArray *dig, TArrayI thr); |
766e3066 |
29 | // Distructor |
30 | virtual ~AliITSMapA1(); |
e8189707 |
31 | // Fill hits from list of digits into hit map |
766e3066 |
32 | virtual void FillMap(); |
f45f6658 |
33 | virtual void FillMap2(); |
e8189707 |
34 | // Clear the hit map |
766e3066 |
35 | virtual void ClearMap(); |
e8189707 |
36 | // Set a single hit |
766e3066 |
37 | virtual void SetHit(Int_t iz, Int_t ix, Int_t idigit); |
94e213f9 |
38 | // Set threshold for the signal |
766e3066 |
39 | virtual void SetThreshold(Int_t thresh) {fMapThreshold=thresh;} |
f45f6658 |
40 | virtual void SetThresholdArr(TArrayI th) {fMapThresholdArr=th;} |
e8189707 |
41 | // Delete a single hit |
766e3066 |
42 | virtual void DeleteHit(Int_t iz, Int_t ix); |
e8189707 |
43 | // Get index of hit in the list of digits |
fb4e90e0 |
44 | virtual Int_t GetHitIndex(Int_t iz, Int_t ix) const ; |
e8189707 |
45 | // Get pointer to digit |
590d15ee |
46 | virtual TObject* GetHit(Int_t iz, Int_t ix) const; |
e8189707 |
47 | // Flag a hit as used |
766e3066 |
48 | virtual void FlagHit(Int_t iz, Int_t ix); |
e8189707 |
49 | // Test hit status |
766e3066 |
50 | virtual FlagType TestHit(Int_t iz, Int_t ix); |
e8189707 |
51 | // Get signal from map |
590d15ee |
52 | virtual Double_t GetSignal(Int_t iz, Int_t ix) const; |
e8189707 |
53 | // Get max index inmap |
766e3066 |
54 | Int_t MaxIndex() const {return fMaxIndex;} |
55 | // Set the array of objects |
56 | void SetArray(TObjArray *obj); |
57 | |
58 | protected: |
06fe4cf0 |
59 | // Copy Constructor |
60 | AliITSMapA1(const AliITSMapA1 &source); |
61 | // Assignment operator |
62 | AliITSMapA1& operator=(const AliITSMapA1 &source); |
e8189707 |
63 | // Check index |
fb4e90e0 |
64 | Int_t CheckedIndex(Int_t iz, Int_t ix) const; |
766e3066 |
65 | |
66 | // Data members |
67 | AliITSsegmentation *fSegmentation; // segmentation class |
68 | Int_t fNpx; // fNpx |
69 | Int_t fNpz; // fNpz |
70 | TObjArray *fObjects; // object |
71 | Int_t fNobjects; // number of objects |
72 | Int_t fMaxIndex; // max index in map |
f45f6658 |
73 | TArrayI fMapThresholdArr; // array with thresholds |
766e3066 |
74 | private: |
75 | Int_t *fHitMap; //! [fMaxIndex] |
76 | Int_t fMapThreshold; // signal threshold (ADC) |
e8189707 |
77 | |
f45f6658 |
78 | ClassDef(AliITSMapA1,2) // Implements Hit/Digit Map |
e8189707 |
79 | }; |
80 | |
81 | #endif |
82 | |