1 package org.lcsim.recon.tracking.magfield;
2
3 import org.lcsim.recon.tracking.spacegeom.CartesianPointVector;
4 import org.lcsim.recon.tracking.spacegeom.SpacePoint;
5 import org.lcsim.recon.tracking.spacegeom.SpacePointTensor;
6 import org.lcsim.recon.tracking.spacegeom.SpacePointVector;
7
8
9
10
11
12
13
14 public class ConstantMagneticField extends AbstractMagneticField
15 {
16
17 private double _Bx;
18 private double _By;
19 private double _Bz;
20
21 public ConstantMagneticField(double Bx, double By, double Bz)
22 {
23 _Bx = Bx;
24 _By = By;
25 _Bz = Bz;
26 }
27
28 @Override
29 public SpacePointVector field(SpacePoint p)
30 {
31 return new CartesianPointVector(p,_Bx, _By, _Bz);
32 }
33
34 @Override
35 public SpacePointVector field(SpacePoint p, SpacePointTensor g)
36 {
37
38 if(g != null) g = new SpacePointTensor(p);
39 return field(p);
40 }
41
42 public String toString()
43 {
44 return "Constant magnetic field with Bx= "+_Bx+" By= "+_By+" Bz= "+_Bz;
45 }
46
47 }