82 #define kPEX_STOPPED 1001 83 #define kPEX_ABORTED 1002 89 class TAutoBinVal :
public TNamed {
91 Double_t fXmin, fXmax, fYmin, fYmax, fZmin, fZmax;
99 fZmin = zmin; fZmax = zmax;
104 xmin = fXmin; xmax = fXmax;
105 ymin = fYmin; ymax = fYmax;
106 zmin = fZmin; zmax = fZmax;
115 class TDispatchTimer :
public TTimer {
129 Bool_t TDispatchTimer::Notify()
131 if (
gDebug > 0) printf(
"TDispatchTimer::Notify: called!\n");
144 class TProctimeTimer :
public TTimer {
158 Bool_t TProctimeTimer::Notify()
160 if (
gDebug > 0) printf(
"TProctimeTimer::Notify: called!\n");
172 class TStopTimer :
public TTimer {
190 :
TTimer(((to <= 0 || to > 864000) ? 10 : to * 1000),
kFALSE)
193 Info (
"TStopTimer",
"enter: %d, timeout: %d", abort, to);
199 Info (
"TStopTimer",
"timeout set to %s ms", fTime.AsString());
208 Bool_t TStopTimer::Notify()
210 if (
gDebug > 0) printf(
"TStopTimer::Notify: called!\n");
224 THashList *TProofPlayer::fgDrawInputPars = 0;
230 : fAutoBins(0), fOutput(0), fSelector(0), fCreateSelObj(
kTRUE), fSelectorClass(0),
231 fFeedbackTimer(0), fFeedbackPeriod(2000),
232 fEvIter(0), fSelStatus(0),
233 fTotalEvents(0), fReadBytesRun(0), fReadCallsRun(0), fProcessedRun(0),
234 fQueryResults(0), fQuery(0), fPreviousQuery(0), fDrawQueries(0),
235 fMaxDrawQueries(1), fStopTimer(0), fStopTimerMtx(0), fDispatchTimer(0),
236 fProcTimeTimer(0), fProcTime(0),
238 fSaveMemThreshold(-1), fSavePartialResults(
kFALSE), fSaveResultsPerPacket(
kFALSE)
251 initLimitsFinder =
kTRUE;
293 Info (
"StopProcess",
"abort: %d, timeout: %d", abort, timeout);
298 if (abort ==
kTRUE) {
335 fStopTimer =
new TStopTimer(
this, abort, timeout);
339 Info (
"SetStopTimer",
"%s timer STARTED (timeout: %d)",
340 (abort ?
"ABORT" :
"STOP"), timeout);
343 Info (
"SetStopTimer",
"timer STOPPED");
354 Warning(
"AddQueryResult",
"query undefined - do nothing");
435 if (ref && strlen(ref) > 0) {
509 Info(
"ReinitSelector",
"query undefined - do nothing");
515 if (selec.
Length() <= 0) {
516 Info(
"ReinitSelector",
"selector name undefined - do nothing");
529 if (!stdselec && !compselec) {
536 TMD5 *md5icur = 0, *md5iold = 0, *md5hcur = 0, *md5hold = 0;
550 if (md5hcur && md5hold && md5icur && md5iold)
551 if (*md5hcur == *md5hold && *md5icur == *md5iold)
558 if (selc)
delete [] selc;
589 if (
id !=
kNPOS &&
id < opt.Length() - 1)
590 selec += opt(
id + 1, opt.Length());
593 Info(
"ReinitSelector",
"problems locating or exporting selector files");
641 Info(
"ReinitSelector",
"compiled selector re-init failed:" 642 " automatic reload unsuccessful:" 643 " please load manually the correct library");
659 if (ipathold.
Length() > 0)
790 Info(
"SavePartialResults",
"partial result saving disabled");
796 Error(
"SavePartialResults",
"gProofServ undefined: something really wrong going on!!!");
800 Error(
"SavePartialResults",
"fOutput undefined: something really wrong going on!!!");
805 Info(
"SavePartialResults",
"start saving partial results {%d,%d,%d,%d}",
809 PDB(kOutput, 2)
Info(
"SavePartialResults",
"fEvIter: %p",
fEvIter);
812 PDB(kOutput, 2)
Info(
"SavePartialResults",
"list of packets: %p, sz: %d",
813 packets, (packets ? packets->
GetSize(): -1));
816 const char *oopt =
"UPDATE";
845 if (packetsDir) packetsDir->
cd();
855 while ((o = nxo())) {
859 if (!strncmp(o->
GetName(),
"PROOF_", 6))
continue;
863 if (!strcmp(o->
GetName(),
"MissingFiles"))
continue;
894 if (queryend) torm.
Add(o);
921 if (!strcmp(
TUrl(oname,
kTRUE).GetProtocol(),
"file")) {
934 oname.
Form(
"<datadir>/%s", baseName.
Data());
954 if (queryend && torm.
GetSize() > 0) {
961 Info(
"SavePartialResults",
"partial results saved to file");
972 if (selector_file && strlen(selector_file)) {
987 Error(
"AssertSelector",
"cannot load: %s", selector_file );
993 Info(
"AssertSelector",
"Processing via filename");
995 Error(
"AssertSelector",
"no TSelector object define : cannot continue!");
998 Info(
"AssertSelector",
"Processing via TSelector object");
1029 PDB(kGlobal,1)
Info(
"Process",
"Enter");
1040 Error(
"Process",
"cannot assert the selector object");
1067 while ((e = dset->
Next())) {
1075 Int_t useTreeCache = 1;
1077 if (useTreeCache > -1 && useTreeCache < 2)
1078 gEnv->
SetValue(
"ProofPlayer.UseTreeCache", useTreeCache);
1086 Int_t useParallelUnzip = 0;
1088 if (useParallelUnzip > -1 && useParallelUnzip < 2)
1089 gEnv->
SetValue(
"ProofPlayer.UseParallelUnzip", useParallelUnzip);
1092 Int_t dontCacheFiles = 0;
1094 if (dontCacheFiles == 1)
1107 opt =
gEnv->
GetValue(
"ProofPlayer.SavePartialResults", 0);
1120 Info(
"Process",
"memory threshold for saving objects to file set to %ld kB",
1123 Error(
"Process",
"cannot get SysInfo_t (!)");
1128 PDB(kLoop,1)
Info(
"Process",
"Call Begin(0)");
1133 PDB(kLoop,1)
Info(
"Process",
"Call Begin(0)");
1137 PDB(kLoop,1)
Info(
"Process",
"Call SlaveBegin(0)");
1145 Error(
"Process",
"exception %d caught", excode);
1152 Warning(
"Process",
"problems seetting up file-object swapping");
1161 Info(
"Process",
"Looping over Process()");
1188 TString lastMsg(
"(unfortunately no detailed info is available about current packet)");
1191 if (!
CheckMemUsage(singleshot, warnHWMres, warnHWMvir, wmsg)) {
1201 }
else if (!wmsg.
IsNull()) {
1205 TPair *currentElem = 0;
1224 if (currentElem->Value() != dset->
Current()) {
1225 currentElem->SetValue(dset->
Current());
1232 lastMsg =
"check logs for possible stacktrace - last cycle:";
1236 lastMsg.
Form(
"while processing dset:'%s', file:'%s'" 1237 " - check logs for possible stacktrace - last event:", dset->
GetName(), fn.
Data());
1250 if (maxproctime > 0) {
1257 if (refnum < 0 && maxproctime <= 0) {
1258 wmsg.
Form(
"neither entries nor max proc time specified:" 1259 " risk of infinite loop: processing aborted");
1270 while (refnum < 0 || num--) {
1287 Info(
"Process",
"max proc time reached (%ld msecs): packet processing stopped:\n%s",
1288 maxproctime, lastMsg.
Data());
1306 Info(
"Process",
"Call ProcessCut(%lld)", entry);
1309 Info(
"Process",
"Call ProcessFill(%lld)", entry);
1314 Info(
"Process",
"Call Process(%lld)", entry);
1320 Info(
"Process",
"packet processing aborted following the" 1321 " selector settings:\n%s", lastMsg.
Data());
1330 if (!
CheckMemUsage(memlogfreq, warnHWMres, warnHWMvir, wmsg)) {
1367 Info(
"Process",
"received stop-process signal");
1371 Info(
"Process",
"received abort-process signal");
1374 Error(
"Process",
"exception %d caught", excode);
1383 TPair *currentElem = 0;
1386 delete currentElem->
Key();
1395 if (!wmsg.
IsNull())
Warning(
"Process",
"%s (%s)", wmsg.
Data(), shrc ?
"warn" :
"hwm");
1417 Warning(
"Process",
"problems saving the results to file");
1427 while ((o = nxo())) {
1433 const char *dir = of->
GetDir();
1434 if (!dir || (dir && strlen(dir) <= 0)) {
1436 }
else if (dir && strlen(dir) > 0) {
1438 if (!strcmp(u.
GetHost(),
"localhost") || !strcmp(u.
GetHost(),
"127.0.0.1") ||
1439 !strcmp(u.
GetHost(),
"localhost.localdomain")) {
1452 PDB(kLoop,1)
Info(
"Process",
"Call Terminate()");
1455 PDB(kLoop,1)
Info(
"Process",
"Call SlaveTerminate()");
1458 PDB(kLoop,1)
Info(
"Process",
"Call Terminate()");
1491 Error(
"Process",
"selector object undefiend!");
1498 return Process(dset, (
const char *)0, option, nentries, first);
1518 if (mfreq > 0 && processed%mfreq == 0) {
1524 Info(
"CheckMemUsage|Svc",
"Memory %ld virtual %ld resident event %lld",
1531 wmsg.
Form(
"using more than %d%% of allowed virtual memory (%ld kB)" 1537 wmsg.
Form(
"using more than %d%% of allowed virtual memory (%ld kB)",
1545 wmsg.
Form(
"using more than %d%% of allowed resident memory (%ld kB)" 1552 wmsg.
Form(
"using more than %d%% of allowed both virtual and resident memory ({%ld,%ld} kB)",
1555 wmsg.
Form(
"using more than %d%% of allowed resident memory (%ld kB)",
1625 val =
new TAutoBinVal(name,xmin,xmax,ymin,ymax,zmin,zmax);
1628 val->GetAll(xmin,xmax,ymin,ymax,zmin,zmax);
1703 if (!gDrawCanvasHook) {
1705 TString drawlib =
"libProofDraw";
1715 Warning(
"DrawCanvas",
"can't find DrawCanvas");
1717 Warning(
"DrawCanvas",
"can't load %s", drawlib.
Data());
1719 Warning(
"DrawCanvas",
"can't locate %s", drawlib.
Data());
1721 if (gDrawCanvasHook && obj)
1722 return (*gDrawCanvasHook)(obj);
1735 static Int_t (*gGetDrawArgsHook)(
const char *,
const char *,
Option_t *,
1739 if (!gGetDrawArgsHook) {
1741 TString drawlib =
"libProofDraw";
1749 gGetDrawArgsHook = (
Int_t (*)(
const char *,
const char *, Option_t *,
1750 TString &, TString &))(
f);
1752 Warning(
"GetDrawArgs",
"can't find GetDrawArgs");
1754 Warning(
"GetDrawArgs",
"can't load %s", drawlib.
Data());
1756 Warning(
"GetDrawArgs",
"can't locate %s", drawlib.
Data());
1758 if (gGetDrawArgsHook)
1759 return (*gGetDrawArgsHook)(var, sel, opt, selector, objname);
1769 static void (*gFeedBackCanvasHook)(
const char *,
Bool_t) = 0;
1772 if (!gFeedBackCanvasHook) {
1774 TString drawlib =
"libProofDraw";
1782 gFeedBackCanvasHook = (
void (*)(
const char *,
Bool_t))(
f);
1784 Warning(
"FeedBackCanvas",
"can't find FeedBackCanvas");
1786 Warning(
"FeedBackCanvas",
"can't load %s", drawlib.
Data());
1788 Warning(
"FeedBackCanvas",
"can't locate %s", drawlib.
Data());
1790 if (gFeedBackCanvasHook) (*gFeedBackCanvasHook)(
name, create);
1819 if (!fMergeSTW) fMergeSTW =
new TStopwatch();
1821 Info(
"SetMerging",
"ON: mergers: %d", fProof->fMergersCount);
1822 if (fNumMergers <= 0 && fProof->fMergersCount > 0)
1823 fNumMergers = fProof->fMergersCount;
1824 }
else if (fMergeSTW) {
1826 Float_t rt = fMergeSTW->RealTime();
1828 Info(
"SetMerging",
"OFF: rt: %f, mergers: %d", rt, fNumMergers);
1858 Error(
"Process",
"selector object undefiend!");
1901 TProofPlayerRemote::~TProofPlayerRemote()
1910 if (fProcessMessage)
1919 Long64_t first,
const char *defpackunit,
1920 const char *defpackdata)
1923 PDB(kGlobal,1)
Info(
"Process",
"Enter");
1928 Int_t honebyone = 1;
1930 honebyone =
gEnv->
GetValue(
"ProofPlayer.MergeTH1OneByOne", 1);
1931 fMergeTH1OneByOne = (honebyone == 1) ?
kTRUE :
kFALSE;
1936 TList *listOfMissingFiles = 0;
1945 packetizer = defpackunit;
1947 Info(
"InitPacketizer",
"using alternate packetizer: %s", packetizer.
Data());
1952 Error(
"InitPacketizer",
"class '%s' not found", packetizer.
Data());
1958 callEnv.
InitWithPrototype(cl, cl->GetName(),
"TList*,Long64_t,TList*,TProofProgressStatus*");
1960 Error(
"InitPacketizer",
1961 "cannot find correct constructor for '%s'", cl->GetName());
1976 Error(
"InitPacketizer",
"received stop/abort request");
1982 packetizer =
"TPacketizerMulti";
1987 Error(
"InitPacketizer",
"class '%s' not found", packetizer.
Data());
1995 Error(
"InitPacketizer",
"cannot find correct constructor for '%s'", cl->
GetName());
2021 listOfMissingFiles =
new TList;
2030 Error(
"InitPacketizer",
"received stop/abort request");
2039 Error(
"InitPacketizer",
"No files from the data set were found - Aborting");
2041 if (listOfMissingFiles) {
2051 packetizer = defpackdata;
2053 Info(
"InitPacketizer",
"using alternate packetizer: %s", packetizer.
Data());
2058 Error(
"InitPacketizer",
"class '%s' not found", packetizer.
Data());
2064 callEnv.
InitWithPrototype(cl, cl->GetName(),
"TDSet*,TList*,Long64_t,Long64_t,TList*,TProofProgressStatus*");
2066 Error(
"InitPacketizer",
"cannot find correct constructor for '%s'", cl->GetName());
2087 Error(
"InitPacketizer",
"cannot construct '%s'", cl->
GetName());
2092 if (!fPacketizer->IsValid()) {
2093 Error(
"InitPacketizer",
2094 "instantiated packetizer object '%s' is invalid", cl->
GetName());
2115 if (!listOfMissingFiles)
2116 listOfMissingFiles =
new TList;
2126 if (listOfMissingFiles && listOfMissingFiles->
GetSize() > 0) {
2127 TIter missingFiles(listOfMissingFiles);
2133 msg =
Form(
"File not found: %s - skipping!",
2136 msg =
Form(
"File not found: %s - skipping!", fi->
GetName());
2143 listOfMissingFiles->
SetName(
"MissingFiles");
2153 msg =
Form(
" About %.2f %c of the requested files (%d out of %d) were missing or unusable; details in" 2154 " the 'missingFiles' list", xb * 100.,
'%', nbad, nbad + ngood);
2157 " +++ About %.2f %c of the requested files (%d out of %d) are missing or unusable; details in" 2158 " the 'MissingFiles' list\n" 2159 " +++", xb * 100.,
'%', nbad, nbad + ngood);
2181 PDB(kGlobal,1)
Info(
"Process",
"Enter");
2187 Error(
"Process",
"No progress status");
2200 if (fProof->IsMaster()){
2210 fSelectorFileName = selector_file;
2213 if(!SendSelector(selector_file))
return -1;
2224 TList *inputtmp = 0;
2226 if (fProof->IsMaster()) {
2228 PDB(kPacketizer,1)
Info(
"Process",
"Create Proxy TDSet");
2234 if (InitPacketizer(dset, nentries, first,
"TPacketizerUnit",
"TPacketizer") != 0) {
2235 Error(
"Process",
"cannot init the packetizer");
2250 if (clf.IsDigit()) { memlogfreq = clf.
Atoi(); mrc = 0; }
2252 if ((mrc =
TProof::GetParameter(fProof->GetInputList(),
"PROOF_MemLogFreq", mlf)) == 0) memlogfreq = mlf;
2253 if (memlogfreq == 0) {
2254 memlogfreq = fPacketizer->GetTotalEntries()/(fProof->GetParallel()*100);
2255 if (memlogfreq <= 0) memlogfreq = 1;
2257 if (mrc == 0) fProof->SetParameter(
"PROOF_MemLogFreq", memlogfreq);
2263 Warning(
"Process",
"could not forward input data: %s", emsg.
Data());
2268 Warning(
"Process",
"could not attach to histogram 'PROOF_ProcPcktHist'");
2271 Info(
"Process",
"attached to histogram 'PROOF_ProcPcktHist' to record" 2272 " packets being processed");
2298 fOutputLists->Delete();
2299 delete fOutputLists;
2306 Info(
"Process",
"starting new query");
2329 while ((o = nxi())) {
2333 inputtmp =
new TList;
2347 PDB(kLoop,1)
Info(
"Process",
"Call Begin(0)");
2355 fProof->SendInputDataFile();
2367 if (fProof->fProtocol < 13)
2375 TEntryList *enl = (!fProof->IsMaster()) ? dynamic_cast<TEntryList *>(set->GetEntryList())
2377 TEventList *evl = (!fProof->IsMaster() && !enl) ? dynamic_cast<TEventList *>(set->GetEntryList())
2379 if (fProof->fProtocol > 14) {
2380 if (fProcessMessage)
delete fProcessMessage;
2382 mesg <<
set << fn <<
fInput << opt << num << fst << evl << sync << enl;
2383 (*fProcessMessage) <<
set << fn <<
fInput << opt << num << fst << evl << sync << enl;
2385 mesg <<
set << fn <<
fInput << opt << num << fst << evl << sync;
2388 Warning(
"Process",
"entry lists not supported by the server");
2392 fProof->ResetMergePrg();
2394 Int_t nb = fProof->Broadcast(mesg);
2395 PDB(kGlobal,1)
Info(
"Process",
"Broadcast called: %d workers notified", nb);
2396 if (fProof->IsLite()) fProof->fNotIdle += nb;
2399 if (fProof->fProtocol < 13)
2404 fProof->fRedirLog =
kTRUE;
2408 Info(
"Process|Svc",
"Start merging Memory information");
2415 PDB(kGlobal,1)
Info(
"Process",
"Asynchronous processing:" 2416 " activating CollectInputFrom");
2422 return fProof->fSeqNum;
2425 PDB(kGlobal,1)
Info(
"Process",
"Calling Collect");
2441 fPacketizer->GetInitTime(),
2450 PDB(kGlobal,1)
Info(
"Process",
"Synchronous processing: calling Collect");
2452 if (!(fProof->IsSync())) {
2454 Info(
"Process",
"switching to the asynchronous mode ...");
2455 return fProof->fSeqNum;
2461 fProof->fRedirLog =
kFALSE;
2477 fPacketizer->GetInitTime(),
2478 fPacketizer->GetProcTime());
2492 TIter nxi(inputtmp);
2514 Error(
"Process",
"selector object undefined");
2538 if (!fProcessMessage || !fProof || !fPacketizer) {
2539 Error(
"Process",
"Should not happen: fProcessMessage=%p fProof=%p fPacketizer=%p",
2540 fProcessMessage, fProof, fPacketizer);
2544 if (!workers || !fProof->IsMaster()) {
2545 Error(
"Process",
"Invalid call");
2550 Info(
"Process",
"Preparing %d new worker(s) to process", workers->
GetEntries());
2555 Info(
"Process",
"Sending selector file %s", fSelectorFileName.Data());
2556 if(!SendSelector(fSelectorFileName.Data())) {
2557 Error(
"Process",
"Problems in sending selector file %s", fSelectorFileName.Data());
2562 if (fProof->IsLite()) fProof->fNotIdle += workers->
GetSize();
2565 Info(
"Process",
"Adding new workers to the packetizer");
2566 if (fPacketizer->AddWorkers(workers) == -1) {
2567 Error(
"Process",
"Cannot add new workers to the packetizer!");
2572 Info(
"Process",
"Broadcasting process message to new workers");
2573 fProof->Broadcast(*fProcessMessage, workers);
2595 while ((o = nxo())) {
2596 if ((pf = dynamic_cast<TProofOutputFile*>(o))) {
2606 Error(
"MergeOutputFiles",
"file merger is null in TProofOutputFile! Protocol error?");
2624 if (outfile.Contains(
"<datadir>/")) {
2639 if (outfile.BeginsWith(
"client:")) outfile.Replace(0, 7,
"");
2642 outfile.Form(
"%s%s", ddir.
Data(), bn.
Data());
2649 if (outfile.BeginsWith(
"master:")) outfile.Replace(0, 7,
"");
2656 if (uof.GetPort() > 0 && usrv.
GetPort() > 0 &&
2670 outfilerem.
Insert(0, srv);
2678 Error(
"MergeOutputFiles",
"cannot open the output file");
2683 if (!filemerger->
Merge()) {
2684 Error(
"MergeOutputFiles",
"cannot merge the output files");
2690 TIter next(fileList);
2694 if (!strcmp(u.GetProtocol(),
"file")) {
2702 filemerger->
Reset();
2712 pf->
Merge(&dumlist);
2717 Error(
"MergeOutputFiles",
"file collection is null in TProofOutputFile! Protocol error?");
2738 if (!rmList) rmList =
new TList;
2747 if (rmList && rmList->
GetSize() > 0) {
2750 while((o = nxo())) {
2757 PDB(kOutput,1)
Info(
"MergeOutputFiles",
"done!");
2774 PDB(kOutput,1)
Warning(
"SetSelectorDataMembersFromOutputList",
2775 "failed to find map object in output list!");
2790 if (fOutputLists == 0) {
2797 PDB(kGlobal,1)
Info(
"Finalize",
"Calling Merge Output to finalize the output list");
2803 if (fProof->IsMaster()) {
2816 PDB(kOutput,1)
Info(
"Finalize",
"Calling Merge Output");
2827 TList *parms = fPacketizer->GetConfigParams(
kTRUE);
2837 if (fPacketizer->GetFailedPackets()) {
2840 if (!listOfMissingFiles) {
2841 listOfMissingFiles =
new TList;
2842 listOfMissingFiles->
SetName(
"MissingFiles");
2844 TIter nxe(fPacketizer->GetFailedPackets());
2868 Info(
"Finalize",
"problems reinitializing selector \"%s\"",
2875 if (
TList *failedPackets = fPacketizer->GetFailedPackets()) {
2876 fPacketizer->SetFailedPackets(0);
2877 failedPackets->SetName(
"FailedPackets");
2882 status->
Add(
"Some packets were not processed! Check the the" 2883 " 'FailedPackets' list in the output list");
2892 while(
TObject* obj = next()) {
2893 if (fProof->IsParallel() ||
DrawCanvas(obj) == 1)
2899 Warning(
"Finalize",
"undefined output list in the selector! Protocol error?");
2909 SetSelectorDataMembersFromOutputList();
2911 PDB(kLoop,1)
Info(
"Finalize",
"Call Terminate()");
2915 fProof->fQuerySTW.Reset();
2933 Warning(
"Finalize",
"current TQueryResult object is undefined!");
2963 PDB(kGlobal,1)
Info(
"Process",
"exit");
2968 fProof->FinalizationDone();
2978 PDB(kGlobal,1)
Info(
"Finalize(TQueryResult *)",
"Enter");
2981 Info(
"Finalize(TQueryResult *)",
2982 "method to be executed only on the clients");
2987 Info(
"Finalize(TQueryResult *)",
"query undefined");
2992 Info(
"Finalize(TQueryResult *)",
"query already finalized");
3004 fOutputLists->Delete();
3005 delete fOutputLists;
3016 Info(
"Finalize(TQueryResult *)",
"outputlist is empty");
3020 if (fProof->fProtocol < 11)
3028 if (fProof->fProtocol < 11) {
3034 SetSelectorDataMembersFromOutputList();
3050 if (!selector_file) {
3051 Info(
"SendSelector",
"Invalid input: selector (file) name undefined");
3057 Info(
"SendSelector",
"selector name '%s' does not contain a '.':" 3058 " nothing to send, it will be loaded from a library", selector_file);
3063 TString selec = selector_file;
3095 Info(
"SendSelector",
3096 "header file not found: tried: %s %s", h.
Data(), header.
Data());
3103 Info(
"SendSelector",
"problems sending implementation file %s", selec.
Data());
3107 Info(
"SendSelector",
"problems sending header file %s", header.
Data());
3119 PDB(kOutput,1)
Info(
"MergeOutput",
"Enter");
3124 TIter next(fOutputLists);
3127 while ( (list = (
TList *) next()) ) {
3130 obj = list->
First();
3135 if ( list->
IsEmpty() )
continue;
3145 while ( (obj = list->
First()) ) {
3155 PDB(kOutput,1)
Info(
"MergeOutput",
"fOutputLists empty");
3158 if (!
IsClient() || fProof->IsLite()) {
3172 while ((obj = nxo())) {
3176 PDB(kOutput,2)
Info(
"MergeOutput",
"found TProofOutputFile '%s'", obj->
GetName());
3178 PDB(kOutput,2)
Info(
"MergeOutput",
"outputfilename: '%s'", dir.Data());
3180 if (dir.Last(
'/') !=
kNPOS) dir.Remove(dir.Last(
'/')+1);
3181 PDB(kOutput,2)
Info(
"MergeOutput",
"dir: '%s'", dir.Data());
3190 PDB(kOutput,2)
Info(
"MergeOutput",
"rawdir: '%s'", dir.Data());
3209 if (dir.EndsWith(
".merger")) dir.Remove(dir.Last(
'.'));
3212 }
else if (fProof->IsLite()) {
3225 PDB(kOutput,2)
Info(
"MergeOutput",
"output object '%s' is not a TProofOutputFile", obj->
GetName());
3231 TIter nxrm(&rmlist);
3232 while ((obj = nxrm()))
3239 if (saveMemValues) {
3258 fProof->Progress(total, processed);
3262 m << total << processed;
3276 Info(
"Progress",
"%lld %lld %lld %f %f %f %f", total, processed, bytesread,
3277 initTime, procTime, evtrti, mbrti);
3280 fProof->Progress(total, processed, bytesread, initTime, procTime, evtrti, mbrti);
3284 m << total << processed << bytesread << initTime << procTime << evtrti << mbrti;
3312 Warning(
"Progress",
"TProofProgressInfo object undefined!");
3322 fProof->Feedback(objs);
3330 if (fPacketizer != 0)
3331 fPacketizer->StopProcess(abort,
kFALSE);
3350 Info(
"AddOutputObject",
"Enter: %p (%s)", obj, obj ? obj->
ClassName() :
"undef");
3354 PDB(kOutput,1)
Info(
"AddOutputObject",
"Invalid input (obj == 0x0)");
3367 if (elists && !strcmp(elists->
GetName(),
"PROOF_EventListsList")) {
3374 TIter nxevl(elists);
3376 while ((evl = dynamic_cast<TEventList *> (nxevl()))) {
3380 TIter nxelem(fDSet->GetListOfElements());
3382 while ((elem = dynamic_cast<TDSetElement *> (nxelem()))) {
3383 if (!strcmp(elem->GetFileName(), evl->
GetName()))
3387 Error(
"AddOutputObject",
"Found an event list for %s, but no object with" 3388 " the same name in the TDSet", evl->
GetName());
3391 Long64_t offset = elem->GetTDSetOffset();
3396 if (arr && offset > 0)
3397 for (
Int_t i = 0; i < num; i++)
3405 SetLastMergingMsg(evlist);
3406 Incorporate(evlist,
fOutput, merged);
3407 NotifyMemory(evlist);
3421 fMergeFiles =
kTRUE;
3422 if (!
IsClient() || fProof->IsLite()) {
3463 if (!of.
EndsWith(
".merger")) of +=
".merger";
3480 SetLastMergingMsg(obj);
3481 Incorporate(obj,
fOutput, merged);
3485 return (merged ? 1 : 0);
3493 if (on && fProof && fProof->fLogFileW) {
3497 if (fErrorHandler) {
3512 PDB(kOutput,1)
Info(
"AddOutput",
"Enter");
3516 PDB(kOutput,1)
Info(
"AddOutput",
"Invalid input (out == 0x0)");
3534 TIter nxevl(elists);
3536 while ((evl = dynamic_cast<TEventList *> (nxevl()))) {
3540 TIter nxelem(fDSet->GetListOfElements());
3542 while ((elem = dynamic_cast<TDSetElement *> (nxelem()))) {
3543 if (!strcmp(elem->GetFileName(), evl->
GetName()))
3547 Error(
"AddOutput",
"Found an event list for %s, but no object with" 3548 " the same name in the TDSet", evl->
GetName());
3551 Long64_t offset = elem->GetTDSetOffset();
3556 if (arr && offset > 0)
3557 for (
Int_t i = 0; i < num; i++)
3570 SetLastMergingMsg(evlist);
3571 Incorporate(evlist,
fOutput, merged);
3572 NotifyMemory(evlist);
3578 while ((obj = nxo())) {
3579 SetLastMergingMsg(obj);
3580 Incorporate(obj,
fOutput, merged);
3598 if (fProof && (!
IsClient() || fProof->IsLite())){
3603 RedirectOutput(fProof->IsLite());
3604 Info(
"NotifyMemory|Svc",
"Memory %ld virtual %ld resident after merging object %s",
3637 Info(
"Incorporate",
"enter: obj: %p (%s), list: %p",
3638 newobj, newobj ? newobj->
ClassName() :
"undef", outlist);
3641 if (!newobj || !outlist) {
3642 Error(
"Incorporate",
"Invalid inputs: obj: %p, list: %p", newobj, outlist);
3650 if (!HandleHistogram(newobj, merged)) {
3652 PDB(kOutput,1)
Info(
"Incorporate",
"histogram object '%s' merged", newobj->
GetName());
3654 PDB(kOutput,1)
Info(
"Incorporate",
"histogram object '%s' added to the" 3655 " appropriate list for delayed merging", newobj->
GetName());
3666 outlist->
Add(newobj);
3687 outlist->
Add(newobj);
3700 TH1 *
h =
dynamic_cast<TH1 *
>(obj);
3715 PDB(kOutput,2)
Info(
"HandleHistogram",
"h:%s ent:%d, buffer size: %d",
3720 if (!fOutputLists) {
3721 PDB(kOutput,2)
Info(
"HandleHistogram",
"create fOutputLists");
3722 fOutputLists =
new TList;
3725 list = (
TList *) fOutputLists->FindObject(h->
GetName());
3738 fOutputLists->Add(list);
3746 while ((href = (
TH1 *) nxh())) {
3750 list->AddBefore(href, h);
3761 while ((href = (
TH1 *) nxh())) {
3765 list->AddBefore(href, h);
3794 fOutputLists->Add(list);
3808 PDB(kOutput,1)
Info(
"HandleHistogram",
"leaving");
3818 if (!h0 || !h1)
return rc;
3820 TAxis *a0 = 0, *a1 = 0;
3825 if (a0->
GetNbins() == a1->GetNbins())
3834 if (a0->
GetNbins() == a1->GetNbins())
3844 if (a0->
GetNbins() == a1->GetNbins())
3858 PDB(kOutput,1)
Info(
"StoreOutput",
"Enter");
3861 PDB(kOutput,1)
Info(
"StoreOutput",
"Leave (empty)");
3868 if (fOutputLists == 0) {
3869 PDB(kOutput,2)
Info(
"StoreOutput",
"Create fOutputLists");
3870 fOutputLists =
new TList;
3881 while ( (aList = dynamic_cast<TEventList*> (it())) ) {
3883 TIter nxe(fDSet->GetListOfElements());
3885 while ( (elem = dynamic_cast<TDSetElement*> (nxe())) ) {
3886 if (strcmp(elem->GetFileName(), aList->
GetName()) == 0)
3890 Error(
"StoreOutput",
"found the EventList for %s, but no object with that name " 3891 "in the TDSet", aList->
GetName());
3894 Long64_t offset = elem->GetTDSetOffset();
3900 for (
int i = 0; i < num; i++)
3903 mainList->
Add(aList);
3909 while( (obj = next()) ) {
3910 PDB(kOutput,2)
Info(
"StoreOutput",
"find list for '%s'", obj->
GetName() );
3914 PDB(kOutput,2)
Info(
"StoreOutput",
"list for '%s' not found (creating)", obj->
GetName());
3918 fOutputLists->Add( list );
3924 PDB(kOutput,1)
Info(
"StoreOutput",
"leave");
3933 Info(
"MergeFeedback",
"Enter");
3935 if ( fFeedbackLists == 0 ) {
3937 Info(
"MergeFeedback",
"Leave (no output)");
3944 TIter next(fFeedbackLists);
3947 while ( (map = (
TMap*) next()) ) {
3957 #ifndef R__TH1MERGEFIXED 3961 while (
TObject *key = keys() ) {
3963 TH1 *
h =
dynamic_cast<TH1 *
>(o);
3964 #ifndef R__TH1MERGEFIXED 3969 if (h && !strncmp(o->
GetName(),
"PROOF_",6)) {
3979 while ((href = (
TH1 *)nxh())) {
3987 list->AddBefore(href, h);
3997 #ifdef R__TH1MERGEFIXED 4000 TObject *obj = (oref) ? oref : list->First();
4006 if ( list->IsEmpty() ) {
4020 while ( (obj = list->First()) ) {
4030 Info(
"MergeFeedback",
"Leave (%d object(s))", fb->
GetSize());
4041 Info(
"StoreFeedback",
"Enter");
4045 Info(
"StoreFeedback",
"Leave (empty)");
4056 if (fFeedbackLists == 0) {
4057 PDB(kFeedback,2)
Info(
"StoreFeedback",
"Create fFeedbackLists");
4058 fFeedbackLists =
new TList;
4065 const char *ord = ((
TSlave*) slave)->GetOrdinal();
4068 while( (obj = next()) ) {
4070 Info(
"StoreFeedback",
"%s: Find '%s'", ord, obj->
GetName() );
4074 Info(
"StoreFeedback",
"%s: map for '%s' not found (creating)", ord, obj->
GetName());
4078 fFeedbackLists->Add(map);
4081 Info(
"StoreFeedback",
"%s: removing previous value", ord);
4082 if (map->GetValue(slave))
4083 delete map->GetValue(slave);
4086 map->Add(slave, obj);
4088 Info(
"StoreFeedback",
"%s: %s, size: %d", ord, obj->
GetName(), map->GetSize());
4093 Info(
"StoreFeedback",
"Leave");
4105 PDB(kFeedback,1)
Info(
"SetupFeedback",
"\"FeedbackList\" %sfound",
4106 fFeedback == 0 ?
"NOT ":
"");
4108 if (fFeedback == 0 || fFeedback->GetSize() == 0)
return;
4126 PDB(kFeedback,1)
Info(
"StopFeedback",
"Stop Timer");
4136 PDB(kFeedback,2)
Info(
"HandleTimer",
"Entry");
4145 TIter next(fFeedback);
4152 if (fFeedbackLists &&
4154 fFeedbackLists->Remove(m);
4167 if (fFeedbackLists == 0) {
4172 fb = MergeFeedback();
4174 PDB(kFeedback,2)
Info(
"HandleTimer",
"Sending %d objects", fb->
GetSize());
4200 if (fProcPackets->GetBinContent(bin) > 0)
4205 TDSetElement *e = fPacketizer->GetNextPacket( slave, r );
4215 Info(
"GetNextPacket",
"%s (%s): '%s' '%s' '%s' %lld %lld",
4218 if (fProcPackets) fProcPackets->Fill(slave->
GetOrdinal(), 1);
4237 const char *selection,
Option_t *option,
4256 if (
GetDrawArgs(varexp, selection, option, selector, objname) != 0) {
4257 Error(
"DrawSelect",
"parsing arguments");
4262 TNamed *selectionobj =
new TNamed(
"selection", selection);
4268 while ((o = nxi())) {
4280 if (objname ==
"") objname =
"htemp";
4282 fProof->AddFeedback(objname);
4284 fProof->RemoveFeedback(objname);
4294 delete selectionobj;
4298 TIter nxsi(savedInput);
4299 while ((o = nxsi()))
4313 fPacketizer->SetInitTime();
4329 Info(
"SetupFeedback",
"\"FeedbackList\" found: %d objects", fb->
GetSize());
4332 Info(
"SetupFeedback",
"\"FeedbackList\" NOT found");
4335 if (fb == 0 || fb->
GetSize() == 0)
return;
4356 PDB(kFeedback,1)
Info(
"StopFeedback",
"Stop Timer");
4366 PDB(kFeedback,2)
Info(
"HandleTimer",
"Entry");
4389 if (fFeedback == 0)
return kFALSE;
4399 TIter next(fFeedback);
4403 if (o != 0) fb->
Add(o);
4407 PDB(kFeedback,2)
Info(
"HandleTimer",
"Sending %d objects", fb->
GetSize());
4437 PDB(kGlobal, 1)
Info(
"HandleGetTreeHeader",
"empty TDSet");
4444 t->SetMaxVirtualSize(0);
4446 entries = t->GetEntries();
4449 while ((e = dset->Next()) != 0) {
4460 t->SetMaxEntryLoop(entries);
4465 answ <<
TString(
"Success") << t;
4467 answ <<
TString(
"Failed") << t;
4469 fSocket->Send(answ);
4490 PDB(kGlobal,1)
Info(
"Process",
"Enter");
4493 if (!proof)
return -1;
4500 if (!SendSelector(selector_file)) {
4501 Error(
"Process",
"sending selector %s", selector_file);
4511 if (!dset->ElementsValid()) {
4513 if (!dset->ElementsValid()) {
4514 Error(
"Process",
"could not validate TDSet");
4529 while (
TSlave *sl = dynamic_cast<TSlave*>(nextslave())) {
4530 TList *submasters = 0;
4533 submasters =
new TList;
4534 submasters->
SetName(sl->GetMsd());
4535 keyholder.
Add(submasters);
4538 valueholder.
Add(setelements);
4539 msds.
Add(
new TPair(submasters, setelements));
4541 submasters =
dynamic_cast<TList*
>(msd->
Key());
4543 if (submasters) submasters->
Add(sl);
4548 TIter nextelement(dset->GetListOfElements());
4549 while (
TDSetElement *elem = dynamic_cast<TDSetElement*>(nextelement())) {
4551 if (elem->GetNum()<1)
continue;
4558 if (cur+elem->GetNum()-1<first) {
4560 cur+=elem->GetNum();
4566 elem->SetNum(elem->GetNum()-(first-cur));
4567 elem->SetFirst(elem->GetFirst()+first-cur);
4572 cur+=elem->GetNum();
4581 Error(
"Process",
"data requires mass storage domain '%s'" 4582 " which is not accessible in this proof session",
4587 if (elements) elements->
Add(elem);
4593 while (
TPair *msd = dynamic_cast<TPair*>(nextmsd())) {
4594 TList *submasters =
dynamic_cast<TList*
>(msd->Key());
4595 TList *setelements =
dynamic_cast<TList*
>(msd->Value());
4598 Int_t nmasters = submasters ? submasters->
GetSize() : -1;
4599 Int_t nelements = setelements ? setelements->
GetSize() : -1;
4600 for (
Int_t i=0; i<nmasters; i++) {
4603 TDSet set(dset->GetType(), dset->GetObjName(),
4604 dset->GetDirectory());
4605 for (
Int_t j = (i*nelements)/nmasters;
4606 j < ((i+1)*nelements)/nmasters;
4616 Warning(
"Process",
"not a TDSetElement object");
4620 if (
set.GetListOfElements()->GetSize()>0) {
4628 PDB(kGlobal,1)
Info(
"Process",
4629 "Sending TDSet with %d elements to submaster %s",
4630 set.GetListOfElements()->GetSize(),
4633 usedmasters.
Add(sl);
4636 fSlaves.AddLast(sl);
4637 fSlaveProgress.Set(fSlaveProgress.GetSize()+1);
4638 fSlaveProgress[fSlaveProgress.GetSize()-1] = 0;
4639 fSlaveTotals.Set(fSlaveTotals.GetSize()+1);
4640 fSlaveTotals[fSlaveTotals.GetSize()-1] = nent;
4641 fSlaveBytesRead.Set(fSlaveBytesRead.GetSize()+1);
4642 fSlaveBytesRead[fSlaveBytesRead.GetSize()-1] = 0;
4643 fSlaveInitTime.Set(fSlaveInitTime.GetSize()+1);
4644 fSlaveInitTime[fSlaveInitTime.GetSize()-1] = -1.;
4645 fSlaveProcTime.Set(fSlaveProcTime.GetSize()+1);
4646 fSlaveProcTime[fSlaveProcTime.GetSize()-1] = -1.;
4647 fSlaveEvtRti.Set(fSlaveEvtRti.GetSize()+1);
4648 fSlaveEvtRti[fSlaveEvtRti.GetSize()-1] = -1.;
4649 fSlaveMBRti.Set(fSlaveMBRti.GetSize()+1);
4650 fSlaveMBRti[fSlaveMBRti.GetSize()-1] = -1.;
4651 fSlaveActW.Set(fSlaveActW.GetSize()+1);
4652 fSlaveActW[fSlaveActW.GetSize()-1] = 0;
4653 fSlaveTotS.Set(fSlaveTotS.GetSize()+1);
4654 fSlaveTotS[fSlaveTotS.GetSize()-1] = 0;
4655 fSlaveEffS.Set(fSlaveEffS.GetSize()+1);
4656 fSlaveEffS[fSlaveEffS.GetSize()-1] = 0.;
4658 Warning(
"Process",
"not a TSlave object");
4665 PDB(kGlobal,1)
Info(
"Process",
"Calling Collect");
4673 PDB(kGlobal,1)
Info(
"Process",
"Calling Merge Output");
4686 Int_t idx = fSlaves.IndexOf(sl);
4687 fSlaveProgress[idx] = processed;
4688 if (fSlaveTotals[idx] != total)
4689 Warning(
"Progress",
"total events has changed for slave %s", sl->
GetName());
4690 fSlaveTotals[idx] =
total;
4694 for (i = 0; i < fSlaveTotals.GetSize(); i++) tot += fSlaveTotals[i];
4696 for (i = 0; i < fSlaveProgress.GetSize(); i++) proc += fSlaveProgress[i];
4710 Info(
"Progress",
"%s: %lld %lld %f %f %f %f", sl->
GetName(),
4711 processed, bytesread, initTime, procTime, evtrti, mbrti);
4713 Int_t idx = fSlaves.IndexOf(sl);
4714 if (fSlaveTotals[idx] != total)
4715 Warning(
"Progress",
"total events has changed for slave %s", sl->
GetName());
4716 fSlaveTotals[idx] =
total;
4717 fSlaveProgress[idx] = processed;
4718 fSlaveBytesRead[idx] = bytesread;
4719 fSlaveInitTime[idx] = (initTime > -1.) ? initTime : fSlaveInitTime[idx];
4720 fSlaveProcTime[idx] = (procTime > -1.) ? procTime : fSlaveProcTime[idx];
4721 fSlaveEvtRti[idx] = (evtrti > -1.) ? evtrti : fSlaveEvtRti[idx];
4722 fSlaveMBRti[idx] = (mbrti > -1.) ? mbrti : fSlaveMBRti[idx];
4734 for (i = 0; i < fSlaveTotals.GetSize(); i++) {
4735 tot += fSlaveTotals[i];
4736 if (i < fSlaveProgress.GetSize())
4737 proc += fSlaveProgress[i];
4738 if (i < fSlaveBytesRead.GetSize())
4739 bytes += fSlaveBytesRead[i];
4740 if (i < fSlaveInitTime.GetSize())
4741 if (fSlaveInitTime[i] > -1. && (init < 0. || fSlaveInitTime[i] < init))
4742 init = fSlaveInitTime[i];
4743 if (i < fSlaveProcTime.GetSize())
4744 if (fSlaveProcTime[i] > -1. && (ptime < 0. || fSlaveProcTime[i] > ptime))
4745 ptime = fSlaveProcTime[i];
4746 if (i < fSlaveEvtRti.GetSize())
4747 if (fSlaveEvtRti[i] > -1.) {
4748 erti += fSlaveEvtRti[i];
4751 if (i < fSlaveMBRti.GetSize())
4752 if (fSlaveMBRti[i] > -1.) {
4753 srti += fSlaveMBRti[i];
4757 srti = (nsrti > 0) ? srti / nerti : 0.;
4759 Progress(tot, proc, bytes, init, ptime, erti, srti);
4769 Info(
"Progress",
"%s: %lld %lld %lld %f %f %f %f %d %f", wrk->
GetOrdinal(),
4774 Int_t idx = fSlaves.IndexOf(wrk);
4775 if (fSlaveTotals[idx] != pi->
fTotal)
4776 Warning(
"Progress",
"total events has changed for worker %s", wrk->
GetName());
4777 fSlaveTotals[idx] = pi->
fTotal;
4792 for (i = 0; i < fSlaveTotals.GetSize(); i++) {
4793 pisum.
fTotal += fSlaveTotals[i];
4794 if (i < fSlaveProgress.GetSize())
4796 if (i < fSlaveBytesRead.GetSize())
4798 if (i < fSlaveInitTime.GetSize())
4799 if (fSlaveInitTime[i] > -1. && (pisum.
fInitTime < 0. || fSlaveInitTime[i] < pisum.
fInitTime))
4801 if (i < fSlaveProcTime.GetSize())
4802 if (fSlaveProcTime[i] > -1. && (pisum.
fProcTime < 0. || fSlaveProcTime[i] > pisum.
fProcTime))
4804 if (i < fSlaveEvtRti.GetSize())
4805 if (fSlaveEvtRti[i] > -1.) {
4809 if (i < fSlaveMBRti.GetSize())
4810 if (fSlaveMBRti[i] > -1.) {
4814 if (i < fSlaveActW.GetSize())
4816 if (i < fSlaveTotS.GetSize())
4819 if (i < fSlaveEffS.GetSize())
4846 for (i = 0; i < fSlaveTotals.GetSize(); i++) {
4847 tot += fSlaveTotals[i];
4848 if (i < fSlaveProgress.GetSize())
4849 proc += fSlaveProgress[i];
4850 if (i < fSlaveBytesRead.GetSize())
4851 bytes += fSlaveBytesRead[i];
4852 if (i < fSlaveInitTime.GetSize())
4853 if (fSlaveInitTime[i] > -1. && (init < 0. || fSlaveInitTime[i] < init))
4854 init = fSlaveInitTime[i];
4855 if (i < fSlaveProcTime.GetSize())
4856 if (fSlaveProcTime[i] > -1. && (ptime < 0. || fSlaveProcTime[i] > ptime))
4857 ptime = fSlaveProcTime[i];
4858 if (i < fSlaveEvtRti.GetSize())
4859 if (fSlaveEvtRti[i] > -1.) {
4860 erti += fSlaveEvtRti[i];
4863 if (i < fSlaveMBRti.GetSize())
4864 if (fSlaveMBRti[i] > -1.) {
4865 srti += fSlaveMBRti[i];
4869 erti = (nerti > 0) ? erti / nerti : 0.;
4870 srti = (nsrti > 0) ? srti / nerti : 0.;
4881 m << tot << proc << bytes << init << ptime << erti << srti;
4887 if (fReturnFeedback)
4903 fReturnFeedback =
kTRUE;
4906 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 and return a pointer to the created directory.
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...
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
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)
Change (i.e.
virtual void SetOwner(Bool_t enable=kTRUE)
Set whether this collection is the owner (enable==true) of its content.
void StopProcess(Bool_t abort, Int_t timeout=-1)
Stop process after this event.
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
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
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.
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.
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.
Double_t dot(const TVector2 &v1, const TVector2 &v2)
void Stop()
Stop the stopwatch.
virtual void SetAutoFlush(Long64_t autof=-30000000)
This function may be called at the start of a program to change the default value for fAutoFlush...
static TString Format(const char *fmt,...)
Static method which formats a string using a printf style format descriptor and return a TString...
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.
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.
virtual Int_t SendAsynMessage(const char *msg, Bool_t lf=kTRUE)
Send an asychronous message to the master / client .
static void Start(TList *input, TList *output)
Initialize PROOF statistics run.
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 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.
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,...)
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.
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
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.
static THashList * fgDrawInputPars
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
virtual TMD5 * Checksum()
Returns checksum of the current content.
virtual Double_t GetEntries() const
return the current number of entries
#define R__LOCKGUARD(mutex)
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.
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
const char * GetDataDir() const
static void output(int code)
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="")
Change (i.e. 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.
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...
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