]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONGlobalTriggerBoard.h
ALIROOT-5420 Changes for CDH v3
[u/mrichter/AliRoot.git] / MUON / AliMUONGlobalTriggerBoard.h
index d593e25732d4a117fa18cc06376c536b0c55ed51..a1b14301ad611b07613ee6824407a9c348ad4a98 100644 (file)
@@ -5,7 +5,11 @@
 
 /* $Id$ */
 
-//*-- Author: Rachid Guernane (LPCCFd)
+/// \ingroup trigger
+/// \class AliMUONGlobalTriggerBoard
+/// \brief Global trigger board
+///
+//  Author: Rachid Guernane (LPCCFd)
 
 #include "AliMUONTriggerBoard.h"
 
@@ -15,24 +19,45 @@ class AliMUONGlobalTriggerBoard : public AliMUONTriggerBoard
 
       AliMUONGlobalTriggerBoard();  
       AliMUONGlobalTriggerBoard(const char *name, Int_t a);
-      virtual ~AliMUONGlobalTriggerBoard() {;}
-    
+      virtual ~AliMUONGlobalTriggerBoard();
+                       
+                       /// Set regional board responses
       virtual void     SetRegionalResponse(UShort_t resp[16]) {for (Int_t i=0; i<16; i++) fRegionalResponse[i] = resp[i];}
 
       virtual void     Response();
 
-      virtual UShort_t Algo(UShort_t i, UShort_t j, char *thres);
-
+                       /// response of the algorithm
+      virtual UShort_t Algo(UShort_t i, UShort_t j, const char *thres);
+                      
+                       /// Reset regional board responses
       virtual void     Reset() {for (Int_t i=0; i<16; i++) fRegionalResponse[i] = 0;}
 
-      virtual void     Scan(Option_t *option);
+                       /// scan response of regional boards
+      virtual void     Scan(Option_t *option) const;
+
+                       /// Dummy implementation
+      virtual void     Resp(Option_t*) const {}
 
-      virtual void     Resp(Option_t*) {}
+                       /// Set mask for global input (from regional boards)
+      void             Mask(Int_t index, UInt_t mask);
 
+                       /// Build the 4 words (32bits) global input
+      void             BuildGlobalInput();
+                       /// Apply masks to global input
+      void             MaskGlobalInput();
+                       /// Global input 4 words (32bits) from regional responses
+      UInt_t*          GetGlobalInput() { return fGlobalInput; }
+
+      void             RecomputeRegional(UInt_t globalInput[4]);
+      
    private:
 
-      UShort_t fRegionalResponse[16];
+      UShort_t InvertPairBits(Int_t iReg);
+
+      UShort_t fRegionalResponse[16]; ///< Regional board responses
+      UInt_t   fGlobalInput[4];       ///< Global input 
+      UInt_t   fMask[4];              ///< Mask for the global input
 
-   ClassDef(AliMUONGlobalTriggerBoard,1) 
+   ClassDef(AliMUONGlobalTriggerBoard,2) //Global trigger board
 };
 #endif