Add sign of deviation & trigger Y, setters & getters (Philippe C.)
authorpcrochet <pcrochet@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 27 Mar 2007 15:25:33 +0000 (15:25 +0000)
committerpcrochet <pcrochet@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 27 Mar 2007 15:25:33 +0000 (15:25 +0000)
MUON/AliMUONLocalTrigger.cxx
MUON/AliMUONLocalTrigger.h
MUON/AliMUONLocalTriggerBoard.cxx
MUON/AliMUONLocalTriggerBoard.h
MUON/AliMUONTriggerElectronics.cxx

index 2a5a466..043fd83 100644 (file)
@@ -19,6 +19,7 @@
 #include "AliMUONLocalTrigger.h"
 #include "AliLog.h"
 #include "AliMUONLocalStruct.h"
+#include <Riostream.h>
 
 /// \class AliMUONLocalTrigger
 /// Local Trigger algorithm data outputs
@@ -36,7 +37,9 @@ AliMUONLocalTrigger::AliMUONLocalTrigger()
     fLoCircuit(0),
     fLoStripX(0),
     fLoDev(0),
-    fLoStripY(0),
+    fLoSdev(1),
+    fLoTrigY(1),
+    fLoStripY(15),
     fLoLpt(0),
     fLoHpt(0),
     
