26#include "RConfigure.h" 
  109   Double_t res = par[0] / 
xx[0] + par[1] + par[2] * 
xx[0];
 
 
  118   Double_t sat = par[0] / par[1] * (
xx[0] * par[1] / par[2] - 1.);
 
  119   if (
xx[0] < par[2] / par[1]) 
sat = 0.;
 
 
  136   if (
xx[0] > par[3]) 
rio = par[0];
 
 
  185            : fUnlinkOutfile(
kFALSE), fProofDS(0), fOutFile(0),
 
  186              fNtries(4), fHistType(0), fNHist(16), fReadType(0),
 
  187              fDataSet(
"BenchDataSet"), fNFilesWrk(2), fReleaseCache(
kTRUE),
 
  189              fRunCPU(0), fRunDS(0), fDS(0), fDebug(
kFALSE), fDescription(0)
 
  193      Error(
"TProofBench", 
"specifying a PROOF master url is mandatory - cannot continue");
 
  197      Error(
"TProofBench", 
"could not open a valid PROOF session - cannot continue");
 
  206         Error(
"TProofBench", 
"dynamic mode: you must specify the max number of workers");
 
  214         Error(
"TProofBench", 
"dynamic mode: wrong specification of the max number of" 
  215                              " workers ('%s')", 
n->GetTitle());
 
  222      Error(
"TProofBench", 
"wrong max number of workers ('%d')", 
fNumWrkMax);
 
  240      Warning(
"TProofBench", 
"problems opening '%s' - ignoring: use SetOutFile to try" 
  241                                   " again or with another file", 
outfile);
 
 
  268      const char *
mode = 0;
 
  275            Warning(
"OpenOutFile", 
"problems opening '%s' - ignoring: use SetOutFile to try" 
 
  311                        dat.GetDate(), 
dat.GetHour(), 
dat.GetMinute());
 
  317         Warning(
"SetOutFile", 
"problems opening '%s' - ignoring: use SetOutFile to try" 
  318                               " again or with another file", 
outfile);
 
 
  431   const char *
dirn = (
isX) ? 
"RunCPUx" : 
"RunCPU";
 
  434      ::Error(
"DrawCPU", 
"could not find directory '%s' ...", 
dirn);
 
  442   const char *
lx = (
isX) ? 
"_x" : 
"";
 
  443   const char *
ln = (
isNorm) ? 
"Norm" : 
"Prof";
 
  445   hmaxn.Form(
"%s%s_CPU_PS_MaxEvts", 
ln, 
lx);
 
  459         ::Error(
"DrawCPU", 
"could not find '%s' ...", 
hprofn.Data());
 
  473         ::Warning(
"DrawCPU", 
"could not find '%s': feature added in 5.34/11", 
hmaxn.Data());
 
  490   cpu->Range(-3.106332,0.7490716,28.1362,1.249867);
 
  496   hgr->SetDirectory(0);
 
  498   hgr->GetXaxis()->SetTitle(
pf->GetXaxis()->GetTitle());
 
  499   hgr->GetXaxis()->CenterTitle(
true);
 
  500   hgr->GetXaxis()->SetLabelSize(0.05);
 
  501   hgr->GetXaxis()->SetTitleSize(0.06);
 
  502   hgr->GetXaxis()->SetTitleOffset(0.62);
 
  503   hgr->GetYaxis()->SetTitleSize(0.08);
 
  504   hgr->GetYaxis()->SetTitleOffset(0.52);
 
  505   hgr->GetYaxis()->SetTitle(
"Rate (events/s)");
 
  517      grav->SetFillColor(1);
 
  518      grav->SetLineColor(13);
 
  519      grav->SetMarkerColor(4);
 
  520      grav->SetMarkerStyle(21);
 
  521      grav->SetMarkerSize(1.2);
 
  524      if (verbose) 
grav->Print();
 
  526      leg->AddEntry(
grav, 
"Average", 
"P");
 
  530      grmx->SetFillColor(1);
 
  531      grmx->SetLineColor(13);
 
  532      grmx->SetMarkerColor(2);
 
  533      grmx->SetMarkerStyle(29);
 
  534      grmx->SetMarkerSize(1.8);
 
  537      if (verbose) 
