Dear all,
I encountered a problem with $ROOT/test/Event: it crashed when I try to plot fMuons.fPx. This occured under both ROOT 5.34.25 and 6.05.02. However, plotting fHighPt.fPx worked without a problem. From my understanding of Event.cxx, I would expect that fMuons.fPx behaves like fHighPt.fPx.
I don’t believe that this is a real bug, but I guess that I miss something during making and/or running the program. Any help or hint how to plot fMuons.fPx would be a great help for me. Please find below my system settings, the commands I used, and the stack trace of the crashed program.
The program was compiled and run under Ubuntu 14.04 (3.13.0-76-generic x86_64) and gcc 4.8.4. Following ROOT Manual section 20.2, I add ARCH=linuxx8664gcc to the $ROOT/test/Makefile; I also set ROOTSYS and add $ROOTSYS/bin to PATH and $ROOTSYS/lib/root to LD_LIBRARY_PATH. The consequent make finished without any warnings or errors.
~/root/test$ make
g++ -O2 -Wall -fPIC -pthread -std=c++11 -Wno-deprecated-declarations -m64 -I/usr/local/root_5.34.25/include/root -c Event.cxx
Generating dictionary EventDict.cxx...
rootcint -f EventDict.cxx -c Event.h EventLinkDef.h
g++ -O2 -Wall -fPIC -pthread -std=c++11 -Wno-deprecated-declarations -m64 -I/usr/local/root_5.34.25/include/root -c EventDict.cxx
g++ -shared -O2 -m64 Event.o EventDict.o -o libEvent.so
libEvent.so done
g++ -O2 -Wall -fPIC -pthread -std=c++11 -Wno-deprecated-declarations -m64 -I/usr/local/root_5.34.25/include/root -c MainEvent.cxx
g++ -O2 -m64 MainEvent.o Event.o EventDict.o -L/usr/local/root_5.34.25/lib/root -lCore -lCint -lRIO -lNet -lHist -lGraf -lGraf3d -lGpad -lTree -lRint -lPostscript -lMatrix -lPhysics -lMathCore -lThread -pthread -lm -ldl -rdynamic -o Event
Event done
g++ -O2 -Wall -fPIC -pthread -std=c++11 -Wno-deprecated-declarations -m64 -I/usr/local/root_5.34.25/include/root -c EventMT.cxx
Generating dictionary EventMTDict.cxx...
rootcint -f EventMTDict.cxx -c EventMT.h EventLinkDef.h
g++ -O2 -Wall -fPIC -pthread -std=c++11 -Wno-deprecated-declarations -m64 -I/usr/local/root_5.34.25/include/root -c EventMTDict.cxx
g++ -shared -O2 -m64 EventMT.o EventMTDict.o -o libEventMT.so
libEventMT.so done
//Skip unrelated lines
I run the Event program with its default settings …
~/root/test$ ./Event
event:0, rtime=0.152769 s
event:100, rtime=0.879535 s
event:200, rtime=0.767527 s
event:300, rtime=0.691043 s
******************************************************************************
*Tree :T : An example of a ROOT tree *
*Entries : 400 : Total = 32496254 bytes File Size = 15039624 *
* : : Tree compression factor = 2.16 *
******************************************************************************
*Branch :event *
*Entries : 400 : BranchElement (see below) *
*............................................................................*
*Br 0 :TObject : BASE *
*Entries : 400 : Total Size= 6173 bytes File Size = 758 *
*Baskets : 1 : Basket Size= 16000 bytes Compression= 7.49 *
*............................................................................*
*Br 1 :fType[20] : Char_t *
*Entries : 400 : Total Size= 10179 bytes File Size = 853 *
*Baskets : 1 : Basket Size= 16000 bytes Compression= 11.35 *
*............................................................................*
*Br 2 :fEventName : char* *
*Entries : 400 : Total Size= 9678 bytes File Size = 2012 *
*Baskets : 1 : Basket Size= 16000 bytes Compression= 4.56 *
*............................................................................*
*Br 3 :fNtrack : Int_t *
*Entries : 400 : Total Size= 2165 bytes File Size = 555 *
*Baskets : 1 : Basket Size= 16000 bytes Compression= 3.01 *
*............................................................................*
*Br 4 :fNseg : Int_t *
*Entries : 400 : Total Size= 2155 bytes File Size = 784 *
*Baskets : 1 : Basket Size= 16000 bytes Compression= 2.13 *
*............................................................................*
*Br 5 :fNvertex : Int_t *
*Entries : 400 : Total Size= 2170 bytes File Size = 539 *
*Baskets : 1 : Basket Size= 16000 bytes Compression= 3.10 *
*............................................................................*
*Br 6 :fFlag : UInt_t *
*Entries : 400 : Total Size= 2155 bytes File Size = 282 *
*Baskets : 1 : Basket Size= 16000 bytes Compression= 5.92 *
*............................................................................*
*Br 7 :fTemperature : Double32_t *
*Entries : 400 : Total Size= 2190 bytes File Size = 1386 *
*Baskets : 1 : Basket Size= 16000 bytes Compression= 1.21 *
*............................................................................*
*Br 8 :fMeasures[10] : Int_t *
*Entries : 400 : Total Size= 18288 bytes File Size = 5984 *
*Baskets : 2 : Basket Size= 16000 bytes Compression= 2.97 *
*............................................................................*
*Br 9 :fMatrix[4][4] : Double32_t *
*Entries : 400 : Total Size= 27886 bytes File Size = 16939 *
*Baskets : 2 : Basket Size= 16000 bytes Compression= 1.62 *
*............................................................................*
*Br 10 :fClosestDistance : Double32_t fClosestDistance[fNvertex] *
*Entries : 400 : Total Size= 15766 bytes File Size = 8859 *
*Baskets : 2 : Basket Size= 16000 bytes Compression= 1.71 *
*............................................................................*
*Br 11 :fEvtHdr : EventHeader *
*Entries : 400 : Total Size= 9373 bytes File Size = 1745 *
*Baskets : 1 : Basket Size= 16000 bytes Compression= 5.09 *
*............................................................................*
*Br 12 :fTracks : TClonesArray* *
*Entries : 400 : Total Size= 30371317 bytes File Size = 14688113 *
*Baskets : 400 : Basket Size= 16000 bytes Compression= 2.07 *
*............................................................................*
*Br 13 :fHighPt : TRefArray* *
*Entries : 400 : Total Size= 605934 bytes File Size = 237007 *
*Baskets : 40 : Basket Size= 16000 bytes Compression= 2.55 *
*............................................................................*
*Br 14 :fMuons : TRefArray* *
*Entries : 400 : Total Size= 32332 bytes File Size = 4815 *
*Baskets : 3 : Basket Size= 16000 bytes Compression= 6.61 *
*............................................................................*
*Br 15 :fLastTrack : TRef *
*Entries : 400 : Total Size= 6988 bytes File Size = 1431 *
*Baskets : 1 : Basket Size= 16000 bytes Compression= 4.53 *
*............................................................................*
*Br 16 :fWebHistogram : TRef *
*Entries : 400 : Total Size= 7003 bytes File Size = 737 *
*Baskets : 1 : Basket Size= 16000 bytes Compression= 8.80 *
*............................................................................*
*Br 17 :fH : TH1F* *
*Entries : 400 : Total Size= 378880 bytes File Size = 40380 *
*Baskets : 25 : Basket Size= 16000 bytes Compression= 9.36 *
*............................................................................*
*Br 18 :fTriggerBits : TBits *
*Entries : 400 : Total Size= 16882 bytes File Size = 5283 *
*Baskets : 2 : Basket Size= 16000 bytes Compression= 3.10 *
*............................................................................*
*Br 19 :fIsValid : Bool_t *
*Entries : 400 : Total Size= 970 bytes File Size = 95 *
*Baskets : 1 : Basket Size= 16000 bytes Compression= 4.97 *
*............................................................................*
*Br 20 :TRefTable : List of branch numbers with referenced objects *
*Entries : 400 : Total Size= 969016 bytes File Size = 13310 *
*Baskets : 30 : Basket Size= 32000 bytes Compression= 70.90 *
*............................................................................*
400 events and 31443637 bytes processed.
RealTime=3.164727 seconds, CpuTime=3.030000 seconds
compression level=1, split=1, arg4=1
You write 9.935656 Mbytes/Realtime seconds
You write 10.377438 Mbytes/Cputime seconds
…and open the created root file:
~/root/test$ root -l Event.root
root [0]
Attaching file Event.root as _file0...
Warning in <TClass::TClass>: no dictionary for class Event is available
Warning in <TClass::TClass>: no dictionary for class EventHeader is available
Warning in <TClass::TClass>: no dictionary for class Track is available
root [1] .L libEvent.so
root [2] T->Draw("fHighPt.fPx") //Worked without problems
Info in <TCanvas::MakeDefCanvas>: created default TCanvas with name c1
root [3] T->Draw("fMuons.fPx") //Crashed
Error in <TRefArray::At>: index 0 out of bounds (size: 0, this: 0x198cbc0)
Error in <TRefArray::At>: index 0 out of bounds (size: 0, this: 0x17fbf30)
Warning in <TTreeFormula::DefinedVariable>: Missing class for fMuons.fPx!
*** Break *** segmentation violation
===========================================================
There was a crash.
This is the entire stack trace of all threads:
===========================================================
#0 0x00007f71f758ab4c in __libc_waitpid (pid=20139, stat_loc=stat_loc
entry=0x7ffc57470d00, options=options
entry=0) at ../sysdeps/unix/sysv/linux/waitpid.c:31
#1 0x00007f71f75102e2 in do_system (line=<optimized out>) at ../sysdeps/posix/system.c:148
#2 0x00007f71f823f833 in TUnixSystem::StackTrace() () from /usr/local/root_5.34.25/lib/root/libCore.so.5.34
#3 0x00007f71f824144c in TUnixSystem::DispatchSignals(ESignals) () from /usr/local/root_5.34.25/lib/root/libCore.so.5.34
#4 <signal handler called>
#5 0x00007f71f820ea63 in TClass::GetStreamerInfo(int) const () from /usr/local/root_5.34.25/lib/root/libCore.so.5.34
#6 0x00007f71ef14d7b4 in TTreeFormula::ParseWithLeaf(TLeaf*, char const*, bool, unsigned int, TObjArray&, bool, char const*) () from /usr/local/root_5.34.25/lib/root/libTreePlayer.so
#7 0x00007f71ef151b15 in TTreeFormula::DefinedVariable(TString&, int&) () from /usr/local/root_5.34.25/lib/root/libTreePlayer.so
#8 0x00007f71f415c038 in TFormula::Analyze(char const*, int&, int) () from /usr/local/root_5.34.25/lib/root/libHist.so
#9 0x00007f71f4164f8d in TFormula::Compile(char const*) () from /usr/local/root_5.34.25/lib/root/libHist.so
#10 0x00007f71ef148f4e in TTreeFormula::Init(char const*, char const*) () from /usr/local/root_5.34.25/lib/root/libTreePlayer.so
#11 0x00007f71ef1494cd in TTreeFormula::TTreeFormula(char const*, char const*, TTree*) () from /usr/local/root_5.34.25/lib/root/libTreePlayer.so
#12 0x00007f71ef133ae4 in TSelectorDraw::CompileVariables(char const*, char const*) () from /usr/local/root_5.34.25/lib/root/libTreePlayer.so
#13 0x00007f71ef136aa3 in TSelectorDraw::Begin(TTree*) () from /usr/local/root_5.34.25/lib/root/libTreePlayer.so
#14 0x00007f71ef15c844 in TTreePlayer::Process(TSelector*, char const*, long long, long long) () from /usr/local/root_5.34.25/lib/root/libTreePlayer.so
#15 0x00007f71ef15cfeb in TTreePlayer::DrawSelect(char const*, char const*, char const*, long long, long long) () from /usr/local/root_5.34.25/lib/root/libTreePlayer.so
#16 0x00007f71f83fce68 in G__G__Base2_10_0_15(G__value*, char const*, G__param*, int) () from /usr/local/root_5.34.25/lib/root/libCore.so.5.34
#17 0x00007f71f6b978dd in Cint::G__ExceptionWrapper(int (*)(G__value*, char const*, G__param*, int), G__value*, char*, G__param*, int) () from /usr/local/root_5.34.25/lib/root/libCint.so.5.34
#18 0x00007f71f6c3b457 in G__execute_call () from /usr/local/root_5.34.25/lib/root/libCint.so.5.34
#19 0x00007f71f6c3b815 in G__call_cppfunc () from /usr/local/root_5.34.25/lib/root/libCint.so.5.34
#20 0x00007f71f6c1de16 in G__interpret_func () from /usr/local/root_5.34.25/lib/root/libCint.so.5.34
#21 0x00007f71f6c086b8 in G__getfunction () from /usr/local/root_5.34.25/lib/root/libCint.so.5.34
#22 0x00007f71f6cefca5 in G__getstructmem(int, G__FastAllocString&, char*, int, char*, int*, G__var_array*, int) () from /usr/local/root_5.34.25/lib/root/libCint.so.5.34
#23 0x00007f71f6ce708b in G__getvariable () from /usr/local/root_5.34.25/lib/root/libCint.so.5.34
#24 0x00007f71f6be223f in G__getitem () from /usr/local/root_5.34.25/lib/root/libCint.so.5.34
#25 0x00007f71f6be28d3 in G__getitem () from /usr/local/root_5.34.25/lib/root/libCint.so.5.34
#26 0x00007f71f6be7be5 in G__getexpr () from /usr/local/root_5.34.25/lib/root/libCint.so.5.34
#27 0x00007f71f6c6a5ef in G__exec_statement () from /usr/local/root_5.34.25/lib/root/libCint.so.5.34
#28 0x00007f71f6bceab1 in G__exec_tempfile_core () from /usr/local/root_5.34.25/lib/root/libCint.so.5.34
#29 0x00007f71f6bd001e in G__exec_tempfile_fp () from /usr/local/root_5.34.25/lib/root/libCint.so.5.34
#30 0x00007f71f6c777b0 in G__process_cmd () from /usr/local/root_5.34.25/lib/root/libCint.so.5.34
#31 0x00007f71f8203f40 in TCint::ProcessLine(char const*, TInterpreter::EErrorCode*) () from /usr/local/root_5.34.25/lib/root/libCore.so.5.34
#32 0x00007f71f8170216 in TApplication::ProcessLine(char const*, bool, int*) () from /usr/local/root_5.34.25/lib/root/libCore.so.5.34
#33 0x00007f71f7dbb189 in TRint::HandleTermInput() () from /usr/local/root_5.34.25/lib/root/libRint.so.5.34
#34 0x00007f71f8240be5 in TUnixSystem::CheckDescriptors() () from /usr/local/root_5.34.25/lib/root/libCore.so.5.34
#35 0x00007f71f8241b6a in TUnixSystem::DispatchOneEvent(bool) () from /usr/local/root_5.34.25/lib/root/libCore.so.5.34
#36 0x00007f71f81c6866 in TSystem::InnerLoop() () from /usr/local/root_5.34.25/lib/root/libCore.so.5.34
#37 0x00007f71f81c7470 in TSystem::Run() () from /usr/local/root_5.34.25/lib/root/libCore.so.5.34
#38 0x00007f71f816e90f in TApplication::Run(bool) () from /usr/local/root_5.34.25/lib/root/libCore.so.5.34
#39 0x00007f71f7dbc357 in TRint::Run(bool) () from /usr/local/root_5.34.25/lib/root/libRint.so.5.34
#40 0x0000000000400fdc in main ()
===========================================================
Best regards,
Holger