1 #ifndef ALITOFFEEREADER_H
2 #define ALITOFFEEREADER_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
7 ///////////////////////////////////////////////////////////////
9 // This class provides the TOF FEE reader. //
11 ///////////////////////////////////////////////////////////////
14 * author: Roberto Preghenella (R+), Roberto.Preghenella@bo.infn.it
18 //#include "AliTOFGeometry.h"
20 class AliTOFFEEConfig;
21 class AliTOFFEElightConfig;
23 class AliTOFFEEReader :
29 AliTOFFEEReader(); // default constructor
30 AliTOFFEEReader(const AliTOFFEEReader &source); // copy constructor
31 AliTOFFEEReader &operator=(const AliTOFFEEReader &source); // operator =
32 virtual ~AliTOFFEEReader(); // default destructor
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 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
55 void LoadFEEConfig(const Char_t *FileName) const; // load FEE config
56 void DumpFEEConfig(); // dump FEE config
57 Int_t ParseFEEConfig(); // parse FEE config
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
64 void ResetChannelEnabledArray(); // reset channel enabled array
65 void ResetTriggerMaskArray(); // reset trigger mask array
66 void Reset(); // reset channel enabled array
67 Bool_t IsChannelEnabled(Int_t iIndex) const {return GetChannelEnabled(iIndex);}; // is channel enabled
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)
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
81 static const Int_t fgkNumberOfIndexesEO = 172800; // number of indexes EO
83 AliTOFFEEConfig *fFEEConfig; // FEE config
84 AliTOFFEElightConfig *fFEElightConfig; // FEElight config
85 Bool_t fChannelEnabled[fgkNumberOfIndexes]; // channel enabled
86 Int_t fMatchingWindow[fgkNumberOfIndexes]; // matching window
87 Int_t fLatencyWindow[fgkNumberOfIndexes]; // matching window
89 UInt_t fTriggerMask[fgkNumberOfDDLs]; // trigger mask
91 ClassDef(AliTOFFEEReader, 2);
95 #endif /* ALITOFFEEREADER_H */