]>
Commit | Line | Data |
---|---|---|
1605abc6 | 1 | #ifndef ALITOFFEEREADER_H |
2 | #define ALITOFFEEREADER_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 | // This class provides the TOF FEE reader. // | |
10 | // // | |
11 | /////////////////////////////////////////////////////////////// | |
12 | ||
13 | /* | |
14 | * author: Roberto Preghenella (R+), Roberto.Preghenella@bo.infn.it | |
15 | */ | |
16 | ||
17 | #include "TObject.h" | |
39dff6a4 | 18 | //#include "AliTOFGeometry.h" |
1605abc6 | 19 | |
20 | class AliTOFFEEConfig; | |
046dfc5f | 21 | class AliTOFFEElightConfig; |
1605abc6 | 22 | |
23 | class AliTOFFEEReader : | |
24 | public TObject | |
25 | { | |
26 | ||
1605abc6 | 27 | public: |
28 | ||
29 | AliTOFFEEReader(); // default constructor | |
30 | AliTOFFEEReader(const AliTOFFEEReader &source); // copy constructor | |
31 | AliTOFFEEReader &operator=(const AliTOFFEEReader &source); // operator = | |
32 | virtual ~AliTOFFEEReader(); // default destructor | |
33 | ||
34 | /* getters */ | |
35 | static Int_t GetNumberOfDDLs() {return fgkNumberOfDDLs;}; // get number of DDLs | |
36 | static Int_t GetNumberOfTRMs() {return fgkNumberOfTRMs;}; // get number of TRMs | |
37 | static Int_t GetNumberOfChains() {return fgkNumberOfChains;}; // get number of chains | |
38 | static Int_t GetNumberOfTDCs() {return fgkNumberOfTDCs;}; // get number of TDCs | |
39 | static Int_t GetNumberOfChannels() {return fgkNumberOfChannels;}; // get number of channels | |
40 | static Int_t GetNumberOfIndexes() {return fgkNumberOfIndexes;}; // get number of indexes | |
99096b5f | 41 | static Int_t GetNumberOfIndexesEO() {return fgkNumberOfIndexesEO;}; // get number of indexes EO |
1605abc6 | 42 | AliTOFFEEConfig *GetFEEConfig() const {return fFEEConfig;}; // get FEE config |
046dfc5f | 43 | AliTOFFEElightConfig *GetFEElightConfig() const {return fFEElightConfig;}; // get FEElight config |
1605abc6 | 44 | Bool_t GetChannelEnabled(Int_t iIndex) const {return iIndex < GetNumberOfIndexes() ? fChannelEnabled[iIndex] : kFALSE;}; // get channel enabled |
b059882a | 45 | Int_t GetMatchingWindow(Int_t iIndex) const {return iIndex < GetNumberOfIndexes() ? fMatchingWindow[iIndex] : 0;}; // get matching window |
046dfc5f | 46 | Int_t GetLatencyWindow(Int_t iIndex) const {return iIndex < GetNumberOfIndexes() ? fLatencyWindow[iIndex] : 0;}; // get latency window |
1f4ce44e | 47 | UInt_t GetTriggerMask(Int_t iddl) const {return iddl < GetNumberOfDDLs() ? fTriggerMask[iddl] : 0;}; // get trigger mask |
48 | UInt_t *GetTriggerMaskArray() {return fTriggerMask;}; // get trigger mask array | |
49 | ||
1605abc6 | 50 | /* setters */ |
51 | ||
52 | /* methods */ | |
046dfc5f | 53 | |
54 | /* TOFFEE methods */ | |
39dff6a4 | 55 | void LoadFEEConfig(const Char_t *FileName) const; // load FEE config |
1605abc6 | 56 | void DumpFEEConfig(); // dump FEE config |
57 | Int_t ParseFEEConfig(); // parse FEE config | |
046dfc5f | 58 | |
59 | /* TOFFEElight methods */ | |
60 | void LoadFEElightConfig(const Char_t *FileName) const; // load FEElight config | |
61 | void CreateFEElightConfig(const Char_t *filename); // create FEElight config | |
62 | Int_t ParseFEElightConfig(); // parse FEElight config | |
63 | ||
1605abc6 | 64 | void ResetChannelEnabledArray(); // reset channel enabled array |
1f4ce44e | 65 | void ResetTriggerMaskArray(); // reset trigger mask array |
b059882a | 66 | void Reset(); // reset channel enabled array |
39dff6a4 | 67 | Bool_t IsChannelEnabled(Int_t iIndex) const {return GetChannelEnabled(iIndex);}; // is channel enabled |
1605abc6 | 68 | |
39dff6a4 | 69 | private: |
70 | ||
046dfc5f | 71 | /* TOFFEE */ |
72 | Bool_t IsChannelEnabled(Int_t iDDL, Int_t iTRM, Int_t iChain, Int_t iTDC, Int_t iChannel) const; // is channel enabled (from TOFFEE) | |
73 | Int_t GetMatchingWindow(Int_t iDDL, Int_t iTRM, Int_t iChain, Int_t iTDC, Int_t iChannel) const; // get matching window (from TOFFEE) | |
74 | ||
39dff6a4 | 75 | static const Int_t fgkNumberOfDDLs = 72; // number of DDLs |
76 | static const Int_t fgkNumberOfTRMs = 10; // number of TRMs | |
77 | static const Int_t fgkNumberOfChains = 2; // number of chains | |
78 | static const Int_t fgkNumberOfTDCs = 15; // number of TDCs | |
79 | static const Int_t fgkNumberOfChannels = 8; // number of channels | |
80 | static const Int_t fgkNumberOfIndexes = 157248; // number of indexes | |
99096b5f | 81 | static const Int_t fgkNumberOfIndexesEO = 172800; // number of indexes EO |
39dff6a4 | 82 | |
83 | AliTOFFEEConfig *fFEEConfig; // FEE config | |
046dfc5f | 84 | AliTOFFEElightConfig *fFEElightConfig; // FEElight config |
39dff6a4 | 85 | Bool_t fChannelEnabled[fgkNumberOfIndexes]; // channel enabled |
b059882a | 86 | Int_t fMatchingWindow[fgkNumberOfIndexes]; // matching window |
046dfc5f | 87 | Int_t fLatencyWindow[fgkNumberOfIndexes]; // matching window |
39dff6a4 | 88 | |
1f4ce44e | 89 | UInt_t fTriggerMask[fgkNumberOfDDLs]; // trigger mask |
90 | ||
91 | ClassDef(AliTOFFEEReader, 2); | |
1605abc6 | 92 | |
93 | }; | |
94 | ||
95 | #endif /* ALITOFFEEREADER_H */ |