Hi ROOTers,
I'm trying to gain experience with root-trees. For this reason I tried to
import a small test-class to root:
-----------------Momentum3.h
#ifndef MOMENTUM3_H
#define MOMENTUM3_H
#include "TObject.h"
class Momentum3: public TObject
{
public:
Momentum3();
Float_t p;
ClassDef(Momentum3,1)
};
#endif
-----------------Momentum3.cpp
#include "Momentum3.h"
ClassImp(Momentum3)
Momentum3::Momentum3()
{
p=0;
};
-----------------
This class has been used to fill a root-tree:
-----------------Main.cpp
#include "TROOT.h"
#include "TFile.h"
#include "TTree.h"
#include "TBranch.h"
#include "Momentum3.h"
int main(void)
{
TROOT root("disto","Disto Analysis");
Momentum3 mom, *mymom = & mom;
TFile *hfile = new TFile("my.root", "RECREATE");
TTree *tree = new TTree("T", "MyTree");
tree->Branch("momentum", "Momentum3", &mymom, 64000, 1);
for (int i=0; i< 3; i++)
{
mymom->p=i;
tree->Fill();
}
hfile->Write();
hfile->Close();
return 0;
}
----------------
If I start my Main, it tells me:
Fatal in <operator delete>: unreasonable size (1084523672)
aborting
In addition, I compile a *.so from the Momentum3 class and the Dictionary,
but if I try to load this into CINT, a segmentation fault appears
Do I misunderstand something?
Thanks for your help and best regards,
Ingo Froehlich
--
Ingo Froehlich, II. Physikalisches Institut, Universitaet Giessen
Heinrich-Buff-Ring 16, D-35392 Giessen | Tel.: 0641 - 99 33250
EMail: Ingo.Froehlich@exp2.physik.uni-giessen.de | Fax : 0641 - 99 33209
Sekretariat II. Physik: 0641 - 99 33261 | :-)
PS: My Makefile:
----------------
.SUFFIXES: .cpp .c
PACKAGE = Tproject
VERSION = 0
DICT = Momentum3.h
OBJ = EventDict.o Momentum3.o Main.o
TOBJS = EventDict.o Momentum3.o
ROOTLIBS = -L$(ROOTSYS)/lib -lNew -lBase -lCint -lClib -lCont -lFunc
\
-lGraf -lGraf3d -lHist -lHtml -lMatrix -lMeta -lMinuit
-lNet \
-lPostscript -lProof -lTree -lUnix -lZip
ROOTGLIBS = -lGpad -lGui -lGX11 -lX3d
# Linux
C = gcc
CFLAGS = -O3 -Wall -D_DEBUG
CXX = g++
CXXFLAGS = -O3 -Wall -fPIC -I$(ROOTSYS)/include -D_DEBUG -DLINUX
LD = g++
LDFLAGS = -g
SOFLAGS = -shared
LIBS = $(ROOTLIBS) -lg++ -lm -ldl -rdynamic
GLIBS = $(ROOTLIBS) $(ROOTGLIBS) -L/usr/X11R6/lib \
-lXpm -lX11 -lg++ -lm -ldl -rdynamic
#------------------------------------------------------------------------------
all: Momentum.so Main
Momentum.so: $(TOBJS)
$(LD) $(SOFLAGS) $(TOBJS) $(GLIBS) -o Momentum.so
@echo "$(PROGRAMM) done"
Main: $(OBJ)
$(LD) $(LDFLAGS) $(OBJ) $(GLIBS) -o Main
@echo "$(PROGRAMM) done"
clean:
@rm -f $(OBJS) core
.cpp.o:
@echo compiling $<
$(CXX) $(CXXFLAGS) -c $<
.c.o:
@echo compiling $<
$(C) $(CFLAGS) -c $<
EventDict.cpp: $(DICT)
@echo "Generating Dictionary"
@$(ROOTSYS)/bin/rootcint -f EventDict.cpp -c $(DICT)
This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:43:37 MET