3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
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 ////////////////////////////////////////////////////////////////////////
15 #include "AliITSMapA1.h"
17 class AliITSMapA2 : public AliITSMapA1{
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
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();
35 virtual void ClearMap();
36 // set hit. Over written with a null function. See Double version below.
37 virtual void SetHit(Int_t iz, Int_t ix, Int_t signal){}
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;}
44 // Set threshold for the signal
45 virtual void SetThreshold(Int_t thresh) {fMapThresholdD=(Double_t)thresh;}
47 virtual void FlagHit(Int_t iz, Int_t ix);
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
52 virtual Int_t GetHitIndex(Int_t iz, Int_t ix){
53 return CheckedIndex(iz, ix);};
54 // Get object (1D histogram)
55 virtual TObject *GetHit(Int_t iz, Int_t dummy);
57 virtual FlagType TestHit(Int_t iz, Int_t ix);
58 // Get signal using two dim. index
59 virtual Double_t GetSignal(Int_t iz, Int_t ix)
60 {return GetSignal(GetHitIndex(iz,ix));}
62 Double_t GetSignal(Int_t index);
63 // Add new value to Map at cell
64 virtual void AddSignal(Int_t iz, Int_t ix, Double_t sig);
67 void FillMapFromHist(); // fills the map from a historgram
68 void FillHist(); // fills a histogram from the map
69 void ResetHist(); // resets the histogram
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
76 ClassDef(AliITSMapA2,1) // Implements Signal Map