Re: TLeafS

Rene Brun (Rene.Brun@cern.ch)
Mon, 08 Dec 1997 07:28:07 +0100


Alexander,
I do not understand what you want to do.
TLeafS is a class used internally by the TTree system.
You should not reference an object of this class in your Event structure.
You can look at $ROOTSYS/test/Event for an example of Event
structure.

Rene Brun

Alexander Zvyagin wrote:

> IHEP, Protvino, Russia, 6-DEC-1997
>
> I have problem with an object of TLeafS class. Below is my simple program.
> What is wrong?
>
> Thanks,
> Alexander Zvyagin.
>
> --------- file EVENT.h -------------
> #include <TObject.h>
> #include <TLeafS.h>
>
> class EVENT : public TObject
> {
> public:
> EVENT(void) {}
> virtual ~EVENT() {}
> void init(Short_t *buf)
> {
> l.SetLen(1);
> l.SetAddress(buf);
> }
> private:
> TLeafS l;
> ClassDef(EVENT,1) // EVENT_GAMS84_DST class...
> };
> -------------------------------------
>
> --------- file test.c ---------------
> #include <stream.h>
>
> #include <TROOT.h>
> #include <TFile.h>
> #include <TTree.h>
> #include <TBranch.h>
>
> #include "EVENT.h"
>
> ClassImp(EVENT)
>
> int main(void)
> {
> TROOT main_root("main","main ...");
> TFile file("file.root","RECREATE", "root file", 9);
> EVENT *event = new EVENT;
> TTree tree("tree","tree ...");
> TBranch *branch_event = tree.Branch("This is one event.","EVENT",&event);
>
> Short_t var=6;
> event->init(&var);
>
> cout << "1\n"; cout.flush();
> tree.Fill(); // *** Break *** segmentation violation
> cout << "2\n"; cout.flush();
>
> file.Write();
> file.Close();
> delete event;
> return 0;
> }
> -------------------------------------