]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ITS/AliITSMapA2.h
Added many comments and some documentation, fixed up some coding violations
[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 hit
39     void  SetHit(Int_t iz, Int_t ix, Double_t signal);
40     // Flag a hit as used
41     // Set threshold for the signal
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);
45     // delets hit from map
46     virtual  void  DeleteHit(Int_t iz, Int_t ix);
47     // Get index in the map
48     virtual Int_t  GetHitIndex(Int_t iz, Int_t ix);
49     // Get object (1D histogram)
50     virtual TObject *GetHit(Int_t iz, Int_t dummy);
51     // Test hit status
52     virtual FlagType TestHit(Int_t iz, Int_t ix);
53     // Get signal using two dim. index
54     virtual Double_t GetSignal(Int_t iz, Int_t ix)
55         {return GetSignal(GetHitIndex(iz,ix));}
56     // Get signal
57     Double_t GetSignal(Int_t index);
58     // Add new value to Map at cell
59     virtual void AddSignal(Int_t iz, Int_t ix, Double_t sig);
60
61  private:
62     void  FillMapFromHist(); // fills the map from a historgram
63     void  FillHist(); // fills a histogram from the map
64     void  ResetHist(); // resets the histogram
65
66     Double_t *fHitMapD;         //! [fMaxIndex]
67     Double_t fMapThresholdD;    // threshold for signal
68     Int_t    fScaleSizeX;       // scale factor on x
69     Int_t    fScaleSizeZ;       // scale factor on z
70
71     ClassDef(AliITSMapA2,1) // Implements Signal Map
72 };
73
74 #endif