From f107ad59a38713d4b298943859b2045352656509 Mon Sep 17 00:00:00 2001 From: Frank Gaede <frank.gaede@desy.de> Date: Fri, 13 Dec 2013 12:39:46 +0000 Subject: [PATCH] - fixed Soleniodal field to respect zmin and zmax --- DDCore/src/FieldTypes.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/DDCore/src/FieldTypes.cpp b/DDCore/src/FieldTypes.cpp index 3a247962a..4f0334879 100644 --- a/DDCore/src/FieldTypes.cpp +++ b/DDCore/src/FieldTypes.cpp @@ -32,11 +32,15 @@ SolenoidField::SolenoidField() /// Call to access the field components at a given location void SolenoidField::fieldComponents(const double* pos, double* field) { - double radius = sqrt(pos[0] * pos[0] + pos[1] * pos[1]); - if (radius < innerRadius) - field[2] += innerField; - else if (radius < outerRadius) - field[2] += outerField; + double z = pos[2] ; +// std::cout << " field z=" << z << " maxZ=" << maxZ << " minZ = " << minZ << std::endl ; + if( z > minZ && z < maxZ ){ + double radius = sqrt(pos[0] * pos[0] + pos[1] * pos[1]); + if (radius < innerRadius) + field[2] += innerField; + else if (radius < outerRadius) + field[2] += outerField; + } } /// Initializing constructor -- GitLab