]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGHF/hfe/macros/AddTaskFlowTPCEMCalEP.C
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / PWGHF / hfe / macros / AddTaskFlowTPCEMCalEP.C
1 AliAnalysisTask *AddTaskFlowTPCEMCalEP(Double_t openingAngle = 0.1,
2                                        Double_t invMass = 0.01,
3                                        TString nonHFEalgorithm = "KF")
4 {
5   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
6   if (!mgr) {
7     Error("AddTaskFlowTPCEMCalEP", "No analysis manager found.");
8     return NULL;
9   }
10
11   if (!mgr->GetInputEventHandler()) {
12     ::Error("AddTaskFlowTPCEMCalEP", "This task requires an input event handler");
13     return NULL;
14   }
15   TString type = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
16   if (type=="AOD"){
17     ::Error("AddTaskFlowTPCEMCalEP", "The tasks exits because AODs are in input");
18     return NULL;
19   }
20   Bool_t MCthere=kFALSE;
21   AliMCEventHandler *mcH = dynamic_cast<AliMCEventHandler*>(mgr->GetMCtruthEventHandler());
22   if(!mcH){
23     MCthere=kFALSE;
24   }else{
25     MCthere=kTRUE;
26   }
27   
28   
29   //Event plane task
30   AliEPSelectionTask *eventplaneTask = new AliEPSelectionTask("EventplaneSelection");
31   eventplaneTask->SelectCollisionCandidates(AliVEvent::kMB | AliVEvent::kSemiCentral | AliVEvent::kCentral | AliVEvent::kEMCEGA | AliVEvent::kEMCEJE);
32
33   eventplaneTask->SetTrackType("TPC");
34   eventplaneTask->SetUsePtWeight();
35   eventplaneTask->SetUsePhiWeight();
36   eventplaneTask->SetSaveTrackContribution();
37
38   mgr->AddTask(eventplaneTask);
39
40   TString containerName3 = mgr->GetCommonFileName();
41   containerName3 += ":PWGHF_hfeCalEventPlane";
42   
43   AliAnalysisDataContainer *cinput0 = mgr->GetCommonInputContainer();
44   AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("EPStat",TList::Class(), AliAnalysisManager::kOutputContainer,containerName3.Data());
45   mgr->ConnectInput(eventplaneTask, 0, mgr->GetCommonInputContainer());
46   mgr->ConnectOutput(eventplaneTask,1,coutput1);
47
48   //analysis task 
49 //   gROOT->LoadMacro("$ALICE_ROOT/PWGHF/hfe/AliAnalysisTaskFlowTPCEMCalEP.cxx++g");
50   gROOT->LoadMacro("$ALICE_ROOT/PWGHF/hfe/macros/configs/PbPb/ConfigHFE_FLOW_TPCEMCal_EP.C");
51
52   AliAnalysisTaskFlowTPCEMCalEP *taskMB = ConfigHFE_FLOW_TPCEMCal_EP(MCthere,openingAngle,invMass,nonHFEalgorithm);
53   AliAnalysisTaskFlowTPCEMCalEP *taskcorrMB = ConfigHFE_FLOW_TPCEMCal_EP(MCthere,openingAngle,invMass,nonHFEalgorithm);
54   AliAnalysisTaskFlowTPCEMCalEP *taskTR = ConfigHFE_FLOW_TPCEMCal_EP(MCthere,openingAngle,invMass,nonHFEalgorithm);
55  
56   mgr->AddTask(taskcorrMB);
57   mgr->AddTask(taskMB);
58   mgr->AddTask(taskTR);
59   
60   // Flattened semi central trigger
61
62   taskcorrMB->SelectCollisionCandidates(AliVEvent::kAny);
63
64   TString containerName = mgr->GetCommonFileName();
65   containerName += ":PWGHF_hfeCalcorrSemiCentralV2";
66   
67   AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
68   AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("histcorrMB", TList::Class(),AliAnalysisManager::kOutputContainer, containerName.Data());
69   mgr->ConnectInput(taskcorrMB, 0, cinput);
70   mgr->ConnectOutput(taskcorrMB, 1, coutput1);
71
72   // Central trigger
73   taskMB->SelectCollisionCandidates(AliVEvent::kSemiCentral | AliVEvent::kCentral);
74
75   TString containerName = mgr->GetCommonFileName();
76   containerName += ":PWGHF_hfeCalCentralV2";
77   
78   AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
79   AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("histMB", TList::Class(),AliAnalysisManager::kOutputContainer, containerName.Data());
80   mgr->ConnectInput(taskMB, 0, cinput);
81   mgr->ConnectOutput(taskMB, 1, coutput1);
82   
83   //L1 gamma and jet trigger
84   taskTR->SelectCollisionCandidates(AliVEvent::kEMCEGA | AliVEvent::kEMCEJE);
85
86   TString containerName2 = mgr->GetCommonFileName();
87   containerName2 += ":PWGHF_hfeCalL1GammaV2";
88   
89   AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
90   AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("histTR", TList::Class(),AliAnalysisManager::kOutputContainer, containerName2.Data());
91   mgr->ConnectInput(taskTR, 0, cinput);
92   mgr->ConnectOutput(taskTR, 1, coutput1);
93   
94   if(MCthere){
95     
96     AliAnalysisTaskFlowTPCEMCalEP *taskMC = ConfigHFE_FLOW_TPCEMCal_EP(MCthere,openingAngle,invMass,nonHFEalgorithm);
97     mgr->AddTask(taskMC);
98     
99     taskMC->SelectCollisionCandidates(AliVEvent::kMB);
100     
101     TString containerName3 = mgr->GetCommonFileName();
102     containerName3 += ":PWGHF_hfeCalMCV2";
103     
104     AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
105     AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("histMC", TList::Class(),AliAnalysisManager::kOutputContainer, containerName3.Data());
106     mgr->ConnectInput(taskMC, 0, cinput);
107     mgr->ConnectOutput(taskMC, 1, coutput1);
108   }
109   
110   
111   return NULL;
112 }
113