Hello everybody,
First of all happy new year.
I have a code (compiled) that work fine with ROOT 5.14.00. I can read my 8 files produced with ROOT 5.14.00 without problem.
Each files contain 4 trees (one is the friend of the 3 others).
I would like to merge the 8 files. I use hadd with python but with ROOT 5.14.00 I have the following problem :
Error in TClass::Load: dictionary of class TTreeIndex not found
Do I need to import this TClass in my python code ?
One solution is to use ROOT 5.17.08. It works fine but then when I tried to run my first code (based on a MakeClass done with ROOT 5.14.00) I have the following crash for some event :
Error in TBuffer::ReadVersion: Could not find the StreamerInfo with a checksum of 1073741838 for the class “vector” in myrootfile.root
…
Error in TBuffer::CheckByteCount: Byte count probably corrupted around buffer position 2707:
328113609 for a possible maximum of 345
Error in TBuffer::ReadVersion: Could not find the StreamerInfo with a checksum of 1087409437 for the class “vector” in myrootfile.root.
Error in TBuffer::CheckByteCount: object of class vector read too many bytes: 10 instead of -1389818765
Warning in TBuffer::CheckByteCount: vector::Streamer() not in sync with data on file myrootfile.root, fix Streamer()
Error in TBuffer::CheckByteCount: Byte count probably corrupted around buffer position 2716:
-1389818765 for a possible maximum of 334
*** Break *** segmentation violation
Using host libthread_db library “/lib/tls/libthread_db.so.1”.
I can run the 8 files without problem but not the result of the merging !
In my analysis code I have :
// load dictionary
gROOT->ProcessLine("#include ");
Any idea ? problem of compatibility between 5.14.00 and 5.17.08 ?
Any idea how I can solve the fist problem with hadd ?
Thanks a lot
Cheers
Fabien
To compile :
Makefile for complile of c++ code with call to ROOT libs
LDFLAGS = -g
#GCC = /usr/bin/gcc
#GPP = /usr/bin/g++
GCC = gcc
GPP = g++
CC = $(GPP)
CXX = $(GPP)
LINKER = $(CC)
ROOTCFLAGS = $(shell $(ROOTSYS)/bin/root-config --cflags)
ROOTLIBS = $(shell $(ROOTSYS)/bin/root-config --libs)
ROOTGLIBS = $(shell $(ROOTSYS)/bin/root-config --glibs) -lTreePlayer
CXXFLAGS = -g $(ROOTCFLAGS)
LIBS = $(ROOTLIBS) -lMinuit
GLIBS = $(ROOTGLIBS) -lMinuit
CCNAME = MakeShapeZWSwap
CFNAME = ShapeZWSwap
CFULL = FullSimTree
CFAST = FastSimTree
CTRUT = TruthTree
CCOLL = CollectionTree
OBJ = $(CCNAME).o $(CFNAME).o $(CFULL).o $(CFAST).o $(CTRUT).o $(CCOLL).o
SRC = $(CCNAME).cxx
SRCF = $(CFNAME).cxx
SRCFULL = $(CFULL).cxx
SRCFAST = $(CFAST).cxx
SRCTRUT = $(CTRUT).cxx
SRCCOLL = $(CCOLL).cxx
all: $(CCNAME)
$(CCNAME): $(OBJ) $(SRC)
$(LINKER) $(LDFLAGS) -o $(CCNAME) $(OBJ) $(GLIBS) $(SOFLAGS)
$(CCNAME).o: $(SRC)
$(CC) -c $(CCNAME).cxx $(CXXFLAGS)
$(CFNAME).o: $(SRCF)
$(CC) -c $(CFNAME).cxx $(CXXFLAGS)
$(CFULL).o: $(SRCFULL)
$(CC) -c $(CFULL).cxx $(CXXFLAGS)
$(CFAST).o: $(SRCFAST)
$(CC) -c $(CFAST).cxx $(CXXFLAGS)
$(CTRUT).o: $(SRCTRUT)
$(CC) -c $(CTRUT).cxx $(CXXFLAGS)
$(CCOLL).o: $(SRCCOLL)
$(CC) -c $(CCOLL).cxx $(CXXFLAGS)
$(OBJ) : $(CFNAME).h