A zero-th attempt to speed up map filling in FinishDigits.
[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
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);
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);
45 // delets hit from map
46 virtual void DeleteHit(Int_t iz, Int_t ix);
e8189707 47 // Get index in the map
766e3066 48 virtual Int_t GetHitIndex(Int_t iz, Int_t ix);
e8189707 49 // Get object (1D histogram)
766e3066 50 virtual TObject *GetHit(Int_t iz, Int_t dummy);
e8189707 51 // Test hit status
766e3066 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));}
e8189707 56 // Get signal
766e3066 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);
e8189707 60
766e3066 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
e8189707 65
766e3066 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
e8189707 70
766e3066 71 ClassDef(AliITSMapA2,1) // Implements Signal Map
e8189707 72};
73
e8189707 74#endif