]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONGlobalTrigger.cxx
Update HFE v2 analyses
[u/mrichter/AliRoot.git] / MUON / AliMUONGlobalTrigger.cxx
index 35e835f42510052cfaba9d94f256d3034509d7f9..ec84fd69ca0025717a6aab325b8309946e98921d 100644 (file)
  * provided "as is" without express or implied warranty.                  *
  **************************************************************************/ 
  
+
 /* $Id$ */
 
+
 #include "AliMUONGlobalTrigger.h"
+#include "AliLog.h"
+#include "AliMUONLocalStruct.h"
+
+//-----------------------------------------------------------------------------
+/// \class AliMUONGlobalTrigger
+/// Global Trigger algorithm data output.
+/// Built from Local and Regional algorithms.                          \n 
+/// Update for copy & assigment operator,
+/// add SetGlobalPattern and GetGlobalPattern method for rawdata 
+/// (Ch. Finck)
+/// \author Ph. Crochet
+//-----------------------------------------------------------------------------
+
+/// \cond CLASSIMP
+ClassImp(AliMUONGlobalTrigger)
+/// \endcond
 
-ClassImp(AliMUONGlobalTrigger);
 //----------------------------------------------------------------------
 AliMUONGlobalTrigger::AliMUONGlobalTrigger()
