Line data Source code
1 : #ifndef ALIITSMAPA1_H
2 : #define ALIITSMAPA1_H
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 : ////////////////////////////////////////////////////////////////////////
11 : #include "AliITSMap.h"
12 : #include "TArrayI.h"
13 :
14 : class AliITSsegmentation;
15 : class TObjArray;
16 :
17 : class AliITSMapA1 : public AliITSMap{
18 :
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
27 : AliITSMapA1(AliITSsegmentation *seg, TObjArray *dig, Int_t thr);
28 : AliITSMapA1(AliITSsegmentation *seg, TObjArray *dig, TArrayI thr);
29 : // Distructor
30 : virtual ~AliITSMapA1();
31 : // Fill hits from list of digits into hit map
32 : virtual void FillMap();
33 : virtual void FillMap2();
34 : // Clear the hit map
35 : virtual void ClearMap();
36 : // Set a single hit
37 : virtual void SetHit(Int_t iz, Int_t ix, Int_t idigit);
38 : // Set threshold for the signal
39 0 : virtual void SetThreshold(Int_t thresh) {fMapThreshold=thresh;}
40 0 : virtual void SetThresholdArr(TArrayI th) {fMapThresholdArr=th;}
41 : // Delete a single hit
42 : virtual void DeleteHit(Int_t iz, Int_t ix);
43 : // Get index of hit in the list of digits
44 : virtual Int_t GetHitIndex(Int_t iz, Int_t ix) const ;
45 : // Get pointer to digit
46 : virtual TObject* GetHit(Int_t iz, Int_t ix) const;
47 : // Flag a hit as used
48 : virtual void FlagHit(Int_t iz, Int_t ix);
49 : // Test hit status
50 : virtual FlagTypeITS TestHit(Int_t iz, Int_t ix);
51 : // Get signal from map
52 : virtual Double_t GetSignal(Int_t iz, Int_t ix) const;
53 : // Get max index inmap
54 0 : Int_t MaxIndex() const {return fMaxIndex;}
55 : // Set the array of objects
56 : void SetArray(TObjArray *obj);
57 :
58 : protected:
59 : // Copy Constructor
60 : AliITSMapA1(const AliITSMapA1 &source);
61 : // Assignment operator
62 : AliITSMapA1& operator=(const AliITSMapA1 &source);
63 : // Check index
64 : Int_t CheckedIndex(Int_t iz, Int_t ix) const;
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
73 : TArrayI fMapThresholdArr; // array with thresholds
74 : private:
75 : Int_t *fHitMap; //! [fMaxIndex]
76 : Int_t fMapThreshold; // signal threshold (ADC)
77 :
78 118 : ClassDef(AliITSMapA1,2) // Implements Hit/Digit Map
79 : };
80 :
81 : #endif
82 :
|