Hi,
I have a problem for looping on all keys of a root file.
However the TFile::GetListOfKeys()->Print() gives me right ouptut.
I can’t find my error, can anybody help me ?
Thank you in advance,
Arnaud.
void sigma_mean(const char *path)
{
TFile *f = new TFile((const char *) path, "READ");
f->GetListOfKeys()->Print();
TIter next(f->GetListOfKeys());
TKey *key;
while((key=(TKey*)next())) {
printf(".");
}
f->Close();
}
[quote=“output”]lxpub2> bin/analyse /msa3/adeprell/200512121331.root sigma_mean
TKey Name = r1, Title = Config nr: 1, Cycle = 1
TKey Name = r2, Title = Config nr: 2, Cycle = 1
TKey Name = r3, Title = Config nr: 3, Cycle = 1
TKey Name = r4, Title = Config nr: 4, Cycle = 1
TKey Name = r5, Title = Config nr: 5, Cycle = 1
TKey Name = r6, Title = Config nr: 6, Cycle = 1
TKey Name = r7, Title = Config nr: 7, Cycle = 1
TKey Name = r8, Title = Config nr: 8, Cycle = 1
TKey Name = r9, Title = Config nr: 9, Cycle = 1
TKey Name = r10, Title = Config nr: 10, Cycle = 1
TKey Name = r11, Title = Config nr: 11, Cycle = 1
TKey Name = r12, Title = Config nr: 12, Cycle = 1
TKey Name = r13, Title = Config nr: 13, Cycle = 1
TKey Name = r14, Title = Config nr: 14, Cycle = 1
TKey Name = r15, Title = Config nr: 15, Cycle = 1
TKey Name = r16, Title = Config nr: 16, Cycle = 1
=> the same ouptut up to r172[/quote]
So no “.” appears, this means the program never enters the loop
Moreover, when I want to call TKey::GetName() I receveive this:
[quote=“output”]src/standalone/sigma_mean.cc:17: invalid use of undefined type struct TKey' ../root/include/TDirectory.h:38: forward declaration of
struct TKey’[/quote]