Hello rooters.
I am running a C++ program to take a simple root ntuple and convert it
to hbook format, but I am running into difficulties reading in the
ntuple. (Root version 3.00/06, compiled locally.)
Here's the relevant C++ code:
gROOT = ::new TROOT("gROOT","root2h");
TFile fin(argv[1],"READ");
if (!(fin.IsOpen()) ) {
printf("Error in root2h: could not open file %s\n",argv[1]);
exit(-1);
}
TKey *firstKey = (TKey *)fin.GetListOfKeys()->At(0);
if ( !firstKey ) printf("Error in root2h: could not find ntuple in
file %s\n"$
TNtuple *theNtuple = (TNtuple *)fin.Get(firstKey->GetName());
if ( !theNtuple ) {
printf("Error in root2h: could not find Ntuple in file
%s\n",argv[1]);
exit (-1);
}
When I run the program, I get the following error message:
marie:~/source/smear % root2h sumall_0201_smeared.root
sumall_0201_smeared.hbk
Error in <TKey::ReadObj>: Unknown class TNtuple
Error in root2h: could not find Ntuple in file
sumall_0201_smeared.root
Now here is a root transcript where I enter the commands via root
directly, and the ntuple is correctly read in:
root [0] TFile fin("sumall_0201_smeared.root","READ")
root [1] fin.IsOpen()
(const unsigned char)1
root [2] TKey *firstKey = (TKey *)fin.GetListOfKeys()->At(0)
root [3] firstKey->GetName()
(const char* 0x14097c38c)"ntuple"
root [4] TNtuple *theNtuple = (TNtuple
*)fin.Get(firstKey->GetName())
root [5] theNtuple
(class TNtuple*)0x140a05000
Any suggestions would be greatly appreciated.
Kareem
This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:50:40 MET