Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add LPM effect for photopair, fixes for BremsLPM #336

Merged
merged 6 commits into from Jan 5, 2023

Conversation

Jean1995
Copy link
Member

@Jean1995 Jean1995 commented Jan 4, 2023

New PR for #334 but with clean history.

This PR adds the LPM effect for pair production of electron-positron pairs by photons.

Furthermore, this PR fixes the following issues in the implementation of the LPM effect in Bremsstrahlung:

  1. An inconsistent definition of eLPM has been fixed
  2. A more general definition of s1 is now used, to that the BremsLPM parametrization is not only valid for muons, but also for other particles (electrons/positrons/taus)

@Jean1995 Jean1995 marked this pull request as ready for review January 4, 2023 15:01
@Jean1995
Copy link
Member Author

Jean1995 commented Jan 4, 2023

Enclosed are some exemplary comparisons of Bremsstrahlung dEdx between this PR and the current master:

brems_MuMinus_ice

brems_EMinus_lead

brems_TauMinus_ice

@@ -86,5 +95,21 @@ namespace crosssection {
template <> struct ParametrizationId<PhotoPairKochMotz> {
static constexpr size_t value = 1000000013;
};

// LPM effect object
class PhotoPairLPM {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do we really need this constructor with mol_density, mass_density, sum_charge, eLPM? Some variables are not really intuitive.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

eLPM is a computationally expensive calculation that needs to be executed only once, so we should save it.
mol_density_ and sum_charge_ are medium variables. Since those are the only two variables we need for the calcluations, we save them to avoid saving the whole medium in the PhotoPairLPM object. So I believe these three values are useful to save. Their names are just adopted from what they are called in the Medium class (although I agree that the variable names are not always well-chosen, but for the sake of consistency, I would use the same names here).

mass_density_ is only used in the constructor, so I would agree that we don't need to save them as a private member of the object. But in my opinion, this is the only change I would make to the constructor.

Add tests for KochMotz parametrization to PhotoPair_TEST
@Jean1995
Copy link
Member Author

Jean1995 commented Jan 5, 2023

As an additional validiation, I have created plots where I compare the new dEdx results to the results from Polityko et al:

brems_MuMinus_iron

brems_MuMinus_water

Note that the energies used in their paper only go up to 1e18 MeV, but it is sufficient to see that the agreement is now much better.

@Jean1995 Jean1995 merged commit 3e1a97b into master Jan 5, 2023
@Jean1995 Jean1995 deleted the add_photopairlpm_and_fix_bremslpm branch January 5, 2023 15:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants