Hi Luis, You have the bad luck of having a problem when all the root team members are in a conference. Anyway, I just looked at your C/h files and they seems to look as I would expect. In your case (using struct or variables instead of classes) the resulting tree contains one branch for many variables. It is expected that the SetBranch is called only once per branch (so much less than the number of leaves in your cases). One thing that might explain why you can not read the data using those files is the size of the array. In some cases (like older version of HepTuple in conjunction with user's code mis-coding) MakeClass could get confused with the actual size of the array. Figuring out what the length should be involves calling GetOffset on one leaf per branch and its successor (in the same branch) and divide the difference by 4 (the size of ints and floats). Alternatively you could call TLeaf::SetAddress for all the leaves in the Notify method. In addition, unless you used HepTuple or some other sofisticated code, it is very possible that that the data is incorrect because your have the index of the array on the same branch and use the same name in different branch. Cheers, Philippe. -----Original Message----- From: owner-roottalk@pcroot.cern.ch [mailto:owner-roottalk@pcroot.cern.ch]On Behalf Of Luiz Martins Mundim Filho Sent: Thursday, March 27, 2003 8:13 PM To: roottalk@pcroot.cern.ch Subject: [ROOT] accessing several variables inside a branch.(more info) I included in attachment the skeleton program generated by MakeClass. I noticed that there are much less branch addresses set up than the number of branchs/leaves (in case it has been split) that exist on the tree. --------------------------------------------------------------------- I sent this message yesterday and got no reply. I checked the roottalk rules and I do not think this messages is not in accordance with them, so I'm posting it again, since I need urgente help because I need to get some result till monday. Thanks in advande for you help. --------------------------------------------------------------------- Hello I have a Tree with several branches and inside them, also several leaves. This tree has not been written by me, but I have to analyse it. I generated a skeleton code (using both MakeClass and MakeSelector), but I could not access the data I want with the code root gave me. I can draw the variable using tree->Draw("branch.var"), but when trying to access them inside the skeleton program, it fails. I realized that on the header file, the variables are defined like branchname_var (with an underscore), that means, it do not seem to be a structure like object. I tried several variation of statements and all of them failled. Do I need to add more (accessing) code to be able to read the data, like setting branch /leaf address? I mean, apart from the the code particular to the my analysis? I guessed that MakeClass and/or MakeSelector should write a skeleton ready to access the data. I took a look on the root pages and found nothing conclusive, since all the instruction seems to be related to unamed macro. I also downloaded the new User Guide and it did not help me too. Other information: Root version: 3.05/03 OS : Linux Red Hat 8.0 In attachment it is a file describing the ntuple variables, since the tree is too big and I cannot generated a smaller one. The important branch for me is one starting with ELE (for eletrons) and ending with p_off: p -> means physics information (d stands for debug information) off -> off line processing. Thank you.
This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:10 MET