Fixes
authorcholm <cholm@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 12 Nov 2010 15:11:36 +0000 (15:11 +0000)
committercholm <cholm@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 12 Nov 2010 15:11:36 +0000 (15:11 +0000)
PWG2/FORWARD/analysis/scripts/runFMDbackground.C
PWG2/FORWARD/analysis/scripts/runFMDcollector.C
PWG2/FORWARD/analysis/scripts/runFMDjob.C
PWG2/FORWARD/analysis/scripts/runFMDsharing.C [new file with mode: 0644]

index 659bccb..6ad61d9 100644 (file)
@@ -3,15 +3,12 @@ void runFMDbackground() {
   // Mandatory fields for the background correction
   TString runMode   = "full";
   TString anaSource = "";
-  TString addLibs   = "libPWG2forward.so";
   TString anaType   = "background";
-  
-  // Optional fields - Must however be asserted a value for the analysis to run 
-  TString dataDir  = "/alice/sim/LHC10f6/126437";
-  TString anaName  = "Correction";
-  TString colSys   = "p-p";
-  Float_t cmsNNGeV = 900;
-  Float_t bkG      = 5;
+  TString dataDir   = "/alice/sim/LHC10f6/126437";
+  TString anaName   = "Correction";
+  TString colSys    = "p-p";
+  Float_t cmsNNGeV  = 900;
+  Float_t bkG       = 5;
 
   
   /** 
@@ -35,7 +32,6 @@ void runFMDbackground() {
            anaType, 
            dataDir, 
            anaSource, 
-           addLibs, 
            anaName, 
            colSys, 
            cmsNNGeV, 
@@ -43,3 +39,6 @@ void runFMDbackground() {
 }
   
     
+// 
+// EOF
+//
index f329561..0ace909 100644 (file)
@@ -3,20 +3,12 @@ void runFMDcollector()
   // Mandatory fields for the collector analysis
   TString runMode   = "full";
   TString anaSource = "";
-  TString addLibs   = ("libPWG2forward.so "
-                      "background_0_0_1_0_0_0.root "
-                      "background_3_0_1_0_0_0.root "
-                      "background_0_0_2_0_0_0.root "
-                      "background_3_0_2_0_0_0.root");
   TString anaType   = "collector";
-
-  // Optional fielsd for the collector analysis - must however be
-  // asserted values to work
-  TString dataDir  = "/alice/sim/LHC10e13/";
-  TString anaName  = "FMDCollector900GeVPythia";
-  TString colSys   = "p-p";
-  Float_t cmsNNGeV = 900;
-  Float_t bkG      = 5;
+  TString dataDir   = "/alice/sim/LHC10e13/";
+  TString anaName   = "FMDCollector900GeVPythia";
+  TString colSys    = "p-p";
+  Float_t cmsNNGeV  = 900;
+  Float_t bkG       = 5;
 
   
   /** 
@@ -40,7 +32,6 @@ void runFMDcollector()
            anaType, 
            dataDir, 
            anaSource, 
-           addLibs, 
            anaName, 
            colSys, 
            cmsNNGeV, 
index b88f919..025c690 100644 (file)
@@ -1,3 +1,4 @@
+//____________________________________________________________________
 /** 
  * Run an FMD corrections job. 
  * 
@@ -5,7 +6,6 @@
  * @param anaType     What to do (background, collector, sharing)
  * @param dataDir     Input data directory 
  * @param anaSource   Analysis source (if any)
- * @param addLibs     Libraries to add 
  * @param anaName     Analysis name 
  * @param colSys      Collision system (p-p, Pb-Pb, A-A)
  * @param cmsNNGeV    Center of mass energy per nucleon in GeV
@@ -19,7 +19,6 @@ runFMDjob(const TString& runMode   = "",
          const TString& anaType   = "background",
          const TString& dataDir   = "",
          const TString& anaSource = "",
-         const TString& addLibs   = "",
          const TString& anaName   = "", 
          const TString& colSys    = "p-p", 
          Float_t        cmsNNGeV  = 900, 
@@ -28,32 +27,21 @@ runFMDjob(const TString& runMode   = "",
          const TString& rootTag   = "v5-27-06b", 
          const TString& apiTag    = "V1.1x")
 {
+  // --- Load libraries needed  -------------------------------------
+  gSystem->Load("libANALYSIS");
+  gSystem->Load("libANALYSISalice");
+  gSystem->Load("libPWG2forward");
+  gSystem->AddIncludePath("-I$ALICE_ROOT/PWG2/FORWARD/analysis");
+
   // --- Some initial checks and setup -------------------------------
   TString outFileName = anaName;
   outFileName.ToLower();
   outFileName += ".root";
-  
 
   // --- Manager setup -----------------------------------------------
   // Create the analysis manager
   AliAnalysisManager *mgr = new AliAnalysisManager(anaName.Data());
 
-  // --- AliEN handler setup -----------------------------------------
-  // Create and configure the alien handler plugin, and connect to manager 
-  AliAnalysisGrid *alienHandler = CreateAlienHandler(runMode, 
-                                                    dataDir, 
-                                                    anaSource, 
-                                                    addLibs, 
-                                                    anaName, 
-                                                    outFileName,
-                                                    aliceTag,
-                                                    rootTag, 
-                                                    apiTag);  
-  if (!alienHandler) {
-    Error("runFMDjob", "Failed to set up alien handler");
-    return;
-  }
-  mgr->SetGridHandler(alienHandler);
   
   // --- ESD setup ---------------------------------------------------
   // Connect the EDS's to the manager and switch off unused branches
@@ -74,24 +62,35 @@ runFMDjob(const TString& runMode   = "",
 
   // --- Task setup --------------------------------------------------
   // Configure the analysis manager to the specific task
-  gSystem->AddIncludePath("-I$ALICE_ROOT/PWG2/FORWARD/analysis");
-
-  gSystem->Load("libANALYSIS");
-  gSystem->Load("libANALYSISalice");
-  gSystem->Load("libPWG2forward");
-
   TString type = anaType.ToLower();
+  TString addLibs;
   if (type.Contains("background")) 
-    AddBackgroundTask(outFileName);
+    addLibs = AddBackgroundTask(outFileName);
   else if (type.Contains("collector")) 
-    AddCollectorTask(outFileName, colSys, cmsNNGeV, bkG);
+    addLibs = AddCollectorTask(outFileName, colSys, cmsNNGeV, bkG);
   else if (type.Contains("sharing")) 
-    AddSharingTask(outFileName, colsys, cmsNNGeV, bkG);
+    addLibs = AddSharingTask(outFileName, colsys, cmsNNGeV, bkG);
   else {
     Error("runFMDjob", "Unknown type '%s', please fix this macro", 
          anaType);
     return;
   }
+
+  // --- AliEN handler setup -----------------------------------------
+  // Create and configure the alien handler plugin, and connect to manager 
+  if (!CreateAlienHandler(runMode, 
+                         dataDir, 
+                         anaSource, 
+                         addLibs, 
+                         anaName, 
+                         outFileName,
+                         aliceTag,
+                         rootTag, 
+                         apiTag)) {
+    Error("runFMDjob", "Failed to set up alien handler");
+    return;
+  }
+  mgr->SetGridHandler(alienHandler);
   
   // --- final job setup and execution -------------------------------
   // Enable debug printouts
@@ -108,10 +107,20 @@ runFMDjob(const TString& runMode   = "",
   Info("runFMDjob", "Job is done");
 }
 
+
 //____________________________________________________________________
+/** 
+ * Create a background correction task 
+ * 
+ * @param outFileName 
+ *
+ * @return A list of additional files that should be uploaded 
+ */
 void 
 AddBackgroundTask(const TString& outFileName) 
 {
+  AliAnalysisManager* mgr = AliAnalysisManager::Instance();
+
   // --- Make and configure task -------------------------------------
   AliFMDAnalysisTaskGenerateCorrection *task = 
     new AliFMDAnalysisTaskGenerateCorrection("background");
@@ -139,6 +148,8 @@ AddBackgroundTask(const TString& outFileName)
     i++;
     ptr++;
   }
+
+  return "";
 }
 
 
