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)) {
987 Error(
"AssertSelector",
"cannot load: %s", selector_file );
992 Info(
"AssertSelector",
"Processing via filename (%s)", selector_file);
994 Error(
"AssertSelector",
"no TSelector object define : cannot continue!");
997 Info(
"AssertSelector",
"Processing via TSelector object");
1028 PDB(kGlobal,1)
Info(
"Process",
"Enter");
1039 Error(
"Process",
"cannot assert the selector object");
1066 while ((e = dset->
Next())) {
1074 Int_t useTreeCache = 1;
1076 if (useTreeCache > -1 && useTreeCache < 2)
1077 gEnv->
SetValue(
"ProofPlayer.UseTreeCache", useTreeCache);
1085 Int_t useParallelUnzip = 0;
1087 if (useParallelUnzip > -1 && useParallelUnzip < 2)
1088 gEnv->
SetValue(
"ProofPlayer.UseParallelUnzip", useParallelUnzip);
1091 Int_t dontCacheFiles = 0;
1093 if (dontCacheFiles == 1)
1106 opt =
gEnv->
GetValue(
"ProofPlayer.SavePartialResults", 0);
1119 Info(
"Process",
"memory threshold for saving objects to file set to %ld kB",
1122 Error(
"Process",
"cannot get SysInfo_t (!)");
1127 PDB(kLoop,1)
Info(
"Process",
"Call Begin(0)");
1132 PDB(kLoop,1)
Info(
"Process",
"Call Begin(0)");
1136 PDB(kLoop,1)
Info(
"Process",
"Call SlaveBegin(0)");
1144 Error(
"Process",
"exception %d caught", excode);
1151 Warning(
"Process",
"problems seetting up file-object swapping");
1160 Info(
"Process",
"Looping over Process()");
1187 TString lastMsg(
"(unfortunately no detailed info is available about current packet)");
1190 if (!
CheckMemUsage(singleshot, warnHWMres, warnHWMvir, wmsg)) {
1200 }
else if (!wmsg.
IsNull()) {
1204 TPair *currentElem = 0;
1223 if (currentElem->Value() != dset->
Current()) {
1224 currentElem->SetValue(dset->
Current());
1231 lastMsg =
"check logs for possible stacktrace - last cycle:";
1235 lastMsg.
Form(
"while processing dset:'%s', file:'%s'" 1236 " - check logs for possible stacktrace - last event:", dset->
GetName(), fn.
Data());
1249 if (maxproctime > 0) {
1256 if (refnum < 0 && maxproctime <= 0) {
1257 wmsg.
Form(
"neither entries nor max proc time specified:" 1258 " risk of infinite loop: processing aborted");
1269 while (refnum < 0 || num--) {
1286 Info(
"Process",
"max proc time reached (%ld msecs): packet processing stopped:\n%s",
1287 maxproctime, lastMsg.
Data());
1305 Info(
"Process",
"Call ProcessCut(%lld)", entry);
1308 Info(
"Process",
"Call ProcessFill(%lld)", entry);
1313 Info(
"Process",
"Call Process(%lld)", entry);
1319 Info(
"Process",
"packet processing aborted following the" 1320 " selector settings:\n%s", lastMsg.
Data());
1329 if (!
CheckMemUsage(memlogfreq, warnHWMres, warnHWMvir, wmsg)) {
1366 Info(
"Process",
"received stop-process signal");
1370 Info(
"Process",
"received abort-process signal");
1373 Error(
"Process",
"exception %d caught", excode);
1382 TPair *currentElem = 0;
1385 delete currentElem->
Key();
1394 if (!wmsg.
IsNull())
Warning(
"Process",
"%s (%s)", wmsg.
Data(), shrc ?
"warn" :
"hwm");
1416 Warning(
"Process",
"problems saving the results to file");
1426 while ((o = nxo())) {
1432 const char *dir = of->
GetDir();
1433 if (!dir || (dir && strlen(dir) <= 0)) {
1435 }
else if (dir && strlen(dir) > 0) {
1437 if (!strcmp(u.
GetHost(),
"localhost") || !strcmp(u.
GetHost(),
"127.0.0.1") ||
1438 !strcmp(u.
GetHost(),
"localhost.localdomain")) {
1451 PDB(kLoop,1)
Info(
"Process",
"Call Terminate()");
1454 PDB(kLoop,1)
Info(
"Process",
"Call SlaveTerminate()");
1457 PDB(kLoop,1)
Info(
"Process",
"Call Terminate()");
1490 Error(
"Process",
"selector object undefiend!");
1497 return Process(dset, (
const char *)0, option, nentries, first);
1517 if (mfreq > 0 && processed%mfreq == 0) {
1523 Info(
"CheckMemUsage|Svc",
"Memory %ld virtual %ld resident event %lld",
1530 wmsg.
Form(
"using more than %d%% of allowed virtual memory (%ld kB)" 1536 wmsg.
Form(
"using more than %d%% of allowed virtual memory (%ld kB)",
1544 wmsg.
Form(
"using more than %d%% of allowed resident memory (%ld kB)" 1551 wmsg.
Form(
"using more than %d%% of allowed both virtual and resident memory ({%ld,%ld} kB)",
1554 wmsg.
Form(
"using more than %d%% of allowed resident memory (%ld kB)",
1624 val =
new TAutoBinVal(name,xmin,xmax,ymin,ymax,zmin,zmax);
1627 val->GetAll(xmin,xmax,ymin,ymax,zmin,zmax);
1702 if (!gDrawCanvasHook) {
1704 TString drawlib =
"libProofDraw";
1714 Warning(
"DrawCanvas",
"can't find DrawCanvas");
1716 Warning(
"DrawCanvas",
"can't load %s", drawlib.
Data());
1718 Warning(
"DrawCanvas",
"can't locate %s", drawlib.
Data());
1720 if (gDrawCanvasHook && obj)
1721 return (*gDrawCanvasHook)(obj);
1734 static Int_t (*gGetDrawArgsHook)(
const char *,
const char *,
Option_t *,
1738 if (!gGetDrawArgsHook) {
1740 TString drawlib =
"libProofDraw";
1748 gGetDrawArgsHook = (
Int_t (*)(
const char *,
const char *, Option_t *,
1749 TString &, TString &))(
f);
1751 Warning(
"GetDrawArgs",
"can't find GetDrawArgs");
1753 Warning(
"GetDrawArgs",
"can't load %s", drawlib.
Data());
1755 Warning(
"GetDrawArgs",
"can't locate %s", drawlib.
Data());
1757 if (gGetDrawArgsHook)
1758 return (*gGetDrawArgsHook)(var, sel, opt, selector, objname);
1768 static void (*gFeedBackCanvasHook)(
const char *,
Bool_t) = 0;
1771 if (!gFeedBackCanvasHook) {
1773 TString drawlib =
"libProofDraw";
1781 gFeedBackCanvasHook = (
void (*)(
const char *,
Bool_t))(
f);
1783 Warning(
"FeedBackCanvas",
"can't find FeedBackCanvas");
1785 Warning(
"FeedBackCanvas",
"can't load %s", drawlib.
Data());
1787 Warning(
"FeedBackCanvas",
"can't locate %s", drawlib.
Data());
1789 if (gFeedBackCanvasHook) (*gFeedBackCanvasHook)(
name, create);
1818 if (!fMergeSTW) fMergeSTW =
new TStopwatch();
1820 Info(
"SetMerging",
"ON: mergers: %d", fProof->fMergersCount);
1821 if (fNumMergers <= 0 && fProof->fMergersCount > 0)
1822 fNumMergers = fProof->fMergersCount;
1823 }
else if (fMergeSTW) {
1825 Float_t rt = fMergeSTW->RealTime();
1827 Info(
"SetMerging",
"OFF: rt: %f, mergers: %d", rt, fNumMergers);
1857 Error(
"Process",
"selector object undefiend!");
1918 const char *defpackdata)
1921 PDB(kGlobal,1)
Info(
"Process",
"Enter");
1926 Int_t honebyone = 1;
1928 honebyone =
gEnv->
GetValue(
"ProofPlayer.MergeTH1OneByOne", 1);
1929 fMergeTH1OneByOne = (honebyone == 1) ?
kTRUE :
kFALSE;
1934 TList *listOfMissingFiles = 0;
1943 packetizer = defpackunit;
1945 Info(
"InitPacketizer",
"using alternate packetizer: %s", packetizer.
Data());
1950 Error(
"InitPacketizer",
"class '%s' not found", packetizer.
Data());
1956 callEnv.
InitWithPrototype(cl, cl->GetName(),
"TList*,Long64_t,TList*,TProofProgressStatus*");
1958 Error(
"InitPacketizer",
1959 "cannot find correct constructor for '%s'", cl->GetName());
1974 Error(
"InitPacketizer",
"received stop/abort request");
1980 packetizer =
"TPacketizerMulti";
1985 Error(
"InitPacketizer",
"class '%s' not found", packetizer.
Data());
1993 Error(
"InitPacketizer",
"cannot find correct constructor for '%s'", cl->
GetName());
2019 listOfMissingFiles =
new TList;
2028 Error(
"InitPacketizer",
"received stop/abort request");
2037 Error(
"InitPacketizer",
"No files from the data set were found - Aborting");
2039 if (listOfMissingFiles) {
2049 packetizer = defpackdata;
2051 Info(
"InitPacketizer",
"using alternate packetizer: %s", packetizer.
Data());
2056 Error(
"InitPacketizer",
"class '%s' not found", packetizer.
Data());
2062 callEnv.
InitWithPrototype(cl, cl->GetName(),
"TDSet*,TList*,Long64_t,Long64_t,TList*,TProofProgressStatus*");
2064 Error(
"InitPacketizer",
"cannot find correct constructor for '%s'", cl->GetName());
2085 Error(
"InitPacketizer",
"cannot construct '%s'", cl->
GetName());
2090 if (!fPacketizer->IsValid()) {
2091 Error(
"InitPacketizer",
2092 "instantiated packetizer object '%s' is invalid", cl->
GetName());
2113 if (!listOfMissingFiles)
2114 listOfMissingFiles =
new TList;
2124 if (listOfMissingFiles && listOfMissingFiles->
GetSize() > 0) {
2125 TIter missingFiles(listOfMissingFiles);
2131 msg =
Form(
"File not found: %s - skipping!",
2134 msg =
Form(
"File not found: %s - skipping!", fi->
GetName());
2141 listOfMissingFiles->
SetName(
"MissingFiles");
2151 msg =
Form(
" About %.2f %c of the requested files (%d out of %d) were missing or unusable; details in" 2152 " the 'missingFiles' list", xb * 100.,
'%', nbad, nbad + ngood);
2155 " +++ About %.2f %c of the requested files (%d out of %d) are missing or unusable; details in" 2156 " the 'MissingFiles' list\n" 2157 " +++", xb * 100.,
'%', nbad, nbad + ngood);
2179 PDB(kGlobal,1)
Info(
"Process",
"Enter");
2185 Error(
"Process",
"No progress status");
2198 if (fProof->IsMaster()){
2208 fSelectorFileName = selector_file;
2211 if(!SendSelector(selector_file))
return -1;
2222 TList *inputtmp = 0;
2224 if (fProof->IsMaster()) {
2226 PDB(kPacketizer,1)
Info(
"Process",
"Create Proxy TDSet");
2232 if (InitPacketizer(dset, nentries, first,
"TPacketizerUnit",
"TPacketizer") != 0) {
2233 Error(
"Process",
"cannot init the packetizer");
2248 if (clf.IsDigit()) { memlogfreq = clf.
Atoi(); mrc = 0; }
2250 if ((mrc =
TProof::GetParameter(fProof->GetInputList(),
"PROOF_MemLogFreq", mlf)) == 0) memlogfreq = mlf;
2251 if (memlogfreq == 0) {
2252 memlogfreq = fPacketizer->GetTotalEntries()/(fProof->GetParallel()*100);
2253 if (memlogfreq <= 0) memlogfreq = 1;
2255 if (mrc == 0) fProof->SetParameter(
"PROOF_MemLogFreq", memlogfreq);
2261 Warning(
"Process",
"could not forward input data: %s", emsg.
Data());
2266 Warning(
"Process",
"could not attach to histogram 'PROOF_ProcPcktHist'");
2269 Info(
"Process",
"attached to histogram 'PROOF_ProcPcktHist' to record" 2270 " packets being processed");
2296 fOutputLists->Delete();
2297 delete fOutputLists;
2304 Info(
"Process",
"starting new query");
2327 while ((o = nxi())) {
2331 inputtmp =
new TList;
2345 PDB(kLoop,1)
Info(
"Process",
"Call Begin(0)");
2353 fProof->SendInputDataFile();
2365 if (fProof->fProtocol < 13)
2373 TEntryList *enl = (!fProof->IsMaster()) ? dynamic_cast<TEntryList *>(set->GetEntryList())
2375 TEventList *evl = (!fProof->IsMaster() && !enl) ? dynamic_cast<TEventList *>(set->GetEntryList())
2377 if (fProof->fProtocol > 14) {
2378 if (fProcessMessage)
delete fProcessMessage;
2380 mesg <<
set << fn <<
fInput << opt << num << fst << evl << sync << enl;
2381 (*fProcessMessage) <<
set << fn <<
fInput << opt << num << fst << evl << sync << enl;
2383 mesg <<
set << fn <<
fInput << opt << num << fst << evl << sync;
2386 Warning(
"Process",
"entry lists not supported by the server");
2390 fProof->ResetMergePrg();
2392 Int_t nb = fProof->Broadcast(mesg);
2393 PDB(kGlobal,1)
Info(
"Process",
"Broadcast called: %d workers notified", nb);
2394 if (fProof->IsLite()) fProof->fNotIdle += nb;
2397 if (fProof->fProtocol < 13)
2402 fProof->fRedirLog =
kTRUE;
2406 Info(
"Process|Svc",
"Start merging Memory information");
2413 PDB(kGlobal,1)
Info(
"Process",
"Asynchronous processing:" 2414 " activating CollectInputFrom");
2420 return fProof->fSeqNum;
2423 PDB(kGlobal,1)
Info(
"Process",
"Calling Collect");
2439 fPacketizer->GetInitTime(),
2448 PDB(kGlobal,1)
Info(
"Process",
"Synchronous processing: calling Collect");
2450 if (!(fProof->IsSync())) {
2452 Info(
"Process",
"switching to the asynchronous mode ...");
2453 return fProof->fSeqNum;
2459 fProof->fRedirLog =
kFALSE;
2475 fPacketizer->GetInitTime(),
2476 fPacketizer->GetProcTime());
2490 TIter nxi(inputtmp);
2512 Error(
"Process",
"selector object undefined");
2536 if (!fProcessMessage || !fProof || !fPacketizer) {
2537 Error(
"Process",
"Should not happen: fProcessMessage=%p fProof=%p fPacketizer=%p",
2538 fProcessMessage, fProof, fPacketizer);
2542 if (!workers || !fProof->IsMaster()) {
2543 Error(
"Process",
"Invalid call");
2548 Info(
"Process",
"Preparing %d new worker(s) to process", workers->
GetEntries());
2553 Info(
"Process",
"Sending selector file %s", fSelectorFileName.Data());
2554 if(!SendSelector(fSelectorFileName.Data())) {
2555 Error(
"Process",
"Problems in sending selector file %s", fSelectorFileName.Data());
2560 if (fProof->IsLite()) fProof->fNotIdle += workers->
GetSize();
2563 Info(
"Process",
"Adding new workers to the packetizer");
2564 if (fPacketizer->AddWorkers(workers) == -1) {
2565 Error(
"Process",
"Cannot add new workers to the packetizer!");
2570 Info(
"Process",
"Broadcasting process message to new workers");
2571 fProof->Broadcast(*fProcessMessage, workers);
2593 while ((o = nxo())) {
2594 if ((pf = dynamic_cast<TProofOutputFile*>(o))) {
2604 Error(
"MergeOutputFiles",
"file merger is null in TProofOutputFile! Protocol error?");
2622 if (outfile.Contains(
"<datadir>/")) {
2637 if (outfile.BeginsWith(
"client:")) outfile.Replace(0, 7,
"");
2640 outfile.Form(
"%s%s", ddir.
Data(), bn.
Data());
2647 if (outfile.BeginsWith(
"master:")) outfile.Replace(0, 7,
"");
2654 if (uof.GetPort() > 0 && usrv.
GetPort() > 0 &&
2668 outfilerem.
Insert(0, srv);
2676 Error(
"MergeOutputFiles",
"cannot open the output file");
2681 if (!filemerger->
Merge()) {
2682 Error(
"MergeOutputFiles",
"cannot merge the output files");
2688 TIter next(fileList);
2692 if (!strcmp(u.GetProtocol(),
"file")) {
2700 filemerger->
Reset();
2710 pf->
Merge(&dumlist);
2715 Error(
"MergeOutputFiles",
"file collection is null in TProofOutputFile! Protocol error?");
2736 if (!rmList) rmList =
new TList;
2745 if (rmList && rmList->
GetSize() > 0) {
2748 while((o = nxo())) {
2755 PDB(kOutput,1)
Info(
"MergeOutputFiles",
"done!");
2772 PDB(kOutput,1)
Warning(
"SetSelectorDataMembersFromOutputList",
2773 "failed to find map object in output list!");
2788 if (fOutputLists == 0) {
2795 PDB(kGlobal,1)
Info(
"Finalize",
"Calling Merge Output to finalize the output list");
2801 if (fProof->IsMaster()) {
2814 PDB(kOutput,1)
Info(
"Finalize",
"Calling Merge Output");
2825 TList *parms = fPacketizer->GetConfigParams(
kTRUE);
2835 if (fPacketizer->GetFailedPackets()) {
2838 if (!listOfMissingFiles) {
2839 listOfMissingFiles =
new TList;
2840 listOfMissingFiles->
SetName(
"MissingFiles");
2842 TIter nxe(fPacketizer->GetFailedPackets());
2866 Info(
"Finalize",
"problems reinitializing selector \"%s\"",
2873 if (
TList *failedPackets = fPacketizer->GetFailedPackets()) {
2874 fPacketizer->SetFailedPackets(0);
2875 failedPackets->SetName(
"FailedPackets");
2880 status->
Add(
"Some packets were not processed! Check the the" 2881 " 'FailedPackets' list in the output list");
2890 while(
TObject* obj = next()) {
2891 if (fProof->IsParallel() ||
DrawCanvas(obj) == 1)
2897 Warning(
"Finalize",
"undefined output list in the selector! Protocol error?");
2907 SetSelectorDataMembersFromOutputList();
2909 PDB(kLoop,1)
Info(
"Finalize",
"Call Terminate()");
2913 fProof->fQuerySTW.Reset();
2931 Warning(
"Finalize",
"current TQueryResult object is undefined!");
2961 PDB(kGlobal,1)
Info(
"Process",
"exit");
2966 fProof->FinalizationDone();
2976 PDB(kGlobal,1)
Info(
"Finalize(TQueryResult *)",
"Enter");
2979 Info(
"Finalize(TQueryResult *)",
2980 "method to be executed only on the clients");
2985 Info(
"Finalize(TQueryResult *)",
"query undefined");
2990 Info(
"Finalize(TQueryResult *)",
"query already finalized");
3002 fOutputLists->Delete();
3003 delete fOutputLists;
3014 Info(
"Finalize(TQueryResult *)",
"outputlist is empty");
3018 if (fProof->fProtocol < 11)
3026 if (fProof->fProtocol < 11) {
3032 SetSelectorDataMembersFromOutputList();
3048 if (!selector_file) {
3049 Info(
"SendSelector",
"Invalid input: selector (file) name undefined");
3055 Info(
"SendSelector",
"selector name '%s' does not contain a '.':" 3056 " nothing to send, it will be loaded from a library", selector_file);
3061 TString selec = selector_file;
3093 Info(
"SendSelector",
3094 "header file not found: tried: %s %s", h.
Data(), header.
Data());
3101 Info(
"SendSelector",
"problems sending implementation file %s", selec.
Data());
3105 Info(
"SendSelector",
"problems sending header file %s", header.
Data());
3117 PDB(kOutput,1)
Info(
"MergeOutput",
"Enter");
3122 TIter next(fOutputLists);
3125 while ( (list = (
TList *) next()) ) {
3128 obj = list->
First();
3133 if ( list->
IsEmpty() )
continue;
3143 while ( (obj = list->
First()) ) {
3153 PDB(kOutput,1)
Info(
"MergeOutput",
"fOutputLists empty");
3156 if (!
IsClient() || fProof->IsLite()) {
3170 while ((obj = nxo())) {
3174 PDB(kOutput,2)
Info(
"MergeOutput",
"found TProofOutputFile '%s'", obj->
GetName());
3176 PDB(kOutput,2)
Info(
"MergeOutput",
"outputfilename: '%s'", dir.Data());
3178 if (dir.Last(
'/') !=
kNPOS) dir.Remove(dir.Last(
'/')+1);
3179 PDB(kOutput,2)
Info(
"MergeOutput",
"dir: '%s'", dir.Data());
3188 PDB(kOutput,2)
Info(
"MergeOutput",
"rawdir: '%s'", dir.Data());
3207 if (dir.EndsWith(
".merger")) dir.Remove(dir.Last(
'.'));
3210 }
else if (fProof->IsLite()) {
3223 PDB(kOutput,2)
Info(
"MergeOutput",
"output object '%s' is not a TProofOutputFile", obj->
GetName());
3229 TIter nxrm(&rmlist);
3230 while ((obj = nxrm()))
3237 if (saveMemValues) {
3256 fProof->Progress(total, processed);
3260 m << total << processed;
3274 Info(
"Progress",
"%lld %lld %lld %f %f %f %f", total, processed, bytesread,
3275 initTime, procTime, evtrti, mbrti);
3278 fProof->Progress(total, processed, bytesread, initTime, procTime, evtrti, mbrti);
3282 m << total << processed << bytesread << initTime << procTime << evtrti << mbrti;
3310 Warning(
"Progress",
"TProofProgressInfo object undefined!");
3320 fProof->Feedback(objs);
3328 if (fPacketizer != 0)
3329 fPacketizer->StopProcess(abort,
kFALSE);
3348 Info(
"AddOutputObject",
"Enter: %p (%s)", obj, obj ? obj->
ClassName() :
"undef");
3352 PDB(kOutput,1)
Info(
"AddOutputObject",
"Invalid input (obj == 0x0)");
3365 if (elists && !strcmp(elists->
GetName(),
"PROOF_EventListsList")) {
3372 TIter nxevl(elists);
3374 while ((evl = dynamic_cast<TEventList *> (nxevl()))) {
3378 TIter nxelem(fDSet->GetListOfElements());
3380 while ((elem = dynamic_cast<TDSetElement *> (nxelem()))) {
3381 if (!strcmp(elem->GetFileName(), evl->
GetName()))
3385 Error(
"AddOutputObject",
"Found an event list for %s, but no object with" 3386 " the same name in the TDSet", evl->
GetName());
3389 Long64_t offset = elem->GetTDSetOffset();
3394 if (arr && offset > 0)
3395 for (
Int_t i = 0; i < num; i++)
3403 SetLastMergingMsg(evlist);
3404 Incorporate(evlist,
fOutput, merged);
3405 NotifyMemory(evlist);
3419 fMergeFiles =
kTRUE;
3420 if (!
IsClient() || fProof->IsLite()) {
3461 if (!of.
EndsWith(
".merger")) of +=
".merger";
3478 SetLastMergingMsg(obj);
3479 Incorporate(obj,
fOutput, merged);
3483 return (merged ? 1 : 0);
3491 if (on && fProof && fProof->fLogFileW) {
3495 if (fErrorHandler) {
3510 PDB(kOutput,1)
Info(
"AddOutput",
"Enter");
3514 PDB(kOutput,1)
Info(
"AddOutput",
"Invalid input (out == 0x0)");
3532 TIter nxevl(elists);
3534 while ((evl = dynamic_cast<TEventList *> (nxevl()))) {
3538 TIter nxelem(fDSet->GetListOfElements());
3540 while ((elem = dynamic_cast<TDSetElement *> (nxelem()))) {
3541 if (!strcmp(elem->GetFileName(), evl->
GetName()))
3545 Error(
"AddOutput",
"Found an event list for %s, but no object with" 3546 " the same name in the TDSet", evl->
GetName());
3549 Long64_t offset = elem->GetTDSetOffset();
3554 if (arr && offset > 0)
3555 for (
Int_t i = 0; i < num; i++)
3568 SetLastMergingMsg(evlist);
3569 Incorporate(evlist,
fOutput, merged);
3570 NotifyMemory(evlist);
3576 while ((obj = nxo())) {
3577 SetLastMergingMsg(obj);
3578 Incorporate(obj,
fOutput, merged);
3596 if (fProof && (!
IsClient() || fProof->IsLite())){
3601 RedirectOutput(fProof->IsLite());
3602 Info(
"NotifyMemory|Svc",
"Memory %ld virtual %ld resident after merging object %s",
3635 Info(
"Incorporate",
"enter: obj: %p (%s), list: %p",
3636 newobj, newobj ? newobj->
ClassName() :
"undef", outlist);
3639 if (!newobj || !outlist) {
3640 Error(
"Incorporate",
"Invalid inputs: obj: %p, list: %p", newobj, outlist);
3648 if (!HandleHistogram(newobj, merged)) {
3650 PDB(kOutput,1)
Info(
"Incorporate",
"histogram object '%s' merged", newobj->
GetName());
3652 PDB(kOutput,1)
Info(
"Incorporate",
"histogram object '%s' added to the" 3653 " appropriate list for delayed merging", newobj->
GetName());
3664 outlist->
Add(newobj);
3685 outlist->
Add(newobj);
3698 TH1 *
h =
dynamic_cast<TH1 *
>(obj);
3713 PDB(kOutput,2)
Info(
"HandleHistogram",
"h:%s ent:%d, buffer size: %d",
3718 if (!fOutputLists) {
3719 PDB(kOutput,2)
Info(
"HandleHistogram",
"create fOutputLists");
3720 fOutputLists =
new TList;
3723 list = (
TList *) fOutputLists->FindObject(h->
GetName());
3736 fOutputLists->Add(list);
3744 while ((href = (
TH1 *) nxh())) {
3748 list->AddBefore(href, h);
3759 while ((href = (
TH1 *) nxh())) {
3763 list->AddBefore(href, h);
3792 fOutputLists->Add(list);
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)");
3865 if (fOutputLists == 0) {
3866 PDB(kOutput,2)
Info(
"StoreOutput",
"Create fOutputLists");
3867 fOutputLists =
new TList;
3878 while ( (aList = dynamic_cast<TEventList*> (it())) ) {
3880 TIter nxe(fDSet->GetListOfElements());
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());
3891 Long64_t offset = elem->GetTDSetOffset();
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());
3915 fOutputLists->Add( list );
3921 PDB(kOutput,1)
Info(
"StoreOutput",
"leave");
3930 Info(
"MergeFeedback",
"Enter");
3932 if ( fFeedbackLists == 0 ) {
3934 Info(
"MergeFeedback",
"Leave (no output)");
3941 TIter next(fFeedbackLists);
3944 while ( (map = (
TMap*) next()) ) {
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)");
4053 if (fFeedbackLists == 0) {
4054 PDB(kFeedback,2)
Info(
"StoreFeedback",
"Create fFeedbackLists");
4055 fFeedbackLists =
new TList;
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());
4075 fFeedbackLists->Add(map);
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",
4103 fFeedback == 0 ?
"NOT ":
"");
4105 if (fFeedback == 0 || fFeedback->GetSize() == 0)
return;
4123 PDB(kFeedback,1)
Info(
"StopFeedback",
"Stop Timer");
4133 PDB(kFeedback,2)
Info(
"HandleTimer",
"Entry");
4142 TIter next(fFeedback);
4149 if (fFeedbackLists &&
4151 fFeedbackLists->Remove(m);
4164 if (fFeedbackLists == 0) {
4169 fb = MergeFeedback();
4171 PDB(kFeedback,2)
Info(
"HandleTimer",
"Sending %d objects", fb->
GetSize());
4197 if (fProcPackets->GetBinContent(bin) > 0)
4212 Info(
"GetNextPacket",
"%s (%s): '%s' '%s' '%s' %lld %lld",
4215 if (fProcPackets) fProcPackets->Fill(slave->
GetOrdinal(), 1);
4234 const char *selection,
Option_t *option,
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())) {
4277 if (objname ==
"") objname =
"htemp";
4279 fProof->AddFeedback(objname);
4281 fProof->RemoveFeedback(objname);
4291 delete selectionobj;
4295 TIter nxsi(savedInput);
4296 while ((o = nxsi()))
4310 fPacketizer->SetInitTime();
4326 Info(
"SetupFeedback",
"\"FeedbackList\" found: %d objects", fb->
GetSize());
4329 Info(
"SetupFeedback",
"\"FeedbackList\" NOT found");
4332 if (fb == 0 || fb->
GetSize() == 0)
return;
4353 PDB(kFeedback,1)
Info(
"StopFeedback",
"Stop Timer");
4363 PDB(kFeedback,2)
Info(
"HandleTimer",
"Entry");
4386 if (fFeedback == 0)
return kFALSE;
4396 TIter next(fFeedback);
4400 if (o != 0) fb->
Add(o);
4404 PDB(kFeedback,2)
Info(
"HandleTimer",
"Sending %d objects", fb->
GetSize());
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);
4462 answ <<
TString(
"Success") << t;
4464 answ <<
TString(
"Failed") << t;
4466 fSocket->Send(answ);
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);
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;
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);
4569 cur+=elem->GetNum();
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())) {
4591 TList *submasters =
dynamic_cast<TList*
>(msd->Key());
4592 TList *setelements =
dynamic_cast<TList*
>(msd->Value());
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");
4662 PDB(kGlobal,1)
Info(
"Process",
"Calling Collect");
4670 PDB(kGlobal,1)
Info(
"Process",
"Calling Merge Output");
4683 Int_t idx = fSlaves.IndexOf(sl);
4684 fSlaveProgress[idx] = processed;
4685 if (fSlaveTotals[idx] != total)
4686 Warning(
"Progress",
"total events has changed for slave %s", sl->
GetName());
4687 fSlaveTotals[idx] =
total;
4691 for (i = 0; i < fSlaveTotals.GetSize(); i++) tot += fSlaveTotals[i];
4693 for (i = 0; i < fSlaveProgress.GetSize(); i++) proc += fSlaveProgress[i];
4707 Info(
"Progress",
"%s: %lld %lld %f %f %f %f", sl->
GetName(),
4708 processed, bytesread, initTime, procTime, evtrti, mbrti);
4710 Int_t idx = fSlaves.IndexOf(sl);
4711 if (fSlaveTotals[idx] != total)
4712 Warning(
"Progress",
"total events has changed for slave %s", sl->
GetName());
4713 fSlaveTotals[idx] =
total;
4714 fSlaveProgress[idx] = processed;
4715 fSlaveBytesRead[idx] = bytesread;
4716 fSlaveInitTime[idx] = (initTime > -1.) ? initTime : fSlaveInitTime[idx];
4717 fSlaveProcTime[idx] = (procTime > -1.) ? procTime : fSlaveProcTime[idx];
4718 fSlaveEvtRti[idx] = (evtrti > -1.) ? evtrti : fSlaveEvtRti[idx];
4719 fSlaveMBRti[idx] = (mbrti > -1.) ? mbrti : fSlaveMBRti[idx];
4731 for (i = 0; i < fSlaveTotals.GetSize(); i++) {
4732 tot += fSlaveTotals[i];
4733 if (i < fSlaveProgress.GetSize())
4734 proc += fSlaveProgress[i];
4735 if (i < fSlaveBytesRead.GetSize())
4736 bytes += fSlaveBytesRead[i];
4737 if (i < fSlaveInitTime.GetSize())
4738 if (fSlaveInitTime[i] > -1. && (init < 0. || fSlaveInitTime[i] < init))
4739 init = fSlaveInitTime[i];
4740 if (i < fSlaveProcTime.GetSize())
4741 if (fSlaveProcTime[i] > -1. && (ptime < 0. || fSlaveProcTime[i] > ptime))
4742 ptime = fSlaveProcTime[i];
4743 if (i < fSlaveEvtRti.GetSize())
4744 if (fSlaveEvtRti[i] > -1.) {
4745 erti += fSlaveEvtRti[i];
4748 if (i < fSlaveMBRti.GetSize())
4749 if (fSlaveMBRti[i] > -1.) {
4750 srti += fSlaveMBRti[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(),
4771 Int_t idx = fSlaves.IndexOf(wrk);
4772 if (fSlaveTotals[idx] != pi->
fTotal)
4773 Warning(
"Progress",
"total events has changed for worker %s", wrk->
GetName());
4774 fSlaveTotals[idx] = pi->
fTotal;
4789 for (i = 0; i < fSlaveTotals.GetSize(); i++) {
4790 pisum.
fTotal += fSlaveTotals[i];
4791 if (i < fSlaveProgress.GetSize())
4793 if (i < fSlaveBytesRead.GetSize())
4795 if (i < fSlaveInitTime.GetSize())
4796 if (fSlaveInitTime[i] > -1. && (pisum.
fInitTime < 0. || fSlaveInitTime[i] < pisum.
fInitTime))
4798 if (i < fSlaveProcTime.GetSize())
4799 if (fSlaveProcTime[i] > -1. && (pisum.
fProcTime < 0. || fSlaveProcTime[i] > pisum.
fProcTime))
4801 if (i < fSlaveEvtRti.GetSize())
4802 if (fSlaveEvtRti[i] > -1.) {
4806 if (i < fSlaveMBRti.GetSize())
4807 if (fSlaveMBRti[i] > -1.) {
4811 if (i < fSlaveActW.GetSize())
4813 if (i < fSlaveTotS.GetSize())
4816 if (i < fSlaveEffS.GetSize())
4843 for (i = 0; i < fSlaveTotals.GetSize(); i++) {
4844 tot += fSlaveTotals[i];
4845 if (i < fSlaveProgress.GetSize())
4846 proc += fSlaveProgress[i];
4847 if (i < fSlaveBytesRead.GetSize())
4848 bytes += fSlaveBytesRead[i];
4849 if (i < fSlaveInitTime.GetSize())
4850 if (fSlaveInitTime[i] > -1. && (init < 0. || fSlaveInitTime[i] < init))
4851 init = fSlaveInitTime[i];
4852 if (i < fSlaveProcTime.GetSize())
4853 if (fSlaveProcTime[i] > -1. && (ptime < 0. || fSlaveProcTime[i] > ptime))
4854 ptime = fSlaveProcTime[i];
4855 if (i < fSlaveEvtRti.GetSize())
4856 if (fSlaveEvtRti[i] > -1.) {
4857 erti += fSlaveEvtRti[i];
4860 if (i < fSlaveMBRti.GetSize())
4861 if (fSlaveMBRti[i] > -1.) {
4862 srti += fSlaveMBRti[i];
4866 erti = (nerti > 0) ? erti / nerti : 0.;
4867 srti = (nsrti > 0) ? srti / nerti : 0.;
4878 m << tot << proc << bytes << init << ptime << erti << srti;
4884 if (fReturnFeedback)
4900 fReturnFeedback =
kTRUE;
4903 fReturnFeedback =
kFALSE;
virtual void SetMerging(Bool_t=kTRUE)
virtual Bool_t cd(const char *path=0)
Change current directory to "this" directory.
TClass * GetClass() const
virtual const char * BaseName(const char *pathname)
Base name of a file name. Base name of /user/root is root.
virtual const char * GetName() const
Returns name of object.
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 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).
virtual TDirectory * mkdir(const char *name, const char *title="")
Create a sub-directory "a" or a hierarchy of sub-directories "a/b/c/...".
ErrorHandlerFunc_t SetErrorHandler(ErrorHandlerFunc_t newhandler)
Set an errorhandler function. Returns the old handler.
void SetMerging(Bool_t on=kTRUE)
Switch on/off merge timer.
TProofProgressStatus * fProgressStatus
TFileInfo * GetFileInfo(const char *type="TTree")
Return the content of this element in the form of a TFileInfo.
virtual void Info(const char *method, const char *msgfmt,...) const
Issue info message.
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)
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.
const char * GetCacheDir() const
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.
void Print(Option_t *opt="") const
Print query content. Use opt = "F" for a full listing.
UInt_t GetTypeOpt() const
Int_t GetLearnEntries()
Return the number of entries in the learning phase.
static TMD5 * FileChecksum(const char *file)
Returns checksum of specified file.
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
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()
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)]...
const char * GetTopSessionTag() const
Long64_t GetMsgSizeHWM() const
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)
void SetWriteV3(Bool_t on=kTRUE)
Set/Reset the 'OldStreamer' bit in this instance and its elements.
static void FilterLocalroot(TString &path, const char *url="root://dum/")
If 'path' is local and 'dsrv' is Xrootd, apply 'path.Localroot' settings, if any. ...
TUrl * GetCurrentUrl() const
Return the current url.
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.
TObject * GetParameter(const char *par) const
Get specified parameter.
Bool_t CheckMemUsage(Long64_t &mfreq, Bool_t &w80r, Bool_t &w80v, TString &wmsg)
Check the memory usage, if requested.
Bool_t TestBit(UInt_t f) const
const char * GetProtocol() const
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.
TQueryResult * fPreviousQuery
Bool_t IsRegister() const
TSocket * GetSocket() const
void Add(const char *mesg)
Add an error message.
Double_t GetProcTime() const
TDatime GetStartTime() 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.
virtual Int_t GetEntries() const
virtual TObject * Last() const
Return the last object in the list. Returns 0 when list is empty.
static Long_t GetVirtMemMax()
VirtMemMax getter.
virtual int MakeDirectory(const char *name)
Make a directory.
virtual void AddFirst(TObject *obj)
Add object at the beginning of the list.
Long64_t GetEventsProcessed() const
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.
virtual Int_t GetNbinsZ() const
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.
Long64_t GetFirst() const
virtual int Load(const char *module, const char *entry="", Bool_t system=kFALSE)
Load a shared library.
const char * GetOrdinal() const
Implement Tree drawing using PROOF.
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 char * Which(const char *search, const char *file, EAccessMode mode=kFileExists)
Find location of file in a search path.
Int_t GetProtocol() const
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 void InvalidatePacket()
Invalidated the current packet (if any) by setting the TDSetElement::kCorrupted bit.
const char * GetName() const
Returns name of object.
void SetOption(Option_t *option)
void SetRecvTime(Float_t recvtime)
Bool_t IsTopMaster() const
TObject * FindObject(const char *name) const
Find object using its name.
Long64_t GetEntries() const
void SetDispatchTimer(Bool_t on=kTRUE)
Enable/disable the timer to dispatch pening events while processing.
const char * GetDataDirOpts() const
Implementation of TProof controlling PROOF federated clusters.
TString & Insert(Ssiz_t pos, const char *s)
virtual void SetInputList(TList *input)
const char * GetOptions() const
static Float_t GetMemHWM()
MemHWM getter.
TList * GetListOfElements() const
const char * GetOutputFileName() 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
const char * GetUrl(Bool_t withDeflt=kFALSE) const
Return full URL.
virtual TObject * FindObject(const char *name) const
Find an object in this list using its name.
TList * GetOutputList() const
Get output list.
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.
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 * GetFileName() const
This class defines a UUID (Universally Unique IDentifier), also known as GUIDs (Globally Unique IDent...
const char * GetFile() 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.
virtual Int_t GetDimension() const
static struct mg_connection * fc(struct mg_context *ctx)
virtual void ProcessFill(Long64_t)
TProofProgressStatus * GetProgressStatus() const
const char * GetHost() const
virtual int Unlink(const char *name)
Unlink, i.e. remove, a file.
Int_t GetQuerySeqNum() const
virtual const char * ClassName() const
Returns name of class to which the object belongs.
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...
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...
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
TSocket * GetSocket() const
const Double_t * GetBuffer() const
This code implements the MD5 message-digest algorithm.
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 Long64_t GetStatus() const
void IncEntries(Long64_t entries=1)
Float_t GetMaxProcTime() const
TMacro * GetSelecHdr() const
static Long64_t GetFileBytesRead()
Static function returning the total number of bytes read from all files.
void StopFeedback()
Stop reporting of feedback objects.
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.
const char * GetLibList() const
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 Long64_t * GetList() const
virtual const char * Getenv(const char *env)
Get environment variable.
void DeleteDrawFeedback(TDrawFeedback *f)
Delete draw feedback object.
virtual Int_t GetN() const
const char * GetDirectory() const
Return directory where to look for object.
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.
Bool_t EndsWith(const char *pat, ECaseCompare cmp=kExact) const
Return true if string ends with the specified string.
Long64_t fProcessedRun
Read calls in this run.
TDSetElement * Current() const
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.
void Validate()
Validate the TDSet by opening files.
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...
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
const char * GetDir(Bool_t raw=kFALSE) 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)
virtual const char * TempDirectory() const
Return a user configured or systemwide directory to create temporary files in.
Method or function calling interface.
void SetCurrentQuery(TQueryResult *q)
Set current query and save previous value.
virtual Long64_t GetEntryNumber(Long64_t)
const Bool_t kSortDescending
Bool_t SetDataMembers(TSelector *sel) const
Given an output list, set the data members of a TSelector.
Bool_t IsRetrieve() const
A container class for query results.
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.
virtual TIterator * MakeIterator(Bool_t dir=kIterForward) const
Return a list iterator.
TTimer * fFeedbackTimer
class of the latest selector
void SetFileName(const char *name)
void Print(Option_t *option="") const
Dump the class content.
void Feedback(TList *objs)
Feedback signal.
TFileMerger * GetFileMerger(Bool_t local=kFALSE)
Get instance of the file merger to be used in 'merge' mode.
const char * GetObjName() const
Int_t GetBufferSize() 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".
const char * GetName() const
Returns name of object.
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 SendAsynMessage(const char *msg, Bool_t lf=kTRUE)
Send an asychronous message to the master / client .
void HandleGetTreeHeader(TMessage *mess)
Handle tree header request.
void Clear(Option_t *option="")
Remove all objects from the list.
virtual int Version() const
TDSetElement * GetNextPacket(TSlave *slave, TMessage *r)
Get next packet (may not be used in this class).
virtual TObject * First() const
Return the first object in the list. Returns 0 when list is empty.
TObject * GetOutput(const char *name) const
Get output object by name.
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'.
const char * GetSessionDir() const
virtual void Abort(const char *why, EAbort what=kAbortProcess)
Abort processing.
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).
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.
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 Bool_t InheritsFrom(const char *classname) const
Returns kTRUE if object inherits from class "classname".
Bool_t BeginsWith(const char *s, ECaseCompare cmp=kExact) const
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.
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
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)
void SaveSource(FILE *fp)
Save macro source in file pointer fp.
A TEventList object is a list of selected events (entries) in a TTree.
Handles synchronous and a-synchronous timer events.
void SetLastMergingMsg(TObject *obj)
Set the message to be notified in case of exception.
virtual void SetFinalized()
The ROOT global object gROOT contains a list of all defined classes.
virtual Bool_t HandleTimer(TTimer *timer)
Send feedback objects to client.
virtual TObject * At(Int_t idx) const
Returns the object at position idx. Returns 0 if idx is out of range.
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.
write collection with single key
void SetName(const char *name)
void Reset(Detail::TBranchProxy *x)
void HandleRecvHisto(TMessage *mess)
Receive histo from slave.
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).
Bool_t IsValid() const
Return true if the method call has been properly initialized and is usable.
TStatus * fSelStatus
iterator on events or objects
void FeedBackCanvas(const char *name, Bool_t create)
Create/destroy a named canvas for feedback.
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.
void MapOutputListToDataMembers() 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()
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.
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 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)
Float_t GetEffSessions() const
The packetizer is a load balancing object created for each query.
TMacro * GetSelecImp() const
Class used by TMap to store (key,value) pairs.
virtual Bool_t IsEmpty() const
virtual const char * GetIncludePath()
Get the list of include path.
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()
Bool_t IsClient() const
Is the player running on the client?
void ResetParam()
Reset parameter list. To be used before the first call the SetParam().
virtual Func_t DynFindSymbol(const char *module, const char *entry)
Find specific entry point in specified library.
virtual const char * HostName()
Return the system's host name.
void RedirectOutput(Bool_t on=kTRUE)
Control output redirection to TProof::fLogFileW.
virtual void ls(Option_t *option="") const
List (ls) all objects in this collection.
Ssiz_t Last(char c) const
Find last occurrence of a character c.
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.
Bool_t IsFinalized() const
Describe directory structure in memory.
TDirectory * GetDirectory() const
TMap implements an associative array of (key,value) pairs using a THashTable for efficient retrieval ...
void HandleGetTreeHeader(TMessage *mess)
Handle tree header request.
This class controls a Parallel ROOT Facility, PROOF, cluster.
static THashList * fgDrawInputPars
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
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 Double_t GetEntries() const
Return the current number of entries.
virtual void Reset()
Reset or initialize access to the elements.
virtual Bool_t Process(Long64_t)
Bool_t MergeOutputFiles()
Merge output in files.
const char * GetFileName() const
virtual void DispatchOneEvent(Bool_t pendingOnly=kFALSE)
Dispatch a single event.
UInt_t Convert(Bool_t toGMT=kFALSE) const
Convert fDatime from TDatime format to the standard time_t format.
TList * GetMergeList() const
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.
const char * GetType() const
void SetSelectorDataMembersFromOutputList()
Set the selector's data members: find the mapping of data members to otuput list entries in the outpu...
const char * AsString() const
Return UUID as string. Copy string immediately since it will be reused.
virtual Long64_t GetEntries() const
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 * Clone(const char *newname="") const
Make a clone of an object using the Streamer facility.
void StopFeedback()
Stop feedback.
typedef void((*Func_t)())
TObject * HandleHistogram(TObject *obj, Bool_t &merged)
Low statistic histograms need a special treatment when using autobin.
TObject * FindObject(const char *keyname) const
Check if a (key,value) pair exists with keyname as name of the key.
Long64_t GetBytesRead() const
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).
Int_t GetBufferLength() const
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.
const char * GetMsd() const
TFileCollection * GetFileCollection()
Get instance of the file collection to be used in 'dataset' mode.
virtual TList * GetInputList() const
virtual int GetProcInfo(ProcInfo_t *info) const
Returns cpu and memory used by this process into the ProcInfo_t structure.
void SetParam(Long_t l)
Add a long method parameter.
TObject * GetValue(const char *keyname) const
Returns a pointer to the value associated with keyname as name of the key.
Int_t Atoi() const
Return integer value of string.
void StopProcess(Bool_t abort, Int_t timeout=-1)
Stop the process after this event.
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.
void SetExitStatus(Int_t est)
static void Stop()
Terminate the PROOF statistics run.
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.
virtual Int_t GetNbinsX() const
Int_t GetTotSessions() const
virtual void Print(Option_t *option="") const
Default print for collections, calls Print(option, 1).
virtual const char * GetName() const
Returns name of object.
virtual Int_t GetSize() const
Class describing a PROOF worker server.
const char * GetDataDir() const
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.
const char * GetObjName() const
virtual void Reset()
Reset merger file list.
virtual void SetTitle(const char *title="")
Set the title of the TNamed.
Bool_t IsParallel() const
True if in parallel mode.
A List of entry numbers in a TTree or TChain.
TList * GetListOfActiveSlaves() const
const char * GetOrdinal() const
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...
void StoreOutput(TList *out)
Store received output list.
virtual EAbort GetAbort() const
void SetProcessing(Bool_t on=kTRUE)
Set processing bit according to 'on'.
virtual void Warning(const char *method, const char *msgfmt,...) const
Issue warning message.
void Progress(Long64_t total, Long64_t processed)
Progress signal.
virtual ~TProofPlayer()
Destructor.
virtual const char * GetName() const
Return name of this collection.
virtual TList * GetOutputList() const
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...
virtual Int_t GetNbinsY() const
virtual const char * GetTitle() const
Returns title of object.
const char * GetPrefix() const
EExitStatus GetExitStatus() const
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).
const char * GetDirectory() const
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 * Data() const