50 #include "TDirectory.h"
64 if (
TCanvas*
c = dynamic_cast<TCanvas *> (obj)) {
82 info.
Parse(var, sel, opt);
98 new TCanvas(name,
"FeedBack", 800,30,700,500);
101 (
TCanvas *)
gROOT->GetListOfCanvases()->FindObject(name) : 0;
115 : fStatus(0), fManager(0), fTree(0)
144 PDB(kDraw,1)
Info(
"Init",
"Enter tree = %p", tree);
155 PDB(kDraw,1)
Info(
"Notify",
"Enter");
157 if (!fOutput || (fOutput &&
158 !(fStatus = dynamic_cast<TStatus*>(fOutput->FindObject(
"PROOF_Status")))))
161 if (!fStatus->IsOk())
return kFALSE;
166 fManager->UpdateFormulaLeaves();
175 PDB(kDraw,1)
Info(
"Begin",
"Enter tree = %p", tree);
183 fTreeDrawArgsParser.Parse(fInitialExp, fSelection, fOption);
184 if (fTreeDrawArgsParser.GetObjectName() ==
"")
185 fTreeDrawArgsParser.SetObjectName(
"htemp");
188 PDB(kDraw,1)
Info(
"Begin",
"selection: %s", fSelection.Data());
189 PDB(kDraw,1)
Info(
"Begin",
"varexp: %s", fInitialExp.Data());
211 PDB(kDraw,1)
Info(
"FillWeight",
"fWeight= %f", fWeight);
224 w = fWeight * fSelect->EvalInstance(i);
228 PDB(kDraw,3)
Info(
"ProcessSingle",
"w[%d] = %f", i, w);
232 for (
int j = 0; j < fDimension; j++)
233 v[j] = fVar[j]->EvalInstance(i);
235 PDB(kDraw,4)
Info(
"Process",
"v[0] = %f", v[0]);
247 PDB(kDraw,3)
Info(
"Process",
"enter entry = %lld", entry);
249 fTree->LoadTree(entry);
252 PDB(kDraw,3)
Info(
"Process",
"ndata = %d", ndata);
255 ProcessSingle(entry, i);
267 PDB(kDraw,1)
Info(
"SlaveTerminate",
"Enter");
276 PDB(kDraw,1)
Info(
"Terminate",
"Enter");
278 fStatus =
dynamic_cast<TStatus*
>(fOutput->FindObject(
"PROOF_Status"));
285 if (!fStatus->IsOk()) {
298 for (
Int_t i = 0; i < 4; i++)
315 gROOT->MakeDefCanvas();
317 PDB(kDraw,2)
Info(
"SetCanvas",
"created canvas %s", name.
Data());
320 Info(
"SetCanvas",
"using canvas %s",
gPad->GetName());
330 PDB(kDraw,2)
Info(
"SetDrawAtt",
"setting attributes for %s", o->
GetName());
340 al->SetLineStyle((
Style_t)att);
343 al->SetLineWidth((
Width_t)att);
344 PDB(kDraw,2)
Info(
"SetDrawAtt",
"line: c:%d, s:%d, wd:%d",
345 al->GetLineColor(), al->GetLineStyle(), al->GetLineWidth());
356 Info(
"SetDrawAtt",
"att: %d", att);
363 PDB(kDraw,2)
Info(
"SetDrawAtt",
"marker: c:%d, s:%d, sz:%f",
376 PDB(kDraw,2)
Info(
"SetDrawAtt",
"area: c:%d, s:%d",
387 if (!(fStatus = dynamic_cast<TStatus*>(fOutput->FindObject(
"PROOF_Status"))))
395 m.
Form(
"TProofDraw::%s: %s", sub, mesg);
413 na.Form(
"alias:%s",
n.Data());
415 if (na) fTree->SetAlias(
n.Data(), nm->
GetTitle());
420 if (fTree->GetListOfAliases()) fTree->GetListOfAliases()->Print();
422 fDimension = fTreeDrawArgsParser.GetDimension();
425 if (strlen(fTreeDrawArgsParser.GetSelection())) {
426 fSelect =
new TTreeFormula(
"Selection", fTreeDrawArgsParser.GetSelection(), fTree);
428 if (!fSelect->GetNdim()) {
delete fSelect; fSelect = 0;
return kFALSE; }
432 if (fSelect) fManager->Add(fSelect);
435 for (
int i = 0; i < fDimension; i++) {
436 fVar[i] =
new TTreeFormula(
Form(
"Var%d", i),fTreeDrawArgsParser.GetVarExp(i),fTree);
438 if (!fVar[i]->GetNdim()) {
440 Error(
"CompileVariables",
"Error compiling expression");
441 SetError(
"CompileVariables",
"Error compiling variables");
445 fManager->Add(fVar[i]);
450 if (fManager->GetMultiplicity()>=1) fMultiplicity = fManager->GetMultiplicity();
457 TClass *cl = fVar[0]->EvalClass();
475 R__ASSERT(fTreeDrawArgsParser.GetDimension() == 1);
476 TObject* orig = fTreeDrawArgsParser.GetOriginal();
478 if (fTreeDrawArgsParser.GetNoParameters() == 0 && (hold =
dynamic_cast<TH1*
> (orig))) {
493 R__ASSERT(fTreeDrawArgsParser.GetDimension() == 2);
494 TObject* orig = fTreeDrawArgsParser.GetOriginal();
496 if (fTreeDrawArgsParser.GetNoParameters() == 0 && (hold =
dynamic_cast<TH2*
> (orig))) {
511 R__ASSERT(fTreeDrawArgsParser.GetDimension() == 3);
512 TObject* orig = fTreeDrawArgsParser.GetOriginal();
514 if ((hold = dynamic_cast<TH3*> (orig)) && fTreeDrawArgsParser.GetNoParameters() == 0) {
528 PDB(kDraw,1)
Info(
"Begin",
"Enter tree = %p", tree);
537 fTreeDrawArgsParser.Parse(fInitialExp, fSelection, fOption);
538 if (fTreeDrawArgsParser.GetObjectName() ==
"")
539 fTreeDrawArgsParser.SetObjectName(
"htemp");
541 switch (fTreeDrawArgsParser.GetDimension()) {
552 Error(
"Begin",
"Wrong dimension");
556 PDB(kDraw,1)
Info(
"Begin",
"selection: %s", fSelection.Data());
557 PDB(kDraw,1)
Info(
"Begin",
"varexp: %s", fInitialExp.Data());
566 R__ASSERT(fTreeDrawArgsParser.GetDimension() == 1);
568 fTreeDrawArgsParser.SetOriginal(0);
569 TString exp = fTreeDrawArgsParser.GetVarExp();
571 double binsx, minx, maxx;
572 if (fTreeDrawArgsParser.IsSpecified(0))
573 gEnv->
SetValue(
"Hist.Binning.1D.x", fTreeDrawArgsParser.GetParameter(0));
575 minx = fTreeDrawArgsParser.GetIfSpecified(1, 0);
576 maxx = fTreeDrawArgsParser.GetIfSpecified(2, 0);
577 exp += fTreeDrawArgsParser.GetObjectName();
591 Error(
"DefVar1D",
"Cannot find varexp on the fInput");
592 if (fTreeDrawArgsParser.GetNoParameters() != 3)
601 R__ASSERT(fTreeDrawArgsParser.GetDimension() == 2);
603 fTreeDrawArgsParser.SetOriginal(0);
604 TString exp = fTreeDrawArgsParser.GetVarExp();
606 double binsx, minx, maxx;
607 double binsy, miny, maxy;
608 if (fTreeDrawArgsParser.IsSpecified(0))
609 gEnv->
SetValue(
"Hist.Binning.2D.x", fTreeDrawArgsParser.GetParameter(0));
610 if (fTreeDrawArgsParser.IsSpecified(3))
611 gEnv->
SetValue(
"Hist.Binning.2D.y", fTreeDrawArgsParser.GetParameter(3));
613 minx = fTreeDrawArgsParser.GetIfSpecified(1, 0);
614 maxx = fTreeDrawArgsParser.GetIfSpecified(2, 0);
616 miny = fTreeDrawArgsParser.GetIfSpecified(4, 0);
617 maxy = fTreeDrawArgsParser.GetIfSpecified(5, 0);
618 exp += fTreeDrawArgsParser.GetObjectName();
637 Error(
"DefVar2D",
"Cannot find varexp on the fInput");
638 if (fTreeDrawArgsParser.GetNoParameters() != 6)
647 R__ASSERT(fTreeDrawArgsParser.GetDimension() == 3);
649 fTreeDrawArgsParser.SetOriginal(0);
650 TString exp = fTreeDrawArgsParser.GetVarExp();
652 double binsx, minx, maxx;
653 double binsy, miny, maxy;
654 double binsz, minz, maxz;
655 if (fTreeDrawArgsParser.IsSpecified(0))
656 gEnv->
SetValue(
"Hist.Binning.3D.x", fTreeDrawArgsParser.GetParameter(0));
657 if (fTreeDrawArgsParser.IsSpecified(3))
658 gEnv->
SetValue(
"Hist.Binning.3D.y", fTreeDrawArgsParser.GetParameter(3));
659 if (fTreeDrawArgsParser.IsSpecified(6))
660 gEnv->
SetValue(
"Hist.Binning.3D.z", fTreeDrawArgsParser.GetParameter(6));
662 minx = fTreeDrawArgsParser.GetIfSpecified(1, 0);
663 maxx = fTreeDrawArgsParser.GetIfSpecified(2, 0);
665 miny = fTreeDrawArgsParser.GetIfSpecified(4, 0);
666 maxy = fTreeDrawArgsParser.GetIfSpecified(5, 0);
668 minz = fTreeDrawArgsParser.GetIfSpecified(7, 0);
669 maxz = fTreeDrawArgsParser.GetIfSpecified(8, 0);
670 exp += fTreeDrawArgsParser.GetObjectName();
695 Error(
"DefVar3D",
"Cannot find varexp on the fInput");
696 if (fTreeDrawArgsParser.GetNoParameters() != 9)
705 PDB(kDraw,1)
Info(
"DefVar",
"Enter");
714 fTreeDrawArgsParser.Parse(fInitialExp, fSelection, fOption);
715 if (fTreeDrawArgsParser.GetObjectName() ==
"")
716 fTreeDrawArgsParser.SetObjectName(
"htemp");
718 switch (fTreeDrawArgsParser.GetDimension()) {
729 Error(
"DefVar",
"Wrong dimension");
733 PDB(kDraw,1)
Info(
"DefVar",
"selection: %s", fSelection.Data());
734 PDB(kDraw,1)
Info(
"DefVar",
"varexp: %s", fInitialExp.Data());
743 PDB(kDraw,1)
Info(
"Init",
"Enter tree = %p", tree);
745 if (!dynamic_cast<TH1*> (fTreeDrawArgsParser.GetOriginal())) {
766 PDB(kDraw,1)
Info(
"SlaveBegin",
"Enter tree = %p", tree);
780 fTreeDrawArgsParser.Parse(fInitialExp, fSelection, fOption);
781 fDimension = fTreeDrawArgsParser.GetDimension();
783 const char *objname = fTreeDrawArgsParser.GetObjectName();
784 if (objname && strlen(objname) > 0 && strcmp(objname,
"htemp")) {
788 PDB(kDraw,1)
Info(
"SlaveBegin",
"original histogram found");
790 PDB(kDraw,1)
Info(
"SlaveBegin",
"original object '%s' not found"
791 " or it is not a histogram", objname);
797 Int_t countx = 100;
double minx = 0, maxx = 0;
798 Int_t county = 100;
double miny = 0, maxy = 0;
799 Int_t countz = 100;
double minz = 0, maxz = 0;
800 if (fTreeDrawArgsParser.GetNoParameters() != 0) {
801 countx = (
Int_t) fTreeDrawArgsParser.GetIfSpecified(0, countx);
802 county = (
Int_t) fTreeDrawArgsParser.GetIfSpecified(3, county);
803 countz = (
Int_t) fTreeDrawArgsParser.GetIfSpecified(6, countz);
804 minx = fTreeDrawArgsParser.GetIfSpecified(1, minx);
805 maxx = fTreeDrawArgsParser.GetIfSpecified(2, maxx);
806 miny = fTreeDrawArgsParser.GetIfSpecified(4, miny);
807 maxy = fTreeDrawArgsParser.GetIfSpecified(5, maxy);
808 minz = fTreeDrawArgsParser.GetIfSpecified(7, minz);
809 maxz = fTreeDrawArgsParser.GetIfSpecified(8, maxz);
811 if (fTreeDrawArgsParser.GetNoParameters() != 3*fDimension)
812 Error(
"SlaveBegin",
"Impossible - Wrong number of parameters");
815 fHistogram =
new TH1F(fTreeDrawArgsParser.GetObjectName(),
816 fTreeDrawArgsParser.GetObjectTitle(),
818 else if (fDimension == 2){
819 fHistogram =
new TH2F(fTreeDrawArgsParser.GetObjectName(),
820 fTreeDrawArgsParser.GetObjectTitle(),
824 else if (fDimension == 3) {
825 fHistogram =
new TH3F(fTreeDrawArgsParser.GetObjectName(),
826 fTreeDrawArgsParser.GetObjectTitle(),
831 Info(
"Begin",
"Wrong dimension");
837 if (strstr(opt->GetTitle(),
"rebin"))
841 fHistogram->SetDirectory(0);
842 fOutput->Add(fHistogram);
846 PDB(kDraw,1)
Info(
"Begin",
"selection: %s", fSelection.Data());
847 PDB(kDraw,1)
Info(
"Begin",
"varexp: %s", fInitialExp.Data());
857 fHistogram->Fill(v[0], w);
858 else if (fDimension == 2)
859 ((
TH2F *)fHistogram)->Fill(v[1], v[0], w);
860 else if (fDimension == 3)
861 ((
TH3F *)fHistogram)->Fill(v[2], v[1], v[0], w);
870 PDB(kDraw,1)
Info(
"Terminate",
"Enter");
875 fHistogram = (
TH1F *) fOutput->FindObject(fTreeDrawArgsParser.GetObjectName());
877 SetStatus((
Int_t) fHistogram->GetEntries());
879 if ((h = dynamic_cast<TH1*> (fTreeDrawArgsParser.GetOriginal()))) {
880 if (!fTreeDrawArgsParser.GetAdd())
886 fOutput->Remove(fHistogram);
890 fHistogram->SetTitle(fTreeDrawArgsParser.GetObjectTitle());
893 if (fTreeDrawArgsParser.GetShouldDraw()) {
895 SetCanvas(h->GetName());
898 h->Draw(fOption.Data());
911 PDB(kDraw,1)
Info(
"Init",
"Enter tree = %p", tree);
915 Error(
"Init",
"Impossible - fElist cannot be 0");
916 fEventLists->Add(fElist);
918 fElist =
new TEventList(tree->GetDirectory()->GetName(), tree->GetName());
929 PDB(kDraw,1)
Info(
"SlaveBegin",
"Enter tree = %p", tree);
941 fTreeDrawArgsParser.Parse(fInitialExp, fSelection, fOption);
947 fEventLists =
new TList();
948 fEventLists->SetName(
"PROOF_EventListsList");
949 fOutput->Add(fEventLists);
952 PDB(kDraw,1)
Info(
"Begin",
"selection: %s", fSelection.Data());
953 PDB(kDraw,1)
Info(
"Begin",
"varexp: %s", fInitialExp.Data());
962 fElist->Enter(entry);
971 PDB(kDraw,1)
Info(
"SlaveTerminate",
"Enter");
972 fEventLists->Add(fElist);
985 fTreeDrawArgsParser.Parse(fInitialExp, fSelection, fOption);
989 el->
SetName(fInitialExp.Data()+2);
990 SetStatus(el->
GetN());
991 if (
TEventList* old = dynamic_cast<TEventList*> (fTreeDrawArgsParser.GetOriginal())) {
992 if (!fTreeDrawArgsParser.GetAdd())
1000 Error(
"Terminate",
"Cannot find output EventList");
1011 PDB(kDraw,1)
Info(
"Init",
"Enter tree = %p", tree);
1022 PDB(kDraw,1)
Info(
"SlaveBegin",
"Enter tree = %p", tree);
1034 fTreeDrawArgsParser.Parse(fInitialExp, fSelection, fOption);
1040 fElist =
new TEntryList(
"PROOF_EntryList",
"PROOF_EntryList");
1041 fOutput->Add(fElist);
1044 PDB(kDraw,1)
Info(
"Begin",
"selection: %s", fSelection.Data());
1045 PDB(kDraw,1)
Info(
"Begin",
"varexp: %s", fInitialExp.Data());
1053 fElist->Enter(entry);
1061 PDB(kDraw,1)
Info(
"SlaveTerminate",
"Enter");
1062 fElist->OptimizeStorage();
1074 fTreeDrawArgsParser.Parse(fInitialExp, fSelection, fOption);
1079 el->
SetName(fInitialExp.Data()+2);
1080 SetStatus(el->
GetN());
1081 if (
TEntryList* old = dynamic_cast<TEntryList*> (fTreeDrawArgsParser.GetOriginal())) {
1082 if (!fTreeDrawArgsParser.GetAdd())
1085 fOutput->Remove(el);
1090 Error(
"Terminate",
"Cannot find output EventList");
1101 PDB(kDraw,1)
Info(
"Init",
"Enter tree = %p", tree);
1104 if (!dynamic_cast<TProfile*> (fTreeDrawArgsParser.GetOriginal())) {
1105 fProfile->SetLineColor(tree->GetLineColor());
1106 fProfile->SetLineWidth(tree->GetLineWidth());
1107 fProfile->SetLineStyle(tree->GetLineStyle());
1108 fProfile->SetFillColor(tree->GetFillColor());
1109 fProfile->SetFillStyle(tree->GetFillStyle());
1110 fProfile->SetMarkerStyle(tree->GetMarkerStyle());
1111 fProfile->SetMarkerColor(tree->GetMarkerColor());
1112 fProfile->SetMarkerSize(tree->GetMarkerSize());
1124 PDB(kDraw,1)
Info(
"DefVar",
"Enter");
1126 if (fTreeDrawArgsParser.GetDimension() < 0) {
1136 fTreeDrawArgsParser.Parse(fInitialExp, fSelection, fOption);
1140 R__ASSERT(fTreeDrawArgsParser.GetDimension() == 2);
1142 fTreeDrawArgsParser.SetOriginal(0);
1143 TString exp = fTreeDrawArgsParser.GetVarExp();
1145 double binsx, minx, maxx;
1146 if (fTreeDrawArgsParser.IsSpecified(0))
1147 gEnv->
SetValue(
"Hist.Binning.2D.Prof", fTreeDrawArgsParser.GetParameter(0));
1149 minx = fTreeDrawArgsParser.GetIfSpecified(1, 0);
1150 maxx = fTreeDrawArgsParser.GetIfSpecified(2, 0);
1151 if (fTreeDrawArgsParser.GetObjectName() ==
"")
1152 fTreeDrawArgsParser.SetObjectName(
"htemp");
1153 exp += fTreeDrawArgsParser.GetObjectName();
1166 Error(
"DefVar",
"Cannot find varexp on the fInput");
1167 if (fTreeDrawArgsParser.GetNoParameters() != 3)
1176 PDB(kDraw,1)
Info(
"Begin",
"Enter tree = %p", tree);
1186 fTreeDrawArgsParser.Parse(fInitialExp, fSelection, fOption);
1188 R__ASSERT(fTreeDrawArgsParser.GetDimension() == 2);
1190 TObject *orig = fTreeDrawArgsParser.GetOriginal();
1192 if ((pold = dynamic_cast<TProfile*> (orig)) && fTreeDrawArgsParser.GetNoParameters() == 0) {
1201 PDB(kDraw,1)
Info(
"Begin",
"selection: %s", fSelection.Data());
1202 PDB(kDraw,1)
Info(
"Begin",
"varexp: %s", fInitialExp.Data());
1212 PDB(kDraw,1)
Info(
"SlaveBegin",
"Enter tree = %p", tree);
1228 fTreeDrawArgsParser.Parse(fInitialExp, fSelection, fOption);
1232 if (fTreeDrawArgsParser.GetOriginal()) {
1233 fProfile =
dynamic_cast<TProfile*
> (fTreeDrawArgsParser.GetOriginal());
1235 fOutput->
Add(fProfile);
1236 PDB(kDraw,1)
Info(
"SlaveBegin",
"Original profile histogram found");
1240 Error(
"SlaveBegin",
"Original object found but it is not a histogram");
1242 Int_t countx = 100;
double minx = 0, maxx = 0;
1243 if (fTreeDrawArgsParser.GetNoParameters() != 0) {
1244 countx = (
Int_t) fTreeDrawArgsParser.GetIfSpecified(0, countx);
1245 minx = fTreeDrawArgsParser.GetIfSpecified(1, minx);
1246 maxx = fTreeDrawArgsParser.GetIfSpecified(2, maxx);
1248 if (fTreeDrawArgsParser.GetNoParameters() != 3)
1249 Error(
"SlaveBegin",
"Impossible - Wrong number of parameters");
1250 TString constructorOptions =
"";
1251 if (fOption.Contains(
"profs"))
1252 constructorOptions =
"s";
1253 else if (fOption.Contains(
"profi"))
1254 constructorOptions =
"i";
1255 else if (fOption.Contains(
"profg"))
1256 constructorOptions =
"g";
1258 fProfile =
new TProfile(fTreeDrawArgsParser.GetObjectName(),
1259 fTreeDrawArgsParser.GetObjectTitle(),
1261 constructorOptions);
1266 if (strstr(opt->GetTitle(),
"rebin"))
1269 fProfile->SetDirectory(0);
1270 fOutput->Add(fProfile);
1273 PDB(kDraw,1)
Info(
"Begin",
"selection: %s", fSelection.Data());
1274 PDB(kDraw,1)
Info(
"Begin",
"varexp: %s", fInitialExp.Data());
1283 fProfile->Fill(v[1], v[0], w);
1292 PDB(kDraw,1)
Info(
"Terminate",
"Enter");
1297 fProfile = (
TProfile *) fOutput->FindObject(fTreeDrawArgsParser.GetObjectName());
1299 SetStatus((
Int_t) fProfile->GetEntries());
1301 if ((pf = dynamic_cast<TProfile*> (fTreeDrawArgsParser.GetOriginal()))) {
1302 if (!fTreeDrawArgsParser.GetAdd())
1308 fOutput->Remove(fProfile);
1311 fProfile->SetTitle(fTreeDrawArgsParser.GetObjectTitle());
1314 if (fTreeDrawArgsParser.GetShouldDraw()) {
1316 SetCanvas(pf->GetName());
1319 pf->Draw(fOption.Data());
1333 PDB(kDraw,1)
Info(
"Init",
"Enter tree = %p", tree);
1335 if (!dynamic_cast<TProfile2D*> (fTreeDrawArgsParser.GetOriginal())) {
1336 fProfile->SetLineColor(tree->GetLineColor());
1337 fProfile->SetLineWidth(tree->GetLineWidth());
1338 fProfile->SetLineStyle(tree->GetLineStyle());
1339 fProfile->SetFillColor(tree->GetFillColor());
1340 fProfile->SetFillStyle(tree->GetFillStyle());
1341 fProfile->SetMarkerStyle(tree->GetMarkerStyle());
1342 fProfile->SetMarkerColor(tree->GetMarkerColor());
1343 fProfile->SetMarkerSize(tree->GetMarkerSize());
1356 PDB(kDraw,1)
Info(
"DefVar",
"Enter");
1358 if (fTreeDrawArgsParser.GetDimension() < 0) {
1368 fTreeDrawArgsParser.Parse(fInitialExp, fSelection, fOption);
1371 R__ASSERT(fTreeDrawArgsParser.GetDimension() == 3);
1373 fTreeDrawArgsParser.SetOriginal(0);
1374 TString exp = fTreeDrawArgsParser.GetVarExp();
1376 double binsx, minx, maxx;
1377 double binsy, miny, maxy;
1378 if (fTreeDrawArgsParser.IsSpecified(0))
1379 gEnv->
SetValue(
"Hist.Binning.3D.Profx", fTreeDrawArgsParser.GetParameter(0));
1380 if (fTreeDrawArgsParser.IsSpecified(3))
1381 gEnv->
SetValue(
"Hist.Binning.3D.Profy", fTreeDrawArgsParser.GetParameter(3));
1383 minx = fTreeDrawArgsParser.GetIfSpecified(1, 0);
1384 maxx = fTreeDrawArgsParser.GetIfSpecified(2, 0);
1386 miny = fTreeDrawArgsParser.GetIfSpecified(4, 0);
1387 maxy = fTreeDrawArgsParser.GetIfSpecified(5, 0);
1388 if (fTreeDrawArgsParser.GetObjectName() ==
"")
1389 fTreeDrawArgsParser.SetObjectName(
"htemp");
1390 exp += fTreeDrawArgsParser.GetObjectName();
1409 Error(
"DefVar",
"Cannot find varexp on the fInput");
1410 if (fTreeDrawArgsParser.GetNoParameters() != 6)
1419 PDB(kDraw,1)
Info(
"Begin",
"Enter tree = %p", tree);
1428 fTreeDrawArgsParser.Parse(fInitialExp, fSelection, fOption);
1430 R__ASSERT(fTreeDrawArgsParser.GetDimension() == 3);
1432 TObject *orig = fTreeDrawArgsParser.GetOriginal();
1434 if ((pold = dynamic_cast<TProfile2D*> (orig)) && fTreeDrawArgsParser.GetNoParameters() == 0) {
1443 PDB(kDraw,1)
Info(
"Begin",
"selection: %s", fSelection.Data());
1444 PDB(kDraw,1)
Info(
"Begin",
"varexp: %s", fInitialExp.Data());
1452 PDB(kDraw,1)
Info(
"SlaveBegin",
"Enter tree = %p", tree);
1466 fTreeDrawArgsParser.Parse(fInitialExp, fSelection, fOption);
1470 if (fTreeDrawArgsParser.GetOriginal()) {
1471 fProfile =
dynamic_cast<TProfile2D*
> (fTreeDrawArgsParser.GetOriginal());
1473 fOutput->
Add(fProfile);
1474 PDB(kDraw,1)
Info(
"SlaveBegin",
"Original profile histogram found");
1477 Error(
"SlaveBegin",
"Original object found but it is not a histogram");
1479 Int_t countx = 40;
double minx = 0, maxx = 0;
1480 Int_t county = 40;
double miny = 0, maxy = 0;
1481 if (fTreeDrawArgsParser.GetNoParameters() != 0) {
1482 countx = (
Int_t) fTreeDrawArgsParser.GetIfSpecified(0, countx);
1483 minx = fTreeDrawArgsParser.GetIfSpecified(1, minx);
1484 maxx = fTreeDrawArgsParser.GetIfSpecified(2, maxx);
1485 county = (
Int_t) fTreeDrawArgsParser.GetIfSpecified(3, countx);
1486 miny = fTreeDrawArgsParser.GetIfSpecified(4, minx);
1487 maxy = fTreeDrawArgsParser.GetIfSpecified(5, maxx);
1489 if (fTreeDrawArgsParser.GetNoParameters() != 6)
1490 Error(
"SlaveBegin",
"Impossible - Wrong number of parameters");
1492 TString constructorOptions =
"";
1493 if (fOption.Contains(
"profs"))
1494 constructorOptions =
"s";
1495 else if (fOption.Contains(
"profi"))
1496 constructorOptions =
"i";
1497 else if (fOption.Contains(
"profg"))
1498 constructorOptions =
"g";
1500 fProfile =
new TProfile2D(fTreeDrawArgsParser.GetObjectName(),
1501 fTreeDrawArgsParser.GetObjectTitle(),
1504 constructorOptions);
1509 if (strstr(opt->GetTitle(),
"rebin"))
1512 fProfile->SetDirectory(0);
1513 fOutput->Add(fProfile);
1516 PDB(kDraw,1)
Info(
"Begin",
"selection: %s", fSelection.Data());
1517 PDB(kDraw,1)
Info(
"Begin",
"varexp: %s", fInitialExp.Data());
1526 fProfile->Fill(v[2], v[1], v[0], w);
1535 PDB(kDraw,1)
Info(
"Terminate",
"Enter");
1540 fProfile = (
TProfile2D *) fOutput->FindObject(fTreeDrawArgsParser.GetObjectName());
1542 SetStatus((
Int_t) fProfile->GetEntries());
1544 if ((pf = dynamic_cast<TProfile2D*> (fTreeDrawArgsParser.GetOriginal()))) {
1545 if (!fTreeDrawArgsParser.GetAdd())
1551 fOutput->Remove(fProfile);
1554 fProfile->SetTitle(fTreeDrawArgsParser.GetObjectTitle());
1557 if (fTreeDrawArgsParser.GetShouldDraw()) {
1559 SetCanvas(pf->GetName());
1562 pf->Draw(fOption.Data());
1576 PDB(kDraw,1)
Info(
"Init",
"Enter tree = %p", tree);
1580 fGraph->SetMarkerStyle(tree->GetMarkerStyle());
1581 fGraph->SetMarkerColor(tree->GetMarkerColor());
1582 fGraph->SetMarkerSize(tree->GetMarkerSize());
1583 fGraph->SetLineColor(tree->GetLineColor());
1584 fGraph->SetLineStyle(tree->GetLineStyle());
1585 fGraph->SetFillColor(tree->GetFillColor());
1586 fGraph->SetFillStyle(tree->GetFillStyle());
1598 PDB(kDraw,1)
Info(
"SlaveBegin",
"Enter tree = %p", tree);
1609 fTreeDrawArgsParser.Parse(fInitialExp, fSelection, fOption);
1615 fGraph->SetName(
"PROOF_GRAPH");
1616 fOutput->Add(fGraph);
1618 PDB(kDraw,1)
Info(
"Begin",
"selection: %s", fSelection.Data());
1619 PDB(kDraw,1)
Info(
"Begin",
"varexp: %s", fInitialExp.Data());
1628 fGraph->SetPoint(fGraph->GetN(), v[1], v[0]);
1637 PDB(kDraw,1)
Info(
"Terminate",
"Enter");
1642 fGraph =
dynamic_cast<TGraph*
> (fOutput->FindObject(
"PROOF_GRAPH"));
1644 SetStatus((
Int_t) fGraph->GetN());
1646 TObject *orig = fTreeDrawArgsParser.GetOriginal();
1647 if ( (hist = dynamic_cast<TH2F*> (orig)) == 0 ) {
1649 fTreeDrawArgsParser.SetOriginal(0);
1650 double binsx, minx, maxx;
1651 double binsy, miny, maxy;
1652 if (fTreeDrawArgsParser.IsSpecified(0))
1653 gEnv->
SetValue(
"Hist.Binning.2D.x", fTreeDrawArgsParser.GetParameter(0));
1654 if (fTreeDrawArgsParser.IsSpecified(3))
1655 gEnv->
SetValue(
"Hist.Binning.2D.y", fTreeDrawArgsParser.GetParameter(3));
1657 minx = fTreeDrawArgsParser.GetIfSpecified(1, 0);
1658 maxx = fTreeDrawArgsParser.GetIfSpecified(2, 0);
1660 miny = fTreeDrawArgsParser.GetIfSpecified(4, 0);
1661 maxy = fTreeDrawArgsParser.GetIfSpecified(5, 0);
1662 hist =
new TH2F(fTreeDrawArgsParser.GetObjectName(), fTreeDrawArgsParser.GetObjectTitle(),
1663 (
Int_t) binsx, minx, maxx, (
Int_t) binsy, miny, maxy);
1666 if (fTreeDrawArgsParser.GetNoParameters() != 6)
1673 if (!fTreeDrawArgsParser.GetAdd())
1676 if (hist->CanExtendAllAxes() && hist->TestBit(
kCanDelete)) {
1679 Double_t xmin = *std::min_element(xArray, xArray+fGraph->GetN());
1680 Double_t xmax = *std::max_element(xArray, xArray+fGraph->GetN());
1681 Double_t ymin = *std::min_element(yArray, yArray+fGraph->GetN());
1682 Double_t ymax = *std::max_element(yArray, yArray+fGraph->GetN());
1694 fGraph->SetEditable(
kFALSE);
1697 if (fTreeDrawArgsParser.GetShouldDraw()) {
1699 if (fOption ==
"" || strcmp(fOption,
"same") == 0)
1702 fGraph->Draw(fOption);
1706 for (
int i = 0; i < fGraph->GetN(); i++) {
1708 fGraph->GetPoint(i, x,
y);
1709 hist->Fill(x,
y, 1);
1724 PDB(kDraw,1)
Info(
"Init",
"Enter tree = %p", tree);
1728 fPolyMarker3D->SetMarkerStyle(tree->GetMarkerStyle());
1729 fPolyMarker3D->SetMarkerColor(tree->GetMarkerColor());
1730 fPolyMarker3D->SetMarkerSize(tree->GetMarkerSize());
1741 PDB(kDraw,1)
Info(
"SlaveBegin",
"Enter tree = %p", tree);
1752 fTreeDrawArgsParser.Parse(fInitialExp, fSelection, fOption);
1753 R__ASSERT(fTreeDrawArgsParser.GetDimension() == 3);
1759 fOutput->Add(fPolyMarker3D);
1761 PDB(kDraw,1)
Info(
"Begin",
"selection: %s", fSelection.Data());
1762 PDB(kDraw,1)
Info(
"Begin",
"varexp: %s", fInitialExp.Data());
1771 fPolyMarker3D->SetNextPoint(v[2], v[1], v[0]);
1780 PDB(kDraw,1)
Info(
"Terminate",
"Enter");
1788 if (dynamic_cast<TPolyMarker3D*> (o)) {
1795 if (fPolyMarker3D) {
1796 SetStatus((
Int_t) fPolyMarker3D->Size());
1798 TObject *orig = fTreeDrawArgsParser.GetOriginal();
1799 if ( (hist = dynamic_cast<TH3F*> (orig)) == 0 ) {
1801 fTreeDrawArgsParser.SetOriginal(0);
1802 if (fOption.Contains(
"same")) {
1804 hist =
dynamic_cast<TH3F *
> (
gDirectory->Get(fTreeDrawArgsParser.GetObjectName()));
1807 double binsx, minx, maxx;
1808 double binsy, miny, maxy;
1809 double binsz, minz, maxz;
1810 if (fTreeDrawArgsParser.IsSpecified(0))
1811 gEnv->
SetValue(
"Hist.Binning.3D.x", fTreeDrawArgsParser.GetParameter(0));
1812 if (fTreeDrawArgsParser.IsSpecified(3))
1813 gEnv->
SetValue(
"Hist.Binning.3D.y", fTreeDrawArgsParser.GetParameter(3));
1814 if (fTreeDrawArgsParser.IsSpecified(6))
1815 gEnv->
SetValue(
"Hist.Binning.3D.z", fTreeDrawArgsParser.GetParameter(6));
1817 minx = fTreeDrawArgsParser.GetIfSpecified(1, 0);
1818 maxx = fTreeDrawArgsParser.GetIfSpecified(2, 0);
1820 miny = fTreeDrawArgsParser.GetIfSpecified(4, 0);
1821 maxy = fTreeDrawArgsParser.GetIfSpecified(5, 0);
1823 minz = fTreeDrawArgsParser.GetIfSpecified(7, 0);
1824 maxz = fTreeDrawArgsParser.GetIfSpecified(8, 0);
1825 hist =
new TH3F(fTreeDrawArgsParser.GetObjectName(), fTreeDrawArgsParser.GetObjectTitle(),
1826 (
Int_t) binsx, minx, maxx,
1827 (
Int_t) binsy, miny, maxy,
1828 (
Int_t) binsz, minz, maxz);
1831 if (fTreeDrawArgsParser.GetNoParameters() != 9)
1836 checkPrevious =
kTRUE;
1838 Info(
"Terminate",
"found histo '%s' in gDirectory",
1839 fTreeDrawArgsParser.GetObjectName().Data());
1842 if (!fTreeDrawArgsParser.GetAdd())
1848 if (hist->CanExtendAllAxes() && hist->TestBit(
kCanDelete)) {
1849 rmin[0] = rmax[0] = rmin[1] = rmax[1] = rmin[2] = rmax[2] = 0;
1850 if (fPolyMarker3D->Size() > 0) {
1851 fPolyMarker3D->GetPoint(0, rmin[0], rmin[1], rmin[2]);
1852 fPolyMarker3D->GetPoint(0, rmax[0], rmax[1], rmax[2]);
1854 for (
int i = 1; i < fPolyMarker3D->Size(); i++) {
1856 fPolyMarker3D->GetPoint(i, v[0], v[1], v[2]);
1857 for (
int ii = 0; ii < 3; ii++) {
1858 if (v[ii] < rmin[ii]) rmin[ii] = v[ii];
1859 if (v[ii] > rmax[ii]) rmax[ii] = v[ii];
1863 if (checkPrevious) {
1864 rmin[0] = (hist->GetXaxis()->GetXmin() < rmin[0]) ? hist->GetXaxis()->GetXmin()
1866 rmin[1] = (hist->GetYaxis()->GetXmin() < rmin[1]) ? hist->GetYaxis()->GetXmin()
1868 rmin[2] = (hist->GetZaxis()->GetXmin() < rmin[2]) ? hist->GetZaxis()->GetXmin()
1870 rmax[0] = (hist->GetXaxis()->GetXmax() > rmax[0]) ? hist->GetXaxis()->GetXmax()
1872 rmax[1] = (hist->GetYaxis()->GetXmax() > rmax[1]) ? hist->GetYaxis()->GetXmax()
1874 rmax[2] = (hist->GetZaxis()->GetXmax() > rmax[2]) ? hist->GetZaxis()->GetXmax()
1879 rmin[0], rmax[0], rmin[1], rmax[1], rmin[2], rmax[2]);
1881 if (fTreeDrawArgsParser.GetShouldDraw()) {
1887 hist->Draw(fOption);
1892 gPad->Range(-1,-1,1,1);
1895 if (fTreeDrawArgsParser.GetShouldDraw()) {
1896 SetDrawAtt(fPolyMarker3D);
1897 fPolyMarker3D->Draw(fOption);
1901 for (
int i = 0; i < fPolyMarker3D->Size(); i++) {
1903 fPolyMarker3D->GetPoint(i, x,
y, z);
1904 hist->Fill(x,
y, z, 1);
1918 PDB(kDraw,1)
Info(
"SlaveBegin",
"Enter tree = %p", tree);
1929 fTreeDrawArgsParser.Parse(fInitialExp, fSelection, fOption);
1930 R__ASSERT(fTreeDrawArgsParser.GetDimension() == 3);
1937 fPoints->
SetName(
"PROOF_SCATTERPLOT");
1938 fOutput->Add(fPoints);
1940 PDB(kDraw,1)
Info(
"Begin",
"selection: %s", fSelection.Data());
1941 PDB(kDraw,1)
Info(
"Begin",
"varexp: %s", fInitialExp.Data());
1950 fPoints->GetVector()->push_back(
Point3D_t(v[2], v[1], v[0]));
1959 PDB(kDraw,1)
Info(
"Terminate",
"Enter");
1965 (fOutput->FindObject(
"PROOF_SCATTERPLOT"));
1967 std::vector<Point3D_t> *
points = fPoints->GetVector();
1969 SetStatus((
Int_t) points->size());
1971 TObject *orig = fTreeDrawArgsParser.GetOriginal();
1972 if ( (hist = dynamic_cast<TH2F*> (orig)) == 0 ) {
1974 fTreeDrawArgsParser.SetOriginal(0);
1975 double binsx, minx, maxx;
1976 double binsy, miny, maxy;
1977 if (fTreeDrawArgsParser.IsSpecified(0))
1978 gEnv->
SetValue(
"Hist.Binning.2D.x", fTreeDrawArgsParser.GetParameter(0));
1979 if (fTreeDrawArgsParser.IsSpecified(3))
1980 gEnv->
SetValue(
"Hist.Binning.2D.y", fTreeDrawArgsParser.GetParameter(3));
1982 minx = fTreeDrawArgsParser.GetIfSpecified(1, 0);
1983 maxx = fTreeDrawArgsParser.GetIfSpecified(2, 0);
1985 miny = fTreeDrawArgsParser.GetIfSpecified(4, 0);
1986 maxy = fTreeDrawArgsParser.GetIfSpecified(5, 0);
1987 hist =
new TH2F(fTreeDrawArgsParser.GetObjectName(), fTreeDrawArgsParser.GetObjectTitle(),
1988 (
Int_t) binsx, minx, maxx, (
Int_t) binsy, miny, maxy);
1991 if (fTreeDrawArgsParser.GetNoParameters() != 6)
2002 rmin[0] = rmax[0] = rmin[1] = rmax[1] = rmin[2] = rmax[2] = 0;
2003 if (points->size() > 0) {
2004 rmin[0] = rmax[0] = (*points)[0].fX;
2005 rmin[1] = rmax[1] = (*points)[0].fY;
2006 rmin[2] = rmax[2] = (*points)[0].fZ;
2008 for (vector<Point3D_t>::const_iterator i = points->begin() + 1; i < points->end(); ++i) {
2009 if (rmax[0] < i->fX) rmax[0] = i->fX;
2010 if (rmax[1] < i->fY) rmax[1] = i->fY;
2011 if (rmax[2] < i->fZ) rmax[2] = i->fZ;
2012 if (rmin[0] > i->fX) rmin[0] = i->fX;
2013 if (rmin[1] > i->fY) rmin[1] = i->fY;
2014 if (rmin[2] > i->fZ) rmin[2] = i->fZ;
2017 if (hist->CanExtendAllAxes() && hist->TestBit(
kCanDelete)) {
2019 rmin[1], rmax[1], rmin[2], rmax[2]);
2031 hist->GetListOfFunctions()->Add(grs,
"P");
2032 for (col=0;col<ncolors;col++) {
2041 for (vector<Point3D_t>::const_iterator i = points->begin();
2042 i < points->end(); ++i) {
2043 col =
Int_t((ncolors-1)*((i->fX-rmin[0])/(rmax[0]-rmin[0])));
2044 if (col < 0) col = 0;
2045 if (col > ncolors-1) col = ncolors-1;
2050 for (col=0;col<ncolors;col++) {
2054 if (fTreeDrawArgsParser.GetShouldDraw()) {
2056 hist->Draw(fOption.Data());
2059 fOutput->Remove(fPoints);
2073 PDB(kDraw,1)
Info(
"SlaveBegin",
"Enter tree = %p", tree);
2084 fTreeDrawArgsParser.Parse(fInitialExp, fSelection, fOption);
2085 R__ASSERT(fTreeDrawArgsParser.GetDimension() == 4);
2092 fPoints->
SetName(
"PROOF_SCATTERPLOT");
2093 fOutput->Add(fPoints);
2095 PDB(kDraw,1)
Info(
"Begin",
"selection: %s", fSelection.Data());
2096 PDB(kDraw,1)
Info(
"Begin",
"varexp: %s", fInitialExp.Data());
2105 fPoints->GetVector()->push_back(
Point4D_t(v[3], v[2], v[1], v[0]));
2115 PDB(kDraw,1)
Info(
"Terminate",
"Enter");
2121 (fOutput->FindObject(
"PROOF_SCATTERPLOT"));
2123 std::vector<Point4D_t> *
points = fPoints->GetVector();
2125 SetStatus((
Int_t) points->size());
2127 TObject *orig = fTreeDrawArgsParser.GetOriginal();
2128 if ( (hist = dynamic_cast<TH3F*> (orig)) == 0 || fTreeDrawArgsParser.GetNoParameters() != 0) {
2130 fTreeDrawArgsParser.SetOriginal(0);
2131 double binsx, minx, maxx;
2132 double binsy, miny, maxy;
2133 double binsz, minz, maxz;
2134 if (fTreeDrawArgsParser.IsSpecified(0))
2135 gEnv->
SetValue(
"Hist.Binning.3D.x", fTreeDrawArgsParser.GetParameter(0));
2136 if (fTreeDrawArgsParser.IsSpecified(3))
2137 gEnv->
SetValue(
"Hist.Binning.3D.y", fTreeDrawArgsParser.GetParameter(3));
2138 if (fTreeDrawArgsParser.IsSpecified(6))
2139 gEnv->
SetValue(
"Hist.Binning.3D.z", fTreeDrawArgsParser.GetParameter(3));
2141 minx = fTreeDrawArgsParser.GetIfSpecified(1, 0);
2142 maxx = fTreeDrawArgsParser.GetIfSpecified(2, 0);
2144 miny = fTreeDrawArgsParser.GetIfSpecified(4, 0);
2145 maxy = fTreeDrawArgsParser.GetIfSpecified(5, 0);
2147 minz = fTreeDrawArgsParser.GetIfSpecified(7, 0);
2148 maxz = fTreeDrawArgsParser.GetIfSpecified(8, 0);
2149 hist =
new TH3F(fTreeDrawArgsParser.GetObjectName(), fTreeDrawArgsParser.GetObjectTitle(),
2150 (
Int_t) binsx, minx, maxx,
2151 (
Int_t) binsy, miny, maxy,
2152 (
Int_t) binsz, minz, maxz);
2155 if (fTreeDrawArgsParser.GetNoParameters() != 9)
2167 rmin[0] = rmax[0] = rmin[1] = rmax[1] = rmin[2] = rmax[2] = 0;
2168 if (points->size() > 0) {
2169 rmin[0] = rmax[0] = (*points)[0].fX;
2170 rmin[1] = rmax[1] = (*points)[0].fY;
2171 rmin[2] = rmax[2] = (*points)[0].fZ;
2172 rmin[3] = rmax[3] = (*points)[0].fT;
2174 for (vector<Point4D_t>::const_iterator i = points->begin() + 1; i < points->end(); ++i) {
2175 if (rmax[0] < i->fX) rmax[0] = i->fX;
2176 if (rmax[1] < i->fY) rmax[1] = i->fY;
2177 if (rmax[2] < i->fZ) rmax[2] = i->fZ;
2178 if (rmax[3] < i->fT) rmax[3] = i->fT;
2179 if (rmin[0] > i->fX) rmin[0] = i->fX;
2180 if (rmin[1] > i->fY) rmin[1] = i->fY;
2181 if (rmin[2] > i->fZ) rmin[2] = i->fZ;
2182 if (rmin[3] > i->fT) rmin[3] = i->fT;
2185 if (hist->CanExtendAllAxes() && hist->TestBit(
kCanDelete)) {
2187 rmin[1], rmax[1], rmin[2], rmax[2], rmin[3], rmax[3]);
2198 hist->GetListOfFunctions()->Add(pms);
2199 for (col=0;col<ncolors;col++) {
2204 pms->
AddAt(pm3d,col);
2207 for (vector<Point4D_t>::const_iterator i = points->begin();
2208 i < points->end(); ++i) {
2210 if (col < 0) col = 0;
2211 if (col > ncolors-1) col = ncolors-1;
2215 if (fTreeDrawArgsParser.GetShouldDraw()) {
2217 hist->Draw(fOption.Data());
2220 fOutput->Remove(fPoints);
virtual void Begin(TTree *)
Executed by the client before processing.
virtual const char * GetTitle() const
Returns title of object.
virtual Style_t GetLineStyle() const
virtual Style_t GetFillStyle() const
virtual void Terminate()
See TProofDraw::Terminate().
virtual void Terminate()
See TProofDraw::Terminate().
virtual void DoFill(Long64_t entry, Double_t w, const Double_t *v)
Fills the histgram with given values.
virtual void SlaveBegin(TTree *)
Executed by each slave before processing.
ClassImp(TSeqCollection) Int_t TSeqCollection TIter next(this)
Return index of object in collection.
virtual void ClearFormula()
Delete internal buffers.
3-D histogram with a float per channel (see TH1 documentation)}
virtual void DoFill(Long64_t entry, Double_t w, const Double_t *v)
Fills the scatter plot with the given values.
virtual void DoFill(Long64_t entry, Double_t w, const Double_t *v)
Fills the eventlist with given values.
void SetDrawAtt(TObject *o)
Set the drawing attributes from the input list.
R__EXTERN TStyle * gStyle
virtual void Terminate()
See TProofDraw::Terminate().
virtual void SetName(const char *name)
Change (i.e.
virtual void SetOwner(Bool_t enable=kTRUE)
Set whether this collection is the owner (enable==true) of its content.
virtual void SlaveBegin(TTree *)
See TProofDraw::SlaveBegin().
void SetError(const char *sub, const char *mesg)
Sets the error status.
void DefVar3D()
Define variables for 3D histogram.
static THLimitsFinder * GetLimitsFinder()
Return pointer to the current finder.
virtual TObject * Remove(TObject *obj)
Remove object from array.
1-D histogram with a float per channel (see TH1 documentation)}
virtual void Init(TTree *)
Init the tree.
virtual void Init(TTree *)
See TProofDraw::Init().
virtual void SetFillStyle(Style_t fstyle)
virtual TObject * FindObject(const char *name) const
Find an object in this list using its name.
virtual void Terminate()
See TProofDraw::Terminate().
virtual void SlaveBegin(TTree *)
See TProofDraw::SlaveBegin().
virtual Int_t FindGoodLimits(TH1 *h, Double_t xmin, Double_t xmax)
compute the best axis limits for the X axis.
TString GetObjectName() const
virtual void Begin3D(TTree *t)
Initialization for 3D histogram.
virtual void SlaveTerminate()
Executed by each slave after the processing has finished, before returning the results to the client...
virtual void Reset(Option_t *option="")
Reset this histogram: contents, errors, etc.
TObject * Clone(const char *newname=0) const
Make a complete copy of the underlying object.
virtual void SetValue(const char *name, const char *value, EEnvLevel level=kEnvChange, const char *type=0)
Set the value of a resource or create a new resource.
virtual Int_t GetN() const
const char * Data() const
virtual TObject * FindObject(const char *name) const
Find an object in this collection using its name.
virtual void SlaveBegin(TTree *)
See TProofDraw::SlaveBegin().
Fill Area Attributes class.
virtual void Reset(Option_t *option="")
Reset contents of a Profile histogram.
The TNamed class is the base class for all named ROOT classes.
void Init(TClassEdit::TInterpreterLookupHelper *helper)
virtual void Terminate()
See TProofDraw::Terminate().
TString GetProofSelectorName() const
Returns apropriate TSelector class name for proof for the object that is to be drawn assumes that Par...
virtual void DoFill(Long64_t entry, Double_t w, const Double_t *v)
Fills the eventlist with given values.
virtual void SetMarkerColor(Color_t mcolor=1)
virtual Bool_t Process(Long64_t)
Executed for each entry.
void Info(const char *location, const char *msgfmt,...)
Int_t GetNumberOfColors() const
Return number of colors in the color palette.
Int_t DrawCanvas(TObject *obj)
virtual void Begin(TTree *t)
See TProofDraw::Begin().
virtual TH1 * DrawCopy(Option_t *option="", const char *name_postfix="_copy") const
Copy this histogram and Draw in the current pad.
virtual void Terminate()
See TProofDraw::Terminate().
virtual void DefVar()
Define relevant variables.
void Error(const char *location, const char *msgfmt,...)
Int_t GetDrawArgs(const char *var, const char *sel, Option_t *opt, TString &selector, TString &objname)
The 3-D histogram classes derived from the 1-D histogram classes.
TObject * GetParameter(const char *par) const
Get specified parameter.
static Int_t GetMaxDimension()
return fgMaxDimension (cannot be inline)
TObject * UncheckedAt(Int_t i) const
virtual void SetLineColor(Color_t lcolor)
virtual Size_t GetMarkerSize() const
virtual Bool_t Add(TF1 *h1, Double_t c1=1, Option_t *option="")
Performs the operation: this = this + c1*f1.
virtual void DefVar()
Define variables according to arguments.
virtual Bool_t Notify()
Called when a new tree is loaded.
Service class for 2-Dim histogram classes.
virtual void SetFillColor(Color_t fcolor)
2-D histogram with a float per channel (see TH1 documentation)}
virtual Int_t GetValue(const char *name, Int_t dflt)
Returns the integer value for a resource.
virtual void Begin(TTree *t)
See TProofDraw::Begin().
virtual TObject * Remove(TObject *obj)
Remove object from the list.
virtual void Begin2D(TTree *t)
Initialization for 2D histogram.
virtual Color_t GetFillColor() const
void Form(const char *fmt,...)
Formats a string using a printf style format descriptor.
char * Form(const char *fmt,...)
virtual void DoFill(Long64_t entry, Double_t w, const Double_t *v)
Fills the graph with the given values.
virtual void SlaveTerminate()
See TProofDraw::SlaveTerminate().
A TEventList object is a list of selected events (entries) in a TTree.
The ROOT global object gROOT contains a list of all defined classes.
virtual void SetMarkerStyle(Style_t mstyle=1)
void SetCanvas(const char *objname)
Move to a canvas named _canvas; create the canvas if not existing.
virtual void SetBuffer(Int_t buffersize, Option_t *option="")
set the buffer size in units of 8 bytes (double)
void SetName(const char *name)
virtual void Terminate()
See TProofDraw::Terminate().
virtual Color_t GetLineColor() const
static Int_t GetDefaultBufferSize()
static function return the default buffer size for automatic histograms the parameter fgBufferSize ma...
virtual void AddAt(TObject *obj, Int_t idx)
Add object at position ids.
virtual void SetMarkerSize(Size_t msize=1)
TObjArray * Tokenize(const TString &delim) const
This function is used to isolate sequential tokens in a TString.
virtual void Reset(Option_t *option="")
Reset this histogram: contents, errors, etc.
void SetPoint(Int_t n, Double_t x, Double_t y, Double_t z)
Set point n to x, y, z.
virtual void SlaveBegin(TTree *)
See TProofDraw::SlaveBegin().
virtual void DoFill(Long64_t entry, Double_t w, const Double_t *v)
Fills the scatter plot with the given values.
virtual void SlaveBegin(TTree *)
See TProofDraw::SlaveBegin().
virtual void Reset(Option_t *option="")
-*Reset contents of a Profile2D histogram *-* ======================================= ...
virtual const char * GetName() const
Returns name of object.
virtual void Terminate()
Executed by the client after getting the processing retults.
virtual void DoFill(Long64_t entry, Double_t w, const Double_t *v)
Fills the histogram with the given values.
virtual Bool_t CompileVariables()
Compiles each variable from fTreeDrawArgsParser for the tree fTree.
void DefVar1D()
Define vars for 1D Histogram.
virtual void Terminate()
See TProofDraw::Terminate().
void FillWeight()
Get weight from input list, if any.
Profile2D histograms are used to display the mean value of Z and its RMS for each cell in X...
virtual void SetName(const char *name)
Change the name of this TEventList.
static TView * CreateView(Int_t system=1, const Double_t *rmin=0, const Double_t *rmax=0)
Create a concrete default 3-d view via the plug-in manager.
A class that parses all parameters for TTree::Draw().
virtual ~TProofDraw()
Destructor.
virtual Long64_t GetN() const
Mother of all ROOT objects.
virtual void SlaveTerminate()
See TProofDraw::SlaveTerminate().
typedef void((*Func_t)())
virtual void SlaveBegin(TTree *)
See TProofDraw::SlaveBegin().
virtual void SetBuffer(Int_t buffersize, Option_t *option="")
set the buffer size in units of 8 bytes (double)
virtual Color_t GetMarkerColor() const
virtual void DefVar()
Define relevant variables.
virtual void SetPoint(Int_t i, Double_t x, Double_t y)
Set x and y values for point number i.
virtual void Add(TObject *obj)
virtual Bool_t ProcessSingle(Long64_t, Int_t)
Processes a single variable from an entry.
A Graph is a graphics object made of two arrays X and Y with npoints each.
ClassImp(TProofDraw) TProofDraw
Constructor.
virtual void Print(Option_t *option="") const
Standard print function.
void FeedBackCanvas(const char *name, Bool_t create)
A TTree object has a header with a name and a title.
virtual void Terminate()
See TProofDraw::Terminate().
virtual void DoFill(Long64_t entry, Double_t w, const Double_t *v)
Fills the scatter plot with the given values.
virtual Bool_t Add(TF1 *h1, Double_t c1=1, Option_t *option="")
Performs the operation: this = this + c1*f1.
virtual void SlaveBegin(TTree *)
See TProofDraw::SlaveBegin().
virtual void DoFill(Long64_t entry, Double_t w, const Double_t *v)
Fills the profile histogram with the given values.
TObject * At(Int_t idx) const
virtual void Reset(Option_t *option="")
Reset this histogram: contents, errors, etc.
void DefVar2D()
Define variables for 2D histogram.
virtual Style_t GetMarkerStyle() const
virtual Width_t GetLineWidth() const
virtual const char * GetTitle() const
Returns title of object.
virtual void SetTitle(const char *title="")
Change (i.e. set) the title of the TNamed.
A List of entry numbers in a TTree or TChain.
Bool_t Parse(const char *varexp, const char *selection, Option_t *option)
Parses parameters from TTree::Draw().
virtual void SetStats(Bool_t stats=kTRUE)
Set statistics option on/off.
virtual Int_t GetLastPoint() const
virtual void Begin(TTree *t)
See TProofDraw::Begin().