]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - HLT/TPCLib/AliHLTTPCHWCFData.h
configuration 'TPC-compression-emulation' added, to be activated in separate commit
[u/mrichter/AliRoot.git] / HLT / TPCLib / AliHLTTPCHWCFData.h
index cd16625537406562b90005e2db7d7d5cc01f49ba..707106bb8cd1c38e49a0946d3cae8a7e9942e9b5 100644 (file)
@@ -12,7 +12,7 @@
 /// @brief  Decoder methods for the HWCF format
 ///
 
-#include "AliHLTTPCRootTypes.h"
+#include "Rtypes.h"
 #include "AliHLTDataTypes.h"
 #include "AliHLTLogging.h"
 #include "AliHLTErrorGuard.h"
@@ -97,7 +97,7 @@ class AliHLTTPCHWCFData : public AliHLTLogging {
   const AliHLTUInt8_t*  GetRCUTrailer() const
   {
     if (fRCUTrailerSize<=0 || fpBuffer==NULL || fBufferSize<fRCUTrailerSize) return NULL;
-    return fpBuffer+fRCUTrailerSize;
+    return fpBuffer+(fBufferSize-fRCUTrailerSize);
   }
 
   // size of RCU trailer
@@ -122,10 +122,16 @@ class AliHLTTPCHWCFData : public AliHLTLogging {
     Float_t        fSigmaZ2;
 
     Int_t    GetPadRow()  const;
-    Float_t  GetPad()     const {return fPad;}
+    Float_t  GetPad()     const {return fPad+0.5;}
     Float_t  GetTime()    const {return fTime;}
-    Float_t  GetSigmaY2() const {return fSigmaY2;}
-    Float_t  GetSigmaZ2() const {return fSigmaZ2;}
+    Float_t  GetSigmaY2() const {
+      Float_t sy2 = fSigmaY2 - fPad*fPad;
+      return (sy2>0) ?sy2 :0.;
+    }
+    Float_t  GetSigmaZ2() const {
+      Float_t sz2 = fSigmaZ2 - fTime*fTime;
+      return (sz2>0) ?sz2 :0.;
+    }
     Int_t    GetCharge()  const;
     Int_t    GetQMax()    const {return -1;}
   };
@@ -139,10 +145,16 @@ class AliHLTTPCHWCFData : public AliHLTLogging {
     Float_t        fSigmaZ2;
 
     Int_t    GetPadRow()  const;
-    Float_t  GetPad()     const {return fPad;}
+    Float_t  GetPad()     const {return fPad+0.5;}
     Float_t  GetTime()    const {return fTime;}
-    Float_t  GetSigmaY2() const {return fSigmaY2;}
-    Float_t  GetSigmaZ2() const {return fSigmaZ2;}
+    Float_t  GetSigmaY2() const {
+      Float_t sy2 = fSigmaY2 - fPad*fPad;
+      return (sy2>0) ?sy2 :0.;
+    }
+    Float_t  GetSigmaZ2() const {
+      Float_t sz2 = fSigmaZ2 - fTime*fTime;
+      return (sz2>0) ?sz2 :0.;
+    }
     Int_t    GetCharge()  const;
     Int_t    GetQMax()    const;
   };
@@ -179,8 +191,10 @@ class AliHLTTPCHWCFData : public AliHLTLogging {
       : fData(pData), fVersion(version), fElementSize(elementSize) {}
     iterator(const iterator& i)
       : fData(i.fData), fVersion(i.fVersion), fElementSize(i.fElementSize) {}
-    iterator& operator=(const iterator& i)
-      { fData=i.fData; fVersion=i.fVersion; fElementSize=i.fElementSize; return *this;}
+    iterator& operator=(const iterator& i) {
+      if (this==&i) return *this;
+      fData=i.fData; fVersion=i.fVersion; fElementSize=i.fElementSize; return *this;
+    }
     ~iterator() {fData=NULL;}
 
     bool operator==(const iterator& i) const  {return (fData!=NULL) && (fData==i.fData);}