]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGLF/FORWARD/analysis2/AddTaskCentralMult.C
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[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 runNo    Pre-set run number
17  * @param sys      Pre-set collision system
18  * @param sNN      Pre-set collition energy
19  * @param field    Pre-set magnetic field
20  * @param config   Configuration file to use 
21  * @param corrs    Corrections to use 
22  * 
23  * @return Newly created task 
24  *
25  * @ingroup pwglf_forward_aod
26  */
27 AliAnalysisTask* 
28 AddTaskCentralMult(Bool_t      mc=false, 
29                    ULong_t     runNo=0,
30                    UShort_t    sys=0, 
31                    UShort_t    sNN=0, 
32                    Short_t     field=0, 
33                    const char* config="CentralAODConfig.C", 
34                    const char* corrs=0)
35 {
36   // --- Load libraries ----------------------------------------------
37   gROOT->LoadClass("AliAODForwardMult", "libPWGLFforward2");
38
39   // --- Get analysis manager ----------------------------------------
40   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
41   if (!mgr) {
42     Error("AddTaskCentralMult", "No analysis manager to connect to.");
43     return NULL;
44   }   
45
46   // --- Make the task -----------------------------------------------
47   AliCentralMultiplicityTask* task = 0;
48   if (!mc) task = new AliCentralMultiplicityTask("Central");
49   else     task = new AliCentralMCMultiplicityTask("Central");
50   task->Configure(config);
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   task->Connect(0,0);
68   
69   return task;
70 }
71 //
72 // EOF
73 //