]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGDQ/dielectron/macrosLMEE/AddTask_cbaumann_LMEEpp2010.C
add robust defaults
[u/mrichter/AliRoot.git] / PWGDQ / dielectron / macrosLMEE / AddTask_cbaumann_LMEEpp2010.C
1 AliAnalysisTask *AddTask_cbaumann_LMEEpp2010(Bool_t runTwo=kFALSE, Bool_t hasMC=kFALSE, Bool_t enableCF=kFALSE){
2   //get the current analysis manager
3   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
4   if (!mgr) {
5     Error("AddTask_cbaumann_LMEEpp2010", "No analysis manager found.");
6     return 0;
7   }
8
9   //set config file name
10   TString configFile("$ALICE_ROOT/PWGDQ/dielectron/macrosLMEE/ConfigLMEEpp2010.C");
11
12   //AOD Usage not yet testes/avialable-------------------------------------
13
14   if (mgr->GetInputEventHandler()->IsA()==AliAODInputHandler::Class()){
15     ::Info("AddTaskLMEEpp2010", "no dedicated AOD configuration");
16     //  configFile="$TRAIN_ROOT/util/dielectron/dielectron/macros/ConfigLMEEpp2010AOD.C";       
17
18   }
19
20   //Do we have an MC handler? //Child protected, if auto-recognition fails
21   if (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0)
22     hasMC=kTRUE;
23
24
25   //  create task and add it to the manager
26
27   gROOT->LoadMacro("$ALICE_ROOT/PWGDQ/dielectron/macrosLMEE/LMEECutLib.C");
28   gROOT->LoadMacro(configFile.Data());
29   LMEECutLib* cutlib = new LMEECutLib();
30   AliAnalysisTaskMultiDielectron *task=new AliAnalysisTaskMultiDielectron("MultiDiEData");
31   if (!hasMC) task->UsePhysicsSelection();
32   task->SetEventFilter(cutlib->GetEventCuts(LMEECutLib::kpp2010TPCandTOF)); //
33
34
35   //load dielectron configuration file
36
37   //add dielectron analysis with different cuts to the task
38
39   AliDielectron *lowmass1=ConfigLMEEpp2010(1,hasMC,enableCF);
40   task->AddDielectron(lowmass1);
41   printf("add: %s\n",lowmass1->GetName());
42
43   if (runTwo) {
44     AliDielectron *lowmass2=ConfigLMEEpp2010(2,hasMC,enableCF);
45     task->AddDielectron(lowmass2);
46     printf("add: %s\n",lowmass2->GetName());
47   }
48
49   mgr->AddTask(task);
50
51   //create output container
52   AliAnalysisDataContainer *coutput1 =
53     mgr->CreateContainer("cbaumann_LMEEpp2010_tree",
54         TTree::Class(),
55         AliAnalysisManager::kExchangeContainer,
56         "cbaumann_LMEEpp2010_default.root");
57
58   AliAnalysisDataContainer *cOutputHist1 =
59     mgr->CreateContainer("cbaumann_LMEEpp2010_out",
60         TList::Class(),
61         AliAnalysisManager::kOutputContainer,
62         "cbaumann_LMEEpp2010_out.root");
63   if (enableCF) {
64     AliAnalysisDataContainer *cOutputHist2 =
65       mgr->CreateContainer("cbaumann_LMEEpp2010_CF",
66           TList::Class(),
67           AliAnalysisManager::kOutputContainer,
68           "cbaumann_LMEEpp2010_out.root");
69   }
70   AliAnalysisDataContainer *cOutputHist3 =
71     mgr->CreateContainer("cbaumann_EventStatPbPb2011",
72         TH1D::Class(),
73         AliAnalysisManager::kOutputContainer,
74         "cbaumann_LMEEpp2010_out.root");
75
76
77   mgr->ConnectInput(task,  0, mgr->GetCommonInputContainer());
78   mgr->ConnectOutput(task, 0, coutput1 );
79   mgr->ConnectOutput(task, 1, cOutputHist1);
80   if (enableCF) {
81     mgr->ConnectOutput(task, 2, cOutputHist2);
82   }  
83   mgr->ConnectOutput(task, 3, cOutputHist3);
84
85   return task;
86 }