]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Added option to Grid railway to allow adding additional excludes.
authorcholm <Christian.Holm.Christensen@cern.ch>
Tue, 11 Nov 2014 08:17:48 +0000 (09:17 +0100)
committercholm <Christian.Holm.Christensen@cern.ch>
Tue, 11 Nov 2014 08:17:48 +0000 (09:17 +0100)
Added some member function to find a given task.

PWGLF/FORWARD/trains/GridHelper.C
PWGLF/FORWARD/trains/TrainSetup.C

index ee66e3201b3406a1730acd4f08f606606cd21e07..f806d94104008ecd416579acd5fddfaa6517b462 100644 (file)
@@ -97,6 +97,7 @@ struct GridHelper : public PluginHelper
     fOptions.Add("ttl",    "N|max",  "Time to live",                   "6h");
     fOptions.Add("pattern","GLOB",   "File/directory name pattern", "");
     fOptions.Add("concat", "Concatenate all runs");
+    fOptions.Add("exclude", "GLOB","Comma separated list of merge excludes","");
   }
   GridHelper(const GridHelper& o)
     : PluginHelper(o), fRuns()
@@ -403,8 +404,14 @@ struct GridHelper : public PluginHelper
        fHandler->SetMaxMergeFiles(fOptions.AsInt("merge"));
       }
     }
-    fHandler->SetMergeExcludes("AliAOD.root *EventStat*.root "
-                              "*event_stat*.root");
+    TString exclude="AliAOD.root *EventStat*.root *event_stat*.root";
+    if (fOptions.Has("exclude")) { 
+      TString exOpt = fOptions.Get("exclude");
+      exOpt.ReplaceAll(",", " ");
+      exclude.Append(" ");
+      exclude.Append(exOpt);
+    }
+    fHandler->SetMergeExcludes(exclude);
     
     // --- Set number of runs per master - 1 or all ------------------
     fHandler->SetNrunsPerMaster(fOptions.Has("concat") ? nRun+1 : 1);
index 74588c314c0d10c54f9d55c392a1e86f00d4db42..fe1d28702528ef1af044c1f84d957d129f189805 100644 (file)
@@ -642,6 +642,28 @@ protected:
     TString args;
     return AddSETask(macro, args);
   }
+  /** 
+   * Find an already added task 
+   * 
+   * @param name    Name of the task 
+   * @param verbose If true, 
+   * 
+   * @return 
+   */
+  virtual AliAnalysisTask* FindTask(const TString& name, 
+                                   Bool_t verbose=true) const
+  {
+    AliAnalysisManager* mgr = AliAnalysisManager::GetAnalysisManager();
+    if (!mgr) {
+      ::Warning("FindTask", "No manager defined");
+      return 0;
+    }
+    AliAnalysisTask* task = mgr->GetTask(name);
+    if (!task && verbose)
+      ::Warning("FindTask", "Task \"%s\" not found in train", 
+               name.Data());
+    return task;
+  }
   /** 
    * Check if we have an MC handler attached 
    *