36         : fName(
name), fN(0), fW(0.), fW2(0.), fM(0.), fM2(0.), 
 
   40      for (
Int_t i = 0; i < 
n; i++) {
 
   97      Warning(
"Fill",
"Sum of weights is zero - ignore current data point");
 
  104      fM2 += 
w * rr * rr / (tW * 
fW);
 
  117   Printf(
" OBJ: TStatistic\t %s \t Mean = %.5g +- %.4g \t RMS = %.5g \t Count = %lld \t Min = %.5g \t Max = %.5g",
 
  140   std::vector<TStatistic*> statPtrs;
 
  141   if (this->
fN != 0LL) statPtrs.push_back(
this);
 
  144      if ((statPtr = 
dynamic_cast<TStatistic *
>(o)) && statPtr->
fN != 0LL) {
 
  145         statPtrs.push_back(statPtr);
 
  150   const auto nStatsPtrs = statPtrs.size();
 
  153   if (nStatsPtrs == 0) 
return 0;
 
  157   auto firstStatPtr = statPtrs[0];
 
  158   auto N = firstStatPtr->
fN;
 
  159   auto M = firstStatPtr->fM;
 
  160   auto M2 = firstStatPtr->fM2;
 
  161   auto W = firstStatPtr->fW;
 
  162   auto W2 = firstStatPtr->fW2;
 
  163   auto Min = firstStatPtr->fMin;
 
  164   auto Max = firstStatPtr->fMax;
 
  165   for (
auto i = 1U; i < nStatsPtrs; ++i) {
 
  166      auto c = statPtrs[i];
 
  167      double temp = (
c->fW) / (W)*M - 
c->fM;
 
  168      M2 += 
c->fM2 + W / (
c->fW * (
c->fW + W)) * temp * temp;
 
  173      Min = (
c->fMin < Min) ? 
c->fMin : Min;
 
  174      Max = (
c->fMax > Max) ? 
c->fMax : Max;
 
#define templateClassImp(name)
 
void Printf(const char *fmt,...)
Formats a string in a circular formatting buffer and prints the string.
 
Collection abstract base class.
 
virtual void Warning(const char *method, const char *msgfmt,...) const
Issue warning message.
 
static void IndentLevel()
Functions used by ls() to indent an object hierarchy.
 
Statistical variable, defined by its mean and variance (RMS).
 
TString fName
Name given to the TStatistic object.
 
Double_t GetMeanErr() const
 
Double_t fW2
Sum of squared weights.
 
~TStatistic() override
TStatistic destructor.
 
void Print(Option_t *="") const override
Print the content of the object.
 
Double_t fW
Sum of weights.
 
TStatistic(const char *name="")
 
void Fill(Double_t val, Double_t w=1.)
Increment the entries in the object by one value-weight pair.
 
Double_t fMin
Minimum value in the TStatistic object.
 
Double_t fMax
Maximum value in the TStatistic object.
 
Double_t fM
Sum of elements (i.e. sum of (val * weight) pairs.
 
Double_t fM2
Second order momentum.
 
Int_t Merge(TCollection *in)
Merge implementation of TStatistic.
 
Long64_t fN
Number of fills.
 
const char * Data() const
 
void CallRecursiveRemoveIfNeeded(TObject &obj)
call RecursiveRemove for obj if gROOT is valid and obj.TestBit(kMustCleanup) is true.