]>
Commit | Line | Data |
---|---|---|
0bc1b015 | 1 | #include "macros/AliReadESD.h" |
09b86459 | 2 | |
3 | //====================================================================================== | |
4 | TChain * AliReadESDfromdisk(const UInt_t eventsToRead, | |
5 | const TString dirName, | |
6 | const TString esdTreeName, | |
7 | const char * pattern) | |
8 | { | |
9 | // Reads ESDs from Disk | |
10 | TChain * rv = 0; | |
11 | ||
12 | AliInfo( Form("\nReading files in %s \nESD tree name is %s \nReading %d events", | |
13 | dirName.Data(), esdTreeName.Data(), eventsToRead) ) ; | |
14 | ||
15 | // create a TChain of all the files | |
16 | TChain * cESDTree = new TChain(esdTreeName) ; | |
17 | ||
18 | // read from the directory file until the require number of events are collected | |
19 | void * from = gSystem->OpenDirectory(dirName) ; | |
20 | if (!from) { | |
21 | AliError( Form("Directory %s does not exist") ) ; | |
22 | rv = 0 ; | |
23 | } | |
24 | else{ // reading file names from directory | |
69036fc3 | 25 | const char * subdir ; |
09b86459 | 26 | // search all subdirectories witch matching pattern |
69036fc3 | 27 | while( (subdir = gSystem->GetDirEntry(from)) && |
28 | (cESDTree->GetEntries() < eventsToRead)) { | |
29 | if ( strstr(subdir, pattern) != 0 ) { | |
30 | char file[200] ; | |
31 | sprintf(file, "%s%s/AliESDs.root", dirName.Data(), subdir); | |
09b86459 | 32 | AliInfo( Form("Adding %s\n", file) ); |
33 | cESDTree->Add(file) ; | |
34 | } | |
35 | } // while file | |
36 | ||
37 | AliInfo( Form(" %d events read", cESDTree->GetEntriesFast()) ) ; | |
38 | rv = cESDTree ; | |
39 | ||
40 | } // reading file names from directory | |
41 | return rv ; | |
42 | } | |
43 | ||
44 | //====================================================================================== | |
45 | TChain * AliReadESD(const UInt_t eventsToRead, | |
46 | const TString dirName, | |
47 | const TString esdTreeName, | |
48 | const char * pattern) | |
49 | { | |
50 | // Read AliESDs files and return a Chain of events | |
51 | ||
52 | if ( dirName == "" ) { | |
53 | AliError("Give the name of the DIR where to find files") ; | |
54 | return 0 ; | |
55 | } | |
56 | if ( esdTreeName == "" ) | |
57 | return AliReadESDfromdisk(eventsToRead, dirName) ; | |
58 | else if ( strcmp(pattern, "") == 0 ) | |
59 | return AliReadESDfromdisk(eventsToRead, dirName, esdTreeName) ; | |
60 | else | |
61 | return AliReadESDfromdisk(eventsToRead, dirName, esdTreeName, pattern) ; | |
62 | } |