]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ITS/AliITSMapA2.h
Bug fixes, warnings only in case of debug option, more comments (P.Skowronski)
[u/mrichter/AliRoot.git] / ITS / AliITSMapA2.h
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     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.
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;}
43     // Flag a hit as used
44     // Set threshold for the signal
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);
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);
56     // Test hit status
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));}
61     // Get signal
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);
65
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
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     ClassDef(AliITSMapA2,1) // Implements Signal Map
77 };
78
79 #endif