]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
GenerateTest creates now the merging macro and scripts. This can be called like:...
authoragheata <agheata@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 11 Sep 2012 09:52:35 +0000 (09:52 +0000)
committeragheata <agheata@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 11 Sep 2012 09:52:35 +0000 (09:52 +0000)
ANALYSIS/AliAnalysisAlien.cxx

index 21eed7ce687c9cffc5f0197eb658449d93bb4bdd..5e13c38c111f39791ecf3cede4e836b494cfc7ff 100644 (file)
@@ -670,6 +670,9 @@ Bool_t AliAnalysisAlien::GenerateTest(const char *name, const char *modname)
    WriteAnalysisMacro();
    WriteExecutable();
    WriteValidationScript();   
+   WriteMergingMacro();
+   WriteMergeExecutable();
+   WriteValidationScript(kTRUE);
    SetLocalTest(kFALSE);
    SetProductionMode(productionMode);
    fAnalysisMacro = macro;
@@ -2254,7 +2257,7 @@ TChain *AliAnalysisAlien::GetChainForTestMode(const char *treeName) const
    while (in.good())
    {
       in >> line;
-      if (line.IsNull()) continue;
+      if (line.IsNull() || line.BeginsWith("#")) continue;
       if (count++ == fNtestFiles) break;
       TString esdFile(line);
       TFile *file = TFile::Open(esdFile);
@@ -2710,6 +2713,23 @@ Bool_t AliAnalysisAlien::MergeOutput(const char *output, const char *basedir, In
          fname += inputFile;      
          listoffiles->Add(new TNamed(fname.Data(),""));
       }   
+   } else if (sbasedir.Contains(".txt")) {
+      // Assume lfn's on each line
+      TString line;
+      ifstream in;
+      in.open(sbasedir);
+      Int_t nfiles = 0;
+      while (in.good()) {
+         in >> line;
+         if (line.IsNull() || line.BeginsWith("#")) continue;
+         nfiles++;
+         listoffiles->Add(new TNamed(line.Data(),""));
+      }
+      if (!nfiles) {
+         ::Error("MergeOutput","Input file %s contains no files to be merged\n", sbasedir.Data());
+         delete listoffiles;
+         return kFALSE;
+      }
    } else {   
       command = Form("find %s/ *%s", basedir, inputFile.Data());
       printf("command: %s\n", command.Data());