I filled a tree with an event class (SiRectangleDetector in source.tar.gz) and saved it into the file (simfile.root in attachment). It was successful and I didn’t get any error message, but I have serious troubles to read the file (scripts opentree1.cxx and opentree2.cxx). I suspect that it can be somehow connected with the class member Double_t *fXEnergy and *fYEnergy, probably with the streamers.
[code] Int_t m_iXStripNumber;
Double_t *fXEnergy; //[m_iXStripNumber]
Double_t *fYEnergy; //[m_iYStripNumber][/code]
However, I wrote the class according to instructions given in User Guide and searched in the forum for some similar topic, I am afraid that I overlooked something important. I need to use variable length array in this case, so be so kind and advice me where I should look for the bug.
simfile.root (547 KB)
source.tar.gz (7.71 KB)
opentree2.cxx (404 Bytes)
opentree1.cxx (425 Bytes)
I believe you created the two branches in your tree like this:
I’d like to propose that you do (note the trailing dots):
Then in your “opentree” scripts do (note the trailing dots):
cout << “branchstatus:\t” << tr->GetBranchStatus(“rdEdetector.”) << endl;
TBranch *bde = tr->GetBranch(“rdEdetector.”);
Search for “parent” in http://root.cern.ch/root/html534/TTree.html#TTree:GetEntry and http://root.cern.ch/root/html534/TTree.html#TTree:SetBranchStatus descriptions.
thanks for your help, now it works perfectly. I found the explanation of the “dot” feature in http://root.cern.ch/root/html/TTree.html#TTree:Bronch description.