ROOT logo
/**
 * @file   AddTaskCentralMult.C
 * @author Christian Holm Christensen <cholm@dalsgaard.hehi.nbi.dk>
 * @date   Wed Mar 23 12:13:25 2011
 * 
 * @brief  
 * 
 * 
 * @ingroup pwglf_forward_scripts_tasks
 */

/**
 * This is the macro to include the Central multiplicity in a train.  
 * 
 * @param mc       If true, assume MC input
 * @param runNo    Pre-set run number
 * @param sys      Pre-set collision system
 * @param sNN      Pre-set collition energy
 * @param field    Pre-set magnetic field
 * @param config   Configuration file to use 
 * @param corrs    Corrections to use 
 * 
 * @return Newly created task 
 *
 * @ingroup pwglf_forward_aod
 */
AliAnalysisTask* 
AddTaskCentralMult(Bool_t      mc=false, 
		   ULong_t     runNo=0,
		   UShort_t    sys=0, 
		   UShort_t    sNN=0, 
		   Short_t     field=0, 
		   const char* config="CentralAODConfig.C", 
		   const char* corrs=0)
{
  // --- Load libraries ----------------------------------------------
  gROOT->LoadClass("AliAODForwardMult", "libPWGLFforward2");

  // --- Get analysis manager ----------------------------------------
  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
  if (!mgr) {
    Error("AddTaskCentralMult", "No analysis manager to connect to.");
    return NULL;
  }   

  // --- Make the task -----------------------------------------------
  AliCentralMultiplicityTask* task = 0;
  if (!mc) task = new AliCentralMultiplicityTask("Central");
  else     task = new AliCentralMCMultiplicityTask("Central");
  task->Configure(config);

  // --- Set optional corrections path -------------------------------
  AliCentralCorrectionManager& cm = 
    AliCentralCorrectionManager::Instance();
  if (corrs && corrs[0] != '\0') cm.SetPrefix(corrs); 

  // --- Prime the corrections ---------------------------------------
  if(sys>0 && sNN > 0) {
    cm.Init(runNo, sys, sNN, field);
    if (!cm.HasSecondaryCorrection()) 
      Fatal("AddTaskCentralMult", "No secondary correction defined!");
    if (!cm.HasAcceptanceCorrection()) 
      Fatal("AddTaskCentralMult", "No acceptance correction defined!");
  }

  // --- Make the output container and connect it --------------------
  task->Connect(0,0);
  
  return task;
}
//
// EOF
//
 AddTaskCentralMult.C:1
 AddTaskCentralMult.C:2
 AddTaskCentralMult.C:3
 AddTaskCentralMult.C:4
 AddTaskCentralMult.C:5
 AddTaskCentralMult.C:6
 AddTaskCentralMult.C:7
 AddTaskCentralMult.C:8
 AddTaskCentralMult.C:9
 AddTaskCentralMult.C:10
 AddTaskCentralMult.C:11
 AddTaskCentralMult.C:12
 AddTaskCentralMult.C:13
 AddTaskCentralMult.C:14
 AddTaskCentralMult.C:15
 AddTaskCentralMult.C:16
 AddTaskCentralMult.C:17
 AddTaskCentralMult.C:18
 AddTaskCentralMult.C:19
 AddTaskCentralMult.C:20
 AddTaskCentralMult.C:21
 AddTaskCentralMult.C:22
 AddTaskCentralMult.C:23
 AddTaskCentralMult.C:24
 AddTaskCentralMult.C:25
 AddTaskCentralMult.C:26
 AddTaskCentralMult.C:27
 AddTaskCentralMult.C:28
 AddTaskCentralMult.C:29
 AddTaskCentralMult.C:30
 AddTaskCentralMult.C:31
 AddTaskCentralMult.C:32
 AddTaskCentralMult.C:33
 AddTaskCentralMult.C:34
 AddTaskCentralMult.C:35
 AddTaskCentralMult.C:36
 AddTaskCentralMult.C:37
 AddTaskCentralMult.C:38
 AddTaskCentralMult.C:39
 AddTaskCentralMult.C:40
 AddTaskCentralMult.C:41
 AddTaskCentralMult.C:42
 AddTaskCentralMult.C:43
 AddTaskCentralMult.C:44
 AddTaskCentralMult.C:45
 AddTaskCentralMult.C:46
 AddTaskCentralMult.C:47
 AddTaskCentralMult.C:48
 AddTaskCentralMult.C:49
 AddTaskCentralMult.C:50
 AddTaskCentralMult.C:51
 AddTaskCentralMult.C:52
 AddTaskCentralMult.C:53
 AddTaskCentralMult.C:54
 AddTaskCentralMult.C:55
 AddTaskCentralMult.C:56
 AddTaskCentralMult.C:57
 AddTaskCentralMult.C:58
 AddTaskCentralMult.C:59
 AddTaskCentralMult.C:60
 AddTaskCentralMult.C:61
 AddTaskCentralMult.C:62
 AddTaskCentralMult.C:63
 AddTaskCentralMult.C:64
 AddTaskCentralMult.C:65
 AddTaskCentralMult.C:66
 AddTaskCentralMult.C:67
 AddTaskCentralMult.C:68
 AddTaskCentralMult.C:69
 AddTaskCentralMult.C:70
 AddTaskCentralMult.C:71
 AddTaskCentralMult.C:72
 AddTaskCentralMult.C:73
 AddTaskCentralMult.C:74