ROOT logo
void HighPtDeDx_lhc10c_Data_ESDs_merge(const char *dir, Int_t stage=0)
{
// Automatically generated merging macro executed in grid subjobs

   TStopwatch timer;
   timer.Start();

// Reset existing include path and add current directory first in the search
   gSystem->SetIncludePath("-I.");
// Load analysis framework libraries
   gSystem->Load("libANALYSIS");
   gSystem->Load("libOADB");
   gSystem->Load("libANALYSISalice");
   gSystem->Load("libCORRFW");

// include path
   TString intPath = gInterpreter->GetIncludePath();
   TObjArray *listpaths = intPath.Tokenize(" ");
   TIter nextpath(listpaths);
   TObjString *pname;
   while ((pname=(TObjString*)nextpath())) {
      TString current = pname->GetName();
      if (current.Contains("AliRoot") || current.Contains("ALICE_ROOT")) continue;
      gSystem->AddIncludePath(current);
   }
   if (listpaths) delete listpaths;
   gSystem->AddIncludePath("-I$ROOTSYS/include -I$ALICE_ROOT/include ");
   gROOT->ProcessLine(".include $ALICE_ROOT/include");
   printf("Include path: %s\n", gSystem->GetIncludePath());

// Add aditional AliRoot libraries

// Analysis source to be compiled at runtime (if any)
   gROOT->ProcessLine(".L DebugClasses.C+g");
   gROOT->ProcessLine(".L AliAnalysisTaskHighPtDeDx.cxx+g");
   gROOT->ProcessLine(".L AliAnalysisTaskHighPtDeDxV0.cxx+g");

// fast xrootd reading enabled
   printf("!!! You requested FastRead option. Using xrootd flags to reduce timeouts. Note that this may skip some files that could be accessed !!!");
   gEnv->SetValue("XNet.ConnectTimeout",50);
   gEnv->SetValue("XNet.RequestTimeout",50);
   gEnv->SetValue("XNet.MaxRedirectCount",2);
   gEnv->SetValue("XNet.ReconnectTimeout",50);
   gEnv->SetValue("XNet.FirstConnectMaxCnt",1);

// Set temporary merging directory to current one
   gSystem->Setenv("TMPDIR", gSystem->pwd());

// Set temporary compilation directory to current one
   gSystem->SetBuildDir(gSystem->pwd(), kTRUE);

// Connect to AliEn
   if (!TGrid::Connect("alien://")) return;
   TString outputDir = dir;
   TString outputFiles = "EventStat_temp.root,HighPtDeDx_Tree.root,HighPtDeDxV0_Tree.root";
   TString mergeExcludes = " ";
   TObjArray *list = outputFiles.Tokenize(",");
   TIter *iter = new TIter(list);
   TObjString *str;
   TString outputFile;
   Bool_t merged = kTRUE;
   while((str=(TObjString*)iter->Next())) {
      outputFile = str->GetString();
      if (outputFile.Contains("*")) continue;
      Int_t index = outputFile.Index("@");
      if (index > 0) outputFile.Remove(index);
      // Skip already merged outputs
      if (!gSystem->AccessPathName(outputFile)) {
         printf("Output file <%s> found. Not merging again.",outputFile.Data());
         continue;
      }
      if (mergeExcludes.Contains(outputFile.Data())) continue;
      merged = AliAnalysisAlien::MergeOutput(outputFile, outputDir, 100, stage);
      if (!merged) {
         printf("ERROR: Cannot merge %s\n", outputFile.Data());
         return;
      }
   }
   // all outputs merged, validate
   ofstream out;
   out.open("outputs_valid", ios::out);
   out.close();
   // read the analysis manager from file
   if (!outputDir.Contains("Stage")) return;
   AliAnalysisManager *mgr = AliAnalysisAlien::LoadAnalysisManager("HighPtDeDx_lhc10c_Data_ESDs.root");
   if (!mgr) return;
   mgr->SetRunFromPath(mgr->GetRunFromAlienPath(dir));
   mgr->SetSkipTerminate(kFALSE);
   mgr->PrintStatus();
   AliLog::SetGlobalLogLevel(AliLog::kWarning);
   TTree *tree = NULL;
   mgr->StartAnalysis("gridterminate", tree);
}

 HighPtDeDx_lhc10c_Data_ESDs_merge.C:1
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:2
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:3
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:4
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:5
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:6
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:7
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:8
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:9
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:10
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:11
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:12
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:13
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:14
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:15
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:16
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:17
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:18
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:19
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:20
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:21
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:22
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:23
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:24
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:25
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:26
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:27
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:28
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:29
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:30
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:31
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:32
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:33
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:34
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:35
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:36
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:37
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:38
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:39
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:40
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:41
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:42
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:43
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:44
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:45
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:46
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:47
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:48
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:49
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:50
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:51
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:52
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:53
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:54
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:55
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:56
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:57
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:58
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:59
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:60
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:61
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:62
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:63
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:64
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:65
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:66
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:67
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:68
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:69
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:70
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:71
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:72
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:73
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:74
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:75
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:76
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:77
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:78
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:79
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:80
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:81
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:82
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:83
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:84
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:85
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:86
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:87
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:88
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:89
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:90
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:91
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:92
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:93
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:94
 HighPtDeDx_lhc10c_Data_ESDs_merge.C:95