63 if (
TCanvas* c = dynamic_cast<TCanvas *> (obj)) {
76 TString &selector, TString &objname)
81 info.
Parse(var, sel, opt);
97 new TCanvas(name,
"FeedBack", 800,30,700,500);
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++)
312 TString
name = objname;
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);
357 am->SetMarkerSize((
Size_t)msz);
361 am->SetMarkerStyle((
Style_t)att);
362 PDB(kDraw,2)
Info(
"SetDrawAtt",
"marker: c:%d, s:%d, sz:%f",
363 am->GetMarkerColor(), am->GetMarkerStyle(), am->GetMarkerSize());
374 af->SetFillStyle((
Style_t)att);
375 PDB(kDraw,2)
Info(
"SetDrawAtt",
"area: c:%d, s:%d",
376 af->GetFillColor(), af->GetFillStyle());
386 if (!(fStatus = dynamic_cast<TStatus*>(fOutput->FindObject(
"PROOF_Status"))))
392 m.Form(
"%s::%s: %s", IsA()->
GetName(), sub, mesg);
394 m.Form(
"TProofDraw::%s: %s", sub, mesg);
410 while(names.Tokenize(
n, from,
",")) {
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())) {
745 fHistogram->SetLineColor(tree->GetLineColor());
746 fHistogram->SetLineWidth(tree->GetLineWidth());
747 fHistogram->SetLineStyle(tree->GetLineStyle());
748 fHistogram->SetFillColor(tree->GetFillColor());
749 fHistogram->SetFillStyle(tree->GetFillStyle());
750 fHistogram->SetMarkerStyle(tree->GetMarkerStyle());
751 fHistogram->SetMarkerColor(tree->GetMarkerColor());
752 fHistogram->SetMarkerSize(tree->GetMarkerSize());
765 PDB(kDraw,1)
Info(
"SlaveBegin",
"Enter tree = %p", tree);
779 fTreeDrawArgsParser.Parse(fInitialExp, fSelection, fOption);
780 fDimension = fTreeDrawArgsParser.GetDimension();
781 TString
exp = fTreeDrawArgsParser.GetExp();
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());
914 Error(
"Init",
"Impossible - fElist cannot be 0");
915 fEventLists->Add(fElist);
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) {
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);
1229 TString
exp = fTreeDrawArgsParser.GetExp();
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);
1467 TString
exp = fTreeDrawArgsParser.GetExp();
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);
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);
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");
1785 TIter next(fOutput);
1787 if (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++) {
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;
2049 for (col=0;col<ncolors;col++) {
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]);
2197 hist->GetListOfFunctions()->Add(pms);
2198 for (col=0;col<ncolors;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;
2214 if (fTreeDrawArgsParser.GetShouldDraw()) {
2216 hist->Draw(fOption.Data());
2219 fOutput->Remove(fPoints);
virtual void Begin(TTree *)
Executed by the client before processing.
std::string GetName(const std::string &scope_name)
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 Long64_t GetN() const
virtual void SlaveBegin(TTree *)
Executed by each slave before processing.
virtual void Print(Option_t *option="") const
Standard print function.
virtual void ClearFormula()
Delete internal buffers.
tomato 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
TObject * GetParameter(const char *par) const
Get specified parameter.
virtual void Terminate()
See TProofDraw::Terminate().
virtual void SetName(const char *name)
Set the name of the TNamed.
virtual void SetOwner(Bool_t enable=kTRUE)
Set whether this collection is the owner (enable==true) of its content.
THist< 1, float, THistStatContent, THistStatUncertainty > TH1F
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.
tomato 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 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 SlaveBegin(TTree *)
See TProofDraw::SlaveBegin().
TObject * At(Int_t idx) const
virtual Int_t FindGoodLimits(TH1 *h, Double_t xmin, Double_t xmax)
compute the best axis limits for the X axis.
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.
virtual TObject * FindObject(const char *name) const
Find an object in this list using its name.
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 void SlaveBegin(TTree *)
See TProofDraw::SlaveBegin().
NOTE: Must always be 0 !!!
TString GetObjectName() const
Fill Area Attributes class.
virtual void Reset(Option_t *option="")
Reset contents of a Profile histogram.
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.
virtual TObject * FindObject(const char *name) const
Find an object in this collection using its name.
virtual void Terminate()
See TProofDraw::Terminate().
virtual Int_t GetN() const
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)
Set the marker color.
TString GetProofSelectorName() const
Returns appropriate TSelector class name for proof for the object that is to be drawn assumes that Pa...
virtual Bool_t Process(Long64_t)
Executed for each entry.
void Info(const char *location, const char *msgfmt,...)
Int_t DrawCanvas(TObject *obj)
virtual void Begin(TTree *t)
See TProofDraw::Begin().
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.
static Int_t GetMaxDimension()
return fgMaxDimension (cannot be inline)
virtual void SetLineColor(Color_t lcolor)
Set the line color.
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)
Set the fill area color.
tomato 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.
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.
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().
static Int_t GetDefaultBufferSize()
Static function return the default buffer size for automatic histograms the parameter fgBufferSize ma...
Int_t GetNumberOfColors() const
Return number of colors in the color palette.
virtual void AddAt(TObject *obj, Int_t idx)
Add object at position ids.
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.
TObject * UncheckedAt(Int_t i) const
virtual void SlaveBegin(TTree *)
See TProofDraw::SlaveBegin().
virtual void Reset(Option_t *option="")
Reset contents of a Profile2D histogram.
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.
THist< 3, float, THistStatContent, THistStatUncertainty > TH3F
Mother of all ROOT objects.
you should not use this method at all Int_t Int_t z
virtual void SlaveTerminate()
See TProofDraw::SlaveTerminate().
virtual const char * GetTitle() const
Returns title of object.
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 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.
TObject * Clone(const char *newname=0) const
Make a complete copy of the underlying object.
void FeedBackCanvas(const char *name, Bool_t create)
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.
virtual void Reset(Option_t *option="")
Reset this histogram: contents, errors, etc.
void DefVar2D()
Define variables for 2D histogram.
virtual const char * GetName() const
Returns name of object.
virtual void SetTitle(const char *title="")
Set the title of the TNamed.
THist< 2, float, THistStatContent, THistStatUncertainty > TH2F
A List of entry numbers in a TTree or TChain.
virtual Int_t GetLastPoint() const
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 const char * GetTitle() const
Returns title of object.
virtual void Begin(TTree *t)
See TProofDraw::Begin().