20 int32_t runnumber = 1;
21 jcalib = japp->GetJCalibration(runnumber);
22 if(GetValues(namepath, runnumber)==0){
23 _DBG_<<
"Error getting JCalibration object for magnetic field!"<<endl;
33 this->jcalib = jcalib;
34 if(GetValues(namepath)==0){
35 _DBG_<<
"Error getting JCalibration object for magnetic field!"<<endl;
69 cout<<
"Reading Constant Magnetic field values from "<<namepath<<
" ..."<<endl;
70 map<string,double> vals;
71 jcalib->Get(namepath, vals);
72 if(vals.size()==0)
return 0;
77 cout<<
" Br="<<Br<<
" Bphi="<<Bphi<<
" Bz="<<Bz<<endl;
87 double &dBxdx,
double &dBxdy,
89 double &dBydx,
double &dBydy,
91 double &dBzdx,
double &dBzdy,
119 double r =
sqrt(x*x + y*y);
120 double cos_phi = x/r;
121 double sin_phi = y/r;
145 double r = pos.Perp();
148 double cos_phi = x/r;
149 double sin_phi = y/r;
154 Bout.SetXYZ(Br*cos_phi,Br*sin_phi,this->Bz);
156 Bout.SetXYZ(0.0,0.0,this->Bz);
162 double &Bx,
double &By,
double &Bz)
164 GetField(x,y,z,Bx,By,Bz);
169 double &Bx,
double &By,
171 double &dBxdx,
double &dBxdy,
173 double &dBydx,
double &dBydy,
175 double &dBzdx,
double &dBzdy,
176 double &dBzdz)
const{
177 GetField(x,y,z,Bx,By,Bz);
int GetValues(string namepath, int32_t runnumber=1, string context="")
virtual ~DMagneticFieldMapConst()
void GetFieldBicubic(double x, double y, double z, double &Bx, double &By, double &Bz) const
void GetFieldGradient(double x, double y, double z, double &dBxdx, double &dBxdy, double &dBxdz, double &dBydx, double &dBydy, double &dBydz, double &dBzdx, double &dBzdy, double &dBzdz) const
void GetFieldAndGradient(double x, double y, double z, double &Bx, double &By, double &Bz, double &dBxdx, double &dBxdy, double &dBxdz, double &dBydx, double &dBydy, double &dBydz, double &dBzdx, double &dBzdy, double &dBzdz) const
DMagneticFieldMapConst(JApplication *japp, string namepath="Magnets/Solenoid/solenoid_const")
void GetField(const DVector3 &pos, DVector3 &Bout) const