This is slight modification of ntuple1.C example.
A canvas with sub-pads is produced, stored to an sql data base and read back To run this macro, you need the hsimple.root file, produced by the hsimple.C macro
const char* dbname = "mysql://host.domain/test";
const char* username = "user";
const char* userpass = "pass";
void sqlcanvas()
{
canvas_write();
canvas_read();
}
void canvas_write()
{
delete gROOT->GetListOfFiles()->FindObject(
"hsimple.root");
delete gROOT->GetListOfCanvases()->FindObject(
"c1");
TPad *pad1 =
new TPad(
"pad1",
"This is pad1",0.02,0.52,0.48,0.98,21);
TPad *pad2 =
new TPad(
"pad2",
"This is pad2",0.52,0.52,0.98,0.98,21);
TPad *pad3 =
new TPad(
"pad3",
"This is pad3",0.02,0.02,0.48,0.48,21);
TPad *pad4 =
new TPad(
"pad4",
"This is pad4",0.52,0.02,0.98,0.48,1);
ntuple->
Draw(
"3*px+2",
"px**2+py**2>1");
ntuple->
Draw(
"2*px+2",
"pz>2",
"same");
ntuple->
Draw(
"1.3*px+2",
"(px^2+py^2>4) && py>0",
"same");
ntuple->
Draw(
"pz:px>>hprofs",
"",
"goffprofs");
ntuple->
Draw(
"py:px",
"pz>1");
ntuple->
Draw(
"py:px",
"pz<1",
"same");
ntuple->
Draw(
"pz:py:px",
"(pz<10 && pz>6)+(pz<4 && pz>3)");
ntuple->
Draw(
"pz:py:px",
"pz<6 && pz>4",
"same");
ntuple->
Draw(
"pz:py:px",
"pz<4 && pz>3",
"same");
l4->
AddText(
"You can interactively rotate this view in 2 ways:");
l4->
AddText(
" - With the RotateCube in clicking in this pad");
l4->
AddText(
" - Selecting View with x3d in the View menu");
if (fsql1->
IsZombie()) {
delete fsql1;
return; }
delete fsql1;
}
void canvas_read()
{
}
- Author
- Sergey Linev
Definition in file sqlcanvas.C.