349void plotNtuple(
TProof *p,
const char *ds,
const char *ntptitle);
350void SavePerfTree(
TProof *proof,
const char *fn);
353const char *pythia8dir = 0;
354const char *pythia8data = 0;
356void runProof(
const char *what =
"simple",
357 const char *masterurl =
"proof://localhost:40000",
366 if (!u.IsNull() && u !=
"lite://") {
368 TString uopts(uu.GetOptions());
369 if ((!strcmp(uu.GetHost(),
"localhost") && !uopts.Contains(
"external")) ||
371 isProofLocal =
kTRUE;
374 if (!u.BeginsWith(uu.GetProtocol())) uu.SetProtocol(
"proof");
375 uopts.ReplaceAll(
"external",
"");
376 uu.SetOptions(uopts.Data());
379 const char *url = u.Data();
388 Printf(
"runProof: could not get user info");
392 if (!tmpdir.EndsWith(
us.Data())) tmpdir +=
us;
395 Printf(
"runProof: unable to get a writable tutorial directory (tried: %s)"
396 " - cannot continue", tmpdir.Data());
399 TString tutdir =
Form(
"%s/.proof-tutorial", tmpdir.Data());
401 Printf(
"runProof: creating the temporary directory"
402 " for the tutorial (%s) ... ", tutdir.
Data());
404 Printf(
"runProof: could not assert / create the temporary directory"
405 " for the tutorial (%s)", tutdir.
Data());
412 if (what && !strncmp(what,
"pythia8", 7)) {
415 if (!pythia8dir || strlen(pythia8dir) <= 0) {
416 Printf(
"runProof: pythia8: environment variable PYTHIA8 undefined:"
417 " it must contain the path to pythia81xx root directory (local and remote) !");
421 if (!pythia8data || strlen(pythia8data) <= 0) {
424 if (!pythia8data || strlen(pythia8data) <= 0) {
425 Printf(
"runProof: pythia8: environment variable PYTHIA8DATA undefined:"
426 " it one must contain the path to pythia81xx/xmldoc"
427 " subdirectory (local and remote) !");
431 TString env =
Form(
"echo export PYTHIA8=%s; export PYTHIA8DATA=%s",
432 pythia8dir, pythia8data);
439 TProof *proof = getProof(url, nwrks, tutdir.
Data(),
"ask");
441 Printf(
"runProof: could not start/attach a PROOF session");
449 if (isProofLocal && what && !strcmp(what,
"ntuple", 6)) {
451 Printf(
"runProof: the 'ntuple' example needs to run xrootd to receive the output file, \n"
452 " but xrootd is not supported on Windows - cannot continue");
459 FILE *fs = fopen(proofsessions.Data(),
"a");
461 Printf(
"runProof: could not create files for sessions tags");
467 Printf(
"runProof: could not start/attach a PROOF session");
479 Printf(
"runProof: root.exe not found: please check the environment!");
484 TString tutorials(
Form(
"%s/tutorials", rootsys.Data()));
489 args.ReplaceAll(
"(",
" ");
490 args.ReplaceAll(
")",
" ");
491 args.ReplaceAll(
",",
" ");
494 if (!args.Tokenize(act, from,
" ")) {
496 Printf(
"runProof: action not found: check your arguments (%s)", what);
505 Printf(
"runProof: %s: ACLiC mode: '%s'", act.
Data(), aMode.
Data());
508 TString aNevt, aFirst, aNwrk, opt, sel, punzip(
"off"), aCache, aOutFile,
509 aH1Src(
"http://root.cern.ch/files/h1"),
510 aDebug, aDebugEnum, aRateEst, aPerfTree(
"perftree.root"),
511 aFeedback(
"fb=stats");
515 while (args.Tokenize(tok, from,
" ")) {
522 aDebugEnum = aDebug(0, icol);
526 Printf(
"runProof: %s: error parsing the 'debug=' option (%s) - ignoring", act.
Data(), tok.
Data());
536 Printf(
"runProof: %s: error parsing the 'nevt=' option (%s) - ignoring", act.
Data(), tok.
Data());
545 Printf(
"runProof: %s: error parsing the 'first=' option (%s) - ignoring", act.
Data(), tok.
Data());
557 Printf(
"runProof: %s: error parsing the 'nwrk=' option (%s) - ignoring", act.
Data(), tok.
Data());
572 Printf(
"runProof: %s: error parsing the 'cache=' option (%s) - ignoring", act.
Data(), tok.
Data());
595 if (!(tok.
IsNull())) aH1Src = tok;
596 Printf(
"runProof: %s: reading data files from '%s'", act.
Data(), aH1Src.Data());
601 if (!(tok.
IsNull())) aRateEst = tok;
602 Printf(
"runProof: %s: progress-bar rate estimation option: '%s'", act.
Data(), aRateEst.
Data());
606 makePerfTree =
kTRUE;
609 if (!(tok.
IsNull())) aPerfTree = tok;
611 Printf(
"runProof: %s: saving performance tree to '%s'", act.
Data(), aPerfTree.Data());
617 if (!(tok.
IsNull())) aOutFile = tok;
619 Printf(
"runProof: %s: output file: '%s'", act.
Data(), aOutFile.
Data());
624 if (tok ==
"off" || tok ==
"OFF" || tok ==
"0") {
626 }
else if (!(tok.
IsNull())) {
631 aFeedback.
Form(
"fb=%s", tok.
Data());
634 Printf(
"runProof: %s: feedback: '%s'", act.
Data(), aFeedback.Data());
645 Printf(
"runProof: %s: request for a number of workers larger then available - ignored", act.
Data());
655 if (!aDebugEnum.
IsNull()) scope = getDebugEnum(aDebugEnum.
Data());
657 Printf(
"runProof: %s: verbose mode for '%s'; level: %d", act.
Data(), aDebugEnum.
Data(), dbg);
662 if (aRateEst ==
"average")
666 if (punzip ==
"on") {
668 Printf(
"runProof: %s: parallel unzip enabled", act.
Data());
678 Printf(
"runProof: %s: disabling tree cache", act.
Data());
682 Printf(
"runProof: %s: setting cache size to %lld", act.
Data(), cachesz);
694 Printf(
"runProof: %s: enabling merging via %d sub-mergers", act.
Data(), aSubMg);
696 Printf(
"runProof: %s: enabling merging via sub-mergers (optimal number)", act.
Data());
710 if (ins && ins->GetSize() > 0) {
713 while ((oin = nxo())) { proof->
AddInput(oin); }
720 if (act ==
"simple") {
726 Printf(
"runProof: %s: warning concept of 'first' meaningless for this tutorial"
727 " - ignored", act.
Data());
730 nevt = (nevt < 0) ? 100000 : nevt;
733 while (args.Tokenize(tok, from,
" ")) {
739 Printf(
"runProof: error parsing the 'nhist=' option (%s) - ignoring", tok.
Data());
746 Printf(
"runProof: error parsing the 'nhist3=' option (%s) - ignoring", tok.
Data());
753 Printf(
"\nrunProof: running \"simple\" with nhist= %d, nhist3=%d and nevt= %lld\n", nhist, nhist3, nevt);
760 sel.
Form(
"%s/proof/ProofSimple.C%s", tutorials.Data(), aMode.
Data());
766 }
else if (act ==
"h1") {
781 TString eln(
"elist"), elfn(
"elist.root");
783 Printf(
"\nrunProof: asked to use an entry list but '%s' not found or not readable", elfn.Data());
784 Printf(
"\nrunProof: did you forget to run with 'fillList=%s'?\n", elfn.Data());
787 if (!(
f.IsZombie())) {
793 Printf(
"\nrunProof: could not find entry-list '%s' in file '%s': ignoring",
794 eln.Data(), elfn.Data());
797 Printf(
"\nrunProof: requested entry-list file '%s' not existing (or not readable):"
798 " ignoring", elfn.Data());
803 sel.
Form(
"%s/tree/h1analysis.C%s", tutorials.Data(), aMode.
Data());
805 Printf(
"\nrunProof: running \"h1\"\n");
813 while ((o = nxi())) {
814 if (!strncmp(o->
GetName(),
"elist", 5)) {
820 }
else if (act ==
"pythia8") {
823 Printf(
"runProof: %s: warning concept of 'first' meaningless for this tutorial"
824 " - ignored", act.
Data());
829 Printf(
"runProof: pythia8: PYTHIA8DATA directory (%s) must"
830 " contain the Index.xml file !", pythia8data);
835 Printf(
"runProof: pythia8: par file not found (tried %s)", pythia8par.
Data());
842 Printf(
"runProof: pythia8: check settings:");
843 proof->
Exec(
".!echo hostname = `hostname`; echo \"ls pythia8:\"; ls pythia8");
846 Printf(
"runProof: pythia8: libEG not found \n");
850 Printf(
"runProof: pythia8: libEGPythia8 not found \n");
854 nevt = (nevt < 0) ? 100 : nevt;
855 Printf(
"\nrunProof: running \"Pythia01\" nevt= %lld\n", nevt);
857 sel.
Form(
"%s/proof/ProofPythia.C%s", tutorials.Data(), aMode.
Data());
862 }
else if (act ==
"event") {
866 Printf(
"runProof: %s: warning concept of 'first' meaningless for this tutorial"
867 " - ignored", act.
Data());
871 Printf(
"runProof: event: par file not found (tried %s)", eventpar.
Data());
877 Printf(
"Enabled packages...\n");
881 nevt = (nevt < 0) ? 100 : nevt;
882 Printf(
"\nrunProof: running \"event\" nevt= %lld\n", nevt);
884 sel.
Form(
"%s/proof/ProofEvent.C%s", tutorials.Data(), aMode.
Data());
889 }
else if (act ==
"eventproc") {
894 Printf(
"runProof: eventproc: par file not found (tried %s)", eventpar.
Data());
900 Printf(
"Enabled packages...\n");
907 Printf(
"runProof: eventproc: ProcFileElements.C not found (tried %s)", pfelem.
Data());
912 pfelem +=
TString::Format(
",%s/proof/EmptyInclude.h", tutorials.Data());
918 TString aFiles, aDataSrc(
"http://root.cern.ch/files/data"), aPartitions;
919 proof->
SetParameter(
"ProofEventProc_Read",
"optimized");
920 while (args.Tokenize(tok, from,
" ")) {
926 Printf(
"runProof: error parsing the 'files=' option (%s) - ignoring", tok.
Data());
932 Printf(
"runProof: error parsing the 'datasrc=' option (%s) - ignoring", tok.
Data());
935 Printf(
"runProof: reading files from: %s", aDataSrc.Data());
937 }
else if (tok ==
"readall") {
939 Printf(
"runProof: eventproc: reading the full event");
940 }
else if (tok ==
"uneven") {
945 Printf(
"runProof: error parsing the 'partitions=' option (%s) - ignoring", tok.
Data());
948 Printf(
"runProof: partitions: %s included in packetizer operations", aPartitions.
Data());
953 Printf(
"runProof: found aFiles: '%s', nFiles: %d", aFiles.
Data(), nFiles);
955 Printf(
"runProof: max number of files is 50 - resizing request");
967 c->AddFileInfoList(
fc->GetList());
974 TObjArray *dsrcs = aDataSrc.Tokenize(
"|");
980 for (i = 1; i <= nFiles; i++) {
987 c->AddFile(fn.
Data(), 50000);
989 c->AddFile(fn.
Data(), 5000);
991 c->AddFile(fn.
Data());
1006 if (!aPartitions.
IsNull()) {
1008 proof->
SetParameter(
"PROOF_PacketizerPartitions", aPartitions);
1012 sel.
Form(
"%s/proof/ProofEventProc.C%s", tutorials.Data(), aMode.
Data());
1014 Printf(
"\nrunProof: running \"eventproc\"\n");
1018 }
else if (act ==
"ntuple") {
1025 Printf(
"runProof: %s: warning concept of 'first' meaningless for this tutorial"
1026 " - ignored", act.
Data());
1029 nevt = (nevt < 0) ? 1000 : nevt;
1030 Printf(
"\nrunProof: running \"ntuple\" with nevt= %lld\n", nevt);
1034 while (args.Tokenize(tok, from,
" ")) {
1035 if (tok ==
"inputrndm") {
1040 if (usentprndm)
Printf(
"runProof: taking randoms from input ntuple\n");
1044 if (fout.IsNull()) {
1049 if (!isProofLocal) {
1053 while (port < 9010) {
1054 if (checkXrootdAt(port) != 1) {
1063 Printf(
"runProof: could not start basic xrootd on ports 9000-9009 - cannot continue");
1068 proof->
AddInput(
new TNamed(
"PROOF_OUTPUTFILE_LOCATION",
"LOCAL"));
1082 Printf(
"runProof: taking randoms from '%s'", fnr.
Data());
1086 sel.
Form(
"%s/proof/ProofNtuple.C%s", tutorials.Data(), aMode.
Data());
1090 Printf(
"runProof: selector file '%s', options: '%s'", sel.
Data(), xopt.
Data());
1099 }
else if (act ==
"dataset") {
1108 Printf(
"runProof: %s: warning concept of 'first' meaningless for this tutorial"
1109 " - ignored", act.
Data());
1112 nevt = (nevt < 0) ? 1000000 : nevt;
1113 Printf(
"\nrunProof: running \"dataset\" with nevt= %lld\n", nevt);
1123 sel.
Form(
"%s/proof/ProofNtuple.C%s", tutorials.Data(), aMode.
Data());
1133 plotNtuple(proof,
"testNtuple",
"proof ntuple from dataset");
1136 Printf(
"runProof: dataset 'testNtuple' not found in the output list");
1142 }
else if (act ==
"friends") {
1150 Printf(
"runProof: %s: warning concept of 'first' meaningless for this tutorial"
1151 " - ignored", act.
Data());
1155 while (args.Tokenize(tok, from,
" ")) {
1157 if (tok ==
"samefile") {
1166 Printf(
"runProof: could not get the list of information about the workers");
1172 files->
SetName(
"PROOF_FilesToProcess");
1189 Printf(
"runProof: friend tree stored in the same file as the main tree");
1190 proof->
SetParameter(
"ProofAux_Action",
"GenerateTreesSameFile");
1192 proof->
SetParameter(
"ProofAux_Action",
"GenerateTrees");
1195 nevt = (nevt < 0) ? 10000 : nevt;
1198 proof->
SetParameter(
"PROOF_Packetizer",
"TPacketizerFile");
1200 sel.
Form(
"%s/proof/ProofAux.C%s", tutorials.Data(), aMode.
Data());
1212 while ((o = nxo())) {
1214 if (
l && !strncmp(
l->GetName(),
"MainList-", 9)) {
1221 while ((o = nxo())) {
1223 if (
l && !strncmp(
l->GetName(),
"FriendList-", 11)) {
1232 sel.
Form(
"%s/proof/ProofFriends.C%s", tutorials.Data(), aMode.
Data());
1238 }
else if (act ==
"simplefile") {
1246 Printf(
"runProof: %s: warning concept of 'first' meaningless for this tutorial"
1247 " - ignored", act.
Data());
1250 nevt = (nevt < 0) ? 1000000 : nevt;
1253 while (args.Tokenize(tok, from,
" ")) {
1259 Printf(
"runProof: error parsing the 'nhist=' option (%s) - ignoring", tok.
Data());
1265 Printf(
"\nrunProof: running \"simplefile\" with nhist= %d and nevt= %lld\n", nhist, nevt);
1272 if (fout.IsNull()) {
1277 if (!isProofLocal) {
1281 while (port < 9010) {
1282 if (checkXrootdAt(port) != 1) {
1291 Printf(
"runProof: could not start basic xrootd on ports 9000-9009 - cannot continue");
1296 proof->
AddInput(
new TNamed(
"PROOF_OUTPUTFILE_LOCATION",
"LOCAL"));
1302 sel.
Form(
"%s/proof/ProofSimpleFile.C%s", tutorials.Data(), aMode.
Data());
1308 }
else if (act ==
"stdvec") {
1315 Printf(
"runProof: %s: warning concept of 'first' meaningless for this tutorial"
1316 " - ignored", act.
Data());
1319 nevt = (nevt < 0) ? 50000 * proof->
GetParallel() : nevt;
1320 Printf(
"\nrunProof: running \"stdvec\" with nevt= %lld\n", nevt);
1323 sel.
Form(
"%s/proof/ProofStdVect.C%s", tutorials.Data(), aMode.
Data());
1327 xopt.
Form(
"%s %s create", aFeedback.Data(), opt.
Data());
1334 xopt.
Form(
"%s %s", aFeedback.Data(), opt.
Data());
1338 Printf(
"runProof: dataset 'TestStdVect' not available!");
1343 Printf(
"runProof: unknown tutorial: %s", what);
1348 SavePerfTree(proof, aPerfTree.Data());
1357void plotNtuple(
TProof *p,
const char *ds,
const char *ntptitle)
1383 p->
DrawSelect(ds,
"1.3*px+2",
"(px^2+py^2>4) && py>0",
"same");
1389 p->
DrawSelect(ds,
"pz:py:px",
"(pz<10 && pz>6)+(pz<4 && pz>3)");
1391 p->
DrawSelect(ds,
"pz:py:px",
"pz<6 && pz>4",
"same");
1393 p->
DrawSelect(ds,
"pz:py:px",
"pz<4 && pz>3",
"same");
1397 l2->
AddText(
"You can interactively rotate this view in 2 ways:");
1398 l2->
AddText(
" - With the RotateCube in clicking in this pad");
1399 l2->
AddText(
" - Selecting View with x3d in the View menu");
1412void SavePerfTree(
TProof *proof,
const char *fn)
1417 Printf(
"PROOF must be run to save output performance information");;
1421 Printf(
"PROOF outputlist undefined or empty");;
1427 Printf(
"ERROR: could not open file '%s' for writing", fn);;
1432 while ((obj = nxo())) {
1434 if (objname.BeginsWith(
"PROOF_")) {
1437 if (objname ==
"PROOF_PerfStats" ||
1438 objname ==
"PROOF_PacketsHist" ||
1439 objname ==
"PROOF_EventsHist" ||
1440 objname ==
"PROOF_NodeHist" ||
1441 objname ==
"PROOF_LatencyHist" ||
1442 objname ==
"PROOF_ProcTimeHist" ||
1443 objname ==
"PROOF_CpuTimeHist")
R__EXTERN TProof * gProof
char * Form(const char *fmt,...)
void Printf(const char *fmt,...)
Bool_t R_ISREG(Int_t mode)
R__EXTERN TSystem * gSystem
static struct mg_connection * fc(struct mg_context *ctx)
virtual void SetFillColor(Color_t fcolor)
Set the fill area color.
virtual void SetTextAlign(Short_t align=11)
Set the text alignment.
A chain is a collection of files containing TTree objects.
virtual Long64_t Process(const char *filename, Option_t *option="", Long64_t nentries=kMaxEntries, Long64_t firstentry=0)
Process all entries in this chain, calling functions in filename.
virtual void SetEntryList(TEntryList *elist, Option_t *opt="")
Set the input entry list (processing the entries of the chain will then be limited to the entries in ...
virtual Int_t Add(TChain *chain)
Add all files referenced by the passed chain to this chain.
virtual void SetProof(Bool_t on=kTRUE, Bool_t refresh=kFALSE, Bool_t gettreeheader=kFALSE)
Enable/Disable PROOF processing on the current default Proof (gProof).
virtual void ls(Option_t *option="") const
List the chain.
virtual void Print(Option_t *option="") const
Default print for collections, calls Print(option, 1).
void SetName(const char *name)
virtual void SetOwner(Bool_t enable=kTRUE)
Set whether this collection is the owner (enable==true) of its content.
virtual Int_t GetSize() const
Return the capacity of the collection, i.e.
This class implements a data set to be used for PROOF processing.
virtual Bool_t Add(const char *file, const char *objname=0, const char *dir=0, Long64_t first=0, Long64_t num=-1, const char *msd=0)
Add file to list of files to be analyzed.
virtual void AddFriend(TDSet *friendset, const char *alias)
Add friend dataset to this set.
virtual Long64_t Process(TSelector *selector, Option_t *option="", Long64_t nentries=-1, Long64_t firstentry=0, TObject *enl=0)
Process TDSet on currently active PROOF session.
A List of entry numbers in a TTree or TChain.
virtual void SetDirectory(TDirectory *dir)
Add reference to directory dir. dir can be 0.
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.
Class that contains a list of TFileInfo's and accumulated meta data information about its entries.
A ROOT file is a suite of consecutive data records (TKey instances) with a well defined format.
THashList implements a hybrid collection class consisting of a hash table and a list to store TObject...
virtual void Add(TObject *obj)
virtual TObject * Remove(TObject *obj)
Remove object from the list.
virtual TObject * FindObject(const char *name) const
Find an object in this list using its name.
TMap implements an associative array of (key,value) pairs using a THashTable for efficient retrieval ...
void Add(TObject *obj)
This function may not be used (but we need to provide it since it is a pure virtual in TCollection).
TObject * GetValue(const char *keyname) const
Returns a pointer to the value associated with keyname as name of the key.
The TNamed class is the base class for all named ROOT classes.
Int_t GetEntries() const
Return the number of objects in array (i.e.
Collectable string class.
const char * GetName() const
Returns name of object.
Mother of all ROOT objects.
virtual Int_t Write(const char *name=0, Int_t option=0, Int_t bufsize=0)
Write this object to the current directory.
virtual const char * GetName() const
Returns name of object.
The most important graphics class in the ROOT system.
virtual void SetLogy(Int_t value=1)
Set Lin/Log scale for Y.
virtual void RedrawAxis(Option_t *option="")
Redraw the frame axis Redrawing axis may be necessary in case of superimposed histograms when one or ...
virtual void SetGrid(Int_t valuex=1, Int_t valuey=1)
TVirtualPad * cd(Int_t subpadnumber=0)
Set Current pad.
TFrame * GetFrame()
Get frame.
A Pave (see TPave) with text, lines or/and boxes inside.
virtual TText * AddText(Double_t x1, Double_t y1, const char *label)
Add a new Text line to this pavetext at given coordinates.
virtual void Draw(Option_t *option="")
Draw this pavetext with its current attributes.
This class controls a Parallel ROOT Facility, PROOF, cluster.
const char * GetSessionTag() const
Int_t Exec(const char *cmd, ESlaves list, Bool_t plusMaster)
Send command to be executed on the PROOF master and/or slaves.
Int_t UploadPackage(const char *par, EUploadPackageOpt opt=kUntar, TList *workers=0)
Upload a PROOF archive (PAR file).
void ClearData(UInt_t what=kUnregistered, const char *dsname=0)
Remove files for the data directory.
Int_t SetParallel(Int_t nodes=-1, Bool_t random=kFALSE)
Tell PROOF how many slaves to use in parallel.
static void AddEnvVar(const char *name, const char *value)
Add an variable to the list of environment variables passed to proofserv on the master and slaves.
void DeleteParameters(const char *wildcard)
Delete the input list parameters specified by a wildcard (e.g.
void SetInputDataFile(const char *datafile)
Set the file to be used to optimally distribute the input data objects.
void SetParameter(const char *par, const char *value)
Set input list parameter.
Int_t GetParallel() const
Returns number of slaves active in parallel mode.
virtual Long64_t DrawSelect(TDSet *dset, const char *varexp, const char *selection="", Option_t *option="", Long64_t nentries=-1, Long64_t firstentry=0)
Execute the specified drawing action on a data set (TDSet).
virtual Int_t Load(const char *macro, Bool_t notOnClient=kFALSE, Bool_t uniqueOnly=kTRUE, TList *wrks=0)
Load the specified macro on master, workers and, if notOnClient is kFALSE, on the client.
TList * GetOutputList()
Get list with all object created during processing (see Process()).
void ClearInputData(TObject *obj=0)
Remove obj form the input data list; if obj is null (default), clear the input data info.
TList * GetListOfSlaveInfos()
Returns list of TSlaveInfo's. In case of error return 0.
void SetLogLevel(Int_t level, UInt_t mask=TProofDebug::kAll)
Set server logging level.
virtual Long64_t Process(TDSet *dset, const char *selector, Option_t *option="", Long64_t nentries=-1, Long64_t firstentry=0)
Process a data set (TDSet) using the specified selector (.C) file or Tselector object Entry- or event...
virtual Bool_t ExistsDataSet(const char *dataset)
Returns kTRUE if 'dataset' exists, kFALSE otherwise.
void AddInput(TObject *obj)
Add objects that might be needed during the processing of the selector (see Process()).
TList * GetInputList()
Get input list.
void ShowEnabledPackages(Bool_t all=kFALSE)
List which packages are enabled.
Int_t EnablePackage(const char *package, Bool_t notOnClient=kFALSE, TList *workers=0)
Enable specified package.
const char * GetOrdinal() const
const char * GetName() const
Returns name of object.
Int_t Atoi() const
Return integer value of string.
Bool_t EndsWith(const char *pat, ECaseCompare cmp=kExact) const
Return true if string ends with the specified string.
const char * Data() const
Bool_t IsDigit() const
Returns true if all characters in string are digits (0-9) or white spaces, i.e.
TString & ReplaceAll(const TString &s1, const TString &s2)
Bool_t BeginsWith(const char *s, ECaseCompare cmp=kExact) const
TString & Remove(Ssiz_t pos)
static TString Format(const char *fmt,...)
Static method which formats a string using a printf style format descriptor and return a TString.
void Form(const char *fmt,...)
Formats a string using a printf style format descriptor.
Ssiz_t Index(const char *pat, Ssiz_t i=0, ECaseCompare cmp=kExact) const
virtual Bool_t ExpandPathName(TString &path)
Expand a pathname getting rid of special shell characters like ~.
virtual const char * DirName(const char *pathname)
Return the directory name in pathname.
virtual const char * Getenv(const char *env)
Get environment variable.
virtual int mkdir(const char *name, Bool_t recursive=kFALSE)
Make a file system directory.
virtual int Load(const char *module, const char *entry="", Bool_t system=kFALSE)
Load a shared library.
int GetPathInfo(const char *path, Long_t *id, Long_t *size, Long_t *flags, Long_t *modtime)
Get info about a file: id, size, flags, modification time.
virtual Bool_t AccessPathName(const char *path, EAccessMode mode=kFileExists)
Returns FALSE if one can access a file using the specified access mode.
virtual const char * HostName()
Return the system's host name.
virtual const char * WorkingDirectory()
Return working directory.
virtual char * Which(const char *search, const char *file, EAccessMode mode=kFileExists)
Find location of file in a search path.
virtual Int_t GetUid(const char *user=0)
Returns the user's id. If user = 0, returns current user's id.
virtual void Setenv(const char *name, const char *value)
Set environment variable.
virtual int Unlink(const char *name)
Unlink, i.e.
virtual UserGroup_t * GetUserInfo(Int_t uid)
Returns all user info in the UserGroup_t structure.
virtual const char * TempDirectory() const
Return a user configured or systemwide directory to create temporary files in.
This class represents a WWW compatible URL.
const char * GetHostFQDN() const
Return fully qualified domain name of url host.
Attaches to a PROOF session, possibly at the indicated URL.
static constexpr double us