-  : TObject()
-{
-// constructor 
-  fSinglePlusLpt = 0;
-  fSinglePlusHpt = 0;
-  fSinglePlusApt = 0;
-  
-  fSingleMinusLpt = 0;
-  fSingleMinusHpt = 0;
-  fSingleMinusApt = 0;
-  
-  fSingleUndefLpt = 0;
-  fSingleUndefHpt = 0;
-  fSingleUndefApt = 0;
-  
-  fPairUnlikeLpt = 0;
-  fPairUnlikeHpt = 0;
-  fPairUnlikeApt = 0;
-  
-  fPairLikeLpt   = 0;
-  fPairLikeHpt   = 0;
-  fPairLikeApt   = 0;
+  : TObject(),
+    fSingleLpt(0),
+    fSingleHpt(0),
+      
+    fPairUnlikeLpt(0),
+    fPairUnlikeHpt(0),
+    
+    fPairLikeLpt(0),
+    fPairLikeHpt(0)
+{ 
+  /// Default constructor 
+      AliDebug(1,Form("this=%p",this));
+      for (Int_t i = 0; i < 4; i++) fInput[i] = 0;
 }
+
 //----------------------------------------------------------------------
 AliMUONGlobalTrigger::AliMUONGlobalTrigger(const AliMUONGlobalTrigger& theMUONGlobalTrig)
-  : TObject(theMUONGlobalTrig)
-{
-// copy constructor
-  fSinglePlusLpt  = theMUONGlobalTrig.fSinglePlusLpt;
-  fSinglePlusHpt  = theMUONGlobalTrig.fSinglePlusHpt;
-  fSinglePlusApt  = theMUONGlobalTrig.fSinglePlusApt;
-  
-  fSingleMinusLpt = theMUONGlobalTrig.fSingleMinusLpt;
-  fSingleMinusHpt = theMUONGlobalTrig.fSingleMinusHpt;
-  fSingleMinusApt = theMUONGlobalTrig.fSingleMinusApt;
-  
-  fSingleUndefLpt = theMUONGlobalTrig.fSingleUndefLpt;
-  fSingleUndefHpt = theMUONGlobalTrig.fSingleUndefHpt;
-  fSingleUndefApt = theMUONGlobalTrig.fSingleUndefApt;
+  : TObject(theMUONGlobalTrig),
   
-  fPairUnlikeLpt  = theMUONGlobalTrig.fPairUnlikeLpt;
-  fPairUnlikeHpt  = theMUONGlobalTrig.fPairUnlikeHpt;
-  fPairUnlikeApt  = theMUONGlobalTrig.fPairUnlikeApt;
-  
-  fPairLikeLpt    = theMUONGlobalTrig.fPairLikeLpt;
-  fPairLikeHpt    = theMUONGlobalTrig.fPairLikeHpt;
-  fPairLikeApt    = theMUONGlobalTrig.fPairLikeApt;
+    fSingleLpt(theMUONGlobalTrig.fSingleLpt),
+    fSingleHpt(theMUONGlobalTrig.fSingleHpt),
+    
+    fPairUnlikeLpt(theMUONGlobalTrig.fPairUnlikeLpt),
+    fPairUnlikeHpt(theMUONGlobalTrig.fPairUnlikeHpt),
+    
+    fPairLikeLpt(theMUONGlobalTrig.fPairLikeLpt),
+    fPairLikeHpt(theMUONGlobalTrig.fPairLikeHpt)
+{
+  /// Copy constructor
+      AliDebug(1,Form("this=%p copy ctor",this));
+      for (Int_t i = 0; i < 4; i++) fInput[i] = theMUONGlobalTrig.fInput[i];
+
+}
+
+//----------------------------------------------------------------------
+AliMUONGlobalTrigger::~AliMUONGlobalTrigger()
+{
+  /// Destructor
+  AliDebug(1,Form("this=%p",this));
 }
 
 //----------------------------------------------------------------------
 AliMUONGlobalTrigger& AliMUONGlobalTrigger::operator=(const AliMUONGlobalTrigger& theMUONGlobalTrig)
 {
-// equal operator (useful for non-pointer member in TClonesArray)
+  /// Assignement operator;
+  /// equal operator (useful for non-pointer member in TClonesArray)
+
   if (this == &theMUONGlobalTrig)
     return *this;
     
   // base class assignement
   TObject::operator=(theMUONGlobalTrig);
 
-  fSinglePlusLpt  = theMUONGlobalTrig.fSinglePlusLpt;
-  fSinglePlusHpt  = theMUONGlobalTrig.fSinglePlusHpt;
-  fSinglePlusApt  = theMUONGlobalTrig.fSinglePlusApt;
-  
-  fSingleMinusLpt = theMUONGlobalTrig.fSingleMinusLpt;
-  fSingleMinusHpt = theMUONGlobalTrig.fSingleMinusHpt;
-  fSingleMinusApt = theMUONGlobalTrig.fSingleMinusApt;
-  
-  fSingleUndefLpt = theMUONGlobalTrig.fSingleUndefLpt;
-  fSingleUndefHpt = theMUONGlobalTrig.fSingleUndefHpt;
-  fSingleUndefApt = theMUONGlobalTrig.fSingleUndefApt;
+  fSingleLpt  = theMUONGlobalTrig.fSingleLpt;
+  fSingleHpt  = theMUONGlobalTrig.fSingleHpt;
   
   fPairUnlikeLpt  = theMUONGlobalTrig.fPairUnlikeLpt;
   fPairUnlikeHpt  = theMUONGlobalTrig.fPairUnlikeHpt;
-  fPairUnlikeApt  = theMUONGlobalTrig.fPairUnlikeApt;
   
   fPairLikeLpt    = theMUONGlobalTrig.fPairLikeLpt;
   fPairLikeHpt    = theMUONGlobalTrig.fPairLikeHpt;
-  fPairLikeApt    = theMUONGlobalTrig.fPairLikeApt;
+
+  for (Int_t i = 0; i < 4; i++) fInput[i] = theMUONGlobalTrig.fInput[i];
 
   return *this;
 }
 
-//----------------------------------------------------------------------
-AliMUONGlobalTrigger::AliMUONGlobalTrigger(Int_t *singlePlus, 
-                                          Int_t *singleMinus,
-                                          Int_t *singleUndef,
-                                          Int_t *pairUnlike, Int_t *pairLike)
+//-----------------------------------------------------------
+void AliMUONGlobalTrigger::SetFromGlobalResponse(UShort_t globalResponse)
 {
-// Set the Global Trigger object
-  fSinglePlusLpt = singlePlus[0];
-  fSinglePlusHpt = singlePlus[1];
-  fSinglePlusApt = singlePlus[2];
-
-  fSingleMinusLpt = singleMinus[0];
-  fSingleMinusHpt = singleMinus[1];
-  fSingleMinusApt = singleMinus[2];
-
-  fSingleUndefLpt = singleUndef[0];
-  fSingleUndefHpt = singleUndef[1];
-  fSingleUndefApt = singleUndef[2];
-
-  fPairUnlikeLpt = pairUnlike[0];
-  fPairUnlikeHpt = pairUnlike[1];
-  fPairUnlikeApt = pairUnlike[2];
-
-  fPairLikeLpt   = pairLike[0];  
-  fPairLikeHpt   = pairLike[1];  
-  fPairLikeApt   = pairLike[2];  
+  /// Set class members from global response
+  /// coming from rawdata & global trigger board
+  /// [US:2, LS:2, Single:2] with [Hpt, Lpt]
+  /// remove Apt
+
+  fSingleLpt = (globalResponse >> 1) & 0x1;
+  fSingleHpt = (globalResponse >> 2) & 0x1;
+
+  fPairLikeLpt = (globalResponse >> 3)  & 0x1;
+  fPairLikeHpt = (globalResponse >> 4)  & 0x1;
+  
+  fPairUnlikeLpt = (globalResponse >> 5)  & 0x1;
+  fPairUnlikeHpt = (globalResponse >> 6)  & 0x1;
+  
 }
 
+//-----------------------------------------------------------
+UChar_t AliMUONGlobalTrigger::GetGlobalResponse() const
+{
+  /// Global trigger response
+  /// from class member values
+  /// [US:2, LS:2, Single:2] with [Hpt, Lpt]
 
+  UChar_t response = 0;
 
+  if (SingleLpt())     response|= 0x2;
+  if (SingleHpt())     response|= 0x4;
 
+  if (PairLikeLpt())   response|= 0x8;
+  if (PairLikeHpt())   response|= 0x10;
+  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
+{
+  ///
+  /// Printing Global Trigger information
+  ///
+      printf("=============================================\n");
+      printf(" Global Trigger output       Low pt  High pt\n");
+      printf(" Single                    :\t");
+      printf("%i\t%i\t",SingleLpt(),SingleHpt());
+      printf("\n");
+      
+      printf(" UnlikeSign pair           :\t"); 
+      printf("%i\t%i\t",PairUnlikeLpt(),PairUnlikeHpt());
+      printf("\n");
+      
+      printf(" LikeSign pair             :\t");  
+      printf("%i\t%i\t",PairLikeLpt(),PairLikeHpt());
+      printf("\n");
+      
+      printf("=============================================\n");
+
+}