ROOT logo
/**
 * @defgroup pwglf_forward_scripts Scripts used in the analysis
 *
 * These scripts add tasks to the analysis train
 *
 * @ingroup pwglf_forward
 */
/**
 * @defgroup pwglf_forward_scripts_tasks Add tasks to manager
 *
 * Scripts to add tasks to the analysis manager
 *
 * @ingroup pwglf_forward_scripts
 */
/**
 * @file   AddTaskForwardMult.C
 * @author Christian Holm Christensen <cholm@dalsgaard.hehi.nbi.dk>
 * @date   Wed Mar 23 12:13:54 2011
 *
 * @brief
 *
 *
 * @ingroup pwglf_forward_scripts_tasks
 */
/**
 * This is the script to include the Forward multiplicity in a train.
 *
 * @param mc      Define as true for MC input.
 * @param runNo   Pre-set run number
 * @param sys     Collision system (0: deduce, 1: pp, 2: pbpb, 3:pA)
 * @param sNN     Collision energy
 * @param field   L3 field setting.
 * @param config  Configuration file to use
 * @param corrs   Corrections to use
 *
 * @return newly allocated analysis task
 *
 * @ingroup pwglf_forward_aod
 */
AliAnalysisTask*
AddTaskForwardMult(Bool_t   mc,
		   ULong_t  runNo=0,
		   UShort_t sys=0,
		   UShort_t sNN=0,
		   Short_t  field=0,
		   const char* config="ForwardAODConfig.C",
		   const char* corrs=0)
{
  // --- Load libraries ----------------------------------------------
  gROOT->LoadClass("AliAODForwardMult", "libPWGLFforward2");

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

  // --- Make the task and add it to the manager ---------------------
  AliForwardMultiplicityBase* task = 0;
  if (mc) task = new AliForwardMCMultiplicityTask("Forward");
  else    task = new AliForwardMultiplicityTask("Forward");
  task->Configure(config);

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

  // --- Do a local initialisation with assumed values ---------------
  if (sys > 0 && sNN > 0) {
    UInt_t what = AliForwardCorrectionManager::kAll;
    what ^= AliForwardCorrectionManager::kDoubleHit;
    what ^= AliForwardCorrectionManager::kVertexBias;
    what ^= AliForwardCorrectionManager::kMergingEfficiency;
  //  what ^= AliForwardCorrectionManager::kAcceptance;
    if (!cm.Init(runNo, sys,sNN,field,mc,false,what))
      Fatal("AddTaskForwardMult", "Failed to initialize corrections");
  }

  // --- Make the output container and connect it --------------------
  task->Connect(0,0);

  return task;
}

/**
 * This is the script to include the Forward multiplicity in a train.
 *
 * @param type   Data type (if it contains MC, assume MC input):
 *               - ppb, p-pb, pa, p-a:  proton-lead
 *               - pp, p-p:             proton-proton
 *               - pbpb, pb-pb, a-a:    lead-lead
 *
 * @param energy Collision energy in GeV
 * @param bfield L3 field setting in kG (-5, 0, 5)
 *
 * @return newly allocated analysis task
 *
 * @ingroup pwglf_forward_aod
 */
