]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONLocalTrigger.cxx
Moving the alignment-related static methods from AliAlignObj to the new geometry...
[u/mrichter/AliRoot.git] / MUON / AliMUONLocalTrigger.cxx
index b4c0ec30c130a836c04a979fb706ccd442e7c0bf..26b619ee12027201de72721bfbe3c6d498566b63 100644 (file)
  * provided "as is" without express or implied warranty.                  *
  **************************************************************************/
 
-/*
+/* $Id$ */
 
-*/
 
 #include "AliMUONLocalTrigger.h"
+#include "AliLog.h"
+#include "AliMUONLocalStruct.h"
+#include <Riostream.h>
+
+/// \class AliMUONLocalTrigger
+/// Local Trigger algorithm data outputs
+/// (contains local trigger decision and bit patterns)                \n
+/// Add SetLocalStruct method for rawdata  (Ch. Finck)
+/// \author Ph. Crochet
+
+/// \cond CLASSIMP
+ClassImp(AliMUONLocalTrigger)
+/// \endcond
 
-ClassImp(AliMUONLocalTrigger);
 //----------------------------------------------------------------------
 AliMUONLocalTrigger::AliMUONLocalTrigger()
+  : TObject(), 
+    fLoCircuit(0),
+    fLoStripX(0),
+    fLoDev(0),
+    fLoSdev(1),
+    fLoTrigY(1),
+    fLoStripY(15),
+    fLoLpt(0),
+    fLoHpt(0),
+    
+    fX1Pattern(0),
+    fX2Pattern(0),
+    fX3Pattern(0),
+    fX4Pattern(0),
+    
+    fY1Pattern(0),
+    fY2Pattern(0),
+    fY3Pattern(0),
+    fY4Pattern(0),
+    
+    fLoDecision(0)
 {
-// constructor
-  fLoCircuit = 0;
-  fLoStripX  = 0;
-  fLoDev     = 0;
-  fLoStripY  = 0;
-  fLoLpt     = 0;
-  fLoHpt     = 0;
-  fLoApt     = 0;
+/// Default constructor
 }
 //----------------------------------------------------------------------
-AliMUONLocalTrigger::AliMUONLocalTrigger(const AliMUONLocalTrigger& MUONLocalTrig):TObject(MUONLocalTrig)
+AliMUONLocalTrigger::AliMUONLocalTrigger(const AliMUONLocalTrigger& theMUONLocalTrig)
+    : TObject(theMUONLocalTrig),
+      fLoCircuit(theMUONLocalTrig.fLoCircuit),
+      fLoStripX(theMUONLocalTrig.fLoStripX),
+      fLoDev(theMUONLocalTrig.fLoDev),
+      fLoSdev(theMUONLocalTrig.fLoSdev),
+      fLoTrigY(theMUONLocalTrig.fLoTrigY),
+      fLoStripY(theMUONLocalTrig.fLoStripY),
+      fLoLpt(theMUONLocalTrig.fLoLpt),
+      fLoHpt(theMUONLocalTrig.fLoHpt),
+      
+      fX1Pattern(theMUONLocalTrig.fX1Pattern),
+      fX2Pattern(theMUONLocalTrig.fX2Pattern),
+      fX3Pattern(theMUONLocalTrig.fX3Pattern),
+      fX4Pattern(theMUONLocalTrig.fX4Pattern),
+      
+      fY1Pattern(theMUONLocalTrig.fY1Pattern),
+      fY2Pattern(theMUONLocalTrig.fY2Pattern),
+      fY3Pattern(theMUONLocalTrig.fY3Pattern),
+      fY4Pattern(theMUONLocalTrig.fY4Pattern),
+      
+      fLoDecision(theMUONLocalTrig.fLoDecision)
 {
-// copy constructor (useful for TClonesArray)
-  fLoCircuit = MUONLocalTrig.fLoCircuit;
-  fLoStripX  = MUONLocalTrig.fLoStripX;         
-  fLoDev     = MUONLocalTrig.fLoDev;           
-  fLoStripY  = MUONLocalTrig.fLoStripY;           
-  fLoLpt     = MUONLocalTrig.fLoLpt;
-  fLoHpt     = MUONLocalTrig.fLoHpt;
-  fLoApt     = MUONLocalTrig.fLoApt;
+/// Copy constructor (useful for TClonesArray)
+
 }
