Hi everybody,
I am playing with the Event example that I modified to have as unique
data member a large C structure (this would be our "legacy"DST, i.e. the
one I am trying to replace):
> #include "compact.h"
>
> ......
>
> class Event : public TObject { :
> public:
> cmpEvent the_evt;
> ....
> ClassDef(Event,1) //Event structure
> };
>
When I run Event I get a warning
> origin:18:28:~/rootevent: Event -l c1.list
> Warning in <Add>: class TBranchObject allready in TClassTable
>
but also a large (too large!) Event.root that I can open from root
> root [0] TFile f("Event.root")
> root [1] f.ls()
> TFile** Event.root
> TFile* Event.root
> KEY: TH1F htime;1 Real-Time to write versus time
> KEY: TTree T;1 A test of a NA48 ROOT tree
>
now, outside of root, I try to read the file with a program of mine also
derived from the Event example
> origin:18:37:~/rootevent: dbx myread
> ....
> (dbx) run
> Process 4457 (myread) started
> Warning in <Add>: class TBranchObject allready in TClassTable
> Warning in <Tclass:TClass>: no dictionary for class Event available
> Process 4457 (myread) stopped on signal SIGSEGV:
>
> Segmentation violation (handler sighandler(int))
>
> at [TBranchObject::SetAddress(void*):266 +0x4,0x4142b0]
> 266 rd = (TRealData *)rdata->First();
>
that's how I understand it: as the warning warned, there is no
dictionary available on Event class and the pointer rdata to the list of
real(?) data in the class is nil and stays nil even after
TClass::BuildRealData is run.
How this can happen? Does it depend on my, admittedly weird, Event class
or on something that I am forgetting/doing wrong in myread.cxx before
the usual
> // Start main loop on all events
> TBranch *branch = T->GetBranch("event");
> Event *event = new Event();
> branch->SetAddress(&event);
>
Thanks for any suggestion,
-- Paolo Calafiura Scuola Normale Superiore, Piazza Cavalieri 7, I-56127 Pisa phone/fax Pisa SNS 39-50-509085 / 563513 phone/fax Pisa INFN 39-50-880218 / 880317 phone/fax CERN 41-22-7674418 / 7678950 office 31-2-006
--------------13C10253D0AB8328EBC99FE5 Content-Type: text/x-vcard; charset=us-ascii; name="vcard.vcf" Content-Transfer-Encoding: 7bit Content-Description: Card for Paolo Calafiura Content-Disposition: attachment; filename="vcard.vcf"
begin: vcard fn: Paolo Calafiura n: Calafiura;Paolo org: Scuola Normale Superiore email;internet: Paolo.Calafiura@cern.ch x-mozilla-cpt: ;0 x-mozilla-html: FALSE version: 2.1 end: vcard
--------------13C10253D0AB8328EBC99FE5--