GetMedium replaced by CurrentMedium (I.Hrivnacova)
[u/mrichter/AliRoot.git] / TOF / AliTOFSDigit.h
1 #ifndef ALITOFSDIGIT_H
2 #define ALITOFSDIGIT_H
3
4 ////////////////////////////////////////////////
5 //                                            //
6 //  Class for TOF SDigits                     //
7 //                                            //
8 ////////////////////////////////////////////////
9
10 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
11  * See cxx source for full Copyright notice                               */
12
13 /* $Id$ */
14
15 #include "TArrayF.h"
16 #include "TArrayI.h"
17 #include "AliDigit.h"
18
19 //class TArrayF;
20 class AliTOFGeometry;
21
22 // number 3 is a legacy from AliDigit object
23 const Int_t kMAXDIGITS = 3;
24
25 class AliTOFSDigit : public TObject {
26
27   //overloading of the streamer << operator
28   //friend ostream& operator << ( ostream& , const AliTOFSDigit&) ;
29
30  public:
31   AliTOFSDigit();
32   AliTOFSDigit(Int_t tracknum, Int_t* vol, Float_t* digit);
33 // new ctor for sdigits
34   AliTOFSDigit(Int_t sector, Int_t plate, Int_t strip, Int_t padx, Int_t padz, Float_t tdc, Float_t adc);
35 // copy ctor
36   AliTOFSDigit(const AliTOFSDigit & digit) ;
37   virtual ~AliTOFSDigit();
38   void            GetLocation(Int_t* Loc) const;
39   Int_t           GetTotPad(AliTOFGeometry *tofGeom) const;
40
41   void Update(Float_t tdcbin, Int_t tdc, Int_t adc, Int_t track);
42   void Update(AliTOFSDigit* sdig);
43
44 // getters for AliTOFSDigit object 
45   Int_t   GetNDigits() const    {return fNDigits;}
46   Float_t GetTdc(Int_t i) const {return fTdc->At(i);}
47   Float_t GetAdc(Int_t i) const {return fAdc->At(i);}
48 //  Int_t   GetNTracks(Int_t i) const {return fTracks[i]->GetSize();}
49   Int_t   GetTrack(Int_t i, Int_t j) const {return fTracks->At(i*kMAXDIGITS+j);}
50   Int_t   GetSector() const     {return fSector;}
51   Int_t   GetPlate()  const     {return fPlate;}
52   Int_t   GetStrip()  const     {return fStrip;}
53   Int_t   GetPadx()   const     {return fPadx;}
54   Int_t   GetPadz()   const     {return fPadz;}
55
56 protected:
57   Int_t   fSector;  // number of sector
58   Int_t   fPlate;   // number of plate
59   Int_t   fStrip;   // number of strip
60   Int_t   fPadx;    // number of pad along x
61   Int_t   fPadz;    // number of pad along z
62   Int_t   fNDigits;  // dimension of fTdc array
63   TArrayF *fTdc;     // tdc values for sdigit
64   TArrayF *fAdc;     // adc values for sdigit
65   TArrayI *fTracks;  // contributing tracks, kMAXDIGITS entries per
66                      // 1 tdc value
67
68 //  Float_t *fTdc;    //[fNDigits] tdc values for sdigit
69 //  Float_t *fAdc;    //[fNDigits] adc values for sdigit
70 //  Int_t **fTracks;  //[fNDigits] contributing tracks, pointers to
71                       //arrays with track indices
72
73   ClassDef(AliTOFSDigit,1)  // SDigit for Time Of Flight
74 };
75
76 #endif /* ALITOFSDIGIT_H */