New (counter based) histograms
- Oct 15, 2020
-
-
Sebastien Ponce authored
-
Sebastien Ponce authored
-
Sebastien Ponce authored
You can now use operator[] to get the bin and update it via ++ or += in case of weighted/profile histograms. For example : ++counter1d[a] ++counter2d[{a,b}] weightedCounter2d[{a,b}] += weight; profileCounter2d[{a,b}] += c; weightedProfileCounter2d[{a,b}] += {c, w};
-
Sebastien Ponce authored
-
Sebastien Ponce authored
-
Sebastien Ponce authored
-
patch generated by https://gitlab.cern.ch/gaudi/Gaudi/-/jobs/10130864
-
Sebastien Ponce authored
-
Sebastien Ponce authored
-
Sebastien Ponce authored
-
Sebastien Ponce authored
includes : - change of names of the classes, dropping the 'Counter' part which is an implementation detail - rewrote Root sink in a more generic and cleaner way - adapted json representation of histograms to changes in the new monitoring merge request Conflicts: GaudiCoreSvc/src/MessageSvc/MessageSvcSink.cpp
-
Sebastien Ponce authored
Conflicts: GaudiKernel/Gaudi/Accumulators/Histogram.h
-
Sebastien Ponce authored
Conflicts: GaudiExamples/options/Histograms.py Conflicts: GaudiKernel/Gaudi/MonitoringHub.h
-
Sebastien Ponce authored
Main features of that Counter : - can be any number of dimensions. The dimension is its first template parameter - for each dimension, a triplet of values have to be given at construction : nbins, minValue, maxValue. These triplets have to be embedded into braces, as the constructor takes an array of them - the operator+= takes either an array of values (one per dimension) or a tuple<array of values, weight>. The value inside the bin corresponding to the given values is then increased by 1/weight - the Counter is templated by the types of the values given to operator+ and also by the type stored into the bins - the counter can be atomic or not and supports buffering. Note that the atomicity is classical eventual consistency. So each bin is atomically updated but bins are not garanted to be coherent when reading all of them back - profile histograms are also supported, operator+= takes one more value in the array of values in that case Typical usage for an atomic 2D counter, taking doubles and using no weight : HistogramingCounter<2, double, atomicity::full> counter{owner, "CounterName", {nBins1, minVal1, maxVal1}, {nBins2, minVal2, maxVal2}}; counter += {val1, val2}; Conflicts: GaudiKernel/Gaudi/Accumulators/Histogram.h Conflicts: GaudiKernel/Gaudi/Accumulators/Histogram.h
-
Sebastien Ponce authored
Conflicts: GaudiKernel/Gaudi/Accumulators.h Conflicts: GaudiKernel/Gaudi/Accumulators.h GaudiKernel/GaudiKernel/StatEntity.h
-