]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - HLT/TPCLib/AliHLTTPCDigitReaderUnpacked.h
Fixing trigg.class issue
[u/mrichter/AliRoot.git] / HLT / TPCLib / AliHLTTPCDigitReaderUnpacked.h
index 50444f848ffaead5d4513f251958f2082af9a813..ff50823260dccad68b395a2d19a592a165189362 100644 (file)
@@ -4,8 +4,9 @@
 #ifndef ALIHLTTPCDIGITREADERUNPACKED_H
 #define ALIHLTTPCDIGITREADERUNPACKED_H
 
-/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
- * See cxx source for full Copyright notice                               */
+//* This file is property of and copyright by the ALICE HLT Project        * 
+//* ALICE Experiment at CERN, All rights reserved.                         *
+//* See cxx source for full Copyright notice                               *
 
 /** @file   AliHLTTPCDigitReaderUnpacked.h
     @author Timm Steinbeck, Jochen Thaeder, Matthias Richter
 
 #include "AliHLTTPCDigitReader.h"
 #include "AliHLTTPCDigitData.h"
-
+class AliHLTTPCMapping;
 class AliHLTTPCDigitRowData;
 
 /**
- * @class AliHLTTPCDigitReaderPacked
+ * @class AliHLTTPCDigitReaderUnpacked
  * A digit reader implementation for unpacked TPC data.
  * @ingroup alihlt_tpc
  */
@@ -38,12 +39,13 @@ public:
    * @param slice  sector no
    */  
   int InitBlock(void* ptr,unsigned long size, Int_t patch, Int_t slice);
+  using AliHLTTPCDigitReader::InitBlock;
 
   /**
    * place the reader at the next signal
    * @return 1 if there was a nest signal, 0 if not
    */
-  bool Next();
+  bool NextSignal();
 
   /**
    * Get row number of the current signal
@@ -69,6 +71,24 @@ public:
    */
   int GetTime();
   
+  bool NextChannel();
+  int NextBunch();
+  AliHLTUInt32_t GetAltroBlockHWaddr() const;
+  int GetBunchSize();
+  const UInt_t* GetSignals();
+  AliHLTTPCDigitData GetSortedDigit();
+  Int_t GetSortedTime();    
+  Int_t GetSortedSignal();
+  Int_t GetSortedPad() const;
+  Int_t GetSortedRow() const;
+  int GetRowOffset() const;
+
+  void SetUnsorted(bool unsorted){fUnsorted=unsorted;}
+
+  void SortBunchBinVector(); // fills the vector fBinRowPositionSorted so that digits are read in the correct order
+
+  const AliHLTTPCDigitData* GetBunchDigits();
+
 protected:
 
 
@@ -78,6 +98,14 @@ private:
   /** assignment operator prohibited */
   AliHLTTPCDigitReaderUnpacked& operator=(const AliHLTTPCDigitReaderUnpacked&);
 
+  /**
+   * Increment to the next raw data pointer.
+   * @param pRow        [IN] the current row data pointer
+   *                    [OUT] the new pointer
+   * @return -EBADF in case of format error 
+   */
+  int GetNextRowData(AliHLTTPCDigitRowData*& pRow) const;
+
   /** intermediate row data structure (pointer in fPtr buffer) */
   AliHLTTPCDigitRowData *fDigitRowData; //!
   /** current row data structure (pointer in fPtr buffer) */
@@ -99,6 +127,38 @@ private:
   /** last row */
   Int_t fLastRow;                                                  // see above
 
+  Bool_t fUnsorted; //!transient
+
+  /** array to hold bunch data */
+  vector<UInt_t> fDataBunch;                            //! transient
+
+  vector<Int_t> fTrackIDs;                              //! transient
+  vector<UInt_t> fTrackIDCounts;                        //! transient
+  
+  Bool_t fEndOfDataReached;                             //! transient
+
+  Bool_t fEndOfChannelReached;                          //! transient
+
+  Int_t fPrevTime;                                      //! transient
+
+  Int_t fEndTimeBinOfBunch;                             //! transient
+
+  Int_t fPrevSignal;                                    //! transient
+
+  Int_t fPrevPad;                                       //! transient
+
+  Int_t fPrevRow;                                       //! transient
+  
+  Bool_t fNextChannelIsAlreadyConfirmed;                //! transient 
+
+  AliHLTTPCMapping *fMapping;                           //! transient
+
+  vector<AliHLTTPCDigitData> fDigitsVector;             //! transient
+
+  vector<Int_t>fBinRowPositionSorted;                      //! transient
+
+  Int_t fPatch;
+
   ClassDef(AliHLTTPCDigitReaderUnpacked, 0)
 };
 #endif