]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGDQ/dielectron/macrosLMEE/AddTask_cbaumann_LMEEPbPb2011.C
6be90215079a748de98c88239853740fff2ce760
[u/mrichter/AliRoot.git] / PWGDQ / dielectron / macrosLMEE / AddTask_cbaumann_LMEEPbPb2011.C
1 AliAnalysisTask *AddTask_cbaumann_LMEEPbPb2011(Bool_t runAll=kFALSE, Bool_t setMC=kFALSE){
2   //get the current analysis manager
3   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
4   if (!mgr) {
5         Error("AddTask_cbaumann_LMEEPbPb2011", "No analysis manager found.");
6         return 0;
7   }
8
9   //set config file name
10   TString configFile("$ALICE_ROOT/PWGDQ/dielectron/macrosLMEE/ConfigLMEEPbPb2011.C");
11
12   //AOD Usage not yet testes/avialable-------------------------------------
13
14   if (mgr->GetInputEventHandler()->IsA()==AliAODInputHandler::Class()){
15         ::Info("AddTaskLMEEPbPb2011", "no dedicated AOD configuration");
16 //      configFile="$TRAIN_ROOT/util/dielectron/dielectron/macros/ConfigLMEEPbPb2011AOD.C";     
17         
18   }
19
20   //Do we have an MC handler?
21   //Bool_t hasMC=(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0);
22   Bool_t hasMC=setMC;
23
24   const Int_t kNtriggers=1;
25     ULong64_t triggers[]={AliVEvent::kCentral | AliVEvent::kSemiCentral | AliVEvent::kMB };
26         const char* triggerNames[]={"all"};
27
28
29
30 //  create task and add it to the manager
31 //      gSystem->AddIncludePath("$ALICE_ROOT/PWGDQ/dielectron/macrosLMEE");
32
33         gROOT->LoadMacro("$ALICE_ROOT/PWGDQ/dielectron/macrosLMEE/LMEECutLib.C");
34         gROOT->LoadMacro(configFile.Data());
35   LMEECutLib* cutlib = new LMEECutLib();
36   AliAnalysisTaskMultiDielectron *task=new AliAnalysisTaskMultiDielectron("MultiDiEData");
37   if (!hasMC){ task->UsePhysicsSelection();
38   }
39   task->SetTriggerMask(triggers[0]);
40   task->SetEventFilter(cutlib->GetEventCuts(LMEECutLib::kPbPb2011TPCandTOF)); //
41
42   //load dielectron configuration file
43
44   //add dielectron analysis with different cuts to the task
45 /*
46   AliDielectron *lowmass1=ConfigLMEEPbPb2011(1,hasMC);
47   task->AddDielectron(lowmass1);
48   printf("add: %s\n",lowmass1->GetName());
49
50   AliDielectron *lowmass2=ConfigLMEEPbPb2011(2,hasMC);
51   task->AddDielectron(lowmass2);
52   printf("add: %s\n",lowmass2->GetName());
53 */
54   /*
55   AliDielectron *lowmass3=ConfigLMEEPbPb2011(3,hasMC);
56   task->AddDielectron(lowmass3);
57   printf("add: %s\n",lowmass3->GetName());
58 */
59 if (runAll) {
60   AliDielectron *lowmass4=ConfigLMEEPbPb2011(4,hasMC);
61   task->AddDielectron(lowmass4);
62   printf("add: %s\n",lowmass4->GetName());
63
64 //  AliDielectron *lowmass5=ConfigLMEEPbPb2011(5,hasMC);
65 //  task->AddDielectron(lowmass5);
66 //  printf("add: %s\n",lowmass5->GetName());
67 }
68 else {
69   AliDielectron *lowmass1=ConfigLMEEPbPb2011(1,hasMC);
70   task->AddDielectron(lowmass1);
71   printf("add: %s\n",lowmass1->GetName())
72 }
73
74   mgr->AddTask(task);
75
76   //create output container
77   AliAnalysisDataContainer *coutput1 =
78         mgr->CreateContainer("cbaumann_LMEEPbPb2011_tree",
79                 TTree::Class(),
80                 AliAnalysisManager::kExchangeContainer,
81                 "cbaumann_LMEEPbPb2011_default.root");
82
83   AliAnalysisDataContainer *cOutputHist1 =
84         mgr->CreateContainer("cbaumann_LMEEPbPb2011_out",
85                 TList::Class(),
86                 AliAnalysisManager::kOutputContainer,
87                 "cbaumann_LMEEPbPb2011_out.root");
88 //  if (hasMC) {
89   AliAnalysisDataContainer *cOutputHist2 =
90         mgr->CreateContainer("cbaumann_LMEEPbPb2011_CF",
91                 TList::Class(),
92                 AliAnalysisManager::kOutputContainer,
93                 "cbaumann_LMEEPbPb2011_out.root");
94
95 //        }
96   AliAnalysisDataContainer *cOutputHist3 =
97         mgr->CreateContainer("cbaumann_EventStatPbPb2011",
98                 TH1D::Class(),
99                 AliAnalysisManager::kOutputContainer,
100                 "cbaumann_LMEEPbPb2011_out.root");
101
102
103   mgr->ConnectInput(task,  0, mgr->GetCommonInputContainer());
104   mgr->ConnectOutput(task, 0, coutput1 );
105   mgr->ConnectOutput(task, 1, cOutputHist1);
106   mgr->ConnectOutput(task, 2, cOutputHist2);
107   mgr->ConnectOutput(task, 3, cOutputHist3);
108
109   return task;
110 }