]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONGlobalTrigger.cxx
Flexible pt range for the efficiency histogramming
[u/mrichter/AliRoot.git] / MUON / AliMUONGlobalTrigger.cxx
index 7d7fb223d640f9216b2ac50b85662b6d197c17e7..ec84fd69ca0025717a6aab325b8309946e98921d 100644 (file)
@@ -21,6 +21,7 @@
 #include "AliLog.h"
 #include "AliMUONLocalStruct.h"
 
+//-----------------------------------------------------------------------------
 /// \class AliMUONGlobalTrigger
 /// Global Trigger algorithm data output.
 /// Built from Local and Regional algorithms.                          \n 
@@ -28,6 +29,7 @@
 /// add SetGlobalPattern and GetGlobalPattern method for rawdata 
 /// (Ch. Finck)
 /// \author Ph. Crochet
+//-----------------------------------------------------------------------------
 
 /// \cond CLASSIMP
 ClassImp(AliMUONGlobalTrigger)
@@ -47,6 +49,7 @@ AliMUONGlobalTrigger::AliMUONGlobalTrigger()
 { 
   /// Default constructor 
       AliDebug(1,Form("this=%p",this));
+      for (Int_t i = 0; i < 4; i++) fInput[i] = 0;
 }
 
 //----------------------------------------------------------------------
@@ -64,6 +67,7 @@ AliMUONGlobalTrigger::AliMUONGlobalTrigger(const AliMUONGlobalTrigger& theMUONGl
 {
   /// Copy constructor
       AliDebug(1,Form("this=%p copy ctor",this));
+      for (Int_t i = 0; i < 4; i++) fInput[i] = theMUONGlobalTrig.fInput[i];
 
 }
 
@@ -95,6 +99,8 @@ AliMUONGlobalTrigger& AliMUONGlobalTrigger::operator=(const AliMUONGlobalTrigger
   fPairLikeLpt    = theMUONGlobalTrig.fPairLikeLpt;
   fPairLikeHpt    = theMUONGlobalTrig.fPairLikeHpt;
 
+  for (Int_t i = 0; i < 4; i++) fInput[i] = theMUONGlobalTrig.fInput[i];
+
   return *this;
 }
 
@@ -106,15 +112,14 @@ void AliMUONGlobalTrigger::SetFromGlobalResponse(UShort_t globalResponse)
   /// [US:2, LS:2, Single:2] with [Hpt, Lpt]
   /// remove Apt
 
-  // don't have the information anymore of the sign
-  fSingleLpt = globalResponse & 0x1;
-  fSingleHpt = (globalResponse >> 1) & 0x1;
+  fSingleLpt = (globalResponse >> 1) & 0x1;
+  fSingleHpt = (globalResponse >> 2) & 0x1;
 
-  fPairUnlikeLpt = (globalResponse >> 4)  & 0x1;
-  fPairUnlikeHpt = (globalResponse >> 5)  & 0x1;
+  fPairLikeLpt = (globalResponse >> 3)  & 0x1;
+  fPairLikeHpt = (globalResponse >> 4)  & 0x1;
   
-  fPairLikeLpt = (globalResponse >> 2)  & 0x1;
-  fPairLikeHpt = (globalResponse >> 3)  & 0x1;
+  fPairUnlikeLpt = (globalResponse >> 5)  & 0x1;
+  fPairUnlikeHpt = (globalResponse >> 6)  & 0x1;
   
 }
 
@@ -125,19 +130,30 @@ UChar_t AliMUONGlobalTrigger::GetGlobalResponse() const
   /// from class member values
   /// [US:2, LS:2, Single:2] with [Hpt, Lpt]
 
-  Int_t response = 0;
+  UChar_t response = 0;
 
-  if (SingleLpt())     response|= 0x1;
-  if (SingleHpt())     response|= 0x2;
+  if (SingleLpt())     response|= 0x2;
+  if (SingleHpt())     response|= 0x4;
 
-  if (PairLikeLpt())   response|= 0x4;
-  if (PairLikeHpt())   response|= 0x8;
+  if (PairLikeLpt())   response|= 0x8;
+  if (PairLikeHpt())   response|= 0x10;
  
-  if (PairUnlikeLpt()) response|= 0x10;
-  if (PairUnlikeHpt()) response|= 0x20;
+  if (PairUnlikeLpt()) response|= 0x20;
+  if (PairUnlikeHpt()) response|= 0x40;
 
   return response;
 }
+
+//-----------------------------------------------------------
+void AliMUONGlobalTrigger::SetFromGlobalInput(const UInt_t *globalInput)
+{
+  /// Global trigger board input
+  /// 4 words each of 32 bits
+
+  for (Int_t i = 0; i < 4; i++) fInput[i] = globalInput[i];
+
+}
+
 //----------------------------------------------------------------------
 void AliMUONGlobalTrigger::Print(Option_t*) const
 {