private double[] CalculateFullSuppressionFactors( BottomiumVector qgpSuppressionFactors ) { BottomiumCascade cascade = new BottomiumCascade(DimuonDecaysFrompp); BottomiumVector ppDimuonDecays = cascade.GetNormalizedProtonProtonDimuonDecays(); double ppResult1S = ppDimuonDecays[BottomiumState.Y1S]; double ppResult2S = ppDimuonDecays[BottomiumState.Y2S]; double ppResult3S = ppDimuonDecays[BottomiumState.Y3S]; BottomiumVector heavyIonDimuonDecays = cascade.CalculateDimuonDecays(qgpSuppressionFactors); double heavyIonResult1S = heavyIonDimuonDecays[BottomiumState.Y1S]; double heavyIonResult2S = heavyIonDimuonDecays[BottomiumState.Y2S]; double heavyIonResult3S = heavyIonDimuonDecays[BottomiumState.Y3S]; return(new double[] { heavyIonResult1S / ppResult1S, heavyIonResult2S / ppResult2S, heavyIonResult3S / ppResult3S, (heavyIonResult2S / heavyIonResult1S) / (ppResult2S / ppResult1S), (heavyIonResult3S / heavyIonResult1S) / (ppResult3S / ppResult1S) }); }
private static void AssertCorrectProtonProtonDimuonDecays( BottomiumVector ppDimuonDecays ) { BottomiumVector expected = BottomiumCascade.GetNormalizedProtonProtonDimuonDecays(); foreach (BottomiumState state in Enum.GetValues(typeof(BottomiumState))) { AssertHelper.AssertApproximatelyEqual(expected[state], ppDimuonDecays[state]); } }
private static void AssertCorrectY1SFeedDownFractions( BottomiumVector feedDownFractions ) { AssertHelper.AssertApproximatelyEqual(0.34302571070019483, feedDownFractions[BottomiumState.Y1S]); AssertHelper.AssertApproximatelyEqual(0.271, feedDownFractions[BottomiumState.x1P]); AssertHelper.AssertApproximatelyEqual(0.19033036269430051, feedDownFractions[BottomiumState.Y2S]); AssertHelper.AssertApproximatelyEqual(0.105, feedDownFractions[BottomiumState.x2P]); AssertHelper.AssertApproximatelyEqual(0.030643926605504589, feedDownFractions[BottomiumState.Y3S]); AssertHelper.AssertApproximatelyEqual(0.06, feedDownFractions[BottomiumState.x3P]); }
private static void AssertCorrectInitialQQPopulations( BottomiumVector initialQQPopulations ) { AssertHelper.AssertApproximatelyEqual(13.831681883072372, initialQQPopulations[BottomiumState.Y1S]); AssertHelper.AssertApproximatelyEqual(43.694709398023143, initialQQPopulations[BottomiumState.x1P]); AssertHelper.AssertApproximatelyEqual(17.730737923019692, initialQQPopulations[BottomiumState.Y2S]); AssertHelper.AssertApproximatelyEqual(45.626563577477185, initialQQPopulations[BottomiumState.x2P]); AssertHelper.AssertApproximatelyEqual(10.893164282464252, initialQQPopulations[BottomiumState.Y3S]); AssertHelper.AssertApproximatelyEqual(7.6588791939455159E+99, initialQQPopulations[BottomiumState.x3P]); }
public void FeedDownCascadeReproducesProtonProtonDimuonDecays() { BottomiumVector qgpSuppressionFactors = new BottomiumVector(); foreach (BottomiumState state in Enum.GetValues(typeof(BottomiumState))) { qgpSuppressionFactors[state] = 1; } BottomiumVector ppDimuonDecays = BottomiumCascade.CalculateDimuonDecays(qgpSuppressionFactors); AssertCorrectProtonProtonDimuonDecays(ppDimuonDecays); }
public void CalculateY1SFeedDownFractions() { BottomiumVector feedDownFractions = BottomiumCascade.CalculateY1SFeedDownFractions(); AssertCorrectY1SFeedDownFractions(feedDownFractions); }
public void CalculateInitialQQPopulations() { BottomiumVector initialQQPopulations = BottomiumCascade.CalculateInitialQQPopulations(); AssertCorrectInitialQQPopulations(initialQQPopulations); }