-TChain* CreateESDChain(const char* aDataDir, Int_t aRuns = 20, Bool_t aAddHeader = kTRUE)
+TChain* CreateESDChainFromDir(const char* aDataDir, Int_t aRuns = 20, Bool_t aAddHeader = kTRUE)
{
if (!aDataDir)
return 0;
return chain;
}
+
+TChain* CreateESDChainFromList(const char* listFile, Int_t aRuns = 20, Bool_t aAddHeader = kTRUE)
+{
+ if (!listFile)
+ return 0;
+
+ TChain* chain = new TChain("esdTree");
+ TChain* chaingAlice = 0;
+
+ if (aAddHeader != kFALSE)
+ chaingAlice = new TChain("TE");
+
+ // Open the input stream
+ ifstream in;
+ in.open(listFile);
+
+ Int_t count = 0;
+
+ // Read the input list of files and add them to the chain
+ TString esdfile;
+ while(in.good()) {
+ in >> esdfile;
+ if (!esdfile.Contains("root")) continue; // protection
+
+ if (count++ == aRuns)
+ break;
+
+ // add esd file
+ chain->Add(esdfile);
+
+ // add header
+ if (aAddHeader != kFALSE)
+ {
+ esdfile.ReplaceAll("AliESDs", "galice");
+ chaingAlice->Add(esdfile + "/TE");
+ }
+ }
+
+ in.close();
+
+ chain->Lookup();
+
+ if (aAddHeader != kFALSE)
+ {
+ chaingAlice->Lookup();
+ chain->AddFriend(chaingAlice);
+ }
+
+ return chain;
+}