hsum.C: histograms filled and drawn in a loop | Histograms | logscales.C: Draw parametric functions with log scales |
// demo of Timers Int_t i; Float_t ratio; TSlider *slider; TCanvas *c1; void hsumTimer(Int_t nfill=100000) { // // Simple example illustrating how to use the C++ interpreter // to fill histograms in a loop and show the graphics results // This program is a variant of the tutorial "hsum". // It illustrates the use of Timers. //Author: Rene Brun c1 = new TCanvas("c1","The HSUM example",200,10,600,400); c1->SetGrid(); // Create some histograms. total = new TH1F("total","This is the total distribution",100,-4,4); main = new TH1F("main","Main contributor",100,-4,4); s1 = new TH1F("s1","This is the first signal",100,-4,4); s2 = new TH1F("s2","This is the second signal",100,-4,4); total->Sumw2(); // store the sum of squares of weights total->SetMarkerStyle(21); total->SetMarkerSize(0.7); main->SetFillColor(16); s1->SetFillColor(42); s2->SetFillColor(46); total->SetMaximum(nfill/20.); total->Draw("e1p"); main->Draw("same"); s1->Draw("same"); s2->Draw("same"); c1->Update();slider = new TSlider("slider", "test",4.2,0,4.6,0.8*total->GetMaximum(),38); slider->SetFillColor(46); // Create a TTimer (hsumUpdate called every 300 msec) TTimer timer("hsumUpdate()",300); timer.TurnOn(); // Fill histograms randomly Float_t xs1, xs2, xmain; gRandom->SetSeed(); for (Int_t i=0; i<nfill; i++) { ratio = Float_t(i)/Float_t(nfill); if (gSystem->ProcessEvents()) break; xmain = gRandom->Gaus(-1,1.5); xs1 = gRandom->Gaus(-0.5,0.5); xs2 = gRandom->Landau(1,0.15); main->Fill(xmain); s1->Fill(xs1,0.3); s2->Fill(xs2,0.2); total->Fill(xmain); total->Fill(xs1,0.3); total->Fill(xs2,0.2); } timer.TurnOff(); hsumUpdate(); } void hsumUpdate() { // called when Timer times out if (slider) slider->SetRange(0,ratio); c1->Modified(); c1->Update(); } hsumTimer.C:1 hsumTimer.C:2 hsumTimer.C:3 hsumTimer.C:4 hsumTimer.C:5 hsumTimer.C:6 hsumTimer.C:7 hsumTimer.C:8 hsumTimer.C:9 hsumTimer.C:10 hsumTimer.C:11 hsumTimer.C:12 hsumTimer.C:13 hsumTimer.C:14 hsumTimer.C:15 hsumTimer.C:16 hsumTimer.C:17 hsumTimer.C:18 hsumTimer.C:19 hsumTimer.C:20 hsumTimer.C:21 hsumTimer.C:22 hsumTimer.C:23 hsumTimer.C:24 hsumTimer.C:25 hsumTimer.C:26 hsumTimer.C:27 hsumTimer.C:28 hsumTimer.C:29 hsumTimer.C:30 hsumTimer.C:31 hsumTimer.C:32 hsumTimer.C:33 hsumTimer.C:34 hsumTimer.C:35 hsumTimer.C:36 hsumTimer.C:37 hsumTimer.C:38 hsumTimer.C:39 hsumTimer.C:40 hsumTimer.C:41 hsumTimer.C:42 hsumTimer.C:43 hsumTimer.C:44 hsumTimer.C:45 hsumTimer.C:46 hsumTimer.C:47 hsumTimer.C:48 hsumTimer.C:49 hsumTimer.C:50 hsumTimer.C:51 hsumTimer.C:52 hsumTimer.C:53 hsumTimer.C:54 hsumTimer.C:55 hsumTimer.C:56 hsumTimer.C:57 hsumTimer.C:58 hsumTimer.C:59 hsumTimer.C:60 hsumTimer.C:61 hsumTimer.C:62 hsumTimer.C:63 hsumTimer.C:64 hsumTimer.C:65 hsumTimer.C:66 hsumTimer.C:67 hsumTimer.C:68 hsumTimer.C:69 hsumTimer.C:70 hsumTimer.C:71 |
|