Histograms filled and drawn in a loop.
Simple example illustrating how to use the C++ interpreter to fill histograms in a loop and show the graphics results
void hist007_TH1_liveupdate()
{
TCanvas *
c1 =
new TCanvas(
"c1",
"Live update of histograms", 200, 10, 600, 400);
auto *
total =
new TH1D(
"total",
"This is the total distribution", 100, -4, 4);
auto *
main =
new TH1D(
"main",
"Main contributor", 100, -4, 4);
auto *
s1 =
new TH1D(
"s1",
"This is the first signal", 100, -4, 4);
auto *s2 =
new TH1D(
"s2",
"This is the second signal", 100, -4, 4);
total->SetMarkerStyle(21);
total->SetMarkerSize(0.7);
s2->SetFillColor(46);
for (int i = 0; i < 10000; i++) {
float xmain = rng.
Gaus(-1, 1.5);
float xs1 = rng.
Gaus(-0.5, 0.5);
float xs2 = rng.
Landau(1, 0.15);
s2->Fill(xs2, 0.2);
s2->Draw("same");
slider =
new TSlider(
"slider",
"test", 4.2, 0, 4.6,
total->GetMaximum(), 38);
}
if (slider)
}
}
}
static unsigned int total
virtual void SetFillColor(Color_t fcolor)
Set the fill area color.
1-D histogram with a double per channel (see TH1 documentation)
Random number generator class based on M.
virtual Double_t Gaus(Double_t mean=0, Double_t sigma=1)
Samples a random number from the standard Normal (Gaussian) Distribution with the given mean and sigm...
virtual Double_t Landau(Double_t mean=0, Double_t sigma=1)
Generate a random number following a Landau distribution with location parameter mu and scale paramet...
A specialized TPad including a TSliderBox object.
virtual void SetRange(Double_t xmin=0, Double_t xmax=1)
Set Slider range in [0,1].
- Date
- November 2024
- Author
- Rene Brun
Definition in file hist007_TH1_liveupdate.C.