1 #ifndef ALITOFDIGITMAP_H
2 #define ALITOFDIGITMAP_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
8 //////////////////////////////////////////////////////////////
10 // AliTOFDigitMap class //
12 // digitmap enables fast check if the pad was already hit //
14 // Author: F. Pierella | pierella@bo.infn.it //
16 // Modified by A. De Caro | decaro@sa.infn.it //
18 //////////////////////////////////////////////////////////////
22 #include "AliHitMap.h"
24 class AliTOFDigitMap : public TObject
28 AliTOFDigitMap(const AliTOFDigitMap & digitMap);
30 virtual ~AliTOFDigitMap();
32 // Clear the digit map
33 virtual void Clear(const Option_t* opt = "");
35 void AddDigit(Int_t *vol, Int_t idigit);
37 // Get index of digit in the cell labelled by vol
38 Int_t GetDigitIndex(Int_t *vol, Int_t index) const;
39 // Get indices of digits in the cell labelled by vol
40 void GetDigitIndex(Int_t *vol, Int_t *index) const;
43 virtual FlagType TestDigit(Int_t *vol) const;
45 // Assignment operator
46 AliTOFDigitMap& operator = (const AliTOFDigitMap& rhs);
48 Int_t GetFilledCellNumber() const;
49 Bool_t StripDigitCheck(Int_t iSector, Int_t iPlate, Int_t iStrip) const;
50 Int_t DigitInStrip(Int_t iSector, Int_t iPlate, Int_t iStrip) const;
51 Int_t FilledCellsInStrip(Int_t iSector, Int_t iPlate, Int_t iStrip) const;
52 void ResetDigitNumber(Int_t *vol, Int_t dig);
53 void ResetDigit(Int_t *vol, Int_t dig);
54 void ResetDigit(Int_t *vol);
55 Int_t GetNumberOfDigits(Int_t *vol);
63 Int_t CheckedIndex(Int_t * const vol) const;
65 Int_t fNSector; // Number of sectors
66 Int_t fNplate; // Number of plates
67 Int_t fNstrip; // Maximum number of strips
68 Int_t fNpx; // Number of pads in x
69 Int_t fNpz; // Number of pads in z
71 Int_t fMaxIndex; // maximum index in hit map
72 Int_t **fDigitMap; // ! [fMaxIndex][kMaxDigitsPerPad]
74 ClassDef(AliTOFDigitMap,2) // Implements DigitMap as a 1-dim array