]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGDQ/dielectron/TakuAlberica/single/AddTaskDielectronTaku.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGDQ / dielectron / TakuAlberica / single / AddTaskDielectronTaku.C
CommitLineData
06f630bb 1AliAnalysisTask *AddTaskDielectronTaku(Float_t centrMin, Float_t centrMax,
2 TString fileName, TString suffixName="",
3 Bool_t hasMC_aod = kFALSE)
4{
5 //get the current analysis manager
6 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
7 if (!mgr) {
8 ::Error("AddTaskDielectron", "No analysis manager found.");
9 return NULL;
10 }
11 if (!mgr->GetInputEventHandler()) {
12 ::Error("AddTaskDielectron", "This task requires an input event handler");
13 return NULL;
14 }
15
16 //Do we have an MC handler?
17 Bool_t hasMC=(mgr->GetMCtruthEventHandler()!=0x0);
18 /*
19 TString configFile("./ConfigJpsi2eeDataTaku.C");
20 if (hasMC){
21 configFile="$ALICE_ROOT/PWG3/dielectron/macros/ConfigJpsi2eeEff.C";
22 }
23 */
24 Bool_t isAOD=mgr->GetInputEventHandler()->IsA()==AliAODInputHandler::Class();
25
26 //Add event filter
27 AliDielectronEventCuts *eventCuts=new AliDielectronEventCuts(
28 Form("eventCuts_%s",suffixName.Data()),
29 "Vertex Track && |vtxZ|<10 && ncontrib>0"
30 );
31 eventCuts->SetCentralityRange(centrMin,centrMax);
32 eventCuts->SetRequireVertex();
33 eventCuts->SetMinVtxContributors(1);
34 eventCuts->SetVertexZ(-10.,10.);
35
36
37
38
39
40 //create task and add it to the manager
41 //cout<<"AliAnalysisTaskMultiDielectron : "<<configFile.Data()<<endl;
42 AliAnalysisTaskMultiDielectronNewTaku *task=new AliAnalysisTaskMultiDielectronNewTaku(
43 Form("MultiDie_%s",
44 suffixName.Data()),
45 eventCuts
46 );
47
48
49
50 //load dielectron configuration file
51 //cout<<"LoadMacro="<<configFile.Data()<<endl;
52
53 //gROOT->LoadMacro(configFile.Data());
54 //cout<<"LoadMacro End="<<configFile.Data()<<endl;
55 //add dielectron analysis with different cuts to the task
56 for (Int_t i=0; i<nDie; ++i){ //nDie defined in config file
57 AliDielectronTaku *jpsi=ConfigJpsi2ee(i,isAOD);
58 //jpsi->SetPreFilterAllSigns(kTRUE);
59 if (isAOD) jpsi->SetHasMC(hasMC_aod);
60 if (jpsi) task->AddDielectron(jpsi);
61 }
62
63 // add event filter
64 task->SetEventFilter(eventCuts);
65
66 // pileup rejection
67 task->SetRejectPileup();
68
69
70
71
72
73
74 //========= Add tender to the ANALYSIS manager and set default storage =====
75 AliTender *tender=new AliTender("AnalysisTender");
76 tender->SetCheckEventSelection(kFALSE);
77 //tender->SetDefaultCDBStorage("raw://");
78 tender->SetDefaultCDBStorage("alien://folder=/alice/data/2011/OCDB");
79 //========= Attach TOF supply ======
80 AliTOFTenderSupply *TOFtender = new AliTOFTenderSupply("TOFtender");
81 TOFtender->SetTOFres(80);
82 TOFtender->SetCorrectExpTimes(kFALSE);
83 //TOFtender->SetTheorExpTimes(kTRUE);
84 ///tender->AddSupply(TOFtender);
85
86 //========= Attach TPC supply ======
87 AliTPCTenderSupply *tpcSupply=new AliTPCTenderSupply("TPCtender");
88 tpcSupply->SetDebugLevel(2);
89 //tpcSupply->SetMip(50.);
90 ///tender->AddSupply(tpcSupply);
91
92 ///mgr->AddTask(tender);
93
94
95 //======== Event plane =============
96 AliEPSelectionTask *eventplaneTask = new AliEPSelectionTask("EventplaneSelection");
97 eventplaneTask->SelectCollisionCandidates(AliVEvent::kMB);
98 eventplaneTask->SetTrackType("TPC");
99 eventplaneTask->SetUsePtWeight();
100 ///mgr->AddTask(eventplaneTask);
101
102 ///mgr->AddTask(task);
103
104 //----------------------
105 //create data containers
106 //----------------------
107 //cout<<"----- "<<mgr->GetCommonFileName()<<" + "<<fileName<<endl;
108 TString containerName = fileName+mgr->GetCommonFileName();
109 containerName += ":PWG3_dielectron";
110
111 //create output container
112
113 AliAnalysisDataContainer *cOutputHist1 =
114 mgr->CreateContainer(Form("jpsi_QA_%s",suffixName.Data()), TList::Class(), AliAnalysisManager::kOutputContainer,
115 containerName.Data());
116
117 AliAnalysisDataContainer *cOutputHist2 =
118 mgr->CreateContainer(Form("jpsi_CF_%s",suffixName.Data()), TList::Class(), AliAnalysisManager::kOutputContainer,
119 containerName.Data());
120
121 AliAnalysisDataContainer *cOutputHist3 =
122 mgr->CreateContainer(Form("jpsi_EventStat_%s",suffixName.Data()),
123 TH1D::Class(),
124 AliAnalysisManager::kOutputContainer,
125 containerName.Data());
126
127 AliAnalysisDataContainer *coutput1 =
128 mgr->CreateContainer(Form("single_tree_%s", suffixName.Data()),
129 //TList::Class(),
130 TTree::Class(),
131 AliAnalysisManager::kOutputContainer,
132 containerName.Data());
133
134 AliAnalysisDataContainer *coutput_ep1 = mgr->CreateContainer("EPStat",
135 TList::Class(), AliAnalysisManager::kOutputContainer,
136 "EventStat_temp.root");
137
138
139 AliAnalysisDataContainer *coutput_td1 =
140 mgr->CreateContainer("tender_event", AliESDEvent::Class(),
141 AliAnalysisManager::kExchangeContainer,"default_tender");
142
143
144 cout<<"containerName.Data = "<<containerName.Data()<<endl;
145
146 // mgr->ConnectInput(eventplaneTask, 0, mgr->GetCommonInputContainer());
147 //mgr->ConnectOutput(eventplaneTask,1,coutput_ep1);
148
149
150 // mgr->ConnectInput(tender, 0, mgr->GetCommonInputContainer());
151 // mgr->ConnectOutput(tender,1,coutput_td1);
152
153
154
155
156 mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());
157 mgr->ConnectOutput(task, 1, cOutputHist1);
158 mgr->ConnectOutput(task, 2, cOutputHist2);
159 mgr->ConnectOutput(task, 3, cOutputHist3);
160 mgr->ConnectOutput(task, 4, coutput1);
161
162
163
164 return task;
165}