ROOT   Reference Guide
cumulative.C
Go to the documentation of this file.
1/// \file
2/// \ingroup tutorial_hist
3/// \notebook -js
4/// Illustrate use of the TH1::GetCumulative method.
5///
6/// \macro_image
7/// \macro_code
8///
9/// \author M. Schiller
10
11#include <cassert>
12#include <cmath>
13
14#include "TH1.h"
15#include "TH1D.h"
16#include "TCanvas.h"
17#include "TRandom.h"
18
19TCanvas *cumulative()
20{
21 TH1* h = new TH1D("h", "h", 100, -5., 5.);
23 h->FillRandom("gaus", 1u << 16);
24 // get the cumulative of h
25 TH1* hc = h->GetCumulative();
26 // check that c has the "right" contents
27 Double_t* integral = h->GetIntegral();
28 for (Int_t i = 1; i <= hc->GetNbinsX(); ++i) {
29 assert(std::abs(integral[i] * h->GetEntries() - hc->GetBinContent(i)) < 1e-7);
30 }
31 // draw histogram together with its cumulative distribution
32 TCanvas* c = new TCanvas;
33 c->Divide(1,2);
34 c->cd(1);
35 h->Draw();
36 c->cd(2);
37 hc->Draw();
38 c->Update();
39
40 return c;
41}
#define c(i)
Definition: RSha256.hxx:101
#define h(i)
Definition: RSha256.hxx:106
#define e(i)
Definition: RSha256.hxx:103
int Int_t
Definition: RtypesCore.h:45
double Double_t
Definition: RtypesCore.h:59
R__EXTERN TRandom * gRandom
Definition: TRandom.h:62
The Canvas class.
Definition: TCanvas.h:23
1-D histogram with a double per channel (see TH1 documentation)}
Definition: TH1.h:620
TH1 is the base class of all histogram classes in ROOT.
Definition: TH1.h:58
virtual Int_t GetNbinsX() const
Definition: TH1.h:295
void Draw(Option_t *option="") override
Draw this histogram with options.
Definition: TH1.cxx:3060
virtual Double_t GetBinContent(Int_t bin) const
Return content of bin number bin.
Definition: TH1.cxx:5025
virtual void SetSeed(ULong_t seed=0)
Set the random generator seed.
Definition: TRandom.cxx:608
RVec< PromoteType< T > > abs(const RVec< T > &v)
Definition: RVec.hxx:1778