+ /// return array of X pattern
+ Short_t vec[4] = {GetX1Pattern(), GetX2Pattern(), GetX3Pattern(), GetX4Pattern()};
+ array.Set(4, vec);
+}
+
+//___________________________________________
+void AliMUONLocalTrigger::GetYPattern(TArrayS& array) const
+{
+ /// return array of Y pattern
+ Short_t vec[4] = {GetY1Pattern(), GetY2Pattern(), GetY3Pattern(), GetY4Pattern()};
+ array.Set(4, vec);
+}
+
+//___________________________________________
+Bool_t
+AliMUONLocalTrigger::IsNull() const
+{
+ /// Whether or not this card has something usefull to say or not
+ return ( fX1Pattern == 0 &&
+ fX2Pattern == 0 &&
+ fX3Pattern == 0 &&
+ fX4Pattern == 0 &&
+ fY1Pattern == 0 &&
+ fY2Pattern == 0 &&
+ fY3Pattern == 0 &&
+ fY4Pattern == 0 );
+}
+
+//----------------------------------------------------------------------
+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());
+
+}
+
+namespace
+{
+ const char* AsString(Int_t t)
+ {
+ switch (t)
+ {
+ case 0:
+ return "no";
+ break;
+ case 1:
+ return "minus";
+ break;
+ case 2:
+ return "plus";
+ break;
+ case 3:
+ return "undef";
+ break;
+ default:
+ return "";
+ break;
+ }
+ }
+}
+
+//----------------------------------------------------------------------
+void AliMUONLocalTrigger::Print(Option_t* opt) const
+{
+/// Printing Local Trigger information
+
+ TString sopt(opt);
+ sopt.ToUpper();
+
+ cout << Form("Circuit %3d Decision %2d StripX %2d Dev %2d(%1d) StripY %2d Lpt %6s Hpt %6s",
+ LoCircuit(), GetLoDecision(),
+ LoStripX(), LoDev(), LoSdev(), LoStripY(),
+ AsString(LoLpt()),AsString(LoHpt()),IsNull()) << endl;
+
+ if ( sopt.Contains("FULL") ) {
+
+ cout << Form("Xpatterns = 0x %04x %04x %04x %04x",
+ fX1Pattern,fX2Pattern,fX3Pattern,fX4Pattern) << endl;
+ cout << Form("Ypatterns = 0x %04x %04x %04x %04x",
+ fY1Pattern,fY2Pattern,fY3Pattern,fY4Pattern) << endl;
+ }
+}
+
+//----------------------------------------------------------------------
+const char*
+AliMUONLocalTrigger::GetName() const
+{
+/// Generate name
+
+ return Form("LocalBoard%3d",LoCircuit());