increased number of channels used in the TOFFEElight data structure, from 157248...
[u/mrichter/AliRoot.git] / TOF / AliTOFFEEReader.h
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"
18 //#include "AliTOFGeometry.h"
19
20 class AliTOFFEEConfig;
21 class AliTOFFEElightConfig;
22
23 class AliTOFFEEReader :
24 public TObject 
25 {
26
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
41   static Int_t GetNumberOfIndexesEO() {return fgkNumberOfIndexesEO;}; // get number of indexes EO
42   AliTOFFEEConfig *GetFEEConfig() const {return fFEEConfig;}; // get FEE config
43   AliTOFFEElightConfig *GetFEElightConfig() const {return fFEElightConfig;}; // get FEElight config
44   Bool_t GetChannelEnabled(Int_t iIndex) const {return iIndex < GetNumberOfIndexes() ? fChannelEnabled[iIndex] : kFALSE;}; // get channel enabled
45   Int_t GetMatchingWindow(Int_t iIndex) const {return iIndex < GetNumberOfIndexes() ? fMatchingWindow[iIndex] : 0;}; // get matching window
46   Int_t GetLatencyWindow(Int_t iIndex) const {return iIndex < GetNumberOfIndexes() ? fLatencyWindow[iIndex] : 0;}; // get latency window
47   
48   /* setters */
49   
50   /* methods */
51
52   /* TOFFEE methods */
53   void LoadFEEConfig(const Char_t *FileName) const; // load FEE config
54   void DumpFEEConfig(); // dump FEE config
55   Int_t ParseFEEConfig(); // parse FEE config
56
57   /* TOFFEElight methods */
58   void LoadFEElightConfig(const Char_t *FileName) const; // load FEElight config
59   void CreateFEElightConfig(const Char_t *filename); // create FEElight config
60   Int_t ParseFEElightConfig(); // parse FEElight config
61
62   void ResetChannelEnabledArray(); // reset channel enabled array
63   void Reset(); // reset channel enabled array
64   Bool_t IsChannelEnabled(Int_t iIndex) const {return GetChannelEnabled(iIndex);}; // is channel enabled
65   
66  private:
67
68   /* TOFFEE */
69   Bool_t IsChannelEnabled(Int_t iDDL, Int_t iTRM, Int_t iChain, Int_t iTDC, Int_t iChannel) const; // is channel enabled (from TOFFEE)
70   Int_t GetMatchingWindow(Int_t iDDL, Int_t iTRM, Int_t iChain, Int_t iTDC, Int_t iChannel) const; // get matching window (from TOFFEE)
71
72   static const Int_t fgkNumberOfDDLs = 72; // number of DDLs
73   static const Int_t fgkNumberOfTRMs = 10; // number of TRMs
74   static const Int_t fgkNumberOfChains = 2; // number of chains
75   static const Int_t fgkNumberOfTDCs = 15; // number of TDCs
76   static const Int_t fgkNumberOfChannels = 8; // number of channels
77   static const Int_t fgkNumberOfIndexes = 157248; // number of indexes
78   static const Int_t fgkNumberOfIndexesEO = 172800; // number of indexes EO
79
80   AliTOFFEEConfig *fFEEConfig; // FEE config
81   AliTOFFEElightConfig *fFEElightConfig; // FEElight config
82   Bool_t fChannelEnabled[fgkNumberOfIndexes]; // channel enabled
83   Int_t fMatchingWindow[fgkNumberOfIndexes]; // matching window
84   Int_t fLatencyWindow[fgkNumberOfIndexes]; // matching window
85
86   ClassDef(AliTOFFEEReader, 1);
87
88 };
89
90 #endif /* ALITOFFEEREADER_H */