ROOT logo
//
// This macro serves to add the RSN analysis task to the steering macro.
//
// Inputs:
//   - dataLabel   = a string with informations about the type of data
//                   which could be needed to be ported to the config macro
//                   to set up some cuts
//   - configMacro = macro which configures the analysis; it has *ALWAYS*
//                   defined inside a function named 'RsnConfigTask()',
//                   whatever the name of the macro itself, whose first two
//                   arguments must have to be the task and the 'dataLabel' argument.
//
Bool_t AddRsnAnalysisTask
(
   Bool_t      isMC,
   Bool_t      isMix,
   const char *options,
   const char *path     = "$(ALICE_ROOT)/PWG2/RESONANCES/macros/train",
   const char *taskName = "RSNtask"
)
{
   // retrieve analysis manager
   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();

   // create the task and connect with physics selection
   AliRsnAnalysisTask *task = new AliRsnAnalysisTask(taskName);
   task->SetZeroEventPercentWarning(100.0);
   task->SelectCollisionCandidates();
   task->SetMixing(isMix);
   ::Info("AddRsnAnalysisTask.C", "Mixing: %s", (task->IsMixing() ? "YES" : "NO"));
   ::Info("AddRsnAnalysisTask.C", "MC:     %s", (isMC ? "YES" : "NO"));

   // add the task to manager
   mgr->AddTask(task);
   
   // add the event computations with the options to eventually select centrality cut
   gROOT->LoadMacro(Form("%s/AddRsnEventComputations.C", path));
   AddRsnEventComputations(isMC, options);
   
   // add all configs for phi
   gROOT->LoadMacro(Form("%s/RsnConfigPhi.C", path));
   RsnConfigPhi(isMC, "tpcpid_tofpid", path, taskName);
   //RsnConfigPhi(isMC, "itspid_tpcpid_tofpid", path, taskName);
   
   // in case of MC, add efficiency tasks
   if (isMC && !isMix) {
      ::Info("Adding efficiency");
      gROOT->LoadMacro(Form("%s/AddRsnAnalysisTaskEffPhi.C", path));
      AddRsnAnalysisTaskEffPhi(options, "tpcpid_tofpid");
      //AddRsnAnalysisTaskEffPhi(options, "itspid_tpcpid_tofpid");
   }

   // connect input container according to source choice
   mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());

   // create paths for the output in the common file
   Char_t commonPath[500];
   sprintf(commonPath, "%s", AliAnalysisManager::GetCommonFileName());

   // create containers for output
   AliAnalysisDataContainer *outputInfo = mgr->CreateContainer("RsnInfo", TList::Class(), AliAnalysisManager::kOutputContainer, commonPath);
   AliAnalysisDataContainer *outputHist = mgr->CreateContainer("RsnHist", TList::Class(), AliAnalysisManager::kOutputContainer, commonPath);
   mgr->ConnectOutput(task, 1, outputInfo);
   mgr->ConnectOutput(task, 2, outputHist);

   return kTRUE;
}
 AddRsnAnalysisTask.C:1
 AddRsnAnalysisTask.C:2
 AddRsnAnalysisTask.C:3
 AddRsnAnalysisTask.C:4
 AddRsnAnalysisTask.C:5
 AddRsnAnalysisTask.C:6
 AddRsnAnalysisTask.C:7
 AddRsnAnalysisTask.C:8
 AddRsnAnalysisTask.C:9
 AddRsnAnalysisTask.C:10
 AddRsnAnalysisTask.C:11
 AddRsnAnalysisTask.C:12
 AddRsnAnalysisTask.C:13
 AddRsnAnalysisTask.C:14
 AddRsnAnalysisTask.C:15
 AddRsnAnalysisTask.C:16
 AddRsnAnalysisTask.C:17
 AddRsnAnalysisTask.C:18
 AddRsnAnalysisTask.C:19
 AddRsnAnalysisTask.C:20
 AddRsnAnalysisTask.C:21
 AddRsnAnalysisTask.C:22
 AddRsnAnalysisTask.C:23
 AddRsnAnalysisTask.C:24
 AddRsnAnalysisTask.C:25
 AddRsnAnalysisTask.C:26
 AddRsnAnalysisTask.C:27
 AddRsnAnalysisTask.C:28
 AddRsnAnalysisTask.C:29
 AddRsnAnalysisTask.C:30
 AddRsnAnalysisTask.C:31
 AddRsnAnalysisTask.C:32
 AddRsnAnalysisTask.C:33
 AddRsnAnalysisTask.C:34
 AddRsnAnalysisTask.C:35
 AddRsnAnalysisTask.C:36
 AddRsnAnalysisTask.C:37
 AddRsnAnalysisTask.C:38
 AddRsnAnalysisTask.C:39
 AddRsnAnalysisTask.C:40
 AddRsnAnalysisTask.C:41
 AddRsnAnalysisTask.C:42
 AddRsnAnalysisTask.C:43
 AddRsnAnalysisTask.C:44
 AddRsnAnalysisTask.C:45
 AddRsnAnalysisTask.C:46
 AddRsnAnalysisTask.C:47
 AddRsnAnalysisTask.C:48
 AddRsnAnalysisTask.C:49
 AddRsnAnalysisTask.C:50
 AddRsnAnalysisTask.C:51
 AddRsnAnalysisTask.C:52
 AddRsnAnalysisTask.C:53
 AddRsnAnalysisTask.C:54
 AddRsnAnalysisTask.C:55
 AddRsnAnalysisTask.C:56
 AddRsnAnalysisTask.C:57
 AddRsnAnalysisTask.C:58
 AddRsnAnalysisTask.C:59
 AddRsnAnalysisTask.C:60
 AddRsnAnalysisTask.C:61
 AddRsnAnalysisTask.C:62
 AddRsnAnalysisTask.C:63
 AddRsnAnalysisTask.C:64
 AddRsnAnalysisTask.C:65
 AddRsnAnalysisTask.C:66
 AddRsnAnalysisTask.C:67
 AddRsnAnalysisTask.C:68