13 using namespace magfieldparam;
52 edm::LogWarning(
"MagneticField|FieldOutsideValidity") <<
" Point " << gp <<
" is outside the validity region of OAE85lParametrizedMagneticField";
86 float r=
sqrt(xyz[0]*xyz[0]+xyz[1]*xyz[1]);
92 float rinv=(r>0.0) ? 1.0/r : 0.0;
99 float corrr=0.00894*r*z*(az-2.2221)*(az-2.2221);
100 float corrz=-0.02996*
exp(-0.5*(az-1.9820)*(az-1.9820)/(0.78915*0.78915));
101 float br=
hb0*0.5*rat*(fu[1]-gv[1]-0.125*(fu[3]-gv[3])*rat*rat)+corrr;
102 float bz=
hb0*(fu[0]+gv[0]-(fu[2]+gv[2])*0.25*rat*rat)+corrz;
110 return 0.1*
GlobalVector(br*xyz[0]*rinv, br*xyz[1]*rinv, bz);
125 ff[2]=-3.0*u*a*ff[1];
126 ff[3]=a*ff[2]*((1.0/u)-4.0*u);
133 return (gp.
perp()<120. && fabs(gp.
z())<300.);
T getParameter(std::string const &) const
void ffunkti(float u, float *ff) const
OAE85lParametrizedMagneticField(float b0_=40.681, float a_=4.6430, float l_=15.284)
GlobalVector inTeslaUnchecked(const GlobalPoint &gp) const
GlobalVector inTesla(const GlobalPoint &gp) const
Field value ad specified global point, in Tesla.
Global3DVector GlobalVector
bool isDefined(const GlobalPoint &gp) const
True if the point is within the region where the concrete field.
virtual ~OAE85lParametrizedMagneticField()
Destructor.