View Javadoc

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   * @author Norman A Graf
11   * 
12   *  @version $Id:
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          // Set gradient to zero.
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  }