]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONLocalTriggerBoard.cxx
next50 trigger mask in AliHLTGlobalEsdConverterComponent
[u/mrichter/AliRoot.git] / MUON / AliMUONLocalTriggerBoard.cxx
index 423789bac5e70840f1ea751290c7698856df426b..5566d951350df9f53f03c69502e47c778545c972 100644 (file)
@@ -33,6 +33,8 @@
 #include <TBits.h>
 #include <Riostream.h>
 
+using std::endl;
+using std::cout;
 /// \cond CLASSIMP
 ClassImp(AliMUONLocalTriggerBoard)
 /// \endcond
@@ -204,17 +206,6 @@ AliMUONLocalTriggerBoard::~AliMUONLocalTriggerBoard()
 }
 
 
-//___________________________________________
-Int_t AliMUONLocalTriggerBoard::GetNumber() const 
-{
-/// return board number for notified boards
-
-    if (fMpLocalBoard->IsNotified())
-       return fMpLocalBoard->GetId();
-    else 
-       return 0;
-}
-
 //___________________________________________
 void AliMUONLocalTriggerBoard::Reset()
 {
@@ -247,50 +238,12 @@ void AliMUONLocalTriggerBoard::ResetResponse()
 }
 
 
-//___________________________________________
-void AliMUONLocalTriggerBoard::Setbit(Int_t strip, Int_t cathode, Int_t chamber)
-{
-/// 0 .. LBS   :   N-1 .. MSB
-   TBits w, m;
-
-   UShort_t xy = fXY[cathode][chamber], mask = fMask[cathode][chamber];
-
-   w.Set(16,&xy);
-   m.Set(16,&mask);
-
-   Int_t s = strip - int(strip / 16) * 16;
-
-   w.SetBitNumber(s);
-   
-   w &= m;
-
-   UShort_t value;
-
-   w.Get(&value);
-
-   fXY[cathode][chamber] = value;
-}
-
 //___________________________________________
 void AliMUONLocalTriggerBoard::SetbitM(Int_t strip, Int_t cathode, Int_t chamber)
 {
 /// 0 .. LBS   :   N-1 .. MSB
-   TBits w, m;
-
-   UShort_t xy = fXY[cathode][chamber], mask = fMask[cathode][chamber];
-
-   w.Set(16,&xy);
-   m.Set(16,&mask);
-
-   w.SetBitNumber(strip);
-   
-   w &= m;
-
-   UShort_t value;
-
-   w.Get(&value);
-
-   fXY[cathode][chamber] = value;
+  UShort_t stripBit = ( (1<<strip) & 0xFFFF );
+  fXY[cathode][chamber] |= ( stripBit & fMask[cathode][chamber] );
 }
 
 
@@ -1177,6 +1130,9 @@ Int_t AliMUONLocalTriggerBoard::GetI() const
 
    const Int_t kMaxfields = 2; char **fields = new char*[kMaxfields];
 
+   for (Int_t i = 0; i < kMaxfields; i++) 
+     fields[i] = new char[1];
+
    char s[100]; strncpy(s, GetName(), 99);
 
    Int_t numlines = 0;
@@ -1185,6 +1141,7 @@ Int_t AliMUONLocalTriggerBoard::GetI() const
         token != NULL;
         token = strtok(NULL, " "))
    {
+      delete [] fields[numlines];
       fields[numlines] = new char[strlen(token)+1];
       strcpy(fields[numlines++], token);
    }