Ejemplo n.º 1
0
        public double AverageByBottomiumDistribution(
            LCFFieldFunction function
            )
        {
            CoordinateSystem   system  = new CoordinateSystem(Param);
            GlauberCalculation glauber = new GlauberCalculation(Param);

            double[,] functionColumnDensityValues
                = new double[system.XAxis.Count, system.YAxis.Count];

            for (int i = 0; i < system.XAxis.Count; i++)
            {
                for (int j = 0; j < system.YAxis.Count; j++)
                {
                    Func <double, double> integrand
                        = rapidity => function(system.XAxis[i], system.YAxis[j], rapidity);

                    functionColumnDensityValues[i, j]
                        = AverageRapidityDependence(integrand)
                          * glauber.NumberCollisionsField[i, j];
                }
            }
            SimpleFireballField functionColumnDensity = new SimpleFireballField(
                FireballFieldType.NumberCollisions, system, functionColumnDensityValues);

            return(functionColumnDensity.IntegrateValues()
                   / glauber.NumberCollisionsField.IntegrateValues());
        }
Ejemplo n.º 2
0
        public double CalculateAverageMagneticFieldStrength(
            double properTime_fm,
            double conductivity_MeV
            )
        {
            LCFFieldFunction function = (x_fm, y_fm, rapidity) => CalculateMagneticFieldInLCF(
                properTime_fm, x_fm, y_fm, rapidity, conductivity_MeV).Norm;

            return(LCFFieldAverager.AverageByBottomiumDistribution(function));
        }
Ejemplo n.º 3
0
        /********************************************************************************************
        * Public members, functions and properties
        ********************************************************************************************/

        public double CalculateAverageSpinStateOverlap(
            BottomiumState tripletState,
            double properTime_fm
            )
        {
            FireballParam param = CreateFireballParam();

            LCFFieldFunction mixingCoefficientSquared = (x, y, rapidity) =>
            {
                CollisionalElectromagneticField emf = new CollisionalElectromagneticField(param);

                double B_per_fm2 = emf.CalculateMagneticFieldInLCF(
                    properTime_fm, x, y, rapidity, QGPConductivity_MeV).Norm;

                return(CalculateSpinStateOverlap(tripletState, B_per_fm2));
            };

            LCFFieldAverager avg = new LCFFieldAverager(param);

            return(avg.AverageByBottomiumDistribution(mixingCoefficientSquared));
        }