26 gSystem->GetPathInfo(path, &
id, &size, &flags, &modtime);
27 return !((flags & 0x2) == 0x2);
42 if (!name.EndsWith(
".root"))
return false;
45 if (pattern && pattern[0] !=
'\0' && !name.Contains(pattern))
return false;
46 if (name.Contains(
"friends"))
return false;
49 TFile* test = TFile::Open(name.Data(),
"READ");
50 if (!test || test->IsZombie()) {
51 Warning(
"TestFile",
"Failed to open file %s", name.Data());
73 const char* pattern,
bool recursive)
77 TList* files = dir->GetListOfFiles();
78 gSystem->ChangeDirectory(oldDir);
83 TSystemFile*
file = 0;
84 while ((file = static_cast<TSystemFile*>(next()))) {
88 if (name ==
"." || name ==
"..")
continue;
91 if (file->IsDirectory()) {
99 TString data(Form(
"%s/%s", file->GetTitle(), name.Data()));
102 if (!
TestFile(data, pattern))
continue;
118 std::ifstream in(path.Data());
120 Error(
"ScanInputList",
"Failed to open input list %s", path.Data());
126 if (line.IsNull())
break;
127 if (line[0] ==
'#')
continue;
151 MakeChain(
const char* what,
const char* datadir,
bool recursive=
false)
155 const char* treeName = 0;
156 const char* pattern = 0;
157 if (w.Contains(
"ESD")) { treeName =
"esdTree"; pattern =
"AliESD"; }
158 else if (w.Contains(
"AOD")) { treeName =
"aodTree"; pattern =
"AliAOD"; }
159 else if (w.Contains(
"MC")) { treeName =
"TE"; pattern =
"galice"; }
161 Error(
"MakeChain",
"Unknown mode '%s' (not one of ESD,AOD, or MC)", what);
173 TSystemDirectory d(datadir, datadir);
176 else if (path.EndsWith(
".root")) {
177 if (
TestFile(path, pattern)) chain->Add(path);
185 if (chain->GetListOfFiles()->GetEntries() <= 0) {
186 Warning(
"MakeChain",
"Chain %s is empty for input %s",
TChain * MakeChain(const char *what, const char *datadir, bool recursive=false)
Bool_t ScanInputList(TChain *chain, const TString &path, const char *treeName=0)
void ScanDirectory(TSystemDirectory *dir, TChain *chain, const char *pattern, bool recursive)
Bool_t IsFile(const char *path)
Bool_t TestFile(const TString &name, const char *pattern=0)