numass integrator density correction
This commit is contained in:
parent
0959a609bb
commit
20dad21887
@ -40,9 +40,9 @@ import hep.dataforge.tables.MapPoint;
|
||||
import hep.dataforge.tables.Table;
|
||||
import hep.dataforge.tables.XYAdapter;
|
||||
import hep.dataforge.values.NamedValueSet;
|
||||
import inr.numass.NumassIntegrator;
|
||||
import inr.numass.models.ExperimentalVariableLossSpectrum;
|
||||
import inr.numass.models.LossCalculator;
|
||||
import inr.numass.utils.NumassIntegrator;
|
||||
import org.apache.commons.math3.analysis.UnivariateFunction;
|
||||
import org.apache.commons.math3.analysis.interpolation.LinearInterpolator;
|
||||
import org.apache.commons.math3.analysis.interpolation.UnivariateInterpolator;
|
||||
|
@ -7,8 +7,7 @@ package inr.numass.models;
|
||||
|
||||
import hep.dataforge.stat.parametric.ParametricFunction;
|
||||
import hep.dataforge.values.NamedValueSet;
|
||||
import inr.numass.NumassIntegrator;
|
||||
import inr.numass.Numass;
|
||||
import inr.numass.utils.NumassIntegrator;
|
||||
import inr.numass.utils.TritiumUtils;
|
||||
import org.apache.commons.math3.analysis.UnivariateFunction;
|
||||
|
||||
|
@ -16,15 +16,13 @@
|
||||
package inr.numass.models;
|
||||
|
||||
import hep.dataforge.exceptions.NotDefinedException;
|
||||
import hep.dataforge.stat.parametric.AbstractParametricFunction;
|
||||
import hep.dataforge.maths.integration.UnivariateIntegrator;
|
||||
import hep.dataforge.stat.parametric.AbstractParametricFunction;
|
||||
import hep.dataforge.values.NamedValueSet;
|
||||
import inr.numass.NumassIntegrator;
|
||||
import static java.lang.Math.exp;
|
||||
import static java.lang.Math.sqrt;
|
||||
import inr.numass.utils.NumassIntegrator;
|
||||
import org.apache.commons.math3.analysis.UnivariateFunction;
|
||||
import static java.lang.Math.abs;
|
||||
import static java.lang.Math.abs;
|
||||
|
||||
import static java.lang.Math.*;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -15,7 +15,7 @@
|
||||
*/
|
||||
package inr.numass.models;
|
||||
|
||||
import inr.numass.NumassIntegrator;
|
||||
import inr.numass.utils.NumassIntegrator;
|
||||
import org.apache.commons.math3.analysis.BivariateFunction;
|
||||
import org.apache.commons.math3.analysis.UnivariateFunction;
|
||||
|
||||
|
@ -18,8 +18,7 @@ package inr.numass.models;
|
||||
import hep.dataforge.stat.parametric.AbstractParametricFunction;
|
||||
import hep.dataforge.stat.parametric.ParametricFunction;
|
||||
import hep.dataforge.values.NamedValueSet;
|
||||
import inr.numass.NumassIntegrator;
|
||||
import inr.numass.Numass;
|
||||
import inr.numass.utils.NumassIntegrator;
|
||||
import org.apache.commons.math3.analysis.BivariateFunction;
|
||||
import org.apache.commons.math3.analysis.UnivariateFunction;
|
||||
|
||||
|
@ -16,17 +16,17 @@
|
||||
package inr.numass.models;
|
||||
|
||||
import hep.dataforge.exceptions.NotDefinedException;
|
||||
import hep.dataforge.maths.integration.UnivariateIntegrator;
|
||||
import hep.dataforge.stat.parametric.AbstractParametricFunction;
|
||||
import hep.dataforge.stat.parametric.ParametricFunction;
|
||||
import hep.dataforge.maths.integration.UnivariateIntegrator;
|
||||
import hep.dataforge.values.NamedValueSet;
|
||||
import hep.dataforge.values.ValueProvider;
|
||||
import inr.numass.NumassIntegrator;
|
||||
import inr.numass.Numass;
|
||||
import java.util.List;
|
||||
import inr.numass.utils.NumassIntegrator;
|
||||
import org.apache.commons.math3.analysis.BivariateFunction;
|
||||
import org.apache.commons.math3.analysis.UnivariateFunction;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Darksnake
|
||||
|
@ -16,8 +16,8 @@ import hep.dataforge.stat.parametric.AbstractParametricBiFunction;
|
||||
import hep.dataforge.stat.parametric.AbstractParametricFunction;
|
||||
import hep.dataforge.stat.parametric.ParametricBiFunction;
|
||||
import hep.dataforge.values.NamedValueSet;
|
||||
import inr.numass.NumassIntegrator;
|
||||
import inr.numass.models.FSS;
|
||||
import inr.numass.utils.NumassIntegrator;
|
||||
import org.apache.commons.math3.analysis.UnivariateFunction;
|
||||
|
||||
import java.io.FileInputStream;
|
||||
@ -148,10 +148,17 @@ public class SterileNeutrinoSpectrum extends AbstractParametricFunction {
|
||||
}
|
||||
|
||||
UnivariateIntegrator integrator;
|
||||
if (fast && eMax - u < 500) {
|
||||
integrator = NumassIntegrator.getFastInterator();
|
||||
} else {
|
||||
integrator = NumassIntegrator.getDefaultIntegrator();
|
||||
if(fast){
|
||||
if (eMax - u < 300) {
|
||||
integrator = NumassIntegrator.getFastInterator();
|
||||
} else if(eMax - u > 2000){
|
||||
integrator = NumassIntegrator.getHighDensityIntegrator();
|
||||
} else {
|
||||
integrator = NumassIntegrator.getDefaultIntegrator();
|
||||
}
|
||||
|
||||
} else {
|
||||
integrator = NumassIntegrator.getHighDensityIntegrator();
|
||||
}
|
||||
|
||||
return integrator.integrate(eIn -> fsSource.value(eIn) * transResFunction.value(eIn, u, set), u, eMax);
|
||||
@ -196,9 +203,9 @@ public class SterileNeutrinoSpectrum extends AbstractParametricFunction {
|
||||
double secondPart;
|
||||
if (eIn > border) {
|
||||
if (fast) {
|
||||
secondPart = NumassIntegrator.getFastInterator().integrate(integrand, border, eIn);
|
||||
} else {
|
||||
secondPart = NumassIntegrator.getDefaultIntegrator().integrate(integrand, border, eIn);
|
||||
} else {
|
||||
secondPart = NumassIntegrator.getHighDensityIntegrator().integrate(integrand, border, eIn);
|
||||
}
|
||||
} else {
|
||||
secondPart = 0;
|
||||
|
@ -3,7 +3,7 @@
|
||||
* To change this template file, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
package inr.numass;
|
||||
package inr.numass.utils;
|
||||
|
||||
import hep.dataforge.maths.integration.GaussRuleIntegrator;
|
||||
import hep.dataforge.maths.integration.UnivariateIntegrator;
|
||||
@ -14,27 +14,29 @@ import hep.dataforge.maths.integration.UnivariateIntegrator;
|
||||
*/
|
||||
public class NumassIntegrator {
|
||||
|
||||
private static double mult = 1.0;
|
||||
|
||||
private static UnivariateIntegrator fastInterator;
|
||||
private static UnivariateIntegrator defaultIntegrator;
|
||||
private static UnivariateIntegrator highDensityIntegrator;
|
||||
|
||||
public static UnivariateIntegrator getFastInterator() {
|
||||
if (fastInterator == null) {
|
||||
fastInterator = new GaussRuleIntegrator(100);
|
||||
fastInterator = new GaussRuleIntegrator((int) (mult*100));
|
||||
}
|
||||
return fastInterator;
|
||||
}
|
||||
|
||||
public static UnivariateIntegrator getDefaultIntegrator() {
|
||||
if (defaultIntegrator == null) {
|
||||
defaultIntegrator = new GaussRuleIntegrator(300);
|
||||
defaultIntegrator = new GaussRuleIntegrator((int) (mult*300));
|
||||
}
|
||||
return defaultIntegrator;
|
||||
}
|
||||
|
||||
public static UnivariateIntegrator getHighDensityIntegrator() {
|
||||
if (highDensityIntegrator == null) {
|
||||
highDensityIntegrator = new GaussRuleIntegrator(500);
|
||||
highDensityIntegrator = new GaussRuleIntegrator((int) (mult*500));
|
||||
}
|
||||
return highDensityIntegrator;
|
||||
}
|
Loading…
Reference in New Issue
Block a user