]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG0/CreateESDChain.C
d572649afc57709f6a41cc952f651c4b37376de8
[u/mrichter/AliRoot.git] / PWG0 / CreateESDChain.C
1 TChain* CreateESDChain(const char* aDataDir, Int_t aRuns = 20, Bool_t aAddHeader = kTRUE)
2 {
3   if (!aDataDir)
4     return 0;
5
6   TChain* chain = new TChain("esdTree");
7   TChain* chaingAlice = 0;
8
9   if (aAddHeader != kFALSE)
10     chaingAlice = new TChain("TE");
11
12   TString execDir(gSystem->pwd());
13   TSystemDirectory* baseDir = new TSystemDirectory(".", aDataDir);
14   TList* dirList            = baseDir->GetListOfFiles();
15   Int_t nDirs               = dirList->GetEntries();
16   gSystem->cd(execDir);
17
18   Int_t count = 0;
19
20   for (Int_t iDir=0; iDir<nDirs; ++iDir)
21   {
22     TSystemFile* presentDir = (TSystemFile*) dirList->At(iDir);
23     if (!presentDir || !presentDir->IsDirectory() || strcmp(presentDir->GetName(), ".") == 0 || strcmp(presentDir->GetName(), "..") == 0)
24       continue;
25
26     if (count++ == aRuns)
27       break;
28
29     TString presentDirName(aDataDir);
30     presentDirName += "/";
31     presentDirName += presentDir->GetName();
32
33     chain->Add(presentDirName + "/AliESDs.root/esdTree");
34
35     if (aAddHeader != kFALSE)
36       chaingAlice->Add(presentDirName + "/galice.root/TE");
37   }
38
39   if (aAddHeader != kFALSE)
40     chain->AddFriend(chaingAlice);
41
42   return chain;
43 }