]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONPayloadTracker.h
Adding protection against taking Sqrt of negative values...
[u/mrichter/AliRoot.git] / MUON / AliMUONPayloadTracker.h
index a5ed7218dc81b1a8e172bbd0b3c77305ef3cfe66..5dcd2230364d35c464d7f8ca972b0ebf775ff3a0 100644 (file)
@@ -7,48 +7,72 @@
 
 /// \ingroup raw
 /// \class AliMUONPayloadTracker
-/// \brief Class for decoding trackerrawdata 
+/// \brief Class for decoding the payload for tracker raw data 
 ///
-/// \author Christian Finck
-///
-///////////////////////////////////////////////////////////////////////////////
-///
-/// This class decode the payload for tracker raw data.
-///
-///////////////////////////////////////////////////////////////////////////////
+//  Author Christian Finck
 
 #include <TObject.h>
-#include <TClonesArray.h>
+#include <TString.h>
+
 
 class AliMUONDDLTracker;
 class AliMUONBusStruct;
 class AliMUONDspHeader;
 class AliMUONBlockHeader;
+class AliMUONLogger;
 
 class AliMUONPayloadTracker: public TObject {
   public :
     AliMUONPayloadTracker();
     virtual ~AliMUONPayloadTracker();
 
+    /// Return maximum number of block per DDL in DATE file
     Int_t GetMaxBlock() const {return fMaxBlock;}
+    /// Return maximum number of Dsp per block in DATE file
     Int_t GetMaxDsp()   const {return fMaxDsp;}
+    /// Return maximum number of Buspatch per Dsp in DATE file
     Int_t GetMaxBus()   const {return fMaxBus;}
 
     // check input before assigment
     void SetMaxBlock(Int_t blk);
 
-    // does not check, done via BusPatchManager
+    /// \brief Set maximum number of Dsp per block in DATE file
+    /// does not check, done via BusPatchManager
     void SetMaxDsp(Int_t dsp) {fMaxDsp = dsp;}
+    /// \brief Set maximum number of Buspatch per Dsp in DATE file
+    /// does not check, done via BusPatchManager
     void SetMaxBus(Int_t bus) {fMaxBus = bus;}
 
     void ResetDDL();
 
     Bool_t Decode(UInt_t* buffer, Int_t datasize);
 
+    /// Return pointer for local structure
     AliMUONBusStruct*       GetBusPatchInfo() const {return fBusStruct;}
+    /// Return pointer for buspatch structure
     AliMUONDDLTracker*      GetDDLTracker()   const {return fDDLTracker;}
 
+    /// Get number of parity errors
+    Int_t   GetParityErrors() const {return fParityErrors;} // for online
+    /// Get number of glitch errors
+    Int_t   GetGlitchErrors() const {return fGlitchErrors;}
+    /// Get number of padding word errors
+    Int_t   GetPaddingErrors() const {return fPaddingErrors;}
+
+    /// Get Error logger
+    AliMUONLogger* GetErrorLogger() const {return fLog;}
+    
+    /// set warnings flag
+    void DisableWarnings() {fWarnings = kFALSE;} 
+   
   private :
+    /// Not implemented
+    AliMUONPayloadTracker(const AliMUONPayloadTracker& stream);
+    /// Not implemented
+    AliMUONPayloadTracker& operator = (const AliMUONPayloadTracker& stream);
+
+    Bool_t CheckDataParity();
+    void   AddErrorMessage(const Char_t* msg);
 
     Int_t  fBusPatchId;   ///< entry of buspatch structure
     Int_t  fDspId;        ///< entry of Dsp header
@@ -64,12 +88,13 @@ class AliMUONPayloadTracker: public TObject {
     AliMUONBlockHeader*     fBlockHeader;     //!< pointer for block structure 
     AliMUONDspHeader*       fDspHeader;       //!< pointer for dsp structure 
 
-    AliMUONPayloadTracker(const AliMUONPayloadTracker& stream);
-    AliMUONPayloadTracker& operator = (const AliMUONPayloadTracker& stream);
-
-    Bool_t CheckDataParity();
+    AliMUONLogger* fLog;                      //!< Map of errors msg;
+    Int_t   fParityErrors;                    //!< number of parity errors;
+    Int_t   fGlitchErrors;                    //!< number of glitch errors;
+    Int_t   fPaddingErrors;                   //!< number of padding word errors;
+    Bool_t  fWarnings;                        //!< flag to enable/disable warnings
 
-    ClassDef(AliMUONPayloadTracker, 1)    // base class for reading MUON raw digits
+    ClassDef(AliMUONPayloadTracker, 4)    // base class for reading MUON raw digits
 };
 
 #endif