]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TPC/macros/CalibrateTPC.C
Disentangled usage of HLT and offline one pad clusters
[u/mrichter/AliRoot.git] / TPC / macros / CalibrateTPC.C
CommitLineData
1037b1ac 1/*
2 Simple calibration analysis
967eae0d 3 //
4 //0. Setup memory chcecker if you want
5 //
3d64ddde 6 TMemStat *memstat = new TMemStat("new,gnubuildin");
967eae0d 7 AliSysInfo::AddCallBack(TMemStatManager::GetInstance()->fStampCallBack);
32743ed6 8 AliSysInfo::AddStamp("Start");
9
10 gSystem->Load("$ROOTSYS/lib/libXrdClient.so");
11 gSystem->Load("libNetx.so");
12
13 gSystem->Setenv("alien_CLOSE_SE","ALICE::GSI::SE")
14 TGrid * alien = TGrid::Connect("alien://",0,0,"t");
15 gSystem->Setenv("alien_CLOSE_SE","ALICE::GSI::SE")
16
1037b1ac 17 //1. Load needed libraries
18 gSystem->Load("libANALYSIS");
19 gSystem->Load("libTPCcalib");
20 //
21 // Setup analysis manager
22 //
26878333 23 TString path=gSystem->pwd();
bb1804e9 24 gROOT->Macro(Form("%s/ConfigOCDB.C\(%d\)",path->Data(),0));
26878333 25
26 .L CalibrateTPC.C
27 AliAnalysisManager * mgr = ( AliAnalysisManager *)SetupCalibTask("/V6/");
3d64ddde 28
1037b1ac 29 //
30 // Process data - chain
32743ed6 31 //
32 //gEnv->SetValue("TFile.Recover", 0); // dont try to recover anything
1037b1ac 33 gSystem->AddIncludePath("-I$ALICE_ROOT/TPC/macros");
ae28e92e 34 gROOT->LoadMacro("$ALICE_ROOT/TPC/macros/AliXRDPROOFtoolkit.cxx+")
6fa23923 35 AliXRDPROOFtoolkit tool;
bb1804e9 36 TChain * chain = tool.MakeChain("esd.txt","esdTree",0,200000);
26878333 37 //chain->Lookup();
cbc19295 38 // memory
3d64ddde 39 mgr->SetNSysInfo(1000);
cbc19295 40 //
3d64ddde 41 mgr->SetDebugLevel(10);
f491be13 42 mgr->StartAnalysis("proof",chain);
26878333 43 //mgr->StartAnalysis("local",chain);//
967eae0d 44 // delete manager
45 //
46 delete mgr;
47 AliSysInfo::AddStamp("End");
48 //
49 // analyze memstat report
50 //
51 delete memstat;
3d64ddde 52 TMemStat mem;
53 mem.MakeReport(0,0,"order 0 sortstat 3 sortstamp 0 sortdeep 10 stackdeep 15 maxlength 50")
1037b1ac 54*/
55
3d5dfcdb 56
57void SetupCalibTaskTrain1(TObject * task1);
58void SetupCalibTaskTrain2(TObject * task2);
59
26878333 60char * prefix = "/V6/";
bb1804e9 61// Global parameters to set
62TTimeStamp startTime(2009,8,7,0,0,0);
32743ed6 63TTimeStamp stopTime(2009,12,31,0,0,0);
bb1804e9 64Int_t debugLevel = 2;
65Int_t streamLevel = 20;
66
67//
26878333 68
69TObject * SetupCalibTask(char * tprefix ="/V12/") {
1037b1ac 70 //
71 //
72 //
26878333 73 prefix=tprefix;
1037b1ac 74 TStopwatch stopwatch;
75 stopwatch.Start();
1037b1ac 76 AliAnalysisManager *mgr=new AliAnalysisManager("TestManager");
1037b1ac 77 AliESDInputHandler* esdH=new AliESDInputHandler;
78 esdH->SetActiveBranches("ESDfriend");
79 mgr->SetInputEventHandler(esdH);
3d5dfcdb 80
81 //
82 // Train 1 - to be run always on full statistic (
ae28e92e 83 //
3d5dfcdb 84 AliTPCAnalysisTaskcalib *task1=new AliTPCAnalysisTaskcalib("CalibObjectsTrain1");
85 //
86 SetupCalibTaskTrain1(task1);
ae28e92e 87 //
26878333 88 mgr->AddTask(task1);
89 AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer();
1037b1ac 90
26878333 91 if (!cinput1) cinput1 = mgr->CreateContainer("cchain",TChain::Class(),
92 AliAnalysisManager::kInputContainer);
1037b1ac 93
3d5dfcdb 94 AliAnalysisDataContainer *coutput1 =mgr->CreateContainer("TPCCalib",TObjArray::Class(), AliAnalysisManager::kOutputContainer, "CalibObjectsTrain1.root");
26878333 95 mgr->ConnectInput(task1,0,cinput1);
96 mgr->ConnectOutput(task1,0,coutput1);
3d5dfcdb 97 //
98 //
99 //
100 AliTPCAnalysisTaskcalib *task2=new AliTPCAnalysisTaskcalib("CalibObjectsTrain2");
101 //
102 SetupCalibTaskTrain2(task2);
103 //
104 mgr->AddTask(task2);
105 AliAnalysisDataContainer *cinput2 = mgr->GetCommonInputContainer();
106
107 if (!cinput2) cinput2 = mgr->CreateContainer("cchain",TChain::Class(),
108 AliAnalysisManager::kInputContainer);
109
110 AliAnalysisDataContainer *coutput2 =mgr->CreateContainer("TPCCalib2",TObjArray::Class(), AliAnalysisManager::kOutputContainer, "CalibObjectsTrain2.root");
111 mgr->ConnectInput(task2,0,cinput2);
112 mgr->ConnectOutput(task2,0,coutput2);
113
114
115
26878333 116 //
117 if (!mgr->InitAnalysis()) return 0;
118 mgr->PrintStatus();
119 stopwatch.Stop();
120 stopwatch.Print();
121 return mgr;
122}
123
bb1804e9 124void AddCalibCalib(TObject* task){
125 //
126 // Responsible: Marian Ivanov
127 // Description:
128 // calibCalib is a prefilter
129 // The current OCDB entries transformation are applied on cluster, tracks are refitted
130 //
131 AliTPCAnalysisTaskcalib* myTask = (AliTPCAnalysisTaskcalib*) task;
132 AliTPCcalibCalib *calibCalib = new AliTPCcalibCalib("calibTPC","calibTPC");
133 calibCalib->SetDebugLevel(debugLevel);
32743ed6 134 calibCalib->SetStreamLevel(0);
bb1804e9 135 calibCalib->SetTriggerMask(-1,-1,kFALSE); //accept everything
136 myTask->AddJob(calibCalib);
137
138}
139void AddCalibTimeGain(TObject* task){
140 //
141 // Responsible: Alexander Kalweit
142 // Description:
143 // Parameters to set
144 AliTPCAnalysisTaskcalib* myTask = (AliTPCAnalysisTaskcalib*) task;
145 AliTPCcalibTimeGain *calibTimeGain = new AliTPCcalibTimeGain("calibTimeGain","calibTimeGain", startTime.GetSec(), stopTime.GetSec(), 30*60);
146 //calibTimeGain->SetLowMemoryConsumption(kTRUE);
147 //calibTimeGain->SetMIP(25.);
8493058b 148 calibTimeGain->IsCosmic(kFALSE);
bb1804e9 149 calibTimeGain->SetUseCookAnalytical(kTRUE);
150 calibTimeGain->SetUseMax(kFALSE);
151 calibTimeGain->SetDebugLevel(debugLevel);
152 calibTimeGain->SetStreamLevel(streamLevel);
32743ed6 153 calibTimeGain->SetTriggerMask(-1,-1,kTRUE); //reject laser
bb1804e9 154 myTask->AddJob(calibTimeGain);
155}
156
157void AddCalibTime(TObject* task){
158 //
159 // Responsible: Dag Larsen
160 // Description:
161 //
162 //
163 AliTPCAnalysisTaskcalib* myTask = (AliTPCAnalysisTaskcalib*) task;
164 AliTPCcalibTime *calibTime = new AliTPCcalibTime("calibTime","calibTime", startTime.GetSec(), stopTime.GetSec(), 20*60);
165 calibTime->SetDebugLevel(debugLevel);
166 calibTime->SetStreamLevel(streamLevel);
167 calibTime->SetTriggerMask(-1,-1,kFALSE); //accept everything
168 myTask->AddJob(calibTime);
169}
170
171void AddCalibTrigger(TObject* task){
172 //
173 // Responsible: Marian Ivanov
174 // Description:
175 // Export trees with summary information for the trigger efficieciency and purity study
176 AliTPCAnalysisTaskcalib* myTask = (AliTPCAnalysisTaskcalib*) task;
177 AliTPCcalibTrigger *calibTrigger = new AliTPCcalibTrigger();
178 calibTrigger->SetStreamLevel(20);
179 calibTrigger->SetTriggerMask(-1,-1,kFALSE); //accept everything
180 myTask->AddJob(calibTrigger);
181}
182
183void AddCalibCosmic(TObject* task){
184 //
185 // Responsible: Marian Ivanov
186 // Description:
187 // Histogram residuals and pulls of the track parameters in bins of track parameters
188 //
189 AliTPCAnalysisTaskcalib* myTask = (AliTPCAnalysisTaskcalib*) task;
190 AliTPCcalibCosmic *calibCosmic = new AliTPCcalibCosmic("cosmicTPC","cosmicTPC");
191 calibCosmic->SetDebugLevel(debugLevel);
192 calibCosmic->SetStreamLevel(streamLevel);
193 calibCosmic->SetTriggerMask(-1,-1,kTRUE); //accept everything
194 myTask->AddJob(calibCosmic);
195}
196
32743ed6 197void AddCalibLaser(TObject* task){
198 //
199 // Responsible: Marian Ivanov
200 // Description:
201 //
202 AliTPCAnalysisTaskcalib* myTask = (AliTPCAnalysisTaskcalib*) task;
203 AliTPCcalibLaser *calibLaser = new AliTPCcalibLaser("laserTPC","laserTPC");
204 calibLaser->SetDebugLevel(debugLevel);
205 calibLaser->SetStreamLevel(streamLevel);
206 calibLaser->SetTriggerMask(-1,-1,kFALSE); //accept everything
207 myTask->AddJob(calibLaser);
208}
209
210
211void AddCalibAlign(TObject* task){
212 //
213 // Responsible: Marian Ivanov
214 // Description:
215 //
216 AliTPCAnalysisTaskcalib* myTask = (AliTPCAnalysisTaskcalib*) task;
217 AliTPCcalibAlign *calibAlign = new AliTPCcalibAlign("alignTPC","Alignment of the TPC sectors");
218 calibAlign->SetDebugLevel(debugLevel);
219 calibAlign->SetStreamLevel(streamLevel);
220 calibAlign->SetTriggerMask(-1,-1,kTRUE); //accept everything
221 myTask->AddJob(calibAlign);
222}
223
224
225
226
227
228
bb1804e9 229void AddCalibPID(TObject* task){
230 //
231 // Responsible: Marian Ivanov, Alexander Kalweit
232 // Description:
233 //
234 AliTPCAnalysisTaskcalib* myTask = (AliTPCAnalysisTaskcalib*) task;
235 AliTPCcalibPID *calibPID06 = new AliTPCcalibPID("calibPID06","calibPID06");
236 AliTPCcalibPID *calibPID08 = new AliTPCcalibPID("calibPID08","calibPID08");
237 AliTPCcalibPID *calibPID10 = new AliTPCcalibPID("calibPID10","calibPID10");
32743ed6 238 calibPID06->SetTriggerMask(-1,-1,kTRUE); //reject laser
239 calibPID08->SetTriggerMask(-1,-1,kTRUE); //reject laser
240 calibPID10->SetTriggerMask(-1,-1,kTRUE); //reject laser
bb1804e9 241 calibPID06->SetUpperTrunc(0.6);
242 calibPID08->SetUpperTrunc(0.8);
243 calibPID10->SetUpperTrunc(0.99);
244 //
245 calibPID06->SetUsePosNorm(2);
246 calibPID08->SetUsePosNorm(2);
247 calibPID10->SetUsePosNorm(2);
248 //
249 calibPID06->SetUseShapeNorm(kFALSE);
250 calibPID08->SetUseShapeNorm(kFALSE);
251 calibPID10->SetUseShapeNorm(kFALSE);
252 //
253 calibPID06->SetPadNorm(0);
254 calibPID08->SetPadNorm(0);
255 calibPID10->SetPadNorm(0);
32743ed6 256 calibPID06->SetMIPvalue(50);
257 calibPID08->SetMIPvalue(50);
258 calibPID08->SetMIPvalue(50);
bb1804e9 259 //
260 //
261 //
262 calibPID06->SetDebugLevel(debugLevel);
263 calibPID06->SetStreamLevel(streamLevel);
264 calibPID06->SetTriggerMask(-1,-1,kTRUE); //accept everything
265 calibPID08->SetDebugLevel(debugLevel);
266 calibPID08->SetStreamLevel(streamLevel);
267 calibPID08->SetTriggerMask(-1,-1,kTRUE); //accept everything
268 calibPID10->SetDebugLevel(debugLevel);
269 calibPID10->SetStreamLevel(streamLevel);
270 calibPID10->SetTriggerMask(-1,-1,kTRUE); //accept everything
271 myTask->AddJob(calibPID06);
272 myTask->AddJob(calibPID08);
273 myTask->AddJob(calibPID10);
274}
275
26878333 276
32743ed6 277
278
bb1804e9 279//
280//
26878333 281
3d5dfcdb 282void SetupCalibTaskTrain1(TObject* task){
bb1804e9 283 //
284 //
285 //
286 AliTPCClusterParam * clusterParam = AliTPCcalibDB::Instance()->GetClusterParam();
287 AliTPCAnalysisTaskcalib* myTask = (AliTPCAnalysisTaskcalib*) task;
288 AddCalibCalib(task);
289 AddCalibTimeGain(task);
290 AddCalibTime(task);
291 AddCalibCosmic(task);
32743ed6 292 //AddCalibTrigger(task);
bb1804e9 293 //
294 TString path=gSystem->pwd();
295 path+=prefix;
296 gSystem->mkdir(path);
297 myTask->SetDebugOuputhPath(path.Data());
298
299}
300
3d5dfcdb 301void SetupCalibTaskTrain2(TObject* task){
302 //
303 //
304 //
305 AliTPCClusterParam * clusterParam = AliTPCcalibDB::Instance()->GetClusterParam();
306 AliTPCAnalysisTaskcalib* myTask = (AliTPCAnalysisTaskcalib*) task;
307 // AddCalibCalib(task);
32743ed6 308 //AddCalibAlign(task);
309 AddCalibLaser(task);
3d5dfcdb 310 // AddCalibTracks()
311 AddCalibPID(task);
312 //
313 TString path=gSystem->pwd();
314 path+=prefix;
315 gSystem->mkdir(path);
316 myTask->SetDebugOuputhPath(path.Data());
317}
318
bb1804e9 319
320
321
322
323//
324// backup of old setups - to be removed soon
325//
326
327
328
329
330void SetupCalibTask(TObject* task1){
26878333 331 //
332 // Configure calibration task
333 //
bb1804e9 334 AliTPCAnalysisTaskcalib* myTask = (AliTPCAnalysisTaskcalib*)task1;
26878333 335 AliTPCClusterParam * clusterParam = AliTPCcalibDB::Instance()->GetClusterParam();
bb1804e9 336 AliTPCcalibTracksCuts *cuts = new AliTPCcalibTracksCuts(30, 0.4, 5, 0.13, 0.018);
967eae0d 337 //
ae28e92e 338 AliTPCcalibTracks *calibTracks = new AliTPCcalibTracks("calibTracks", "Resolution calibration object for tracks", clusterParam, cuts);
78abca19 339
340
967eae0d 341 AliTPCcalibTracksGain *calibTracksGain = new AliTPCcalibTracksGain("calibTracksGain","Gain calibration using tracks",cuts);
342 AliTPCcalibAlign *calibAlign = new AliTPCcalibAlign("alignTPC","Alignment of the TPC sectors");
3d64ddde 343 AliTPCcalibAlign *calibAlignAll = new AliTPCcalibAlign("alignTPCAll","Alignment of the TPC sectors- All");
752287d5 344 AliTPCcalibLaser *calibLaser = new AliTPCcalibLaser("laserTPC","laserTPC");
345 AliTPCcalibCosmic *calibCosmic = new AliTPCcalibCosmic("cosmicTPC","cosmicTPC");
bb1804e9 346 AliTPCcalibTrigger *calibTrigger = new AliTPCcalibTrigger();
78abca19 347 AliTPCcalibCalib *calibCalib = new AliTPCcalibCalib("calibTPC","calibTPC");
bb1804e9 348 AliTPCcalibTime *calibTime = new AliTPCcalibTime("calibTime","calibTime", startTime.GetSec(), stopTime.GetSec(), 20*60);
3d64ddde 349
350 AliTPCcalibUnlinearity *calibUnlinearity = new AliTPCcalibUnlinearity("calibUnlinearity","calibUnlinearity");
351 AliTPCcalibUnlinearity *calibUnlinearityAll = new AliTPCcalibUnlinearity("calibUnlinearityAll","calibUnlinearityAll");
26878333 352 //
353 //
bb1804e9 354 AliTPCcalibPID *calibPID06 = new AliTPCcalibPID("calibPID06","calibPID06");
355 AliTPCcalibPID *calibPID08 = new AliTPCcalibPID("calibPID08","calibPID08");
356 AliTPCcalibPID *calibPID10 = new AliTPCcalibPID("calibPID10","calibPID10");
357 calibPID06->SetUpperTrunc(0.6);
358 calibPID08->SetUpperTrunc(0.8);
359 calibPID10->SetUpperTrunc(0.99);
26878333 360 //
bb1804e9 361 calibPID06->SetUsePosNorm(2);
362 calibPID08->SetUsePosNorm(2);
363 calibPID10->SetUsePosNorm(2);
26878333 364 //
bb1804e9 365 calibPID06->SetUseShapeNorm(kFALSE);
366 calibPID08->SetUseShapeNorm(kFALSE);
367 calibPID10->SetUseShapeNorm(kFALSE);
26878333 368 //
bb1804e9 369 calibPID06->SetPadNorm(0);
370 calibPID08->SetPadNorm(0);
371 calibPID10->SetPadNorm(0);
372 calibPID06->SetMIPvalue(50*3);
373 calibPID08->SetMIPvalue(50*3);
374 calibPID08->SetMIPvalue(50*3);
26878333 375 //
26878333 376 //
f491be13 377 //
bb1804e9 378 calibPID06->SetStreamLevel(2);
379 calibPID06->SetDebugLevel(2);
380 calibPID08->SetStreamLevel(2);
381 calibPID08->SetDebugLevel(2);
382 calibPID10->SetStreamLevel(2);
383 calibPID10->SetDebugLevel(2);
384
3d64ddde 385 calibTracks->SetDebugLevel(2);
f491be13 386 calibTracks->SetStreamLevel(20);
387 calibTracksGain->SetDebugLevel(2);
388 calibTracksGain->SetStreamLevel(20);
967eae0d 389 calibAlign->SetDebugLevel(20);
f491be13 390 calibAlign->SetStreamLevel(10);
3d64ddde 391 calibAlignAll->SetDebugLevel(20);
392 calibAlignAll->SetStreamLevel(10);
26878333 393 calibLaser->SetDebugLevel(20);
394 calibLaser->SetStreamLevel(20);
752287d5 395 calibCosmic->SetDebugLevel(20);
26878333 396 calibCosmic->SetStreamLevel(20);
397 calibCalib->SetDebugLevel(20);
398 calibCalib->SetStreamLevel(20);
bb1804e9 399 //calibTime->SetDebugLevel(20);
400 calibTrigger->SetStreamLevel(20);
3d64ddde 401 //
402 calibUnlinearity->SetDebugLevel(20);
403 calibUnlinearity->SetStreamLevel(10);
404 calibUnlinearityAll->SetDebugLevel(20);
405 calibUnlinearityAll->SetStreamLevel(10);
406
26878333 407 // calibCalib->SetTriggerMask(-1,-1,kFALSE); //accept everything
bb1804e9 408 calibTrigger->SetTriggerMask(-1,-1,kFALSE); //accept everything
26878333 409 calibCalib->SetTriggerMask(-1,-1,kTRUE); //accept everything - except laser
3d64ddde 410 calibTracks->SetTriggerMask(-1,16,kTRUE); //reject laser trigger, accept everything else
411 calibTracksGain->SetTriggerMask(-1,16,kTRUE); //reject laser trigger, accept everything else
412 calibAlign->SetTriggerMask(-1,-1,kTRUE); //accept everything
413 calibAlignAll->SetTriggerMask(-1,-1,kFALSE); //accept everything
414 calibLaser->SetTriggerMask(-1,-1,kFALSE); //accept only laser trigger
415 calibCosmic->SetTriggerMask(-1,-1,kTRUE); //reject laser trigger, accept everything else
bb1804e9 416 //calibTime->SetTriggerMask(-1,-1,kFALSE); //accept everything
3d64ddde 417 calibUnlinearity->SetTriggerMask(-1,-1,kTRUE); //reject laser
418 calibUnlinearityAll->SetTriggerMask(-1,-1,kFALSE); //non reject laser
419
752287d5 420
967eae0d 421 //
ae28e92e 422 // ---*---*-----*-*-----*----------*---
1037b1ac 423 // ADD CALIB JOBS HERE!!!!!!!!!!!!!!!!
bb1804e9 424 //myTask->AddJob(calibCalib);
425 //myTask->AddJob(calibAlign);
426 //myTask->AddJob(calibAlignAll);
427 //myTask->AddJob(calibLaser);
428 //myTask->AddJob(calibCosmic);
429 myTask->AddJob(calibTrigger);
430 //myTask->AddJob(calibTime);
431 //myTask->AddJob(calibPID06);
432 //myTask->AddJob(calibPID08);
433 //myTask->AddJob(calibPID10);
434 // myTask->AddJob(calibTracksGain);
435 //myTask->AddJob(calibTracks);
436 //myTask->AddJob(calibUnlinearity);
437 //myTask->AddJob(calibUnlinearityAll);
438 // myTask->AddJob(new AliTPCcalibV0);
1037b1ac 439 // -*----*----*---*-*------*-------**--
440 // -------*--*---------*-----*-------*-
78abca19 441 TString path=gSystem->pwd();
442 path+=prefix;
443 gSystem->mkdir(path);
bb1804e9 444 myTask->SetDebugOuputhPath(path.Data());
445
78abca19 446
bb1804e9 447 //
448 // backup important parameters
449 //
450 AliTPCClusterParam * paramCl = AliTPCcalibDB::Instance()->GetClusterParam();
451 TFile f("ClusterParam.root","recreate");
452 paramCl->Write();
453 f.Close();
1037b1ac 454}
78abca19 455
456
3d64ddde 457
458
bb1804e9 459void CalibrateTPC(Int_t first, Int_t last, Int_t run, const char*closeSE="ALICE::GSI::SE"){
32743ed6 460 gSystem->Load("$ROOTSYS/lib/libXrdClient.so");
461 gSystem->Load("libNetx.so");
3d64ddde 462 gSystem->Load("libANALYSIS");
463 gSystem->Load("libTPCcalib");
32743ed6 464 //gEnv->SetValue("TFile.Recover", 0); // dont try to recover anything
bb1804e9 465 gSystem->Setenv("alien_CLOSE_SE",closeSE);
3d5dfcdb 466 TGrid * alien = TGrid::Connect("alien://",0,0,"t");
32743ed6 467 gSystem->Setenv("alien_CLOSE_SE",closeSE);
468
ac6d8ff3 469 gSystem->Exec("touch nonOK");
3d5dfcdb 470 gSystem->Exec("rm -f isOK");
bb1804e9 471 gROOT->Macro(Form("ConfigOCDB.C\(%d\)",run));
3d64ddde 472 //
473 // Setup analysis manager
474 //
475 //.L $ALICE_ROOT/TPC/macros/CalibrateTPC.C
476 AliAnalysisManager * mgr = (AliAnalysisManager*)SetupCalibTask("/V3/");
477 //
478 // Process data - chain
479 //
480 gSystem->AddIncludePath("-I$ALICE_ROOT/TPC/macros");
481 gROOT->LoadMacro("$ALICE_ROOT/TPC/macros/AliXRDPROOFtoolkit.cxx+");
482 AliXRDPROOFtoolkit tool;
32743ed6 483 TChain * chain = tool.MakeChain("esd.txt","esdTree",0,last-first,first);
3d64ddde 484 chain->Lookup();
485 // memory
32743ed6 486 mgr->SetNSysInfo(100);
3d64ddde 487 //
32743ed6 488 mgr->SetDebugLevel(0);
3d64ddde 489 mgr->StartAnalysis("local",chain);
3d5dfcdb 490 gSystem->Exec("touch isOK");
ac6d8ff3 491 gSystem->Exec("rm -f nonOK");
32743ed6 492 printf("Kill ourself\n");
493 printf("Kill ourself\n");
494 printf("Kill ourself\n");
495 printf("Kill ourself\n");
496 gSystem->Exec(Form("kill -9 %d",gSystem->GetPid()));
78abca19 497}