AliAnalysisTask*
AddTaskForwardMult(const Char_t* type,
		   Float_t       energy=0,
		   Float_t       bfield=0)
{
  // --- Load libraries ----------------------------------------------
  gROOT->LoadClass("AliAODForwardMult", "libPWGLFforward2");

  // --- Deduce parameters -------------------------------------------
  TString  t(type);
  Bool_t   mc    = t.Contains("MC", TString::kIgnoreCase);
  UShort_t sys   = AliForwardUtil::ParseCollisionSystem(type);
  UShort_t sNN   = AliForwardUtil::ParseCenterOfMassEnergy(sys, energy);
  Short_t  field = AliForwardUtil::ParseMagneticField(field);

  return AddTaskForwardMult(mc, sys, sNN, field);
}
//
// EOF
//
 AddTaskForwardMult.C:1
 AddTaskForwardMult.C:2
 AddTaskForwardMult.C:3
 AddTaskForwardMult.C:4
 AddTaskForwardMult.C:5
 AddTaskForwardMult.C:6
 AddTaskForwardMult.C:7
 AddTaskForwardMult.C:8
 AddTaskForwardMult.C:9
 AddTaskForwardMult.C:10
 AddTaskForwardMult.C:11
 AddTaskForwardMult.C:12
 AddTaskForwardMult.C:13
 AddTaskForwardMult.C:14
 AddTaskForwardMult.C:15
 AddTaskForwardMult.C:16
 AddTaskForwardMult.C:17
 AddTaskForwardMult.C:18
 AddTaskForwardMult.C:19
 AddTaskForwardMult.C:20
 AddTaskForwardMult.C:21
 AddTaskForwardMult.C:22
 AddTaskForwardMult.C:23
 AddTaskForwardMult.C:24
 AddTaskForwardMult.C:25
 AddTaskForwardMult.C:26
 AddTaskForwardMult.C:27
 AddTaskForwardMult.C:28
 AddTaskForwardMult.C:29
 AddTaskForwardMult.C:30
 AddTaskForwardMult.C:31
 AddTaskForwardMult.C:32
 AddTaskForwardMult.C:33
 AddTaskForwardMult.C:34
 AddTaskForwardMult.C:35
 AddTaskForwardMult.C:36
 AddTaskForwardMult.C:37
 AddTaskForwardMult.C:38
 AddTaskForwardMult.C:39
 AddTaskForwardMult.C:40
 AddTaskForwardMult.C:41
 AddTaskForwardMult.C:42
 AddTaskForwardMult.C:43
 AddTaskForwardMult.C:44
 AddTaskForwardMult.C:45
 AddTaskForwardMult.C:46
 AddTaskForwardMult.C:47
 AddTaskForwardMult.C:48
 AddTaskForwardMult.C:49
 AddTaskForwardMult.C:50
 AddTaskForwardMult.C:51
 AddTaskForwardMult.C:52
 AddTaskForwardMult.C:53
 AddTaskForwardMult.C:54
 AddTaskForwardMult.C:55
 AddTaskForwardMult.C:56
 AddTaskForwardMult.C:57
 AddTaskForwardMult.C:58
 AddTaskForwardMult.C:59
 AddTaskForwardMult.C:60
 AddTaskForwardMult.C:61
 AddTaskForwardMult.C:62
 AddTaskForwardMult.C:63
 AddTaskForwardMult.C:64
 AddTaskForwardMult.C:65
 AddTaskForwardMult.C:66
 AddTaskForwardMult.C:67
 AddTaskForwardMult.C:68
 AddTaskForwardMult.C:69
 AddTaskForwardMult.C:70
 AddTaskForwardMult.C:71
 AddTaskForwardMult.C:72
 AddTaskForwardMult.C:73
 AddTaskForwardMult.C:74
 AddTaskForwardMult.C:75
 AddTaskForwardMult.C:76
 AddTaskForwardMult.C:77
 AddTaskForwardMult.C:78
 AddTaskForwardMult.C:79
 AddTaskForwardMult.C:80
 AddTaskForwardMult.C:81
 AddTaskForwardMult.C:82
 AddTaskForwardMult.C:83
 AddTaskForwardMult.C:84
 AddTaskForwardMult.C:85
 AddTaskForwardMult.C:86
 AddTaskForwardMult.C:87
 AddTaskForwardMult.C:88
 AddTaskForwardMult.C:89
 AddTaskForwardMult.C:90
 AddTaskForwardMult.C:91
 AddTaskForwardMult.C:92
 AddTaskForwardMult.C:93
 AddTaskForwardMult.C:94
 AddTaskForwardMult.C:95
 AddTaskForwardMult.C:96
 AddTaskForwardMult.C:97
 AddTaskForwardMult.C:98
 AddTaskForwardMult.C:99
 AddTaskForwardMult.C:100
 AddTaskForwardMult.C:101
 AddTaskForwardMult.C:102
 AddTaskForwardMult.C:103
 AddTaskForwardMult.C:104
 AddTaskForwardMult.C:105
 AddTaskForwardMult.C:106
 AddTaskForwardMult.C:107
 AddTaskForwardMult.C:108
 AddTaskForwardMult.C:109
 AddTaskForwardMult.C:110
 AddTaskForwardMult.C:111
 AddTaskForwardMult.C:112
 AddTaskForwardMult.C:113
 AddTaskForwardMult.C:114
 AddTaskForwardMult.C:115
 AddTaskForwardMult.C:116
 AddTaskForwardMult.C:117
 AddTaskForwardMult.C:118
 AddTaskForwardMult.C:119
 AddTaskForwardMult.C:120
 AddTaskForwardMult.C:121