... I'm trying to fill a Tree using this piece of code, derived from the
examples
in the 2.00/13 distribution:
[oak:520] cat FillDelay.C
#include "TROOT.h"
#include "TTree.h"
#include "TFile.h"
#include "TBranch.h"
#include "Delay.h"
main (int argc, char **argv) {
TROOT simple ("Simple", "Example");
Int_t split = 0;
Int_t bsize = 64000;
Delay *delay = 0;
TFile *hfile = new TFile ("Test.root", "RECREATE");
TTree *tree = new TTree ("tree", "Example");
delay = new Delay();
tree->Branch ("delay", "Delay", &delay, bsize, split);
for (Int_t i=0 ; i<10 ; i++) {
delay = new Delay();
delay->SetPacketId(i);
tree->Fill();
delete delay;
}
hfile->Write ();
hfile->Close ();
return 0;
}
This compiles, but then core-dumps:
[oak:524] make
g++ -O -Wall -fPIC -I/spool/henk/source/root/include -c FillDelay.C
FillDelay.C: In function `int main(int, char **)':
FillDelay.C:9: warning: unused parameter `int argc'
FillDelay.C:9: warning: unused parameter `char ** argv'
g++ -O -Wall -fPIC -I/spool/henk/source/root/include -c Delay.C
g++ -o FillDelay -g FillDelay.o Delay.o -L/spool/henk/source/root/lib
-lNew -lBase -lCint -lClib -lCont -lFunc -lGraf -lGraf3d -lHist -lMatrix
-lMeta -lMinuit -lNet -lProof -lPostscript -lTree -lUnix -lZip -lg++ -lm
-ldl -rdynamic
[oak:525] FillDelay
Contructor for Delay
Contructor for Delay
Error in <TFile::TFile>: file does not exist
*** Break *** segmentation violation
Abort (core dumped)
As far as I can see, the core-dump occurs in the tree->Branch statement.
Any ideas what might be wrong here?
Henk
ps. I'm running Linux 2.0.35:
[oak:526] uname -a
Linux oak.ripe.net 2.0.35 #1 Fri Sep 4 15:13:37 MET DST 1998 i586
unknown
Delay.h and Delay.C are:
---- Delay.h ----
#include "TObject.h"
#include "TClonesArray.h"
#include "TH1.h"
#include "TMath.h"
#include <iostream.h>
class Delay : public TObject {
private:
UInt_t PacketId; // Identifier of the packet
Int_t SourceId; // ID# of the sending testbox
Int_t SourcePort; // Port from which the packet was sent
Int_t TargetId; // ID# of the receiving testbox
Int_t TargetPort; // Port to which the packet was sent
Int_t PacketSize; // Packet size in bytes
Double_t ArrivalTime; // -1.0 if undefined
Double_t PacketDelay; // Delay in ms, -1.0 if undefined
UInt_t SourceClock; // Sending and receiving clock status
UInt_t TargetClock;
Int_t Nhops; // Number of hops, -1 if unknown
Int_t Routeid; // Routing vector number, -1 if unknown
Float_t SourceNtp; // NTP error estimates (empty at the
moment)
Float_t TargetNtp;
public:
Delay ();
virtual ~Delay();
void SetPacketId (Int_t n) {PacketId = n;}
};
---- Delay.C ----
#include "Delay.h"
Delay::Delay() {
cout << "Contructor for Delay\n";
}
Delay::~Delay() {
}
-- ------------------------------------------------------------------------------ Henk Uijterwaal Email: henk.uijterwaal@ripe.net RIPE Network Coordination Centre WWW: http://www.ripe.net/home/henk Singel 258 Phone: +31.20.535-4414, Fax -4445 1016 AB Amsterdam Home: +31.20.4195305 The Netherlands Mobile: +31.6.55861746 NOTE NEW NUMBER! ------------------------------------------------------------------------------%DCL-E-NOCFFE, unable to locate coffee - keyboard input suspended.