updating of the TOF volume numbering (ALICE-INT-2003-038)
[u/mrichter/AliRoot.git] / TOF / AliTOFDigitMap.h
1 #ifndef ALITOFDIGITMAP_H
2 #define ALITOFDIGITMAP_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7
8 ////////////////////////////////////////////////////////////////////////
9 //
10 // AliTOFDigitMap class
11 //
12 // digitmap enables fast check if the pad was already hit
13 //
14 // Author: F. Pierella | pierella@bo.infn.it
15 //
16 ////////////////////////////////////////////////////////////////////////
17
18 #include "AliHitMap.h"
19 #include "TObject.h"
20 class TClonesArray;
21
22 class AliTOFDigitMap : public TObject
23 {
24  public:
25     AliTOFDigitMap();
26     AliTOFDigitMap(TClonesArray *dig);
27     AliTOFDigitMap(const AliTOFDigitMap & digitMap);
28     
29     virtual ~AliTOFDigitMap();
30     // Clear the hit map
31     virtual  void  Clear(const char *opt = "");
32     // Set a single hit
33     virtual  void  SetHit(Int_t *vol, Int_t idigit);
34     virtual  void  SetHit(Int_t *vol);
35     // Get index of hit in the list of digits
36     virtual Int_t  GetHitIndex(Int_t *vol) const;
37     // Get pointer to digit
38     virtual TObject*  GetHit(Int_t *vol) const;
39     // Test hit status
40     virtual FlagType TestHit(Int_t *vol) const;
41     // Assignment operator
42     AliTOFDigitMap& operator = (const AliTOFDigitMap& rhs);
43     
44  private:
45     // Check index
46     Int_t CheckedIndex(Int_t *vol) const;
47  private:
48     Int_t fNSector;                       // Number of sectors
49     Int_t fNplate;                        // Number of plates
50     Int_t fNstrip;                        // Maximum number of strips
51     Int_t fNpx;                           // Number of pads in x
52     Int_t fNpz;                           // Number of pads in z
53
54     TClonesArray *fDigits;               // Pointer to sdigits
55     Int_t fMaxIndex;                      // maximum index in hit map
56     Int_t *fDigitMap;                       // ! [fMaxIndex]         
57
58     ClassDef(AliTOFDigitMap,0) // Implements DigitMap as a 1-dim array
59 };
60 #endif