Energy Momentum Conservation¶
Momentum is conserved in that a set of status=1 particles is fed into Geant that has the initial neutrino momentum. Momentum conservation is “easy” because whatever is leftover can be assigned to the residual nuclear system in a linear way. Energy need not be conserved because of the simplified treatment of the nuclear process. Energy conservation requires non-linear adjustments. Most QE events are “patched up” so E is conserved, but other topologies typically are not. A few events have up to 30% or more non-conservation of E. Events with high n or p multiplicities seem to most problematic. See DocDB 11291 for details.
I looked at docdb 11291, which is a nice statement of the problem (from this you can see why the problem pops out pretty clearly even to someone like me-- the energy conservation violation can be as big as 350 MeV !!!-- it is not trivial). That docdb ends with a suggestion on what to do. Has the collaboration decided to implement it? When? This matters to many groups, not just cross section! But it certainly matters for cross sections...
My impression is that GENIE’s energy conservation issues are well known to GENIE authors, but the team (with its predominance of inactive target or low resolution target clients) is not very enthusiastic about fixing things. I believe Andy may know of the best FSI interaction model to pick to do the kinematics right.
You should all know that GENIE pays careful attention to energy conservation. However, we dump energy into the residual nucleus instead of decay gammas, neutrons... and that is often confused with lack of energy conservation. GENIE now has 2 FSI codes that are tuned to the same non-neutrino data. Users should use both of them. Everything GENIE authors do is manpower-limited.
Making the final energy a little less than the initial energy is a lesser sin, for the reasons Steve gives, although one should recognize the lack of decay gammas in the model, which can and do produce signals in LAr (see Mooney talk tomorrow on Ar-39). Adding these in would be very hard because of the complicated time and energy structure. This has been done for some SN related processes via a program called MARLEY.
The greater sin is that sometimes the final GENIE energy is GREATER than the initial energy, which cannot be blamed on excitations, etc. I do not think GENIE tracks the binding energy effects well in whatever part of the event generation that is responsible for kicking out multiple protons and neutrons in the final state. Breaking the entire Ar-40 nucleus apart, which GENIE does every once in a while, costs ~340 MeV, quite significant for BNB energies.
One could drop the unphysical events. Their cross section should formally be zero because there the events are outside of physical phase space.
But this could be complicated for the following reason: GENIE “patches” QE events. You can see this in the event record through the presence of something called a “bindino” -- a GENIE thing that seems to mean “energy conservation has been patched up in this event”. Bindinos only appear in QE events, and other topologies do not seem to be patched. So one might end up over-producing QE relative to other modes.
Our ad-hoc patch would probably work for energy conservation. It iteratively puts final state nucleons back into the residual nucleus, starting with the lowest energy one. We have not written actual code to do this.
Better would be event generation within GENIE that conserves E and p at every step.