]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONPayloadTrigger.cxx
Updated list of MUON libraries
[u/mrichter/AliRoot.git] / MUON / AliMUONPayloadTrigger.cxx
index 2794b200af2150a61d5fbdcffe0fed405517247b..5511f46e98485fd1f170ba3567e12be0188be976 100644 (file)
  **************************************************************************/
 
 
-///////////////////////////////////////////////////////////////////////////////
-///
+/// \class AliMUONPayloadTrigger
 /// Class Payload
 ///
 /// Decodes rawdata from buffer and stores in TClonesArray.
 /// 
 /// First version implement for Trigger
 ///
-///////////////////////////////////////////////////////////////////////////////
+/// \author Christian Finck
 
 #include "AliMUONPayloadTrigger.h"
 
-#include "AliRawReader.h"
-#include "AliRawDataHeader.h"
-#include "AliLog.h"
-
 #include "AliMUONDarcHeader.h"
 #include "AliMUONRegHeader.h"
 #include "AliMUONLocalStruct.h"
 #include "AliMUONDDLTrigger.h"
 
+#include "AliLog.h"
+
+/// \cond CLASSIMP
 ClassImp(AliMUONPayloadTrigger)
+/// \endcond
 
 AliMUONPayloadTrigger::AliMUONPayloadTrigger()
   : TObject(),
     fMaxReg(8),
-    fMaxLoc(16)
+    fMaxLoc(16),
+    fDDLTrigger(new AliMUONDDLTrigger()),
+    fRegHeader(new AliMUONRegHeader()), 
+    fLocalStruct(new AliMUONLocalStruct())
 {
-  //
-  // create an object to read MUON raw digits
-  // Default ctor for monitoring purposes
-  //
-
-  fDDLTrigger  = new AliMUONDDLTrigger();
-  fRegHeader   = new AliMUONRegHeader();  
-  fLocalStruct = new AliMUONLocalStruct();
-
-}
-
-//_________________________________________________________________
-AliMUONPayloadTrigger::AliMUONPayloadTrigger(const AliMUONPayloadTrigger& stream) :
-  TObject(stream)
-{
-  //
-  // copy ctor
-  //
-  AliFatal("copy constructor not implemented");
-}
+  ///
+  /// create an object to read MUON raw digits
+  /// Default ctor for monitoring purposes
+  ///
 
-//______________________________________________________________________
-AliMUONPayloadTrigger& AliMUONPayloadTrigger::operator = (const AliMUONPayloadTrigger& 
-                                             /* stream */)
-{ 
-  // 
-  // assignment operator
-  //
-  AliFatal("assignment operator not implemented");
-  return *this;
 }
 
 //___________________________________
 AliMUONPayloadTrigger::~AliMUONPayloadTrigger()
 {
-  //
-  // clean up
-  //
+  ///
+  /// clean up
+  ///
   delete fDDLTrigger;
   delete fLocalStruct;
   delete fRegHeader;
@@ -89,8 +66,8 @@ AliMUONPayloadTrigger::~AliMUONPayloadTrigger()
 //______________________________________________________
 Bool_t AliMUONPayloadTrigger::Decode(UInt_t *buffer)
 {
-  // decode trigger DDL
-  // store only non-empty structures (TrigY ==0)
+  /// decode trigger DDL
+  /// store only notified cards
 
  // reading DDL for trigger
 
@@ -119,7 +96,10 @@ Bool_t AliMUONPayloadTrigger::Decode(UInt_t *buffer)
   }
 
   if (buffer[index++] != darcHeader->GetEndOfDarc())
-    AliWarning(Form("Wrong end of Darc word %x instead of %x\n",buffer[index-1], darcHeader->GetEndOfDarc())); 
+
+      AliError(Form("Wrong end of Darc word %x instead of %x\n",
+                   buffer[index-1], darcHeader->GetEndOfDarc()));
+
 
   // 4 words of global board input + Global board output
   memcpy(darcHeader->GetGlobalInput(), &buffer[index], (kGlobalHeaderSize)*4); 
@@ -132,8 +112,11 @@ Bool_t AliMUONPayloadTrigger::Decode(UInt_t *buffer)
   }
 
   if (buffer[index++] != darcHeader->GetEndOfGlobal())
-    AliWarning(Form("Wrong end of Global word %x instead of %x\n",buffer[index-1], darcHeader->GetEndOfGlobal()));
-    
+
+  AliError(Form("Wrong end of Global word %x instead of %x\n",
+               buffer[index-1], darcHeader->GetEndOfGlobal()));
+
   // 8 regional boards
   for (Int_t iReg = 0; iReg < fMaxReg; iReg++) {           //loop over regeonal card
 
@@ -148,7 +131,10 @@ Bool_t AliMUONPayloadTrigger::Decode(UInt_t *buffer)
     }
 
     if (buffer[index++] != fRegHeader->GetEndOfReg())
-      AliWarning(Form("Wrong end of Reg word %x instead of %x\n",buffer[index-1], fRegHeader->GetEndOfReg()));
+
+      AliError(Form("Wrong end of Reg word %x instead of %x\n",
+                   buffer[index-1], fRegHeader->GetEndOfReg()));
+
 
     // 16 local cards per regional board
     for (Int_t iLoc = 0; iLoc < fMaxLoc; iLoc++) {         //loop over local card
@@ -166,8 +152,14 @@ Bool_t AliMUONPayloadTrigger::Decode(UInt_t *buffer)
       }
 
       if (buffer[index++] != fLocalStruct->GetEndOfLocal())
-       AliWarning(Form("Wrong end of local word %x instead of %x\n",buffer[index-1], fLocalStruct->GetEndOfLocal()));
-         
+
+      AliError(Form("Wrong end of local word %x instead of %x\n",
+                   buffer[index-1], fLocalStruct->GetEndOfLocal()));
+
+      // fill only if card notified
+      if (fLocalStruct->GetData(0) == fLocalStruct->GetDisableWord())
+         continue;
+
       fDDLTrigger->AddLocStruct(*fLocalStruct, iReg);
 
     } // local card loop
@@ -181,9 +173,9 @@ Bool_t AliMUONPayloadTrigger::Decode(UInt_t *buffer)
 //______________________________________________________
 void AliMUONPayloadTrigger::ResetDDL()
 {
-  // reseting TClonesArray
-  // after each DDL
-  //
+  /// reseting TClonesArray
+  /// after each DDL
+  ///
   AliMUONDarcHeader* darcHeader = fDDLTrigger->GetDarcHeader();
   darcHeader->GetRegHeaderArray()->Delete();
 }
@@ -191,7 +183,7 @@ void AliMUONPayloadTrigger::ResetDDL()
 //______________________________________________________
 void AliMUONPayloadTrigger::SetMaxReg(Int_t reg) 
 {
-  // set regional card number
+  /// set regional card number
   if (reg > 8) reg = 8;
   fMaxReg = reg;
 }
@@ -199,7 +191,7 @@ void AliMUONPayloadTrigger::SetMaxReg(Int_t reg)
 //______________________________________________________
 void AliMUONPayloadTrigger::SetMaxLoc(Int_t loc) 
 {
-  // set local card number
+  /// set local card number
   if (loc > 16) loc = 16;
   fMaxLoc = loc;
 }