+void AliRawEventHeaderBase::AllocateExtendedData(Int_t extsize)
+{
+ // Allocate the space for the header
+ // extended data
+ if (fExtendedData) delete [] fExtendedData;
+
+ fExtendedDataSize = fExtendedAllocSize = extsize;
+ fExtendedData = new char[fExtendedAllocSize];
+ memset(fExtendedData,0,fExtendedAllocSize);
+}
+
+//______________________________________________________________________________
+Int_t AliRawEventHeaderBase::ReadExtendedData(char*& data)
+{
+ // Read extended header data
+ // Reallocates memory if the present
+ // buffer is insufficient
+ Int_t extsize = (Int_t)GetHeadSize() - (HeaderBaseSize() + HeaderSize());
+
+ if (extsize == 0) {
+ fExtendedDataSize = 0;
+ return 0;
+ }
+
+ if (extsize < 0) {
+ AliFatal(Form("Invalid header size (%d < %d +%d)!",
+ GetHeadSize(),HeaderBaseSize(),HeaderSize()));
+ // try recovery... how?
+ return 0;
+ }
+
+ fExtendedDataSize = extsize;
+ if (fExtendedDataSize > fExtendedAllocSize)
+ AllocateExtendedData(fExtendedDataSize);
+
+ if (DataIsSwapped())
+ SwapData(data, fExtendedData, fExtendedDataSize);
+ else
+ memcpy(fExtendedData, data, fExtendedDataSize);
+
+ return fExtendedDataSize;
+}
+
+//______________________________________________________________________________
+UInt_t AliRawEventHeaderBase::Get(const char *datamember) const