1 #ifndef ALIMUONTRIGGERIO_H
2 #define ALIMUONTRIGGERIO_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
10 /// \class AliMUONTriggerIO
11 /// \brief Handles read/write of masks and LUT to/from online files
13 // Author Laurent Aphecetche, Subatech
19 #include "AliMpExMap.h"
20 #include "AliMpGlobalCrate.h"
21 #include "AliMpRegionalTrigger.h"
29 class AliMUONTriggerLut;
33 class AliMpTriggerCrate;
34 class AliMpLocalBoard;
35 class AliMUONGlobalCrateConfig;
36 class AliMUONRegionalTriggerConfig;
39 class AliMUONTriggerIO : public TObject
43 AliMUONTriggerIO(const char* regionalFileToRead);
44 virtual ~AliMUONTriggerIO();
47 Bool_t ReadConfig(const char* localFile,
48 const char* regionalFile,
49 const char* globalFile,
50 AliMUONVStore* localMasks,
51 AliMUONRegionalTriggerConfig* regionalConfig,
52 AliMUONGlobalCrateConfig* globalConfig);
54 Bool_t ReadLUT(const char* lutFileToRead, AliMUONTriggerLut& lut);
56 Bool_t WriteLUT(const AliMUONTriggerLut& lut,
57 const char* lutFileToWrite);
59 Bool_t WriteConfig(const char* localFile,
60 const char* regionalFile,
61 const char* globalFile,
62 AliMUONVStore* localMasks,
63 AliMUONRegionalTriggerConfig* regionalConfig,
64 AliMUONGlobalCrateConfig* globalConfig) const;
67 Int_t ReadGlobalConfig(const char* globalFile, AliMUONGlobalCrateConfig* globalConfig);
69 Bool_t WriteGlobalConfig(const char* globalFile, AliMUONGlobalCrateConfig* globalConfig) const;
71 Int_t ReadRegionalConfig(const char* regionalFile, AliMUONRegionalTriggerConfig* regionalConfig);
73 Bool_t WriteRegionalConfig(const char* regionalFile, AliMUONRegionalTriggerConfig* regionalConfig) const;
75 Int_t ReadLocalMasks(const char* localFile, AliMUONVStore& localMasks) const;
77 Bool_t WriteLocalMasks(const char* localFile, AliMUONVStore& localMasks, AliMUONRegionalTriggerConfig* regionalConfig) const;
79 void ReadLocalLUT(AliMUONTriggerLut& lut, Int_t localBoardId, FILE* flut);
81 void WriteLocalLUT(const AliMUONTriggerLut& lut, Int_t localBoardId,
84 Int_t LocalBoardId(Int_t index) const;
89 Bool_t DeCompAddress(UChar_t &ypos, UChar_t &ytri, UChar_t &xdev, UChar_t &xpos,
90 UShort_t address) const;
92 void FillLut(AliMUONTriggerLut& lut,
93 Int_t icirc, UChar_t istripX, UChar_t idev,
94 Int_t lutLpt[16][2], Int_t lutHpt[16][2]) ;
97 /// Return number of local boards
98 Int_t NofLocalBoards() const { return fRegionalTrigger.GetNofLocalBoards(); }
103 AliMpRegionalTrigger fRegionalTrigger; //!< Regional trigger
104 AliMpGlobalCrate fGlobalCrate; //!< Global crate object
106 static const UInt_t fgkLocalLutSize; ///< length of the lut for one local board
109 ClassDef(AliMUONTriggerIO,2) // Read/Write trigger masks and LUT to/from online files