2 * @defgroup pwglf_forward_scripts Scripts used in the analysis
4 * These scripts add tasks to the analysis train
6 * @ingroup pwglf_forward
9 * @defgroup pwglf_forward_scripts_tasks Add tasks to manager
11 * Scripts to add tasks to the analysis manager
13 * @ingroup pwglf_forward_scripts
16 * @file AddTaskForwardMult.C
17 * @author Christian Holm Christensen <cholm@dalsgaard.hehi.nbi.dk>
18 * @date Wed Mar 23 12:13:54 2011
23 * @ingroup pwglf_forward_scripts_tasks
26 * This is the script to include the Forward multiplicity in a train.
28 * @param mc Define as true for MC input.
29 * @param sys Collision system (0: deduce, 1: pp, 2: pbpb, 3:pA)
30 * @param sNN Collision energy
31 * @param field L3 field setting.
32 * @param config Configuration file to use
34 * @return newly allocated analysis task
36 * @ingroup pwglf_forward_aod
39 AddTaskForwardMult(Bool_t mc,
43 const char* config="ForwardAODConfig.C")
45 // --- Load libraries ----------------------------------------------
46 gROOT->LoadClass("AliAODForwardMult", "libPWGLFforward2");
48 // --- Get analysis manager ----------------------------------------
49 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
51 Error("AddTaskForwardMult", "No analysis manager to connect to.");
55 // --- Make the task and add it to the manager ---------------------
56 AliForwardMultiplicityBase* task = 0;
57 if (mc) task = new AliForwardMCMultiplicityTask("FMD");
58 else task = new AliForwardMultiplicityTask("FMD");
59 task->Configure(config);
62 // --- Do a local initialisation with assumed values ---------------
63 if (sys > 0 && sNN > 0) {
64 UInt_t what = AliForwardCorrectionManager::kAll;
65 what ^= AliForwardCorrectionManager::kDoubleHit;
66 what ^= AliForwardCorrectionManager::kVertexBias;
67 what ^= AliForwardCorrectionManager::kMergingEfficiency;
68 if (!AliForwardCorrectionManager::Instance().Init(sys,sNN,field,mc,what))
69 Fatal("AddTaskForwardMult", "Failed to initialize corrections");
72 // --- Make the output container and connect it --------------------
73 TString outputfile = AliAnalysisManager::GetCommonFileName();
74 // outputfile += ":PWGLFforwardDnDeta";
75 // Form(":%s",pars->GetDndetaAnalysisName());
76 AliAnalysisDataContainer* histOut =
77 mgr->CreateContainer("Forward", TList::Class(),
78 AliAnalysisManager::kOutputContainer,outputfile);
79 mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());
80 mgr->ConnectOutput(task, 1, histOut);
86 * This is the script to include the Forward multiplicity in a train.
88 * @param type Data type (if it contains MC, assume MC input):
89 * - ppb, p-pb, pa, p-a: proton-lead
90 * - pp, p-p: proton-proton
91 * - pbpb, pb-pb, a-a: lead-lead
93 * @param energy Collision energy in GeV
94 * @param bfield L3 field setting in kG (-5, 0, 5)
96 * @return newly allocated analysis task
98 * @ingroup pwglf_forward_aod
101 AddTaskForwardMult(const Char_t* type,
105 // --- Load libraries ----------------------------------------------
106 gROOT->LoadClass("AliAODForwardMult", "libPWGLFforward2");
108 // --- Deduce parameters -------------------------------------------
110 Bool_t mc = t.Contains("MC", TString::kIgnoreCase);
111 UShort_t sys = AliForwardUtil::ParseCollisionSystem(type);
112 UShort_t sNN = AliForwardUtil::ParseCenterOfMassEnergy(sys, energy);
113 Short_t field = AliForwardUtil::ParseMagneticField(field);
115 return AddTaskForwardMult(mc, sys, sNN, field);