DigitReaderPacket revived: uses AliRawReader and Stream (K. Aamodt)
authorrichterm <richterm@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 8 May 2007 13:44:15 +0000 (13:44 +0000)
committerrichterm <richterm@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 8 May 2007 13:44:15 +0000 (13:44 +0000)
HLT/TPCLib/AliHLTTPCClusterFinderComponent.cxx
HLT/TPCLib/AliHLTTPCDigitReader.cxx
HLT/TPCLib/AliHLTTPCDigitReader.h
HLT/TPCLib/AliHLTTPCDigitReaderPacked.cxx
HLT/TPCLib/AliHLTTPCDigitReaderPacked.h

index 00472806f01d5823f622cf443b6c24e519545f4c..82bcc2294f04eb3df6dda38a8e10e08a3be6337f 100644 (file)
@@ -18,7 +18,7 @@
  **************************************************************************/
 
 /** @file   AliHLTTPCClusterFinderComponent.cxx
-    @author Timm Steinbeck, Matthias Richter, Jochen Thaeder
+    @author Timm Steinbeck, Matthias Richter, Jochen Thaeder, Kenneth Aamodt
     @date   
     @brief  The TPC cluster finder processing component
 */
@@ -140,7 +140,7 @@ int AliHLTTPCClusterFinderComponent::DoInit( int argc, const char** argv )
     Int_t rawreadermode =  -1;
     Int_t sigthresh = -1;
     Float_t occulimit = 1.0;
-
+    Int_t oldRCUFormat=0;
     // Data Format version numbers:
     // 0: RCU Data format as delivered during TPC commissioning, pads/padrows are sorted, RCU trailer is one 32 bit word.
     // 1: As 0, but pads/padrows are delivered "as is", without sorting
@@ -217,6 +217,18 @@ int AliHLTTPCClusterFinderComponent::DoInit( int argc, const char** argv )
        continue;
       }
 
+      // -- checking for rcu format
+      if ( !strcmp( argv[i], "oldrcuformat" ) ) {
+       oldRCUFormat = strtoul( argv[i+1], &cpErr ,0);
+       if ( *cpErr ){
+         HLTError("Cannot convert oldrcuformat specifier '%s'. Should  be 0(off) or 1(on), must be integer", argv[i+1]);
+         return EINVAL;
+       }
+       i+=2;
+       continue;
+      }
+      
+
       Logging(kHLTLogError, "HLT::TPCClusterFinder::DoInit", "Unknown Option", "Unknown option '%s'", argv[i] );
       return EINVAL;
 
