1 #ifndef ALITRDDIGITSMANAGER_H
2 #define ALITRDDIGITSMANAGER_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
9 /////////////////////////////////////////////////////////////
10 // Manages the TRD digits //
11 /////////////////////////////////////////////////////////////
18 class AliTRDsegmentArray;
19 class AliTRDdataArray;
21 class AliTRDSignalIndex;
23 class AliTRDdigitsManager : public TObject {
29 AliTRDdigitsManager();
30 AliTRDdigitsManager(const AliTRDdigitsManager &m);
31 virtual ~AliTRDdigitsManager();
32 AliTRDdigitsManager &operator=(const AliTRDdigitsManager &m);
34 virtual void Copy(TObject &m) const;
36 virtual void CreateArrays();
37 virtual void ResetArrays();
38 virtual Bool_t BuildIndexes(Int_t det);
40 virtual Bool_t MakeBranch(TTree *tree);
41 virtual Bool_t ReadDigits(TTree *tree);
42 virtual Bool_t WriteDigits();
44 virtual void SetEvent(Int_t evt) { fEvent = evt; };
45 virtual void SetSDigits(Int_t v = 1) { fHasSDigits = v; };
46 virtual void SetUseDictionaries(Bool_t kval) { fUseDictionaries = kval; };
48 virtual Bool_t UsesDictionaries() const { return fUseDictionaries; };
49 virtual Bool_t HasSDigits() const { return fHasSDigits; };
50 static Int_t NDict() { return fgkNDict; };
52 virtual AliTRDsegmentArray *GetDigits() const { return fDigits; };
53 virtual AliTRDsegmentArray *GetDictionary(Int_t i) const { return fDictionary[i]; };
55 AliTRDdigit *GetDigit(Int_t row, Int_t col, Int_t time, Int_t det) const;
56 Int_t GetTrack(Int_t track, Int_t row, Int_t col
57 , Int_t time, Int_t det) const;
59 AliTRDdataArray *GetDigits(Int_t det) const;
60 AliTRDdataArray *GetDictionary(Int_t det, Int_t i) const;
62 AliTRDSignalIndex *GetIndexes(Int_t det);
63 TObjArray *GetIndexes() { return fSignalIndexes; };
65 void RemoveDigits(Int_t det);
66 void RemoveDictionaries(Int_t det);
67 void ClearIndexes(Int_t det);
69 Int_t GetTrack(Int_t track, AliTRDdigit *digit) const;
70 Short_t GetDigitAmp(Int_t row, Int_t col, Int_t time, Int_t det) const;
74 static const Int_t fgkNDict; // Number of track dictionary arrays
76 Int_t fEvent; // Event number
77 TTree *fTree; //! Tree for the digits arrays
79 AliTRDsegmentArray *fDigits; //! Digits data array
80 AliTRDsegmentArray *fDictionary[kNDict]; //! Track dictionary data array
82 Bool_t fHasSDigits; // Switch for the summable digits
84 TObjArray *fSignalIndexes; // Provides access to the active pads and tbins
85 Bool_t fUseDictionaries; // Use dictionaries or not (case of real data)
87 ClassDef(AliTRDdigitsManager,7) // Manages the TRD digits