Skipping buspatches with parity error in the Next() method
authorlaphecet <laphecet@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 2 Apr 2009 18:49:35 +0000 (18:49 +0000)
committerlaphecet <laphecet@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 2 Apr 2009 18:49:35 +0000 (18:49 +0000)
MUON/AliMUONRawStreamTrackerHP.cxx
MUON/AliMUONRawStreamTrackerHP.h

index 2ac1a28182bcb47abfb6bb35c81e2541c4bf4347..c6118172b37828dea9b02006f7c9232f1990dbec 100644 (file)
@@ -279,7 +279,7 @@ Bool_t AliMUONRawStreamTrackerHP::IsDone() const
 
 Bool_t AliMUONRawStreamTrackerHP::Next(
                Int_t& busPatchId, UShort_t& manuId, UChar_t& manuChannel,
-               UShort_t& adc
+               UShort_t& adc, Bool_t skipParityErrors
        )
 {
        /// Advance one step in the iteration. Returns false if finished.
@@ -287,11 +287,15 @@ Bool_t AliMUONRawStreamTrackerHP::Next(
        /// [out] \param manuId      This is filled with the MANU ID of the digit.
        /// [out] \param manuChannel This is filled with the MANU channel ID of the digit.
        /// [out] \param adc         This is filled with the ADC signal value of the digit.
+        /// [in] \param skipParityErrors If this is kTRUE, we'll skip the buspatches that
+        ///                              have some parity errors
        /// \return kTRUE if we read another digit and kFALSE if we have read all the
        ///    digits already, i.e. at the end of the iteration.
        
        if (fkCurrentData == NULL) return kFALSE;
        
+       fDecoder.SendDataOnParityError(skipParityErrors);
+
 retry:
        // Check if we still have data to be returned for the current bus patch.
        if (fkCurrentData != fkEndOfData)
index e1ce73b11caf82c760f71ec125482d4b8685b056..e8e5d2ef1d577b685859ff89120796c0ad361dc4 100644 (file)
@@ -50,11 +50,16 @@ public:
        /// Nothing is actually done in the AddErrorMessage method because we log
        /// the error messages as we find them in AliDecoderEventHandler::OnError().
        virtual void AddErrorMessage() { };
+
+       /// Advance one step in the iteration. Returns false if finished.
+       virtual Bool_t Next(Int_t& busPatchId,
+                           UShort_t& manuId, UChar_t& manuChannel,
+                           UShort_t& adc) { return Next(busPatchId,manuId,manuChannel,adc,kTRUE); }
        
        /// Advance one step in the iteration. Returns false if finished.
        virtual Bool_t Next(Int_t& busPatchId,
-                               UShort_t& manuId, UChar_t& manuChannel,
-                               UShort_t& adc);
+                           UShort_t& manuId, UChar_t& manuChannel,
+                           UShort_t& adc, Bool_t skipParityErrors);
        
        /// Construct and return a pointer to the DDL payload object.
        virtual AliMUONDDLTracker* GetDDLTracker() const;