35 TList* files = dir->GetListOfFiles();
36 if (!
gSystem->ChangeDirectory(oldDir)) {
37 Error(
"ScanDirectory",
"Failed to go back to %s", oldDir.Data());
41 Warning(
"ScanDirectory",
"No files found in %s", dir->GetName());
51 TSystemFile*
file = 0;
52 while ((file = static_cast<TSystemFile*>(next()))) {
55 TString full(
gSystem->ConcatFileName(file->GetTitle(), name.Data()));
56 if (file->IsA() == TSystemDirectory::Class()) full =
title;
57 if (name ==
"." || name ==
"..") {
62 if (
gSystem->GetPathInfo(full.Data(), fs)) {
63 Warning(
"ScanDirectory",
"Cannot stat %s (%s)", full.Data(),
68 if (file->IsDirectory(full)) {
70 TSystemDirectory* d =
new TSystemDirectory(file->GetName(),
80 if (!name.EndsWith(
".root")) {
85 if (!name.Contains(fnPattern)) {
90 toAdd.Add(
new TObjString(full));
93 TIter nextAdd(&toAdd);
95 while ((s = static_cast<TObjString*>(nextAdd()))) {
98 if (toAdd.GetEntries() > 0) ret =
true;
100 gSystem->ChangeDirectory(oldDir);
121 TSystemDirectory d(
gSystem->BaseName(dir.Data()), dir.Data());
126 gSystem->ChangeDirectory(savdir);
127 if (ret) ret->Sort();
147 gROOT->SetMacroPath(Form(
".:%s",gROOT->GetMacroPath()));
151 gROOT->LoadMacro(
"QABase.h+g");
152 gROOT->LoadMacro(
"QAPlotter.C+g");
154 Info(
"RunFinalQA",
"Final QA: %d%c (variance: %s)",
155 prodYear, prodLetter[0], (useVar ?
"true" :
"false"));
156 QAPlotter p(prodYear, prodLetter[0], useVar);
161 while ((o = next())) {
TList * list
TDirectory file where lists per trigger are stored in train ouput.
void AddFile(const char *filename)
Bool_t ScanDirectory(TSystemDirectory *dir, TList *list, const char *pattern, bool recursive=false)
void RunFinalQA(const char *dir, Int_t prodYear=0, const char *prodLetter="", Bool_t useVar=false)
TList * GetListOfFiles(const char *input=".")
TFile * file
TList with histograms for a given trigger.