]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - HLT/BASE/AliHLTDataDeflaterSimple.cxx
Add printout of S/B in the mass plot (ChiaraB)
[u/mrichter/AliRoot.git] / HLT / BASE / AliHLTDataDeflaterSimple.cxx
index 23feee437ff407386d3a3602fe0e91b436921198..febca278e619c5b8aea09880d72fc86502b6d604 100644 (file)
@@ -46,6 +46,18 @@ AliHLTDataDeflaterSimple::~AliHLTDataDeflaterSimple()
 {
   // destructor
   Clear();
+
+}
+
+int AliHLTDataDeflaterSimple::AddParameterDefinition(const char* name, int bitLength, int reducedBitLength)
+{
+  /// add a parameter definition to the configuration, return reference id
+  fParameterDefinitions.push_back(AliHLTDataDeflaterParameter(name, bitLength, reducedBitLength));
+  int memberId=fParameterDefinitions.size()-1;
+  if (DoStatistics()) {
+    AddHistogram(memberId, name, bitLength);
+  }
+  return memberId;
 }
 
 bool AliHLTDataDeflaterSimple::OutputParameterBits( int memberId, AliHLTUInt64_t const & value )
@@ -58,13 +70,22 @@ bool AliHLTDataDeflaterSimple::OutputParameterBits( int memberId, AliHLTUInt64_t
   AliHLTUInt32_t length=fParameterDefinitions[memberId].ValueLength(value);
   fParameterDefinitions[memberId].IncrementBitCount(value);
 
+  if (DoStatistics())
+    FillStatistics(memberId, length, value);
+
   if (!OutputBit(switchBit)) return false;
   return OutputBits(v, length);
 }
 
-void AliHLTDataDeflaterSimple::Clear(Option_t * /*option*/)
+void AliHLTDataDeflaterSimple::Clear(Option_t * option)
 {
   // internal cleanup
+  unsigned i=0;
+  for (vector<AliHLTDataDeflaterParameter>::iterator m=fParameterDefinitions.begin();
+       m!=fParameterDefinitions.end(); m++, i++) {
+    m->ResetBitCount();
+  }
+  AliHLTDataDeflater::Clear(option);
 }
 
 void AliHLTDataDeflaterSimple::Print(Option_t *option) const