Changes related to the extraction of the V0 finder into a separate class (A. Dainese...
[u/mrichter/AliRoot.git] / ITS / AliITSMapA1.h
CommitLineData
e8189707 1#ifndef ALIITSMAPA1_H
2#define ALIITSMAPA1_H
766e3066 3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
5/* $Id$ */
6////////////////////////////////////////////////////////////////////////
7// Map Class for ITS. Implementation A1. In this implementation, the //
8// 2 dimensional (iz,ix) map is filled with integers values. For each //
9// cell a corresponding TObject, a hit, can also be stored. //
10////////////////////////////////////////////////////////////////////////
e8189707 11#include "AliITSMap.h"
f45f6658 12#include "TArrayI.h"
13
e8189707 14class AliITSsegmentation;
15class TObjArray;
16
766e3066 17class AliITSMapA1 : public AliITSMap{
e8189707 18
766e3066 19 public:
20 AliITSMapA1(); // default creator
21 // Standard reator using only a segmentation class
22 AliITSMapA1(AliITSsegmentation *seg);
23 // Standard reator using only a segmentation class and pointer to digits
24 AliITSMapA1(AliITSsegmentation *seg, TObjArray *dig);
25 // Standard reator using only a segmentation class and pointer to digits
26 // and a threshold value
f45f6658 27 AliITSMapA1(AliITSsegmentation *seg, TObjArray *dig, Int_t thr);
28 AliITSMapA1(AliITSsegmentation *seg, TObjArray *dig, TArrayI thr);
766e3066 29 // Copy Operator
30 AliITSMapA1(const AliITSMapA1 &source);
e8189707 31 // Assignment operator
766e3066 32 AliITSMapA1& operator=(const AliITSMapA1 &source);
33 // Distructor
34 virtual ~AliITSMapA1();
e8189707 35 // Fill hits from list of digits into hit map
766e3066 36 virtual void FillMap();
f45f6658 37 virtual void FillMap2();
e8189707 38 // Clear the hit map
766e3066 39 virtual void ClearMap();
e8189707 40 // Set a single hit
766e3066 41 virtual void SetHit(Int_t iz, Int_t ix, Int_t idigit);
94e213f9 42 // Set threshold for the signal
766e3066 43 virtual void SetThreshold(Int_t thresh) {fMapThreshold=thresh;}
f45f6658 44 virtual void SetThresholdArr(TArrayI th) {fMapThresholdArr=th;}
e8189707 45 // Delete a single hit
766e3066 46 virtual void DeleteHit(Int_t iz, Int_t ix);
e8189707 47 // Get index of hit in the list of digits
fb4e90e0 48 virtual Int_t GetHitIndex(Int_t iz, Int_t ix) const ;
e8189707 49 // Get pointer to digit
590d15ee 50 virtual TObject* GetHit(Int_t iz, Int_t ix) const;
e8189707 51 // Flag a hit as used
766e3066 52 virtual void FlagHit(Int_t iz, Int_t ix);
e8189707 53 // Test hit status
766e3066 54 virtual FlagType TestHit(Int_t iz, Int_t ix);
e8189707 55 // Get signal from map
590d15ee 56 virtual Double_t GetSignal(Int_t iz, Int_t ix) const;
e8189707 57 // Get max index inmap
766e3066 58 Int_t MaxIndex() const {return fMaxIndex;}
59 // Set the array of objects
60 void SetArray(TObjArray *obj);
61
62 protected:
e8189707 63 // Check index
fb4e90e0 64 Int_t CheckedIndex(Int_t iz, Int_t ix) const;
766e3066 65
66 // Data members
67 AliITSsegmentation *fSegmentation; // segmentation class
68 Int_t fNpx; // fNpx
69 Int_t fNpz; // fNpz
70 TObjArray *fObjects; // object
71 Int_t fNobjects; // number of objects
72 Int_t fMaxIndex; // max index in map
f45f6658 73 TArrayI fMapThresholdArr; // array with thresholds
766e3066 74 private:
75 Int_t *fHitMap; //! [fMaxIndex]
76 Int_t fMapThreshold; // signal threshold (ADC)
e8189707 77
f45f6658 78 ClassDef(AliITSMapA1,2) // Implements Hit/Digit Map
e8189707 79};
80
81#endif
82