diff options
Diffstat (limited to 'src/main/Quadrupole.cc')
-rw-r--r-- | src/main/Quadrupole.cc | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/src/main/Quadrupole.cc b/src/main/Quadrupole.cc index 911ae18..ff0e952 100644 --- a/src/main/Quadrupole.cc +++ b/src/main/Quadrupole.cc @@ -19,14 +19,12 @@ Quadrupole::Quadrupole(const Vector3D& entry, const Vector3D& exit, double secti Quadrupole::~Quadrupole() {}; Vector3D Quadrupole::magneticFieldAt(const Vector3D& position) const { + if (!Quadrupole::contains(position)) return Vector3D::Null; Vector3D x = position - getEntryPosition(); Vector3D d = getDiagonal().unit(); Vector3D y = x - x.dot(d) * d; Vector3D u = Vector3D::k.cross(d); - if ((x.dot(d) >= 0) && ((position - getExitPosition()).dot(-d) >= 0)) - return focalizingCoefficient * (y.dot(u) * Vector3D::k + position.getZ() * u); - else - return Vector3D::Null; + return focalizingCoefficient * (y.dot(u) * Vector3D::k + position.getZ() * u); } double Quadrupole::getFocalizingCoefficient() const { |