@@ -60,6 +63,8 @@ AliMUONLocalTrigger::AliMUONLocalTrigger(const AliMUONLocalTrigger& theMUONLocal
       fLoCircuit(theMUONLocalTrig.fLoCircuit),
       fLoStripX(theMUONLocalTrig.fLoStripX),
       fLoDev(theMUONLocalTrig.fLoDev),
+      fLoSdev(theMUONLocalTrig.fLoSdev),
+      fLoTrigY(theMUONLocalTrig.fLoTrigY),
       fLoStripY(theMUONLocalTrig.fLoStripY),
       fLoLpt(theMUONLocalTrig.fLoLpt),
       fLoHpt(theMUONLocalTrig.fLoHpt),
@@ -101,6 +106,8 @@ AliMUONLocalTrigger& AliMUONLocalTrigger::operator=(const AliMUONLocalTrigger& t
   fLoCircuit = theMUONLocalTrig.fLoCircuit;
   fLoStripX  = theMUONLocalTrig.fLoStripX;         
   fLoDev     = theMUONLocalTrig.fLoDev;           
+  fLoSdev    = theMUONLocalTrig.fLoSdev;           
+  fLoTrigY   = theMUONLocalTrig.fLoTrigY;           
   fLoStripY  = theMUONLocalTrig.fLoStripY;           
   fLoLpt     = theMUONLocalTrig.fLoLpt;
   fLoHpt     = theMUONLocalTrig.fLoHpt;
@@ -143,10 +150,12 @@ void AliMUONLocalTrigger::SetLocalStruct(Int_t loCircuit, AliMUONLocalStruct& lo
   // set id'
   SetLoCircuit(loCircuit);
 
-  // set X, Y dev  
+  // 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());
index ed95467..287e4f8 100644 (file)
@@ -31,6 +31,10 @@ class AliMUONLocalTrigger : public TObject {
   Int_t LoStripX() const {return fLoStripX;}   
         /// Return Deviation
   Int_t LoDev() const {return fLoDev;}
+        /// Return Sign of Deviation
+  Int_t LoSdev() const {return fLoSdev;}
+        /// Return Trig Y
+  Int_t LoTrigY() const {return fLoTrigY;}
         /// Return Y strip in MT11
   Int_t LoStripY() const {return fLoStripY;}
         /// Return Low pt
@@ -66,6 +70,10 @@ class AliMUONLocalTrigger : public TObject {
   void SetLoStripX(Int_t loStrX) {fLoStripX = loStrX;}   
            /// Set Deviation
   void SetLoDev(Int_t loDev)     {fLoDev = loDev;}
+             /// Set Sign of Deviation
+  void SetLoSdev(Int_t loSdev)   {fLoSdev = loSdev;}
+           /// Set Trig Y
+  void SetLoTrigY(Int_t loTrigY) {fLoTrigY = loTrigY;}
            /// Set Y strip in MT11
   void SetLoStripY(Int_t loStrY) {fLoStripY = loStrY;}
            /// Set Low pt
@@ -99,7 +107,9 @@ class AliMUONLocalTrigger : public TObject {
 private:
   Int_t fLoCircuit; ///< Circuit number 
   Int_t fLoStripX;  ///< X strip in MT11 
-  Int_t fLoDev;     ///< Deviation 
+  Int_t fLoDev;     ///< Deviation
+  Int_t fLoSdev;    ///< Sign of Deviation 
+  Int_t fLoTrigY;   ///< Trig Y
   Int_t fLoStripY;  ///< Y strip in MT11 
   Int_t fLoLpt;     ///< Low pt  0 : nothing, 1 : Minus, 2 : Plus, 3 : Undef
   Int_t fLoHpt;     ///< High pt 0 : nothing, 1 : Minus, 2 : Plus, 3 : Undef
index 37fe3a7..9680048 100644 (file)
@@ -63,8 +63,9 @@ AliMUONLocalTriggerBoard::AliMUONLocalTriggerBoard()
       fCrate(0),
       fTC(kTRUE),
       fStripX11(0),
-      fStripY11(0),
+      fStripY11(15),
       fDev(0),
+      fTrigY(1),
       fOutput(0),
       fLUT(0x0),
       fCoinc44(0)      
@@ -95,8 +96,9 @@ AliMUONLocalTriggerBoard::AliMUONLocalTriggerBoard(const char *name, Int_t a,
       fCrate(0),
       fTC(kTRUE),
       fStripX11(0),
-      fStripY11(0),
+      fStripY11(15),
       fDev(0),
+      fTrigY(1),
       fOutput(0),
       fLUT(lut),
       fCoinc44(0)
@@ -140,7 +142,10 @@ void AliMUONLocalTriggerBoard::Reset()
 
    fOutput = 0;
    
-   fStripX11 = fStripY11 = fDev = 0;
+   fStripX11 = 0;
+   fStripY11 = 15;
+   fDev = 0;
+   fTrigY = 1;
 
    for (Int_t i=0; i<2; i++) fLutLpt[i] = fLutHpt[i] = 0;
 }
@@ -1075,6 +1080,7 @@ void AliMUONLocalTriggerBoard::LocalTrigger()
       fDev      = deviation;
       fStripY11 = iStripY;
       fStripX11 = iStripX;
+      fTrigY    = fCoordY[4];
 
       Int_t sign = 0;
 
@@ -1082,13 +1088,13 @@ void AliMUONLocalTriggerBoard::LocalTrigger()
       if ( !fMinDev[4] && !deviation ) sign= 0;
       if (  fMinDev[4] == 1 )          sign=+1;    
 
-      fDev *= sign; 
+      deviation *= sign; 
 
 //    calculate deviation in [0;+30]
-      fDev += 15;
+      deviation += 15;
 
 //    GET LUT OUTPUT FOR icirc/istripX1/deviation/istripY
-      fLUT->GetLutOutput(fNumber, fStripX11, fDev, fStripY11, fLutLpt, fLutHpt);
+      fLUT->GetLutOutput(fNumber, fStripX11, deviation, fStripY11, fLutLpt, fLutHpt);
    }  
 }
 
index 355c1a1..c6c4679 100644 (file)
@@ -127,8 +127,14 @@ class AliMUONLocalTriggerBoard : public AliMUONTriggerBoard
                        /// Return MT1 Y position of the valid road
       virtual Int_t    GetStripY11() const {return fStripY11;}
 
-                       /// Return Deviation in [0;+30]
+                       /// Return Deviation 
       virtual Int_t    GetDev() const {return fDev;}
+
+                       /// Return Sign of Deviation 
+      virtual Int_t    GetSdev() const {return fMinDev[4];}
+      
+                       /// Return Sign of Deviation 
+      virtual Int_t    GetTrigY() const {return fTrigY;}
       
                        /// Set Crate name
       virtual void     SetCrate(TString crate) {fCrate = crate;}
@@ -166,8 +172,9 @@ class AliMUONLocalTriggerBoard : public AliMUONTriggerBoard
 
       Int_t    fStripY11;         ///< MT1 Y position of the valid road
 
-      Int_t    fDev;              ///< Deviation in [0;+30]
-
+      Int_t    fDev;              ///< X deviation as in table 3-1 of Local Trigger Board PRR
+      Int_t    fTrigY;            ///< Trigger in Y
+      
       Int_t    fLutLpt[2];        ///< Low Pt cuts estimated from LUT
       Int_t    fLutHpt[2];        ///< High Pt cuts estimated from LUT
 
index 45c3c5f..be3346f 100644 (file)
@@ -586,6 +586,8 @@ void AliMUONTriggerElectronics::Digits2Trigger()
            fLocalTrigger->SetLoCircuit(icirc);
            fLocalTrigger->SetLoStripX(board->GetStripX11());
            fLocalTrigger->SetLoDev(board->GetDev());
+           fLocalTrigger->SetLoSdev(board->GetSdev());
+           fLocalTrigger->SetLoTrigY(board->GetTrigY());
            fLocalTrigger->SetLoStripY(board->GetStripY11());
           
            //             SAVE LUT OUTPUT