Hi Jajoung, Sorry for this late reply. I missed your original mail. In TTree::Branch you must pass the address of a pointer to an aobject derived from TObject. Your class Event does not inherit from TObject. In the new development version of ROOT, this limitation has been removed. I suggest to use the TTree::MakeClass or TTree::MakeSelector function to generate automatically a skeleton for an analysis class. Instructions of use are given as comments in the generated code. Rene Brun Jayoung Wu wrote: > > Thanks, Jacek. > > I followed what RootDoc.html says but I still have the following error: > root [0] .L Myclass.C > root [1] TFile *f = new TFile("jay.root","RECREATE"); > root [2] TTree *mytree = new TTree("MyT","Event Tree"); > root [3] event = new Event(); > root [4] Int_t bufsize = 256000; > root [5] Int_t split = bufsize /= 4; > root [6] mytree->Branch("event", "Event", &event, bufsize,split); > Error in <TTree::BranchObject>: Cannot find class:Event > > It seems not to recognize my class Event. Do you have any idea? > > --- > Thanks, > Jayoung > > --------------------- Myclass.C --------------------- > class EventHeader { > > private: > Int_t jEvtNum; > ULong_t jTimeSec; > UShort_t jTimeMsec; > UShort_t JEvtType; > UShort_t JSubType; > UShort_t jTrigType; > > public: > EventHeader() : jEvtNum(0), jTimeSec(0), jTimeMsec(0), JEvtType(0), > JSubType(0), jTrigType(0) { } > virtual ~EventHeader() {} > void Set(Int_t en, ULong_t ts, UShort_t tm, UShort_t et, UShort_t st, > UShort_t tt) { jEvtNum = en; jTimeSec = ts; jTimeMsec = tm; > JEvtType = et; JSubType = st; jTrigType = tt;} > Int_t GetEvtNum() { return jEvtNum; } > ULong_t GetTimeSec() { return jTimeSec;} > UShort_t GetTimeMsec() { return jTimeMsec;} > UShort_t GetEvtType() { return JEvtType;} > UShort_t GetSubType() { return JSubType;} > UShort_t GetTrigType() { return jTrigType;} > }; > > //------------------------------------------------------------------------- > class Event { > > private: > EventHeader jEvtHdr; > > public: > Event(); > virtual ~Event(); > void SetHeader(Int_t en, ULong_t ts, UShort_t tm, UShort_t et, > UShort_t st, UShort_t tt); > > }; > > Event::Event() > { > > } > > Event::~Event() > { > > } > > void Event::SetHeader(Int_t en, ULong_t ts, UShort_t tm, UShort_t et, > UShort_t st, UShort_t tt) > { > jEvtHdr.Set(en,ts,tm,et,st,tt); > > } > > ////////////////////////////////////////////////////////////////////////// > On Tue, 3 Apr 2001, Jacek M. Holeczek wrote: > > > Hi, > > Please have a look at the ROOT User's Guide : > > http://root.cern.ch/root/RootDoc.html > > at the chapter : > > "CINT the C++ Interpreter" -> "A Script Containing a Class Definition" > > Hope this helps, > > Jacek. > > > >
This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:50:41 MET