@@ -150,12 +161,16 @@ AddBackgroundTask(const TString& outFileName)
  * @param col          Collision system (one of "p-p", "Pb-Pb", or "A-A")
  * @param cmsNNGeV     Center of mass energy per nucleon in GeV
  * @param bkG          Magnetic field in kilo gauss 
+ *
+ * @return A list of additional files that should be uploaded 
  */
 void AddCollectorTask(const TString& outFileName,
                      const TString& col, 
                      Float_t        cmsNNGeV, 
                      Float_t        bkG) 
 {
+  AliAnalysisManager* mgr = AliAnalysisManager::Instance();
+
   // --- Initialize the analysis parameters --------------------------
   AliFMDAnaParameters* pars = AliFMDAnaParameters::Instance();  
   pars->SetCollisionSystem(col);
@@ -163,7 +178,8 @@ void AddCollectorTask(const TString& outFileName,
   pars->SetMagField(bkG);
   pars->SetBackgroundPath("./");
   pars->Init(kTRUE,AliFMDAnaParameters::kBackgroundCorrection);
-  
+  TString bgFile = pars->GetPath(AliFMDAnaParameters::GetBackgroundID());
+
   // --- Create and add our task -------------------------------------
   AliFMDAnalysisTaskCollector *task = 
     new AliFMDAnalysisTaskCollector("collector");
@@ -184,6 +200,8 @@ void AddCollectorTask(const TString& outFileName,
   // --- Connect input/output ----------------------------------------
   mgr->ConnectInput(task,  0, cin_esd);
   mgr->ConnectOutput(task, 1, cout_fmd1);
+
+  return bgFile;
 }
 
 //_______________________________________________________________
@@ -194,12 +212,17 @@ void AddCollectorTask(const TString& outFileName,
  * @param col          Collision system (one of "p-p", "Pb-Pb", or "A-A")
  * @param cmsNNGeV     Center of mass energy per nucleon in GeV
  * @param bkG          Magnetic field in kilo gauss 
+ *
+ * @return A list of additional files that should be uploaded 
  */
-void AddSharingTask(const TString& outFileName,
-                   const TString& col, 
-                   Float_t        cmsNNGeV, 
-                   Float_t        bkG) 
+TString 
+AddSharingTask(const TString& outFileName,
+              const TString& col, 
+              Float_t        cmsNNGeV, 
+              Float_t        bkG) 
 {
+  AliAnalysisManager* mgr = AliAnalysisManager::Instance();
+
   // --- Initialize the analysis parameters --------------------------
   AliFMDAnaParameters* pars = AliFMDAnaParameters::Instance();  
   pars->SetCollisionSystem(col);
@@ -212,6 +235,12 @@ void AddSharingTask(const TString& outFileName,
             AliFMDAnaParameters::kBackgroundCorrection|
             AliFMDAnaParameters::kEnergyDistributions|
             AliFMDAnaParameters::kEventSelectionEfficiency);
+  TString files;
+  files.Append(pars->GetPath(AliFMDAnaParameters::GetBackgroundID()));
+  files.Append(" ");
+  files.Append(pars->GetPath(AliFMDAnaParameters::GetEdistID()));
+  files.Append(" ");
+  files.Append(pars->GetPath(AliFMDAnaParameters::GetEventSelectionEffID()));
   
   // --- Create and add our task -------------------------------------
   AliFMDAnalysisTaskSE *task = new AliFMDAnalysisTaskSE("sharing");
@@ -230,6 +259,8 @@ void AddSharingTask(const TString& outFileName,
   
   mgr->ConnectInput(taskfmd, 0, mgr->GetCommonInputContainer());
   mgr->ConnectOutput(taskfmd, 1, cout_fmd);
+
+  return files;
 }
 
 //____________________________________________________________________
@@ -247,7 +278,7 @@ void AddSharingTask(const TString& outFileName,
  * 
  * @return Valid object or null
  */
-AliAnalysisGrid* 
+Bool_t
 CreateAlienHandler(const TString& runMode,
                   const TString& dataDir,
                   const TString& anaSource,
@@ -350,7 +381,11 @@ CreateAlienHandler(const TString& runMode,
   // Optionally modify split mode (default 'se')    
   plugin->SetSplitMode("se"); 
   
-  return plugin;
+  // connect to manager 
+  AliAnalysisManager* mgr = AliAnalysisManager::Instance();
+  mgr->SetGridHandler(alienHandler);
+  
+  return kTRUE
 } 
 //____________________________________________________________________
 //
diff --git a/PWG2/FORWARD/analysis/scripts/runFMDsharing.C b/PWG2/FORWARD/analysis/scripts/runFMDsharing.C
new file mode 100644 (file)
index 0000000..23fef79
--- /dev/null
@@ -0,0 +1,42 @@
+void runFMDsharing() 
+{
+  // Mandatory fields for the collector analysis
+  TString runMode   = "full";
+  TString anaSource = "";
+  TString anaType   = "sharing";
+  TString dataDir   = "/alice/sim/LHC10e13/";
+  TString anaName   = "FMDCollector900GeVPythia";
+  TString colSys    = "p-p";
+  Float_t cmsNNGeV  = 900;
+  Float_t bkG       = 5;
+
+  
+  /** 
+   * Run an FMD corrections job. 
+   * 
+   * @param runMode     Running mode (full, test, terminate, submit, offline)
+   * @param anaType     What to do (background, collector, sharing)
+   * @param dataDir     Input data directory 
+   * @param anaSource   Analysis source (if any)
+   * @param addLibs     Libraries to add 
+   * @param anaName     Analysis name 
+   * @param colSys      Collision system (p-p, Pb-Pb, A-A)
+   * @param cmsNNGeV    Center of mass energy per nucleon in GeV
+   * @param bkG         Magnetic field in kilo gaus 
+   * @param aliceTag    AliROOT tag to use 
+   * @param rootTag     ROOT tag to use 
+   * @param apiTag      API tag to use 
+   */
+  gROOT->LoadMacro("runFMDjob.C");
+  runFMDjob(runMode, 
+           anaType, 
+           dataDir, 
+           anaSource, 
+           anaName, 
+           colSys, 
+           cmsNNGeV, 
+           bkG);
+}
+//
+// EOF
+//