66 const double error = 0;
67 const unsigned long nEntriesToAccumulate = 1;
70 for (
auto& keyBin : *mean)
73 ((*variance)[keyBin.first]).value,
74 ((*newValue)[keyBin.first]).value,
75 error,
n, nEntriesToAccumulate,
77 (*mean)[keyBin.first].value = newMean;
78 (*variance)[keyBin.first].sumOfWeightsSquared = newVari;
86 const double nD = (double)
n;
87 const double factor = std::sqrt(1./(nD * (nD - 1)));
94 for (
auto& keyBin : *mean)
96 mn = keyBin.second.value;
97 var = keyBin.second.sumOfWeightsSquared;
98 err =
n > 1 ? factor*std::sqrt(var) : 0;
99 (*result)[keyBin.first].value = mn;
100 (*result)[keyBin.first].sumOfWeightsSquared = err;
102 result->nEntries =
n;
Class to accumulate and merge ParticleSets in different ways.
virtual ParticleSet * Terminate()
virtual void AccumulateSingleValue(double oldMean, double oldVari, double x, double xVari, unsigned long nEntriesAccumulated, unsigned long nEntriesToAccumulate, double &newMean, double &newVari) const
ParticleSetAccumulator()
Default constructor only for ROOT reflexivity - not intended for use.
virtual void Accumulate(ParticleSet *newValue)
const std::string resultHistName
Name for resultant histogram.
virtual ~ParticleSetAccumulator()
A very simple 'map' type histogram axis.