The following script Test.C shows a problem in TTree::MakeCode, which is correctly treated in TTree::MakeClass. { gROOT->Reset(); TFile f("TestFile.root","recreate"); TTree * ntuple= new TTree("Test","test MakeCode"); Int_t NN[] = {1,2}; cout << ">>> Input values NN[0]="<<NN[0]<<" NN[1]="<<NN[1]<<endl; ntuple->Branch("TwoInt",NN,"n1/I:n2/I"); ntuple->Fill(); ntuple->Write(); ntuple->MakeCode("TestCode.C"); ntuple->MakeClass("TestClass"); gROOT->ProcessLine(".x TestCode.C"); Test->Show(0); Test->GetEntry(0); cout << ">>> MakeCode test n1="<<TwoInt_n1<<" n2="<<TwoInt_n2<<endl; gROOT->ProcessLine(".L TestClass.C"); TestClass t; t.Show(0); t.GetEntry(0); cout << ">>> MakeClass test n1="<<t.TwoInt_n1<<" n2="<<t.TwoInt_n2<<endl; } The ouput is root [0] .x Test.C >>> Input values NN[0]=1 NN[1]=2 Macro: TestCode.C generated from Tree: Test Files: TestClass.h and TestClass.C generated from Tree: Test ======> EVENT:0 n1 = 1 n2 = 2 >>> MakeCode test n1=0 n2=1 ======> EVENT:0 n1 = 1 n2 = 2 >>> MakeClass test n1=1 n2=2 The TestCode.C behaviour is explained by two lines in the generated code: Test->SetBranchAddress("TwoInt",&TwoInt_n1); Test->SetBranchAddress("TwoInt",&TwoInt_n2); Is MakeCode considered as obsolete and should not be used? Jiri P.S. May ROOT version is 3.01/06 on OSF1 system.
This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:51:03 MET