Dear ROOT experts,
I have a partially corrupted ROOT file including TNTuple ojects, and
I would like to catch the problem.
In the following macro, f->Map() detects the problem and says
"ERROR". However, there seems no other member in TFile which returns
the error status. On the other hand, when I use TChain, it causes
segmentation fault. Is there any way how to catch this error?
I am using ROOT version 2.25.
Best regards,
Hiroyuki Sako
macro
{
char filename[400];
sprintf(filename,"/shift/na45pc11/data02/cerescdr/prodCal160Gev/sidc-160gev-1383-0064.root");
cout << "start TFile"<<endl;
TFile *f=new TFile(filename);
f->Map();
delete f;
cout << "create TChain"<<endl;
TChain testan1c("an1");
cout << "TChain::Add"<<endl;
testan1c.Add(filename);
}
output of the macro (partial)
start TFile
20010908/201001 At:64 N=128 TFile
20010908/201140 At:192 N=142 TBasket CX = 225.35
20010908/201140 At:334 N=4104 TBasket CX = 7.80
....
20010909/001550 At:17055085 N=29113 TBasket CX = 1.10
20010909/001550 At:17084198 N=7863 TBasket CX = 4.07
20010909/001550 At:17092061 N=2759 TBasket CX = 11.60
20010909/001550 At:17094820 N=350 TBasket CX = 91.42
20010909/001550 At:17095170 N=1813 TBasket CX = 17.65
20010909/001551 At:17096983 N=151 TBasket CX = 211.89
20010909/001551 At:17097134 N=7145 TBasket CX = 4.48
20010909/001551 At:17104279 N=28727 TBasket CX = 1.11
20010909/001551 At:17133006 N=27563 TBasket CX = 1.16
20010909/001551 At:17160569 N=2745 TBasket CX = 11.66
20010909/001551 At:17163314 N=2657 TBasket CX = 12.04
20010909/002007 At:17165971 N=151 TBasket CX = 211.89
20010909/002007 At:17166122 N=7649 TBasket CX = 4.18
20010909/002007 At:17173771 N=28716 TBasket CX = 1.11
Address = 17202487 Nbytes = 0 =====E R R O R=======
create TChain
TChain::Add
*** Break *** segmentation violation
Root>
This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:50:59 MET