]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - RAW/AliAltroRawStreamFast.h
Temporary mod for CMake
[u/mrichter/AliRoot.git] / RAW / AliAltroRawStreamFast.h
index 22f8c906890ab553f03918a2ca17f4ff193c5113..d3cbed6c29004957f5e8e3c4b0cd83d85b6ab3f3 100644 (file)
@@ -27,21 +27,33 @@ class AliAltroRawStreamFast: public TObject {
     void SelectRawData(Int_t detId);                           // Select raw data for specific detector id
     void SelectRawData(const char *detName);                   // Select raw data for specific detector name
 
+    virtual void   Reset();
     virtual Bool_t NextDDL();
     virtual Bool_t NextChannel();
     virtual Bool_t NextBunch();
 
-    Int_t  GetDDLNumber()    const { return fRawReader->GetDDLID(); }  // Provide current DDL number
-    Int_t  GetHWAddress()    const { return fData.GetHadd(); }  // Provide current hardware address
-    UInt_t GetStartTimeBin() const { return fBunch.GetStartTimeBin(); } // Provide the index if the first time-bin in current bunch
-    UInt_t GetEndTimeBin()   const { return fBunch.GetEndTimeBin(); } // Provide the index if the last time-bin in current bunch
-    const UInt_t* GetSignals()     const { return fBunch.GetData(); } // Provide access to altro data itself
+    Int_t  GetDDLNumberOld()   const { return fRawReader->GetDDLID();         } // Provide current DDL number
+    Int_t  GetDDLNumber()      const { return fDDLNumber;                     } // Provide current DDL number
+    Int_t  GetPrevDDLNumber()  const { return fPrevDDLNumber;                 } // Provide previous DDL number
+    Bool_t IsNewDDLNumber()    const { return (fDDLNumber != fPrevDDLNumber); }
+
+    Int_t  GetHWAddress()      const { return fData.GetHadd();                } // Provide current hardware address
+    Int_t  GetPrevHWAddress()  const { return fData.GetPrevHadd();            } // Provide previous hardware address
+    Bool_t IsNewHWAddress()    const { return fData.IsNewHadd() || IsNewDDLNumber(); }
+
+    UInt_t GetStartTimeBin()   const { return fBunch.GetStartTimeBin();       } // Provide the index if the first time-bin in current bunch
+    UInt_t GetEndTimeBin()     const { return fBunch.GetEndTimeBin();         } // Provide the index if the last time-bin in current bunch
+    const UInt_t* GetSignals() const { return fBunch.GetData();               } // Provide access to altro data itself
 
-  private :
 
+  private :
     AliAltroRawStreamFast& operator = (const AliAltroRawStreamFast& stream);
     AliAltroRawStreamFast(const AliAltroRawStreamFast& stream);
 
+
+    Int_t            fDDLNumber;    // index of current DDL number
+    Int_t            fPrevDDLNumber;// index of previous DDL number
+
     AliAltroDecoder  fDecoder;      // decoder for altro payload
     AliAltroData     fData;         // container for altro payload
     AliAltroBunch    fBunch;        // container for altro bunches