Logo ROOT  
Reference Guide
 
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Loading...
Searching...
No Matches
hlHisto2.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
if (CanvasProj) 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();
}
void hlHisto2()
{
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 hlHisto2.C.