20 if (
gSystem->Load(libName) < 0) {
21 Error(
"GridTerminate",
"Failed to load library %s",libName);
24 Info(
"GridTerminate",
"Loaded library %s",libName);
37 Error(
"GridTerminate",
"Failed to load PAR %s",parName);
40 Info(
"GridTerminate",
"Loaded package %s",parName);
53 gROOT->SetMacroPath(Form(
"$ALICE_PHYSICS/PWGLF/FORWARD/trains:%s",
54 gROOT->GetMacroPath()));
55 gROOT->LoadMacro(
"ChainBuilder.C+");
56 gROOT->Macro(
"$ALICE_PHYSICS/PWGLF/FORWARD/analysis2/scripts/LoadLibs.C");
58 gSystem->AddDynamicPath(
"/usr/lib");
61 if (
gSystem->Load(
"libTree") < 0)
return false;
62 if (
gSystem->Load(
"libGeom") < 0)
return false;
63 if (
gSystem->Load(
"libVMC") < 0)
return false;
64 if (
gSystem->Load(
"libPhysics") < 0)
return false;
65 if (
gSystem->Load(
"libMinuit") < 0)
return false;
68 if (
gSystem->Load(
"libSTEERBase") < 0)
return false;
69 if (
gSystem->Load(
"libESD") < 0)
return false;
70 if (
gSystem->Load(
"libAOD") < 0)
return false;
71 if (
gSystem->Load(
"libANALYSIS") < 0)
return false;
72 if (
gSystem->Load(
"libOADB") < 0)
return false;
73 if (
gSystem->Load(
"libANALYSISalice") < 0)
return false;
78 TObjArray* libsArray = libs.Tokenize(
" ");
80 TIter nextLib(libsArray);
81 while ((lib = static_cast<TObjString*>(nextLib()))) {
82 const TString& libName = lib->String();
83 if (libName.Contains(
"libSTEERBase") ||
84 libName.Contains(
"libESD") ||
85 libName.Contains(
"libAOD") ||
86 libName.Contains(
"libANALYSIS") ||
87 libName.Contains(
"libOADB") ||
88 libName.Contains(
"libANALYSISalice"))
continue;
89 if (!libName.Contains(
".so"))
continue;
90 if (!
LoadLib(libName.Data()))
return false;
94 Bool_t local = (!remote || remote[0] ==
'\0');
95 Bool_t localLibsNotPar =
false;
100 TObjArray* parArray = pars.Tokenize(
" ");
102 TIter nextPar(parArray);
103 while ((par = static_cast<TObjString*>(nextPar()))) {
104 TString parName(par->String());
105 if (parName.EndsWith(
".par")) parName.ReplaceAll(
".par",
"");
106 if (parName.EqualTo(
"STEERBase") ||
107 parName.EqualTo(
"ESD") ||
108 parName.EqualTo(
"AOD") ||
109 parName.EqualTo(
"ANALYSIS") ||
110 parName.EqualTo(
"OADB") ||
111 parName.EqualTo(
"ANALYSISalice"))
continue;
113 if (local && localLibsNotPar)
114 ret =
LoadLib(Form(
"lib%s.so", parName.Data()));
117 if (!ret)
return false;
123 if (!srcs.IsNull()) {
124 TObjArray* srcArray = srcs.Tokenize(
" ");
126 TIter nextSrc(srcArray);
127 while ((src = static_cast<TObjString*>(nextSrc()))) {
128 const TString& srcName = src->String();
129 gROOT->ProcessLine(Form(
".L %s+g", srcName.Data()));
135 if (tree.BeginsWith(
"mc")) {
140 if (tree.BeginsWith(
"zip")) {
146 if (tree.EqualTo(
"esdTree", TString::kIgnoreCase)) pat=
"AliESDs*";
147 else if (tree.EqualTo(
"aodTree", TString::kIgnoreCase)) pat=
"AliAOD*";
148 else Warning(
"",
"Unknown tree: %s, pattern set to *.root", tree.Data());
150 pat.Prepend(
"root_archive.zip@");
151 pat.ReplaceAll(
"*",
".root");
152 pat.ReplaceAll(
".zip",
"*.zip");
157 opts.Append(Form(
"pattern=%s", pat.Data()));
158 opts.Append(
"&check");
159 opts.Append(
"&clean");
160 opts.Append(
"&recursive");
161 opts.Append(
"&verbose");
162 if (mc) opts.Append(
"&mc");
165 if (!remote) realDir =
gSystem->ExpandPathName(dir.Data());
166 if (realDir.EqualTo(
".")) realDir =
gSystem->WorkingDirectory();
169 url.SetProtocol(
"local");
171 url.SetFile(realDir);
173 url.SetOptions(opts);
175 Printf(
"Running ChainBuilder::CreateCollection(\"%s/index.root\",\"%s\")",
176 realDir.Data(), url.GetUrl());
177 TString out(Form(
"%s/%s.root", realDir.Data(),
178 !remote ?
"index" :
"remote"));
void CreateIndex(const TString &dir, const TString &tree="esdTree", const char *remote=0, const char *plibs=0, const char *ppars=0, const char *psrcs=0)
Bool_t LoadPar(const char *parName)
static void CreateCollection(const TString &output, const TUrl &url, const char *remote=0)
Bool_t LoadLib(const char *libName)
void SetupPar(char *pararchivename)