예제 #1
0
        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)
            });
        }
예제 #2
0
        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);
        }