Implement bethemean energy loss option. Enable optional per-material …#222
Conversation
…energy loss configuration (defaults to the global config setting).
brownd1978
left a comment
There was a problem hiding this comment.
Thanks Rob this looks great! I just have 1 quibble about an error printout.
| } else if (key == "bethemean") { | ||
| matObj->setElossMode(2); | ||
| } else { | ||
| ErrMsg(warning) << "MatMaterialList: unrecognized trailing token '" << token |
There was a problem hiding this comment.
I suggest to throw here instead. ErrMsg is a deprecated legacy class (I'll add an issue).
|
Rob, could you please paste in the output from MatEnv_unit? It gets suppressed in the automatic tests, but in this case it would be good to have this as part of the record. |
Here's the output: ==== per-material ionization energy loss (issue #221) ==== thick concrete slab 447 mm, particle muon (mass 105.66 MeV) -- energy loss in MeV (more negative = larger loss): |
|
Thanks for adding the printout Rob. Do you understand why bethemean energy loss is less than moyalmean at low momentum? Is this perhaps related to the AI review of Mu2e/Offline#1868 ? "It omits the shell correction (shellCorrection) that KinKal's own ionizationEnergyLossMPV includes. For the low-bg2 regime that matters; for the ~100 MeV electrons/muons here it's small, but the ratio f is then not a clean "same physics minus the restriction," so the comment "same density-effect KinKal uses" is only half-true." |
|
The MPV scales with eloss_xi, whereas the bethemean scales with Tmax. So for this thick target, the MPV (and thus the moyalmean) end up larger than the bethemean for low-energy muons. If you take the difference bethemean - MPV, the dominant term is ln(Tmax/eloss_xi), and Tmax is small at low momentum, whereas eloss_xi is large for a thick absorber. The implicit assumption in the moyalmean calculation in particular is that there is a very long Landau tail of high-energy-loss events, which is only true when Tmax >> eloss_xi (so not for low-momentum muons traversing a thick slab of concrete). The new implementation of bethemean in KinKal includes the shell correction (https://github.com/RobMina/KinKal/blob/068fba7f2ff9d025f00702d793a91b21da50ba6a/MatEnv/DetMaterial.cc#L167), |
|
On Thu, Jul 16, 2026 at 10:03 AM Rob Mina ***@***.***> wrote:
*RobMina* left a comment (KFTrack/KinKal#222)
<#222 (comment)>
The MPV scales with eloss_xi, whereas the bethemean does not depend on
target thickness. So for this thick target, the MPV (and thus the
moyalmean) end up larger than the bethemean for low-energy muons.
That makes sense.
If you take the difference bethemean - MPV, the dominant term is
ln(Tmax/eloss_xi), and Tmax is small at low momentum, whereas eloss_xi is
large. The implicit assumption in the moyalmean calculation in particular
is that there is a very long Landau tail of high-energy-loss events, which
is only true when Tmax >> eloss_xi (so not for low-momentum muons
traversing a thick slab of concrete).
The new implementation of bethemean in KinKal includes the shell
correction (
https://github.com/RobMina/KinKal/blob/068fba7f2ff9d025f00702d793a91b21da50ba6a/MatEnv/DetMaterial.cc#L167
),
so the AI comment is a red herring.
Good to know.
To summarize: we shouldn't use bethemean for thin materials, or moyalmean
for thick. Unfortunately the materials are defined separately from the
material objects, so we can't enforce this or automate the choice in code.
It's a rare enough case I think it's fine, so long as it's clear from the
comments.
Dave
… —
Reply to this email directly, view it on GitHub
<#222?email_source=notifications&email_token=ABAH576U3MKVBE5FW37HYHD5FEDFFA5CNFSNUABFM5UWIORPF5TWS5BNNB2WEL2JONZXKZKDN5WW2ZLOOQXTIOJZGQ2TIOBQGMZ2M4TFMFZW63VHMNXW23LFNZ2KKZLWMVXHJLDGN5XXIZLSL5RWY2LDNM#issuecomment-4994548033>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ABAH5764N2GZI7BX7HZWGDD5FEDFFAVCNFSNUABFKJSXA33TNF2G64TZHMZDIMJZHE2TENJYHNEXG43VMU5TIOBXHA3DENBQGA2KC5QC>
.
You are receiving this because you commented.Message ID:
***@***.***>
--
David Brown ***@***.***
Office Phone (510) 486-7261
Lawrence Berkeley National Lab
M/S 50R5008 (50-6026C) Berkeley, CA 94720
|
…energy loss configuration (defaults to the global config setting).
For issue #221