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) }); }
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); }