private FireballParam CreateFireballParam()
        {
            FireballParam param = new FireballParam
            {
                BeamRapidity         = ParticleRapidity,
                DiffusenessA_fm      = DiffusenessA_fm,
                DiffusenessB_fm      = DiffusenessB_fm,
                EMFCalculationMethod = EMFCalculationMethod,
                EMFQuadratureOrder   = EMFQuadratureOrder,
                GridCellSize_fm      = GridCellSize_fm,
                GridRadius_fm        = GridRadius_fm,
                ImpactParameter_fm   = ImpactParameter_fm,
                NucleonNumberA       = NucleonNumberA,
                NucleonNumberB       = NucleonNumberB,
                NuclearRadiusA_fm    = NuclearRadiusA_fm,
                NuclearRadiusB_fm    = NuclearRadiusB_fm,
                NucleusShapeA        = NucleusShapeA,
                NucleusShapeB        = NucleusShapeB,
                ProtonNumberA        = ProtonNumberA,
                ProtonNumberB        = ProtonNumberB,
                QGPConductivity_MeV  = QGPConductivity_MeV,
                TemperatureProfile   = TemperatureProfile.NmixPHOBOS13
            };

            return(param);
        }
        private static FireballParam CreateFireballParam_PbPb()
        {
            FireballParam param = new FireballParam
            {
                BreakupTemperature_MeV      = BreakupTemperature,
                CenterOfMassEnergy_TeV      = 2.76,
                DecayWidthRetrievalFunction = DummyDecayWidthProvider.GetDummyDecayWidth,
                DiffusenessA_fm             = 0.546,
                DiffusenessB_fm             = 0.546,
                ExpansionMode                 = ExpansionMode.Transverse,
                FormationTimes_fm             = FormationTimes,
                GridCellSize_fm               = 0.4,
                GridRadius_fm                 = 10,
                ImpactParameter_fm            = 1.5,
                InitialMaximumTemperature_MeV = 550,
                NuclearRadiusA_fm             = 6.62,
                NuclearRadiusB_fm             = 6.62,
                NucleonNumberA                = 208,
                NucleonNumberB                = 208,
                NucleusShapeA                 = NucleusShape.WoodsSaxonPotential,
                NucleusShapeB                 = NucleusShape.WoodsSaxonPotential,
                ProtonNumberA                 = 82,
                ProtonNumberB                 = 82,
                TemperatureProfile            = TemperatureProfile.NmixPHOBOS13,
                ThermalTime_fm                = 0.1,
                TransverseMomenta_GeV         = new List <double> {
                    6
                },
                UseElectricField = false,
                UseMagneticField = false
            };

            return(param);
        }
示例#3
0
        public void CalculateAverageMagneticFieldStrength()
        {
            FireballParam param = CreateFireballParamForAverageFieldStrengths();
            CollisionalElectromagneticField emf = new CollisionalElectromagneticField(param);

            double result = emf.CalculateAverageMagneticFieldStrength(0.4, QGPConductivity);

            AssertHelper.AssertApproximatelyEqual(0.16239, result, 5);
        }
示例#4
0
        private Fireball.Fireball CreateFireballToDetermineMaxLifeTime()
        {
            FireballParam param = CreateFireballParam();

            param.ImpactParameter_fm    = 0;
            param.TransverseMomenta_GeV = new List <double> {
                0
            };

            return(new Fireball.Fireball(param));
        }
示例#5
0
        private static FireballParam CreateFireballParamForAverageFieldStrengths()
        {
            FireballParam param = CreateFireballParam();

            param.EMFQuadratureOrder = 8;
            param.GridCellSize_fm    = 1;
            param.GridRadius_fm      = 10;
            param.TemperatureProfile = TemperatureProfile.NmixPHOBOS13;

            return(param);
        }
示例#6
0
        private Fireball.Fireball CreateFireballToCalcDirectPionDecayWidth(
            double impactParam
            )
        {
            FireballParam param = CreateFireballParam();

            param.ImpactParameter_fm    = impactParam;
            param.TransverseMomenta_GeV = new List <double> {
                0
            };
            param.ExpansionMode = ExpansionMode.Longitudinal;

            return(new Fireball.Fireball(param));
        }
