]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONTriggerIO.h
implemented selection by detector string (argument '-detector')
[u/mrichter/AliRoot.git] / MUON / AliMUONTriggerIO.h
index 9a167bd7b47b6990fec4b6a826058044983c22c0..fd755b7a33b161b9ba068e846ed0ef3f93e2b9dc 100644 (file)
 /// 
 //  Author Laurent Aphecetche, Subatech
 
-#ifndef ROOT_TArrayI
-#  include "TArrayI.h"
+#ifndef ROOT_TObject
+#  include <TObject.h>
 #endif
 
-#ifndef ROOT_TObject
-#  include "TObject.h"
+#include "AliMpExMap.h"
+#include "AliMpGlobalCrate.h"
+#include "AliMpRegionalTrigger.h"
+
+#ifndef ROOT_TArrayI
+#  include <TArrayI.h>
 #endif
 
-//class AliMUONTriggerLut;
+class AliMUONTriggerLut;
 class AliMUONVCalibParam;
 class AliMUONVStore;
+class AliMpExMap;
+class AliMpDDL;
+class AliMpTriggerCrate;
+class AliMpLocalBoard;
 
 class AliMUONTriggerIO : public TObject
 {
 public:
   AliMUONTriggerIO();
+  AliMUONTriggerIO(const char* regionalFileToRead);
   virtual ~AliMUONTriggerIO();
 
   Bool_t ReadMasks(const char* localFile,
@@ -35,31 +44,60 @@ public:
                    const char* globalFile,
                    AliMUONVStore* localMasks,
                    AliMUONVStore* regionalMasks,
-                   AliMUONVCalibParam* globalMasks);
+                   AliMUONVCalibParam* globalMasks,
+                  Bool_t warn = true);
   
-//  void SetLocalBoardIds(const TArrayI& localBoardIds);
+  Bool_t ReadLUT(const char* lutFileToRead, AliMUONTriggerLut& lut);
   
-//  Bool_t WriteMasks(AliMUONVStore* localMasks,
-//                    AliMUONVStore* regionalMasks,
-//                    AliMUONVCalibParam* globalMasks) const;
+  Bool_t WriteLUT(const AliMUONTriggerLut& lut,
+                  const char* lutFileToWrite);
   
-private:
+  Bool_t WriteMasks(const char* localFile,
+                   const char* regionalFile,
+                   const char* globalFile,
+                   AliMUONVStore* localMasks,
+                    AliMUONVStore* regionalMasks,
+                    AliMUONVCalibParam* globalMasks) const;
   
   Int_t LocalBoardId(Int_t index) const;
+
+  void UpdateMapping(Bool_t writeFile = true) const;
+
+private:
+  
+  Bool_t DeCompAddress(UChar_t &ypos, UChar_t &ytri, UChar_t &xdev, UChar_t &xpos, 
+                     UShort_t address) const;
+    
+  void FillLut(AliMUONTriggerLut& lut,
+               Int_t icirc, UChar_t istripX, UChar_t idev,  
+               Int_t lutLpt[16][2], Int_t lutHpt[16][2]) ;
+  
   
   /// Return number of local boards
-  Int_t NofLocalBoards() const { return fNofLocalBoards; }
+  Int_t NofLocalBoards() const { return fRegionalTrigger.GetNofLocalBoards(); }
+  
+  Int_t  ReadGlobal(const char* globalFile, AliMUONVCalibParam* globalMasks);
+
+  Bool_t WriteGlobal(const char* globalFile, AliMUONVCalibParam* globalMasks) const;
+
+  Int_t  ReadRegional(const char* regionalFile, AliMUONVStore* regionalMasks, Bool_t warn = true);
+
+  Bool_t WriteRegional(const char* regionalFile, AliMUONVStore* regionalMasks) const;
+
+  Int_t  ReadLocalMasks(const char* localFile, AliMUONVStore& localMasks) const;
   
-  Int_t ReadRegional(const char* regionalFile, AliMUONVStore* regionalMasks);
+  Bool_t WriteLocalMasks(const char* localFile, AliMUONVStore& localMasks) const;
 
-  Int_t ReadLocalMasks(const char* localFile, AliMUONVStore& localMasks) const;
+  void   ReadLocalLUT(AliMUONTriggerLut& lut, Int_t localBoardId, FILE* flut);
   
-//  void WriteRegional() const;
+  void   WriteLocalLUT(const AliMUONTriggerLut& lut, Int_t localBoardId, 
+                       FILE* flut);
+    
   
 private:
-  TArrayI fLocalBoardIds; //!< order of the localboards
-  Int_t fNofLocalBoards; //!< number of local boards
-  
+  AliMpRegionalTrigger  fRegionalTrigger; //!< Regional trigger
+  AliMpGlobalCrate      fGlobalCrate;     //!< Global crate object
   ClassDef(AliMUONTriggerIO,0) // Read/Write trigger masks and LUT to/from online files
 };