]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG2/FEMTOSCOPY/macros/Train/ProtonFemtoscopy/runBatch.C
Lines getting the matched track moved to a method in AliCalorimeterUtils. Lines copie...
[u/mrichter/AliRoot.git] / PWG2 / FEMTOSCOPY / macros / Train / ProtonFemtoscopy / runBatch.C
CommitLineData
3aeed473 1void 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
223Int_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}