private List <List <double> > CreateDecayWidthEvaluatedAtDopplerShiftedTemperatureDataList() { List <List <double> > dataList = new List <List <double> >(); List <double> cosineValues = GetLinearAbscissaList(-1, 1, NumberAveragingAngles); dataList.Add(cosineValues); QQDataProvider provider = CreateQQDataProvider(); List <DecayWidthAverager> averagers = new List <DecayWidthAverager>(); foreach (BottomiumState state in BottomiumStates) { averagers.Add(provider.CreateDecayWidthAverager(state)); } foreach (DecayWidthAverager averager in averagers) { PlotFunction function = cosine => averager.GetDecayWidth( DecayWidthAverager.GetDopplerShiftedTemperature( MediumTemperatures_MeV[0], MediumVelocities[0], cosine)); AddPlotFunctionLists(dataList, cosineValues, function); } foreach (DecayWidthAverager averager in averagers) { PlotFunction function = cosine => averager.GetDecayWidth(MediumTemperatures_MeV[0]); AddPlotFunctionLists(dataList, cosineValues, function); } return(dataList); }
private void AppendDecayWidthValue( StringBuilder list, BottomiumState state, double temperature, double velocity, double electricField, double magneticField, QQDataProvider provider ) { list.AppendFormat("{0,-20}", provider.GetInMediumDecayWidth( state, temperature, velocity, electricField, magneticField).ToUIString()); }
public void ShowDecayWidthInput() { CurrentJobTitle = "ShowDecayWidthInput"; List <List <QQDataSet> > dataSetLists = new List <List <QQDataSet> >(); foreach (BottomiumState state in BottomiumStates) { dataSetLists.Add(QQDataProvider.GetBoundStateDataSets( QQDataPathFile, PotentialTypes, state)); } LogMessages.Clear(); foreach (BottomiumState state in BottomiumStates) { LogMessages.AppendFormat("{0,16}", state.ToUIString()); } LogMessages.AppendLine(); LogMessages.AppendLine(); foreach (BottomiumState state in BottomiumStates) { LogMessages.AppendFormat("{0,6}{1,10}", "T", DecayWidthType); } LogMessages.AppendLine(); LogMessages.AppendLine(); for (int i = 0; i < dataSetLists[0].Count; i++) { foreach (List <QQDataSet> dataSetList in dataSetLists) { if (i < dataSetList.Count) { LogMessages.AppendFormat("{0,6}{1,10}", dataSetList[i].Temperature.ToUIString(), dataSetList[i].GetGamma(DecayWidthType).ToUIString()); } else { LogMessages.AppendFormat("{0,16}", ""); } } LogMessages.AppendLine(); } LogMessages.AppendLine(); LogMessages.AppendLine(); }
private void AppendDataLine( StringBuilder list, double temperature, double velocity, double electricField, double magneticField, QQDataProvider provider ) { list.AppendFormat("{0,-20}", temperature.ToUIString()); list.AppendFormat("{0,-20}", velocity.ToUIString()); foreach (BottomiumState state in BottomiumStates) { AppendDecayWidthValue( list, state, temperature, velocity, electricField, magneticField, provider); } list.AppendLine(); }
private static double CalculateSpinStateOverlap( BottomiumState tripletState, double magneticFieldStrength ) { Dictionary <int, double> hfs = QQDataProvider.GetHyperfineEnergySplitting(tripletState); Dictionary <int, double> overlap = new Dictionary <int, double>(); foreach (int j in hfs.Keys) { double helper1 = 4 * Constants.MagnetonBottomQuark_fm * magneticFieldStrength * Constants.HbarC_MeV_fm / hfs[j]; double helper2 = helper1 / (1 + Math.Sqrt(1 + helper1 * helper1)); overlap.Add(j, helper2 * helper2 / (1 + helper2 * helper2)); } return(QQDataProvider.AverageHyperfineBottomiumProperties(tripletState, overlap)); }
private string GetList( DopplerShiftEvaluationType dopplerShiftEvaluationType, ElectricDipoleAlignment electricDipoleAlignment, List <double> mediumTemperatures, List <double> mediumVelocities, double electricField, double magneticField ) { QQDataProvider provider = CreateQQDataProvider( dopplerShiftEvaluationType, electricDipoleAlignment); StringBuilder list = new StringBuilder(); AppendHeader(list, dopplerShiftEvaluationType); AppendDataLines( list, mediumTemperatures, mediumVelocities, electricField, magneticField, provider); return(list.ToString()); }
private List <List <double> > CreateEnergiesFromQQDataFileContinuousDataList() { List <List <double> > dataList = new List <List <double> >(); List <double> temperatureValues = GetLinearAbscissaList(0, 800, 800); dataList.Add(temperatureValues); QQDataProvider provider = CreateQQDataProvider(); foreach (BottomiumState state in BottomiumStates) { DecayWidthAverager averager = provider.CreateDecayWidthAverager(state); PlotFunction energyFunction = temperature => averager.GetEnergy(temperature); AddPlotFunctionLists(dataList, temperatureValues, energyFunction); } return(dataList); }
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); }
private void AppendDataLines( StringBuilder list, List <double> mediumTemperatures, List <double> mediumVelocities, double electricField, double magneticField, QQDataProvider provider ) { foreach (double temperature in mediumTemperatures) { foreach (double velocity in mediumVelocities) { AppendDataLine( list, temperature, velocity, electricField, magneticField, provider); } if ((mediumTemperatures.Count > 1) && (mediumVelocities.Count > 1)) { list.AppendLine(); } } }
private List <List <double> > CreateEnergiesFromQQDataFileDataList( BottomiumState state ) { List <List <double> > dataList = new List <List <double> >(); List <QQDataSet> dataSets = QQDataProvider.GetBoundStateDataSets( QQDataPathFile, PotentialTypes, state); List <double> temperatures = new List <double>(); List <double> energies = new List <double>(); foreach (QQDataSet dataSet in dataSets) { temperatures.Add(dataSet.Temperature); energies.Add(dataSet.Energy); } dataList.Add(temperatures); dataList.Add(energies); return(dataList); }
private List <List <double> > CreateDecayWidthsFromQQDataFileDataList( BottomiumState state ) { List <List <double> > dataList = new List <List <double> >(); List <QQDataSet> dataSets = QQDataProvider.GetBoundStateDataSets( QQDataPathFile, PotentialTypes, state); List <double> temperatures = new List <double>(); List <double> decayWidths = new List <double>(); foreach (QQDataSet dataSet in dataSets) { temperatures.Add(dataSet.Temperature); decayWidths.Add(dataSet.GetGamma(DecayWidthType)); } dataList.Add(temperatures); dataList.Add(decayWidths); return(dataList); }