]>
Commit | Line | Data |
---|---|---|
3aeed473 | 1 | void runBatch() { |
2 | TStopwatch timer; | |
3 | timer.Start(); | |
4 | ||
5 | printf("*** Connect to AliEn ***\n"); | |
6 | TGrid::Connect("alien://"); | |
7 | gSystem->Load("libProofPlayer.so"); | |
8 | gSystem->Load("libVMC.so"); | |
9 | gSystem->Load("libPhysics.so"); | |
10 | ||
11 | // Use par files only for PWG2 code | |
12 | int useParFiles = 0; | |
13 | int usePWG2ParFiles = 1; | |
14 | ||
15 | // Use precompiled libraries for the analysis framework | |
16 | if (useParFiles) | |
17 | setupPar("STEERBase"); | |
18 | if (gSystem->Load("libSTEERBase.so")<0) { | |
19 | cout << "Cannot load libSTEERBase.so . Exiting" << endl; | |
20 | exit(0); | |
21 | } | |
22 | gSystem->Load("libVMC.so"); | |
23 | ||
24 | if (useParFiles) | |
25 | setupPar("ESD"); | |
26 | if (gSystem->Load("libESD.so")<0) { | |
27 | cout << "Cannot load libESD.so . Exiting" << endl; | |
28 | exit(0); | |
29 | } | |
30 | ||
31 | if (useParFiles) | |
32 | setupPar("AOD"); | |
33 | if (gSystem->Load("libAOD.so")<0) { | |
34 | cout << "Cannot load libAOD.so . Exiting" << endl; | |
35 | exit(0); | |
36 | } | |
37 | ||
38 | if (useParFiles) | |
39 | setupPar("ANALYSIS"); | |
40 | if (gSystem->Load("libANALYSIS.so")<0) { | |
41 | cout << "Cannot load libANALYSIS.so . Exiting" << endl; | |
42 | exit(0); | |
43 | } | |
44 | ||
45 | if (useParFiles) | |
46 | setupPar("ANALYSISalice"); | |
47 | if (gSystem->Load("libANALYSISalice.so")<0) { | |
48 | cout << "Cannot load libANALYSISalice.so . Exiting" << endl; | |
49 | exit(0); | |
50 | } | |
51 | ||
52 | //____________________________________________________// | |
53 | //_____________Setting up PWG2AOD.par_________________// | |
54 | //____________________________________________________// | |
55 | if (usePWG2ParFiles) { | |
56 | // char dynpath[10000]; | |
57 | // sprintf(dynpath, ".:%s", gSystem->GetDynamicPath()); | |
58 | // gSystem->SetDynamicPath(dynpath); | |
59 | TString dynpath; | |
60 | dynpath = ".:"; | |
61 | dynpath += gSystem->GetDynamicPath(); | |
62 | gSystem->SetDynamicPath(dynpath.Data()); | |
63 | } | |
64 | ||
65 | if (usePWG2ParFiles) { | |
66 | setupPar("PWG2AOD"); | |
67 | if (gSystem->Load("./PWG2AOD/libPWG2AOD.so")<0) { | |
68 | cout << "Cannot load local libPWG2AOD.so . Exiting" << endl; | |
69 | exit(0); | |
70 | } | |
71 | } | |
72 | else { | |
73 | if (gSystem->Load("libPWG2AOD.so")<0) { | |
74 | cout << "Cannot load libPWG2AOD.so . Exiting" << endl; | |
75 | exit(0); | |
76 | } | |
77 | } | |
78 | ||
79 | //____________________________________________________// | |
80 | //_____________Setting up PWG2femtoscopy.par__________// | |
81 | //____________________________________________________// | |
82 | if (usePWG2ParFiles) { | |
83 | setupPar("PWG2femtoscopy"); | |
84 | if (gSystem->Load("./PWG2femtoscopy/libPWG2femtoscopy.so")<0) { | |
85 | cout << "Cannot load local libPWG2femtoscopy.so . Exiting" << endl; | |
86 | exit(0); | |
87 | } | |
88 | } | |
89 | else { | |
90 | if (gSystem->Load("libPWG2femtoscopy.so")<0) { | |
91 | cout << "Cannot load libPWG2femtoscopy.so . Exiting" << endl; | |
92 | exit(0); | |
93 | } | |
94 | } | |
95 | ||
96 | //____________________________________________________// | |
97 | //_____________Setting up PWG2femtoscopyUser.par______// | |
98 | //____________________________________________________// | |
99 | if (usePWG2ParFiles) { | |
100 | setupPar("PWG2femtoscopyUser"); | |
101 | if (gSystem->Load("./PWG2femtoscopyUser/libPWG2femtoscopyUser.so")<0) { | |
102 | cout << "Cannot load libPWG2femtoscopyUser.so . Exiting" << endl; | |
103 | exit(0); | |
104 | } | |
105 | } | |
106 | else { | |
107 | if (gSystem->Load("libPWG2femtoscopyUser.so")<0) { | |
108 | cout << "Cannot load libPWG2femtoscopyUser.so . Exiting" << endl; | |
109 | exit(0); | |
110 | } | |
111 | } | |
112 | ||
113 | //ANALYSIS PART | |
114 | const char *collectionfile="wn.xml"; | |
115 | ||
116 | //____________________________________________// | |
117 | //Usage of event tags | |
118 | // AliTagAnalysis *analysis = new AliTagAnalysis(); | |
119 | // TChain *chain = 0x0; | |
120 | // chain = analysis->CreateChainFromCollection(collectionfile,"esdTree"); | |
121 | ||
122 | TChain *chain = new TChain("aodTree");; | |
123 | // gROOT->LoadMacro("CreateESDChain.C"); | |
124 | // const char *collectionfile="/home/akisiel/LHC10h.esds.txt"; | |
125 | ||
126 | ifstream *istr = new ifstream(collectionfile); | |
127 | ||
128 | char fname[2000]; | |
129 | char pname[2000]; | |
130 | while (!istr->eof()) { | |
131 | fname[0] = '\0'; | |
132 | (*istr) >> fname; | |
133 | if (strlen(fname) > 10) { | |
134 | sprintf(pname, "alien://%s", fname); | |
135 | chain->Add(pname); | |
136 | ||
137 | } | |
138 | } | |
139 | ||
140 | // chain->Add("data/AliAOD.root"); | |
141 | ||
142 | // chain->Add("Data121040/AliESDs.root"); | |
143 | ||
144 | // chain->Add("alien:///alice/sim/LHC10g1a/130844/001/AliESDs.root"); | |
145 | // chain->Add("alien:///alice/sim/LHC10g1a/130844/002/AliESDs.root"); | |
146 | // chain->Add("alien:///alice/sim/LHC10g1a/130844/003/AliESDs.root"); | |
147 | // chain->Add("alien:///alice/sim/LHC10g1a/130844/004/AliESDs.root"); | |
148 | // chain->Add("alien:///alice/sim/LHC10g1a/130844/005/AliESDs.root"); | |
149 | // chain->Add("alien:///alice/sim/LHC10g1a/130844/006/AliESDs.root"); | |
150 | // chain->Add("alien:///alice/sim/LHC10g1a/130844/007/AliESDs.root"); | |
151 | // chain->Add("alien:///alice/sim/LHC10g1a/130844/008/AliESDs.root"); | |
152 | // chain->Add("alien:///alice/sim/LHC10g1a/130844/009/AliESDs.root"); | |
153 | // chain->Add("alien:///alice/sim/LHC10g1a/130844/010/AliESDs.root"); | |
154 | // chain->Add("alien:///alice/sim/LHC10g1a/130844/011/AliESDs.root"); | |
155 | // chain->Add("alien:///alice/sim/LHC10g1a/130844/012/AliESDs.root"); | |
156 | // chain->Add("alien:///alice/sim/LHC10g1a/130844/013/AliESDs.root"); | |
157 | // chain->Add("alien:///alice/sim/LHC10g1a/130844/014/AliESDs.root"); | |
158 | // chain->Add("alien:///alice/sim/LHC10g1a/130844/015/AliESDs.root"); | |
159 | // chain->Add("alien:///alice/sim/LHC10g1a/130844/016/AliESDs.root"); | |
160 | // chain->Add("alien:///alice/sim/LHC10g1a/130844/017/AliESDs.root"); | |
161 | // chain->Add("alien:///alice/sim/LHC10g1a/130844/018/AliESDs.root"); | |
162 | // chain->Add("alien:///alice/sim/LHC10g1a/130844/019/AliESDs.root"); | |
163 | // chain->Add("alien:///alice/sim/LHC10g1a/130844/020/AliESDs.root"); | |
164 | // chain->Add("ESDs/AliESDs.101.root"); | |
165 | ||
166 | //____________________________________________// | |
167 | // Make the analysis manager | |
168 | AliAnalysisManager *mgr = new AliAnalysisManager("TestManager"); | |
169 | // AliESDInputHandler* esdH = new AliESDInputHandler; | |
170 | // esdH->SetInactiveBranches("FMD CaloCluster"); | |
171 | // esdH->SetReadFriends(kFALSE); | |
172 | AliAODInputHandler *aodH = new AliAODInputHandler; | |
173 | // mgr->SetInputEventHandler(esdH); | |
174 | mgr->SetInputEventHandler(aodH); | |
175 | ||
176 | // AliMCEventHandler *mcH = new AliMCEventHandler; | |
177 | // mgr->SetMCtruthEventHandler(mcH); | |
178 | ||
179 | // gROOT->LoadMacro("AddTaskPhysicsSelection.C"); | |
180 | // AliPhysicsSelectionTask* physSelTask = AddTaskPhysicsSelection(0, 0); | |
181 | //physSelTask->GetPhysicsSelection()->SetUseBXNumbers(kFALSE); | |
182 | ||
183 | // AOD output handler | |
184 | // AliAODHandler* aodHandler = new AliAODHandler(); | |
185 | // aodHandler->SetOutputFileName("AliAOD.root"); | |
186 | // //aodHandler->SetFillAOD(kFALSE); | |
187 | // aodHandler->SetFillAODforRun(kFALSE); | |
188 | // mgr->SetOutputEventHandler(aodHandler); | |
189 | ||
190 | // AliCentralitySelectionTask *centralityTask = new AliCentralitySelectionTask("CentralitySelection"); | |
191 | // centralityTask->SetPass(2); | |
192 | // mgr->AddTask(centralityTask); | |
193 | // mgr->ConnectInput(centralityTask, 0, mgr->GetCommonInputContainer()); | |
194 | ||
195 | // AliAnalysisDataContainer *outputCentrality = mgr->CreateContainer("outputCentrality", TList::Class(), | |
196 | // AliAnalysisManager::kOutputContainer, "CentralityOutput.root"); | |
197 | // mgr->ConnectOutput(centralityTask, 1, outputCentrality); | |
198 | ||
199 | // ESD filter task configuration. | |
200 | // gROOT->LoadMacro("AddTaskESDFilter.C"); | |
201 | // TODO usually requires muon filter libs | |
202 | // AliAnalysisTaskESDfilter *taskesdfilter = AddTaskESDFilter(kFALSE, kFALSE, kFALSE, kTRUE, kTRUE); | |
203 | ||
204 | //AddTaskPIDResponse | |
205 | gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPIDResponse.C"); | |
206 | AliAnalysisTaskSE *pidresponse = AddTaskPIDResponse(); | |
207 | ||
208 | //____________________________________________// | |
209 | // 1st Pt task | |
210 | gROOT->LoadMacro("AddTaskFemto.C"); | |
211 | AliAnalysisTaskFemto *taskfemto = AddTaskFemto("./ConfigFemtoAnalysis.C"); | |
212 | ||
213 | //____________________________________________// | |
214 | // Run the analysis | |
215 | if (!mgr->InitAnalysis()) return; | |
216 | mgr->PrintStatus(); | |
217 | mgr->StartAnalysis("local",chain); | |
218 | ||
219 | timer.Stop(); | |
220 | timer.Print(); | |
221 | } | |
222 | ||
223 | Int_t setupPar(const char* pararchivename) { | |
224 | /////////////////// | |
225 | // Setup PAR File// | |
226 | /////////////////// | |
227 | if (pararchivename) { | |
228 | char processline[1024]; | |
229 | sprintf(processline,".! tar xvzf %s.par",pararchivename); | |
230 | gROOT->ProcessLine(processline); | |
231 | const char* ocwd = gSystem->WorkingDirectory(); | |
232 | gSystem->ChangeDirectory(pararchivename); | |
233 | ||
234 | // check for BUILD.sh and execute | |
235 | if (!gSystem->AccessPathName("PROOF-INF/BUILD.sh")) { | |
236 | printf("*******************************\n"); | |
237 | printf("*** Building PAR archive ***\n"); | |
238 | printf("*******************************\n"); | |
239 | ||
240 | if (gSystem->Exec("PROOF-INF/BUILD.sh")) { | |
241 | Error("runProcess","Cannot Build the PAR Archive! - Abort!"); | |
242 | return -1; | |
243 | } | |
244 | } | |
245 | // check for SETUP.C and execute | |
246 | if (!gSystem->AccessPathName("PROOF-INF/SETUP.C")) { | |
247 | printf("*******************************\n"); | |
248 | printf("*** Setup PAR archive ***\n"); | |
249 | printf("*******************************\n"); | |
250 | gROOT->Macro("PROOF-INF/SETUP.C"); | |
251 | } | |
252 | ||
253 | gSystem->ChangeDirectory("../"); | |
254 | } | |
255 | ||
256 | return 1; | |
257 | } |