+ static const char* TreeName(ETrees tree, bool shortest=false);
+
+ /**
+ * Make a chain of specified data
+ *
+ * @param what What data to chain. Possible values are
+ * - ESD Event summary data (AliESD)
+ * - MC Simulation data (galice)
+ * @param datadir Data directory to scan
+ * @param recursive Whether to recurse into sub-directories
+ *
+ * @return Pointer to newly create chain, or null
+ */
+ static TChain* MakeChain(const char* what, const char* datadir,
+ bool recursive=false);
+ /**
+ * Scan a directory (optionally recursive) for data files to add to
+ * the chain. Only ROOT files, and files which name contain the
+ * passed pattern are considered.
+ *
+ * @param dir Directory to scan
+ * @param chain Chain to add data to
+ * @param pattern Pattern that the file name must contain
+ * @param recursive Whether to scan recursively
+ */
+ static void ScanDirectory(TSystemDirectory* dir,
+ const TString& olddir,
+ TChain* chain,
+ const char* pattern, bool recursive);
+