]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TRD/AliTRDdigitsManager.h
Changes in digits IO. Add merging of summable digits
[u/mrichter/AliRoot.git] / TRD / AliTRDdigitsManager.h
1 #ifndef ALITRDDIGITSMANAGER_H
2 #define ALITRDDIGITSMANAGER_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 /* $Id: AliTRDdigitsManager.h,v */
8
9 /////////////////////////////////////////////////////////////
10 //  Manages the TRD digits                                 //
11 /////////////////////////////////////////////////////////////
12
13 #include <TObject.h>
14
15 class TFile;
16 class TTree;
17
18 class AliTRDsegmentArray;
19 class AliTRDdataArrayI;
20 class AliTRDdigit;
21
22 class AliTRDdigitsManager : public TObject {
23
24  public:
25
26   enum { kNDict = 3 };
27
28   AliTRDdigitsManager();
29   AliTRDdigitsManager(const AliTRDdigitsManager &m);
30   virtual ~AliTRDdigitsManager();
31   AliTRDdigitsManager &operator=(const AliTRDdigitsManager &m);
32
33   virtual void                CreateArrays();
34   virtual void                Copy(TObject &m);
35   virtual Bool_t              Open(const Char_t *name);
36   virtual Bool_t              MakeBranch(const Char_t *file = 0);
37   virtual Bool_t              ReadDigits();
38   virtual Bool_t              WriteDigits();
39
40   virtual void                SetRaw();
41   virtual void                SetEvent(Int_t evt)          { fEvent   = evt; };
42   virtual void                SetVerbose(Int_t v = 1)      { fVerbose = v;   };
43   virtual void                SetSDigits(Int_t v = 1)      { fSDigits = v;   };
44
45   virtual Bool_t              IsRaw() const                { return fIsRaw;         };
46   static  Int_t               NDict()                      { return fgkNDict;       }; 
47
48   virtual AliTRDsegmentArray *GetDigits() const            { return fDigits;        };
49   virtual AliTRDsegmentArray *GetDictionary(Int_t i) const { return fDictionary[i]; };
50
51           AliTRDdigit        *GetDigit(Int_t row, Int_t col, Int_t time, Int_t det) const;
52           Int_t               GetTrack(Int_t track, Int_t row, Int_t col
53                                      , Int_t time, Int_t det) const;
54
55           AliTRDdataArrayI   *GetDigits(Int_t det) const;
56           AliTRDdataArrayI   *GetDictionary(Int_t det, Int_t i) const;
57           Int_t               GetTrack(Int_t track, AliTRDdigit *Digit) const;
58           Short_t             GetDigitAmp(Int_t row, Int_t col, Int_t time, Int_t det) const;
59
60  protected:
61
62   static const Int_t  fgkNDict;            //  Number of track dictionary arrays
63
64   Int_t               fEvent;              //  Event number
65
66   TFile              *fFile;               //! File containing the TRD digits tree
67   TTree              *fTree;               //! Tree for the digits arrays
68
69   AliTRDsegmentArray *fDigits;             //! Digits data array
70   AliTRDsegmentArray *fDictionary[kNDict]; //! Track dictionary data array
71
72   Bool_t              fIsRaw;              //  Flag indicating raw digits
73   Bool_t              fSDigits;            //  Switch for the summable digits
74   Int_t               fVerbose;            //  Verbose flag
75
76   ClassDef(AliTRDdigitsManager,3)          //  Manages the TRD digits
77
78 };
79
80 #endif