]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGLF/FORWARD/analysis2/AddTaskCentralMult.C
A better way to specify the Nch axis for the MultDists task.
[u/mrichter/AliRoot.git] / PWGLF / FORWARD / analysis2 / AddTaskCentralMult.C
1 /**
2  * @file   AddTaskCentralMult.C
3  * @author Christian Holm Christensen <cholm@dalsgaard.hehi.nbi.dk>
4  * @date   Wed Mar 23 12:13:25 2011
5  * 
6  * @brief  
7  * 
8  * 
9  * @ingroup pwglf_forward_scripts_tasks
10  */
11
12 /**
13  * This is the macro to include the Central multiplicity in a train.  
14  * 
15  * @param mc       If true, assume MC input 
16  * @param sys      Pre-set collision system
17  * @param sNN      Pre-set collition energy
18  * @param field    Pre-set magnetic field
19  * @param config   Configuration file to use 
20  * @param corrs    Corrections to use 
21  * 
22  * @return Newly created task 
23  *
24  * @ingroup pwglf_forward_aod
25  */
26 AliAnalysisTask* 
27 AddTaskCentralMult(Bool_t      mc=false, 
28                    ULong_t     runNo=0,
29                    UShort_t    sys=0, 
30                    UShort_t    sNN=0, 
31                    Short_t     field=0, 
32                    const char* config="CentralAODConfig.C", 
33                    const char* corrs=0)
34 {
35   // --- Load libraries ----------------------------------------------
36   gROOT->LoadClass("AliAODForwardMult", "libPWGLFforward2");
37
38   // --- Get analysis manager ----------------------------------------
39   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
40   if (!mgr) {
41     Error("AddTaskCentralMult", "No analysis manager to connect to.");
42     return NULL;
43   }   
44
45   // --- Make the task -----------------------------------------------
46   AliCentralMultiplicityTask* task = 0;
47   if (!mc) task = new AliCentralMultiplicityTask("Central");
48   else     task = new AliCentralMCMultiplicityTask("Central");
49   task->Configure(config);
50   mgr->AddTask(task);
51
52   // --- Set optional corrections path -------------------------------
53   AliCentralCorrectionManager& cm = 
54     AliCentralCorrectionManager::Instance();
55   if (corrs && corrs[0] != '\0') cm.SetPrefix(corrs); 
56
57   // --- Prime the corrections ---------------------------------------
58   if(sys>0 && sNN > 0) {
59     cm.Init(runNo, sys, sNN, field);
60     if (!cm.HasSecondaryCorrection()) 
61       Fatal("AddTaskCentralMult", "No secondary correction defined!");
62     if (!cm.HasAcceptanceCorrection()) 
63       Fatal("AddTaskCentralMult", "No acceptance correction defined!");
64   }
65
66   // --- Make the output container and connect it --------------------
67   AliAnalysisDataContainer* histOut = 
68     mgr->CreateContainer("Central", TList::Class(), 
69                          AliAnalysisManager::kOutputContainer,
70                          AliAnalysisManager::GetCommonFileName());
71   AliAnalysisDataContainer *output = 
72     mgr->CreateContainer("CentralResults", TList::Class(), 
73                          AliAnalysisManager::kParamContainer, 
74                          AliAnalysisManager::GetCommonFileName());
75   
76   mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());
77   mgr->ConnectOutput(task, 1, histOut);
78   mgr->ConnectOutput(task, 2, output);
79   
80   return task;
81 }
82 //
83 // EOF
84 //