Hi,
I've got several questions. They are quite independent:
1. I have two branches named EMS and JET in my tree. Actually they are
two classes with several attributs, in particular they both have
_EMF. My program is like this
JET *myjet;
EMS *myele;
// Tree and branches declarations here
TTree mytree ...
// In the loop I fill myjet and myele attributes
for
{
myjet->_EMF = something;
...
myele->_EMF = something else;
mytree->Fill();
}
The problem is that when I open my tree up, I find that in two blocks
EMS and JET I have exactly the same plots for EMF values. When I change
_EMS to _jEMF and _eEMF in JET and EMS class definitions respectively,
it's OK back.
So why it works like this?
2. In the second question I still have the same above structure, with a
little difference: sometimes I do NOT want myele branch to be
filled. The reason is simple: in hadronic colliders you have in data a
lot of jets but not always electrons. I still want to collect data in
the same root-tuple. But when myele attributes are not initialised,
the method myTree->Fill() takes any value to put into EMS branch. I
tried to get around this bug by two ways inside the loop
- // If I want to fill only JET branch
mytree->GetBranch("JET")->Fill();
It doesn't work: no entries have been saved.
- // If I want to fill only JET branch
mytree->SetBranchStatus("EMS",0);
mytree->Fill();
mytree->SetBranchStatus("*",1);
// If I want to fill all branches
mytree->Fill();
It fills everything up as usual.
Can someone help me?
Thanks,
Tuan
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:54 MET