Problem with MakeClass("MyClass")

Hi

I have created a TTree *T in a program that compiles and executes outside of CINT.

The tree is created with splitlevel = 1. The TTree itself seems to work fine.

I can create the MyClass.C and MyClass.h

root [1] .L lib.so 
root [2] T->MakeClass("MyClass")
Info in <TTreePlayer>: Files: MyClass.h and MyClass.C generated from TTree: T
(Int_t)0

Then the following happens in the next step

root [3] .L MyClass.C
Warning: *b_PhysicalEventData_MedEvent  Syntax error?? MyClass.h:91:
Warning: *b_PhysicalEventData_CDfen  Syntax error?? MyClass.h:92:
Warning: *b_PhysicalEventData_CDben  Syntax error?? MyClass.h:93:
Warning: *b_PhysicalEventData_CDen  Syntax error?? MyClass.h:94:
Warning: *b_PhysicalEventData_CDsec  Syntax error?? MyClass.h:95:
Warning: *b_PhysicalEventData_CDann  Syntax error?? MyClass.h:96:
Warning: *b_PhysicalEventData_CDtdiff  Syntax error?? MyClass.h:97:
Warning: *b_PhysicalEventData_cen  Syntax error?? MyClass.h:98:
Warning: *b_PhysicalEventData_ct  Syntax error?? MyClass.h:99:
.
.
.

It looks to me like the lib.so wasnt properly loaded(?).

I try to move on, and

root [1] MyClass j
Warning in <TClass>: no dictionary for class PhysicalEvent is available
Warning in <TClass>: no dictionary for class Statistics is available
Warning in <TClass>: no dictionary for class RawData is available
root [2] j.Loop()

 *** Break *** segmentation violation
 Generating stack trace...

 0xb6ef3e81 in <unknown> from /usr/local/root/lib/libTree.so
 0xb763f516 in G__ExceptionWrapper + 0x42 from /usr/local/root/lib/libCint.so
 0xb76e5e5a in G__call_cppfunc + 0x2fa from /usr/local/root/lib/libCint.so
 0xb76d3ebb in G__interpret_func + 0x85d from /usr/local/root/lib/libCint.so
 0xb76bcdb8 in G__getfunction at v6_func.cxx:0 from /usr/local/root/lib/libCint.so
 0xb7752b43 in G__getstructmem + 0xab9 from /usr/local/root/lib/libCint.so
 0xb774a4a3 in G__getvariable at v6_var.cxx:0 from /usr/local/root/lib/libCint.so
 0xb76b261e in G__getitem at v6_expr.cxx:0 from /usr/local/root/lib/libCint.so
 0xb76b0c16 in G__getexpr at v6_expr.cxx:0 from /usr/local/root/lib/libCint.so
 0xb7699525 in G__define_var + 0x2571 from /usr/local/root/lib/libCint.so
 0xb7739739 in G__defined_type + 0x585 from /usr/local/root/lib/libCint.so
 0xb7705cfe in G__exec_statement at v6_parse.cxx:0 from /usr/local/root/lib/libCint.so
 0xb76d5a6a in G__interpret_func at v6_ifunc.cxx:0 from /usr/local/root/lib/libCint.so
 0xb76bcdb8 in G__getfunction at v6_func.cxx:0 from /usr/local/root/lib/libCint.so
 0xb7752b43 in G__getstructmem + 0xab9 from /usr/local/root/lib/libCint.so
 0xb774a4a3 in G__getvariable at v6_var.cxx:0 from /usr/local/root/lib/libCint.so
 0xb76b261e in G__getitem at v6_expr.cxx:0 from /usr/local/root/lib/libCint.so
 0xb76b0c16 in G__getexpr at v6_expr.cxx:0 from /usr/local/root/lib/libCint.so
 0xb76feda0 in G__exec_function + 0x1de from /usr/local/root/lib/libCint.so
 0xb7706ba7 in G__exec_statement at v6_parse.cxx:0 from /usr/local/root/lib/libCint.so
 0xb7693749 in G__exec_tempfile_core + 0x351 from /usr/local/root/lib/libCint.so
 0xb76939e4 in G__exec_tempfile_fp + 0x22 from /usr/local/root/lib/libCint.so
 0xb770f7d1 in G__process_cmd + 0x4b2b from /usr/local/root/lib/libCint.so
 0xb7a5dd80 in TCint::ProcessLine(char const*, TInterpreter::EErrorCode*) + 0x13c from /usr/local/root/lib/libCore.so
 0xb799cb9b in TApplication::ProcessLine(char const*, bool, int*) + 0x621 from /usr/local/root/lib/libCore.so
 0xb6c4b82e in TRint::HandleTermInput() + 0x1f8 from /usr/local/root/lib/libRint.so
 0xb6c4a3c2 in TTermInputHandler::Notify() + 0x24 from /usr/local/root/lib/libRint.so
 0xb6c4c34a in TTermInputHandler::ReadNotify() + 0x12 from /usr/local/root/lib/libRint.so
 0xb7ae8dbe in TUnixSystem::CheckDescriptors() + 0x148 from /usr/local/root/lib/libCore.so
 0xb7ae7ced in TUnixSystem::DispatchOneEvent(bool) + 0x17b from /usr/local/root/lib/libCore.so
 0xb7a18214 in TSystem::InnerLoop() + 0x18 from /usr/local/root/lib/libCore.so
 0xb7a181b3 in TSystem::Run() + 0x7b from /usr/local/root/lib/libCore.so
 0xb799d3a6 in TApplication::Run(bool) + 0x32 from /usr/local/root/lib/libCore.so
 0xb6c4b273 in TRint::Run(bool) + 0x421 from /usr/local/root/lib/libRint.so
 0x08048e1d in main + 0x71 from /usr/local/root/bin/root.exe
 0xb6a21e80 in __libc_start_main + 0xd0 from /lib/tls/libc.so.6
 0x08048d11 in TApplicationImp::ShowMembers(TMemberInspector&, char*) + 0x3d from /usr/local/root/bin/root.exe
