Decay classes
This merge request provides a number of changes/improvements to sim3a:
- A new, purely virtual,
Decayclass - Three new derived classes,
TripleAlphaDecay,TripleAlphaDecayBetaRecoilandTripleAlphaDecayInterference - Minor changes to the interfaces of
DecayWeight,BalamuthWeightandBalamuthMultiWeight(formerly,BalamuthMultiWaveWeight)
Previously, sim3a only had a single decay class called TripleDecay. I think the new approach provides a cleaner and improved separation of this class into smaller classes each with a more well-defined scope.
Note the two different use-case scenarios:
-
If you know the mixing ratios and relative phases, you can use
BalamuthMultiWeightcombined withTripleAlphaDecayto simulate a triple-alpha decay with two (or more) L values, saving the weight returned by the Generate() method to the output ROOT file. -
If the mixing ratio and relative phase are unknown (e.g. you want to constrain them via a Dalitz fit), you use instead
BalamuthWeightcombined withTripleAlphaDecayInterferenceand save the four values returned by the GetFactors() method to the output ROOT file.
(We can perhaps think of renaming the GetFactors() method to something a bit more informative...)