Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
hist044_Graphics_highlight2D.C File Reference

Detailed Description

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.

TText *info = nullptr;
{
auto h2 = dynamic_cast<TH2F *>(obj);
if (!h2)
return;
auto CanvasProj = (TCanvas *)gROOT->GetListOfCanvases()->FindObject("CanvasProj");
if (!h2->IsHighlight()) { // after highlight disabled
delete CanvasProj;
h2->SetTitle("Disable highlight");
return;
}
if (info)
info->SetTitle("");
auto px = h2->ProjectionX("_px", yhb, yhb);
auto py = h2->ProjectionY("_py", xhb, xhb);
px->SetTitle(TString::Format("ProjectionX of biny[%02d]", yhb));
py->SetTitle(TString::Format("ProjectionY of binx[%02d]", xhb));
if (!CanvasProj) {
CanvasProj = new TCanvas("CanvasProj", "CanvasProj", 505, 0, 600, 600);
CanvasProj->Divide(1, 2);
CanvasProj->cd(1);
px->Draw();
CanvasProj->cd(2);
py->Draw();
}
h2->SetTitle(TString::Format("Highlight bin [%02d, %02d]", xhb, yhb).Data());
pad->Modified();
pad->Update();
CanvasProj->GetPad(1)->Modified();
CanvasProj->GetPad(2)->Modified();
CanvasProj->Update();
}
{
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++)
h2->Fill(gRandom->Gaus(), gRandom->Gaus());
h2->Draw("col");
info = new TText(0.0, -4.0, "please move the mouse over the frame");
info->SetTextAlign(22);
info->SetTextSize(0.04);
info->SetTextColor(kRed + 1);
info->SetBit(kCannotPick);
info->Draw();
c1->Update();
h2->SetHighlight();
}
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
#define gROOT
Definition TROOT.h:406
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
static TString Format(const char *fmt,...)
Static method which formats a string using a printf style format descriptor and return a TString.
Definition TString.cxx:2378
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
Date
March 2018
Author
Jan Musinsky

Definition in file hist044_Graphics_highlight2D.C.