/usr/include/root/TStatistic.h is in libroot-math-mathcore-dev 5.34.30-0ubuntu8.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 | // @(#)root/mathcore:$Id$
// Author: G. Ganis 2012
/*************************************************************************
* Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
* All rights reserved. *
* *
* For the licensing terms see $ROOTSYS/LICENSE. *
* For the list of contributors see $ROOTSYS/README/CREDITS. *
*************************************************************************/
#ifndef ROOT_TStatistic
#define ROOT_TStatistic
//////////////////////////////////////////////////////////////////////////
// //
// TStatistic //
// //
// Statistical variable, defined by its mean, RMS and related errors. //
// Named, streamable, storable and mergeable. //
// //
//////////////////////////////////////////////////////////////////////////
#ifndef ROOT_TObject
#include "TObject.h"
#endif
#ifndef ROOT_TCollection
#include "TCollection.h"
#endif
#ifndef ROOT_TMath
#include "TMath.h"
#endif
#ifndef ROOT_TString
#include "TString.h"
#endif
#ifndef ROOT_TROOT
#include "TROOT.h"
#endif
class TStatistic : public TObject {
private:
TString fName;
Long64_t fN; // Number of fills
Double_t fW; // Sum of weights
Double_t fW2; // Sum of weights**2
Double_t fM; // Sum of elements ( i.e. mean * sum_of_weights)
Double_t fM2; // Second order momentum
public:
TStatistic(const char *name = "") : fName(name), fN(0), fW(0.), fW2(0.), fM(0.), fM2(0.) { }
TStatistic(const char *name, Int_t n, const Double_t *val, const Double_t *w = 0);
~TStatistic() { }
// Getters
const char *GetName() const { return fName; }
ULong_t Hash() const { return fName.Hash(); }
inline Long64_t GetN() const { return fN; }
inline Long64_t GetNeff() const { return fW*fW/fW2; }
inline Double_t GetM2() const { return fM2; }
inline Double_t GetMean() const { return (fW > 0) ? fM/fW : 0; }
inline Double_t GetMeanErr() const { return (fW > 0.) ? TMath::Sqrt( GetVar()/ GetNeff() ) : 0; }
inline Double_t GetRMS() const { double var = GetVar(); return (var>0) ? TMath::Sqrt(var) : -1; }
inline Double_t GetVar() const { return (fW>0) ? ( (fN>1) ? (fM2 / fW)*(fN / (fN-1.)) : 0 ) : -1; }
inline Double_t GetW() const { return fW; }
inline Double_t GetW2() const { return fW2; }
// Merging
Int_t Merge(TCollection *in);
// Fill
void Fill(Double_t val, Double_t w = 1.);
// Print
void Print(Option_t * = "") const;
void ls(Option_t *opt = "") const { Print(opt); }
ClassDef(TStatistic,2) //Named statistical variable
};
#endif
|