Bug fix: AliHLTOUTRawReader
authortbreitne <timo.gunther.breitner@cern.ch>
Tue, 20 May 2014 22:13:54 +0000 (00:13 +0200)
committertbreitne <timo.gunther.breitner@cern.ch>
Tue, 20 May 2014 22:16:14 +0000 (00:16 +0200)
added transparent access to CDH v2 or V3 header from raw reader

HLT/rec/AliHLTOUTHomerCollection.cxx
HLT/rec/AliHLTOUTRawReader.cxx

index c75afb5..ca116cf 100644 (file)
@@ -139,6 +139,10 @@ AliHLTHOMERReader* AliHLTOUTHomerCollection::OpenReader(UChar_t* pSrc, unsigned
   // open HOMER reader for buffer
   unsigned int offset=sizeof(AliHLTOUTEventHeader);
   AliHLTCDHWrapper pCDH=GetDataHeader();
+  if(pCDH.GetHeader()==NULL){
+    HLTError("Couldn't find data header.");
+    return NULL;
+  }
   AliHLTUInt32_t id=(GetEquipmentId());
   AliHLTUInt32_t statusFlags=pCDH.GetStatus();
   AliHLTOUTEventHeader* pHLTHeader=reinterpret_cast<AliHLTOUTEventHeader*>(pSrc);
index 8a50e33..3a28937 100644 (file)
@@ -80,7 +80,12 @@ int AliHLTOUTRawReader::GetDataSize()
 AliHLTCDHWrapper AliHLTOUTRawReader::GetDataHeader()
 {
   // overloaded from AliHLTOUTHomerCollection: get data header of current DDL
-  if (fpRawreader) return fpRawreader->GetDataHeader();
+  if (fpRawreader) {
+    if(fpRawreader->GetDataHeader())
+      return fpRawreader->GetDataHeader();
+    if(fpRawreader->GetDataHeaderV3())
+      return fpRawreader->GetDataHeaderV3();
+  }
   return NULL;
 }