Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
hist043_Graphics_highlight.C
Go to the documentation of this file.
1/// \file
2/// \ingroup tutorial_hist
3///
4/// This tutorial demonstrates how the highlight mechanism can be used on an histogram.
5/// A 2D histogram is booked an filled with a random gaussian distribution.
6/// Then an highlight method is connected to the histogram. Moving the mouse
7/// on the histogram will update the histogram title in real time according to
8/// the highlighted bin.
9///
10/// \macro_code
11///
12/// \date March 2018
13/// \author Jan Musinsky
14
15TText *info = nullptr;
16
18{
19 auto h2 = dynamic_cast<TH2F *>(obj);
20 if (!h2)
21 return;
22 if (!h2->IsHighlight()) { // after highlight disabled
23 h2->SetTitle("Disable highlight");
24 return;
25 }
26 if (info)
27 info->SetTitle("");
28 TString t;
29 t.Form("bin[%02d, %02d] (%5.2f, %5.2f) content %g", xhb, yhb, h2->GetXaxis()->GetBinCenter(xhb),
30 h2->GetYaxis()->GetBinCenter(yhb), h2->GetBinContent(xhb, yhb));
31 h2->SetTitle(t.Data());
32 pad->Update();
33}
34
36{
37 auto c1 = new TCanvas();
38 c1->HighlightConnect("HighlightTitle(TVirtualPad*,TObject*,Int_t,Int_t)");
39
40 auto h2 = new TH2F("h2", "", 50, -5.0, 5.0, 50, -5.0, 5.0);
41 for (Int_t i = 0; i < 10000; i++)
42 h2->Fill(gRandom->Gaus(), gRandom->Gaus());
43 h2->Draw();
44
45 info = new TText(0.0, -4.0, "please move the mouse over the frame");
46 info->SetTextAlign(22);
47 info->SetTextColor(kRed + 1);
48 info->SetBit(kCannotPick);
49 info->Draw();
50 c1->Update();
51
52 // call after update to apply changes in the histogram painter
53 h2->SetHighlight();
54}
int Int_t
Definition RtypesCore.h:45
@ kRed
Definition Rtypes.h:66
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
@ kCannotPick
Definition TObject.h:372
R__EXTERN TRandom * gRandom
Definition TRandom.h:62
The Canvas class.
Definition TCanvas.h:23
2-D histogram with a float per channel (see TH1 documentation)
Definition TH2.h:307
Mother of all ROOT objects.
Definition TObject.h:41
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...
Definition TRandom.cxx:275
Basic string class.
Definition TString.h:139
const char * Data() const
Definition TString.h:376
void Form(const char *fmt,...)
Formats a string using a printf style format descriptor.
Definition TString.cxx:2356
Base class for several text objects.
Definition TText.h:22
TVirtualPad is an abstract base class for the Pad and Canvas classes.
Definition TVirtualPad.h:51
return c1
Definition legend1.C:41