]>
Commit | Line | Data |
---|---|---|
7a1ac44b | 1 | void Load(const char* taskName, Bool_t debug) |
2 | { | |
3 | TString compileTaskName; | |
51f6de65 | 4 | compileTaskName.Form("%s.cxx++", taskName); |
7a1ac44b | 5 | if (debug) |
51f6de65 | 6 | compileTaskName += "g"; |
7a1ac44b | 7 | |
8 | if (gProof) { | |
9 | gProof->Load(compileTaskName); | |
10 | } else | |
11 | gROOT->Macro(compileTaskName); | |
12 | ||
13 | // Enable debug printouts | |
14 | if (debug) | |
15 | { | |
16 | AliLog::SetClassDebugLevel(taskName, AliLog::kDebug+2); | |
17 | } | |
18 | else | |
19 | AliLog::SetClassDebugLevel(taskName, AliLog::kWarning); | |
20 | } | |
21 | ||
745d6088 | 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 = "") |
0f67a57c | 23 | { |
0fc41645 | 24 | // runWhat options: 0 = AlidNdEtaTask |
25 | // 1 = AlidNdEtaCorrectionTask | |
7a1ac44b | 26 | // 2 = both |
0fc41645 | 27 | // |
28 | // aProof option: 0 no proof | |
29 | // 1 proof with chain | |
30 | // 2 proof with dataset | |
69b09e3b | 31 | |
0fc41645 | 32 | TString taskName; |
7a1ac44b | 33 | if (runWhat == 0 || runWhat == 2) |
0fc41645 | 34 | { |
7a1ac44b | 35 | Printf("Running AlidNdEtaTask"); |
0fc41645 | 36 | } |
7a1ac44b | 37 | if (runWhat == 1 || runWhat == 2) |
0fc41645 | 38 | { |
7a1ac44b | 39 | Printf("Running AlidNdEtaCorrectionTask"); |
0fc41645 | 40 | if (!mc) |
41 | { | |
7a1ac44b | 42 | Printf("AlidNdEtaCorrectionTask needs MC. Exiting..."); |
0fc41645 | 43 | return; |
44 | } | |
45 | } | |
0fc41645 | 46 | |
47 | if (nRuns < 0) | |
48 | nRuns = 1234567890; | |
49 | ||
0f67a57c | 50 | if (aProof) |
51 | { | |
69b09e3b | 52 | TProof::Open("alicecaf"); |
0fc41645 | 53 | //gProof->SetParallel(1); |
0f67a57c | 54 | |
55 | // Enable the needed package | |
567160d6 | 56 | if (1) |
57 | { | |
58 | gProof->UploadPackage("$ALICE_ROOT/STEERBase"); | |
59 | gProof->EnablePackage("$ALICE_ROOT/STEERBase"); | |
60 | gProof->UploadPackage("$ALICE_ROOT/ESD"); | |
61 | gProof->EnablePackage("$ALICE_ROOT/ESD"); | |
62 | gProof->UploadPackage("$ALICE_ROOT/AOD"); | |
63 | gProof->EnablePackage("$ALICE_ROOT/AOD"); | |
64 | gProof->UploadPackage("$ALICE_ROOT/ANALYSIS"); | |
65 | gProof->EnablePackage("$ALICE_ROOT/ANALYSIS"); | |
66 | gProof->UploadPackage("$ALICE_ROOT/ANALYSISalice"); | |
67 | gProof->EnablePackage("$ALICE_ROOT/ANALYSISalice"); | |
68 | } | |
69 | else | |
70 | { | |
69b09e3b | 71 | gProof->UploadPackage("/afs/cern.ch/alice/caf/sw/ALICE/PARs/v4-16-Release/AF-v4-16"); |
72 | gProof->EnablePackage("AF-v4-16"); | |
567160d6 | 73 | } |
0fc41645 | 74 | |
75 | gProof->UploadPackage("$ALICE_ROOT/PWG0base"); | |
76 | gProof->EnablePackage("$ALICE_ROOT/PWG0base"); | |
0f67a57c | 77 | } |
78 | else | |
79 | { | |
69b09e3b | 80 | gSystem->AddIncludePath("-I${ALICE_ROOT}/include/ -I${ALICE_ROOT}/PWG0/ -I${ALICE_ROOT}/PWG0/dNdEta/"); |
0f67a57c | 81 | gSystem->Load("libVMC"); |
82 | gSystem->Load("libTree"); | |
69b09e3b | 83 | gSystem->Load("libProof"); |
0f67a57c | 84 | gSystem->Load("libSTEERBase"); |
85 | gSystem->Load("libESD"); | |
1c15d51a | 86 | gSystem->Load("libAOD"); |
0f67a57c | 87 | gSystem->Load("libANALYSIS"); |
745d6088 | 88 | gSystem->Load("libANALYSISalice"); |
0f67a57c | 89 | gSystem->Load("libPWG0base"); |
90 | } | |
91 | ||
0f67a57c | 92 | // Create the analysis manager |
93 | mgr = new AliAnalysisManager; | |
94 | ||
861795a8 | 95 | // Add ESD handler |
96 | AliESDInputHandler* esdH = new AliESDInputHandler; | |
97 | esdH->SetInactiveBranches("AliESDACORDE FMD ALIESDTZERO ALIESDVZERO ALIESDZDC AliRawDataErrorLogs CaloClusters Cascades EMCALCells EMCALTrigger ESDfriend Kinks Kinks Cascades AliESDTZERO ALIESDACORDE MuonTracks TrdTracks CaloClusters"); | |
98 | mgr->SetInputEventHandler(esdH); | |
99 | ||
3d7758c1 | 100 | AliPWG0Helper::AnalysisMode analysisMode = AliPWG0Helper::kSPD; |
5a6310fe | 101 | AliPWG0Helper::Trigger trigger = AliPWG0Helper::kMB1; |
0fc41645 | 102 | |
103 | AliPWG0Helper::PrintConf(analysisMode, trigger); | |
770a1f1d | 104 | |
0fc41645 | 105 | AliESDtrackCuts* esdTrackCuts = 0; |
770a1f1d | 106 | if (analysisMode != AliPWG0Helper::kSPD) |
107 | { | |
108 | // selection of esd tracks | |
109 | gROOT->ProcessLine(".L ../CreateStandardCuts.C"); | |
0fc41645 | 110 | esdTrackCuts = CreateTrackCuts(analysisMode); |
770a1f1d | 111 | if (!esdTrackCuts) |
112 | { | |
113 | printf("ERROR: esdTrackCuts could not be created\n"); | |
114 | return; | |
115 | } | |
1c15d51a | 116 | esdTrackCuts->SetHistogramsOn(kTRUE); |
0fc41645 | 117 | } |
118 | ||
861795a8 | 119 | cInput = mgr->GetCommonInputContainer(); |
7a1ac44b | 120 | |
121 | // Create, add task | |
122 | if (runWhat == 0 || runWhat == 2) | |
0fc41645 | 123 | { |
7a1ac44b | 124 | Load("AlidNdEtaTask", aDebug); |
0fc41645 | 125 | task = new AlidNdEtaTask(option); |
770a1f1d | 126 | |
0fc41645 | 127 | if (mc) |
128 | task->SetReadMC(); | |
129 | ||
51f6de65 | 130 | // syst. error flags |
0fc41645 | 131 | //task->SetUseMCVertex(); |
132 | //task->SetUseMCKine(); | |
7a1ac44b | 133 | //task->SetOnlyPrimaries(); |
69b09e3b | 134 | //task->SetFillPhi(); |
135 | ||
7a1ac44b | 136 | task->SetTrigger(trigger); |
137 | task->SetAnalysisMode(analysisMode); | |
138 | task->SetTrackCuts(esdTrackCuts); | |
69b09e3b | 139 | task->SetDeltaPhiCut(0.05); |
7a1ac44b | 140 | |
141 | mgr->AddTask(task); | |
51f6de65 | 142 | |
7a1ac44b | 143 | // Attach input |
144 | mgr->ConnectInput(task, 0, cInput); | |
145 | ||
146 | // Attach output | |
147 | cOutput = mgr->CreateContainer("cOutput", TList::Class(), AliAnalysisManager::kOutputContainer); | |
148 | mgr->ConnectOutput(task, 0, cOutput); | |
770a1f1d | 149 | } |
7a1ac44b | 150 | if (runWhat == 1 || runWhat == 2) |
0fc41645 | 151 | { |
7a1ac44b | 152 | Load("AlidNdEtaCorrectionTask", aDebug); |
153 | task2 = new AlidNdEtaCorrectionTask(option); | |
51f6de65 | 154 | |
155 | // syst. error flags | |
69b09e3b | 156 | //task2->SetFillPhi(); |
7a1ac44b | 157 | //task2->SetOnlyPrimaries(); |
158 | ||
159 | task2->SetTrigger(trigger); | |
160 | task2->SetAnalysisMode(analysisMode); | |
161 | task2->SetTrackCuts(esdTrackCuts); | |
69b09e3b | 162 | //task2->SetDeltaPhiCut(0.05); |
7a1ac44b | 163 | |
164 | mgr->AddTask(task2); | |
51f6de65 | 165 | |
7a1ac44b | 166 | // Attach input |
167 | mgr->ConnectInput(task2, 0, cInput); | |
51f6de65 | 168 | |
7a1ac44b | 169 | // Attach output |
170 | cOutput = mgr->CreateContainer("cOutput2", TList::Class(), AliAnalysisManager::kOutputContainer); | |
171 | mgr->ConnectOutput(task2, 0, cOutput); | |
0fc41645 | 172 | } |
0f67a57c | 173 | |
0f67a57c | 174 | if (mc) { |
175 | // Enable MC event handler | |
176 | AliMCEventHandler* handler = new AliMCEventHandler; | |
177 | handler->SetReadTR(kFALSE); | |
178 | mgr->SetMCtruthEventHandler(handler); | |
179 | } | |
180 | ||
0f67a57c | 181 | // Enable debug printouts |
182 | if (aDebug) | |
183 | mgr->SetDebugLevel(2); | |
184 | ||
185 | // Run analysis | |
186 | mgr->InitAnalysis(); | |
187 | mgr->PrintStatus(); | |
188 | ||
0fc41645 | 189 | if (aProof == 2) |
190 | { | |
191 | // process dataset | |
192 | ||
193 | mgr->StartAnalysis("proof", data, nRuns, offset); | |
194 | } | |
51f6de65 | 195 | else if (aProof == 3) |
196 | { | |
69b09e3b | 197 | gROOT->ProcessLine(".L CreateChainFromDataSet.C"); |
198 | ds = gProof->GetDataSet(data)->GetStagedSubset(); | |
51f6de65 | 199 | chain = CreateChainFromDataSet(ds); |
200 | mgr->StartAnalysis("local", chain, nRuns, offset); | |
201 | } | |
0fc41645 | 202 | else |
203 | { | |
204 | // Create chain of input files | |
205 | gROOT->LoadMacro("../CreateESDChain.C"); | |
51f6de65 | 206 | |
0fc41645 | 207 | chain = CreateESDChain(data, nRuns, offset); |
1c15d51a | 208 | //chain = CreateChain("TE", data, nRuns, offset); |
0fc41645 | 209 | |
210 | mgr->StartAnalysis((aProof > 0) ? "proof" : "local", chain); | |
211 | } | |
0f67a57c | 212 | } |
dd367a14 | 213 |