]>
Commit | Line | Data |
---|---|---|
06f630bb | 1 | AliAnalysisTask *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 | } |