]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONLocalTrigger.cxx
Write only detector coefficients from HLT (Raphaelle)
[u/mrichter/AliRoot.git] / MUON / AliMUONLocalTrigger.cxx
index 87a8b6bf76b1ed3795c0ab3a1b3fa91059bf5b16..0b3a1dbe7d800aade66e225652815a4ef6a0a71e 100644 (file)
@@ -19,6 +19,7 @@
 #include "AliMUONLocalTrigger.h"
 #include "AliLog.h"
 #include "AliMUONLocalStruct.h"
+#include "AliMUONRawStreamTriggerHP.h"
 #include <Riostream.h>
 #include <TArrayS.h>
 
@@ -54,7 +55,10 @@ AliMUONLocalTrigger::AliMUONLocalTrigger()
     fY1Pattern(0),
     fY2Pattern(0),
     fY3Pattern(0),
-    fY4Pattern(0)
+    fY4Pattern(0),
+
+    fHitPatternFromResponse(0xFF),
+    fTriggerWithoutChamber(0)
 {
 /// Default constructor
 }
@@ -78,7 +82,10 @@ AliMUONLocalTrigger::AliMUONLocalTrigger(const AliMUONLocalTrigger& theMUONLocal
       fY1Pattern(theMUONLocalTrig.fY1Pattern),
       fY2Pattern(theMUONLocalTrig.fY2Pattern),
       fY3Pattern(theMUONLocalTrig.fY3Pattern),
-      fY4Pattern(theMUONLocalTrig.fY4Pattern)
+      fY4Pattern(theMUONLocalTrig.fY4Pattern),
+
+      fHitPatternFromResponse(theMUONLocalTrig.fHitPatternFromResponse),
+      fTriggerWithoutChamber(theMUONLocalTrig.fTriggerWithoutChamber)
 {
 /// Copy constructor (useful for TClonesArray)
 
@@ -121,6 +128,9 @@ AliMUONLocalTrigger& AliMUONLocalTrigger::operator=(const AliMUONLocalTrigger& t
   fY3Pattern  = theMUONLocalTrig.fY3Pattern;
   fY4Pattern  = theMUONLocalTrig.fY4Pattern;
 
+  fHitPatternFromResponse = theMUONLocalTrig.fHitPatternFromResponse;
+  fTriggerWithoutChamber = theMUONLocalTrig.fTriggerWithoutChamber;
+
   return *this;
 }
 
@@ -202,6 +212,39 @@ void AliMUONLocalTrigger::SetLocalStruct(Int_t loCircuit, AliMUONLocalStruct& lo
 
 }
 
+//----------------------------------------------------------------------
+void AliMUONLocalTrigger::SetLocalStruct(Int_t loCircuit, const AliMUONRawStreamTriggerHP::AliLocalStruct& localStruct)
+{
+/// Set local trigger info from rawdata localStruct (new raw reader)
+
+  // 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.GetTrigY());
+  // 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());
+
+}
+
 namespace
 {
   const char* AsString(Int_t t)
@@ -252,16 +295,31 @@ void AliMUONLocalTrigger::Print(Option_t* opt) const
 //----------------------------------------------------------------------
 Int_t AliMUONLocalTrigger::GetDeviation() const
 {
-/// return deviation
-
-   Int_t deviation = LoDev(); 
-    Int_t sign = 0;
-    if ( !LoSdev() &&  deviation ) sign=-1;
-    if ( !LoSdev() && !deviation ) sign= 0;
-    if (  LoSdev() == 1 )          sign=+1;
-    deviation *= sign;
-    deviation += 15;
-    return deviation;
+  /// return deviation
+  
+  Int_t deviation = LoDev(); 
+  Int_t sign = 0;
+  if ( !LoSdev() &&  deviation ) sign=-1;
+  if ( !LoSdev() && !deviation ) sign= 0;
+  if (  LoSdev() == 1 )          sign=+1;
+  deviation *= sign;
+  deviation += 15;
+  return deviation;
+}
+
+//----------------------------------------------------------------------
+void AliMUONLocalTrigger::SetDeviation(Int_t deviation)
+{
+  /// set LoDev and LoSDev according to deviation
+  
+  deviation -= 15;
+  if (deviation > 0) {
+    SetLoDev(deviation);
+    SetLoSdev(1);
+  } else {
+    SetLoDev(-deviation);
+    SetLoSdev(0);
+  }
 }
 
 //----------------------------------------------------------------------