@@ -228,6 +240,12 @@ int AliHLTTPCClusterFinderComponent::DoInit( int argc, const char** argv )
       if (rawreadermode == -2) {
 #if defined(HAVE_ALIRAWDATA) && defined(HAVE_ALITPCRAWSTREAM_H)
        fReader = new AliHLTTPCDigitReaderPacked();
+       if(oldRCUFormat==1){
+         fReader->SetOldRCUFormat(kTRUE);
+       }
+       else if(oldRCUFormat!=0){
+         HLTWarning("Wrong oldrcuformat specifier %d; oldrcuformat set to default(kFALSE)",oldRCUFormat);
+       }
        fClusterFinder->SetReader(fReader);
 #else // ! defined(HAVE_ALIRAWDATA) && defined(HAVE_ALITPCRAWSTREAM_H)
        HLTFatal("DigitReaderPacked not available - check your build");
index 43f8f8a5813b11f45141eddbf659cc6ce07e2c40..322d5ea051f4c795bdfe74f01ddcb9d799b7a3b0 100644 (file)
@@ -18,7 +18,7 @@
  **************************************************************************/
 
 /** @file   AliHLTTPCDigitReader.cxx
-    @author Timm Steinbeck, Jochen Thaeder, Matthias Richter
+    @author Timm Steinbeck, Jochen Thaeder, Matthias Richter, Kenneth Aamodt
     @date   
     @brief  An abstract reader class for TPC data.
 */
@@ -55,3 +55,8 @@ int AliHLTTPCDigitReader::InitBlock(void* ptr,unsigned long size,Int_t firstrow,
   return InitBlock(ptr, size, patch, slice);
 }
 
+void AliHLTTPCDigitReader::SetOldRCUFormat(Bool_t oldrcuformat){
+  if (oldrcuformat==NULL) {
+    // this is currently just to get rid of the warning "unused parameter"
+  }
+}
index f62308010eac7aa223a478e757203943f77ad1cb..86fd9cb4626a8b1192aa89e327a94d9261c94fe5 100644 (file)
@@ -8,7 +8,7 @@
  * See cxx source for full Copyright notice                               */
 
 /** @file   AliHLTTPCDigitReader.h
-    @author Timm Steinbeck, Jochen Thaeder, Matthias Richter
+    @author Timm Steinbeck, Jochen Thaeder, Matthias Richter, Kenneth Aamodt
     @date   
     @brief  An abstract reader class for TPC data.
 */
@@ -86,6 +86,11 @@ public:
    */
   virtual int GetTime()=0;
 
+  /**
+   * Method to use old rcu fomat.
+   */
+  virtual void SetOldRCUFormat(Bool_t oldrcuformat);
+
 protected:
        
 private:
index 0e3c45fbd9bdb86720b297d5efbdb34983eebad3..bf8eb5f0109aac014cfaf0e71c38d448f4912d35 100644 (file)
@@ -18,7 +18,7 @@
  **************************************************************************/
 
 /** @file   AliHLTTPCDigitReaderPacked.cxx
-    @author Timm Steinbeck, Jochen Thaeder, Matthias Richter
+    @author Timm Steinbeck, Jochen Thaeder, Matthias Richter, Kenneth Aamodt
     @date   
     @brief  A digit reader implementation for simulated, packed TPC 'raw' data.
 */
@@ -55,7 +55,8 @@ AliHLTTPCDigitReaderPacked::AliHLTTPCDigitReaderPacked()
   fData(NULL),
 #endif // ENABLE_PAD_SORTING  
   fRawMemoryReader(NULL),
-  fTPCRawStream(NULL)
+  fTPCRawStream(NULL),
+  fOldRCUFormat(kFALSE)
 {
   fRawMemoryReader = new AliRawReaderMemory;
   
@@ -97,7 +98,8 @@ AliHLTTPCDigitReaderPacked::AliHLTTPCDigitReaderPacked(const AliHLTTPCDigitReade
   fData(NULL),
 #endif // ENABLE_PAD_SORTING  
   fRawMemoryReader(NULL),
-  fTPCRawStream(NULL)
+  fTPCRawStream(NULL),
+  fOldRCUFormat(kFALSE)
 {
   HLTFatal("copy constructor not for use");
 }
@@ -117,6 +119,7 @@ AliHLTTPCDigitReaderPacked& AliHLTTPCDigitReaderPacked::operator=(const AliHLTTP
 #endif // ENABLE_PAD_SORTING  
   fRawMemoryReader=NULL;
   fTPCRawStream=NULL;
+  fOldRCUFormat=kFALSE;
   HLTFatal("assignment operator not for use");
   return (*this);
 }
@@ -142,14 +145,14 @@ Int_t AliHLTTPCDigitReaderPacked::InitBlock(void* ptr,unsigned long size, Int_t
   //get DDL ID in order to tell the memory reader which slice/patch to use
   Int_t DDLid= 0;
   if (patch < 2)
-    DDLid = *slice + patch;
+    DDLid = 768 + 2*slice + patch;
   else 
-    DDLid = 70 + 4*slice + patch;
+    DDLid = 840 + 4*slice + patch;
 
-  //fRawMemoryReader->SetEquipmentID(DDLid);
-//fRawMemoryReader->SetEquipmentID(1);
-
-// fTPCRawStream->SetOldRCUFormat(kTRUE);
+  fRawMemoryReader->SetEquipmentID(DDLid);
+  //fRawMemoryReader->SetEquipmentID(1);
+  if(fOldRCUFormat)
+    fTPCRawStream->SetOldRCUFormat(kTRUE);
 
 #if ENABLE_PAD_SORTING
 
index a0eb87c2b90b48f2fd75fae24ef3ceea271c3645..3a3539a7c7016fec90771844e6d6971f0b789fa0 100644 (file)
@@ -8,7 +8,7 @@
  * See cxx source for full Copyright notice                               */
 
 /** @file   AliHLTTPCDigitReaderPacked.h
-    @author Timm Steinbeck, Jochen Thaeder, Matthias Richter
+    @author Timm Steinbeck, Jochen Thaeder, Matthias Richter, Kenneth Aamodt
     @date   
     @brief  A digit reader implementation for simulated, packed TPC 'raw' data.
 */
@@ -50,6 +50,7 @@ public:
    * @param slice   sector no (0 to 35)
    */
   Int_t InitBlock(void* ptr,ULong_t size, Int_t patch, Int_t slice);
+  void SetOldRCUFormat(bool oldrcuformat){fOldRCUFormat=oldrcuformat;}
   Bool_t Next();
   Int_t GetRow();
   Int_t GetPad();
@@ -59,26 +60,29 @@ public:
 protected:
     
 private:
-    // Initialize AliROOT TPC raw stream parsing class
-    AliRawReaderMemory *fRawMemoryReader;
+  // Initialize AliROOT TPC raw stream parsing class
+  AliRawReaderMemory *fRawMemoryReader;
 
-    AliTPCRawStream *fTPCRawStream;
+  AliTPCRawStream *fTPCRawStream;
     
 #if ENABLE_PAD_SORTING 
-    Int_t fCurrentRow;
-    Int_t fCurrentPad;
-    Int_t fCurrentBin;
+  Int_t fCurrentRow;
+  Int_t fCurrentPad;
+  Int_t fCurrentBin;
  
-    Int_t fRowOffset;
-    Int_t fNRows;
+  Int_t fRowOffset;
+  Int_t fNRows;
 
-    Int_t fNMaxRows;
-    Int_t fNMaxPads;
-    Int_t fNTimeBins;
+  Int_t fNMaxRows;
+  Int_t fNMaxPads;
+  Int_t fNTimeBins;
 
-    Int_t *fData;
+  Int_t *fData;
 #endif // ENABLE_PAD_SORTING
-    ClassDef(AliHLTTPCDigitReaderPacked, 0)
+
+  Bool_t fOldRCUFormat;
+
+  ClassDef(AliHLTTPCDigitReaderPacked, 0)
        
 };