Line data Source code
1 : #ifndef ALIITSMAPA2_H
2 : #define ALIITSMAPA2_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 : ////////////////////////////////////////////////////////////////////////
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 : ////////////////////////////////////////////////////////////////////////
14 :
15 : #include "AliITSMapA1.h"
16 :
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 : // 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.
34 0 : virtual void SetHit(Int_t,Int_t,Int_t){}
35 : // set signal at a certain position in array
36 : void SetHit(Int_t iz, Int_t ix, Double_t signal){
37 21997592 : fHitMapD[CheckedIndex(iz, ix)]=signal;}
38 : // set signal at a certain position in array
39 0 : void SetHit(Int_t index, Double_t signal){fHitMapD[index]=signal;}
40 : // Flag a hit as used
41 : // Set threshold for the signal
42 0 : 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);
45 : //set the entry value to zero
46 : virtual void DeleteHit(Int_t iz, Int_t ix){
47 0 : fHitMapD[CheckedIndex(iz, ix)]=0;}
48 : //return the index of an entry in array
49 : virtual Int_t GetHitIndex(Int_t iz, Int_t ix) const {
50 146691882 : return CheckedIndex(iz, ix);};
51 : // Get object (1D histogram)
52 : virtual TObject *GetHit(Int_t iz, Int_t /* dummy */) const;
53 : // Test hit status
54 : virtual FlagTypeITS TestHit(Int_t iz, Int_t ix);
55 : // Get signal using two dim. index
56 : virtual Double_t GetSignal(Int_t iz, Int_t ix) const
57 125809478 : {return GetSignal(GetHitIndex(iz,ix));}
58 : // Get signal
59 : Double_t GetSignal(Int_t index) const ;
60 : // Add new value to Map at cell
61 : virtual void AddSignal(Int_t iz, Int_t ix, Double_t sig);
62 :
63 : private:
64 : AliITSMapA2(const AliITSMapA2 &source); // copy constructor
65 : // assignment operator
66 : AliITSMapA2& operator=(const AliITSMapA2 &source);
67 : void FillMapFromHist(); // fills the map from a historgram
68 : void FillHist(); // fills a histogram from the map
69 : void ResetHist(); // resets the histogram
70 :
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
75 :
76 118 : ClassDef(AliITSMapA2,1) // Implements Signal Map
77 : };
78 :
79 : #endif
|