/******************************************************************************************** * Public members, functions and properties ********************************************************************************************/ public double CalculateElectromagneticField( EMFComponent component, double effectiveTime_fm, double radialDistance_fm, double conductivity_MeV ) { CalculateElectromagneticField( effectiveTime_fm, radialDistance_fm, conductivity_MeV, out double azimuthalMagneticComponent_per_fm2, out double longitudinalElectricComponent_per_fm2, out double radialElectricComponent_per_fm2); switch (component) { case EMFComponent.AzimuthalMagneticComponent: return(azimuthalMagneticComponent_per_fm2); case EMFComponent.LongitudinalElectricComponent: return(longitudinalElectricComponent_per_fm2); case EMFComponent.RadialElectricComponent: return(radialElectricComponent_per_fm2); default: throw new Exception("Invalid EMFComponent."); } }
private List <List <double> > CreatePointChargeFieldRadialDistanceDataList( EMFComponent component ) { List <List <double> > dataList = new List <List <double> >(); List <double> radialDistanceValues = GetLogarithmicAbscissaList(0.1, 100, Samples); dataList.Add(radialDistanceValues); foreach (EMFCalculationMethod method in Enum.GetValues(typeof(EMFCalculationMethod))) { PointChargeElectromagneticField emf = PointChargeElectromagneticField.Create( method, ParticleRapidity); PlotFunction fieldValue = radius => EMFNormalization * emf.CalculateElectromagneticField(component, FixedTime, radius, QGPConductivity_MeV); AddPlotFunctionLists(dataList, radialDistanceValues, fieldValue); } return(dataList); }