Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / ITS / AliITSMapA2.h
CommitLineData
e8189707 1#ifndef ALIITSMAPA2_H
2#define ALIITSMAPA2_H
766e3066 3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
5/* $Id$ */
e8189707 6
766e3066 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////////////////////////////////////////////////////////////////////////
e8189707 14
15#include "AliITSMapA1.h"
16
766e3066 17class 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
766e3066 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.
0de51c8a 34 virtual void SetHit(Int_t,Int_t,Int_t){}
db514d7e 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;}
e8189707 40 // Flag a hit as used
f62d4da1 41 // Set threshold for the signal
766e3066 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);
db514d7e 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
fb4e90e0 49 virtual Int_t GetHitIndex(Int_t iz, Int_t ix) const {
db514d7e 50 return CheckedIndex(iz, ix);};
e8189707 51 // Get object (1D histogram)
ce189d7c 52 virtual TObject *GetHit(Int_t iz, Int_t /* dummy */) const;
e8189707 53 // Test hit status
85ac1062 54 virtual FlagTypeITS TestHit(Int_t iz, Int_t ix);
766e3066 55 // Get signal using two dim. index
590d15ee 56 virtual Double_t GetSignal(Int_t iz, Int_t ix) const
766e3066 57 {return GetSignal(GetHitIndex(iz,ix));}
e8189707 58 // Get signal
590d15ee 59 Double_t GetSignal(Int_t index) const ;
766e3066 60 // Add new value to Map at cell
61 virtual void AddSignal(Int_t iz, Int_t ix, Double_t sig);
e8189707 62
766e3066 63 private:
06fe4cf0 64 AliITSMapA2(const AliITSMapA2 &source); // copy constructor
65 // assignment operator
66 AliITSMapA2& operator=(const AliITSMapA2 &source);
766e3066 67 void FillMapFromHist(); // fills the map from a historgram
68 void FillHist(); // fills a histogram from the map
69 void ResetHist(); // resets the histogram
e8189707 70
766e3066 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
e8189707 75
766e3066 76 ClassDef(AliITSMapA2,1) // Implements Signal Map
e8189707 77};
78
e8189707 79#endif