Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
hlGraph1.C
Go to the documentation of this file.
1 /// \file
2 /// \ingroup tutorial_graPads
3 ///
4 /// This tutorial demonstrates how to use the highlight mode on graph.
5 ///
6 /// \macro_code
7 ///
8 /// \date March 2018
9 /// \author Jan Musinsky
10 
11 TList *l = 0;
12 
13 void HighlightHisto(TVirtualPad *pad, TObject *obj, Int_t ihp, Int_t y);
14 
15 
16 void hlGraph1()
17 {
18  auto Canvas = new TCanvas("Canvas", "Canvas", 0, 0, 700, 500);
19  const Int_t n = 500;
20  Double_t x[n], y[n];
21  TH1F *h;
22  l = new TList();
23 
24  for (Int_t i = 0; i < n; i++) {
25  h = new TH1F(TString::Format("h_%03d", i), "", 100, -3.0, 3.0);
26  h->FillRandom("gaus", 1000);
27  h->Fit("gaus", "Q");
28  h->SetMaximum(250.0); // for n > 200
29  l->Add(h);
30  x[i] = i;
31  y[i] = h->GetFunction("gaus")->GetParameter(2);
32  }
33 
34  auto g = new TGraph(n, x, y);
35  g->SetMarkerStyle(6);
36  g->Draw("AP");
37 
38  auto Pad = new TPad("Pad", "Pad", 0.3, 0.4, 1.0, 1.0);
39  Pad->SetFillColor(kBlue-10);
40  Pad->Draw();
41  Pad->cd();
42  auto info = new TText(0.5, 0.5, "please move the mouse over the graPad");
43  info->SetTextAlign(22);
44  info->Draw();
45  Canvas->cd();
46 
47  g->SetHighlight();
48  Canvas->HighlightConnect("HighlightHisto(TVirtualPad*,TObject*,Int_t,Int_t)");
49 }
50 
51 
52 void HighlightHisto(TVirtualPad *pad, TObject *obj, Int_t ihp, Int_t y)
53 {
54  auto Pad = (TVirtualPad *)pad->FindObject("Pad");
55  if (!Pad) return;
56 
57  if (ihp == -1) { // after highlight disabled
58  Pad->Clear();
59  return;
60  }
61 
62  Pad->cd();
63  l->At(ihp)->Draw();
64  gPad->Update();
65 }