ROOT logo
/* Macro for setup of Lambda* analysis in PPb collisions.
// Created by Sarita Sahoo, 30 Jan. 2014
//
//
// This macro sets all the aspects of configuration of an Analysis Train run
// which are always the same for all kinds of analysis (local, PROOF, AliEn)
//
// Inputs:
//
//   - nmix           = number of mixings to do (if > 0, initialize mixing stuff)
//   - options        = a set of keywords which drive some configurations
//   - outputFileName = name of file produced by train
//   - configPath     = a path where all required config macros are stored
//
// Notes:
//
//   - in case the source is an ESD, and if inputs are a MC production
//     the MC input handler is created by default
//
// Returns:
//   
//   - if successful: the name of the expected input TTree (esdTree or aodTree)
//   - if failed    : NULL
*/

TString Setup
(
   Int_t       nmix,
   const char *options,
   const char *outputFileName,
   const char *macroPath = "."
)
{
  
  
  // prepare output
   TString out("");
   
   //
   // === EXAMINE OPTIONS ==========================================================================
   //
   
   // this is done using the utility 'RsnOptions.C'
   // which provides a unique way to interpret them
   
   TString opt(options);
   opt.ToUpper();
   
   Bool_t isMC      = opt.Contains("MC") || (!opt.Contains("DATA"));
   Bool_t isPP      = opt.Contains("PP") || (!opt.Contains("PBPB"));
   Bool_t isESD     = opt.Contains("ESD");
   Bool_t useTender = opt.Contains("TENDER");
   Bool_t noV0      = opt.Contains("NOV0");
   
   //
   // === LOAD LIBRARIES ===========================================================================
   //

   // load analysis libraries
   gSystem->Load("libCore.so");        
   gSystem->Load("libGeom.so");
   gSystem->Load("libVMC.so");
   gSystem->Load("libMinuit.so");
   gSystem->Load("libPhysics.so");
   gSystem->Load("libTree.so");   
   gSystem->Load("libSTEERBase.so");
   gSystem->Load("libESD.so");
   gSystem->Load("libAOD.so");
   gSystem->Load("libANALYSIS.so");
   gSystem->Load("libANALYSISalice.so");
   gSystem->Load("libEventMixing.so");
   gSystem->Load("libCORRFW.so");
   gSystem->Load("libPWGLFresonances.so");


   // tender-related libraries
   if (isESD && useTender) {
      ::Info("AnalysisSetup", "Loading tender libraries");
      gSystem->Load("libTENDER.so");
      gSystem->Load("libTENDERSupplies.so");
   } else if (!isESD) {
      useTender = kFALSE;
   }
   
   // load development RSN library
   if (!AliAnalysisAlien::SetupPar("PWGLFresonances.par")) return "";

   //
   // === CREATE ANALYSIS MANAGER ==================================================================
   //

   AliAnalysisManager *mgr = new AliAnalysisManager("RsnAnalysisManager");
   mgr->SetCommonFileName(outputFileName);
   ::Info("AnalysisSetup", "Common file name: %s", outputFileName);

   //
   // === INPUT / OUTPUT HANDLER CONFIGURATION =====================================================
   //

   if (isESD) {
      out = "esdTree";
      ::Info("AnalysisSetup", "Creating ESD handler");
      AliESDInputHandler *esdHandler = new AliESDInputHandler();
      mgr->SetInputEventHandler(esdHandler);
      if (isMC) {
         ::Info("AnalysisSetup", "Creating MC handler");
         AliMCEventHandler *mcHandler  = new AliMCEventHandler();
         mgr->SetMCtruthEventHandler(mcHandler);
      }
   } else {
      out = "aodTree";
      ::Info("AnalysisSetup", "Creating AOD handler");
      AliAODInputHandler *aodHandler = new AliAODInputHandler();
      mgr->SetInputEventHandler(aodHandler);
   }
   
   //
   // === TENDER TASK (ESD only -- optional) =======================================================
   //

   if (isESD && useTender) {
      ::Info("AnalysisSetup", "Adding tender (and then accepting V0 info)", options);
      gROOT->LoadMacro(Form("%s/AddTaskTender.C", macroPath));
      AddTaskTender();
      noV0 = kFALSE;
   }

   //
   // === PHYSICS SELECTION (ESD only) =============================================================
   //

   if (isESD) {
      ::Info("AnalysisSetup", "Add physics selection by default on ESD analysis");
      gROOT->LoadMacro("$(ALICE_ROOT)/ANALYSIS/macros/AddTaskPhysicsSelection.C");
      AliPhysicsSelectionTask* physSelTask = AddTaskPhysicsSelection(isMC);
      if (noV0) {
         ::Info("AnalysisSetup", "Skip of V0 info is required");
         physSelTask->GetPhysicsSelection()->SetSkipV0(kTRUE);
      }
   }
   
   //
   // === CENTRALITY/PLANE (ESD only) ==============================================================
   //
   if (isESD && !isPP) {
     ::Info("AnalysisSetup", "Add centrality and event plane computation tasks");
      gROOT->LoadMacro("$(ALICE_ROOT)/ANALYSIS/macros/AddTaskCentrality.C");
      gROOT->LoadMacro("$(ALICE_ROOT)/ANALYSIS/macros/AddTaskEventplane.C");
      AliCentralitySelectionTask* taskCentrality = (AliCentralitySelectionTask*)AddTaskCentrality();
      if (isMC) {
	::Info("AnalysisSetup", "Setting centrality computation for MC");
	taskCentrality->SetMCInput();
      }
      AddTaskEventplane();
   }
   //
   // === PID RESPONSE =============================================================================
   //
   
   gROOT->LoadMacro("$(ALICE_ROOT)/ANALYSIS/macros/AddTaskPIDResponse.C");
   AddTaskPIDResponse(isMC,kTRUE,kTRUE);

   //gROOT->LoadMacro("$(ALICE_ROOT)/ANALYSIS/macros/AddTaskPIDqa.C ");
   //AddTaskPIDqa();
   
   //
   // === OTHER TASKS ==============================================================================
   //
   
   // add RSN task
   gROOT->LoadMacro(Form("%s/AddTaskLStarPPb.C", macroPath));
   if (!AddTaskLStarPPb(isMC, isPP, macroPath, nmix)) return "";
   
   ::Info("AnalysisSetup", "Setup successful");
   return out;
}
 AnalysisSetupLStarPPb.C:1
 AnalysisSetupLStarPPb.C:2
 AnalysisSetupLStarPPb.C:3
 AnalysisSetupLStarPPb.C:4
 AnalysisSetupLStarPPb.C:5
 AnalysisSetupLStarPPb.C:6
 AnalysisSetupLStarPPb.C:7
 AnalysisSetupLStarPPb.C:8
 AnalysisSetupLStarPPb.C:9
 AnalysisSetupLStarPPb.C:10
 AnalysisSetupLStarPPb.C:11
 AnalysisSetupLStarPPb.C:12
 AnalysisSetupLStarPPb.C:13
 AnalysisSetupLStarPPb.C:14
 AnalysisSetupLStarPPb.C:15
 AnalysisSetupLStarPPb.C:16
 AnalysisSetupLStarPPb.C:17
 AnalysisSetupLStarPPb.C:18
 AnalysisSetupLStarPPb.C:19
 AnalysisSetupLStarPPb.C:20
 AnalysisSetupLStarPPb.C:21
 AnalysisSetupLStarPPb.C:22
 AnalysisSetupLStarPPb.C:23
 AnalysisSetupLStarPPb.C:24
 AnalysisSetupLStarPPb.C:25
 AnalysisSetupLStarPPb.C:26
 AnalysisSetupLStarPPb.C:27
 AnalysisSetupLStarPPb.C:28
 AnalysisSetupLStarPPb.C:29
 AnalysisSetupLStarPPb.C:30
 AnalysisSetupLStarPPb.C:31
 AnalysisSetupLStarPPb.C:32
 AnalysisSetupLStarPPb.C:33
 AnalysisSetupLStarPPb.C:34
 AnalysisSetupLStarPPb.C:35
 AnalysisSetupLStarPPb.C:36
 AnalysisSetupLStarPPb.C:37
 AnalysisSetupLStarPPb.C:38
 AnalysisSetupLStarPPb.C:39
 AnalysisSetupLStarPPb.C:40
 AnalysisSetupLStarPPb.C:41
 AnalysisSetupLStarPPb.C:42
 AnalysisSetupLStarPPb.C:43
 AnalysisSetupLStarPPb.C:44
 AnalysisSetupLStarPPb.C:45
 AnalysisSetupLStarPPb.C:46
 AnalysisSetupLStarPPb.C:47
 AnalysisSetupLStarPPb.C:48
 AnalysisSetupLStarPPb.C:49
 AnalysisSetupLStarPPb.C:50
 AnalysisSetupLStarPPb.C:51
 AnalysisSetupLStarPPb.C:52
 AnalysisSetupLStarPPb.C:53
 AnalysisSetupLStarPPb.C:54
 AnalysisSetupLStarPPb.C:55
 AnalysisSetupLStarPPb.C:56
 AnalysisSetupLStarPPb.C:57
 AnalysisSetupLStarPPb.C:58
 AnalysisSetupLStarPPb.C:59
 AnalysisSetupLStarPPb.C:60
 AnalysisSetupLStarPPb.C:61
 AnalysisSetupLStarPPb.C:62
 AnalysisSetupLStarPPb.C:63
 AnalysisSetupLStarPPb.C:64
 AnalysisSetupLStarPPb.C:65
 AnalysisSetupLStarPPb.C:66
 AnalysisSetupLStarPPb.C:67
 AnalysisSetupLStarPPb.C:68
 AnalysisSetupLStarPPb.C:69
 AnalysisSetupLStarPPb.C:70
 AnalysisSetupLStarPPb.C:71
 AnalysisSetupLStarPPb.C:72
 AnalysisSetupLStarPPb.C:73
 AnalysisSetupLStarPPb.C:74
 AnalysisSetupLStarPPb.C:75
 AnalysisSetupLStarPPb.C:76
 AnalysisSetupLStarPPb.C:77
 AnalysisSetupLStarPPb.C:78
 AnalysisSetupLStarPPb.C:79
 AnalysisSetupLStarPPb.C:80
 AnalysisSetupLStarPPb.C:81
 AnalysisSetupLStarPPb.C:82
 AnalysisSetupLStarPPb.C:83
 AnalysisSetupLStarPPb.C:84
 AnalysisSetupLStarPPb.C:85
 AnalysisSetupLStarPPb.C:86
 AnalysisSetupLStarPPb.C:87
 AnalysisSetupLStarPPb.C:88
 AnalysisSetupLStarPPb.C:89
 AnalysisSetupLStarPPb.C:90
 AnalysisSetupLStarPPb.C:91
 AnalysisSetupLStarPPb.C:92
 AnalysisSetupLStarPPb.C:93
 AnalysisSetupLStarPPb.C:94
 AnalysisSetupLStarPPb.C:95
 AnalysisSetupLStarPPb.C:96
 AnalysisSetupLStarPPb.C:97
 AnalysisSetupLStarPPb.C:98
 AnalysisSetupLStarPPb.C:99
 AnalysisSetupLStarPPb.C:100
 AnalysisSetupLStarPPb.C:101
 AnalysisSetupLStarPPb.C:102
 AnalysisSetupLStarPPb.C:103
 AnalysisSetupLStarPPb.C:104
 AnalysisSetupLStarPPb.C:105
 AnalysisSetupLStarPPb.C:106
 AnalysisSetupLStarPPb.C:107
 AnalysisSetupLStarPPb.C:108
 AnalysisSetupLStarPPb.C:109
 AnalysisSetupLStarPPb.C:110
 AnalysisSetupLStarPPb.C:111
 AnalysisSetupLStarPPb.C:112
 AnalysisSetupLStarPPb.C:113
 AnalysisSetupLStarPPb.C:114
 AnalysisSetupLStarPPb.C:115
 AnalysisSetupLStarPPb.C:116
 AnalysisSetupLStarPPb.C:117
 AnalysisSetupLStarPPb.C:118
 AnalysisSetupLStarPPb.C:119
 AnalysisSetupLStarPPb.C:120
 AnalysisSetupLStarPPb.C:121
 AnalysisSetupLStarPPb.C:122
 AnalysisSetupLStarPPb.C:123
 AnalysisSetupLStarPPb.C:124
 AnalysisSetupLStarPPb.C:125
 AnalysisSetupLStarPPb.C:126
 AnalysisSetupLStarPPb.C:127
 AnalysisSetupLStarPPb.C:128
 AnalysisSetupLStarPPb.C:129
 AnalysisSetupLStarPPb.C:130
 AnalysisSetupLStarPPb.C:131
 AnalysisSetupLStarPPb.C:132
 AnalysisSetupLStarPPb.C:133
 AnalysisSetupLStarPPb.C:134
 AnalysisSetupLStarPPb.C:135
 AnalysisSetupLStarPPb.C:136
 AnalysisSetupLStarPPb.C:137
 AnalysisSetupLStarPPb.C:138
 AnalysisSetupLStarPPb.C:139
 AnalysisSetupLStarPPb.C:140
 AnalysisSetupLStarPPb.C:141
 AnalysisSetupLStarPPb.C:142
 AnalysisSetupLStarPPb.C:143
 AnalysisSetupLStarPPb.C:144
 AnalysisSetupLStarPPb.C:145
 AnalysisSetupLStarPPb.C:146
 AnalysisSetupLStarPPb.C:147
 AnalysisSetupLStarPPb.C:148
 AnalysisSetupLStarPPb.C:149
 AnalysisSetupLStarPPb.C:150
 AnalysisSetupLStarPPb.C:151
 AnalysisSetupLStarPPb.C:152
 AnalysisSetupLStarPPb.C:153
 AnalysisSetupLStarPPb.C:154
 AnalysisSetupLStarPPb.C:155
 AnalysisSetupLStarPPb.C:156
 AnalysisSetupLStarPPb.C:157
 AnalysisSetupLStarPPb.C:158
 AnalysisSetupLStarPPb.C:159
 AnalysisSetupLStarPPb.C:160
 AnalysisSetupLStarPPb.C:161
 AnalysisSetupLStarPPb.C:162
 AnalysisSetupLStarPPb.C:163
 AnalysisSetupLStarPPb.C:164
 AnalysisSetupLStarPPb.C:165
 AnalysisSetupLStarPPb.C:166
 AnalysisSetupLStarPPb.C:167
 AnalysisSetupLStarPPb.C:168
 AnalysisSetupLStarPPb.C:169
 AnalysisSetupLStarPPb.C:170
 AnalysisSetupLStarPPb.C:171
 AnalysisSetupLStarPPb.C:172
 AnalysisSetupLStarPPb.C:173
 AnalysisSetupLStarPPb.C:174
 AnalysisSetupLStarPPb.C:175
 AnalysisSetupLStarPPb.C:176
 AnalysisSetupLStarPPb.C:177