Mostly documentation changes.
[u/mrichter/AliRoot.git] / PWG2 / FORWARD / analysis2 / AddTaskForwardMult.C
1 /** 
2  * @defgroup pwg2_forward_scripts Scripts used in the analysis
3  *
4  * @ingroup pwg2_forward
5  */
6 /** 
7  * @defgroup pwg2_forward_scripts_tasks Scripts to add tasks to manager 
8  * @ingroup pwg2_forward_scripts
9  */
10 /**
11  * @file   AddTaskForwardMult.C
12  * @author Christian Holm Christensen <cholm@dalsgaard.hehi.nbi.dk>
13  * @date   Wed Mar 23 12:13:54 2011
14  * 
15  * @brief  
16  * 
17  * 
18  * @ingroup pwg2_forward_scripts_tasks
19  */
20 /**
21  * This is the macro to include the Forward multiplicity in a train.  
22  * 
23  * @ingroup pwg2_forward_aod
24  */
25 AliAnalysisTask*
26 AddTaskForwardMult(Bool_t mc, UShort_t sys=0, UShort_t sNN=0, Short_t field=0)
27 {
28   gSystem->Load("libPWG2forward2");
29
30   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
31   if (!mgr) {
32     Error("AddTaskForwardMult", "No analysis manager to connect to.");
33     return NULL;
34   }   
35
36   // --- Make the task and add it to the manager ---------------------
37   AliForwardMultiplicityBase* task = 0;
38   if (mc) task = new AliForwardMCMultiplicityTask("FMD");
39   else    task = new AliForwardMultiplicityTask("FMD");
40   mgr->AddTask(task);
41   
42   // --- Do a local initialisation with assumed values ---------------
43   if (sys > 0 && sNN > 0) 
44     AliForwardCorrectionManager::Instance().Init(sys,sNN,field);
45
46   // --- Configure the task ------------------------------------------
47   const char* config = gSystem->Which(gROOT->GetMacroPath(),
48                                       "ForwardAODConfig.C");
49   if (!config) 
50     Warning("AddTaskForwardMult", "ForwardAODConfig.C not found in %s",
51             gROOT->GetMacroPath());
52   else {
53     Info("AddTaskForwardMult", 
54          "Loading configuration of '%s' from %s",
55          task->ClassName(), config);
56     gROOT->Macro(Form("%s((AliForwardMultiplicityBase*)%p)", config, task));
57     delete config;
58   }
59   
60   // --- Make the output container and connect it --------------------
61   TString outputfile = AliAnalysisManager::GetCommonFileName();
62   // outputfile += ":PWG2forwardDnDeta"; 
63   // Form(":%s",pars->GetDndetaAnalysisName());
64   AliAnalysisDataContainer* histOut = 
65     mgr->CreateContainer("Forward", TList::Class(), 
66                          AliAnalysisManager::kOutputContainer,outputfile);
67   mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());
68   mgr->ConnectOutput(task, 1, histOut);
69
70   return task;
71 }