int ipad = 1;
void smooth_hist(
const char * fname,
double xmin,
double xmax,
int n1,
int n2) {
std::cout << "smoothing a " << fname << " histogram" << std::endl;
h2->FillRandom(fname,n2);
if (p2 < p1)
Error(
"testSmooth",
"TH1::Smooth is not working correctly - a worst chi2 is obtained");
std::cout << " chi2 test non-smoothed histo " << p1 << std::endl;
std::cout << " chi2 test smoothed histo " << p2 << std::endl;
std::cout << " AD test non-smoothed histo " << a1 << std::endl;
std::cout << " AD test smoothed histo " << a2 << std::endl;
std::cout << " KS test non-smoothed histo " << k1 << std::endl;
std::cout << " KS test smoothed histo " << k2 << std::endl;
h2->Scale(double(n1)/n2);
h2->Draw("same");
}
void testSmooth(int n1 = 1000, int n2 = 1000000) {
smooth_hist("gaus",-5,5,n1,n2);
smooth_hist("landau",-5,15,n1,n2);
smooth_hist("expo",-5,0,n1,n2);
}
void Error(const char *location, const char *msgfmt,...)
Use this function in case an error occurred.
virtual void SetLineColor(Color_t lcolor)
Set the line color.
1-D histogram with a double per channel (see TH1 documentation)
virtual void Smooth(Int_t ntimes=1, Option_t *option="")
Smooth bin contents of this histogram.
virtual void FillRandom(TF1 *f1, Int_t ntimes=5000, TRandom *rng=nullptr)
static void AddDirectory(Bool_t add=kTRUE)
Sets the flag controlling the automatic add of histograms in memory.
void Draw(Option_t *option="") override
Draw this histogram with options.
void SetName(const char *name) override
Change the name of this histogram.
virtual Double_t AndersonDarlingTest(const TH1 *h2, Option_t *option="") const
Statistical test of compatibility in shape between this histogram and h2, using the Anderson-Darling ...
virtual Double_t Chi2Test(const TH1 *h2, Option_t *option="UU", Double_t *res=nullptr) const
test for comparing weighted and unweighted histograms.
virtual Double_t KolmogorovTest(const TH1 *h2, Option_t *option="") const
Statistical test of compatibility in shape between this histogram and h2, using Kolmogorov test.