grmx->Print();
 
  539         grmx->Draw(
"lpSAME");
 
  543      leg->AddEntry(
grmx, 
"Maximum", 
"P");
 
  552      if (nbins > 5) 
xmi = 1.5;
 
  559            fgFp1n->SetParameter(0, 
pf->GetBinContent(1));
 
  560            fgFp1n->SetParameter(1, 
pf->GetBinContent(nbins-1));
 
  562            if (verbose) 
fgFp1n->Print();
 
  565            fgFp1->SetParameter(0, 0.);
 
  566            fgFp1->SetParameter(1, 
pf->GetBinContent(1));
 
  568            if (verbose) 
fgFp1->Print();
 
  571      } 
else if (
dofit == 2) {
 
  573            fgFp2n->SetParameter(0, 
pf->GetBinContent(1));
 
  574            fgFp2n->SetParameter(1, 
pf->GetBinContent(nbins-1));
 
  575            fgFp2n->SetParameter(2, 0.);
 
  577            if (verbose) 
fgFp2n->Print();
 
  580            fgFp2->SetParameter(0, 0.);
 
  581            fgFp2->SetParameter(1, 
pf->GetBinContent(1));
 
  582            fgFp2->SetParameter(2, 0.);
 
  584            if (verbose) 
fgFp2->Print();
 
  592            fgFp3n->SetParameter(0, 0.);
 
  593            fgFp3n->SetParameter(1, 
pf->GetBinContent(1));
 
  594            fgFp3n->SetParameter(2, 
pf->GetBinContent(nbins-1));
 
  596            if (verbose) 
fgFp3n->Print();
 
  599            fgFp3->SetParameter(0, 0.);
 
  600            fgFp3->SetParameter(1, 0.);
 
  601            fgFp3->SetParameter(2, 
pf->GetBinContent(1));
 
  603            if (verbose) 
fgFp3->Print();
 
  610         printf(
"* ************************************************************ *\n");
 
  613         printf(
"* Performance measurement from scalability plot:               *\n");
 
  615         printf(
"*    rate max:         %.3f\tmegaRNGPS (@ %d workers)\n", 
ymx/1000000, 
kmx);
 
  617         printf(
"*    per-worker rate:  %.3f\tmegaRNGPS \n", 
normrate/1000000);
 
  618         printf(
"* ************************************************************ *\n");
 
  620         printf(
"* ************************************************************ *\n");
 
  624         printf(
"* Per-worker rate from normalized plot:  %.3f\tmegaRNGPS\n", 
normrate/1000000);
 
  625         printf(
"* ************************************************************ *\n");
 
 
  644      ::Error(
"TProofBench::GetGraph", 
"directory or name not defined!");
 
  651   while ((key = (
TKey *) 
nxk())) {
 
  659      ::Error(
"TProofBench::GetGraph", 
"TProfile for '%s' not found in directory '%s'", 
pfn, 
d->GetName());
 
  663   nb = 
pf->GetNbinsX();
 
  667   ymi = 
pf->GetBinContent(1);
 
  669   xmi = 
pf->GetBinCenter(1) - 
pf->GetBinWidth(1)/2. ;
 
  670   xmx = 
pf->GetBinCenter(
nb) + 
pf->GetBinWidth(
nb)/2. ;
 
  672   for (
Int_t k = 1;k <= 
nb; k++) {
 
  673      xx = 
pf->GetBinCenter(k);
 
  674      ex = 
pf->GetBinWidth(k) * .001;
 
  675      yy = 
pf->GetBinContent(k);
 
  676      ey = 
pf->GetBinError(k);
 
 
  700      fgFp1->SetParNames(
"offset", 
"slope");
 
  705      fgFp1n->SetParNames(
"decay", 
"norm rate");
 
  710      fgFp2->SetParNames(
"offset", 
"slope", 
"deviation");
 
  715      fgFp2n->SetParNames(
"decay", 
"norm rate", 
"deviation");
 
  720      fgFp3->SetParNames(
"offset", 
"slope real", 
"slope hyper");
 
  725      fgFp3n->SetParNames(
"offset", 
"slope real", 
"slope hyper");
 
  730      fgFio->SetParNames(
"R1", 
"RIO", 
"TotIO");
 
  734      fgFioV->SetParNames(
"rio", 
"b1", 
"b2", 
"nc", 
"ri");
 
 
  767      ::Error(
"TProofBench::GetPerfSpecs", 
"path '%s' could not be stat'ed - abort", pp.Data());
 
  775         ::Error(
"TProofBench::GetPerfSpecs", 
"directory path '%s' could nto be open - abort", pp.Data());
 
  781         fn.Form(
"%s/%s", pp.Data(), 
ent);
 
  784         fn += 
"?filetype=raw";
 
  788         if (!
f->ReadBuffer(
rr, 4)) {
 
  791               fn.ReplaceAll(
"?filetype=raw", 
"");
 
  793                  TString desc(
"<no decription>");
 
  796                  if (
f->GetListOfKeys()->FindObject(
"RunCPU"))
 
  798                  if (
f->GetListOfKeys()->FindObject(
"RunCPUx"))
 
  801                  ::Warning(
"TProofBench::GetPerfSpecs", 
"problems opening '%s'", 
fn.Data());
 
  809      ::Error(
"TProofBench::GetPerfSpecs",
 
  810              "path '%s' not a regular file nor a directory - abort", pp.Data());
 
  819         fn += 
"?filetype=raw";
 
  823            if (!(
f->ReadBuffer(
rr, 4))) {
 
  825                  fn.ReplaceAll(
"?filetype=raw", 
"");
 
  827                     if (
f->GetListOfKeys()->FindObject(
"RunCPU")) 
oo = 
"std:";
 
  828                     if (
f->GetListOfKeys()->FindObject(
"RunCPUx")) 
oo = 
"stdx:";
 
  833                        emsg.Form(
"path '%s' does not contain the relevant dirs - abort", 
fn.Data());
 
  836                     emsg.Form(
"path '%s' cannot be open - abort", 
fn.Data());
 
  839                  emsg.Form(
"'%s' is not a ROOT file - abort", 
fn.Data());
 
  842               emsg.Form(
"could not read first 4 bytes from '%s' - abort", 
fn.Data());
 
  846            emsg.Form(
"path '%s' cannot be open in raw mode - abort", 
fn.Data());
 
  849         emsg.Form(
"path '%s' cannot be stated - abort", 
fn.Data());
 
  852         ::Error(
"TProofBench::GetPerfSpecs", 
"%s", 
emsg.Data());
 
  859   if (
filels.GetSize() == 1) {
 
  863   } 
else if (
filels.GetSize() > 1) {
 
  866      Printf(
"Several possible files found:");
 
  872      if (
a.IsNull() || 
a[0] == 
'\n') 
a.Form(
"%d", idx-1);
 
  878         ::Error(
"TProofBench::GetPerfSpecs", 
"chosen index '%d' does not exist - abort", idx);
 
  883         ::Error(
"TProofBench::GetPerfSpecs",
 
  884                 "path '%s' is a directory but no ROOT file found in it - abort", pp.Data());
 
 
  980                              const char *opt, 
const char *
type, 
Bool_t verbose,
 
 1002   const char *
dirn = (
isX) ? 
"RunDataReadx" : 
"RunDataRead";
 
 1005      ::Error(
"DrawCPU", 
"could not find directory '%s' ...", 
dirn);
 
 1013   const char *
lx = (
isX) ? 
"_x" : 
"";
 
 1014   const char *
ln = (
isNorm) ? 
"Norm" : 
"Prof";
 
 1017      hprofn.Form(
"%s%s_DataRead_QR_Evts", 
ln, 
lx);
 
 1018      hmaxn.Form(
"%s%s_DataRead_PS_MaxEvts", 
ln, 
lx);
 
 1022      hmaxn.Form(
"%s%s_DataRead_PS_MaxIO", 
ln, 
lx);
 
 1037         ::Error(
"DrawCPU", 
"could not find '%s' ...", 
hprofn.Data());
 
 1052         ::Warning(
"DrawCPU", 
"could not find '%s': feature added in 5.34/11", 
hmaxn.Data());
 
 1069   cpu->Range(-3.106332,0.7490716,28.1362,1.249867);
 
 1075   hgr->SetDirectory(0);
 
 1077   hgr->GetXaxis()->SetTitle(
pf->GetXaxis()->GetTitle());
 
 1078   hgr->GetXaxis()->CenterTitle(
true);
 
 1079   hgr->GetXaxis()->SetLabelSize(0.05);
 
 1080   hgr->GetXaxis()->SetTitleSize(0.06);
 
 1081   hgr->GetXaxis()->SetTitleOffset(0.62);
 
 1082   hgr->GetYaxis()->SetLabelSize(0.06);
 
 1083   hgr->GetYaxis()->SetTitleSize(0.08);
 
 1084   hgr->GetYaxis()->SetTitleOffset(0.52);
 
 1086      hgr->GetYaxis()->SetTitle(
"Rate (MB/s)");
 
 1088      hgr->GetYaxis()->SetTitle(
"Rate (events/s)");
 
 1100      grav->SetFillColor(1);
 
 1101      grav->SetLineColor(13);
 
 1102      grav->SetMarkerColor(4);
 
 1103      grav->SetMarkerStyle(21);
 
 1104      grav->SetMarkerSize(1.2);
 
 1107      if (verbose) 
grav->Print();
 
 1109      leg->AddEntry(
grav, 
"Average", 
"P");
 
 1113      grmx->SetFillColor(1);
 
 1114      grmx->SetLineColor(13);
 
 1115      grmx->SetMarkerColor(2);
 
 1116      grmx->SetMarkerStyle(29);
 
 1117      grmx->SetMarkerSize(1.8);
 
 1120      if (verbose) 
grmx->Print();
 
 1122         grmx->Draw(
"lpSAME");
 
 1126      leg->AddEntry(
grmx, 
"Maximum", 
"P");
 
 1136      if (nbins > 5) 
xmi = 1.5;
 
 1141         fgFio->SetParameter(0, 
pf->GetBinContent(1));
 
 1142         fgFio->SetParameter(1, 
pf->GetBinContent(nbins-1));
 
 1143         fgFio->SetParameter(2, 
pf->GetBinContent(nbins-1));
 
 1145         if (verbose) 
fgFio->Print();
 
 1147      } 
else if (
dofit > 1) {
 
 1151         fgFioV->SetParameter(0, 20.);
 
 1152         fgFioV->SetParameter(1, 
pf->GetBinContent(1));
 
 1153         fgFioV->SetParameter(2, 
pf->GetBinContent(1));
 
 1154         fgFioV->SetParameter(3, 4.);
 
 1155         fgFioV->SetParameter(4, 1000.);
 
 1158         if (verbose) 
fgFio->Print();
 
 1165      printf(
"* ************************************************************ *\n");
 
 1168      printf(
"* Performance measurement from scalability plot:               *\n");
 
 1171         printf(
"*    rate max:         %.3f\tMB/s (@ %d workers)\n", 
ymx, 
kmx);
 
 1175         printf(
"*    rate max:         %.3f\tevts/s (@ %d workers)\n", 
ymx, 
kmx);
 
 1177      printf(
"* ************************************************************ *\n");
 
 
 1191                                 const char *opt, 
Bool_t verbose)
 
 1196      ::Error(
"DrawEfficiency", 
"could not open file '%s' ...", 
outfile);
 
 1207   const char *
dirs[4] = { 
"RunCPU", 
"RunCPUx", 
"RunDataRead", 
"RunDataReadx"};
 
 1208   const char *
labs[4] = { 
"CPU", 
"CPU", 
"DataRead", 
"DataRead"};
 
 1212   } 
else if (
oo == 
"cpux") {
 
 1215   } 
else if (
oo.BeginsWith(
"data")) {
 
 1216      if (
oo.EndsWith(
"x")) {
 
 1224   const char *
dirn = 0;
 
 1234      ::Error(
"DrawEfficiency", 
"could not find directory ...");
 
 1242   hprof.Form(
"Prof_%s_CPU_eff", 
ln.Data());
 
 1251      ::Error(
"DrawEfficiency", 
"could not find '%s' ...", 
hprof.Data());
 
 1259   cpu->Range(-3.106332,0.7490716,28.1362,1.249867);
 
 1262   hgr->SetMaximum(1.2);
 
 1264   hgr->SetDirectory(0);
 
 1266   hgr->GetXaxis()->SetTitle(
pf->GetXaxis()->GetTitle());
 
 1267   hgr->GetXaxis()->CenterTitle(
true);
 
 1268   hgr->GetXaxis()->SetLabelSize(0.05);
 
 1269   hgr->GetXaxis()->SetTitleSize(0.06);
 
 1270   hgr->GetXaxis()->SetTitleOffset(0.62);
 
 1271   hgr->GetYaxis()->SetLabelSize(0.06);
 
 1272   hgr->GetYaxis()->SetTitleSize(0.08);
 
 1273   hgr->GetYaxis()->SetTitleOffset(0.52);
 
 1274   hgr->GetYaxis()->SetTitle(
"CPU effectiveness");
 
 1287   printf(
"* ************************************************************ *\n");
 
 1290   printf(
"* CPU effectiveness measurement:                               *\n");
 
 1292   printf(
"*    effectiveness max:     %.3f (@ %d workers)\n", 
ymx, 
kmx);
 
 1294   printf(
"* ************************************************************ *\n");
 
 
 1355         Info(
"MakeDataSet", 
"uploading '%s' ...", par.
Data());
 
 1357            Error(
"MakeDataSet", 
"problems uploading '%s' - cannot continue", par.
Data());
 
 1367            Error(
"MakeDataSet", 
"you should load the class '%s' before running the benchmark", 
fDataGenSel.
Data());
 
 1375         Info(
"MakeDataSet", 
"Uploading '%s' ...", par.
Data());
 
 1377            Error(
"MakeDataSet", 
"problems uploading '%s' - cannot continue", par.
Data());
 
 1380         Info(
"MakeDataSet", 
"Enabling '%s' ...", par.
Data());
 
 1382            Error(
"MakeDataSet", 
"problems enabling '%s' - cannot continue", par.
Data());
 
 1398      if (!
strcmp(
ur.GetProtocol(), 
"file") &&
 
 1418   while ((obj = 
nxnd()) != 0) {
 
 1424            fn.Form(
"%s-%s-%d.root", 
fnr.Data(), 
wi->GetName(), 
kf++);
 
 1433   filesmap->SetName(
"PROOF_FilesToProcess");
 
 1474      while ((obj = 
nxout())) {
 
 1487      if (
fc->GetNFiles() > 0) {
 
 1490            Warning(
"MakeDataSet", 
"problems registering '%s'", 
dset);
 
 1492         Warning(
"MakeDataSet", 
"dataset '%s' is empty!", 
dset);
 
 1495      Warning(
"MakeDataSet", 
"PROOF output list is empty!");
 
 
 1523      Error(
"CopyDataSet", 
"no PROOF found - cannot continue");
 
 1527      Error(
"CopyDataSet", 
"dataset '%s' does not exist", 
dset);
 
 1532         Printf(
"Target dataset '%s' exists already:" 
 1533                                          " do you want to remove it first?", 
dsetdst);
 
 1536         if (
a[0] == 
'Y' || 
a[0] == 
'y' || 
a[0] == 
'\n') {
 
 1537            Info(
"CopyDataSet", 
"removing dataset '%s' ...", 
dsetdst);
 
 1543         Error(
"CopyDataSet", 
"destination dataset '%s' does already exist: remove it first", 
dsetdst);
 
 1551      Error(
"CopyDataSet", 
"problems retrieving TFileCollection for dataset '%s'", 
dset);
 
 1560      Info(
"CopyDataSet", 
"adding info for file '%s'", 
fn.Data());
 
 1568      Error(
"CopyDataSet", 
"problems copying files of dataset '%s' to dest dir '%s'", 
dset, 
destdir);
 
 1577      Error(
"CopyDataSet", 
"problems registering and verifying '%s'", 
dsetdst);
 
 
 1593   if (
pds && !
pds->IsValid()) {
 
 1594      Error(
"SetProofDS", 
"trying to set an invalid PROOF instance");
 
 
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
 
Option_t Option_t TPoint TPoint const char mode
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t type
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char mx
 
const char *const kPROOF_BenchDataSelPar
 
const char *const kPROOF_BenchParDir
 
const char *const kPROOF_BenchSelDataGenDef
 
Double_t funp2(Double_t *xx, Double_t *par)
Simple polynomial 2nd degree.
 
Double_t funcpuv(Double_t *xx, Double_t *par)
Function with varying Rcpu.
 
Double_t funcpuvn(Double_t *xx, Double_t *par)
Function with varying Rcpu normalized.
 
Double_t funp1n(Double_t *xx, Double_t *par)
Normalized 1st degree.
 
Double_t funio(Double_t *xx, Double_t *par)
I/O saturated rate function.
 
Double_t funiov(Double_t *xx, Double_t *par)
I/O saturated rate function with varying Rcpu.
 
Double_t funp1(Double_t *xx, Double_t *par)
Simple polynomial 1st degree.
 
Double_t funp2n(Double_t *xx, Double_t *par)
Normalized 2nd degree.
 
void Printf(const char *fmt,...)
Formats a string in a circular formatting buffer and prints the string.
 
R__EXTERN TStyle * gStyle
 
Bool_t R_ISREG(Int_t mode)
 
Bool_t R_ISDIR(Int_t mode)
 
R__EXTERN TSystem * gSystem
 
virtual void SetFillColor(Color_t fcolor)
Set the fill area color.
 
virtual void SetLineColor(Color_t lcolor)
Set the line color.
 
virtual void SetMarkerColor(Color_t mcolor=1)
Set the marker color.
 
virtual void SetMarkerStyle(Style_t mstyle=1)
Set the marker style.
 
virtual void SetMarkerSize(Size_t msize=1)
Set the marker size.
 
static TClass * GetClass(const char *name, Bool_t load=kTRUE, Bool_t silent=kFALSE)
Static method returning pointer to TClass of the specified class name.
 
void Print(Option_t *option="") const override
Default print for collections, calls Print(option, 1).
 
This class stores the date and time with a precision of one second in an unsigned 32 bit word (950130...
 
Bool_t cd() override
Change current directory to "this" directory.
 
Describe directory structure in memory.
 
Class that contains a list of TFileInfo's and accumulated meta data information about its entries.
 
Class describing a generic file including meta information.
 
A ROOT file is an on-disk file, usually with extension .root, that stores objects in a file-system-li...
 
static TFile * Open(const char *name, Option_t *option="", const char *ftitle="", Int_t compress=ROOT::RCompressionSetting::EDefaults::kUseCompiledDefault, Int_t netopt=0)
Create / open a file.
 
void Close(Option_t *option="") override
Close a file.
 
A TGraphErrors is a TGraph with error bars.
 
void Print(Option_t *chopt="") const override
Print graph and errors values.
 
virtual void SetPointError(Double_t ex, Double_t ey)
Set ex and ey values for point pointed by the mouse.
 
virtual void SetPoint(Int_t i, Double_t x, Double_t y)
Set x and y values for point number i.
 
virtual TFitResultPtr Fit(const char *formula, Option_t *option="", Option_t *goption="", Axis_t xmin=0, Axis_t xmax=0)
Fit this graph with function with name fname.
 
void SetName(const char *name="") override
Set graph name.
 
void Draw(Option_t *chopt="") override
Draw this graph with its current attributes.
 
virtual void SetHistogram(TH1F *h)
 
1-D histogram with a float per channel (see TH1 documentation)
 
THashList implements a hybrid collection class consisting of a hash table and a list to store TObject...
 
Book space in a file, create I/O buffers, to fill them, (un)compress them.
 
This class displays a legend box (TPaveText) containing several legend entries.
 
TObject * Remove(TObject *obj) override
Remove object from the list.
 
TMap implements an associative array of (key,value) pairs using a THashTable for efficient retrieval ...
 
The TNamed class is the base class for all named ROOT classes.
 
const char * GetName() const override
Returns name of object.
 
const char * GetTitle() const override
Returns title of object.
 
Collectable string class.
 
Mother of all ROOT objects.
 
virtual const char * GetName() const
Returns name of object.
 
virtual void Warning(const char *method, const char *msgfmt,...) const
Issue warning message.
 
R__ALWAYS_INLINE Bool_t IsZombie() const
 
virtual Int_t Write(const char *name=nullptr, Int_t option=0, Int_t bufsize=0)
Write this object to the current directory.
 
void SetBit(UInt_t f, Bool_t set)
Set or unset the user status bits as specified in f.
 
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
 
@ kInvalidObject
if object ctor succeeded but object should not be used
 
Handle operations on datasets used by ProofBench.
 
Int_t CopyFiles(const char *dset, const char *destdir)
Copy the files of dataset 'dset' to another directory Return 0 on success, -1 on error.
 
Int_t RemoveFiles(const char *dset)
Physically remove the dataset 'dset', i.e.
 
Int_t ReleaseCache(const char *dset)
Release memory cache for dataset 'dset' Return 0 on success, -1 on error.
 
CPU-intensive PROOF benchmark test generates events and fill 1, 2, or 3-D histograms.
 
void Run(Long64_t nevents, Int_t start, Int_t stop, Int_t step, Int_t ntries, Int_t debug, Int_t draw) override
Run benchmark Input parameters nevents: Number of events to run per file.
 
I/O-intensive PROOF benchmark test reads in event files distributed on the cluster.
 
void SetReleaseCache(Bool_t on=kTRUE)
 
void Run(Long64_t, Int_t, Int_t, Int_t, Int_t, Int_t, Int_t) override
 
virtual void SetParList(const char *pars)
 
virtual void SetSelName(const char *sel)
 
virtual void SetSelOption(const char *opt)
 
Steering class for PROOF benchmarks.
 
static void AssertFittingFun(Double_t mi, Double_t mx)
Make sure that the fitting functions are defined.
 
void CloseOutFile()
Close output file.
 
Int_t CopyDataSet(const char *dset, const char *dsetdst, const char *destdir)
Copy the files of dataset 'dset' to 'destdir' and create a new dataset named 'dsetdst' decribing them...
 
static void DrawCPU(const char *outfile, const char *opt="std:", Bool_t verbose=kFALSE, Int_t dofit=0, Int_t n0=-1, Int_t n1=-1)
Draw the CPU speedup plot.
 
Int_t RunCPUx(Long64_t nevents=-1, Int_t start=-1, Int_t stop=-1)
Perform the CPU run scanning over the number of workers per node Return 0 on success,...
 
Int_t SetOutFile(const char *outfile, Bool_t verbose=kTRUE)
Set the output file Return 0 on success, -1 on error.
 
Int_t MakeDataSet(const char *dset=0, Long64_t nevt=-1, const char *fnroot="event", Bool_t regenerate=kFALSE)
Create the largest dataset for the run.
 
Int_t RunDataSetx(const char *dset="BenchDataSet", Int_t start=1, Int_t stop=-1)
Perform a test using dataset 'dset' scanning over the number of workers per node.
 
Int_t RunDataSet(const char *dset="BenchDataSet", Int_t start=1, Int_t stop=-1, Int_t step=1)
Perform a test using dataset 'dset' Return 0 on success, -1 on error Open the file for the results.
 
static void DrawDataSet(const char *outfile, const char *opt="std:", const char *type="mbs", Bool_t verbose=kFALSE, Int_t dofit=0, Int_t n0=-1, Int_t n1=-1)
Draw the CPU speedup plot.
 
TProofBenchRunCPU * fRunCPU
 
static void GetPerfSpecs(const char *path=".", Int_t degfit=1)
Get performance specs.
 
static void DrawEfficiency(const char *outfile, const char *opt="", Bool_t verbose=kFALSE)
Draw the efficiency plot.
 
void SetProofDS(TProof *p)
Set the PROOF instance to be used for dataset operations, like releasing cache ......
 
Int_t RemoveDataSet(const char *dset)
Physically remove the dataset 'dset', i.e.
 
Int_t OpenOutFile(Bool_t wrt=kFALSE, Bool_t verbose=kTRUE)
Set the otuput file Return 0 on success, -1 on error.
 
TProofBenchRunDataRead * fRunDS
 
Int_t RunCPU(Long64_t nevents=-1, Int_t start=-1, Int_t stop=-1, Int_t step=-1)
Perform the CPU run Return 0 on success, -1 on error.
 
Int_t ReleaseCache(const char *dset)
Release memory cache for dataset 'dset' Return 0 on success, -1 on error.
 
TProofBench(const char *url, const char *outfile="<default>", const char *proofopt=0)
Constructor: check PROOF and load selectors PAR.
 
~TProofBench() override
Destructor.
 
static TGraphErrors * GetGraph(TDirectory *d, const char *pfn, Int_t &nb, Double_t &xmi, Double_t &xmx, Double_t &ymi, Double_t &ymx, Int_t &kmx, TProfile *&pf)
Get from TDirectory 'd' the TProfile named 'pfn' and create the graph.
 
PROOF worker node information
 
This class controls a Parallel ROOT Facility, PROOF, cluster.
 
Int_t UploadPackage(const char *par, EUploadPackageOpt opt=kUntar, TList *workers=0)
Upload a PROOF archive (PAR file).
 
void Close(Option_t *option="")
Close all open slave servers.
 
TObject * GetParameter(const char *par) const
Get specified parameter.
 
static TProof * Open(const char *url=0, const char *conffile=0, const char *confdir=0, Int_t loglevel=0)
Start a PROOF session on a specific cluster.
 
virtual Bool_t RegisterDataSet(const char *name, TFileCollection *dataset, const char *optStr="")
Register the 'dataSet' on the cluster under the current user, group and the given 'dataSetName'.
 
void DeleteParameters(const char *wildcard)
Delete the input list parameters specified by a wildcard (e.g.
 
void SetParameter(const char *par, const char *value)
Set input list parameter.
 
Int_t GetParallel() const
Returns number of slaves active in parallel mode.
 
TList * GetOutputList()
Get list with all object created during processing (see Process()).
 
virtual TFileCollection * GetDataSet(const char *dataset, const char *optStr="")
Get a list of TFileInfo objects describing the files of the specified dataset.
 
static const TList * GetEnvVars()
Get environemnt variables.
 
virtual Long64_t Process(TDSet *dset, const char *selector, Option_t *option="", Long64_t nentries=-1, Long64_t firstentry=0)
Process a data set (TDSet) using the specified selector (.C) file or Tselector object Entry- or event...
 
virtual Bool_t ExistsDataSet(const char *dataset)
Returns kTRUE if 'dataset' exists, kFALSE otherwise.
 
void AddInput(TObject *obj)
Add objects that might be needed during the processing of the selector (see Process()).
 
TList * GetInputList()
Get input list.
 
Bool_t UseDynamicStartup() const
 
const char * GetMaster() const
 
Int_t EnablePackage(const char *package, Bool_t notOnClient=kFALSE, TList *workers=0)
Enable specified package.
 
static const TString & GetEtcDir()
Get the sysconfig directory in the installation. Static utility function.
 
A sorted doubly linked list.
 
const char * Data() const
 
TObjArray * Tokenize(const TString &delim) const
This function is used to isolate sequential tokens in a TString.
 
Bool_t BeginsWith(const char *s, ECaseCompare cmp=kExact) const
 
static TString Format(const char *fmt,...)
Static method which formats a string using a printf style format descriptor and return a TString.
 
void Form(const char *fmt,...)
Formats a string using a printf style format descriptor.
 
void SetOptTitle(Int_t tit=1)
 
virtual void FreeDirectory(void *dirp)
Free a directory.
 
virtual void * OpenDirectory(const char *name)
Open a directory.
 
int GetPathInfo(const char *path, Long_t *id, Long_t *size, Long_t *flags, Long_t *modtime)
Get info about a file: id, size, flags, modification time.
 
virtual Bool_t AccessPathName(const char *path, EAccessMode mode=kFileExists)
Returns FALSE if one can access a file using the specified access mode.
 
virtual const char * GetDirEntry(void *dirp)
Get a directory entry. Returns 0 if no more entries.
 
virtual const char * BaseName(const char *pathname)
Base name of a file name. Base name of /user/root is root.
 
virtual const char * HostName()
Return the system's host name.
 
virtual Bool_t IsAbsoluteFileName(const char *dir)
Return true if dir is an absolute pathname.
 
virtual const char * WorkingDirectory()
Return working directory.
 
virtual TString GetDirName(const char *pathname)
Return the directory name in pathname.
 
virtual int Unlink(const char *name)
Unlink, i.e.
 
The TTimeStamp encapsulates seconds and ns since EPOCH.
 
const char * AsString(const Option_t *option="") const
Return the date & time as a string.
 
This class represents a WWW compatible URL.
 
Int_t Compare(const TObject *o) const override
Compare abstract method.
 
fileDesc(const char *n, const char *o, Long_t t, const char *d)