/******************************************************************************************** * Constructors ********************************************************************************************/ public BinBoundaryCalculator( FireballParam fireballParam, CancellationToken cancellationToken ) { FireballParam = fireballParam.Clone(); CancellationToken = cancellationToken; }
private Fireball CreateFireball() { FireballParam param = FireballParam.Clone(); param.ImpactParameter_fm = CurrentImpactParam; return(new Fireball(param)); }
public static FireballElectromagneticField CreateFireballElectricField( FireballParam param ) { return(new FireballElectromagneticField( FireballFieldType.ElectricFieldStrength, new CoordinateSystem(param), new CollisionalElectromagneticField(param).CalculateAverageElectricFieldStrength, param.EMFUpdateInterval_fm)); }
/******************************************************************************************** * Constructors ********************************************************************************************/ public QGPSuppression( FireballParam fireballParam, List <int> numberCentralityBins, List <List <double> > impactParamsAtBinBoundaries, CancellationToken cancellationToken ) { FireballParam = fireballParam.Clone(); NumberCentralityBins = numberCentralityBins; ImpactParamsAtBinBoundaries = impactParamsAtBinBoundaries; CancellationToken = cancellationToken; FlatImpactParamsAtBinBoundaries = GetFlatImpactParams(); NumberFlatBins = FlatImpactParamsAtBinBoundaries.Count - 1; ArrayReshapingMask = GetArrayReshapingMask(); }
/******************************************************************************************** * Constructors ********************************************************************************************/ public GlauberCalculation( FireballParam param ) { Param = param.Clone(); AssertValidMembers(); InitCoordinateSystem(); InitInelasticppCrossSection(); InitNucleusAB(); InitNucleonNumberDensityFieldsAB(); InitNucleonNumberColumnDensityFieldsAB(); InitOverlapField(); InitNumberCollisionsField(); InitNumberParticipantsField(); InitTemperatureScalingField(); }
/******************************************************************************************** * Public static members, functions and properties ********************************************************************************************/ public static void CreateNucleusPair( FireballParam param, out Nucleus nucleusA, out Nucleus nucleusB ) { nucleusA = CreateNucleus( shape: param.NucleusShapeA, nucleonNumber: param.NucleonNumberA, protonNumber: param.ProtonNumberA, nuclearRadius_fm: param.NuclearRadiusA_fm, diffuseness_fm: param.DiffusenessA_fm); nucleusB = CreateNucleus( shape: param.NucleusShapeB, nucleonNumber: param.NucleonNumberB, protonNumber: param.ProtonNumberB, nuclearRadius_fm: param.NuclearRadiusB_fm, diffuseness_fm: param.DiffusenessB_fm); }
/******************************************************************************************** * Constructors ********************************************************************************************/ public CollisionalElectromagneticField( FireballParam param ) { NucleusPositionA = param.NucleusPositionA; NucleusPositionB = param.NucleusPositionB; Nucleus.CreateNucleusPair(param, out Nucleus nucleusA, out Nucleus nucleusB); NucleusEMFA = new NucleusElectromagneticField( param.EMFCalculationMethod, param.PartonPeakRapidity, nucleusA, param.EMFQuadratureOrder); NucleusEMFB = new NucleusElectromagneticField( param.EMFCalculationMethod, -param.PartonPeakRapidity, nucleusB, param.EMFQuadratureOrder); LCFFieldAverager = new LCFFieldAverager(param); }
public FireballParam Clone() { FireballParam param = new FireballParam { Nullable_CenterOfMassEnergy_TeV = Nullable_CenterOfMassEnergy_TeV, Nullable_DecayWidthRetrievalFunction = Nullable_DecayWidthRetrievalFunction, Nullable_DiffusenessA_fm = Nullable_DiffusenessA_fm, Nullable_DiffusenessB_fm = Nullable_DiffusenessB_fm, Nullable_EMFCalculationMethod = Nullable_EMFCalculationMethod, Nullable_EMFQuadratureOrder = Nullable_EMFQuadratureOrder, Nullable_EMFUpdateInterval_fm = Nullable_EMFUpdateInterval_fm, Nullable_ExpansionMode = Nullable_ExpansionMode, Nullable_FormationTimes_fm = Nullable_FormationTimes_fm, Nullable_GridCellSize_fm = Nullable_GridCellSize_fm, Nullable_GridRadius_fm = Nullable_GridRadius_fm, Nullable_ImpactParameter_fm = Nullable_ImpactParameter_fm, Nullable_InitialMaximumTemperature_MeV = Nullable_InitialMaximumTemperature_MeV, Nullable_BreakupTemperature_MeV = Nullable_BreakupTemperature_MeV, Nullable_QGPFormationTemperature_MeV = Nullable_QGPFormationTemperature_MeV, Nullable_NuclearRadiusA_fm = Nullable_NuclearRadiusA_fm, Nullable_NuclearRadiusB_fm = Nullable_NuclearRadiusB_fm, Nullable_NucleonNumberA = Nullable_NucleonNumberA, Nullable_NucleonNumberB = Nullable_NucleonNumberB, Nullable_ProtonNumberA = Nullable_ProtonNumberA, Nullable_ProtonNumberB = Nullable_ProtonNumberB, Nullable_QGPConductivity_MeV = Nullable_QGPConductivity_MeV, Nullable_NucleusShapeA = Nullable_NucleusShapeA, Nullable_NucleusShapeB = Nullable_NucleusShapeB, Nullable_TemperatureProfile = Nullable_TemperatureProfile, Nullable_ThermalTime_fm = Nullable_ThermalTime_fm, Nullable_TransverseMomenta_GeV = Nullable_TransverseMomenta_GeV, Nullable_UseElectricField = Nullable_UseElectricField, Nullable_UseMagneticField = Nullable_UseMagneticField }; return(param); }
private void GetValuesFromGlauberCalculation( double impactParam, out double ncoll, out double npart, out double dsigmadb, out double sigma ) { FireballParam param = FireballParam.Clone(); param.ImpactParameter_fm = impactParam; GlauberCalculation calc = new GlauberCalculation(param); ncoll = calc.TotalNumberCollisions; npart = calc.TotalNumberParticipants; dsigmadb = 2 * Math.PI * impactParam * (1.0 - Math.Exp(-ncoll)); sigma = param.GridCellSize_fm * dsigmadb; if (Sigmas.Count > 0) { sigma += Sigmas[Sigmas.Count - 1]; } }
/******************************************************************************************** * Constructors ********************************************************************************************/ public Fireball( FireballParam param ) { Param = param.Clone(); LifeTime = -1; // The initial step should change the temperature by 1/3 percent for pure Bjorken flow // (which is the case in the initial stages) TimeFactor = 1e-2; CurrentTime = Param.ThermalTime_fm; TimeStep = CurrentTime * TimeFactor; // = 3 * DeltaT(tF)/T(tF) * tF AssertValidMembers(); GlauberCalculation = new GlauberCalculation(Param); InitCoordinateSystem(); InitV(); InitElectromagneticField(); InitTemperature(); InitDecayWidth(); InitDampingFactor(); }
public CoordinateSystem( FireballParam param ) : this(param.GridRadius_fm, param.GridCellSize_fm, param.IsCollisionSymmetric) { }
/******************************************************************************************** * Constructors ********************************************************************************************/ public LCFFieldAverager( FireballParam param ) { Param = param.Clone(); }