Root > Function Loop() busy flag cleared

This is all done a SuSe Linux machine with ROOT Version 5.08/00.

Can anyone help me with this. Perhaps at which level the problem is? My code where I make the Tree or in ROOT.

I will start now and try to get a small piece of code that will reproduce the problem. But while doing that someone might see the problem or have had a similar experience?!

I have a second question. I try to do the same on my Mac OSX 10.4.6 with ROOT Version 5.10/00c to see if it works there

But then I cant event load lib.so (the file is created on the Linux machine)

root [0] .L lib.so
dlopen error: dlopen(/Users/andreasekstrom/Documents/DataAnalys/IS418041027/rootfiles/./lib.so, 9): no suitable image found.  Did find:
        /Users/andreasekstrom/Documents/DataAnalys/IS418041027/rootfiles/./lib.so: unknown file type, first eight bytes: 0x7F 0x45 0x4C 0x46 0x01 0x01 0x01 0x00
Load Error: Failed to load Dynamic link library /Users/andreasekstrom/Documents/DataAnalys/IS418041027/rootfiles/./lib.so
*** Interpreter error recovered ***
root [1] 

So, is it in general not a good idea to use a library on machines where it hasnt been compiled, and especially try to use Linux *.so on a Mac OSX *.so ?

Best Regards
Andreas

[quote]So, is it in general not a good idea to use a library on machines where it hasnt been compiled, and especially try to use Linux *.so on a Mac OSX *.so ? [/quote]Indeed … you need to make a build for each different platforms.

[quote]Warning: *b_PhysicalEventData_MedEvent Syntax error?? MyClass.h:91: [/quote]It is likely a problem with MakeClass.
Try:.L MyClass.C+. Also you may want to send us the line 91 through 99.

Cheers,
Philippe