+
 //----------------------------------------------------------------------
-AliMUONLocalTrigger& AliMUONLocalTrigger::operator=(const AliMUONLocalTrigger& MUONLocalTrig)
+AliMUONLocalTrigger::~AliMUONLocalTrigger()
 {
-// equal operator (useful for non-pointer member in TClonesArray)
-  if (this == &MUONLocalTrig)
+/// Destructor
+}
+
+//----------------------------------------------------------------------
+AliMUONLocalTrigger& AliMUONLocalTrigger::operator=(const AliMUONLocalTrigger& theMUONLocalTrig)
+{
+/// Assigment operator;
+/// equal operator (useful for non-pointer member in TClonesArray)
+
+  if (this == &theMUONLocalTrig)
     return *this;
 
-  fLoCircuit = MUONLocalTrig.fLoCircuit;
-  fLoStripX  = MUONLocalTrig.fLoStripX;         
-  fLoDev     = MUONLocalTrig.fLoDev;           
-  fLoStripY  = MUONLocalTrig.fLoStripY;           
-  fLoLpt     = MUONLocalTrig.fLoLpt;
-  fLoHpt     = MUONLocalTrig.fLoHpt;
-  fLoApt     = MUONLocalTrig.fLoApt;
+  // base class assignement
+  TObject::operator=(theMUONLocalTrig);
+
+  fLoCircuit = theMUONLocalTrig.fLoCircuit;
+  fLoStripX  = theMUONLocalTrig.fLoStripX;         
+  fLoDev     = theMUONLocalTrig.fLoDev;           
+  fLoSdev    = theMUONLocalTrig.fLoSdev;           
+  fLoTrigY   = theMUONLocalTrig.fLoTrigY;           
+  fLoStripY  = theMUONLocalTrig.fLoStripY;           
+  fLoLpt     = theMUONLocalTrig.fLoLpt;
+  fLoHpt     = theMUONLocalTrig.fLoHpt;
+
+  fX1Pattern  = theMUONLocalTrig.fX1Pattern;
+  fX2Pattern  = theMUONLocalTrig.fX2Pattern;
+  fX3Pattern  = theMUONLocalTrig.fX3Pattern;
+  fX4Pattern  = theMUONLocalTrig.fX4Pattern;
+
+  fY1Pattern  = theMUONLocalTrig.fY1Pattern;
+  fY2Pattern  = theMUONLocalTrig.fY2Pattern;
+  fY3Pattern  = theMUONLocalTrig.fY3Pattern;
+  fY4Pattern  = theMUONLocalTrig.fY4Pattern;
+
+  fLoDecision =  theMUONLocalTrig.fLoDecision;
 
   return *this;
 }
 
+
 //----------------------------------------------------------------------
-AliMUONLocalTrigger::AliMUONLocalTrigger(Int_t *localtr)
+Char_t AliMUONLocalTrigger::GetLoDecision()
 {
-// add a local trigger object 
-  fLoCircuit = localtr[0];
-  fLoStripX  = localtr[1];         
-  fLoDev     = localtr[2];           
-  fLoStripY  = localtr[3];           
-  fLoLpt     = localtr[4];
-  fLoHpt     = localtr[5];
-  fLoApt     = localtr[6];
-}
+/// Get local decision 
+/// from H(L)pt;
+/// returns local trigger decision
 
