dFlatTreeInterface Doesn't Fill PIDFOM for Charged Particles

6 views
Skip to first unread message

Phoebe Sharp

unread,
Mar 5, 2025, 12:58:29 PMMar 5
to GlueX Software Help

Hello,

I'm trying to fill a flattree from my DSelector, but when I look at my charged particle (pip), my pip_pid_fom branch is always 0.
I can write out each charged particle PID FOM to their own branches with non-zero results that make sense to me.
I do that with this line: double pip_PIDFOM = dPiPlusWrapper->Get_PIDFOM();

The default flattree uses this line.

Notice on the link above before the filling of the branch, there is an if-statement "if(dTreeInterface->Get_Branch(locEventBranchPrefix + "__PIDFOM") != NULL)". This will always be false because the parent tree only has the "ChargedHypo__PIDFOM" branch.

Manually, I use the dComboWrapper to access the "ChargedHypo" branch, which properly extracts the CL for each of my particles.
The bug is the default filling of the flattree (link above), because the flattree should give me a similar results as how I've manualy written it out.

I don't know how to generalize the solution, if it is just removing the if-statement or if something else is needed to extract the value properly. I think this should be fixed. Otherwise, everyone that uses a flattree will have a branch that does not work as expected.

I have checked with other people, and they see this issue as well. They do not see the necessary branches produced in the output of the reaction filter trees to pass the if-statement. If you want to reproduce my error, you can find my DSelector and a copy of the output flattree here: /work/halld2/home/psharp/git_issue/


Thank you for your help,

Phoebe

Github issue submission

Reply all
Reply to author
Forward
0 new messages