示例#7
0
        private static FireballParam CreateFireballParam_pPb()
        {
            FireballParam param = CreateFireballParam_PbPb();

            param.CenterOfMassEnergy_TeV = 5.02;
            param.DiffusenessA_fm        = 0;
            param.GridCellSize_fm        = 0.2;
            param.GridRadius_fm          = 5;
            param.NuclearRadiusA_fm      = 0.8775;
            param.NucleonNumberA         = 1;
            param.NucleusShapeA          = NucleusShape.GaussianDistribution;
            param.ProtonNumberA          = 1;
            param.TemperatureProfile     = TemperatureProfile.NmixALICE13;

            return(param);
        }
        /********************************************************************************************
        * Private/protected members, functions and properties
        ********************************************************************************************/

        private SpatialVector[] CalculateElectricFieldValues()
        {
            FireballParam param = CreateFireballParam();

            Nucleus.CreateNucleusPair(param, out Nucleus nucleusA, out Nucleus nucleusB);

            NucleusElectromagneticField emf = new NucleusElectromagneticField(
                param.EMFCalculationMethod,
                param.BeamRapidity,
                nucleusA,
                param.EMFQuadratureOrder);

            SpatialVector[] fieldValues = new SpatialVector[Positions.Length];
            for (int i = 0; i < Positions.Length; i++)
            {
                fieldValues[i] = emf.CalculateElectricField(
                    Time, Positions[i].X, Positions[i].Y, Positions[i].Z, QGPConductivity);
            }

            return(fieldValues);
        }
        /********************************************************************************************
        * 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));
        }
示例#10
0
        private FireballParam CreateFireballParam()
        {
            FireballParam param = new FireballParam
            {
                BreakupTemperature_MeV        = BreakupTemperature_MeV,
                CenterOfMassEnergy_TeV        = CenterOfMassEnergy_TeV,
                DiffusenessA_fm               = DiffusenessA_fm,
                DiffusenessB_fm               = DiffusenessB_fm,
                EMFCalculationMethod          = EMFCalculationMethod,
                EMFQuadratureOrder            = EMFQuadratureOrder,
                EMFUpdateInterval_fm          = EMFUpdateInterval_fm,
                ExpansionMode                 = ExpansionMode,
                FormationTimes_fm             = FormationTimes_fm,
                GridCellSize_fm               = GridCellSize_fm,
                GridRadius_fm                 = GridRadius_fm,
                ImpactParameter_fm            = ImpactParameter_fm,
                InitialMaximumTemperature_MeV = InitialMaximumTemperature_MeV,
                NuclearRadiusA_fm             = NuclearRadiusA_fm,
                NuclearRadiusB_fm             = NuclearRadiusB_fm,
                NucleonNumberA                = NucleonNumberA,
                NucleonNumberB                = NucleonNumberB,
                NucleusShapeA                 = NucleusShapeA,
                NucleusShapeB                 = NucleusShapeB,
                ProtonNumberA                 = ProtonNumberA,
                ProtonNumberB                 = ProtonNumberB,
                QGPConductivity_MeV           = QGPConductivity_MeV,
                QGPFormationTemperature_MeV   = QGPFormationTemperature_MeV,
                TemperatureProfile            = TemperatureProfile,
                ThermalTime_fm                = ThermalTime_fm,
                TransverseMomenta_GeV         = TransverseMomenta_GeV,
                UseElectricField              = UseElectricField,
                UseMagneticField              = UseMagneticField
            };

            QQDataProvider provider = CreateQQDataProvider();

            param.DecayWidthRetrievalFunction = provider.GetInMediumDecayWidth;

            return(param);
        }
示例#11
0
        private List <List <double> > CreateNucleusElectricFieldStrengthInLCFDataList()
        {
            List <List <double> > dataList = new List <List <double> >();

            FireballParam param = CreateFireballParam();

            List <double> rapidityValues       = GetLinearAbscissaList(-8, 8, Samples);
            List <double> radialDistanceValues = GetLinearAbscissaList(0, 25, Samples);

            SurfacePlotFunction function = (rapidity, radialDistance) =>
            {
                Nucleus.CreateNucleusPair(param, out Nucleus nucleusA, out Nucleus nucleusB);

                NucleusElectromagneticField emf = new NucleusElectromagneticField(
                    param.EMFCalculationMethod,
                    ParticleRapidity,
                    nucleusA,
                    EMFQuadratureOrder);

                return(EMFNormalization * emf.CalculateElectricFieldInLCF(
                           FixedTime, radialDistance, 0, rapidity, QGPConductivity_MeV).Norm);
            };
        private static FireballParam CreateFireballParam()
        {
            FireballParam param = new FireballParam
            {
                CenterOfMassEnergy_TeV = 2.76,
                DiffusenessA_fm        = 0.546,
                DiffusenessB_fm        = 0.546,
                EMFCalculationMethod   = EMFCalculationMethod.DiffusionApproximation,
                EMFQuadratureOrder     = 64,
                ImpactParameter_fm     = 7,
                NuclearRadiusA_fm      = 6.62,
                NuclearRadiusB_fm      = 6.62,
                NucleonNumberA         = 208,
                NucleonNumberB         = 208,
                NucleusShapeA          = NucleusShape.WoodsSaxonPotential,
                NucleusShapeB          = NucleusShape.WoodsSaxonPotential,
                ProtonNumberA          = 82,
                ProtonNumberB          = 82,
                QGPConductivity_MeV    = 5.8
            };

            return(param);
        }
示例#13
0
        private static FireballParam CreateFireballParam_PbPb()
        {
            FireballParam param = new FireballParam
            {
                BreakupTemperature_MeV        = 160,
                CenterOfMassEnergy_TeV        = 2.76,
                DiffusenessA_fm               = 0.546,
                DiffusenessB_fm               = 0.546,
                GridCellSize_fm               = 0.4,
                GridRadius_fm                 = 10,
                InitialMaximumTemperature_MeV = 550,
                NuclearRadiusA_fm             = 6.62,
                NuclearRadiusB_fm             = 6.62,
                NucleonNumberA                = 208,
                NucleonNumberB                = 208,
                NucleusShapeA                 = NucleusShape.WoodsSaxonPotential,
                NucleusShapeB                 = NucleusShape.WoodsSaxonPotential,
                ProtonNumberA                 = 82,
                ProtonNumberB                 = 82,
                TemperatureProfile            = TemperatureProfile.NmixPHOBOS13
            };

            return(param);
        }