]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONGlobalTrigger.cxx
Go from pointer to ifstream to ifstream.
[u/mrichter/AliRoot.git] / MUON / AliMUONGlobalTrigger.cxx
index bfe7cf7c84f6c34a554d663c963a41a4d002fcb5..ec84fd69ca0025717a6aab325b8309946e98921d 100644 (file)
  * appear in the supporting documentation. The authors make no claims     *
  * about the suitability of this software for any purpose. It is          *
  * 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()
-{
-// constructor 
-  fSinglePlusLpt = 0;
-  fSinglePlusHpt = 0;
-  fSinglePlusApt = 0;
-  
-  fSingleMinusLpt = 0;
-  fSingleMinusHpt = 0;
-  fSingleMinusApt = 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),
   
-  fSingleUndefLpt = 0;
-  fSingleUndefHpt = 0;
-  fSingleUndefApt = 0;
-  
-  fPairUnlikeLpt = 0;
-  fPairUnlikeHpt = 0;
-  fPairUnlikeApt = 0;
-  
-  fPairLikeLpt   = 0;
-  fPairLikeHpt   = 0;
-  fPairLikeApt   = 0;
-}
-//----------------------------------------------------------------------
-AliMUONGlobalTrigger::AliMUONGlobalTrigger(Int_t *singlePlus, 
-                                          Int_t *singleMinus,
-                                          Int_t *singleUndef,
-                                          Int_t *pairUnlike, Int_t *pairLike)
+    fSingleLpt(theMUONGlobalTrig.fSingleLpt),
+    fSingleHpt(theMUONGlobalTrig.fSingleHpt),
+    
+    fPairUnlikeLpt(theMUONGlobalTrig.fPairUnlikeLpt),
+    fPairUnlikeHpt(theMUONGlobalTrig.fPairUnlikeHpt),
+    
+    fPairLikeLpt(theMUONGlobalTrig.fPairLikeLpt),
+    fPairLikeHpt(theMUONGlobalTrig.fPairLikeHpt)
 {
-// 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];  
-}
+  /// Copy constructor
+      AliDebug(1,Form("this=%p copy ctor",this));
+      for (Int_t i = 0; i < 4; i++) fInput[i] = theMUONGlobalTrig.fInput[i];
 
-//----------------------------------------------------------------------
-//--- methods which return member data related info
-//----------------------------------------------------------------------
-Int_t AliMUONGlobalTrigger::SinglePlusLpt(){
-// returns Number of Single Plus Low pt 
-  return fSinglePlusLpt;
-}
-//----------------------------------------------------------------------
-Int_t AliMUONGlobalTrigger::SinglePlusHpt(){  
-// returns Number of Single Plus High pt 
-  return fSinglePlusHpt;
-}
-//----------------------------------------------------------------------
-Int_t AliMUONGlobalTrigger::SinglePlusApt(){  
-// returns Number of Single Plus All pt 
-  return fSinglePlusApt;
-}
-//----------------------------------------------------------------------
-Int_t AliMUONGlobalTrigger::SingleMinusLpt(){ 
-// returns Number of Single Minus Low pt
-  return fSingleMinusLpt;
-}
-//----------------------------------------------------------------------
-Int_t AliMUONGlobalTrigger::SingleMinusHpt(){
-// returns Number of Single Minus High pt 
-  return fSingleMinusHpt;
-}
-//----------------------------------------------------------------------
-Int_t AliMUONGlobalTrigger::SingleMinusApt(){
-// returns Number of Single Minus All pt
-  return fSingleMinusApt;
-}
-//----------------------------------------------------------------------
-Int_t AliMUONGlobalTrigger::SingleUndefLpt(){
-// returns Number of Single Undefined Low pt
-  return fSingleUndefLpt;
-}
-//----------------------------------------------------------------------
-Int_t AliMUONGlobalTrigger::SingleUndefHpt(){ 
-// returns Number of Single Undefined High pt 
-  return fSingleUndefHpt;
-}
-//----------------------------------------------------------------------
-Int_t AliMUONGlobalTrigger::SingleUndefApt(){
-// returns Number of Single Undefined All pt
-  return fSingleUndefApt;
-}
-//----------------------------------------------------------------------
-Int_t AliMUONGlobalTrigger::PairUnlikeLpt(){  
-// returns Number of Unlike sign pair Low pt
-  return fPairUnlikeLpt;
-}
-//----------------------------------------------------------------------
-Int_t AliMUONGlobalTrigger::PairUnlikeHpt(){
-// returns Number of Unlike sign pair High pt
-  return fPairUnlikeHpt;
 }
+
 //----------------------------------------------------------------------
-Int_t AliMUONGlobalTrigger::PairUnlikeApt(){
-// returns Number of Unlike sign pair All pt
-  return fPairUnlikeApt;
+AliMUONGlobalTrigger::~AliMUONGlobalTrigger()
+{
+  /// Destructor
+  AliDebug(1,Form("this=%p",this));
 }
+
 //----------------------------------------------------------------------
-Int_t AliMUONGlobalTrigger::PairLikeLpt(){
-// returns Number of Like sign pair Low pt
-  return fPairLikeLpt;
+AliMUONGlobalTrigger& AliMUONGlobalTrigger::operator=(const AliMUONGlobalTrigger& theMUONGlobalTrig)
+{
+  /// Assignement operator;
+  /// equal operator (useful for non-pointer member in TClonesArray)
+
+  if (this == &theMUONGlobalTrig)
+    return *this;
+    
+  // base class assignement
+  TObject::operator=(theMUONGlobalTrig);
+
+  fSingleLpt  = theMUONGlobalTrig.fSingleLpt;
+  fSingleHpt  = theMUONGlobalTrig.fSingleHpt;
+  
+  fPairUnlikeLpt  = theMUONGlobalTrig.fPairUnlikeLpt;
+  fPairUnlikeHpt  = theMUONGlobalTrig.fPairUnlikeHpt;
+  
+  fPairLikeLpt    = theMUONGlobalTrig.fPairLikeLpt;
+  fPairLikeHpt    = theMUONGlobalTrig.fPairLikeHpt;
+
+  for (Int_t i = 0; i < 4; i++) fInput[i] = theMUONGlobalTrig.fInput[i];
+
+  return *this;
 }
-//----------------------------------------------------------------------
-Int_t AliMUONGlobalTrigger::PairLikeHpt(){
-// returns Number of Like sign pair High pt
-  return fPairLikeHpt;
+
+//-----------------------------------------------------------
+void AliMUONGlobalTrigger::SetFromGlobalResponse(UShort_t globalResponse)
+{
+  /// 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;
+  
 }
-//----------------------------------------------------------------------
-Int_t AliMUONGlobalTrigger::PairLikeApt(){
-// returns Number of Like sign pair All pt
-  return fPairLikeApt;
+
+//-----------------------------------------------------------
+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");
 
+}