Decay classes
This merge request provides a number of changes/improvements to sim3a:
- A new, purely virtual,
Decay
class - Three new derived classes,
TripleAlphaDecay
,TripleAlphaDecayBetaRecoil
andTripleAlphaDecayInterference
- Minor changes to the interfaces of
DecayWeight
,BalamuthWeight
andBalamuthMultiWeight
(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
BalamuthMultiWeight
combined withTripleAlphaDecay
to 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
BalamuthWeight
combined withTripleAlphaDecayInterference
and 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...)