e8189707 |
1 | #ifndef ALIITSMAPA2_H |
2 | #define ALIITSMAPA2_H |
766e3066 |
3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * |
4 | * See cxx source for full Copyright notice */ |
5 | /* $Id$ */ |
e8189707 |
6 | |
766e3066 |
7 | //////////////////////////////////////////////////////////////////////// |
8 | // Map Class for ITS. Implementation A2. In this implementation, the // |
9 | // 2 dimensional (iz,ix) map is filled with Double precision floating // |
10 | // point values. For each cell a corresponding TObject, a hit, can // |
11 | // also be stored. This class is derived from AliITSMapA1 so that is // |
12 | // retains all of the functionality of that map class as well. // |
13 | //////////////////////////////////////////////////////////////////////// |
e8189707 |
14 | |
15 | #include "AliITSMapA1.h" |
16 | |
766e3066 |
17 | class AliITSMapA2 : public AliITSMapA1{ |
18 | |
19 | public: |
20 | AliITSMapA2(); // default creator |
21 | // Standard reator using only a segmentation class |
22 | AliITSMapA2(AliITSsegmentation *seg); |
23 | // Standard reator using only a segmentation class and X and Z scale sizes |
24 | AliITSMapA2(AliITSsegmentation *seg,Int_t scalesizeX,Int_t scalesizeZ); |
25 | // Standard reator using only a segmentation class pointer to hits, and |
26 | // a threshold value |
27 | AliITSMapA2(AliITSsegmentation *seg, TObjArray *hist,Double_t thresh); |
28 | virtual ~AliITSMapA2(); // destructor |
766e3066 |
29 | // fill pad signals into map |
30 | virtual void FillMap(); |
31 | // clear map |
32 | virtual void ClearMap(); |
33 | // set hit. Over written with a null function. See Double version below. |
0de51c8a |
34 | virtual void SetHit(Int_t,Int_t,Int_t){} |
db514d7e |
35 | // set signal at a certain position in array |
36 | void SetHit(Int_t iz, Int_t ix, Double_t signal){ |
37 | fHitMapD[CheckedIndex(iz, ix)]=signal;} |
38 | // set signal at a certain position in array |
39 | void SetHit(Int_t index, Double_t signal){fHitMapD[index]=signal;} |
e8189707 |
40 | // Flag a hit as used |
f62d4da1 |
41 | // Set threshold for the signal |
766e3066 |
42 | virtual void SetThreshold(Int_t thresh) {fMapThresholdD=(Double_t)thresh;} |
43 | // flags hit in map |
44 | virtual void FlagHit(Int_t iz, Int_t ix); |
db514d7e |
45 | //set the entry value to zero |
46 | virtual void DeleteHit(Int_t iz, Int_t ix){ |
47 | fHitMapD[CheckedIndex(iz, ix)]=0;} |
48 | //return the index of an entry in array |
fb4e90e0 |
49 | virtual Int_t GetHitIndex(Int_t iz, Int_t ix) const { |
db514d7e |
50 | return CheckedIndex(iz, ix);}; |
e8189707 |
51 | // Get object (1D histogram) |
ce189d7c |
52 | virtual TObject *GetHit(Int_t iz, Int_t /* dummy */) const; |
e8189707 |
53 | // Test hit status |
85ac1062 |
54 | virtual FlagTypeITS TestHit(Int_t iz, Int_t ix); |
766e3066 |
55 | // Get signal using two dim. index |
590d15ee |
56 | virtual Double_t GetSignal(Int_t iz, Int_t ix) const |
766e3066 |
57 | {return GetSignal(GetHitIndex(iz,ix));} |
e8189707 |
58 | // Get signal |
590d15ee |
59 | Double_t GetSignal(Int_t index) const ; |
766e3066 |
60 | // Add new value to Map at cell |
61 | virtual void AddSignal(Int_t iz, Int_t ix, Double_t sig); |
e8189707 |
62 | |
766e3066 |
63 | private: |
06fe4cf0 |
64 | AliITSMapA2(const AliITSMapA2 &source); // copy constructor |
65 | // assignment operator |
66 | AliITSMapA2& operator=(const AliITSMapA2 &source); |
766e3066 |
67 | void FillMapFromHist(); // fills the map from a historgram |
68 | void FillHist(); // fills a histogram from the map |
69 | void ResetHist(); // resets the histogram |
e8189707 |
70 | |
766e3066 |
71 | Double_t *fHitMapD; //! [fMaxIndex] |
72 | Double_t fMapThresholdD; // threshold for signal |
73 | Int_t fScaleSizeX; // scale factor on x |
74 | Int_t fScaleSizeZ; // scale factor on z |
e8189707 |
75 | |
766e3066 |
76 | ClassDef(AliITSMapA2,1) // Implements Signal Map |
e8189707 |
77 | }; |
78 | |
e8189707 |
79 | #endif |