]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ANALYSIS/AliAnalysisAlien.cxx
switch to fill only events added
[u/mrichter/AliRoot.git] / ANALYSIS / AliAnalysisAlien.cxx
index a93796db035aac6ea300c310d3d4436c4e267d54..9416a662511bf2844687bb29f44dd53146dcf6d5 100644 (file)
@@ -1799,7 +1799,9 @@ Bool_t AliAnalysisAlien::CreateJDL()
          if (TestBit(AliAnalysisGrid::kDefaultOutputs)) {
             outputArchive = "log_archive.zip:std*@disk=1 ";
             // Add normal output files, extra files + terminate files
-            TString files = GetListOfFiles("outextter");
+            TString files;
+            if (IsMergeAOD()) files = GetListOfFiles("outaodextter");
+            else files = GetListOfFiles("outextter");
             // Do not register files in fRegisterExcludes
             if (!fRegisterExcludes.IsNull()) {
                arr = fRegisterExcludes.Tokenize(" ");
@@ -1952,7 +1954,7 @@ Bool_t AliAnalysisAlien::WriteJDL(Bool_t copy)
 // Writes one or more JDL's corresponding to findex. If findex is negative,
 // all run numbers are considered in one go (jdl). For non-negative indices
 // they correspond to the indices in the array fInputFiles.
-   if (!fInputFiles) return kFALSE;
+   if (!fInputFiles && !fMCLoop) return kFALSE;
    TObject *os;
    TString workdir;
    if (!fProductionMode && !fGridWorkingDir.BeginsWith("/alice")) workdir = gGrid->GetHomeDirectory();
@@ -1985,7 +1987,7 @@ Bool_t AliAnalysisAlien::WriteJDL(Bool_t copy)
             fGridJDL->SetOutputDirectory(Form("#alienfulldir#/../%s",fOutputSingle.Data()), "Output directory");
          else {
             fGridJDL->SetOutputDirectory(Form("%s/#alien_counter_03i#", fGridOutputDir.Data()), "Output directory");
-            fMergingJDL->SetOutputDirectory(fGridOutputDir);         
+//            fMergingJDL->SetOutputDirectory(fGridOutputDir);         
          }   
       } else {
          // One jdl to be submitted with 2 input parameters: data collection name and output dir prefix
@@ -3698,10 +3700,12 @@ const char *AliAnalysisAlien::GetListOfFiles(const char *type)
       return files.Data();
    }
    if (mgr->GetOutputEventHandler()) {
-      aodfiles = mgr->GetOutputEventHandler()->GetOutputFileName();
+      aodfiles = "";
+      if (mgr->GetOutputEventHandler()->GetFillAOD())
+         aodfiles = mgr->GetOutputEventHandler()->GetOutputFileName();
       TString extraaod = mgr->GetOutputEventHandler()->GetExtraOutputs();
-      if (!extraaod.IsNull()) {
-         aodfiles += ",";
+      if (!extraaod.IsNull() && mgr->GetOutputEventHandler()->GetFillExtension()) {
+         if (!aodfiles.IsNull()) aodfiles += ",";
          aodfiles += extraaod;
       }
    }
@@ -3719,11 +3723,11 @@ const char *AliAnalysisAlien::GetListOfFiles(const char *type)
       if (!(strcmp(filename, "default"))) continue;
       if (outputfiles.Contains(filename)) continue;
       if (aodfiles.Contains(filename))    continue;
-      if (!outputfiles.IsNull()) outputfiles += ",";
+      if (!outputfiles.IsNull() && strlen(filename)) outputfiles += ",";
       outputfiles += filename;
    }
    if (stype.Contains("out")) {
-      if (!files.IsNull()) files += ",";
+      if (!files.IsNull() && !outputfiles.IsNull()) files += ",";
       files += outputfiles;
       if (stype == "out") return files.Data();
    }   
@@ -3745,7 +3749,7 @@ const char *AliAnalysisAlien::GetListOfFiles(const char *type)
       }
       delete fextra;
       if (stype.Contains("ext")) {
-         if (!files.IsNull()) files += ",";
+         if (!files.IsNull() && !sextra.IsNull()) files += ",";
          files += sextra;
       }
    }   
@@ -4615,7 +4619,10 @@ void AliAnalysisAlien::WriteMergingMacro()
       out << "// Set temporary compilation directory to current one" << endl;
       out << "   gSystem->SetBuildDir(gSystem->pwd(), kTRUE);" << endl << endl;   
       out << "   TString outputDir = dir;" << endl;  
-      out << "   TString outputFiles = \"" << GetListOfFiles("out") << "\";" << endl;
+      if (IsMergeAOD())
+         out << "   TString outputFiles = \"" << GetListOfFiles("outaod") << "\";" << endl;
+      else   
+         out << "   TString outputFiles = \"" << GetListOfFiles("out") << "\";" << endl;
       out << "   TString mergeExcludes = \"" << fMergeExcludes << " " << fRegisterExcludes << "\";" << endl;
       out << "   TObjArray *list = outputFiles.Tokenize(\",\");" << endl;
       out << "   TIter *iter = new TIter(list);" << endl;
@@ -4631,9 +4638,9 @@ void AliAnalysisAlien::WriteMergingMacro()
       out << "      return;" << endl;
       out << "   }" << endl;
       if (IsLocalTest()) {
-         out << "   printf(\"===================================\n\");" << endl;      
+         out << "   printf(\"===================================\\n\");" << endl;      
          out << "   printf(\"Testing merging...\\n\");" << endl;
-         out << "   printf(\"===================================\n\");" << endl;
+         out << "   printf(\"===================================\\n\");" << endl;
       }        
       out << "   while((str=(TObjString*)iter->Next())) {" << endl;
       out << "      outputFile = str->GetString();" << endl;
@@ -4662,9 +4669,9 @@ void AliAnalysisAlien::WriteMergingMacro()
       out << "   out.close();" << endl;
       out << "   // read the analysis manager from file" << endl;
       if (IsLocalTest()) {
-         out << "   printf(\"===================================\n\");" << endl;      
+         out << "   printf(\"===================================\\n\");" << endl;      
          out << "   printf(\"Testing Terminate()...\\n\");" << endl;
-         out << "   printf(\"===================================\n\");" << endl;      
+         out << "   printf(\"===================================\\n\");" << endl;      
       } else {   
          out << "   if (!outputDir.Contains(\"Stage\")) return;" << endl;
       }   
@@ -5057,7 +5064,7 @@ void AliAnalysisAlien::WriteValidationScript(Bool_t merge)
 
       TString outputFiles = fOutputFiles;
       if (merge && !fTerminateFiles.IsNull()) {
-         outputFiles += ",";
+         if (!outputFiles.IsNull()) outputFiles += ",";
          outputFiles += fTerminateFiles;
       }
       TObjArray *arr = outputFiles.Tokenize(",");