1 void Load(const char* taskName, Bool_t debug)
3 TString compileTaskName;
4 compileTaskName.Form("%s.cxx++", taskName);
6 compileTaskName += "g";
9 gProof->Load(compileTaskName);
11 gROOT->Macro(compileTaskName);
13 // Enable debug printouts
16 AliLog::SetClassDebugLevel(taskName, AliLog::kDebug+2);
19 AliLog::SetClassDebugLevel(taskName, AliLog::kWarning);
22 void run(Int_t runWhat, const Char_t* data, Int_t nRuns=20, Int_t offset=0, Bool_t aDebug = kFALSE, Int_t aProof = kFALSE, Bool_t mc = kTRUE, const char* option = "")
24 // runWhat options: 0 = AlidNdEtaTask
25 // 1 = AlidNdEtaCorrectionTask
28 // aProof option: 0 no proof
30 // 2 proof with dataset
32 // option is passed to the task(s)
33 // option SAVE is removed and results in moving the output files to maps/<ds name>/<trigger>/<det>
37 if (runWhat == 0 || runWhat == 2)
39 Printf("Running AlidNdEtaTask");
41 if (runWhat == 1 || runWhat == 2)
43 Printf("Running AlidNdEtaCorrectionTask");
46 Printf("AlidNdEtaCorrectionTask needs MC. Exiting...");
56 TProof::Open("alicecaf");
57 //gProof->SetParallel(1);
59 // Enable the needed package
62 gProof->UploadPackage("$ALICE_ROOT/STEERBase");
63 gProof->EnablePackage("$ALICE_ROOT/STEERBase");
64 gProof->UploadPackage("$ALICE_ROOT/ESD");
65 gProof->EnablePackage("$ALICE_ROOT/ESD");
66 gProof->UploadPackage("$ALICE_ROOT/AOD");
67 gProof->EnablePackage("$ALICE_ROOT/AOD");
68 gProof->UploadPackage("$ALICE_ROOT/ANALYSIS");
69 gProof->EnablePackage("$ALICE_ROOT/ANALYSIS");
70 gProof->UploadPackage("$ALICE_ROOT/ANALYSISalice");
71 gProof->EnablePackage("$ALICE_ROOT/ANALYSISalice");
75 gProof->UploadPackage("/afs/cern.ch/alice/caf/sw/ALICE/PARs/v4-17-Release/AF-v4-17");
76 gProof->EnablePackage("AF-v4-17");
79 gProof->UploadPackage("$ALICE_ROOT/PWG0base");
80 gProof->EnablePackage("$ALICE_ROOT/PWG0base");
84 gSystem->AddIncludePath("-I${ALICE_ROOT}/include/ -I${ALICE_ROOT}/PWG0/ -I${ALICE_ROOT}/PWG0/dNdEta/");
85 gSystem->Load("libVMC");
86 gSystem->Load("libTree");
87 gSystem->Load("libProof");
88 gSystem->Load("libSTEERBase");
89 gSystem->Load("libESD");
90 gSystem->Load("libAOD");
91 gSystem->Load("libANALYSIS");
92 gSystem->Load("libANALYSISalice");
93 gSystem->Load("libPWG0base");
96 // Create the analysis manager
97 mgr = new AliAnalysisManager;
100 //AliESDInputHandler* esdH = new AliESDInputHandler;
101 AliESDInputHandler* esdH = new AliESDInputHandlerRP; // for RecPoints
103 esdH->SetInactiveBranches("AliESDACORDE FMD ALIESDTZERO ALIESDVZERO ALIESDZDC AliRawDataErrorLogs CaloClusters Cascades EMCALCells EMCALTrigger ESDfriend Kinks Kinks Cascades AliESDTZERO ALIESDACORDE MuonTracks TrdTracks CaloClusters");
104 mgr->SetInputEventHandler(esdH);
106 AliPWG0Helper::AnalysisMode analysisMode = AliPWG0Helper::kSPD | AliPWG0Helper::kFieldOn;
107 AliTriggerAnalysis::Trigger trigger = AliTriggerAnalysis::kSPDGFOBits | AliTriggerAnalysis::kOfflineFlag; // AcceptAll;
109 AliPWG0Helper::PrintConf(analysisMode, trigger);
111 AliESDtrackCuts* esdTrackCuts = 0;
112 if (!(analysisMode & AliPWG0Helper::kSPD))
114 // selection of esd tracks
115 gROOT->ProcessLine(".L ../CreateStandardCuts.C");
116 esdTrackCuts = CreateTrackCuts(analysisMode);
119 printf("ERROR: esdTrackCuts could not be created\n");
122 esdTrackCuts->SetHistogramsOn(kTRUE);
125 cInput = mgr->GetCommonInputContainer();
127 // remove SAVE option if set
128 Bool_t save = kFALSE;
129 TString optStr(option);
130 if (optStr.Contains("SAVE"))
132 optStr = optStr(0,optStr.Index("SAVE")) + optStr(optStr.Index("SAVE")+4, optStr.Length());
137 if (runWhat == 0 || runWhat == 2)
139 Load("AlidNdEtaTask", aDebug);
140 task = new AlidNdEtaTask(optStr);
146 //task->SetUseMCVertex();
147 //task->SetUseMCKine();
148 //task->SetOnlyPrimaries();
149 //task->SetFillPhi();
150 //task->SetSymmetrize();
152 task->SetTrigger(trigger);
153 task->SetAnalysisMode(analysisMode);
154 task->SetTrackCuts(esdTrackCuts);
155 //task->SetDeltaPhiCut(0.05);
157 task->SetCheckEventType();
162 mgr->ConnectInput(task, 0, cInput);
165 cOutput = mgr->CreateContainer("cOutput", TList::Class(), AliAnalysisManager::kOutputContainer);
166 mgr->ConnectOutput(task, 0, cOutput);
168 if (runWhat == 1 || runWhat == 2)
170 Load("AlidNdEtaCorrectionTask", aDebug);
171 task2 = new AlidNdEtaCorrectionTask(optStr);
174 //task2->SetFillPhi();
175 //task2->SetOnlyPrimaries();
176 //task2->SetSymmetrize();
178 task2->SetTrigger(trigger);
179 task2->SetAnalysisMode(analysisMode);
180 task2->SetTrackCuts(esdTrackCuts);
181 //task2->SetDeltaPhiCut(0.05);
186 mgr->ConnectInput(task2, 0, cInput);
189 cOutput = mgr->CreateContainer("cOutput2", TList::Class(), AliAnalysisManager::kOutputContainer);
190 mgr->ConnectOutput(task2, 0, cOutput);
194 // Enable MC event handler
195 AliMCEventHandler* handler = new AliMCEventHandler;
196 handler->SetReadTR(kFALSE);
197 mgr->SetMCtruthEventHandler(handler);
200 // Enable debug printouts
202 mgr->SetDebugLevel(2);
212 mgr->StartAnalysis("proof", data, nRuns, offset);
216 TString path("maps/");
217 path += TString(data).Tokenize("/")->Last()->GetName();
219 UInt_t triggerNoFlags = (UInt_t) trigger % (UInt_t) AliTriggerAnalysis::kStartOfFlags;
220 switch (triggerNoFlags)
222 case AliTriggerAnalysis::kMB1: path += "/mb1"; break;
223 case AliTriggerAnalysis::kMB2: path += "/mb2"; break;
224 case AliTriggerAnalysis::kMB3: path += "/mb3"; break;
225 case AliTriggerAnalysis::kSPDGFO: path += "/spdgfo"; break;
226 case AliTriggerAnalysis::kSPDGFOBits: path += "/spdgfobits"; break;
227 default: Printf("ERROR: Trigger undefined for path to files"); return;
230 if (analysisMode & AliPWG0Helper::kSPD)
233 if (analysisMode & AliPWG0Helper::kTPC)
236 gSystem->mkdir(path, kTRUE);
237 if (runWhat == 0 || runWhat == 2)
239 gSystem->Rename("analysis_esd_raw.root", path + "/analysis_esd_raw.root");
241 gSystem->Rename("analysis_mc.root", path + "/analysis_mc.root");
243 if (runWhat == 1 || runWhat == 2)
245 gSystem->Rename("correction_map.root", path + "/correction_map.root");
248 Printf(">>>>> Moved files to %s", path.Data());
251 else if (aProof == 3)
253 gROOT->ProcessLine(".L CreateChainFromDataSet.C");
254 ds = gProof->GetDataSet(data)->GetStagedSubset();
255 chain = CreateChainFromDataSet(ds);
256 mgr->StartAnalysis("local", chain, nRuns, offset);
260 // Create chain of input files
261 gROOT->LoadMacro("../CreateESDChain.C");
263 chain = CreateESDChain(data, nRuns, offset);
264 //chain = CreateChain("TE", data, nRuns, offset);
266 mgr->StartAnalysis((aProof > 0) ? "proof" : "local", chain);