]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/AliITSRawStreamSDD.cxx
Changed error estimate in AliBWTools::GetMeanDataAndExtrapolation + removed debug...
[u/mrichter/AliRoot.git] / ITS / AliITSRawStreamSDD.cxx
index 2682d00c2e70ff535f809dc452b5dcf2d72efdaf..379153fadd8193dd46ca55b69e1b468e0ee965fd 100644 (file)
@@ -22,6 +22,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 
 #include "AliITSRawStreamSDD.h"
+#include "AliITSRawStreamSDDCompressed.h"
 #include "AliRawReader.h"
 #include "AliLog.h"
 
@@ -85,6 +86,39 @@ AliITSRawStreamSDD::~AliITSRawStreamSDD(){
   if(fDDLModuleMap) delete fDDLModuleMap;
 }
 //______________________________________________________________________
+UChar_t AliITSRawStreamSDD::ReadBlockAttributes(AliRawReader* rawReader){
+  // reads block attribuited from CDH
+  UChar_t *data;
+  rawReader->Reset();
+  rawReader->Select("ITSSDD");
+  do{
+    if(!rawReader->ReadNextData(data)) return 0x0;
+  }while(rawReader->GetDataSize()==0);
+  UChar_t attr=rawReader->GetBlockAttributes();
+  return attr;
+}
+//______________________________________________________________________
+AliITSRawStream* AliITSRawStreamSDD::CreateRawStreamSDD(AliRawReader* rawReader, UChar_t attributes){
+  // instantiates the proper raw stream from block attributes value
+
+  Int_t rawFormat=(attributes&0xE0)>>5;  
+  rawReader->Reset();
+  AliITSRawStream* inputSDD;
+  if(rawFormat==0){
+    inputSDD=new AliITSRawStreamSDDCompressed(rawReader);
+    inputSDD->SetADCEncoded(kTRUE);
+  }else{
+    inputSDD=new AliITSRawStreamSDD(rawReader);
+  }
+  return inputSDD;
+}
+//______________________________________________________________________
+AliITSRawStream* AliITSRawStreamSDD::CreateRawStreamSDD(AliRawReader* rawReader){
+  // reads the data format from CDH and instantiates the proper raw stream
+  UChar_t attr=ReadBlockAttributes(rawReader);
+  return CreateRawStreamSDD(rawReader,attr);
+}
+//______________________________________________________________________
 UInt_t AliITSRawStreamSDD::ReadBits()
 {
 // read bits from the given channel