63 if (TCanvas*
c = dynamic_cast<TCanvas *> (obj)) {
81 info.
Parse(var, sel, opt);
97 new TCanvas(name,
"FeedBack", 800,30,700,500);
99 TCanvas *
c = (
gROOT->GetListOfCanvases()) ?
100 (TCanvas *)
gROOT->GetListOfCanvases()->FindObject(name) : 0;
114 : fStatus(0), fManager(0), fTree(0)
143 PDB(kDraw,1)
Info(
"Init",
"Enter tree = %p", tree);
154 PDB(kDraw,1)
Info(
"Notify",
"Enter");
156 if (!fOutput || (fOutput &&
157 !(fStatus = dynamic_cast<TStatus*>(fOutput->FindObject(
"PROOF_Status")))))
160 if (!fStatus->IsOk())
return kFALSE;
165 fManager->UpdateFormulaLeaves();
174 PDB(kDraw,1)
Info(
"Begin",
"Enter tree = %p", tree);
182 fTreeDrawArgsParser.Parse(fInitialExp, fSelection, fOption);
183 if (fTreeDrawArgsParser.GetObjectName() ==
"")
184 fTreeDrawArgsParser.SetObjectName(
"htemp");
187 PDB(kDraw,1)
Info(
"Begin",
"selection: %s", fSelection.Data());
188 PDB(kDraw,1)
Info(
"Begin",
"varexp: %s", fInitialExp.Data());
210 PDB(kDraw,1)
Info(
"FillWeight",
"fWeight= %f", fWeight);
223 w = fWeight * fSelect->EvalInstance(i);
227 PDB(kDraw,3)
Info(
"ProcessSingle",
"w[%d] = %f", i, w);
231 for (
int j = 0; j < fDimension; j++)
232 v[j] = fVar[j]->EvalInstance(i);
234 PDB(kDraw,4)
Info(
"Process",
"v[0] = %f", v[0]);
246 PDB(kDraw,3)
Info(
"Process",
"enter entry = %lld", entry);
248 fTree->LoadTree(entry);
251 PDB(kDraw,3)
Info(
"Process",
"ndata = %d", ndata);
254 ProcessSingle(entry, i);
266 PDB(kDraw,1)
Info(
"SlaveTerminate",
"Enter");
275 PDB(kDraw,1)
Info(
"Terminate",
"Enter");
277 fStatus =
dynamic_cast<TStatus*
>(fOutput->FindObject(
"PROOF_Status"));
284 if (!fStatus->IsOk()) {
297 for (
Int_t i = 0; i < 4; i++)
314 gROOT->MakeDefCanvas();
316 PDB(kDraw,2)
Info(
"SetCanvas",
"created canvas %s", name.
Data());
319 Info(
"SetCanvas",
"using canvas %s",
gPad->GetName());
329 PDB(kDraw,2)
Info(
"SetDrawAtt",
"setting attributes for %s", o->
GetName());
339 al->SetLineStyle((
Style_t)att);
342 al->SetLineWidth((
Width_t)att);
343 PDB(kDraw,2)
Info(
"SetDrawAtt",
"line: c:%d, s:%d, wd:%d",
344 al->GetLineColor(), al->GetLineStyle(), al->GetLineWidth());
355 Info(
"SetDrawAtt",
"att: %d", att);
362 PDB(kDraw,2)
Info(
"SetDrawAtt",
"marker: c:%d, s:%d, sz:%f",
375 PDB(kDraw,2)
Info(
"SetDrawAtt",
"area: c:%d, s:%d",
386 if (!(fStatus = dynamic_cast<TStatus*>(fOutput->FindObject(
"PROOF_Status"))))
394 m.
Form(
"TProofDraw::%s: %s", sub, mesg);
412 na.Form(
"alias:%s",
n.Data());
414 if (na) fTree->SetAlias(
n.Data(), nm->
GetTitle());
419 if (fTree->GetListOfAliases()) fTree->GetListOfAliases()->Print();
421 fDimension = fTreeDrawArgsParser.GetDimension();
424 if (strlen(fTreeDrawArgsParser.GetSelection())) {
425 fSelect =
new TTreeFormula(
"Selection", fTreeDrawArgsParser.GetSelection(), fTree);
427 if (!fSelect->GetNdim()) {
delete fSelect; fSelect = 0;
return kFALSE; }
431 if (fSelect) fManager->Add(fSelect);
434 for (
int i = 0; i < fDimension; i++) {
435 fVar[i] =
new TTreeFormula(
Form(
"Var%d", i),fTreeDrawArgsParser.GetVarExp(i),fTree);
437 if (!fVar[i]->GetNdim()) {
439 Error(
"CompileVariables",
"Error compiling expression");
440 SetError(
"CompileVariables",
"Error compiling variables");
444 fManager->Add(fVar[i]);
449 if (fManager->GetMultiplicity()>=1) fMultiplicity = fManager->GetMultiplicity();
456 TClass *cl = fVar[0]->EvalClass();
474 R__ASSERT(fTreeDrawArgsParser.GetDimension() == 1);
475 TObject* orig = fTreeDrawArgsParser.GetOriginal();
477 if (fTreeDrawArgsParser.GetNoParameters() == 0 && (hold =
dynamic_cast<TH1*
> (orig))) {
492 R__ASSERT(fTreeDrawArgsParser.GetDimension() == 2);
493 TObject* orig = fTreeDrawArgsParser.GetOriginal();
495 if (fTreeDrawArgsParser.GetNoParameters() == 0 && (hold =
dynamic_cast<TH2*
> (orig))) {
510 R__ASSERT(fTreeDrawArgsParser.GetDimension() == 3);
511 TObject* orig = fTreeDrawArgsParser.GetOriginal();
513 if ((hold = dynamic_cast<TH3*> (orig)) && fTreeDrawArgsParser.GetNoParameters() == 0) {
527 PDB(kDraw,1)
Info(
"Begin",
"Enter tree = %p", tree);
536 fTreeDrawArgsParser.Parse(fInitialExp, fSelection, fOption);
537 if (fTreeDrawArgsParser.GetObjectName() ==
"")
538 fTreeDrawArgsParser.SetObjectName(
"htemp");
540 switch (fTreeDrawArgsParser.GetDimension()) {
551 Error(
"Begin",
"Wrong dimension");
555 PDB(kDraw,1)
Info(
"Begin",
"selection: %s", fSelection.Data());
556 PDB(kDraw,1)
Info(
"Begin",
"varexp: %s", fInitialExp.Data());
565 R__ASSERT(fTreeDrawArgsParser.GetDimension() == 1);
567 fTreeDrawArgsParser.SetOriginal(0);
568 TString exp = fTreeDrawArgsParser.GetVarExp();
570 double binsx, minx, maxx;
571 if (fTreeDrawArgsParser.IsSpecified(0))
572 gEnv->
SetValue(
"Hist.Binning.1D.x", fTreeDrawArgsParser.GetParameter(0));
574 minx = fTreeDrawArgsParser.GetIfSpecified(1, 0);
575 maxx = fTreeDrawArgsParser.GetIfSpecified(2, 0);
576 exp += fTreeDrawArgsParser.GetObjectName();
590 Error(
"DefVar1D",
"Cannot find varexp on the fInput");
591 if (fTreeDrawArgsParser.GetNoParameters() != 3)
600 R__ASSERT(fTreeDrawArgsParser.GetDimension() == 2);
602 fTreeDrawArgsParser.SetOriginal(0);
603 TString exp = fTreeDrawArgsParser.GetVarExp();
605 double binsx, minx, maxx;
606 double binsy, miny, maxy;
607 if (fTreeDrawArgsParser.IsSpecified(0))
608 gEnv->
SetValue(
"Hist.Binning.2D.x", fTreeDrawArgsParser.GetParameter(0));
609 if (fTreeDrawArgsParser.IsSpecified(3))
610 gEnv->
SetValue(
"Hist.Binning.2D.y", fTreeDrawArgsParser.GetParameter(3));
612 minx = fTreeDrawArgsParser.GetIfSpecified(1, 0);
613 maxx = fTreeDrawArgsParser.GetIfSpecified(2, 0);
615 miny = fTreeDrawArgsParser.GetIfSpecified(4, 0);
616 maxy = fTreeDrawArgsParser.GetIfSpecified(5, 0);
617 exp += fTreeDrawArgsParser.GetObjectName();
636 Error(
"DefVar2D",
"Cannot find varexp on the fInput");
637 if (fTreeDrawArgsParser.GetNoParameters() != 6)
646 R__ASSERT(fTreeDrawArgsParser.GetDimension() == 3);
648 fTreeDrawArgsParser.SetOriginal(0);
649 TString exp = fTreeDrawArgsParser.GetVarExp();
651 double binsx, minx, maxx;
652 double binsy, miny, maxy;
653 double binsz, minz, maxz;
654 if (fTreeDrawArgsParser.IsSpecified(0))
655 gEnv->
SetValue(
"Hist.Binning.3D.x", fTreeDrawArgsParser.GetParameter(0));
656 if (fTreeDrawArgsParser.IsSpecified(3))
657 gEnv->
SetValue(
"Hist.Binning.3D.y", fTreeDrawArgsParser.GetParameter(3));
658 if (fTreeDrawArgsParser.IsSpecified(6))
659 gEnv->
SetValue(
"Hist.Binning.3D.z", fTreeDrawArgsParser.GetParameter(6));
661 minx = fTreeDrawArgsParser.GetIfSpecified(1, 0);
662 maxx = fTreeDrawArgsParser.GetIfSpecified(2, 0);
664 miny = fTreeDrawArgsParser.GetIfSpecified(4, 0);
665 maxy = fTreeDrawArgsParser.GetIfSpecified(5, 0);
667 minz = fTreeDrawArgsParser.GetIfSpecified(7, 0);
668 maxz = fTreeDrawArgsParser.GetIfSpecified(8, 0);
669 exp += fTreeDrawArgsParser.GetObjectName();
694 Error(
"DefVar3D",
"Cannot find varexp on the fInput");
695 if (fTreeDrawArgsParser.GetNoParameters() != 9)
704 PDB(kDraw,1)
Info(
"DefVar",
"Enter");
713 fTreeDrawArgsParser.Parse(fInitialExp, fSelection, fOption);
714 if (fTreeDrawArgsParser.GetObjectName() ==
"")
715 fTreeDrawArgsParser.SetObjectName(
"htemp");
717 switch (fTreeDrawArgsParser.GetDimension()) {
728 Error(
"DefVar",
"Wrong dimension");
732 PDB(kDraw,1)
Info(
"DefVar",
"selection: %s", fSelection.Data());
733 PDB(kDraw,1)
Info(
"DefVar",
"varexp: %s", fInitialExp.Data());
742 PDB(kDraw,1)
Info(
"Init",
"Enter tree = %p", tree);
744 if (!dynamic_cast<TH1*> (fTreeDrawArgsParser.GetOriginal())) {
765 PDB(kDraw,1)
Info(
"SlaveBegin",
"Enter tree = %p", tree);
779 fTreeDrawArgsParser.Parse(fInitialExp, fSelection, fOption);
780 fDimension = fTreeDrawArgsParser.GetDimension();
782 const char *objname = fTreeDrawArgsParser.GetObjectName();
783 if (objname && strlen(objname) > 0 && strcmp(objname,
"htemp")) {
787 PDB(kDraw,1)
Info(
"SlaveBegin",
"original histogram found");
789 PDB(kDraw,1)
Info(
"SlaveBegin",
"original object '%s' not found"
790 " or it is not a histogram", objname);
796 Int_t countx = 100;
double minx = 0, maxx = 0;
797 Int_t county = 100;
double miny = 0, maxy = 0;
798 Int_t countz = 100;
double minz = 0, maxz = 0;
799 if (fTreeDrawArgsParser.GetNoParameters() != 0) {
800 countx = (
Int_t) fTreeDrawArgsParser.GetIfSpecified(0, countx);
801 county = (
Int_t) fTreeDrawArgsParser.GetIfSpecified(3, county);
802 countz = (
Int_t) fTreeDrawArgsParser.GetIfSpecified(6, countz);
803 minx = fTreeDrawArgsParser.GetIfSpecified(1, minx);
804 maxx = fTreeDrawArgsParser.GetIfSpecified(2, maxx);
805 miny = fTreeDrawArgsParser.GetIfSpecified(4, miny);
806 maxy = fTreeDrawArgsParser.GetIfSpecified(5, maxy);
807 minz = fTreeDrawArgsParser.GetIfSpecified(7, minz);
808 maxz = fTreeDrawArgsParser.GetIfSpecified(8, maxz);
810 if (fTreeDrawArgsParser.GetNoParameters() != 3*fDimension)
811 Error(
"SlaveBegin",
"Impossible - Wrong number of parameters");
814 fHistogram =
new TH1F(fTreeDrawArgsParser.GetObjectName(),
815 fTreeDrawArgsParser.GetObjectTitle(),
817 else if (fDimension == 2){
818 fHistogram =
new TH2F(fTreeDrawArgsParser.GetObjectName(),
819 fTreeDrawArgsParser.GetObjectTitle(),
823 else if (fDimension == 3) {
824 fHistogram =
new TH3F(fTreeDrawArgsParser.GetObjectName(),
825 fTreeDrawArgsParser.GetObjectTitle(),
830 Info(
"Begin",
"Wrong dimension");
836 if (strstr(opt->GetTitle(),
"rebin"))
840 fHistogram->SetDirectory(0);
841 fOutput->Add(fHistogram);
845 PDB(kDraw,1)
Info(
"Begin",
"selection: %s", fSelection.Data());
846 PDB(kDraw,1)
Info(
"Begin",
"varexp: %s", fInitialExp.Data());
856 fHistogram->Fill(v[0], w);
857 else if (fDimension == 2)
858 ((TH2F *)fHistogram)->Fill(v[1], v[0], w);
859 else if (fDimension == 3)
860 ((
TH3F *)fHistogram)->Fill(v[2], v[1], v[0], w);
869 PDB(kDraw,1)
Info(
"Terminate",
"Enter");
874 fHistogram = (TH1F *) fOutput->FindObject(fTreeDrawArgsParser.GetObjectName());
876 SetStatus((
Int_t) fHistogram->GetEntries());
878 if ((h = dynamic_cast<TH1*> (fTreeDrawArgsParser.GetOriginal()))) {
879 if (!fTreeDrawArgsParser.GetAdd())
885 fOutput->Remove(fHistogram);
889 fHistogram->SetTitle(fTreeDrawArgsParser.GetObjectTitle());
892 if (fTreeDrawArgsParser.GetShouldDraw()) {
894 SetCanvas(h->GetName());
897 h->Draw(fOption.Data());
910 PDB(kDraw,1)
Info(
"Init",
"Enter tree = %p", tree);
914 Error(
"Init",
"Impossible - fElist cannot be 0");
915 fEventLists->Add(fElist);
917 fElist =
new TEventList(tree->GetDirectory()->GetName(), tree->GetName());
928 PDB(kDraw,1)
Info(
"SlaveBegin",
"Enter tree = %p", tree);
940 fTreeDrawArgsParser.Parse(fInitialExp, fSelection, fOption);
946 fEventLists =
new TList();
947 fEventLists->SetName(
"PROOF_EventListsList");
948 fOutput->Add(fEventLists);
951 PDB(kDraw,1)
Info(
"Begin",
"selection: %s", fSelection.Data());
952 PDB(kDraw,1)
Info(
"Begin",
"varexp: %s", fInitialExp.Data());
961 fElist->Enter(entry);
970 PDB(kDraw,1)
Info(
"SlaveTerminate",
"Enter");
971 fEventLists->Add(fElist);
984 fTreeDrawArgsParser.Parse(fInitialExp, fSelection, fOption);
988 el->
SetName(fInitialExp.Data()+2);
989 SetStatus(el->
GetN());
990 if (
TEventList* old = dynamic_cast<TEventList*> (fTreeDrawArgsParser.GetOriginal())) {
991 if (!fTreeDrawArgsParser.GetAdd())
999 Error(
"Terminate",
"Cannot find output EventList");
1010 PDB(kDraw,1)
Info(
"Init",
"Enter tree = %p", tree);
1021 PDB(kDraw,1)
Info(
"SlaveBegin",
"Enter tree = %p", tree);
1033 fTreeDrawArgsParser.Parse(fInitialExp, fSelection, fOption);
1039 fElist =
new TEntryList(
"PROOF_EntryList",
"PROOF_EntryList");
1040 fOutput->Add(fElist);
1043 PDB(kDraw,1)
Info(
"Begin",
"selection: %s", fSelection.Data());
1044 PDB(kDraw,1)
Info(
"Begin",
"varexp: %s", fInitialExp.Data());
1052 fElist->Enter(entry);
1060 PDB(kDraw,1)
Info(
"SlaveTerminate",
"Enter");
1061 fElist->OptimizeStorage();
1073 fTreeDrawArgsParser.Parse(fInitialExp, fSelection, fOption);
1078 el->
SetName(fInitialExp.Data()+2);
1079 SetStatus(el->
GetN());
1080 if (
TEntryList* old = dynamic_cast<TEntryList*> (fTreeDrawArgsParser.GetOriginal())) {
1081 if (!fTreeDrawArgsParser.GetAdd())
1084 fOutput->Remove(el);
1089 Error(
"Terminate",
"Cannot find output EventList");
1100 PDB(kDraw,1)
Info(
"Init",
"Enter tree = %p", tree);
1103 if (!dynamic_cast<TProfile*> (fTreeDrawArgsParser.GetOriginal())) {
1104 fProfile->SetLineColor(tree->GetLineColor());
1105 fProfile->SetLineWidth(tree->GetLineWidth());
1106 fProfile->SetLineStyle(tree->GetLineStyle());
1107 fProfile->SetFillColor(tree->GetFillColor());
1108 fProfile->SetFillStyle(tree->GetFillStyle());
1109 fProfile->SetMarkerStyle(tree->GetMarkerStyle());
1110 fProfile->SetMarkerColor(tree->GetMarkerColor());
1111 fProfile->SetMarkerSize(tree->GetMarkerSize());
1123 PDB(kDraw,1)
Info(
"DefVar",
"Enter");
1125 if (fTreeDrawArgsParser.GetDimension() < 0) {
1135 fTreeDrawArgsParser.Parse(fInitialExp, fSelection, fOption);
1139 R__ASSERT(fTreeDrawArgsParser.GetDimension() == 2);
1141 fTreeDrawArgsParser.SetOriginal(0);
1142 TString exp = fTreeDrawArgsParser.GetVarExp();
1144 double binsx, minx, maxx;
1145 if (fTreeDrawArgsParser.IsSpecified(0))
1146 gEnv->
SetValue(
"Hist.Binning.2D.Prof", fTreeDrawArgsParser.GetParameter(0));
1148 minx = fTreeDrawArgsParser.GetIfSpecified(1, 0);
1149 maxx = fTreeDrawArgsParser.GetIfSpecified(2, 0);
1150 if (fTreeDrawArgsParser.GetObjectName() ==
"")
1151 fTreeDrawArgsParser.SetObjectName(
"htemp");
1152 exp += fTreeDrawArgsParser.GetObjectName();
1165 Error(
"DefVar",
"Cannot find varexp on the fInput");
1166 if (fTreeDrawArgsParser.GetNoParameters() != 3)
1175 PDB(kDraw,1)
Info(
"Begin",
"Enter tree = %p", tree);
1185 fTreeDrawArgsParser.Parse(fInitialExp, fSelection, fOption);
1187 R__ASSERT(fTreeDrawArgsParser.GetDimension() == 2);
1189 TObject *orig = fTreeDrawArgsParser.GetOriginal();
1191 if ((pold = dynamic_cast<TProfile*> (orig)) && fTreeDrawArgsParser.GetNoParameters() == 0) {
1192 TProfile* pnew = (TProfile*) pold->
Clone();
1200 PDB(kDraw,1)
Info(
"Begin",
"selection: %s", fSelection.Data());
1201 PDB(kDraw,1)
Info(
"Begin",
"varexp: %s", fInitialExp.Data());
1211 PDB(kDraw,1)
Info(
"SlaveBegin",
"Enter tree = %p", tree);
1227 fTreeDrawArgsParser.Parse(fInitialExp, fSelection, fOption);
1231 if (fTreeDrawArgsParser.GetOriginal()) {
1232 fProfile =
dynamic_cast<TProfile*
> (fTreeDrawArgsParser.GetOriginal());
1234 fOutput->Add(fProfile);
1235 PDB(kDraw,1)
Info(
"SlaveBegin",
"Original profile histogram found");
1239 Error(
"SlaveBegin",
"Original object found but it is not a histogram");
1241 Int_t countx = 100;
double minx = 0, maxx = 0;
1242 if (fTreeDrawArgsParser.GetNoParameters() != 0) {
1243 countx = (
Int_t) fTreeDrawArgsParser.GetIfSpecified(0, countx);
1244 minx = fTreeDrawArgsParser.GetIfSpecified(1, minx);
1245 maxx = fTreeDrawArgsParser.GetIfSpecified(2, maxx);
1247 if (fTreeDrawArgsParser.GetNoParameters() != 3)
1248 Error(
"SlaveBegin",
"Impossible - Wrong number of parameters");
1249 TString constructorOptions =
"";
1250 if (fOption.Contains(
"profs"))
1251 constructorOptions =
"s";
1252 else if (fOption.Contains(
"profi"))
1253 constructorOptions =
"i";
1254 else if (fOption.Contains(
"profg"))
1255 constructorOptions =
"g";
1257 fProfile =
new TProfile(fTreeDrawArgsParser.GetObjectName(),
1258 fTreeDrawArgsParser.GetObjectTitle(),
1260 constructorOptions);
1265 if (strstr(opt->GetTitle(),
"rebin"))
1268 fProfile->SetDirectory(0);
1269 fOutput->Add(fProfile);
1272 PDB(kDraw,1)
Info(
"Begin",
"selection: %s", fSelection.Data());
1273 PDB(kDraw,1)
Info(
"Begin",
"varexp: %s", fInitialExp.Data());
1282 fProfile->Fill(v[1], v[0], w);
1291 PDB(kDraw,1)
Info(
"Terminate",
"Enter");
1296 fProfile = (TProfile *) fOutput->FindObject(fTreeDrawArgsParser.GetObjectName());
1298 SetStatus((
Int_t) fProfile->GetEntries());
1300 if ((pf = dynamic_cast<TProfile*> (fTreeDrawArgsParser.GetOriginal()))) {
1301 if (!fTreeDrawArgsParser.GetAdd())
1307 fOutput->Remove(fProfile);
1310 fProfile->SetTitle(fTreeDrawArgsParser.GetObjectTitle());
1313 if (fTreeDrawArgsParser.GetShouldDraw()) {
1315 SetCanvas(pf->GetName());
1318 pf->Draw(fOption.Data());
1332 PDB(kDraw,1)
Info(
"Init",
"Enter tree = %p", tree);
1334 if (!dynamic_cast<TProfile2D*> (fTreeDrawArgsParser.GetOriginal())) {
1335 fProfile->SetLineColor(tree->GetLineColor());
1336 fProfile->SetLineWidth(tree->GetLineWidth());
1337 fProfile->SetLineStyle(tree->GetLineStyle());
1338 fProfile->SetFillColor(tree->GetFillColor());
1339 fProfile->SetFillStyle(tree->GetFillStyle());
1340 fProfile->SetMarkerStyle(tree->GetMarkerStyle());
1341 fProfile->SetMarkerColor(tree->GetMarkerColor());
1342 fProfile->SetMarkerSize(tree->GetMarkerSize());
1355 PDB(kDraw,1)
Info(
"DefVar",
"Enter");
1357 if (fTreeDrawArgsParser.GetDimension() < 0) {
1367 fTreeDrawArgsParser.Parse(fInitialExp, fSelection, fOption);
1370 R__ASSERT(fTreeDrawArgsParser.GetDimension() == 3);
1372 fTreeDrawArgsParser.SetOriginal(0);
1373 TString exp = fTreeDrawArgsParser.GetVarExp();
1375 double binsx, minx, maxx;
1376 double binsy, miny, maxy;
1377 if (fTreeDrawArgsParser.IsSpecified(0))
1378 gEnv->
SetValue(
"Hist.Binning.3D.Profx", fTreeDrawArgsParser.GetParameter(0));
1379 if (fTreeDrawArgsParser.IsSpecified(3))
1380 gEnv->
SetValue(
"Hist.Binning.3D.Profy", fTreeDrawArgsParser.GetParameter(3));
1382 minx = fTreeDrawArgsParser.GetIfSpecified(1, 0);
1383 maxx = fTreeDrawArgsParser.GetIfSpecified(2, 0);
1385 miny = fTreeDrawArgsParser.GetIfSpecified(4, 0);
1386 maxy = fTreeDrawArgsParser.GetIfSpecified(5, 0);
1387 if (fTreeDrawArgsParser.GetObjectName() ==
"")
1388 fTreeDrawArgsParser.SetObjectName(
"htemp");
1389 exp += fTreeDrawArgsParser.GetObjectName();
1408 Error(
"DefVar",
"Cannot find varexp on the fInput");
1409 if (fTreeDrawArgsParser.GetNoParameters() != 6)
1418 PDB(kDraw,1)
Info(
"Begin",
"Enter tree = %p", tree);
1427 fTreeDrawArgsParser.Parse(fInitialExp, fSelection, fOption);
1429 R__ASSERT(fTreeDrawArgsParser.GetDimension() == 3);
1431 TObject *orig = fTreeDrawArgsParser.GetOriginal();
1433 if ((pold = dynamic_cast<TProfile2D*> (orig)) && fTreeDrawArgsParser.GetNoParameters() == 0) {
1442 PDB(kDraw,1)
Info(
"Begin",
"selection: %s", fSelection.Data());
1443 PDB(kDraw,1)
Info(
"Begin",
"varexp: %s", fInitialExp.Data());
1451 PDB(kDraw,1)
Info(
"SlaveBegin",
"Enter tree = %p", tree);
1465 fTreeDrawArgsParser.Parse(fInitialExp, fSelection, fOption);
1469 if (fTreeDrawArgsParser.GetOriginal()) {
1470 fProfile =
dynamic_cast<TProfile2D*
> (fTreeDrawArgsParser.GetOriginal());
1472 fOutput->
Add(fProfile);
1473 PDB(kDraw,1)
Info(
"SlaveBegin",
"Original profile histogram found");
1476 Error(
"SlaveBegin",
"Original object found but it is not a histogram");
1478 Int_t countx = 40;
double minx = 0, maxx = 0;
1479 Int_t county = 40;
double miny = 0, maxy = 0;
1480 if (fTreeDrawArgsParser.GetNoParameters() != 0) {
1481 countx = (
Int_t) fTreeDrawArgsParser.GetIfSpecified(0, countx);
1482 minx = fTreeDrawArgsParser.GetIfSpecified(1, minx);
1483 maxx = fTreeDrawArgsParser.GetIfSpecified(2, maxx);
1484 county = (
Int_t) fTreeDrawArgsParser.GetIfSpecified(3, countx);
1485 miny = fTreeDrawArgsParser.GetIfSpecified(4, minx);
1486 maxy = fTreeDrawArgsParser.GetIfSpecified(5, maxx);
1488 if (fTreeDrawArgsParser.GetNoParameters() != 6)
1489 Error(
"SlaveBegin",
"Impossible - Wrong number of parameters");
1491 TString constructorOptions =
"";
1492 if (fOption.Contains(
"profs"))
1493 constructorOptions =
"s";
1494 else if (fOption.Contains(
"profi"))
1495 constructorOptions =
"i";
1496 else if (fOption.Contains(
"profg"))
1497 constructorOptions =
"g";
1499 fProfile =
new TProfile2D(fTreeDrawArgsParser.GetObjectName(),
1500 fTreeDrawArgsParser.GetObjectTitle(),
1503 constructorOptions);
1508 if (strstr(opt->GetTitle(),
"rebin"))
1511 fProfile->SetDirectory(0);
1512 fOutput->Add(fProfile);
1515 PDB(kDraw,1)
Info(
"Begin",
"selection: %s", fSelection.Data());
1516 PDB(kDraw,1)
Info(
"Begin",
"varexp: %s", fInitialExp.Data());
1525 fProfile->Fill(v[2], v[1], v[0], w);
1534 PDB(kDraw,1)
Info(
"Terminate",
"Enter");
1539 fProfile = (
TProfile2D *) fOutput->FindObject(fTreeDrawArgsParser.GetObjectName());
1541 SetStatus((
Int_t) fProfile->GetEntries());
1543 if ((pf = dynamic_cast<TProfile2D*> (fTreeDrawArgsParser.GetOriginal()))) {
1544 if (!fTreeDrawArgsParser.GetAdd())
1550 fOutput->Remove(fProfile);
1553 fProfile->SetTitle(fTreeDrawArgsParser.GetObjectTitle());
1556 if (fTreeDrawArgsParser.GetShouldDraw()) {
1558 SetCanvas(pf->GetName());
1561 pf->Draw(fOption.Data());
1575 PDB(kDraw,1)
Info(
"Init",
"Enter tree = %p", tree);
1579 fGraph->SetMarkerStyle(tree->GetMarkerStyle());
1580 fGraph->SetMarkerColor(tree->GetMarkerColor());
1581 fGraph->SetMarkerSize(tree->GetMarkerSize());
1582 fGraph->SetLineColor(tree->GetLineColor());
1583 fGraph->SetLineStyle(tree->GetLineStyle());
1584 fGraph->SetFillColor(tree->GetFillColor());
1585 fGraph->SetFillStyle(tree->GetFillStyle());
1597 PDB(kDraw,1)
Info(
"SlaveBegin",
"Enter tree = %p", tree);
1608 fTreeDrawArgsParser.Parse(fInitialExp, fSelection, fOption);
1613 fGraph =
new TGraph();
1614 fGraph->SetName(
"PROOF_GRAPH");
1615 fOutput->Add(fGraph);
1617 PDB(kDraw,1)
Info(
"Begin",
"selection: %s", fSelection.Data());
1618 PDB(kDraw,1)
Info(
"Begin",
"varexp: %s", fInitialExp.Data());
1627 fGraph->SetPoint(fGraph->GetN(), v[1], v[0]);
1636 PDB(kDraw,1)
Info(
"Terminate",
"Enter");
1641 fGraph =
dynamic_cast<TGraph*
> (fOutput->FindObject(
"PROOF_GRAPH"));
1643 SetStatus((
Int_t) fGraph->GetN());
1645 TObject *orig = fTreeDrawArgsParser.GetOriginal();
1646 if ( (hist = dynamic_cast<TH2F*> (orig)) == 0 ) {
1648 fTreeDrawArgsParser.SetOriginal(0);
1649 double binsx, minx, maxx;
1650 double binsy, miny, maxy;
1651 if (fTreeDrawArgsParser.IsSpecified(0))
1652 gEnv->
SetValue(
"Hist.Binning.2D.x", fTreeDrawArgsParser.GetParameter(0));
1653 if (fTreeDrawArgsParser.IsSpecified(3))
1654 gEnv->
SetValue(
"Hist.Binning.2D.y", fTreeDrawArgsParser.GetParameter(3));
1656 minx = fTreeDrawArgsParser.GetIfSpecified(1, 0);
1657 maxx = fTreeDrawArgsParser.GetIfSpecified(2, 0);
1659 miny = fTreeDrawArgsParser.GetIfSpecified(4, 0);
1660 maxy = fTreeDrawArgsParser.GetIfSpecified(5, 0);
1661 hist =
new TH2F(fTreeDrawArgsParser.GetObjectName(), fTreeDrawArgsParser.GetObjectTitle(),
1662 (
Int_t) binsx, minx, maxx, (
Int_t) binsy, miny, maxy);
1665 if (fTreeDrawArgsParser.GetNoParameters() != 6)
1672 if (!fTreeDrawArgsParser.GetAdd())
1675 if (hist->CanExtendAllAxes() && hist->TestBit(
kCanDelete)) {
1678 Double_t xmin = *std::min_element(xArray, xArray+fGraph->GetN());
1679 Double_t xmax = *std::max_element(xArray, xArray+fGraph->GetN());
1680 Double_t ymin = *std::min_element(yArray, yArray+fGraph->GetN());
1681 Double_t ymax = *std::max_element(yArray, yArray+fGraph->GetN());
1693 fGraph->SetEditable(
kFALSE);
1696 if (fTreeDrawArgsParser.GetShouldDraw()) {
1698 if (fOption ==
"" || strcmp(fOption,
"same") == 0)
1701 fGraph->Draw(fOption);
1705 for (
int i = 0; i < fGraph->GetN(); i++) {
1707 fGraph->GetPoint(i, x,
y);
1708 hist->Fill(x,
y, 1);
1723 PDB(kDraw,1)
Info(
"Init",
"Enter tree = %p", tree);
1727 fPolyMarker3D->SetMarkerStyle(tree->GetMarkerStyle());
1728 fPolyMarker3D->SetMarkerColor(tree->GetMarkerColor());
1729 fPolyMarker3D->SetMarkerSize(tree->GetMarkerSize());
1740 PDB(kDraw,1)
Info(
"SlaveBegin",
"Enter tree = %p", tree);
1751 fTreeDrawArgsParser.Parse(fInitialExp, fSelection, fOption);
1752 R__ASSERT(fTreeDrawArgsParser.GetDimension() == 3);
1757 fPolyMarker3D =
new TPolyMarker3D();
1758 fOutput->Add(fPolyMarker3D);
1760 PDB(kDraw,1)
Info(
"Begin",
"selection: %s", fSelection.Data());
1761 PDB(kDraw,1)
Info(
"Begin",
"varexp: %s", fInitialExp.Data());
1770 fPolyMarker3D->SetNextPoint(v[2], v[1], v[0]);
1779 PDB(kDraw,1)
Info(
"Terminate",
"Enter");
1787 if (dynamic_cast<TPolyMarker3D*> (o)) {
1788 fPolyMarker3D =
dynamic_cast<TPolyMarker3D*
> (o);
1794 if (fPolyMarker3D) {
1795 SetStatus((
Int_t) fPolyMarker3D->Size());
1797 TObject *orig = fTreeDrawArgsParser.GetOriginal();
1798 if ( (hist = dynamic_cast<TH3F*> (orig)) == 0 ) {
1800 fTreeDrawArgsParser.SetOriginal(0);
1801 if (fOption.Contains(
"same")) {
1803 hist =
dynamic_cast<TH3F *
> (
gDirectory->Get(fTreeDrawArgsParser.GetObjectName()));
1806 double binsx, minx, maxx;
1807 double binsy, miny, maxy;
1808 double binsz, minz, maxz;
1809 if (fTreeDrawArgsParser.IsSpecified(0))
1810 gEnv->
SetValue(
"Hist.Binning.3D.x", fTreeDrawArgsParser.GetParameter(0));
1811 if (fTreeDrawArgsParser.IsSpecified(3))
1812 gEnv->
SetValue(
"Hist.Binning.3D.y", fTreeDrawArgsParser.GetParameter(3));
1813 if (fTreeDrawArgsParser.IsSpecified(6))
1814 gEnv->
SetValue(
"Hist.Binning.3D.z", fTreeDrawArgsParser.GetParameter(6));
1816 minx = fTreeDrawArgsParser.GetIfSpecified(1, 0);
1817 maxx = fTreeDrawArgsParser.GetIfSpecified(2, 0);
1819 miny = fTreeDrawArgsParser.GetIfSpecified(4, 0);
1820 maxy = fTreeDrawArgsParser.GetIfSpecified(5, 0);
1822 minz = fTreeDrawArgsParser.GetIfSpecified(7, 0);
1823 maxz = fTreeDrawArgsParser.GetIfSpecified(8, 0);
1824 hist =
new TH3F(fTreeDrawArgsParser.GetObjectName(), fTreeDrawArgsParser.GetObjectTitle(),
1825 (
Int_t) binsx, minx, maxx,
1826 (
Int_t) binsy, miny, maxy,
1827 (
Int_t) binsz, minz, maxz);
1830 if (fTreeDrawArgsParser.GetNoParameters() != 9)
1835 checkPrevious =
kTRUE;
1837 Info(
"Terminate",
"found histo '%s' in gDirectory",
1838 fTreeDrawArgsParser.GetObjectName().Data());
1841 if (!fTreeDrawArgsParser.GetAdd())
1847 if (hist->CanExtendAllAxes() && hist->TestBit(
kCanDelete)) {
1848 rmin[0] = rmax[0] = rmin[1] = rmax[1] = rmin[2] = rmax[2] = 0;
1849 if (fPolyMarker3D->Size() > 0) {
1850 fPolyMarker3D->GetPoint(0, rmin[0], rmin[1], rmin[2]);
1851 fPolyMarker3D->GetPoint(0, rmax[0], rmax[1], rmax[2]);
1853 for (
int i = 1; i < fPolyMarker3D->Size(); i++) {
1855 fPolyMarker3D->GetPoint(i, v[0], v[1], v[2]);
1856 for (
int ii = 0;
ii < 3;
ii++) {
1857 if (v[
ii] < rmin[
ii]) rmin[
ii] = v[
ii];
1858 if (v[ii] > rmax[ii]) rmax[
ii] = v[
ii];
1862 if (checkPrevious) {
1863 rmin[0] = (hist->GetXaxis()->GetXmin() < rmin[0]) ? hist->GetXaxis()->GetXmin()
1865 rmin[1] = (hist->GetYaxis()->GetXmin() < rmin[1]) ? hist->GetYaxis()->GetXmin()
1867 rmin[2] = (hist->GetZaxis()->GetXmin() < rmin[2]) ? hist->GetZaxis()->GetXmin()
1869 rmax[0] = (hist->GetXaxis()->GetXmax() > rmax[0]) ? hist->GetXaxis()->GetXmax()
1871 rmax[1] = (hist->GetYaxis()->GetXmax() > rmax[1]) ? hist->GetYaxis()->GetXmax()
1873 rmax[2] = (hist->GetZaxis()->GetXmax() > rmax[2]) ? hist->GetZaxis()->GetXmax()
1878 rmin[0], rmax[0], rmin[1], rmax[1], rmin[2], rmax[2]);
1880 if (fTreeDrawArgsParser.GetShouldDraw()) {
1886 hist->Draw(fOption);
1891 gPad->Range(-1,-1,1,1);
1894 if (fTreeDrawArgsParser.GetShouldDraw()) {
1895 SetDrawAtt(fPolyMarker3D);
1896 fPolyMarker3D->Draw(fOption);
1900 for (
int i = 0; i < fPolyMarker3D->Size(); i++) {
1902 fPolyMarker3D->GetPoint(i, x,
y,
z);
1903 hist->Fill(x,
y,
z, 1);
1917 PDB(kDraw,1)
Info(
"SlaveBegin",
"Enter tree = %p", tree);
1928 fTreeDrawArgsParser.Parse(fInitialExp, fSelection, fOption);
1929 R__ASSERT(fTreeDrawArgsParser.GetDimension() == 3);
1936 fPoints->
SetName(
"PROOF_SCATTERPLOT");
1937 fOutput->Add(fPoints);
1939 PDB(kDraw,1)
Info(
"Begin",
"selection: %s", fSelection.Data());
1940 PDB(kDraw,1)
Info(
"Begin",
"varexp: %s", fInitialExp.Data());
1949 fPoints->GetVector()->push_back(
Point3D_t(v[2], v[1], v[0]));
1958 PDB(kDraw,1)
Info(
"Terminate",
"Enter");
1964 (fOutput->FindObject(
"PROOF_SCATTERPLOT"));
1966 std::vector<Point3D_t> *
points = fPoints->GetVector();
1968 SetStatus((
Int_t) points->size());
1970 TObject *orig = fTreeDrawArgsParser.GetOriginal();
1971 if ( (hist = dynamic_cast<TH2F*> (orig)) == 0 ) {
1973 fTreeDrawArgsParser.SetOriginal(0);
1974 double binsx, minx, maxx;
1975 double binsy, miny, maxy;
1976 if (fTreeDrawArgsParser.IsSpecified(0))
1977 gEnv->
SetValue(
"Hist.Binning.2D.x", fTreeDrawArgsParser.GetParameter(0));
1978 if (fTreeDrawArgsParser.IsSpecified(3))
1979 gEnv->
SetValue(
"Hist.Binning.2D.y", fTreeDrawArgsParser.GetParameter(3));
1981 minx = fTreeDrawArgsParser.GetIfSpecified(1, 0);
1982 maxx = fTreeDrawArgsParser.GetIfSpecified(2, 0);
1984 miny = fTreeDrawArgsParser.GetIfSpecified(4, 0);
1985 maxy = fTreeDrawArgsParser.GetIfSpecified(5, 0);
1986 hist =
new TH2F(fTreeDrawArgsParser.GetObjectName(), fTreeDrawArgsParser.GetObjectTitle(),
1987 (
Int_t) binsx, minx, maxx, (
Int_t) binsy, miny, maxy);
1990 if (fTreeDrawArgsParser.GetNoParameters() != 6)
2001 rmin[0] = rmax[0] = rmin[1] = rmax[1] = rmin[2] = rmax[2] = 0;
2002 if (points->size() > 0) {
2003 rmin[0] = rmax[0] = (*points)[0].fX;
2004 rmin[1] = rmax[1] = (*points)[0].fY;
2005 rmin[2] = rmax[2] = (*points)[0].fZ;
2007 for (vector<Point3D_t>::const_iterator i = points->begin() + 1; i < points->end(); ++i) {
2008 if (rmax[0] < i->fX) rmax[0] = i->fX;
2009 if (rmax[1] < i->fY) rmax[1] = i->fY;
2010 if (rmax[2] < i->fZ) rmax[2] = i->fZ;
2011 if (rmin[0] > i->fX) rmin[0] = i->fX;
2012 if (rmin[1] > i->fY) rmin[1] = i->fY;
2013 if (rmin[2] > i->fZ) rmin[2] = i->fZ;
2016 if (hist->CanExtendAllAxes() && hist->TestBit(
kCanDelete)) {
2018 rmin[1], rmax[1], rmin[2], rmax[2]);
2030 hist->GetListOfFunctions()->Add(grs,
"P");
2031 for (col=0;col<ncolors;col++) {
2033 gr->SetMarkerColor(col);
2040 for (vector<Point3D_t>::const_iterator i = points->begin();
2041 i < points->end(); ++i) {
2042 col =
Int_t((ncolors-1)*((i->fX-rmin[0])/(rmax[0]-rmin[0])));
2043 if (col < 0) col = 0;
2044 if (col > ncolors-1) col = ncolors-1;
2046 if (gr) gr->SetPoint(gr->GetN(), i->fY, i->fZ);
2049 for (col=0;col<ncolors;col++) {
2050 gr = (TGraph*)grs->
At(col);
2051 if (gr && gr->GetN() <= 0) grs->
Remove(gr);
2053 if (fTreeDrawArgsParser.GetShouldDraw()) {
2055 hist->Draw(fOption.Data());
2058 fOutput->Remove(fPoints);
2072 PDB(kDraw,1)
Info(
"SlaveBegin",
"Enter tree = %p", tree);
2083 fTreeDrawArgsParser.Parse(fInitialExp, fSelection, fOption);
2084 R__ASSERT(fTreeDrawArgsParser.GetDimension() == 4);
2091 fPoints->
SetName(
"PROOF_SCATTERPLOT");
2092 fOutput->Add(fPoints);
2094 PDB(kDraw,1)
Info(
"Begin",
"selection: %s", fSelection.Data());
2095 PDB(kDraw,1)
Info(
"Begin",
"varexp: %s", fInitialExp.Data());
2104 fPoints->GetVector()->push_back(
Point4D_t(v[3], v[2], v[1], v[0]));
2114 PDB(kDraw,1)
Info(
"Terminate",
"Enter");
2120 (fOutput->FindObject(
"PROOF_SCATTERPLOT"));
2122 std::vector<Point4D_t> *
points = fPoints->GetVector();
2124 SetStatus((
Int_t) points->size());
2126 TObject *orig = fTreeDrawArgsParser.GetOriginal();
2127 if ( (hist = dynamic_cast<TH3F*> (orig)) == 0 || fTreeDrawArgsParser.GetNoParameters() != 0) {
2129 fTreeDrawArgsParser.SetOriginal(0);
2130 double binsx, minx, maxx;
2131 double binsy, miny, maxy;
2132 double binsz, minz, maxz;
2133 if (fTreeDrawArgsParser.IsSpecified(0))
2134 gEnv->
SetValue(
"Hist.Binning.3D.x", fTreeDrawArgsParser.GetParameter(0));
2135 if (fTreeDrawArgsParser.IsSpecified(3))
2136 gEnv->
SetValue(
"Hist.Binning.3D.y", fTreeDrawArgsParser.GetParameter(3));
2137 if (fTreeDrawArgsParser.IsSpecified(6))
2138 gEnv->
SetValue(
"Hist.Binning.3D.z", fTreeDrawArgsParser.GetParameter(3));
2140 minx = fTreeDrawArgsParser.GetIfSpecified(1, 0);
2141 maxx = fTreeDrawArgsParser.GetIfSpecified(2, 0);
2143 miny = fTreeDrawArgsParser.GetIfSpecified(4, 0);
2144 maxy = fTreeDrawArgsParser.GetIfSpecified(5, 0);
2146 minz = fTreeDrawArgsParser.GetIfSpecified(7, 0);
2147 maxz = fTreeDrawArgsParser.GetIfSpecified(8, 0);
2148 hist =
new TH3F(fTreeDrawArgsParser.GetObjectName(), fTreeDrawArgsParser.GetObjectTitle(),
2149 (
Int_t) binsx, minx, maxx,
2150 (
Int_t) binsy, miny, maxy,
2151 (
Int_t) binsz, minz, maxz);
2154 if (fTreeDrawArgsParser.GetNoParameters() != 9)
2166 rmin[0] = rmax[0] = rmin[1] = rmax[1] = rmin[2] = rmax[2] = 0;
2167 if (points->size() > 0) {
2168 rmin[0] = rmax[0] = (*points)[0].fX;
2169 rmin[1] = rmax[1] = (*points)[0].fY;
2170 rmin[2] = rmax[2] = (*points)[0].fZ;
2171 rmin[3] = rmax[3] = (*points)[0].fT;
2173 for (vector<Point4D_t>::const_iterator i = points->begin() + 1; i < points->end(); ++i) {
2174 if (rmax[0] < i->fX) rmax[0] = i->fX;
2175 if (rmax[1] < i->fY) rmax[1] = i->fY;
2176 if (rmax[2] < i->fZ) rmax[2] = i->fZ;
2177 if (rmax[3] < i->fT) rmax[3] = i->fT;
2178 if (rmin[0] > i->fX) rmin[0] = i->fX;
2179 if (rmin[1] > i->fY) rmin[1] = i->fY;
2180 if (rmin[2] > i->fZ) rmin[2] = i->fZ;
2181 if (rmin[3] > i->fT) rmin[3] = i->fT;
2184 if (hist->CanExtendAllAxes() && hist->TestBit(
kCanDelete)) {
2186 rmin[1], rmax[1], rmin[2], rmax[2], rmin[3], rmax[3]);
2192 TPolyMarker3D *
pm3d;
2197 hist->GetListOfFunctions()->Add(pms);
2198 for (col=0;col<ncolors;col++) {
2199 pm3d =
new TPolyMarker3D();
2200 pm3d->SetMarkerColor(col);
2203 pms->
AddAt(pm3d,col);
2206 for (vector<Point4D_t>::const_iterator i = points->begin();
2207 i < points->end(); ++i) {
2209 if (col < 0) col = 0;
2210 if (col > ncolors-1) col = ncolors-1;
2212 pm3d->SetPoint(pm3d->GetLastPoint()+1, i->fY, i->fZ, i->fT);
2214 if (fTreeDrawArgsParser.GetShouldDraw()) {
2216 hist->Draw(fOption.Data());
2219 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.
Implement Tree drawing using PROOF.
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.
This class holds the status of an ongoing operation and collects error messages.
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)
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 <name>_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.
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 Color_t GetMarkerColor() const
virtual void DefVar()
Define relevant variables.
virtual void Add(TObject *obj)
virtual Bool_t ProcessSingle(Long64_t, Int_t)
Processes a single variable from an entry.
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 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 void Begin(TTree *t)
See TProofDraw::Begin().