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 {
127 Bool_t TDispatchTimer::Notify()
129 if (
gDebug > 0) printf(
"TDispatchTimer::Notify: called!\n");
142 class TProctimeTimer :
public TTimer {
156 Bool_t TProctimeTimer::Notify()
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());
206 Bool_t TStopTimer::Notify()
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)
249 initLimitsFinder =
kTRUE;
291 Info (
"StopProcess",
"abort: %d, timeout: %d", abort, timeout);
296 if (abort ==
kTRUE) {
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");
432 if (ref && strlen(ref) > 0) {
506 Info(
"ReinitSelector",
"query undefined - do nothing");
512 if (selec.
Length() <= 0) {
513 Info(
"ReinitSelector",
"selector name undefined - do nothing");
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");
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";
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);
918 if (!strcmp(
TUrl(oname,
kTRUE).GetProtocol(),
"file")) {
931 oname.
Form(
"<datadir>/%s", baseName.
Data());
951 if (queryend && torm.
GetSize() > 0) {
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");
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");
1064 while ((e = dset->
Next())) {
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)");
1130 PDB(kLoop,1)
Info(
"Process",
"Call Begin(0)");
1134 PDB(kLoop,1)
Info(
"Process",
"Call 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)) {
1198 }
else if (!wmsg.
IsNull()) {
1202 TPair *currentElem = 0;
1221 if (currentElem->Value() != dset->
Current()) {
1222 currentElem->SetValue(dset->
Current());
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) {
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--) {
1284 Info(
"Process",
"max proc time reached (%ld msecs): packet processing stopped:\n%s",
1285 maxproctime, lastMsg.
Data());
1303 Info(
"Process",
"Call ProcessCut(%lld)", entry);
1306 Info(
"Process",
"Call ProcessFill(%lld)", entry);
1311 Info(
"Process",
"Call Process(%lld)", entry);
1317 Info(
"Process",
"packet processing aborted following the" 1318 " selector settings:\n%s", lastMsg.
Data());
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");
1414 Warning(
"Process",
"problems saving the results to file");
1424 while ((o = nxo())) {
1430 const char *dir = of->
GetDir();
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")) {
1449 PDB(kLoop,1)
Info(
"Process",
"Call Terminate()");
1452 PDB(kLoop,1)
Info(
"Process",
"Call SlaveTerminate()");
1455 PDB(kLoop,1)
Info(
"Process",
"Call Terminate()");
1488 Error(
"Process",
"selector object undefiend!");
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)",
1622 val =
new TAutoBinVal(name,xmin,xmax,ymin,ymax,zmin,zmax);
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);
1816 if (!fMergeSTW) fMergeSTW =
new TStopwatch();
1818 Info(
"SetMerging",
"ON: mergers: %d", fProof->fMergersCount);
1819 if (fNumMergers <= 0 && fProof->fMergersCount > 0)
1820 fNumMergers = fProof->fMergersCount;
1821 }
else if (fMergeSTW) {
1823 Float_t rt = fMergeSTW->RealTime();
1825 Info(
"SetMerging",
"OFF: rt: %f, mergers: %d", rt, fNumMergers);
1855 Error(
"Process",
"selector object undefiend!");
1916 const char *defpackdata)
1919 PDB(kGlobal,1)
Info(
"Process",
"Enter");
1924 Int_t honebyone = 1;
1926 honebyone =
gEnv->
GetValue(
"ProofPlayer.MergeTH1OneByOne", 1);
1927 fMergeTH1OneByOne = (honebyone == 1) ?
kTRUE :
kFALSE;
1932 TList *listOfMissingFiles = 0;
1941 packetizer = defpackunit;
1943 Info(
"InitPacketizer",
"using alternate packetizer: %s", packetizer.
Data());
1948 Error(
"InitPacketizer",
"class '%s' not found", packetizer.
Data());
1954 callEnv.
InitWithPrototype(cl, cl->GetName(),
"TList*,Long64_t,TList*,TProofProgressStatus*");
1956 Error(
"InitPacketizer",
1957 "cannot find correct constructor for '%s'", cl->GetName());
1972 Error(
"InitPacketizer",
"received stop/abort request");
1978 packetizer =
"TPacketizerMulti";
1983 Error(
"InitPacketizer",
"class '%s' not found", packetizer.
Data());
1991 Error(
"InitPacketizer",
"cannot find correct constructor for '%s'", cl->
GetName());
2017 listOfMissingFiles =
new TList;
2026 Error(
"InitPacketizer",
"received stop/abort request");
2035 Error(
"InitPacketizer",
"No files from the data set were found - Aborting");
2037 if (listOfMissingFiles) {
2047 packetizer = defpackdata;
2049 Info(
"InitPacketizer",
"using alternate packetizer: %s", packetizer.
Data());
2054 Error(
"InitPacketizer",
"class '%s' not found", packetizer.
Data());
2060 callEnv.
InitWithPrototype(cl, cl->GetName(),
"TDSet*,TList*,Long64_t,Long64_t,TList*,TProofProgressStatus*");
2062 Error(
"InitPacketizer",
"cannot find correct constructor for '%s'", cl->GetName());
2083 Error(
"InitPacketizer",
"cannot construct '%s'", cl->
GetName());
2088 if (!fPacketizer->IsValid()) {
2089 Error(
"InitPacketizer",
2090 "instantiated packetizer object '%s' is invalid", cl->
GetName());
2111 if (!listOfMissingFiles)
2112 listOfMissingFiles =
new TList;
2122 if (listOfMissingFiles && listOfMissingFiles->
GetSize() > 0) {
2123 TIter missingFiles(listOfMissingFiles);
2129 msg =
Form(
"File not found: %s - skipping!",
2132 msg =
Form(
"File not found: %s - skipping!", fi->
GetName());
2139 listOfMissingFiles->
SetName(
"MissingFiles");
2149 msg =
Form(
" About %.2f %c of the requested files (%d out of %d) were missing or unusable; details in" 2150 " the 'missingFiles' list", xb * 100.,
'%', nbad, nbad + ngood);
2153 " +++ About %.2f %c of the requested files (%d out of %d) are missing or unusable; details in" 2154 " the 'MissingFiles' list\n" 2155 " +++", xb * 100.,
'%', nbad, nbad + ngood);
2177 PDB(kGlobal,1)
Info(
"Process",
"Enter");
2183 Error(
"Process",
"No progress status");
2196 if (fProof->IsMaster()){
2206 fSelectorFileName = selector_file;
2209 if(!SendSelector(selector_file))
return -1;
2220 TList *inputtmp = 0;
2222 if (fProof->IsMaster()) {
2224 PDB(kPacketizer,1)
Info(
"Process",
"Create Proxy TDSet");
2230 if (InitPacketizer(dset, nentries, first,
"TPacketizerUnit",
"TPacketizer") != 0) {
2231 Error(
"Process",
"cannot init the packetizer");
2246 if (clf.IsDigit()) { memlogfreq = clf.
Atoi(); mrc = 0; }
2248 if ((mrc =
TProof::GetParameter(fProof->GetInputList(),
"PROOF_MemLogFreq", mlf)) == 0) memlogfreq = mlf;
2249 if (memlogfreq == 0) {
2250 memlogfreq = fPacketizer->GetTotalEntries()/(fProof->GetParallel()*100);
2251 if (memlogfreq <= 0) memlogfreq = 1;
2253 if (mrc == 0) fProof->SetParameter(
"PROOF_MemLogFreq", memlogfreq);
2259 Warning(
"Process",
"could not forward input data: %s", emsg.
Data());
2264 Warning(
"Process",
"could not attach to histogram 'PROOF_ProcPcktHist'");
2267 Info(
"Process",
"attached to histogram 'PROOF_ProcPcktHist' to record" 2268 " packets being processed");
2294 fOutputLists->Delete();
2295 delete fOutputLists;
2302 Info(
"Process",
"starting new query");
2325 while ((o = nxi())) {
2329 inputtmp =
new TList;
2343 PDB(kLoop,1)
Info(
"Process",
"Call Begin(0)");
2351 fProof->SendInputDataFile();
2363 if (fProof->fProtocol < 13)
2371 TEntryList *enl = (!fProof->IsMaster()) ? dynamic_cast<TEntryList *>(set->GetEntryList())
2373 TEventList *evl = (!fProof->IsMaster() && !enl) ? dynamic_cast<TEventList *>(set->GetEntryList())
2375 if (fProof->fProtocol > 14) {
2376 if (fProcessMessage)
delete fProcessMessage;
2378 mesg <<
set << fn <<
fInput << opt << num << fst << evl << sync << enl;
2379 (*fProcessMessage) <<
set << fn <<
fInput << opt << num << fst << evl << sync << enl;
2381 mesg <<
set << fn <<
fInput << opt << num << fst << evl << sync;
2384 Warning(
"Process",
"entry lists not supported by the server");
2388 fProof->ResetMergePrg();
2390 Int_t nb = fProof->Broadcast(mesg);
2391 PDB(kGlobal,1)
Info(
"Process",
"Broadcast called: %d workers notified", nb);
2392 if (fProof->IsLite()) fProof->fNotIdle += nb;
2395 if (fProof->fProtocol < 13)
2400 fProof->fRedirLog =
kTRUE;
2404 Info(
"Process|Svc",
"Start merging Memory information");
2411 PDB(kGlobal,1)
Info(
"Process",
"Asynchronous processing:" 2412 " activating CollectInputFrom");
2418 return fProof->fSeqNum;
2421 PDB(kGlobal,1)
Info(
"Process",
"Calling Collect");
2437 fPacketizer->GetInitTime(),
2446 PDB(kGlobal,1)
Info(
"Process",
"Synchronous processing: calling Collect");
2448 if (!(fProof->IsSync())) {
2450 Info(
"Process",
"switching to the asynchronous mode ...");
2451 return fProof->fSeqNum;
2457 fProof->fRedirLog =
kFALSE;
2473 fPacketizer->GetInitTime(),
2474 fPacketizer->GetProcTime());
2488 TIter nxi(inputtmp);
2510 Error(
"Process",
"selector object undefined");
2534 if (!fProcessMessage || !fProof || !fPacketizer) {
2535 Error(
"Process",
"Should not happen: fProcessMessage=%p fProof=%p fPacketizer=%p",
2536 fProcessMessage, fProof, fPacketizer);
2540 if (!workers || !fProof->IsMaster()) {
2541 Error(
"Process",
"Invalid call");
2546 Info(
"Process",
"Preparing %d new worker(s) to process", workers->
GetEntries());
2551 Info(
"Process",
"Sending selector file %s", fSelectorFileName.Data());
2552 if(!SendSelector(fSelectorFileName.Data())) {
2553 Error(
"Process",
"Problems in sending selector file %s", fSelectorFileName.Data());
2558 if (fProof->IsLite()) fProof->fNotIdle += workers->
GetSize();
2561 Info(
"Process",
"Adding new workers to the packetizer");
2562 if (fPacketizer->AddWorkers(workers) == -1) {
2563 Error(
"Process",
"Cannot add new workers to the packetizer!");
2568 Info(
"Process",
"Broadcasting process message to new workers");
2569 fProof->Broadcast(*fProcessMessage, workers);
2591 while ((o = nxo())) {
2592 if ((pf = dynamic_cast<TProofOutputFile*>(o))) {
2602 Error(
"MergeOutputFiles",
"file merger is null in TProofOutputFile! Protocol error?");
2620 if (outfile.Contains(
"<datadir>/")) {
2635 if (outfile.BeginsWith(
"client:")) outfile.Replace(0, 7,
"");
2638 outfile.Form(
"%s%s", ddir.
Data(), bn.
Data());
2645 if (outfile.BeginsWith(
"master:")) outfile.Replace(0, 7,
"");
2652 if (uof.GetPort() > 0 && usrv.
GetPort() > 0 &&
2666 outfilerem.
Insert(0, srv);
2674 Error(
"MergeOutputFiles",
"cannot open the output file");
2679 if (!filemerger->
Merge()) {
2680 Error(
"MergeOutputFiles",
"cannot merge the output files");
2686 TIter next(fileList);
2690 if (!strcmp(u.GetProtocol(),
"file")) {
2698 filemerger->
Reset();
2708 pf->
Merge(&dumlist);
2713 Error(
"MergeOutputFiles",
"file collection is null in TProofOutputFile! Protocol error?");
2734 if (!rmList) rmList =
new TList;
2743 if (rmList && rmList->
GetSize() > 0) {
2746 while((o = nxo())) {
2753 PDB(kOutput,1)
Info(
"MergeOutputFiles",
"done!");
2770 PDB(kOutput,1)
Warning(
"SetSelectorDataMembersFromOutputList",
2771 "failed to find map object in output list!");
2786 if (fOutputLists == 0) {
2793 PDB(kGlobal,1)
Info(
"Finalize",
"Calling Merge Output to finalize the output list");
2799 if (fProof->IsMaster()) {
2812 PDB(kOutput,1)
Info(
"Finalize",
"Calling Merge Output");
2823 TList *parms = fPacketizer->GetConfigParams(
kTRUE);
2833 if (fPacketizer->GetFailedPackets()) {
2836 if (!listOfMissingFiles) {
2837 listOfMissingFiles =
new TList;
2838 listOfMissingFiles->
SetName(
"MissingFiles");
2840 TIter nxe(fPacketizer->GetFailedPackets());
2864 Info(
"Finalize",
"problems reinitializing selector \"%s\"",
2871 if (
TList *failedPackets = fPacketizer->GetFailedPackets()) {
2872 fPacketizer->SetFailedPackets(0);
2873 failedPackets->SetName(
"FailedPackets");
2878 status->
Add(
"Some packets were not processed! Check the the" 2879 " 'FailedPackets' list in the output list");
2888 while(
TObject* obj = next()) {
2889 if (fProof->IsParallel() ||
DrawCanvas(obj) == 1)
2895 Warning(
"Finalize",
"undefined output list in the selector! Protocol error?");
2905 SetSelectorDataMembersFromOutputList();
2907 PDB(kLoop,1)
Info(
"Finalize",
"Call Terminate()");
2911 fProof->fQuerySTW.Reset();
2929 Warning(
"Finalize",
"current TQueryResult object is undefined!");
2959 PDB(kGlobal,1)
Info(
"Process",
"exit");
2964 fProof->FinalizationDone();
2974 PDB(kGlobal,1)
Info(
"Finalize(TQueryResult *)",
"Enter");
2977 Info(
"Finalize(TQueryResult *)",
2978 "method to be executed only on the clients");
2983 Info(
"Finalize(TQueryResult *)",
"query undefined");
2988 Info(
"Finalize(TQueryResult *)",
"query already finalized");
3000 fOutputLists->Delete();
3001 delete fOutputLists;
3012 Info(
"Finalize(TQueryResult *)",
"outputlist is empty");
3016 if (fProof->fProtocol < 11)
3024 if (fProof->fProtocol < 11) {
3030 SetSelectorDataMembersFromOutputList();
3046 if (!selector_file) {
3047 Info(
"SendSelector",
"Invalid input: selector (file) name undefined");
3053 Info(
"SendSelector",
"selector name '%s' does not contain a '.':" 3054 " nothing to send, it will be loaded from a library", selector_file);
3059 TString selec = selector_file;
3091 Info(
"SendSelector",
3092 "header file not found: tried: %s %s", h.
Data(), header.
Data());
3099 Info(
"SendSelector",
"problems sending implementation file %s", selec.
Data());
3103 Info(
"SendSelector",
"problems sending header file %s", header.
Data());
3115 PDB(kOutput,1)
Info(
"MergeOutput",
"Enter");
3120 TIter next(fOutputLists);
3123 while ( (list = (
TList *) next()) ) {
3126 obj = list->
First();
3131 if ( list->
IsEmpty() )
continue;
3141 while ( (obj = list->
First()) ) {
3151 PDB(kOutput,1)
Info(
"MergeOutput",
"fOutputLists empty");
3154 if (!
IsClient() || fProof->IsLite()) {
3168 while ((obj = nxo())) {
3172 PDB(kOutput,2)
Info(
"MergeOutput",
"found TProofOutputFile '%s'", obj->
GetName());
3174 PDB(kOutput,2)
Info(
"MergeOutput",
"outputfilename: '%s'", dir.Data());
3176 if (dir.Last(
'/') !=
kNPOS) dir.Remove(dir.Last(
'/')+1);
3177 PDB(kOutput,2)
Info(
"MergeOutput",
"dir: '%s'", dir.Data());
3186 PDB(kOutput,2)
Info(
"MergeOutput",
"rawdir: '%s'", dir.Data());
3205 if (dir.EndsWith(
".merger")) dir.Remove(dir.Last(
'.'));
3208 }
else if (fProof->IsLite()) {
3221 PDB(kOutput,2)
Info(
"MergeOutput",
"output object '%s' is not a TProofOutputFile", obj->
GetName());
3227 TIter nxrm(&rmlist);
3228 while ((obj = nxrm()))
3235 if (saveMemValues) {
3254 fProof->Progress(total, processed);
3258 m << total << processed;
3272 Info(
"Progress",
"%lld %lld %lld %f %f %f %f", total, processed, bytesread,
3273 initTime, procTime, evtrti, mbrti);
3276 fProof->Progress(total, processed, bytesread, initTime, procTime, evtrti, mbrti);
3280 m << total << processed << bytesread << initTime << procTime << evtrti << mbrti;
3308 Warning(
"Progress",
"TProofProgressInfo object undefined!");
3318 fProof->Feedback(objs);
3326 if (fPacketizer != 0)
3327 fPacketizer->StopProcess(abort,
kFALSE);
3346 Info(
"AddOutputObject",
"Enter: %p (%s)", obj, obj ? obj->
ClassName() :
"undef");
3350 PDB(kOutput,1)
Info(
"AddOutputObject",
"Invalid input (obj == 0x0)");
3363 if (elists && !strcmp(elists->
GetName(),
"PROOF_EventListsList")) {
3370 TIter nxevl(elists);
3372 while ((evl = dynamic_cast<TEventList *> (nxevl()))) {
3376 TIter nxelem(fDSet->GetListOfElements());
3378 while ((elem = dynamic_cast<TDSetElement *> (nxelem()))) {
3379 if (!strcmp(elem->GetFileName(), evl->
GetName()))
3383 Error(
"AddOutputObject",
"Found an event list for %s, but no object with" 3384 " the same name in the TDSet", evl->
GetName());
3387 Long64_t offset = elem->GetTDSetOffset();
3392 if (arr && offset > 0)
3393 for (
Int_t i = 0; i < num; i++)
3401 SetLastMergingMsg(evlist);
3402 Incorporate(evlist,
fOutput, merged);
3403 NotifyMemory(evlist);
3417 fMergeFiles =
kTRUE;
3418 if (!
IsClient() || fProof->IsLite()) {
3459 if (!of.
EndsWith(
".merger")) of +=
".merger";
3476 SetLastMergingMsg(obj);
3477 Incorporate(obj,
fOutput, merged);
3481 return (merged ? 1 : 0);
3489 if (on && fProof && fProof->fLogFileW) {
3493 if (fErrorHandler) {
3508 PDB(kOutput,1)
Info(
"AddOutput",
"Enter");
3512 PDB(kOutput,1)
Info(
"AddOutput",
"Invalid input (out == 0x0)");
3530 TIter nxevl(elists);
3532 while ((evl = dynamic_cast<TEventList *> (nxevl()))) {
3536 TIter nxelem(fDSet->GetListOfElements());
3538 while ((elem = dynamic_cast<TDSetElement *> (nxelem()))) {
3539 if (!strcmp(elem->GetFileName(), evl->
GetName()))
3543 Error(
"AddOutput",
"Found an event list for %s, but no object with" 3544 " the same name in the TDSet", evl->
GetName());
3547 Long64_t offset = elem->GetTDSetOffset();
3552 if (arr && offset > 0)
3553 for (
Int_t i = 0; i < num; i++)
3566 SetLastMergingMsg(evlist);
3567 Incorporate(evlist,
fOutput, merged);
3568 NotifyMemory(evlist);
3574 while ((obj = nxo())) {
3575 SetLastMergingMsg(obj);
3576 Incorporate(obj,
fOutput, merged);
3594 if (fProof && (!
IsClient() || fProof->IsLite())){
3599 RedirectOutput(fProof->IsLite());
3600 Info(
"NotifyMemory|Svc",
"Memory %ld virtual %ld resident after merging object %s",
3633 Info(
"Incorporate",
"enter: obj: %p (%s), list: %p",
3634 newobj, newobj ? newobj->
ClassName() :
"undef", outlist);
3637 if (!newobj || !outlist) {
3638 Error(
"Incorporate",
"Invalid inputs: obj: %p, list: %p", newobj, outlist);
3646 if (!HandleHistogram(newobj, merged)) {
3648 PDB(kOutput,1)
Info(
"Incorporate",
"histogram object '%s' merged", newobj->
GetName());
3650 PDB(kOutput,1)
Info(
"Incorporate",
"histogram object '%s' added to the" 3651 " appropriate list for delayed merging", newobj->
GetName());
3662 outlist->
Add(newobj);
3683 outlist->
Add(newobj);
3696 TH1 *
h =
dynamic_cast<TH1 *
>(obj);
3711 PDB(kOutput,2)
Info(
"HandleHistogram",
"h:%s ent:%d, buffer size: %d",
3716 if (!fOutputLists) {
3717 PDB(kOutput,2)
Info(
"HandleHistogram",
"create fOutputLists");
3718 fOutputLists =
new TList;
3721 list = (
TList *) fOutputLists->FindObject(h->
GetName());
3734 fOutputLists->Add(list);
3742 while ((href = (
TH1 *) nxh())) {
3746 list->AddBefore(href, h);
3757 while ((href = (
TH1 *) nxh())) {
3761 list->AddBefore(href, h);
3790 fOutputLists->Add(list);
3804 PDB(kOutput,1)
Info(
"HandleHistogram",
"leaving");
3814 if (!h0 || !h1)
return rc;
3816 TAxis *a0 = 0, *a1 = 0;
3821 if (a0->
GetNbins() == a1->GetNbins())
3830 if (a0->
GetNbins() == a1->GetNbins())
3840 if (a0->
GetNbins() == a1->GetNbins())
3854 PDB(kOutput,1)
Info(
"StoreOutput",
"Enter");
3857 PDB(kOutput,1)
Info(
"StoreOutput",
"Leave (empty)");
3864 if (fOutputLists == 0) {
3865 PDB(kOutput,2)
Info(
"StoreOutput",
"Create fOutputLists");
3866 fOutputLists =
new TList;
3877 while ( (aList = dynamic_cast<TEventList*> (it())) ) {
3879 TIter nxe(fDSet->GetListOfElements());
3881 while ( (elem = dynamic_cast<TDSetElement*> (nxe())) ) {
3882 if (strcmp(elem->GetFileName(), aList->
GetName()) == 0)
3886 Error(
"StoreOutput",
"found the EventList for %s, but no object with that name " 3887 "in the TDSet", aList->
GetName());
3890 Long64_t offset = elem->GetTDSetOffset();
3896 for (
int i = 0; i < num; i++)
3899 mainList->
Add(aList);
3905 while( (obj = next()) ) {
3906 PDB(kOutput,2)
Info(
"StoreOutput",
"find list for '%s'", obj->
GetName() );
3910 PDB(kOutput,2)
Info(
"StoreOutput",
"list for '%s' not found (creating)", obj->
GetName());
3914 fOutputLists->Add( list );
3920 PDB(kOutput,1)
Info(
"StoreOutput",
"leave");
3929 Info(
"MergeFeedback",
"Enter");
3931 if ( fFeedbackLists == 0 ) {
3933 Info(
"MergeFeedback",
"Leave (no output)");
3940 TIter next(fFeedbackLists);
3943 while ( (map = (
TMap*) next()) ) {
3953 #ifndef R__TH1MERGEFIXED 3957 while (
TObject *key = keys() ) {
3959 TH1 *
h =
dynamic_cast<TH1 *
>(o);
3960 #ifndef R__TH1MERGEFIXED 3965 if (h && !strncmp(o->
GetName(),
"PROOF_",6)) {
3975 while ((href = (
TH1 *)nxh())) {
3983 list->AddBefore(href, h);
3993 #ifdef R__TH1MERGEFIXED 3996 TObject *obj = (oref) ? oref : list->First();
4002 if ( list->IsEmpty() ) {
4016 while ( (obj = list->First()) ) {
4026 Info(
"MergeFeedback",
"Leave (%d object(s))", fb->
GetSize());
4037 Info(
"StoreFeedback",
"Enter");
4041 Info(
"StoreFeedback",
"Leave (empty)");
4052 if (fFeedbackLists == 0) {
4053 PDB(kFeedback,2)
Info(
"StoreFeedback",
"Create fFeedbackLists");
4054 fFeedbackLists =
new TList;
4061 const char *ord = ((
TSlave*) slave)->GetOrdinal();
4064 while( (obj = next()) ) {
4066 Info(
"StoreFeedback",
"%s: Find '%s'", ord, obj->
GetName() );
4070 Info(
"StoreFeedback",
"%s: map for '%s' not found (creating)", ord, obj->
GetName());
4074 fFeedbackLists->Add(map);
4077 Info(
"StoreFeedback",
"%s: removing previous value", ord);
4078 if (map->GetValue(slave))
4079 delete map->GetValue(slave);
4082 map->Add(slave, obj);
4084 Info(
"StoreFeedback",
"%s: %s, size: %d", ord, obj->
GetName(), map->GetSize());
4089 Info(
"StoreFeedback",
"Leave");
4101 PDB(kFeedback,1)
Info(
"SetupFeedback",
"\"FeedbackList\" %sfound",
4102 fFeedback == 0 ?
"NOT ":
"");
4104 if (fFeedback == 0 || fFeedback->GetSize() == 0)
return;
4122 PDB(kFeedback,1)
Info(
"StopFeedback",
"Stop Timer");
4132 PDB(kFeedback,2)
Info(
"HandleTimer",
"Entry");
4141 TIter next(fFeedback);
4148 if (fFeedbackLists &&
4150 fFeedbackLists->Remove(m);
4163 if (fFeedbackLists == 0) {
4168 fb = MergeFeedback();
4170 PDB(kFeedback,2)
Info(
"HandleTimer",
"Sending %d objects", fb->
GetSize());
4196 if (fProcPackets->GetBinContent(bin) > 0)
4211 Info(
"GetNextPacket",
"%s (%s): '%s' '%s' '%s' %lld %lld",
4214 if (fProcPackets) fProcPackets->Fill(slave->
GetOrdinal(), 1);
4233 const char *selection,
Option_t *option,
4252 if (
GetDrawArgs(varexp, selection, option, selector, objname) != 0) {
4253 Error(
"DrawSelect",
"parsing arguments");
4258 TNamed *selectionobj =
new TNamed(
"selection", selection);
4264 while ((o = nxi())) {
4276 if (objname ==
"") objname =
"htemp";
4278 fProof->AddFeedback(objname);
4280 fProof->RemoveFeedback(objname);
4290 delete selectionobj;
4294 TIter nxsi(savedInput);
4295 while ((o = nxsi()))
4309 fPacketizer->SetInitTime();
4325 Info(
"SetupFeedback",
"\"FeedbackList\" found: %d objects", fb->
GetSize());
4328 Info(
"SetupFeedback",
"\"FeedbackList\" NOT found");
4331 if (fb == 0 || fb->
GetSize() == 0)
return;
4352 PDB(kFeedback,1)
Info(
"StopFeedback",
"Stop Timer");
4362 PDB(kFeedback,2)
Info(
"HandleTimer",
"Entry");
4385 if (fFeedback == 0)
return kFALSE;
4395 TIter next(fFeedback);
4399 if (o != 0) fb->
Add(o);
4403 PDB(kFeedback,2)
Info(
"HandleTimer",
"Sending %d objects", fb->
GetSize());
4433 PDB(kGlobal, 1)
Info(
"HandleGetTreeHeader",
"empty TDSet");
4440 t->SetMaxVirtualSize(0);
4442 entries = t->GetEntries();
4445 while ((e = dset->Next()) != 0) {
4456 t->SetMaxEntryLoop(entries);
4461 answ <<
TString(
"Success") << t;
4463 answ <<
TString(
"Failed") << t;
4465 fSocket->Send(answ);
4486 PDB(kGlobal,1)
Info(
"Process",
"Enter");
4489 if (!proof)
return -1;
4496 if (!SendSelector(selector_file)) {
4497 Error(
"Process",
"sending selector %s", selector_file);
4507 if (!dset->ElementsValid()) {
4509 if (!dset->ElementsValid()) {
4510 Error(
"Process",
"could not validate TDSet");
4525 while (
TSlave *sl = dynamic_cast<TSlave*>(nextslave())) {
4526 TList *submasters = 0;
4529 submasters =
new TList;
4530 submasters->
SetName(sl->GetMsd());
4531 keyholder.
Add(submasters);
4534 valueholder.
Add(setelements);
4535 msds.
Add(
new TPair(submasters, setelements));
4537 submasters =
dynamic_cast<TList*
>(msd->
Key());
4539 if (submasters) submasters->
Add(sl);
4544 TIter nextelement(dset->GetListOfElements());
4545 while (
TDSetElement *elem = dynamic_cast<TDSetElement*>(nextelement())) {
4547 if (elem->GetNum()<1)
continue;
4554 if (cur+elem->GetNum()-1<
first) {
4556 cur+=elem->GetNum();
4562 elem->SetNum(elem->GetNum()-(
first-cur));
4563 elem->SetFirst(elem->GetFirst()+
first-cur);
4568 cur+=elem->GetNum();
4577 Error(
"Process",
"data requires mass storage domain '%s'" 4578 " which is not accessible in this proof session",
4583 if (elements) elements->
Add(elem);
4589 while (
TPair *msd = dynamic_cast<TPair*>(nextmsd())) {
4590 TList *submasters =
dynamic_cast<TList*
>(msd->Key());
4591 TList *setelements =
dynamic_cast<TList*
>(msd->Value());
4594 Int_t nmasters = submasters ? submasters->
GetSize() : -1;
4595 Int_t nelements = setelements ? setelements->
GetSize() : -1;
4596 for (
Int_t i=0; i<nmasters; i++) {
4599 TDSet set(dset->GetType(), dset->GetObjName(),
4600 dset->GetDirectory());
4601 for (
Int_t j = (i*nelements)/nmasters;
4602 j < ((i+1)*nelements)/nmasters;
4612 Warning(
"Process",
"not a TDSetElement object");
4616 if (
set.GetListOfElements()->GetSize()>0) {
4624 PDB(kGlobal,1)
Info(
"Process",
4625 "Sending TDSet with %d elements to submaster %s",
4626 set.GetListOfElements()->GetSize(),
4629 usedmasters.
Add(sl);
4632 fSlaves.AddLast(sl);
4633 fSlaveProgress.Set(fSlaveProgress.GetSize()+1);
4634 fSlaveProgress[fSlaveProgress.GetSize()-1] = 0;
4635 fSlaveTotals.Set(fSlaveTotals.GetSize()+1);
4636 fSlaveTotals[fSlaveTotals.GetSize()-1] = nent;
4637 fSlaveBytesRead.Set(fSlaveBytesRead.GetSize()+1);
4638 fSlaveBytesRead[fSlaveBytesRead.GetSize()-1] = 0;
4639 fSlaveInitTime.Set(fSlaveInitTime.GetSize()+1);
4640 fSlaveInitTime[fSlaveInitTime.GetSize()-1] = -1.;
4641 fSlaveProcTime.Set(fSlaveProcTime.GetSize()+1);
4642 fSlaveProcTime[fSlaveProcTime.GetSize()-1] = -1.;
4643 fSlaveEvtRti.Set(fSlaveEvtRti.GetSize()+1);
4644 fSlaveEvtRti[fSlaveEvtRti.GetSize()-1] = -1.;
4645 fSlaveMBRti.Set(fSlaveMBRti.GetSize()+1);
4646 fSlaveMBRti[fSlaveMBRti.GetSize()-1] = -1.;
4647 fSlaveActW.Set(fSlaveActW.GetSize()+1);
4648 fSlaveActW[fSlaveActW.GetSize()-1] = 0;
4649 fSlaveTotS.Set(fSlaveTotS.GetSize()+1);
4650 fSlaveTotS[fSlaveTotS.GetSize()-1] = 0;
4651 fSlaveEffS.Set(fSlaveEffS.GetSize()+1);
4652 fSlaveEffS[fSlaveEffS.GetSize()-1] = 0.;
4654 Warning(
"Process",
"not a TSlave object");
4661 PDB(kGlobal,1)
Info(
"Process",
"Calling Collect");
4669 PDB(kGlobal,1)
Info(
"Process",
"Calling Merge Output");
4682 Int_t idx = fSlaves.IndexOf(sl);
4683 fSlaveProgress[idx] = processed;
4684 if (fSlaveTotals[idx] != total)
4685 Warning(
"Progress",
"total events has changed for slave %s", sl->
GetName());
4686 fSlaveTotals[idx] =
total;
4690 for (i = 0; i < fSlaveTotals.GetSize(); i++) tot += fSlaveTotals[i];
4692 for (i = 0; i < fSlaveProgress.GetSize(); i++) proc += fSlaveProgress[i];
4706 Info(
"Progress",
"%s: %lld %lld %f %f %f %f", sl->
GetName(),
4707 processed, bytesread, initTime, procTime, evtrti, mbrti);
4709 Int_t idx = fSlaves.IndexOf(sl);
4710 if (fSlaveTotals[idx] != total)
4711 Warning(
"Progress",
"total events has changed for slave %s", sl->
GetName());
4712 fSlaveTotals[idx] =
total;
4713 fSlaveProgress[idx] = processed;
4714 fSlaveBytesRead[idx] = bytesread;
4715 fSlaveInitTime[idx] = (initTime > -1.) ? initTime : fSlaveInitTime[idx];
4716 fSlaveProcTime[idx] = (procTime > -1.) ? procTime : fSlaveProcTime[idx];
4717 fSlaveEvtRti[idx] = (evtrti > -1.) ? evtrti : fSlaveEvtRti[idx];
4718 fSlaveMBRti[idx] = (mbrti > -1.) ? mbrti : fSlaveMBRti[idx];
4730 for (i = 0; i < fSlaveTotals.GetSize(); i++) {
4731 tot += fSlaveTotals[i];
4732 if (i < fSlaveProgress.GetSize())
4733 proc += fSlaveProgress[i];
4734 if (i < fSlaveBytesRead.GetSize())
4735 bytes += fSlaveBytesRead[i];
4736 if (i < fSlaveInitTime.GetSize())
4737 if (fSlaveInitTime[i] > -1. && (init < 0. || fSlaveInitTime[i] < init))
4738 init = fSlaveInitTime[i];
4739 if (i < fSlaveProcTime.GetSize())
4740 if (fSlaveProcTime[i] > -1. && (ptime < 0. || fSlaveProcTime[i] > ptime))
4741 ptime = fSlaveProcTime[i];
4742 if (i < fSlaveEvtRti.GetSize())
4743 if (fSlaveEvtRti[i] > -1.) {
4744 erti += fSlaveEvtRti[i];
4747 if (i < fSlaveMBRti.GetSize())
4748 if (fSlaveMBRti[i] > -1.) {
4749 srti += fSlaveMBRti[i];
4753 srti = (nsrti > 0) ? srti / nerti : 0.;
4755 Progress(tot, proc, bytes, init, ptime, erti, srti);
4765 Info(
"Progress",
"%s: %lld %lld %lld %f %f %f %f %d %f", wrk->
GetOrdinal(),
4770 Int_t idx = fSlaves.IndexOf(wrk);
4771 if (fSlaveTotals[idx] != pi->
fTotal)
4772 Warning(
"Progress",
"total events has changed for worker %s", wrk->
GetName());
4773 fSlaveTotals[idx] = pi->
fTotal;
4788 for (i = 0; i < fSlaveTotals.GetSize(); i++) {
4789 pisum.
fTotal += fSlaveTotals[i];
4790 if (i < fSlaveProgress.GetSize())
4792 if (i < fSlaveBytesRead.GetSize())
4794 if (i < fSlaveInitTime.GetSize())
4795 if (fSlaveInitTime[i] > -1. && (pisum.
fInitTime < 0. || fSlaveInitTime[i] < pisum.
fInitTime))
4797 if (i < fSlaveProcTime.GetSize())
4798 if (fSlaveProcTime[i] > -1. && (pisum.
fProcTime < 0. || fSlaveProcTime[i] > pisum.
fProcTime))
4800 if (i < fSlaveEvtRti.GetSize())
4801 if (fSlaveEvtRti[i] > -1.) {
4805 if (i < fSlaveMBRti.GetSize())
4806 if (fSlaveMBRti[i] > -1.) {
4810 if (i < fSlaveActW.GetSize())
4812 if (i < fSlaveTotS.GetSize())
4815 if (i < fSlaveEffS.GetSize())
4842 for (i = 0; i < fSlaveTotals.GetSize(); i++) {
4843 tot += fSlaveTotals[i];
4844 if (i < fSlaveProgress.GetSize())
4845 proc += fSlaveProgress[i];
4846 if (i < fSlaveBytesRead.GetSize())
4847 bytes += fSlaveBytesRead[i];
4848 if (i < fSlaveInitTime.GetSize())
4849 if (fSlaveInitTime[i] > -1. && (init < 0. || fSlaveInitTime[i] < init))
4850 init = fSlaveInitTime[i];
4851 if (i < fSlaveProcTime.GetSize())
4852 if (fSlaveProcTime[i] > -1. && (ptime < 0. || fSlaveProcTime[i] > ptime))
4853 ptime = fSlaveProcTime[i];
4854 if (i < fSlaveEvtRti.GetSize())
4855 if (fSlaveEvtRti[i] > -1.) {
4856 erti += fSlaveEvtRti[i];
4859 if (i < fSlaveMBRti.GetSize())
4860 if (fSlaveMBRti[i] > -1.) {
4861 srti += fSlaveMBRti[i];
4865 erti = (nerti > 0) ? erti / nerti : 0.;
4866 srti = (nsrti > 0) ? srti / nerti : 0.;
4877 m << tot << proc << bytes << init << ptime << erti << srti;
4883 if (fReturnFeedback)
4899 fReturnFeedback =
kTRUE;
4902 fReturnFeedback =
kFALSE;
const char * GetHost() const
const char * GetName() const
Returns name of object.
virtual void SetMerging(Bool_t=kTRUE)
const char * GetSessionDir() const
Bool_t IsRetrieve() const
virtual Bool_t cd(const char *path=0)
Change current directory to "this" directory.
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.
virtual Bool_t AccessPathName(const char *path, EAccessMode mode=kFileExists)
Returns FALSE if one can access a file using the specified access mode.
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.
virtual TDirectory * mkdir(const char *name, const char *title="")
Create a sub-directory and return a pointer to the created directory.
ErrorHandlerFunc_t SetErrorHandler(ErrorHandlerFunc_t newhandler)
Set an errorhandler function. Returns the old handler.
virtual int Version() const
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.
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)
EExitStatus fExitStatus
status of query in progress
void SetNumMergers(Int_t nmergers)
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.
Long_t fFeedbackPeriod
timer for sending intermediate results
virtual TList * GetOutputList() const
void Print(Option_t *option="") const
Dump the class content.
Collectable string class.
virtual void ls(Option_t *option="") const
List (ls) all objects in this collection.
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.
virtual Int_t Send(const TMessage &mess)
Send a TMessage object.
This class represents a WWW compatible URL.
virtual Bool_t ProcessCut(Long64_t)
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
TProofPlayer(TProof *proof=0)
Default ctor.
virtual void SetName(const char *name)
Set the name of the TNamed.
virtual void SetOwner(Bool_t enable=kTRUE)
Set whether this collection is the owner (enable==true) of its content.
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
TQueryResult * fPreviousQuery
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...
void SetupFeedback()
Setup reporting of feedback objects.
static Long_t GetVirtMemMax()
VirtMemMax getter.
const char * GetOptions() const
virtual int MakeDirectory(const char *name)
Make a directory.
virtual void AddFirst(TObject *obj)
Add object at the beginning of the list.
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.
virtual Int_t GetNextPacket(Long64_t &first, Long64_t &num)=0
void SetReadCalls(Long64_t readCalls)
virtual const char * DirName(const char *pathname)
Return the directory name in pathname.
void ResetFileCollection()
virtual TObject * FindObject(const char *name) const
Find an object in this list using its name.
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 void StopProcess(Bool_t abort)
Set flag to stop the process.
virtual Long64_t GetCacheSize()=0
virtual Int_t GetNbinsX() const
virtual void InvalidatePacket()
Invalidated the current packet (if any) by setting the TDSetElement::kCorrupted bit.
void SetOption(Option_t *option)
void SetRecvTime(Float_t recvtime)
TMacro * GetSelecImp() const
const char * GetTopSessionTag() const
virtual Double_t GetEntries() const
Return the current number of entries.
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 void SetInputList(TList *input)
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.
overwrite existing object with same name
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
This class defines a UUID (Universally Unique IDentifier), also known as GUIDs (Globally Unique IDent...
virtual Int_t GetN() const
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 void ProcessFill(Long64_t)
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.
void Stop()
Stop the stopwatch.
void Print(Option_t *opt="") const
Print query content. Use opt = "F" for a full listing.
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.
virtual Bool_t IsEmpty() const
void IncEntries(Long64_t entries=1)
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'.
virtual void Start(Long_t milliSec=-1, Bool_t singleShot=kFALSE)
Starts the timer with a milliSec timeout.
void SetMergeTime(Float_t mergetime)
void AddQueryResult(TQueryResult *q)
Add query result to the list, making sure that there are no duplicates.
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.
TList * GetListOfElements() const
void SetDrawFeedbackOption(TDrawFeedback *f, Option_t *opt)
Set draw feedback option.
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.
virtual void Begin(TTree *)
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).
TClass * fSelectorClass
kTRUE when fSelector has been created locally
Long64_t GetMsgSizeHWM() const
static Long_t GetResMemMax()
ResMemMax getter.
virtual void SetOutputList(TList *out, Bool_t adopt=kTRUE)
Set / change the output list.
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.
virtual Long64_t GetEntryNumber(Long64_t)
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.
static void SetLimitsFinder(THLimitsFinder *finder)
This static function can be used to specify a finder derived from THLimitsFinder. ...
static void AutoBinFunc(TString &key, Double_t &xmin, Double_t &xmax, Double_t &ymin, Double_t &ymax, Double_t &zmin, Double_t &zmax)
Get bining information.
static void Start(TList *input, TList *output)
Initialize PROOF statistics run.
virtual void SetProcessInfo(Long64_t ent, Float_t cpu=0., Long64_t siz=-1, Float_t inittime=0., Float_t proctime=0.)
Set processing info.
void SetInitTime()
Set init time.
TTimer * fFeedbackTimer
class of the latest selector
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.
TObject * FindObject(const char *keyname) const
Check if a (key,value) pair exists with keyname as name of the key.
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.
virtual TList * GetInputList() const
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 SendAsynMessage(const char *msg, Bool_t lf=kTRUE)
Send an asychronous message to the master / client .
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.
R__EXTERN TSystem * gSystem
Long64_t fReadCallsRun
Bytes read in this run.
static void GetLocalServer(TString &dsrv)
Extract LOCALDATASERVER info in 'dsrv'.
virtual void Abort(const char *why, EAbort what=kAbortProcess)
Abort processing.
const char * GetLibList() const
tomato 1-D histogram with an 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.
virtual void SlaveBegin(TTree *)
virtual TEnvRec * Lookup(const char *n)
Loop over all resource records and return the one with name.
TObject * Remove(TObject *obj)
Remove object from the list.
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 void SetInitTime()
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.
virtual const char * GetName() const
Returns name of object.
void SetLastMergingMsg(TObject *obj)
Set the message to be notified in case of exception.
virtual void SetFinalized()
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
write collection with single key
void SetName(const char *name)
void Reset(Detail::TBranchProxy *x)
void HandleRecvHisto(TMessage *mess)
Receive histo from slave.
Long64_t GetEntries() const
TList * fQueryResults
Events processed in this run.
Long64_t Finalize(Bool_t force=kFALSE, Bool_t sync=kFALSE)
Finalize query (may not be used in this class).
TStatus * fSelStatus
iterator on events or objects
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.
virtual void SlaveTerminate()
const char * GetUrl(Bool_t withDeflt=kFALSE) const
Return full URL.
Long64_t Merge(TCollection *list)
Merge objects from the list into this object.
virtual void Print(Option_t *option="") const
Default print for collections, calls Print(option, 1).
static TEventIter * Create(TDSet *dset, TSelector *sel, Long64_t first, Long64_t num)
Create and instance of the appropriate iterator.
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...
static unsigned int total
virtual TObject * Last() const
Return the last object in the list. Returns 0 when list is empty.
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.
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.
virtual EAbort GetAbort() const
Describe directory structure in memory.
TMap implements an associative array of (key,value) pairs using a THashTable for efficient retrieval ...
void HandleGetTreeHeader(TMessage *mess)
Handle tree header request.
const char * GetOrdinal() const
This class controls a Parallel ROOT Facility, PROOF, cluster.
EExitStatus GetExitStatus() const
static THashList * fgDrawInputPars
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.
you should not use this method at all Int_t Int_t Double_t Double_t Double_t e
virtual void Reset()
Reset or initialize access to the elements.
virtual Bool_t Process(Long64_t)
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).
virtual Int_t GetLearnEntries()=0
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.
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...
virtual void SetOption(const char *option)
virtual Bool_t SendSelector(const char *selector_file)
Send the selector file(s) to master or worker nodes.
virtual void AddAfter(const TObject *after, TObject *obj)
Insert object after object after in the list.
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...
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
void StopProcess(Bool_t abort, Int_t timeout=-1)
Stop the process after this event.
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 ~.
virtual void PrintFiles(Option_t *options)
Print list of files being merged.
TClass * GetClass() const
Bool_t IsParallel() const
True if in parallel mode.
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="")
Set the title of the TNamed.
A List of entry numbers in a TTree or TChain.
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...
virtual Long64_t GetStatus() const
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.
if(line.BeginsWith("/*"))
virtual void SetIncludePath(const char *includePath)
IncludePath should contain the list of compiler flags to indicate where to find user defined header f...
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).
virtual void Close(Option_t *option="")
Close a file.
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 void Warning(const char *method, const char *msgfmt,...) const
Issue warning message.