]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG3/dielectron/AddTaskJPSI.C
Updates and additions: Classes for signal and spectrum extraction; saving of
[u/mrichter/AliRoot.git] / PWG3 / dielectron / AddTaskJPSI.C
1 AliAnalysisTask *AddTaskJPSI(const char* config=""){
2   //get the current analysis manager
3   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
4   if (!mgr) {
5     ::Error("AddTasJPSI", "No analysis manager found.");
6     return NULL;
7   }
8   if (!mgr->GetInputEventHandler()) {
9     ::Error("AddTaskJPSI", "This task requires an input event handler");
10     return NULL;
11   }
12
13   TString configFile("$ALICE_ROOT/PWG3/dielectron/macros/ConfigJpsi2eeData.C");
14   if (mgr->GetInputEventHandler()->IsA()==AliAODInputHandler::Class()){
15     ::Info("AddTaskJPSI", "Using AOD configuration");
16     configFile="$ALICE_ROOT/PWG3/dielectron/macros/ConfigJpsi2eeDataAOD.C";
17   }
18
19   //create task and add it to the manager
20   AliAnalysisTaskMultiDielectron *task=new AliAnalysisTaskMultiDielectron("MultiDie");
21   mgr->AddTask(task);
22   
23   //load dielectron configuration file
24   gROOT->LoadMacro(configFile.Data());
25   
26   //add dielectron analysis with different cuts to the task
27   for (Int_t i=0; i<nDie; ++i){ //nDie defined in config file
28     AliDielectron *jpsi=ConfigJpsi2ee(i);
29     task->AddDielectron(jpsi);
30   }
31   
32   //----------------------
33   //create data containers
34   //----------------------
35
36   //find input container
37   AliAnalysisDataContainer *cinput  = mgr->GetCommonInputContainer();
38   
39   TString containerName = mgr->GetCommonFileName();
40   containerName += ":PWG3_dielectron";
41     
42   //create output container
43   
44   AliAnalysisDataContainer *cOutputHist1 =
45     mgr->CreateContainer("QA", TList::Class(), AliAnalysisManager::kOutputContainer,
46                          containerName.Data());
47   
48   AliAnalysisDataContainer *cOutputHist2 =
49     mgr->CreateContainer("CF", TList::Class(), AliAnalysisManager::kOutputContainer,
50                          containerName.Data());
51   
52   mgr->ConnectInput(task,  0, mgr->GetCommonInputContainer());
53   mgr->ConnectOutput(task, 1, cOutputHist1);
54   mgr->ConnectOutput(task, 2, cOutputHist2);
55   
56   return task;
57 }