This tutorial demonstrates how the highlight mechanism can be used on an histogram.
A 2D histogram is booked an filled with a random gaussian distribution and drawn with the "col" option. Then an highlight method is connected to the histogram. Moving the mouse on the histogram open a new canvas displaying the two X and Y projections at the highlighted bin.
{
auto h2 =
dynamic_cast<TH2F *
>(obj);
if (!h2)
return;
if (!h2->IsHighlight()) {
h2->SetTitle("Disable highlight");
return;
}
auto px = h2->ProjectionX(
"_px",
yhb,
yhb);
auto py = h2->ProjectionY(
"_py",
xhb,
xhb);
px->Draw();
py->Draw();
}
}
{
auto c1 =
new TCanvas(
"Canvas",
"Canvas", 0, 0, 500, 500);
c1->HighlightConnect(
"Highlight2(TVirtualPad*,TObject*,Int_t,Int_t)");
auto h2 =
new TH2F(
"h2",
"", 50, -5.0, 5.0, 50, -5.0, 5.0);
for (
Int_t i = 0; i < 10000; i++)
info =
new TText(0.0, -4.0,
"please move the mouse over the frame");
}
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
R__EXTERN TRandom * gRandom
2-D histogram with a float per channel (see TH1 documentation)
Mother of all ROOT objects.
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...
static TString Format(const char *fmt,...)
Static method which formats a string using a printf style format descriptor and return a TString.
Base class for several text objects.
TVirtualPad is an abstract base class for the Pad and Canvas classes.
- Date
- March 2018
- Author
- Jan Musinsky
Definition in file hist044_Graphics_highlight2D.C.