]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ITS/AliITSMapA2.h
1) Flag all track with kITSupg bit.
[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     // 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     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         fHitMapD[CheckedIndex(iz, ix)]=signal;}
38     // set signal at a certain position in array
39     void  SetHit(Int_t index, Double_t signal){fHitMapD[index]=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     //set the entry value to zero
46     virtual  void  DeleteHit(Int_t iz, Int_t ix){
47         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         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 FlagType 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         {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     ClassDef(AliITSMapA2,1) // Implements Signal Map
77 };
78
79 #endif