80 #define kPEX_STOPPED 1001
81 #define kPEX_ABORTED 1002
87 class TAutoBinVal :
public TNamed {
89 Double_t fXmin, fXmax, fYmin, fYmax, fZmin, fZmax;
97 fZmin = zmin; fZmax = zmax;
102 xmin = fXmin; xmax = fXmax;
103 ymin = fYmin; ymax = fYmax;
104 zmin = fZmin; zmax = fZmax;
113 class TDispatchTimer :
public TTimer {
129 if (
gDebug > 0)
printf(
"TDispatchTimer::Notify: called!\n");
142 class TProctimeTimer :
public TTimer {
158 if (
gDebug > 0)
printf(
"TProctimeTimer::Notify: called!\n");
170 class TStopTimer :
public TTimer {
188 :
TTimer(((to <= 0 || to > 864000) ? 10 : to * 1000), kFALSE)
191 Info (
"TStopTimer",
"enter: %d, timeout: %d", abort, to);
197 Info (
"TStopTimer",
"timeout set to %s ms", fTime.AsString());
208 if (
gDebug > 0)
printf(
"TStopTimer::Notify: called!\n");
228 : fAutoBins(0), fOutput(0), fSelector(0), fCreateSelObj(kTRUE), fSelectorClass(0),
229 fFeedbackTimer(0), fFeedbackPeriod(2000),
230 fEvIter(0), fSelStatus(0),
231 fTotalEvents(0), fReadBytesRun(0), fReadCallsRun(0), fProcessedRun(0),
232 fQueryResults(0), fQuery(0), fPreviousQuery(0), fDrawQueries(0),
233 fMaxDrawQueries(1), fStopTimer(0), fDispatchTimer(0),
234 fProcTimeTimer(0), fProcTime(0),
236 fSaveMemThreshold(-1), fSavePartialResults(kFALSE), fSaveResultsPerPacket(kFALSE)
239 fExitStatus = kFinished;
249 initLimitsFinder =
kTRUE;
291 Info (
"StopProcess",
"abort: %d, timeout: %d", abort, timeout);
294 fEvIter->StopProcess(abort);
296 if (abort == kTRUE) {
315 fDispatchTimer =
new TDispatchTimer(
this);
316 fDispatchTimer->Start();
332 fStopTimer =
new TStopTimer(
this, abort, timeout);
336 Info (
"SetStopTimer",
"%s timer STARTED (timeout: %d)",
337 (abort ?
"ABORT" :
"STOP"), timeout);
340 Info (
"SetStopTimer",
"timer STOPPED");
351 Warning(
"AddQueryResult",
"query undefined - do nothing");
357 if (!fQueryResults) {
358 fQueryResults =
new TList;
359 fQueryResults->
Add(q);
361 TIter nxr(fQueryResults);
367 fQueryResults->Remove(qr);
377 fQueryResults->AddFirst(q);
379 fQueryResults->AddAfter(qp, q);
384 if (fDrawQueries == fMaxDrawQueries && fMaxDrawQueries > 0) {
385 TIter nxr(fQueryResults);
391 fQueryResults->Remove(qr);
398 if (fDrawQueries >= 0 && fDrawQueries < fMaxDrawQueries) {
401 fQueryResults =
new TList;
402 fQueryResults->
Add(q);
414 TIter nxq(fQueryResults);
418 fQueryResults->Remove(qr);
432 if (ref && strlen(ref) > 0) {
433 TIter nxq(fQueryResults);
491 ol = fQuery->GetOutputList();
506 Info(
"ReinitSelector",
"query undefined - do nothing");
512 if (selec.
Length() <= 0) {
513 Info(
"ReinitSelector",
"selector name undefined - do nothing");
522 Bool_t compselec = (selec.
Contains(
".") || stdselec) ? kFALSE : kTRUE;
526 if (!stdselec && !compselec) {
533 TMD5 *md5icur = 0, *md5iold = 0, *md5hcur = 0, *md5hold = 0;
547 if (md5hcur && md5hold && md5icur && md5iold)
548 if (*md5hcur == *md5hold && *md5icur == *md5iold)
555 if (selc)
delete [] selc;
586 if (
id !=
kNPOS &&
id < opt.Length() - 1)
587 selec += opt(
id + 1, opt.Length());
590 Info(
"ReinitSelector",
"problems locating or exporting selector files");
608 fSelectorClass = fSelector->IsA();
638 Info(
"ReinitSelector",
"compiled selector re-init failed:"
639 " automatic reload unsuccessful:"
640 " please load manually the correct library");
656 if (ipathold.
Length() > 0)
787 Info(
"SavePartialResults",
"partial result saving disabled");
793 Error(
"SavePartialResults",
"gProofServ undefined: something really wrong going on!!!");
797 Error(
"SavePartialResults",
"fOutput undefined: something really wrong going on!!!");
802 Info(
"SavePartialResults",
"start saving partial results {%d,%d,%d,%d}",
806 PDB(kOutput, 2)
Info(
"SavePartialResults",
"fEvIter: %p", fEvIter);
809 PDB(kOutput, 2)
Info(
"SavePartialResults",
"list of packets: %p, sz: %d",
810 packets, (packets ? packets->
GetSize(): -1));
813 const char *oopt =
"UPDATE";
829 (fOutputFile && fOutputFile->IsZombie())) {
842 if (packetsDir) packetsDir->
cd();
852 while ((o = nxo())) {
856 if (!strncmp(o->
GetName(),
"PROOF_", 6))
continue;
860 if (!strcmp(o->
GetName(),
"MissingFiles"))
continue;
891 if (queryend) torm.
Add(o);
900 if (!fOutput->FindObject(baseName)) {
918 if (!strcmp(
TUrl(oname, kTRUE).GetProtocol(),
"file")) {
931 oname.
Form(
"<datadir>/%s", baseName.
Data());
947 fOutputFile->Close();
951 if (queryend && torm.
GetSize() > 0) {
953 while ((o = nxrm())) { fOutput->Remove(o); }
958 Info(
"SavePartialResults",
"partial results saved to file");
969 if (selector_file && strlen(selector_file)) {
984 Error(
"AssertSelector",
"cannot load: %s", selector_file );
990 Info(
"AssertSelector",
"Processing via filename");
991 }
else if (!fSelector) {
992 Error(
"AssertSelector",
"no TSelector object define : cannot continue!");
995 Info(
"AssertSelector",
"Processing via TSelector object");
1026 PDB(kGlobal,1)
Info(
"Process",
"Enter");
1037 Error(
"Process",
"cannot assert the selector object");
1041 fSelectorClass = fSelector->IsA();
1042 Int_t version = fSelector->Version();
1043 if (version == 0 &&
IsClient()) fSelector->GetOutputList()->Clear();
1045 fOutput = (
THashList *) fSelector->GetOutputList();
1051 fOutput->
Add(fSelStatus);
1053 fSelector->SetOption(option);
1054 fSelector->SetInputList(
fInput);
1064 while ((e = dset->
Next())) {
1065 fTotalEvents += e->
GetNum();
1072 Int_t useTreeCache = 1;
1074 if (useTreeCache > -1 && useTreeCache < 2)
1075 gEnv->
SetValue(
"ProofPlayer.UseTreeCache", useTreeCache);
1083 Int_t useParallelUnzip = 0;
1085 if (useParallelUnzip > -1 && useParallelUnzip < 2)
1086 gEnv->
SetValue(
"ProofPlayer.UseParallelUnzip", useParallelUnzip);
1089 Int_t dontCacheFiles = 0;
1091 if (dontCacheFiles == 1)
1104 opt =
gEnv->
GetValue(
"ProofPlayer.SavePartialResults", 0);
1117 Info(
"Process",
"memory threshold for saving objects to file set to %ld kB",
1120 Error(
"Process",
"cannot get SysInfo_t (!)");
1125 PDB(kLoop,1)
Info(
"Process",
"Call Begin(0)");
1126 fSelector->Begin(0);
1130 PDB(kLoop,1)
Info(
"Process",
"Call Begin(0)");
1131 fSelector->Begin(0);
1134 PDB(kLoop,1)
Info(
"Process",
"Call SlaveBegin(0)");
1135 fSelector->SlaveBegin(0);
1142 Error(
"Process",
"exception %d caught", excode);
1149 Warning(
"Process",
"problems seetting up file-object swapping");
1158 Info(
"Process",
"Looping over Process()");
1185 TString lastMsg(
"(unfortunately no detailed info is available about current packet)");
1188 if (!
CheckMemUsage(singleshot, warnHWMres, warnHWMvir, wmsg)) {
1191 fSelStatus->Add(wmsg.
Data());
1198 }
else if (!wmsg.
IsNull()) {
1202 TPair *currentElem = 0;
1207 while ((fEvIter->GetNextPacket(fst, num) != -1) &&
1229 lastMsg =
"check logs for possible stacktrace - last cycle:";
1233 lastMsg.
Form(
"while processing dset:'%s', file:'%s'"
1234 " - check logs for possible stacktrace - last event:", dset->
GetName(), fn.
Data());
1247 if (maxproctime > 0) {
1248 if (!fProcTimeTimer) fProcTimeTimer =
new TProctimeTimer(
this, maxproctime);
1249 fProcTimeTimer->Start(maxproctime, kTRUE);
1250 if (!fProcTime) fProcTime =
new TStopwatch();
1254 if (refnum < 0 && maxproctime <= 0) {
1255 wmsg.
Form(
"neither entries nor max proc time specified:"
1256 " risk of infinite loop: processing aborted");
1267 while (refnum < 0 || num--) {
1279 fProcTimeTimer->Start(mpt, kTRUE);
1284 Info(
"Process",
"max proc time reached (%ld msecs): packet processing stopped:\n%s",
1285 maxproctime, lastMsg.
Data());
1295 entry = fEvIter->GetEntryNumber(fst);
1301 if (fSelector->Version() == 0) {
1303 Info(
"Process",
"Call ProcessCut(%lld)", entry);
1304 if (fSelector->ProcessCut(entry)) {
1306 Info(
"Process",
"Call ProcessFill(%lld)", entry);
1307 fSelector->ProcessFill(entry);
1311 Info(
"Process",
"Call Process(%lld)", entry);
1312 fSelector->Process(entry);
1317 Info(
"Process",
"packet processing aborted following the"
1318 " selector settings:\n%s", lastMsg.
Data());
1319 fEvIter->InvalidatePacket();
1327 if (!
CheckMemUsage(memlogfreq, warnHWMres, warnHWMvir, wmsg)) {
1364 Info(
"Process",
"received stop-process signal");
1368 Info(
"Process",
"received abort-process signal");
1371 Error(
"Process",
"exception %d caught", excode);
1380 TPair *currentElem = 0;
1383 delete currentElem->
Key();
1392 if (!wmsg.
IsNull())
Warning(
"Process",
"%s (%s)", wmsg.
Data(), shrc ?
"warn" :
"hwm");
1405 if (fStopTimer != 0)
1407 if (fFeedbackTimer != 0)
1414 Warning(
"Process",
"problems saving the results to file");
1424 while ((o = nxo())) {
1431 if (!dir || (dir && strlen(dir) <= 0)) {
1433 }
else if (dir && strlen(dir) > 0) {
1435 if (!strcmp(u.
GetHost(),
"localhost") || !strcmp(u.
GetHost(),
"127.0.0.1") ||
1436 !strcmp(u.
GetHost(),
"localhost.localdomain")) {
1448 if (fSelector->Version() == 0) {
1449 PDB(kLoop,1)
Info(
"Process",
"Call Terminate()");
1450 fSelector->Terminate();
1452 PDB(kLoop,1)
Info(
"Process",
"Call SlaveTerminate()");
1453 fSelector->SlaveTerminate();
1455 PDB(kLoop,1)
Info(
"Process",
"Call Terminate()");
1456 fSelector->Terminate();
1488 Error(
"Process",
"selector object undefiend!");
1493 fSelector = selector;
1495 return Process(dset, (
const char *)0, option, nentries, first);
1515 if (mfreq > 0 && processed%mfreq == 0) {
1521 Info(
"CheckMemUsage|Svc",
"Memory %ld virtual %ld resident event %lld",
1528 wmsg.
Form(
"using more than %d%% of allowed virtual memory (%ld kB)"
1534 wmsg.
Form(
"using more than %d%% of allowed virtual memory (%ld kB)",
1542 wmsg.
Form(
"using more than %d%% of allowed resident memory (%ld kB)"
1549 wmsg.
Form(
"using more than %d%% of allowed both virtual and resident memory ({%ld,%ld} kB)",
1552 wmsg.
Form(
"using more than %d%% of allowed resident memory (%ld kB)",
1598 fOutput->Add(olsdm);
1609 if ( fAutoBins == 0 ) {
1613 TAutoBinVal *val = (TAutoBinVal*) fAutoBins->
FindObject(name);
1622 val =
new TAutoBinVal(name,xmin,xmax,ymin,ymax,zmin,zmax);
1623 fAutoBins->Add(val);
1625 val->GetAll(xmin,xmax,ymin,ymax,zmin,zmax);
1700 if (!gDrawCanvasHook) {
1702 TString drawlib =
"libProofDraw";
1712 Warning(
"DrawCanvas",
"can't find DrawCanvas");
1714 Warning(
"DrawCanvas",
"can't load %s", drawlib.
Data());
1716 Warning(
"DrawCanvas",
"can't locate %s", drawlib.
Data());
1718 if (gDrawCanvasHook && obj)
1719 return (*gDrawCanvasHook)(
obj);
1732 static Int_t (*gGetDrawArgsHook)(
const char *,
const char *,
Option_t *,
1736 if (!gGetDrawArgsHook) {
1738 TString drawlib =
"libProofDraw";
1746 gGetDrawArgsHook = (
Int_t (*)(
const char *,
const char *, Option_t *,
1747 TString &, TString &))(
f);
1749 Warning(
"GetDrawArgs",
"can't find GetDrawArgs");
1751 Warning(
"GetDrawArgs",
"can't load %s", drawlib.
Data());
1753 Warning(
"GetDrawArgs",
"can't locate %s", drawlib.
Data());
1755 if (gGetDrawArgsHook)
1756 return (*gGetDrawArgsHook)(var, sel, opt, selector, objname);
1766 static void (*gFeedBackCanvasHook)(
const char *,
Bool_t) = 0;
1769 if (!gFeedBackCanvasHook) {
1771 TString drawlib =
"libProofDraw";
1779 gFeedBackCanvasHook = (
void (*)(
const char *,
Bool_t))(
f);
1781 Warning(
"FeedBackCanvas",
"can't find FeedBackCanvas");
1783 Warning(
"FeedBackCanvas",
"can't load %s", drawlib.
Data());
1785 Warning(
"FeedBackCanvas",
"can't locate %s", drawlib.
Data());
1787 if (gFeedBackCanvasHook) (*gFeedBackCanvasHook)(
name, create);
1797 if (fEvIter)
return fEvIter->GetCacheSize();
1806 if (fEvIter)
return fEvIter->GetLearnEntries();
1819 if (fNumMergers <= 0 && fProof->fMergersCount > 0)
1829 fQuery->SetMergeTime(rt);
1833 fQuery->SetRecvTime(rt);
1835 PDB(kGlobal,2) fQuery->Print(
"F");
1855 Error(
"Process",
"selector object undefiend!");
1862 Long64_t rc = Process(set, selector, option, nentries);
1907 if (fProcessMessage)
1917 const char *defpackdata)
1920 PDB(kGlobal,1)
Info(
"Process",
"Enter");
1925 Int_t honebyone = 1;
1927 honebyone =
gEnv->
GetValue(
"ProofPlayer.MergeTH1OneByOne", 1);
1933 TList *listOfMissingFiles = 0;
1942 packetizer = defpackunit;
1944 Info(
"InitPacketizer",
"using alternate packetizer: %s", packetizer.
Data());
1949 Error(
"InitPacketizer",
"class '%s' not found", packetizer.
Data());
1955 callEnv.
InitWithPrototype(cl, cl->GetName(),
"TList*,Long64_t,TList*,TProofProgressStatus*");
1957 Error(
"InitPacketizer",
1958 "cannot find correct constructor for '%s'", cl->GetName());
1973 Error(
"InitPacketizer",
"received stop/abort request");
1979 packetizer =
"TPacketizerMulti";
1984 Error(
"InitPacketizer",
"class '%s' not found", packetizer.
Data());
1992 Error(
"InitPacketizer",
"cannot find correct constructor for '%s'", cl->
GetName());
2018 listOfMissingFiles =
new TList;
2023 dset->
Lookup(kTRUE, &listOfMissingFiles);
2027 Error(
"InitPacketizer",
"received stop/abort request");
2036 Error(
"InitPacketizer",
"No files from the data set were found - Aborting");
2038 if (listOfMissingFiles) {
2040 fOutput->Remove(listOfMissingFiles);
2048 packetizer = defpackdata;
2050 Info(
"InitPacketizer",
"using alternate packetizer: %s", packetizer.
Data());
2055 Error(
"InitPacketizer",
"class '%s' not found", packetizer.
Data());
2061 callEnv.
InitWithPrototype(cl, cl->GetName(),
"TDSet*,TList*,Long64_t,Long64_t,TList*,TProofProgressStatus*");
2063 Error(
"InitPacketizer",
"cannot find correct constructor for '%s'", cl->GetName());
2084 Error(
"InitPacketizer",
"cannot construct '%s'", cl->
GetName());
2090 Error(
"InitPacketizer",
2091 "instantiated packetizer object '%s' is invalid", cl->
GetName());
2112 if (!listOfMissingFiles)
2113 listOfMissingFiles =
new TList;
2115 dset->
Remove(elem, kFALSE);
2123 if (listOfMissingFiles && listOfMissingFiles->
GetSize() > 0) {
2124 TIter missingFiles(listOfMissingFiles);
2130 msg =
Form(
"File not found: %s - skipping!",
2133 msg =
Form(
"File not found: %s - skipping!", fi->
GetName());
2140 listOfMissingFiles->
SetName(
"MissingFiles");
2150 msg =
Form(
" About %.2f %c of the requested files (%d out of %d) were missing or unusable; details in"
2151 " the 'missingFiles' list", xb * 100.,
'%', nbad, nbad + ngood);
2154 " +++ About %.2f %c of the requested files (%d out of %d) are missing or unusable; details in"
2155 " the 'MissingFiles' list\n"
2156 " +++", xb * 100.,
'%', nbad, nbad + ngood);
2178 PDB(kGlobal,1)
Info(
"Process",
"Enter");
2184 Error(
"Process",
"No progress status");
2221 TList *inputtmp = 0;
2225 PDB(kPacketizer,1)
Info(
"Process",
"Create Proxy TDSet");
2231 if (
InitPacketizer(dset, nentries, first,
"TPacketizerUnit",
"TPacketizer") != 0) {
2232 Error(
"Process",
"cannot init the packetizer");
2247 if (clf.IsDigit()) { memlogfreq = clf.
Atoi(); mrc = 0; }
2250 if (memlogfreq == 0) {
2252 if (memlogfreq <= 0) memlogfreq = 1;
2260 Warning(
"Process",
"could not forward input data: %s", emsg.
Data());
2265 Warning(
"Process",
"could not attach to histogram 'PROOF_ProcPcktHist'");
2268 Info(
"Process",
"attached to histogram 'PROOF_ProcPcktHist' to record"
2269 " packets being processed");
2303 Info(
"Process",
"starting new query");
2317 fSelectorClass = fSelector->IsA();
2323 if (fSelector->GetInputList() && fSelector->GetInputList()->GetSize() > 0) {
2324 TIter nxi(fSelector->GetInputList());
2326 while ((o = nxi())) {
2330 inputtmp =
new TList;
2340 fSelector->SetInputList(
fInput);
2341 fSelector->SetOption(option);
2342 if (fSelector->GetOutputList()) fSelector->GetOutputList()->Clear();
2344 PDB(kLoop,1)
Info(
"Process",
"Call Begin(0)");
2345 fSelector->Begin(0);
2379 mesg << set << fn <<
fInput << opt << num << fst << evl << sync << enl;
2380 (*fProcessMessage) << set << fn <<
fInput << opt << num << fst << evl << sync << enl;
2382 mesg << set << fn <<
fInput << opt << num << fst << evl << sync;
2385 Warning(
"Process",
"entry lists not supported by the server");
2392 PDB(kGlobal,1)
Info(
"Process",
"Broadcast called: %d workers notified", nb);
2405 Info(
"Process|Svc",
"Start merging Memory information");
2412 PDB(kGlobal,1)
Info(
"Process",
"Asynchronous processing:"
2413 " activating CollectInputFrom");
2422 PDB(kGlobal,1)
Info(
"Process",
"Calling Collect");
2447 PDB(kGlobal,1)
Info(
"Process",
"Synchronous processing: calling Collect");
2451 Info(
"Process",
"switching to the asynchronous mode ...");
2489 TIter nxi(inputtmp);
2511 Error(
"Process",
"selector object undefined");
2516 if (
IsClient() && (selector != fSelector)) {
2518 fSelector = selector;
2536 Error(
"Process",
"Should not happen: fProcessMessage=%p fProof=%p fPacketizer=%p",
2542 Error(
"Process",
"Invalid call");
2547 Info(
"Process",
"Preparing %d new worker(s) to process", workers->
GetEntries());
2562 Info(
"Process",
"Adding new workers to the packetizer");
2564 Error(
"Process",
"Cannot add new workers to the packetizer!");
2569 Info(
"Process",
"Broadcasting process message to new workers");
2584 PDB(kOutput,1)
Info(
"MergeOutputFiles",
"enter: fOutput size: %d", fOutput->GetSize());
2585 PDB(kOutput,2) fOutput->ls();
2592 while ((o = nxo())) {
2593 if ((pf = dynamic_cast<TProofOutputFile*>(o))) {
2603 Error(
"MergeOutputFiles",
"file merger is null in TProofOutputFile! Protocol error?");
2621 if (
outfile.Contains(
"<datadir>/")) {
2653 if (uof.GetPort() > 0 && usrv.
GetPort() > 0 &&
2667 outfilerem.
Insert(0, srv);
2675 Error(
"MergeOutputFiles",
"cannot open the output file");
2680 if (!filemerger->
Merge()) {
2681 Error(
"MergeOutputFiles",
"cannot merge the output files");
2691 if (!strcmp(u.GetProtocol(),
"file")) {
2699 filemerger->
Reset();
2709 pf->
Merge(&dumlist);
2714 Error(
"MergeOutputFiles",
"file collection is null in TProofOutputFile! Protocol error?");
2728 if (!fOutput->FindObject(
"PROOFSERV_RegisterDataSet"))
2729 fOutput->Add(
new TNamed(
"PROOFSERV_RegisterDataSet",
""));
2731 fOutput->Add(
new TNamed(tag, opt));
2735 if (!rmList) rmList =
new TList;
2737 PDB(kOutput,2) fOutput->Print();
2744 if (rmList && rmList->
GetSize() > 0) {
2747 while((o = nxo())) {
2754 PDB(kOutput,1)
Info(
"MergeOutputFiles",
"done!");
2771 PDB(kOutput,1)
Warning(
"SetSelectorDataMembersFromOutputList",
2772 "failed to find map object in output list!");
2791 fQuery->GetName()), force);
2794 PDB(kGlobal,1)
Info(
"Finalize",
"Calling Merge Output to finalize the output list");
2807 fOutput->Add(status);
2813 PDB(kOutput,1)
Info(
"Finalize",
"Calling Merge Output");
2818 fOutput->SetOwner();
2823 if (pperf) fOutput->Add(pperf);
2828 while ((o = nxo())) fOutput->Add(o);
2837 if (!listOfMissingFiles) {
2838 listOfMissingFiles =
new TList;
2839 listOfMissingFiles->
SetName(
"MissingFiles");
2844 if (!fOutput->FindObject(listOfMissingFiles)) fOutput->Add(listOfMissingFiles);
2865 Info(
"Finalize",
"problems reinitializing selector \"%s\"",
2866 fQuery->GetSelecImp()->GetName());
2874 failedPackets->SetName(
"FailedPackets");
2879 status->
Add(
"Some packets were not processed! Check the the"
2880 " 'FailedPackets' list in the output list");
2884 fSelector->SetInputList(
fInput);
2896 Warning(
"Finalize",
"undefined output list in the selector! Protocol error?");
2902 fOutput->SetOwner(kFALSE);
2903 fOutput->Clear(
"nodelete");
2908 PDB(kLoop,1)
Info(
"Finalize",
"Call Terminate()");
2914 fSelector->Terminate();
2916 rv = fSelector->GetStatus();
2926 fQuery->SetOutputList(fOutput);
2928 fQuery->SetFinalized();
2930 Warning(
"Finalize",
"current TQueryResult object is undefined!");
2935 fOutput->Remove(fSelector);
2936 if (output) output->
Remove(fSelector);
2943 if (output) { output->
SetOwner(kFALSE); output->
Clear(
"nodelete"); }
2948 fOutput->SetOwner(kFALSE);
2949 fOutput->Clear(
"nodelete");
2955 fOutput->SetOwner();
2960 PDB(kGlobal,1)
Info(
"Process",
"exit");
2975 PDB(kGlobal,1)
Info(
"Finalize(TQueryResult *)",
"Enter");
2978 Info(
"Finalize(TQueryResult *)",
2979 "method to be executed only on the clients");
2984 Info(
"Finalize(TQueryResult *)",
"query undefined");
2989 Info(
"Finalize(TQueryResult *)",
"query already finalized");
3013 Info(
"Finalize(TQueryResult *)",
"outputlist is empty");
3047 if (!selector_file) {
3048 Info(
"SendSelector",
"Invalid input: selector (file) name undefined");
3054 Info(
"SendSelector",
"selector name '%s' does not contain a '.':"
3055 " nothing to send, it will be loaded from a library", selector_file);
3060 TString selec = selector_file;
3092 Info(
"SendSelector",
3093 "header file not found: tried: %s %s", h.
Data(), header.
Data());
3100 Info(
"SendSelector",
"problems sending implementation file %s", selec.
Data());
3104 Info(
"SendSelector",
"problems sending header file %s", header.
Data());
3116 PDB(kOutput,1)
Info(
"MergeOutput",
"Enter");
3127 obj = list->
First();
3132 if ( list->
IsEmpty() )
continue;
3142 while ( (obj = list->
First()) ) {
3152 PDB(kOutput,1)
Info(
"MergeOutput",
"fOutputLists empty");
3169 while ((obj = nxo())) {
3173 PDB(kOutput,2)
Info(
"MergeOutput",
"found TProofOutputFile '%s'", obj->
GetName());
3175 PDB(kOutput,2)
Info(
"MergeOutput",
"outputfilename: '%s'",
dir.Data());
3178 PDB(kOutput,2)
Info(
"MergeOutput",
"dir: '%s'",
dir.Data());
3187 PDB(kOutput,2)
Info(
"MergeOutput",
"rawdir: '%s'",
dir.Data());
3206 if (
dir.EndsWith(
".merger"))
dir.Remove(
dir.Last(
'.'));
3222 PDB(kOutput,2)
Info(
"MergeOutput",
"output object '%s' is not a TProofOutputFile", obj->
GetName());
3228 TIter nxrm(&rmlist);
3229 while ((obj = nxrm()))
3230 fOutput->Remove(obj);
3236 if (saveMemValues) {
3242 if (status) status->
SetMemValues(vmaxmst, rmaxmst, kFALSE);
3245 PDB(kOutput,1) fOutput->Print();
3246 PDB(kOutput,1)
Info(
"MergeOutput",
"leave (%d object(s))", fOutput->GetSize());
3259 m << total << processed;
3273 Info(
"Progress",
"%lld %lld %lld %f %f %f %f", total, processed, bytesread,
3274 initTime, procTime, evtrti, mbrti);
3277 fProof->
Progress(total, processed, bytesread, initTime, procTime, evtrti, mbrti);
3281 m << total << processed << bytesread << initTime << procTime << evtrti << mbrti;
3309 Warning(
"Progress",
"TProofProgressInfo object undefined!");
3347 Info(
"AddOutputObject",
"Enter: %p (%s)", obj, obj ? obj->
ClassName() :
"undef");
3351 PDB(kOutput,1)
Info(
"AddOutputObject",
"Invalid input (obj == 0x0)");
3364 if (elists && !strcmp(elists->
GetName(),
"PROOF_EventListsList")) {
3371 TIter nxevl(elists);
3373 while ((evl = dynamic_cast<TEventList *> (nxevl()))) {
3379 while ((elem = dynamic_cast<TDSetElement *> (nxelem()))) {
3380 if (!strcmp(elem->GetFileName(), evl->
GetName()))
3384 Error(
"AddOutputObject",
"Found an event list for %s, but no object with"
3385 " the same name in the TDSet", evl->
GetName());
3393 if (arr && offset > 0)
3394 for (
Int_t i = 0; i < num; i++)
3442 if (!fOutput->FindObject(key.
Data()))
3460 if (!of.
EndsWith(
".merger")) of +=
".merger";
3482 return (merged ? 1 : 0);
3509 PDB(kOutput,1)
Info(
"AddOutput",
"Enter");
3513 PDB(kOutput,1)
Info(
"AddOutput",
"Invalid input (out == 0x0)");
3531 TIter nxevl(elists);
3533 while ((evl = dynamic_cast<TEventList *> (nxevl()))) {
3539 while ((elem = dynamic_cast<TDSetElement *> (nxelem()))) {
3540 if (!strcmp(elem->GetFileName(), evl->
GetName()))
3544 Error(
"AddOutput",
"Found an event list for %s, but no object with"
3545 " the same name in the TDSet", evl->
GetName());
3553 if (arr && offset > 0)
3554 for (
Int_t i = 0; i < num; i++)
3575 while ((obj = nxo())) {
3601 Info(
"NotifyMemory|Svc",
"Memory %ld virtual %ld resident after merging object %s",
3634 Info(
"Incorporate",
"enter: obj: %p (%s), list: %p",
3635 newobj, newobj ? newobj->
ClassName() :
"undef", outlist);
3638 if (!newobj || !outlist) {
3639 Error(
"Incorporate",
"Invalid inputs: obj: %p, list: %p", newobj, outlist);
3649 PDB(kOutput,1)
Info(
"Incorporate",
"histogram object '%s' merged", newobj->
GetName());
3651 PDB(kOutput,1)
Info(
"Incorporate",
"histogram object '%s' added to the"
3652 " appropriate list for delayed merging", newobj->
GetName());
3663 outlist->
Add(newobj);
3684 outlist->
Add(newobj);
3712 PDB(kOutput,2)
Info(
"HandleHistogram",
"h:%s ent:%d, buffer size: %d",
3718 PDB(kOutput,2)
Info(
"HandleHistogram",
"create fOutputLists");
3738 fOutput->Remove(href);
3743 while ((href = (
TH1 *) nxh())) {
3747 list->AddBefore(href, h);
3758 while ((href = (
TH1 *) nxh())) {
3762 list->AddBefore(href, h);
3775 fOutput->Remove(hout);
3805 PDB(kOutput,1)
Info(
"HandleHistogram",
"leaving");
3815 if (!h0 || !h1)
return rc;
3817 TAxis *a0 = 0, *a1 = 0;
3822 if (a0->
GetNbins() == a1->GetNbins())
3831 if (a0->
GetNbins() == a1->GetNbins())
3841 if (a0->
GetNbins() == a1->GetNbins())
3855 PDB(kOutput,1)
Info(
"StoreOutput",
"Enter");
3858 PDB(kOutput,1)
Info(
"StoreOutput",
"Leave (empty)");
3866 PDB(kOutput,2)
Info(
"StoreOutput",
"Create fOutputLists");
3878 while ( (aList = dynamic_cast<TEventList*> (it())) ) {
3882 while ( (elem = dynamic_cast<TDSetElement*> (nxe())) ) {
3883 if (strcmp(elem->GetFileName(), aList->
GetName()) == 0)
3887 Error(
"StoreOutput",
"found the EventList for %s, but no object with that name "
3888 "in the TDSet", aList->
GetName());
3897 for (
int i = 0; i < num; i++)
3900 mainList->
Add(aList);
3906 while( (obj =
next()) ) {
3907 PDB(kOutput,2)
Info(
"StoreOutput",
"find list for '%s'", obj->
GetName() );
3911 PDB(kOutput,2)
Info(
"StoreOutput",
"list for '%s' not found (creating)", obj->
GetName());
3921 PDB(kOutput,1)
Info(
"StoreOutput",
"leave");
3930 Info(
"MergeFeedback",
"Enter");
3934 Info(
"MergeFeedback",
"Leave (no output)");
3954 #ifndef R__TH1MERGEFIXED
3958 while (
TObject *key = keys() ) {
3960 TH1 *
h =
dynamic_cast<TH1 *
>(o);
3961 #ifndef R__TH1MERGEFIXED
3966 if (h && !strncmp(o->
GetName(),
"PROOF_",6)) {
3976 while ((href = (
TH1 *)nxh())) {
3984 list->AddBefore(href, h);
3994 #ifdef R__TH1MERGEFIXED
3997 TObject *obj = (oref) ? oref : list->First();
4003 if ( list->IsEmpty() ) {
4017 while ( (obj = list->First()) ) {
4027 Info(
"MergeFeedback",
"Leave (%d object(s))", fb->
GetSize());
4038 Info(
"StoreFeedback",
"Enter");
4042 Info(
"StoreFeedback",
"Leave (empty)");
4054 PDB(kFeedback,2)
Info(
"StoreFeedback",
"Create fFeedbackLists");
4062 const char *
ord = ((
TSlave*) slave)->GetOrdinal();
4065 while( (obj =
next()) ) {
4067 Info(
"StoreFeedback",
"%s: Find '%s'", ord, obj->
GetName() );
4071 Info(
"StoreFeedback",
"%s: map for '%s' not found (creating)", ord, obj->
GetName());
4078 Info(
"StoreFeedback",
"%s: removing previous value", ord);
4079 if (map->GetValue(slave))
4080 delete map->GetValue(slave);
4083 map->Add(slave, obj);
4085 Info(
"StoreFeedback",
"%s: %s, size: %d", ord, obj->
GetName(), map->GetSize());
4090 Info(
"StoreFeedback",
"Leave");
4102 PDB(kFeedback,1)
Info(
"SetupFeedback",
"\"FeedbackList\" %sfound",
4109 fFeedbackPeriod = 2000;
4111 fFeedbackTimer =
new TTimer;
4113 fFeedbackTimer->Start(fFeedbackPeriod, kTRUE);
4121 if (fFeedbackTimer == 0)
return;
4123 PDB(kFeedback,1)
Info(
"StopFeedback",
"Stop Timer");
4133 PDB(kFeedback,2)
Info(
"HandleTimer",
"Entry");
4135 if (fFeedbackTimer == 0)
return kFALSE;
4165 fFeedbackTimer->Start(fFeedbackPeriod, kTRUE);
4171 PDB(kFeedback,2)
Info(
"HandleTimer",
"Sending %d objects", fb->
GetSize());
4181 fFeedbackTimer->Start(fFeedbackPeriod, kTRUE);
4212 Info(
"GetNextPacket",
"%s (%s): '%s' '%s' '%s' %lld %lld",
4234 const char *selection,
Option_t *option,
4237 if (!fgDrawInputPars) {
4240 fgDrawInputPars->Add(
new TObjString(
"PROOF_ChainWeight"));
4241 fgDrawInputPars->Add(
new TObjString(
"PROOF_LineColor"));
4242 fgDrawInputPars->Add(
new TObjString(
"PROOF_LineStyle"));
4243 fgDrawInputPars->Add(
new TObjString(
"PROOF_LineWidth"));
4244 fgDrawInputPars->Add(
new TObjString(
"PROOF_MarkerColor"));
4245 fgDrawInputPars->Add(
new TObjString(
"PROOF_MarkerStyle"));
4246 fgDrawInputPars->Add(
new TObjString(
"PROOF_MarkerSize"));
4247 fgDrawInputPars->Add(
new TObjString(
"PROOF_FillColor"));
4248 fgDrawInputPars->Add(
new TObjString(
"PROOF_FillStyle"));
4249 fgDrawInputPars->Add(
new TObjString(
"PROOF_ListOfAliases"));
4253 if (
GetDrawArgs(varexp, selection, option, selector, objname) != 0) {
4254 Error(
"DrawSelect",
"parsing arguments");
4259 TNamed *selectionobj =
new TNamed(
"selection", selection);
4265 while ((o = nxi())) {
4268 if (fgDrawInputPars &&
4269 !fgDrawInputPars->FindObject(o->
GetName()) &&
4277 if (objname ==
"") objname =
"htemp";
4291 delete selectionobj;
4295 TIter nxsi(savedInput);
4296 while ((o = nxsi()))
4326 Info(
"SetupFeedback",
"\"FeedbackList\" found: %d objects", fb->
GetSize());
4329 Info(
"SetupFeedback",
"\"FeedbackList\" NOT found");
4332 if (fb == 0 || fb->
GetSize() == 0)
return;
4337 fFeedbackPeriod = 2000;
4339 fFeedbackTimer =
new TTimer;
4341 fFeedbackTimer->Start(fFeedbackPeriod, kTRUE);
4351 if (fFeedbackTimer == 0)
return;
4353 PDB(kFeedback,1)
Info(
"StopFeedback",
"Stop Timer");
4363 PDB(kFeedback,2)
Info(
"HandleTimer",
"Entry");
4392 fOutput = (
THashList *) fSelector->GetOutputList();
4400 if (o != 0) fb->
Add(o);
4404 PDB(kFeedback,2)
Info(
"HandleTimer",
"Sending %d objects", fb->
GetSize());
4414 fFeedbackTimer->Start(fFeedbackPeriod, kTRUE);
4434 PDB(kGlobal, 1)
Info(
"HandleGetTreeHeader",
"empty TDSet");
4441 t->SetMaxVirtualSize(0);
4443 entries = t->GetEntries();
4446 while ((e = dset->Next()) != 0) {
4457 t->SetMaxEntryLoop(entries);
4486 fProgressStatus->Reset();
4487 PDB(kGlobal,1)
Info(
"Process",
"Enter");
4490 if (!proof)
return -1;
4497 if (!SendSelector(selector_file)) {
4498 Error(
"Process",
"sending selector %s", selector_file);
4502 TCleanup
clean(
this);
4508 if (!dset->ElementsValid()) {
4510 if (!dset->ElementsValid()) {
4511 Error(
"Process",
"could not validate TDSet");
4526 while (
TSlave *sl = dynamic_cast<TSlave*>(nextslave())) {
4527 TList *submasters = 0;
4530 submasters =
new TList;
4531 submasters->
SetName(sl->GetMsd());
4532 keyholder.
Add(submasters);
4535 valueholder.
Add(setelements);
4536 msds.
Add(
new TPair(submasters, setelements));
4538 submasters =
dynamic_cast<TList*
>(msd->
Key());
4540 if (submasters) submasters->
Add(sl);
4545 TIter nextelement(dset->GetListOfElements());
4546 while (
TDSetElement *elem = dynamic_cast<TDSetElement*>(nextelement())) {
4548 if (elem->GetNum()<1)
continue;
4550 if (nentries !=-1 && cur>=first+nentries) {
4555 if (cur+elem->GetNum()-1<
first) {
4557 cur+=elem->GetNum();
4563 elem->SetNum(elem->GetNum()-(first-cur));
4564 elem->SetFirst(elem->GetFirst()+first-cur);
4568 if (nentries==-1 || cur+elem->GetNum()<=first+
nentries) {
4569 cur+=elem->GetNum();
4572 elem->SetNum(first+nentries-cur);
4578 Error(
"Process",
"data requires mass storage domain '%s'"
4579 " which is not accessible in this proof session",
4584 if (elements) elements->
Add(elem);
4590 while (
TPair *
msd = dynamic_cast<TPair*>(nextmsd())) {
4595 Int_t nmasters = submasters ? submasters->
GetSize() : -1;
4596 Int_t nelements = setelements ? setelements->
GetSize() : -1;
4597 for (
Int_t i=0; i<nmasters; i++) {
4600 TDSet set(dset->GetType(), dset->GetObjName(),
4601 dset->GetDirectory());
4602 for (
Int_t j = (i*nelements)/nmasters;
4603 j < ((i+1)*nelements)/nmasters;
4613 Warning(
"Process",
"not a TDSetElement object");
4617 if (set.GetListOfElements()->GetSize()>0) {
4625 PDB(kGlobal,1)
Info(
"Process",
4626 "Sending TDSet with %d elements to submaster %s",
4627 set.GetListOfElements()->GetSize(),
4630 usedmasters.
Add(sl);
4633 fSlaves.AddLast(sl);
4634 fSlaveProgress.Set(fSlaveProgress.GetSize()+1);
4635 fSlaveProgress[fSlaveProgress.GetSize()-1] = 0;
4636 fSlaveTotals.Set(fSlaveTotals.GetSize()+1);
4637 fSlaveTotals[fSlaveTotals.GetSize()-1] = nent;
4638 fSlaveBytesRead.Set(fSlaveBytesRead.GetSize()+1);
4639 fSlaveBytesRead[fSlaveBytesRead.GetSize()-1] = 0;
4640 fSlaveInitTime.Set(fSlaveInitTime.GetSize()+1);
4641 fSlaveInitTime[fSlaveInitTime.GetSize()-1] = -1.;
4642 fSlaveProcTime.Set(fSlaveProcTime.GetSize()+1);
4643 fSlaveProcTime[fSlaveProcTime.GetSize()-1] = -1.;
4644 fSlaveEvtRti.Set(fSlaveEvtRti.GetSize()+1);
4645 fSlaveEvtRti[fSlaveEvtRti.GetSize()-1] = -1.;
4646 fSlaveMBRti.Set(fSlaveMBRti.GetSize()+1);
4647 fSlaveMBRti[fSlaveMBRti.GetSize()-1] = -1.;
4648 fSlaveActW.Set(fSlaveActW.GetSize()+1);
4649 fSlaveActW[fSlaveActW.GetSize()-1] = 0;
4650 fSlaveTotS.Set(fSlaveTotS.GetSize()+1);
4651 fSlaveTotS[fSlaveTotS.GetSize()-1] = 0;
4652 fSlaveEffS.Set(fSlaveEffS.GetSize()+1);
4653 fSlaveEffS[fSlaveEffS.GetSize()-1] = 0.;
4655 Warning(
"Process",
"not a TSlave object");
4661 if ( !IsClient() ) HandleTimer(0);
4662 PDB(kGlobal,1)
Info(
"Process",
"Calling Collect");
4670 PDB(kGlobal,1)
Info(
"Process",
"Calling Merge Output");
4686 Warning(
"Progress",
"total events has changed for slave %s", sl->
GetName());
4691 for (i = 0; i < fSlaveTotals.GetSize(); i++) tot += fSlaveTotals[i];
4707 Info(
"Progress",
"%s: %lld %lld %f %f %f %f", sl->
GetName(),
4708 processed, bytesread, initTime, procTime, evtrti, mbrti);
4712 Warning(
"Progress",
"total events has changed for slave %s", sl->
GetName());
4731 for (i = 0; i < fSlaveTotals.GetSize(); i++) {
4732 tot += fSlaveTotals[i];
4754 srti = (nsrti > 0) ? srti / nerti : 0.;
4756 Progress(tot, proc, bytes, init, ptime, erti, srti);
4766 Info(
"Progress",
"%s: %lld %lld %lld %f %f %f %f %d %f", wrk->
GetOrdinal(),
4773 Warning(
"Progress",
"total events has changed for worker %s", wrk->
GetName());
4789 for (i = 0; i < fSlaveTotals.GetSize(); i++) {
4790 pisum.
fTotal += fSlaveTotals[i];
4831 if (fFeedbackTimer == 0)
return kFALSE;
4866 erti = (nerti > 0) ? erti / nerti : 0.;
4867 srti = (nsrti > 0) ? srti / nerti : 0.;
4878 m << tot << proc << bytes << init << ptime << erti << srti;
4899 if (fFeedbackTimer) {
4908 fFeedbackPeriod = 2000;
4910 fFeedbackTimer =
new TTimer;
4912 fFeedbackTimer->Start(fFeedbackPeriod, kTRUE);
const char * GetHost() const
const char * GetName() const
Returns name of object.
const char * GetSessionDir() const
Bool_t IsRetrieve() const
virtual const char * BaseName(const char *pathname)
Base name of a file name. Base name of /user/root is root.
virtual Int_t GetEntries() const
Long64_t Process(const char *selector, Long64_t nentries=-1, Option_t *option="")
Process the specified TSelector file 'nentries' times.
virtual Int_t Write(const char *name=0, Int_t option=0, Int_t bufsize=0)
Write this object to the current directory.
virtual const char * GetTitle() const
Returns title of object.
void AddFeedback(const char *name)
Add object to feedback list.
virtual Bool_t AccessPathName(const char *path, EAccessMode mode=kFileExists)
Returns FALSE if one can access a file using the specified access mode.
TNtuple * GetProgressPerf(Bool_t steal=kFALSE)
static FILE * SetErrorHandlerFile(FILE *ferr)
Set the file stream where to log (default stderr).
Ssiz_t Last(char c) const
Find last occurrence of a character c.
void Progress(Long64_t total, Long64_t processed)
Get query progress information.
ErrorHandlerFunc_t SetErrorHandler(ErrorHandlerFunc_t newhandler)
Set an errorhandler function. Returns the old handler.
virtual Int_t Fill(Double_t x)
Increment bin with abscissa X by 1.
const char * GetOutputFileName() const
virtual TString SplitAclicMode(const char *filename, TString &mode, TString &args, TString &io) const
This method split a filename of the form: ~~~ {.cpp} [path/]macro.C[+|++[k|f|g|O|c|s|d|v|-]][(args)]...
void SetMerging(Bool_t on=kTRUE)
Switch on/off merge timer.
const char * GetOrdinal() const
TProofProgressStatus * fProgressStatus
TFileInfo * GetFileInfo(const char *type="TTree")
Return the content of this element in the form of a TFileInfo.
virtual void Delete(Option_t *option="")
Remove all objects from the list AND delete all heap based objects.
UInt_t Convert(Bool_t toGMT=kFALSE) const
Convert fDatime from TDatime format to the standard time_t format.
void ValidateDSet(TDSet *dset)
Validate a TDSet.
Double_t RealTime()
Stop the stopwatch (if it is running) and return the realtime (in seconds) passed between the start a...
Internal class steering processing in PROOF.
void SetWorkerOrdinal(const char *ordinal)
virtual Double_t GetBinContent(Int_t bin) const
Return content of bin number bin.
EExitStatus fExitStatus
status of query in progress
void Activate(TList *slaves=0)
Activate slave server list.
TSocket * GetSocket() const
virtual TDSetElement * Next(Long64_t totalEntries=-1)
Returns next TDSetElement.
Int_t AssertSelector(const char *selector_file)
Make sure that a valid selector object Return -1 in case of problems, 0 otherwise.
R__EXTERN Int_t gErrorIgnoreLevel
void StoreOutput(TList *out)
Store output list (may not be used in this class).
virtual const char * WorkingDirectory()
Return working directory.
virtual const char * GetName() const
Return name of this collection.
Int_t GetLearnEntries()
Return the number of entries in the learning phase.
virtual Bool_t InheritsFrom(const char *classname) const
Returns kTRUE if object inherits from class "classname".
static TMD5 * FileChecksum(const char *file)
Returns checksum of specified file.
Long64_t GetEventsProcessed() const
Bool_t IsFinalized() const
virtual Bool_t SendProcessingProgress(Double_t, Double_t, Bool_t=kFALSE)
void SetMemValues(Long_t vmem=-1, Long_t rmem=-1, Bool_t master=kFALSE)
Set max memory values.
ClassImp(TSeqCollection) Int_t TSeqCollection TIter next(this)
Return index of object in collection.
const char Int_t const char TProof Int_t const char const char * msd
void Print(Option_t *option="") const
Dump the class content.
Collectable string class.
virtual void SetDirectory(TDirectory *dir)
By default when an histogram is created, it is added to the list of histogram objects in the current ...
void SetDir(const char *dir, Bool_t raw=kFALSE)
TProofLockPath * GetCacheLock()
const char * GetObjName() const
TObject * FindObject(const char *name) const
Find object using its name.
void SetValue(TObject *val)
virtual Int_t Send(const TMessage &mess)
Send a TMessage object.
This class represents a WWW compatible URL.
TString & ReplaceAll(const TString &s1, const TString &s2)
const char * GetDataDir() const
void SetWriteV3(Bool_t on=kTRUE)
Set/Reset the 'OldStreamer' bit in this instance and its elements.
virtual Int_t GetDimension() const
static void FilterLocalroot(TString &path, const char *url="root://dum/")
If 'path' is local and 'dsrv' is Xrootd, apply 'path.Localroot' settings, if any. ...
TMacro * GetSelecHdr() const
TQueryResult * GetQueryResult(const char *ref)
Get query result instances referenced 'ref' from the list of results.
virtual Bool_t JoinProcess(TList *workers)
Not implemented: meaningful only in the remote player. Returns kFALSE.
Bool_t CheckMemUsage(Long64_t &mfreq, Bool_t &w80r, Bool_t &w80v, TString &wmsg)
Check the memory usage, if requested.
This class implements a data set to be used for PROOF processing.
virtual Long64_t Finalize(Bool_t force=kFALSE, Bool_t sync=kFALSE)
Finalize query (may not be used in this class).
Bool_t fSaveResultsPerPacket
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.
void StopProcess(Bool_t abort, Int_t timeout=-1)
Stop process after this event.
void MayNotUse(const char *method) const
Use this method to signal that a method (defined in a base class) may not be called in a derived clas...
const char * GetProtocol() const
void SetParameter(const char *par, const char *value)
Set input list parameter.
void Add(const char *mesg)
Add an error message.
virtual void Info(const char *method, const char *msgfmt,...) const
Issue info message.
Long64_t GetBytesRead() const
virtual Bool_t Merge(Bool_t=kTRUE)
Merge the files.
void AddOutput(TList *out)
Incorporate output list (may not be used in this class).
A ROOT file is a suite of consecutive data records (TKey instances) with a well defined format...
TString fSelectorFileName
void SetupFeedback()
Setup reporting of feedback objects.
ERunStatus GetRunStatus() const
static Long_t GetVirtMemMax()
VirtMemMax getter.
const char * GetOptions() const
virtual int MakeDirectory(const char *name)
Make a directory.
virtual void MergeOutput(Bool_t savememvalues=kFALSE)
Merge objects in output the lists.
void SetLastUpdate(Double_t updtTime=0)
Update time stamp either with the passed value (if > 0) or with the current time. ...
virtual TObject * Get(const char *namecycle)
Return pointer to object identified by namecycle.
virtual Bool_t ChangeDirectory(const char *path)
Change directory.
void RemoveQueryResult(const char *ref)
Remove all query result instances referenced 'ref' from the list of results.
Bool_t HandleTimer(TTimer *timer)
Send progress and feedback to client.
Int_t AdoptFile(TFile *f)
Adopt a file already open.
TDSetElement * GetNextPacket(TSlave *slave, TMessage *r)
Get next packet for specified slave.
const char * GetFileName() const
UInt_t GetTypeOpt() const
virtual int Load(const char *module, const char *entry="", Bool_t system=kFALSE)
Load a shared library.
Implement Tree drawing using PROOF.
virtual const char * TempDirectory() const
Return a user configured or systemwide directory to create temporary files in.
void SetReadCalls(Long64_t readCalls)
virtual const char * DirName(const char *pathname)
Return the directory name in pathname.
virtual TDirectory * mkdir(const char *name, const char *title="")
Create a sub-directory and return a pointer to the created directory.
void RemoveFeedback(const char *name)
Remove object from feedback list.
void ResetFileCollection()
virtual TObject * FindObject(const char *name) const
Find an object in this list using its name.
Int_t Broadcast(const TMessage &mess, TList *slaves)
Broadcast a message to all slaves in the specified list.
virtual char * Which(const char *search, const char *file, EAccessMode mode=kFileExists)
Find location of file in a search path.
Bool_t HistoSameAxis(TH1 *h0, TH1 *h1)
Return kTRUE is the histograms 'h0' and 'h1' have the same binning and ranges on the axis (i...
virtual Int_t GetNbinsX() const
void SetOption(Option_t *option)
TMacro * GetSelecImp() const
const char * GetTopSessionTag() const
virtual Double_t GetEntries() const
return the current number of entries
virtual void SetInitTime()
Set the initialization time.
Bool_t BeginsWith(const char *s, ECaseCompare cmp=kExact) const
void SetDispatchTimer(Bool_t on=kTRUE)
Enable/disable the timer to dispatch pening events while processing.
Implementation of TProof controlling PROOF federated clusters.
TString & Insert(Ssiz_t pos, const char *s)
virtual TObject * At(Int_t idx) const
Returns the object at position idx. Returns 0 if idx is out of range.
static Float_t GetMemHWM()
MemHWM getter.
virtual int GetProcInfo(ProcInfo_t *info) const
Returns cpu and memory used by this process into the ProcInfo_t structure.
void MapOutputListToDataMembers() const
void SetBit(UInt_t f, Bool_t set)
Set or unset the user status bits as specified in f.
static TOutputListSelectorDataMap * FindInList(TCollection *coll)
Find a TOutputListSelectorDataMap in a collection.
Int_t SavePartialResults(Bool_t queryend=kFALSE, Bool_t force=kFALSE)
Save the partial results of this query to a dedicated file under the user data directory.
TString & Replace(Ssiz_t pos, Ssiz_t n, const char *s)
static const char * GetMacroPath()
Get macro search path. Static utility function.
Double_t GetProcTime() const
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.
static TFile * Open(const char *name, Option_t *option="", const char *ftitle="", Int_t compress=1, Int_t netopt=0)
Create / open a file.
const char * GetObjName() const
TMessage * fProcessMessage
Histogram with packets being processed (owned by TPerfStats)
This class defines a UUID (Universally Unique IDentifier), also known as GUIDs (Globally Unique IDent...
virtual Int_t GetN() const
virtual void StopProcess(Bool_t abort, Bool_t stoptimer=kFALSE)
Stop process.
const char * Data() const
void SetStopTimer(Bool_t on=kTRUE, Bool_t abort=kFALSE, Int_t timeout=0)
Enable/disable the timer to stop/abort processing.
Manages an element of a TDSet.
virtual TObject * ReadObject(const TClass *cl)
Read object from I/O buffer.
static void SetLastEntry(Long64_t lastentry)
Set the last entry before exception.
const char * GetDirectory() const
static struct mg_connection * fc(struct mg_context *ctx)
virtual int Unlink(const char *name)
Unlink, i.e. remove, a file.
virtual TObject * Clone(const char *newname="") const
Make a clone of an object using the Streamer facility.
Double_t dot(const TVector2 &v1, const TVector2 &v2)
void Stop()
Stop the stopwatch.
virtual void SetAutoFlush(Long64_t autof=-30000000)
This function may be called at the start of a program to change the default value for fAutoFlush...
static TString Format(const char *fmt,...)
Static method which formats a string using a printf style format descriptor and return a TString...
THashList implements a hybrid collection class consisting of a hash table and a list to store TObject...
TEventIter * fEvIter
period (ms) for sending intermediate results
Float_t GetEffSessions() const
This code implements the MD5 message-digest algorithm.
const char * GetMsd() const
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.
EQueryMode GetQueryMode(Option_t *mode=0) const
Find out the query mode based on the current setting and 'mode'.
virtual Bool_t IsEmpty() const
void IncEntries(Long64_t entries=1)
Long64_t GetBytesRead() const
static Long64_t GetFileBytesRead()
Static function returning the total number of bytes read from all files.
void StopFeedback()
Stop reporting of feedback objects.
Int_t GetQuerySeqNum() const
static EFileType GetType(const char *name, Option_t *option="", TString *prefix=0)
Resolve the file type as a function of the protocol field in 'name'.
void AddQueryResult(TQueryResult *q)
Add query result to the list, making sure that there are no duplicates.
virtual TObject * FindObject(const char *name) const
search object named name in the list of functions
R__EXTERN TVirtualMonitoringWriter * gMonitoringWriter
virtual Bool_t HandleTimer(TTimer *timer)
Execute action in response of a timer timing out.
virtual const char * Getenv(const char *env)
Get environment variable.
void DeleteDrawFeedback(TDrawFeedback *f)
Delete draw feedback object.
Int_t Collect(const TSlave *sl, Long_t timeout=-1, Int_t endtype=-1, Bool_t deactonfail=kFALSE)
Collect responses from slave sl.
TList * GetListOfElements() const
if(pyself &&pyself!=Py_None)
void SetDrawFeedbackOption(TDrawFeedback *f, Option_t *opt)
Set draw feedback option.
void ResetMergePrg()
Reset the merge progress notificator.
A sorted doubly linked list.
void Info(const char *location, const char *msgfmt,...)
TList * MergeFeedback()
Merge feedback lists.
Long64_t fProcessedRun
Read calls in this run.
virtual Long64_t Process(TDSet *set, const char *selector, Option_t *option="", Long64_t nentries=-1, Long64_t firstentry=0)
Process specified TDSet on PROOF.
TProofProgressStatus * GetProgressStatus() const
TObject * GetValue(const char *keyname) const
Returns a pointer to the value associated with keyname as name of the key.
void Validate()
Validate the TDSet by opening files.
Int_t Atoi() const
Return integer value of string.
Bool_t IsParallel() const
void SetOutputFileName(const char *name)
Set the name of the output file; in the form of an Url.
static void GetMemValues(Long_t &vmax, Long_t &rmax)
Get memory usage.
virtual void SetupFeedback()
Set up feedback (may not be used in this class).
Long64_t GetMsgSizeHWM() const
static Long_t GetResMemMax()
ResMemMax getter.
void SetBytesRead(Long64_t bytesRead)
TList * GetOutputList() const
Get output list.
Method or function calling interface.
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
void SetCurrentQuery(TQueryResult *q)
Set current query and save previous value.
const Bool_t kSortDescending
A container class for query results.
TDSetElement * Current() const
virtual Bool_t OutputFile(const char *url, Bool_t force)
Open merger output file.
void Error(const char *location, const char *msgfmt,...)
static void SetLimitsFinder(THLimitsFinder *finder)
This static function can be used to specify a finder derived from THLimitsFinder. ...
virtual Int_t SendAsynMessage(const char *msg, Bool_t lf=kTRUE)
Send an asychronous message to the master / client .
static void Start(TList *input, TList *output)
Initialize PROOF statistics run.
void SetInitTime()
Set init time.
TObject * GetParameter(const char *par) const
Get specified parameter.
Long64_t GetFirst() const
void SetFileName(const char *name)
void Feedback(TList *objs)
Feedback signal.
Int_t GetBufferSize() const
TFileMerger * GetFileMerger(Bool_t local=kFALSE)
Get instance of the file merger to be used in 'merge' mode.
virtual Bool_t Notify()
Notify when timer times out.
TObject * GetEntryList() const
void ClearInput()
Clear input list.
void UpdateAutoBin(const char *name, Double_t &xmin, Double_t &xmax, Double_t &ymin, Double_t &ymax, Double_t &zmin, Double_t &zmax)
Update automatic binning parameters for given object "name".
static Float_t GetMemStop()
MemStop getter.
static void Setup(TList *input)
Setup the PROOF input list with requested statistics and tracing options.
virtual Bool_t AddFile(TFile *source, Bool_t own, Bool_t cpProgress)
Add the TFile to this file merger and give ownership of the TFile to this object (unless kFALSE is re...
void HandleGetTreeHeader(TMessage *mess)
Handle tree header request.
const char * GetName() const
Returns name of object.
TSocket * GetSocket() const
void Clear(Option_t *option="")
Remove all objects from the list.
TDSetElement * GetNextPacket(TSlave *slave, TMessage *r)
Get next packet (may not be used in this class).
const char * GetFileName() const
const char * GetPrefix() const
Bool_t EndsWith(const char *pat, ECaseCompare cmp=kExact) const
Return true if string ends with the specified string.
Class to manage histogram axis.
Float_t GetProcTime() const
R__EXTERN TSystem * gSystem
static void GetLocalServer(TString &dsrv)
Extract LOCALDATASERVER info in 'dsrv'.
const char * GetLibList() const
1-D histogram with a int per channel (see TH1 documentation)}
static Bool_t IsStandardDraw(const char *selec)
Find out if this is a standard selection used for Draw actions (either TSelectorDraw, TProofDraw or deriving from them).
TDirectory * GetDirectory() const
This class provides file copy and merging services.
virtual Int_t GetValue(const char *name, Int_t dflt)
Returns the integer value for a resource.
virtual const char * ClassName() const
Returns name of class to which the object belongs.
void AddInput(TObject *inp)
Add object to input list.
virtual void StopFeedback()
Stop feedback (may not be used in this class).
void SetupFeedback()
Setup reporting of feedback objects and progress messages.
virtual TObject * Remove(TObject *obj)
Remove object from the list.
Long64_t GetTotalEntries() const
virtual TEnvRec * Lookup(const char *n)
Loop over all resource records and return the one with name.
void AddOutput(TList *out)
Incorporate the content of the received output list 'out' into the final output list fOutput...
void SetMerged(Bool_t merged=kTRUE)
void Form(const char *fmt,...)
Formats a string using a printf style format descriptor.
virtual Bool_t JoinProcess(TList *workers)
Prepares the given list of new workers to join a progressing process.
Bool_t TestBit(UInt_t f) const
Bool_t SetDataMembers(TSelector *sel) const
Given an output list, set the data members of a TSelector.
char * Form(const char *fmt,...)
Class to steer the merging of files produced on the workers.
Long64_t Process(TDSet *set, const char *selector, Option_t *option="", Long64_t nentries=-1, Long64_t firstentry=0)
Process specified TDSet on PROOF worker.
virtual Bool_t SendProcessingStatus(const char *, Bool_t=kFALSE)
const char * AsString() const
Return UUID as string. Copy string immediately since it will be reused.
void SaveSource(FILE *fp)
Save macro source in file pointer fp.
virtual Int_t GetNbinsZ() const
A TEventList object is a list of selected events (entries) in a TTree.
Handles synchronous and a-synchronous timer events.
TArrayL64 fSlaveBytesRead
virtual const char * GetName() const
Returns name of object.
void SetLastMergingMsg(TObject *obj)
Set the message to be notified in case of exception.
Int_t GetProtocol() const
The ROOT global object gROOT contains a list of all defined classes.
virtual Bool_t HandleTimer(TTimer *timer)
Send feedback objects to client.
Int_t ReinitSelector(TQueryResult *qr)
Reinitialize fSelector using the selector files in the query result.
static Int_t GetFileReadCalls()
Static function returning the total number of read calls from all files.
const char * GetCacheDir() const
void SetName(const char *name)
void Reset(Detail::TBranchProxy *x)
void HandleRecvHisto(TMessage *mess)
Receive histo from slave.
Int_t SendFile(const char *file, Int_t opt=(kBinary|kForward|kCp|kCpBin), const char *rfile=0, TSlave *sl=0)
Send a file to master or slave servers.
void Warning(const char *location, const char *msgfmt,...)
Long64_t GetEntries() const
TList * GetFailedPackets()
Long64_t Finalize(Bool_t force=kFALSE, Bool_t sync=kFALSE)
Finalize query (may not be used in this class).
void FeedBackCanvas(const char *name, Bool_t create)
Create/destroy a named canvas for feedback.
const Double_t * GetBuffer() const
void DeleteValues()
Remove all (key,value) pairs from the map AND delete the values when they are allocated on the heap...
Bool_t Matches(const char *ref)
Return TRUE if reference ref matches.
Int_t AddOutputObject(TObject *obj)
Incorporate the received object 'obj' into the output list fOutput.
TDatime GetStartTime() const
void InitWithPrototype(TClass *cl, const char *method, const char *proto, Bool_t objectIsConst=kFALSE, ROOT::EFunctionMatchMode mode=ROOT::kConversionMatch)
Initialize the method invocation environment.
const char * GetUrl(Bool_t withDeflt=kFALSE) const
Return full URL.
Long64_t Merge(TCollection *list)
Merge objects from the list into this object.
static TEventIter * Create(TDSet *dset, TSelector *sel, Long64_t first, Long64_t num)
Create and instance of the appropriate iterator.
virtual Int_t FindBin(Double_t x)
Find bin number corresponding to abscissa x.
void UpdateProgressInfo()
Update fProgressStatus.
static TSelector * GetSelector(const char *filename)
The code in filename is loaded (interpreted or compiled, see below), filename must contain a valid cl...
virtual Int_t RedirectOutput(const char *name, const char *mode="a", RedirectHandle_t *h=0)
Redirect standard output (stdout, stderr) to the specified file.
void SetHost(const char *host)
TString & Remove(Ssiz_t pos)
The packetizer is a load balancing object created for each query.
TList * GetInputList()
Get input list.
Bool_t IsClient() const
Is the player running on the client?
Class used by TMap to store (key,value) pairs.
Int_t GetBufferLength() const
TList * GetListOfActiveSlaves() const
virtual const char * GetIncludePath()
Get the list of include path.
virtual Int_t GetSize() const
virtual void SetDirectory(TDirectory *dir)
Change the tree's directory.
virtual void MergeOutput(Bool_t savememvalues=kFALSE)
Merge output (may not be used in this class).
void RestorePreviousQuery()
void ResetParam()
Reset parameter list. To be used before the first call the SetParam().
TList * GetMergeList() const
virtual Func_t DynFindSymbol(const char *module, const char *entry)
Find specific entry point in specified library.
virtual const char * GetName() const
Returns name of object.
virtual const char * HostName()
Return the system's host name.
void RedirectOutput(Bool_t on=kTRUE)
Control output redirection to TProof::fLogFileW.
char * DynamicPathName(const char *lib, Bool_t quiet=kFALSE)
Find a dynamic library called lib using the system search paths.
Int_t Lock()
Locks the directory.
Describe directory structure in memory.
void Feedback(TList *objs)
Get list of feedback objects.
TMap implements an associative array of (key,value) pairs using a THashTable for efficient retrieval ...
ClassImp(TMCParticle) void TMCParticle printf(": p=(%7.3f,%7.3f,%9.3f) ;", fPx, fPy, fPz)
void HandleGetTreeHeader(TMessage *mess)
Handle tree header request.
const char * GetOrdinal() const
virtual void SendInputDataFile()
Send the input data objects to the master; the objects are taken from the dedicated list and / or the...
This class controls a Parallel ROOT Facility, PROOF, cluster.
EExitStatus GetExitStatus() const
ErrorHandlerFunc_t fErrorHandler
tdset for current processing
Set the selector's data members to the corresponding elements of the output list. ...
virtual TMD5 * Checksum()
Returns checksum of the current content.
Class to find axis limits and synchronize them between workers.
virtual TDSetElement * GetNextPacket(TSlave *sl, TMessage *r)
Get next packet.
virtual void Reset()
Reset or initialize access to the elements.
Bool_t MergeOutputFiles()
Merge output in files.
virtual void DispatchOneEvent(Bool_t pendingOnly=kFALSE)
Dispatch a single event.
Long64_t DrawSelect(TDSet *set, const char *varexp, const char *selection, Option_t *option="", Long64_t nentries=-1, Long64_t firstentry=0)
Draw (may not be used in this class).
Int_t InitPacketizer(TDSet *dset, Long64_t nentries, Long64_t first, const char *defpackunit, const char *defpackdata)
Init the packetizer Return 0 on success (fPacketizer is correctly initialized), -1 on failure...
Int_t Unlock()
Unlock the directory.
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.
virtual void Clear(Option_t *option="")
Remove all objects from the list.
void SetFailedPackets(TList *list)
Bool_t IsRegister() const
void SetSelectorDataMembersFromOutputList()
Set the selector's data members: find the mapping of data members to otuput list entries in the outpu...
Long64_t Finalize(Int_t query=-1, Bool_t force=kFALSE)
Finalize the qry-th query in fQueries.
virtual Bool_t SendSelector(const char *selector_file)
Send the selector file(s) to master or worker nodes.
Bool_t HandleTimer(TTimer *timer)
Handle timer event.
virtual Bool_t Add(TF1 *h1, Double_t c1=1, Option_t *option="")
Performs the operation: this = this + c1*f1 if errors are defined (see TH1::Sumw2), errors are also recalculated.
virtual void Add(const TEventList *list)
Merge contents of alist with this list.
void Throw(int code)
If an exception context has been set (using the TRY and RETRY macros) jump back to where it was set...
virtual Int_t DrawCanvas(TObject *obj)
Draw the object if it is a canvas.
Mother of all ROOT objects.
void Lookup(Bool_t removeMissing=kFALSE, TList **missingFiles=0)
Resolve the end-point URL for the current elements of this data set If the removeMissing option is se...
const char Int_t const char TProof * proof
virtual TObject * First() const
Return the first object in the list. Returns 0 when list is empty.
void StopFeedback()
Stop feedback.
virtual Int_t GetNbinsY() const
virtual Long64_t * GetList() const
typedef void((*Func_t)())
TObject * HandleHistogram(TObject *obj, Bool_t &merged)
Low statistic histograms need a special treatment when using autobin.
TUrl * GetCurrentUrl() const
Return the current url.
Int_t Collect(ESlaves list=kActive, Long_t timeout=-1, Int_t endtype=-1, Bool_t deactonfail=kFALSE)
Collect responses from the slave servers.
void Progress(Long64_t total, Long64_t processed)
Report progress (may not be used in this class).
static void SetMacroPath(const char *newpath)
Set or extend the macro search path.
virtual Bool_t cd(const char *path=0)
Change current directory to "this" directory.
R__EXTERN TProofServ * gProofServ
Int_t AddOutputObject(TObject *obj)
Incorporate output object (may not be used in this class).
virtual void Add(TObject *obj)
Int_t Incorporate(TObject *obj, TList *out, Bool_t &merged)
Incorporate object 'newobj' in the list 'outlist'.
Class that contains a list of TFileInfo's and accumulated meta data information about its entries...
void Execute(const char *, const char *, int *=0)
Execute method on this object with the given parameter string, e.g.
Utility class to draw objects in the feedback list during queries.
void SetObject(TObject *object)
Set the object to be notified at time out.
void Progress(Long64_t total, Long64_t processed)
Progress signal.
TFileCollection * GetFileCollection()
Get instance of the file collection to be used in 'dataset' mode.
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
void SetParam(Long_t l)
Add a long method parameter.
Bool_t IsTopMaster() const
const char * GetDir(Bool_t raw=kFALSE) const
ClassImp(TSlaveInfo) Int_t TSlaveInfo const TSlaveInfo * si
Used to sort slaveinfos by ordinal.
void StopProcess(Bool_t abort, Int_t timeout=-1)
Stop the process after this event.
TVirtualPacketizer * fPacketizer
virtual TIterator * MakeIterator(Bool_t dir=kIterForward) const
Return a list iterator.
Int_t GetDrawArgs(const char *var, const char *sel, Option_t *opt, TString &selector, TString &objname)
Parse the arguments from var, sel and opt and fill the selector and object name accordingly.
virtual void StoreFeedback(TObject *slave, TList *out)
Store feedback results from the specified slave.
const char * GetType() const
TObject * GetOutput(const char *name) const
Get output object by name.
Int_t GetTotSessions() const
Float_t GetMaxProcTime() const
void SetExitStatus(Int_t est)
static void Stop()
Terminate the PROOF statistics run.
virtual Long64_t GetEntries() const
void StoreFeedback(TObject *slave, TList *out)
Store feedback list (may not be used in this class).
Long64_t GetCacheSize()
Return the size in bytes of the cache.
A TTree object has a header with a name and a title.
static void SetLastMsg(const char *lastmsg)
Set the message to be sent back in case of exceptions.
Class describing a generic file including meta information.
Bool_t fCreateSelObj
the latest selector
virtual Bool_t ExpandPathName(TString &path)
Expand a pathname getting rid of special shell characters like ~.
TList * GetConfigParams(Bool_t steal=kFALSE)
virtual void PrintFiles(Option_t *options)
Print list of files being merged.
virtual Int_t IndexOf(const TObject *obj) const
TClass * GetClass() const
Bool_t IsParallel() const
True if in parallel mode.
Float_t GetInitTime() const
Class describing a PROOF worker server.
static void output(int code)
Container class for processing statistics.
A TSelector object is used by the TTree::Draw, TTree::Scan, TTree::Process to navigate in a TTree and...
static void ErrorHandler(Int_t level, Bool_t abort, const char *location, const char *msg)
The PROOF error handler function.
virtual void Reset()
Reset merger file list.
virtual void SetTitle(const char *title="")
Change (i.e. set) the title of the TNamed.
virtual TObject * FindObject(const char *name) const
Must be redefined in derived classes.
A List of entry numbers in a TTree or TChain.
static void AutoBinFunc(TString &key, Double_t &xmin, Double_t &xmax, Double_t &ymin, Double_t &ymax, Double_t &zmin, Double_t &zmax)
Int_t GetParallel() const
Returns number of slaves active in parallel mode.
static void SetMemValues()
Record memory usage.
Long64_t DrawSelect(TDSet *set, const char *varexp, const char *selection, Option_t *option="", Long64_t nentries=-1, Long64_t firstentry=0)
Draw (support for TChain::Draw()).
virtual Int_t Write(const char *name=0, Int_t option=0, Int_t bufsize=0)
Write all objects in this collection.
void NotifyMemory(TObject *obj)
Printout the memory record after merging object 'obj' This record is used by the memory monitor...
Bool_t IsValid() const
Return true if the method call has been properly initialized and is usable.
void StoreOutput(TList *out)
Store received output list.
const char * GetFile() const
virtual int GetSysInfo(SysInfo_t *info) const
Returns static system info, like OS type, CPU type, number of CPUs RAM size, etc into the SysInfo_t s...
void SetProcessing(Bool_t on=kTRUE)
Set processing bit according to 'on'.
void Progress(Long64_t total, Long64_t processed)
Progress signal.
virtual ~TProofPlayer()
Destructor.
virtual Long64_t Merge(TCollection *list)
Add all histograms in the collection to this histogram.
virtual void SetIncludePath(const char *includePath)
IncludePath should contain the list of compiler flags to indicate where to find user defined header f...
ClassImp(TProofPlayerLocal) Long64_t TProofPlayerLocal
Process the specified TSelector object 'nentries' times.
const char * GetDirectory() const
Return directory where to look for object.
static Int_t SendInputData(TQueryResult *qr, TProof *p, TString &emsg)
Send the input data file to the workers.
void Feedback(TList *objs)
Set feedback list (may not be used in this class).
TDrawFeedback * CreateDrawFeedback(TProof *p)
Draw feedback creation proxy.
Bool_t fSavePartialResults
Int_t Remove(TDSetElement *elem, Bool_t deleteElem=kTRUE)
Remove TDSetElement 'elem' from the list.
const char * GetDataDirOpts() const
virtual Int_t AddWorkers(TList *workers)
Adds new workers.
virtual void Warning(const char *method, const char *msgfmt,...) const
Issue warning message.