]>
Commit | Line | Data |
---|---|---|
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 | |
29 | AliITSMapA2(const AliITSMapA2 &source); // copy constructor | |
30 | // assignment operator | |
31 | AliITSMapA2& operator=(const AliITSMapA2 &source); | |
32 | // fill pad signals into map | |
33 | virtual void FillMap(); | |
34 | // clear map | |
35 | virtual void ClearMap(); | |
36 | // set hit. Over written with a null function. See Double version below. | |
0de51c8a | 37 | virtual void SetHit(Int_t,Int_t,Int_t){} |
db514d7e | 38 | // set signal at a certain position in array |
39 | void SetHit(Int_t iz, Int_t ix, Double_t signal){ | |
40 | fHitMapD[CheckedIndex(iz, ix)]=signal;} | |
41 | // set signal at a certain position in array | |
42 | void SetHit(Int_t index, Double_t signal){fHitMapD[index]=signal;} | |
e8189707 | 43 | // Flag a hit as used |
f62d4da1 | 44 | // Set threshold for the signal |
766e3066 | 45 | virtual void SetThreshold(Int_t thresh) {fMapThresholdD=(Double_t)thresh;} |
46 | // flags hit in map | |
47 | virtual void FlagHit(Int_t iz, Int_t ix); | |
db514d7e | 48 | //set the entry value to zero |
49 | virtual void DeleteHit(Int_t iz, Int_t ix){ | |
50 | fHitMapD[CheckedIndex(iz, ix)]=0;} | |
51 | //return the index of an entry in array | |
fb4e90e0 | 52 | virtual Int_t GetHitIndex(Int_t iz, Int_t ix) const { |
db514d7e | 53 | return CheckedIndex(iz, ix);}; |
e8189707 | 54 | // Get object (1D histogram) |
590d15ee | 55 | virtual TObject *GetHit(Int_t iz, Int_t dummy) const; |
e8189707 | 56 | // Test hit status |
766e3066 | 57 | virtual FlagType TestHit(Int_t iz, Int_t ix); |
58 | // Get signal using two dim. index | |
590d15ee | 59 | virtual Double_t GetSignal(Int_t iz, Int_t ix) const |
766e3066 | 60 | {return GetSignal(GetHitIndex(iz,ix));} |
e8189707 | 61 | // Get signal |
590d15ee | 62 | Double_t GetSignal(Int_t index) const ; |
766e3066 | 63 | // Add new value to Map at cell |
64 | virtual void AddSignal(Int_t iz, Int_t ix, Double_t sig); | |
e8189707 | 65 | |
766e3066 | 66 | private: |
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 |