projects/lcsim/trunk/trf/src/main/java/org/lcsim/recon/tracking/magfield
--- projects/lcsim/trunk/trf/src/main/java/org/lcsim/recon/tracking/magfield/SplineFit1DMagneticFieldMap.java 2014-06-05 19:56:03 UTC (rev 3151)
+++ projects/lcsim/trunk/trf/src/main/java/org/lcsim/recon/tracking/magfield/SplineFit1DMagneticFieldMap.java 2014-06-10 18:03:26 UTC (rev 3152)
@@ -25,6 +25,8 @@
private COORDINATE _coord;
private BVAL _bval;
+ private double _scaleFactor = 1.0;
+
public enum COORDINATE
{
@@ -76,11 +78,23 @@
public SplineFit1DMagneticFieldMap(COORDINATE coord, double[] pos, BVAL bval, double[] val)
{
+ this(coord, pos, bval, val, 1.);
+
+ }
+
+ public SplineFit1DMagneticFieldMap(COORDINATE coord, double[] pos, BVAL bval, double[] val, double scale)
+ {
_coord = coord;
_bval = bval;
_spline = _interpolator.interpolate(pos, val);
+ _scaleFactor = scale;
}
+ public void setScalefactor(double scale)
+ {
+ _scaleFactor = scale;
+ }
+
@Override
public SpacePointVector field(SpacePoint p)
{
@@ -92,7 +106,7 @@
} catch (ArgumentOutsideDomainException ex) {
ex.printStackTrace();
}
- return new CartesianPointVector(p, b[0], b[1], b[2]);
+ return new CartesianPointVector(p, _scaleFactor*b[0], _scaleFactor*b[1], _scaleFactor*b[2]);
}
@Override
@@ -103,7 +117,7 @@
public String toString()
{
- return "1D magnetic field returning " + _bval.stringVal() + " as a function of " + _coord.stringVal();
+ return "1D magnetic field returning " + _bval.stringVal() + " as a function of " + _coord.stringVal()+" with scale factor "+_scaleFactor;
}
}