]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGLF/FORWARD/analysis/AddTaskFMD.C
864b7c93f2b14214b04e9611250ceaed256fa3cb
[u/mrichter/AliRoot.git] / PWGLF / FORWARD / analysis / AddTaskFMD.C
1 // This is the macro to include the FMD analysis in the train.  It
2 // depends on two libraries: libFMDanalysis.so in AliRoot and
3 // libPhysics.so in ROOT. It has been tested to work with the example
4 // scripts in the ANALYSIS webpages.  
5 //
6 // Author: Hans Hjersing Dalsgaard <hans.dalsgaard@cern.ch>
7
8
9 AliFMDAnalysisTaskSE* AddTaskFMD(Float_t cmsGeV=900.F, 
10                                  const char* col="p-p", 
11                                  Float_t bkG=5.F) 
12 {
13   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
14   if (!mgr) {
15     Error("AddTaskESDFilter", "No analysis manager to connect to.");
16     return NULL;
17   }   
18   
19   
20   // --- Generate parameter manager ----------------------------------
21   AliFMDAnaParameters* pars = AliFMDAnaParameters::Instance();
22   pars->SetEnergy(cmsGeV);
23   pars->SetCollisionSystem(col);
24   pars->SetMagField(bkG);
25   pars->SetProcessPrimary(kFALSE);
26   pars->SetProcessHits(kFALSE);
27   pars->SetRealData(kTRUE);
28
29   // --- Check if we have an MC handler ------------------------------
30   AliMCEventHandler* eventHandler = 
31     dynamic_cast<AliMCEventHandler*> (AliAnalysisManager::GetAnalysisManager()
32                                       ->GetMCtruthEventHandler());
33   if(eventHandler) {
34     pars->SetRealData(kFALSE);
35     pars->SetProcessPrimary(kTRUE);
36     pars->SetProcessHits(kFALSE);
37   }
38   pars->Init();
39   pars->PrintStatus();
40   
41   // --- Make the task -----------------------------------------------
42   AliFMDAnalysisTaskSE *taskfmd = new AliFMDAnalysisTaskSE("TaskFMD");
43   mgr->AddTask(taskfmd);
44
45   // --- Connect input/output ----------------------------------------
46   TString outputfile = Form("%s:%s", 
47                             AliAnalysisManager::GetCommonFileName(),
48                             pars->GetDndetaAnalysisName());
49
50   AliAnalysisDataContainer *cout_fmd = 
51     mgr->CreateContainer("BackgroundCorrected", TList::Class(), 
52                          AliAnalysisManager::kOutputContainer,outputfile);
53   mgr->ConnectInput(taskfmd, 0, mgr->GetCommonInputContainer());
54   mgr->ConnectOutput(taskfmd, 1, cout_fmd);
55
56   return taskfmd;
57 }
58 //
59 // EOF
60 //
61