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()); }
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(); }