]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGLF/FORWARD/trains/TrainSetup.C
Attempt to enable monitor objects in Proof(Lite) - doesn't work
[u/mrichter/AliRoot.git] / PWGLF / FORWARD / trains / TrainSetup.C
index 8c68d1c19383956a79ed0b1b1ed13f3ce975d073..c69b7ad8a24c84fef9af1c86ed036a1407c755f9 100644 (file)
@@ -66,7 +66,8 @@ struct TrainSetup
       fEscapedName(name),
       fDatimeString(""),
       fOptions(),
-      fHelper(0)
+      fHelper(0),
+      fMonitored("")
   {
     fOptions.Add("help", "Show help", false);
     fOptions.Add("date", "YYYY-MM-DD HH:MM", "Set date", "now");
@@ -91,7 +92,8 @@ struct TrainSetup
       fEscapedName(o.fEscapedName), 
       fDatimeString(o.fDatimeString),
       fOptions(o.fOptions), 
-      fHelper(o.fHelper)
+      fHelper(o.fHelper),
+      fMonitored(o.fMonitored)
   {}
   /** 
    * Assignment operator
@@ -108,6 +110,7 @@ struct TrainSetup
     fDatimeString = o.fDatimeString;
     fOptions      = o.fOptions;
     fHelper       = o.fHelper;
+    fMonitored    = o.fMonitored;
     return *this;
   }
   
@@ -203,6 +206,9 @@ struct TrainSetup
     // --- Create tasks ----------------------------------------------
     CreateTasks(mgr);
 
+    // --- Create monitor objects ------------------------------------
+    CreateMonitors();
+
     // --- Post set-up initialization of helper ----------------------
     if (!fHelper->PostSetup()) return false;
 
@@ -657,6 +663,27 @@ protected:
   virtual const Char_t* ClassName() const = 0;
   /* @} */
   //__________________________________________________________________
+  virtual void AddMonitor(const TString& name)
+  {
+    if (!fMonitored.IsNull()) fMonitored.Append(":");
+    fMonitored.Append(name);
+  }
+  virtual void CreateMonitors() 
+  {
+    if (fMonitored.IsNull()) return;
+    if (fHelper->Mode() != Helper::kProof) return;
+
+    TObjArray* tokens = fMonitored.Tokenize(":");
+    TObject*   token  = 0;
+    TIter      next(tokens);
+    while ((token = next())) {
+      gROOT->ProcessLine(Form("gProof->AddFeedback(\"%s\");", 
+                             token->GetName()));
+      
+    }
+    tokens->Delete();
+  }
+  //__________________________________________________________________
   /** 
    * @{ 
    * @name Utility functions 
@@ -967,5 +994,6 @@ protected:
   TString      fDatimeString;
   OptionList   fOptions;
   Helper*      fHelper;
+  TString      fMonitored;
 };
 #endif