ROOT logo
#include "macros/AliReadESD.h"

//======================================================================================
TChain * AliReadESDfromdisk(const UInt_t eventsToRead, 
				   const TString dirName, 
				   const TString esdTreeName, 
				   const char *  pattern) 
{
  // Reads ESDs from Disk
 TChain *  rv = 0; 

  AliInfo( Form("\nReading files in %s \nESD tree name is %s \nReading %d events", 
		dirName.Data(), esdTreeName.Data(), eventsToRead) ) ;
  
  // create a TChain of all the files 
  TChain * cESDTree = new TChain(esdTreeName) ; 

  // read from the directory file until the require number of events are collected
  void * from = gSystem->OpenDirectory(dirName) ;
  if (!from) {
    AliError( Form("Directory %s does not exist") ) ;
    rv = 0 ;
  }
  else{ // reading file names from directory
    const char * subdir ; 
    // search all subdirectories witch matching pattern
    while( (subdir = gSystem->GetDirEntry(from))  && 
	   (cESDTree->GetEntries() < eventsToRead)) {
      if ( strstr(subdir, pattern) != 0 ) { 
	char file[200] ; 
        sprintf(file, "%s%s/AliESDs.root", dirName.Data(), subdir); 	
	AliInfo( Form("Adding %s\n", file) );
	cESDTree->Add(file) ;
      }
    } // while file
  
    AliInfo( Form(" %d events read", cESDTree->GetEntriesFast()) ) ;
    rv = cESDTree ; 
    
  } // reading file names from directory
  return rv ; 
}

//======================================================================================
TChain * AliReadESD(const UInt_t eventsToRead,
		  const TString dirName, 
		  const TString esdTreeName, 
		  const char *  pattern)  
{
  // Read AliESDs files and return a Chain of events
 
  if ( dirName == "" ) {
    AliError("Give the name of the DIR where to find files") ; 
    return 0 ; 
  }
  if ( esdTreeName == "" ) 
    return AliReadESDfromdisk(eventsToRead, dirName) ;
  else if ( strcmp(pattern, "") == 0 )
    return AliReadESDfromdisk(eventsToRead, dirName, esdTreeName) ;
  else 
    return AliReadESDfromdisk(eventsToRead, dirName, esdTreeName, pattern) ;	    
}
 AliReadESD.C:1
 AliReadESD.C:2
 AliReadESD.C:3
 AliReadESD.C:4
 AliReadESD.C:5
 AliReadESD.C:6
 AliReadESD.C:7
 AliReadESD.C:8
 AliReadESD.C:9
 AliReadESD.C:10
 AliReadESD.C:11
 AliReadESD.C:12
 AliReadESD.C:13
 AliReadESD.C:14
 AliReadESD.C:15
 AliReadESD.C:16
 AliReadESD.C:17
 AliReadESD.C:18
 AliReadESD.C:19
 AliReadESD.C:20
 AliReadESD.C:21
 AliReadESD.C:22
 AliReadESD.C:23
 AliReadESD.C:24
 AliReadESD.C:25
 AliReadESD.C:26
 AliReadESD.C:27
 AliReadESD.C:28
 AliReadESD.C:29
 AliReadESD.C:30
 AliReadESD.C:31
 AliReadESD.C:32
 AliReadESD.C:33
 AliReadESD.C:34
 AliReadESD.C:35
 AliReadESD.C:36
 AliReadESD.C:37
 AliReadESD.C:38
 AliReadESD.C:39
 AliReadESD.C:40
 AliReadESD.C:41
 AliReadESD.C:42
 AliReadESD.C:43
 AliReadESD.C:44
 AliReadESD.C:45
 AliReadESD.C:46
 AliReadESD.C:47
 AliReadESD.C:48
 AliReadESD.C:49
 AliReadESD.C:50
 AliReadESD.C:51
 AliReadESD.C:52
 AliReadESD.C:53
 AliReadESD.C:54
 AliReadESD.C:55
 AliReadESD.C:56
 AliReadESD.C:57
 AliReadESD.C:58
 AliReadESD.C:59
 AliReadESD.C:60
 AliReadESD.C:61
 AliReadESD.C:62
 AliReadESD.C:63