]>
Commit | Line | Data |
---|---|---|
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 |