]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG0/dNdEta/run.C
adding offline triggers
[u/mrichter/AliRoot.git] / PWG0 / dNdEta / run.C
CommitLineData
7a1ac44b 1void 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 22void 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