-//----------------------------------------------------------------------
-//--- methods which return member data related info
-//----------------------------------------------------------------------
-Int_t AliMUONLocalTrigger::LoCircuit(){ 
-// returns circuit number 
-return fLoCircuit;
-}
-//----------------------------------------------------------------------
-Int_t AliMUONLocalTrigger::LoStripX(){  
-// returns X strip in MT11 
-return fLoStripX;
-}
-//----------------------------------------------------------------------
-Int_t AliMUONLocalTrigger::LoDev(){     
-// returns deviation 
-return fLoDev;
+  fLoDecision  = (fLoLpt & 0x3);
+  fLoDecision |= (fLoHpt << 2) & 0xC;
+
+  return fLoDecision;
 }
-//----------------------------------------------------------------------
-Int_t AliMUONLocalTrigger::LoStripY(){  
-// returns Y strip in MT11 
-return fLoStripY;
+
+//___________________________________________
+void AliMUONLocalTrigger::GetXPattern(TArrayS& array) const
+{
+    /// return array of X pattern
+    Short_t vec[4] = {GetX1Pattern(), GetX2Pattern(), GetX3Pattern(), GetX4Pattern()};
+    array.Set(4, vec);
 }
-//----------------------------------------------------------------------
-Int_t AliMUONLocalTrigger::LoLpt(){     
-// returns Low pt  0 : nothing, 1 : Minus, 2 : Plus, 3 : Undef
-return fLoLpt;
+
+//___________________________________________
+void AliMUONLocalTrigger::GetYPattern(TArrayS& array) const
+{
+    /// return array of Y pattern
+    Short_t vec[4] = {GetY1Pattern(), GetY2Pattern(), GetY3Pattern(), GetY4Pattern()};
+    array.Set(4, vec);
 }
+
 //----------------------------------------------------------------------
-Int_t AliMUONLocalTrigger::LoHpt(){     
-// returns High pt 0 : nothing, 1 : Minus, 2 : Plus, 3 : Undef
-return fLoHpt;
+void AliMUONLocalTrigger::SetLocalStruct(Int_t loCircuit, AliMUONLocalStruct& localStruct)
+{
+/// Set local trigger info from rawdata localStruct
+
+  // set id'
+  SetLoCircuit(loCircuit);
+
+  // set X, Y, dev, Sdev and TrigY
+  SetLoStripX((Int_t)localStruct.GetXPos());
+  SetLoStripY((Int_t)localStruct.GetYPos());
+  SetLoDev((Int_t)localStruct.GetXDev());
+  SetLoSdev((Int_t)localStruct.GetSXDev());
+  SetLoTrigY((Int_t)localStruct.GetTriggerY());
+  // set L(H)pt
+  SetLoLpt(localStruct.GetLpt());
+  SetLoHpt(localStruct.GetHpt());
+
+  // set pattern X
+  SetX1Pattern(localStruct.GetX1());
+  SetX2Pattern(localStruct.GetX2());
+  SetX3Pattern(localStruct.GetX3());
+  SetX4Pattern(localStruct.GetX4());
+
+  // set pattern Y
+  SetY1Pattern(localStruct.GetY1());
+  SetY2Pattern(localStruct.GetY2());
+  SetY3Pattern(localStruct.GetY3());
+  SetY4Pattern(localStruct.GetY4());
+
 }
+
 //----------------------------------------------------------------------
-Int_t AliMUONLocalTrigger::LoApt(){     
-// returns All pt  0 : nothing, 1 : Minus, 2 : Plus, 3 : Undef
-return fLoApt;
+void AliMUONLocalTrigger::Print(Option_t* opt) const
+{
+/// Printing Local Trigger information
+
+  TString sopt(opt);
+  sopt.ToUpper();
+  if ( sopt.Contains("FULL") ) { 
+
+      printf("<AliMUONLocalTrigger> Circuit %d StripX %d Dev %d StripY %d Lpt %d Hpt %d \n",LoCircuit(),LoStripX(),LoDev(),LoStripY(),LoLpt(),LoHpt());
+
+  }
 }
+