Segmentation Violation using MakeClass in ROOT 4.04/02f

Hi

I have a problem with using a class made with MakeClass(). Let me describe what I do:

I have an ntuple generated with athena release 11.0.42 which uses ROOT 4.04/02f:
/afs/cern.ch/user/h/heineman/public/ZeeOnESD_10kM150.root

Then I do:
root
root[0] TFile f = new TFile(“ZeeOnESD_10kM150.root”)
root[1] TTree
t1 = gDirectory->Get( “CBNT/3333” )
root[2] t1->MakeClass(“ReWeightClass”)

This works fine so far. I have to say though, that “.L libEvent” which is recommended in the root manual gives:
Error in : macro libEvent.so not found in path .:/afs/cern.ch/sw/lcg/external/root/4.04.02f/slc3_ia32_gcc323/root/macros

The classes are generated anyway and look fine :smiley: :
/afs/cern.ch/user/h/heineman/public/ReWeightClass.h/.C

If I run now:

root
root [0] .L ReWeightClass.C
root [1] ReWeightClass t
root [2] t.Loop()

I get :cry:

*** Break *** segmentation violation
Generating stack trace…
0x0017fd27 in G__call_cppfunc + 0x2ad from /afs/cern.ch/sw/lcg/external/root/4.04.02f/slc3_ia32_gcc323/root/lib/libCint.so
0x0016f1cc in G__interpret_func + 0x70d from /afs/cern.ch/sw/lcg/external/root/4.04.02f/slc3_ia32_gcc323/root/lib/libCint.so
0x00156acb in G__getfunction + 0x1334 from /afs/cern.ch/sw/lcg/external/root/4.04.02f/slc3_ia32_gcc323/root/lib/libCint.so
0x001e1f63 in G__getstructmem + 0x82a from /afs/cern.ch/sw/lcg/external/root/4.04.02f/slc3_ia32_gcc323/root/lib/libCint.so
0x001db2ab in G__getvariable + 0x4d6 from /afs/cern.ch/sw/lcg/external/root/4.04.02f/slc3_ia32_gcc323/root/lib/libCint.so
0x0014dd98 in G__getitem + 0x4ea from /afs/cern.ch/sw/lcg/external/root/4.04.02f/slc3_ia32_gcc323/root/lib/libCint.so
0x0014cac1 in G__getexpr + 0x7065 from /afs/cern.ch/sw/lcg/external/root/4.04.02f/slc3_ia32_gcc323/root/lib/libCint.so
0x0013b1ed in G__define_var + 0x202f from /afs/cern.ch/sw/lcg/external/root/4.04.02f/slc3_ia32_gcc323/root/lib/libCint.so
0x001ce9af in G__defined_type + 0x593 from /afs/cern.ch/sw/lcg/external/root/4.04.02f/slc3_ia32_gcc323/root/lib/libCint.so
0x0019cf77 in G__exec_statement + 0x18ec from /afs/cern.ch/sw/lcg/external/root/4.04.02f/slc3_ia32_gcc323/root/lib/libCint.so
0x001708d9 in G__interpret_func + 0x1e1a from /afs/cern.ch/sw/lcg/external/root/4.04.02f/slc3_ia32_gcc323/root/lib/libCint.so
0x00156acb in G__getfunction + 0x1334 from /afs/cern.ch/sw/lcg/external/root/4.04.02f/slc3_ia32_gcc323/root/lib/libCint.so
0x001e1f63 in G__getstructmem + 0x82a from /afs/cern.ch/sw/lcg/external/root/4.04.02f/slc3_ia32_gcc323/root/lib/libCint.so
0x001db2ab in G__getvariable + 0x4d6 from /afs/cern.ch/sw/lcg/external/root/4.04.02f/slc3_ia32_gcc323/root/lib/libCint.so
0x0014dd98 in G__getitem + 0x4ea from /afs/cern.ch/sw/lcg/external/root/4.04.02f/slc3_ia32_gcc323/root/lib/libCint.so
0x0014cac1 in G__getexpr + 0x7065 from /afs/cern.ch/sw/lcg/external/root/4.04.02f/slc3_ia32_gcc323/root/lib/libCint.so
0x00196daa in G__exec_function + 0x1d5 from /afs/cern.ch/sw/lcg/external/root/4.04.02f/slc3_ia32_gcc323/root/lib/libCint.so
0x0019da76 in G__exec_statement + 0x23eb from /afs/cern.ch/sw/lcg/external/root/4.04.02f/slc3_ia32_gcc323/root/lib/libCint.so
0x00135c33 in G__exec_tempfile_core + 0x2ce from /afs/cern.ch/sw/lcg/external/root/4.04.02f/slc3_ia32_gcc323/root/lib/libCint.so
0x00135e10 in G__exec_tempfile_fp + 0x22 from /afs/cern.ch/sw/lcg/external/root/4.04.02f/slc3_ia32_gcc323/root/lib/libCint.so
0x001a5d72 in G__process_cmd + 0x45f0 from /afs/cern.ch/sw/lcg/external/root/4.04.02f/slc3_ia32_gcc323/root/lib/libCint.so
0x006acc4d in TCint::ProcessLine(char const*, TInterpreter::EErrorCode*) + 0xa9 from /afs/cern.ch/sw/lcg/external/root/4.04.02f/slc3_ia32_gcc323/root/lib/libCore.so
0x0060640d in TApplication::ProcessLine(char const*, bool, int*) + 0x66b from /afs/cern.ch/sw/lcg/external/root/4.04.02f/slc3_ia32_gcc323/root/lib/libCore.so
0x00da337f in TRint::HandleTermInput() + 0x1dd from /afs/cern.ch/sw/lcg/external/root/4.04.02f/slc3_ia32_gcc323/root/lib/libRint.so
0x00da20fa in TTermInputHandler::Notify() + 0x24 from /afs/cern.ch/sw/lcg/external/root/4.04.02f/slc3_ia32_gcc323/root/lib/libRint.so
0x00da3c34 in TTermInputHandler::ReadNotify() + 0x12 from /afs/cern.ch/sw/lcg/external/root/4.04.02f/slc3_ia32_gcc323/root/lib/libRint.so
0x00740131 in TUnixSystem::CheckDescriptors() + 0x143 from /afs/cern.ch/sw/lcg/external/root/4.04.02f/slc3_ia32_gcc323/root/lib/libCore.so
0x0073f027 in TUnixSystem::DispatchOneEvent(bool) + 0x151 from /afs/cern.ch/sw/lcg/external/root/4.04.02f/slc3_ia32_gcc323/root/lib/libCore.so
0x0066df4c in TSystem::InnerLoop() + 0x18 from /afs/cern.ch/sw/lcg/external/root/4.04.02f/slc3_ia32_gcc323/root/lib/libCore.so
0x0066def1 in TSystem::Run() + 0x6f from /afs/cern.ch/sw/lcg/external/root/4.04.02f/slc3_ia32_gcc323/root/lib/libCore.so
0x00606eee in TApplication::Run(bool) + 0x32 from /afs/cern.ch/sw/lcg/external/root/4.04.02f/slc3_ia32_gcc323/root/lib/libCore.so
0x00da2e10 in TRint::Run(bool) + 0x3b2 from /afs/cern.ch/sw/lcg/external/root/4.04.02f/slc3_ia32_gcc323/root/lib/libRint.so
0x080488dd in main + 0x71 from /afs/cern.ch/sw/lcg/external/root/4.04.02f/slc3_ia32_gcc323/root/bin/root.exe
0x03c9879a in __libc_start_main + 0xda from /lib/tls/libc.so.6
0x080487e1 in _Unwind_Resume + 0x31 from /afs/cern.ch/sw/lcg/external/root/4.04.02f/slc3_ia32_gcc323/root/bin/root.exe
Root > Function Loop() busy flag cleared

What am I doing wrong :question:

Thanks,
Florian

Hi Florian,

I cannot reproduce a crash with the ReWeightClass.h,C files that you have in your afs area. However in ReWeightClass.h, in the constructora t line 87
you should specify the directory where to read from, ie, change
tree = (TTree*)gDirectory->Get(“3333”);
to
tree = (TTree*)gDirectory->Get(“CBNT/3333”);

Rene

Hi Rene

Specifying the directory indeed solves the problem. Thanks for helping! However, I don’t understand why the automatic generation of the class doesn’t do that by default.

Thanks,
Florian