ROOT logo
//
// This is an example steering macro for running RSN analysis task
// with the AliEn plugin to launch a multiple analysis.
//
// Inputs:
//
//   - runMode     = AliEn plugin run mode
//   - suffix      = eventual suffix which is attached to the automatic name created for outputs
//   - partname    = a string which defines the resonance name (used for output)
//   - runList     = configuration file whith gives list of runs, pattern, prefix, options and AliEn path
//   - split       = corresponding JDL value
//   - nmerge      = number of outputs to be merged per stage
//
//   - taskList    = a string containin all the 'add-task' macros to be used
//   - taskPath    = the uniqu pathe where all 'add-task' macros (and all their needs) are stored
//
//   - workDirBase = path of the working directory (starting from AliEn home)
//   - outDir      = path of the output directory (w.r. to workDir)
//
// Notes:
//
//   - in case the source is an ESD, and if inputs are a MC production
//     the MC input handler is created by default
//
//
void runPlugin
(
   const char *runMode,
   const char *options,
   const char *alienDir,
   const char *addLibs,
   const char *addPars,
   
   const char *alienJobName,
   const char *alienRunPath,
   const char *alienRunPrefix,
   const char *alienRunPattern,
   const char *alienRunList,
   
   Int_t       nmix,
   Int_t       split,
   Int_t       nmerge,
   const char *macroPath,
   Int_t       runsPerMaster
)
{
   //
   // === PREPARATION ==============================================================================
   //
   
   // execute the general setup from the apposite macro
   // it returns also a TString value with the input tree name
   gROOT->LoadMacro("../AnalysisSetupRsnMini.C");
   TString out = Setup(nmix, options, "analysis.root", macroPath);
   if (out.Length() < 1) return;
   
   //
   // === PLUGIN CONFIGURATION =====================================================================
   //

   // load macro for plugin setup
   gSystem->AddIncludePath("-I$ALICE_ROOT/include");
   gROOT->LoadMacro("SetupPlugin.C++g");
   
   // define inputs
   PluginSetup::alienInputRuns = kTRUE;
   PluginSetup::nRunsPerMaster = runsPerMaster;
   PluginSetup::runPath        = alienRunPath;
   PluginSetup::runPrefix      = alienRunPrefix;
   PluginSetup::runPattern     = alienRunPattern;
   PluginSetup::runList        = alienRunList;
   PluginSetup::split          = split;
   PluginSetup::maxMergeFiles  = nmerge;

   // define output path
   PluginSetup::workDir  = "analysis/RSNpackage/mini/";
   PluginSetup::workDir += alienDir;
   
   // define common root for all generated files
   PluginSetup::jobName = alienJobName;
   
   // define additional libraries
   PluginSetup::addLibs = addLibs;
   PluginSetup::addPar  = addPars;
   
   // additional modalities
   PluginSetup::rootVersion = "v5-30-06-1";
   PluginSetup::aliVersion = "v5-02-19-AN";
   
   // create the plugin (need to know if we want tender)
   if (!PluginSetup::CreatePlugin()) return;
   PluginSetup::plugin->SetRunMode(runMode);

   //
   // === ANALYSIS EXECUTION =======================================================================
   //
   
   // add plugin to analysis manager
   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
   if (!mgr) return;
   mgr->SetGridHandler(PluginSetup::plugin);
   
   // initialize and start analysis
   if (!mgr->InitAnalysis()) {
      ::Error("runPlugin.C", "Failed to init analysis");
      return;
   }
   mgr->PrintStatus();
   mgr->StartAnalysis("grid");
}
 runPlugin.C:1
 runPlugin.C:2
 runPlugin.C:3
 runPlugin.C:4
 runPlugin.C:5
 runPlugin.C:6
 runPlugin.C:7
 runPlugin.C:8
 runPlugin.C:9
 runPlugin.C:10
 runPlugin.C:11
 runPlugin.C:12
 runPlugin.C:13
 runPlugin.C:14
 runPlugin.C:15
 runPlugin.C:16
 runPlugin.C:17
 runPlugin.C:18
 runPlugin.C:19
 runPlugin.C:20
 runPlugin.C:21
 runPlugin.C:22
 runPlugin.C:23
 runPlugin.C:24
 runPlugin.C:25
 runPlugin.C:26
 runPlugin.C:27
 runPlugin.C:28
 runPlugin.C:29
 runPlugin.C:30
 runPlugin.C:31
 runPlugin.C:32
 runPlugin.C:33
 runPlugin.C:34
 runPlugin.C:35
 runPlugin.C:36
 runPlugin.C:37
 runPlugin.C:38
 runPlugin.C:39
 runPlugin.C:40
 runPlugin.C:41
 runPlugin.C:42
 runPlugin.C:43
 runPlugin.C:44
 runPlugin.C:45
 runPlugin.C:46
 runPlugin.C:47
 runPlugin.C:48
 runPlugin.C:49
 runPlugin.C:50
 runPlugin.C:51
 runPlugin.C:52
 runPlugin.C:53
 runPlugin.C:54
 runPlugin.C:55
 runPlugin.C:56
 runPlugin.C:57
 runPlugin.C:58
 runPlugin.C:59
 runPlugin.C:60
 runPlugin.C:61
 runPlugin.C:62
 runPlugin.C:63
 runPlugin.C:64
 runPlugin.C:65
 runPlugin.C:66
 runPlugin.C:67
 runPlugin.C:68
 runPlugin.C:69
 runPlugin.C:70
 runPlugin.C:71
 runPlugin.C:72
 runPlugin.C:73
 runPlugin.C:74
 runPlugin.C:75
 runPlugin.C:76
 runPlugin.C:77
 runPlugin.C:78
 runPlugin.C:79
 runPlugin.C:80
 runPlugin.C:81
 runPlugin.C:82
 runPlugin.C:83
 runPlugin.C:84
 runPlugin.C:85
 runPlugin.C:86
 runPlugin.C:87
 runPlugin.C:88
 runPlugin.C:89
 runPlugin.C:90
 runPlugin.C:91
 runPlugin.C:92
 runPlugin.C:93
 runPlugin.C:94
 runPlugin.C:95
 runPlugin.C:96
 runPlugin.C:97
 runPlugin.C:98
 runPlugin.C:99
 runPlugin.C:100
 runPlugin.C:101
 runPlugin.C:102
 runPlugin.C:103
 runPlugin.C:104
 runPlugin.C:105
 runPlugin.C:106
 runPlugin.C:107
 runPlugin.C:108
 runPlugin.C:109
 runPlugin.C:110
 runPlugin.C:111