]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - TRD/AliTRDdigitsManager.h
add jet shape analysis classes
[u/mrichter/AliRoot.git] / TRD / AliTRDdigitsManager.h
... / ...
CommitLineData
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$ */
8
9/////////////////////////////////////////////////////////////
10// Manages the TRD digits //
11/////////////////////////////////////////////////////////////
12
13#include <TObject.h>
14
15class TFile;
16class TTree;
17class TBranch;
18class AliTRDdigit;
19class AliTRDSignalIndex;
20class AliTRDarrayADC;
21class AliTRDarraySignal;
22class AliTRDarrayDictionary;
23class AliTRDdigitsParam;
24
25class AliTRDdigitsManager : public TObject {
26
27 public:
28
29 enum { kNDict = 3 };
30
31 AliTRDdigitsManager(Bool_t rawRec = kFALSE); //if true digitsmanager uses only one entry in the TObjectArrays
32 AliTRDdigitsManager(const AliTRDdigitsManager &m);
33 virtual ~AliTRDdigitsManager();
34 AliTRDdigitsManager &operator=(const AliTRDdigitsManager &m);
35
36 virtual void Copy(TObject &m) const;
37
38 virtual void CreateArrays();
39 void ClearArrays(Int_t det);
40 virtual Bool_t BuildIndexes(Int_t det);
41
42 virtual Bool_t MakeBranch(TTree * const tree);
43 virtual Bool_t ReadDigits(TTree * consttree);
44 virtual Bool_t WriteDigits();
45
46 virtual void SetEvent(Int_t evt) { fEvent = evt; };
47 virtual void SetSDigits(Int_t v = 1) { fHasSDigits = v; };
48 virtual void SetUseDictionaries(Bool_t kval) { fUseDictionaries = kval; };
49
50 virtual Bool_t UsesDictionaries() const { return fUseDictionaries; };
51 virtual Bool_t HasSDigits() const { return fHasSDigits; };
52 static Int_t NDict() { return fgkNDict; };
53
54 virtual TObjArray *GetDigits() const { return fDigits; };
55 virtual TObjArray *GetDictionary(Int_t i) const { return fDict[i]; };
56
57 AliTRDdigit *GetDigit(Int_t row, Int_t col, Int_t time, Int_t det) const;
58 Int_t GetTrack(Int_t track, Int_t row, Int_t col, Int_t time, Int_t det) const;
59
60 AliTRDarrayADC *GetDigits(Int_t det) const;
61 AliTRDarraySignal *GetSDigits(Int_t det) const;
62 AliTRDarrayDictionary *GetDictionary(Int_t det, Int_t i) const;
63 AliTRDdigitsParam *GetDigitsParam() const { return fDigitsParam; };
64 AliTRDSignalIndex *GetIndexes(Int_t det);
65 TObjArray *GetIndexes() const { return fSignalIndexes; };
66
67 void RemoveDigits(Int_t det);
68 void RemoveDictionaries(Int_t det);
69 void RemoveIndexes(Int_t det);
70 void ClearIndexes(Int_t det);
71
72 Int_t GetTrack(Int_t track, const AliTRDdigit * const digit) const;
73 Short_t GetDigitAmp(Int_t row, Int_t col, Int_t time, Int_t det) const;
74 UChar_t GetPadStatus(Int_t row, Int_t col, Int_t time, Int_t det) const;
75
76 Bool_t LoadArrayDigits();
77 Bool_t LoadArrayDict();
78 Bool_t LoadDigitsParam();
79 Bool_t StoreArrayDigits();
80 Bool_t StoreArrayDict();
81 Bool_t StoreDigitsParam();
82
83 protected:
84
85 static const Int_t fgkNDict; // Number of track dictionary arrays
86 Int_t fEvent; // Event number
87 TTree *fTree; //! Tree for the digits arrays
88 TObjArray *fDigits; // Digits data array
89 TObjArray *fDict[kNDict]; // Track dictionary data array
90 Bool_t fHasSDigits; // Switch for the summable digits
91 TObjArray *fSignalIndexes; // Provides access to the active pads and tbins
92 Bool_t fUseDictionaries; // Use dictionaries or not (case of real data)
93 Int_t fDets; // No of Detectors
94 Bool_t fRawRec; // Reconstruct from raw files? If its kTRUE then the TObjArrays have only one entry.
95 AliTRDdigitsParam *fDigitsParam; // Parameters of the digits
96
97 ClassDef(AliTRDdigitsManager,8) // Manages the TRD digits
98
99};
100#endif