Hall-D Software
alpha
|
#include <DMagneticFieldMapFineMesh.h>
Classes | |
struct | DBfieldCylindrical_t |
struct | DBfieldPoint_t |
Public Member Functions | |
DMagneticFieldMapFineMesh (JApplication *japp, int32_t runnumber=1, string namepath="Magnets/Solenoid/solenoid_1350_poisson_20130925") | |
DMagneticFieldMapFineMesh (JCalibration *jcalib, string namepath="Magnets/Solenoid/solenoid_1350_poisson_20130925", int32_t runnumber=1) | |
virtual | ~DMagneticFieldMapFineMesh () |
int | ReadMap (string namepath, int32_t runnumber=1, string context="") |
void | GetField (const DVector3 &pos, DVector3 &Bout) const |
void | GetField (double x, double y, double z, double &Bx, double &By, double &Bz, int method=0) const |
double | GetBz (double x, double y, double z) 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 | GetFieldBicubic (double x, double y, double z, double &Bx, double &By, double &Bz) 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 |
void | GetFineMeshMap (string namepath, int32_t runnumber) |
void | WriteEvioFile (string evioFileName) |
void | ReadEvioFile (string evioFileName) |
void | GenerateFineMesh (void) |
Protected Attributes | |
JCalibration * | jcalib |
JResourceManager * | jresman |
vector< vector< vector < DBfieldPoint_t > > > | Btable |
float | xmin |
float | xmax |
float | ymin |
float | ymax |
float | zmin |
float | zmax |
int | Nx |
int | Ny |
int | Nz |
double | dx |
double | dy |
double | dz |
double | one_over_dx |
double | one_over_dz |
vector< vector < DBfieldCylindrical_t > > | mBfine |
double | zminFine |
double | rminFine |
double | zmaxFine |
double | rmaxFine |
double | drFine |
double | dzFine |
unsigned int | NrFine |
unsigned int | NzFine |
double | zscale |
double | rscale |
Private Member Functions | |
void | InterpolateField (double r, double z, double &Br, double &Bz, double &dBrdr, double &dBrdz, double &dBzdr, double &dBzdz) const |
Definition at line 21 of file DMagneticFieldMapFineMesh.h.
DMagneticFieldMapFineMesh::DMagneticFieldMapFineMesh | ( | JApplication * | japp, |
int32_t | runnumber = 1 , |
||
string | namepath = "Magnets/Solenoid/solenoid_1350_poisson_20130925" |
||
) |
Definition at line 25 of file DMagneticFieldMapFineMesh.cc.
References _DBG_.
DMagneticFieldMapFineMesh::DMagneticFieldMapFineMesh | ( | JCalibration * | jcalib, |
string | namepath = "Magnets/Solenoid/solenoid_1350_poisson_20130925" , |
||
int32_t | runnumber = 1 |
||
) |
Definition at line 45 of file DMagneticFieldMapFineMesh.cc.
|
virtual |
Definition at line 54 of file DMagneticFieldMapFineMesh.cc.
void DMagneticFieldMapFineMesh::GenerateFineMesh | ( | void | ) |
Definition at line 896 of file DMagneticFieldMapFineMesh.cc.
References DMagneticFieldMapFineMesh::DBfieldCylindrical_t::Br, DMagneticFieldMapFineMesh::DBfieldCylindrical_t::Bz, DMagneticFieldMapFineMesh::DBfieldCylindrical_t::dBrdr, DMagneticFieldMapFineMesh::DBfieldCylindrical_t::dBrdz, DMagneticFieldMapFineMesh::DBfieldCylindrical_t::dBzdr, DMagneticFieldMapFineMesh::DBfieldCylindrical_t::dBzdz, temp, and x.
|
virtual |
Implements DMagneticFieldMap.
Definition at line 814 of file DMagneticFieldMapFineMesh.cc.
References DMagneticFieldMapFineMesh::DBfieldPoint_t::Bz, DMagneticFieldMapFineMesh::DBfieldPoint_t::dBzdx, DMagneticFieldMapFineMesh::DBfieldPoint_t::dBzdz, Nz, sqrt(), DMagneticFieldMapFineMesh::DBfieldPoint_t::x, DMagneticFieldMapFineMesh::DBfieldPoint_t::z, zmax, and zmin.
This calculates the magnetic field at an arbitrary point in space using the field map read from the calibaration database. It interpolates between grid points using the gradient values calculated in ReadMap (called from the constructor).
Implements DMagneticFieldMap.
Definition at line 743 of file DMagneticFieldMapFineMesh.cc.
References _DBG_, DMagneticFieldMapFineMesh::DBfieldCylindrical_t::Br, DMagneticFieldMapFineMesh::DBfieldPoint_t::Bx, DMagneticFieldMapFineMesh::DBfieldPoint_t::Bz, DMagneticFieldMapFineMesh::DBfieldCylindrical_t::Bz, DMagneticFieldMapFineMesh::DBfieldPoint_t::dBxdx, DMagneticFieldMapFineMesh::DBfieldPoint_t::dBxdz, DMagneticFieldMapFineMesh::DBfieldPoint_t::dBzdx, DMagneticFieldMapFineMesh::DBfieldPoint_t::dBzdz, Nz, DMagneticFieldMapFineMesh::DBfieldPoint_t::x, DMagneticFieldMapFineMesh::DBfieldPoint_t::z, zmax, and zmin.
|
virtual |
This calculates the magnetic field at an arbitrary point in space using the field map read from the calibaration database. It interpolates between grid points using the gradient values calculated in ReadMap (called from the constructor).
Implements DMagneticFieldMap.
Definition at line 673 of file DMagneticFieldMapFineMesh.cc.
References _DBG_, DMagneticFieldMapFineMesh::DBfieldCylindrical_t::Br, DMagneticFieldMapFineMesh::DBfieldPoint_t::Bx, DMagneticFieldMapFineMesh::DBfieldPoint_t::Bz, DMagneticFieldMapFineMesh::DBfieldCylindrical_t::Bz, DMagneticFieldMapFineMesh::DBfieldPoint_t::dBxdx, DMagneticFieldMapFineMesh::DBfieldPoint_t::dBxdz, DMagneticFieldMapFineMesh::DBfieldPoint_t::dBzdx, DMagneticFieldMapFineMesh::DBfieldPoint_t::dBzdz, Nz, sqrt(), DMagneticFieldMapFineMesh::DBfieldPoint_t::x, DMagneticFieldMapFineMesh::DBfieldPoint_t::z, zmax, and zmin.
|
virtual |
Implements DMagneticFieldMap.
Definition at line 525 of file DMagneticFieldMapFineMesh.cc.
References DMagneticFieldMapFineMesh::DBfieldCylindrical_t::Br, DMagneticFieldMapFineMesh::DBfieldPoint_t::Bx, DMagneticFieldMapFineMesh::DBfieldPoint_t::Bz, DMagneticFieldMapFineMesh::DBfieldCylindrical_t::Bz, DMagneticFieldMapFineMesh::DBfieldCylindrical_t::dBrdr, DMagneticFieldMapFineMesh::DBfieldCylindrical_t::dBrdz, DMagneticFieldMapFineMesh::DBfieldPoint_t::dBxdx, DMagneticFieldMapFineMesh::DBfieldPoint_t::dBxdz, DMagneticFieldMapFineMesh::DBfieldCylindrical_t::dBzdr, DMagneticFieldMapFineMesh::DBfieldPoint_t::dBzdx, DMagneticFieldMapFineMesh::DBfieldPoint_t::dBzdz, DMagneticFieldMapFineMesh::DBfieldCylindrical_t::dBzdz, Nz, sqrt(), DMagneticFieldMapFineMesh::DBfieldPoint_t::x, DMagneticFieldMapFineMesh::DBfieldPoint_t::z, zmax, and zmin.
|
virtual |
Implements DMagneticFieldMap.
Definition at line 253 of file DMagneticFieldMapFineMesh.cc.
References DMagneticFieldMapFineMesh::DBfieldPoint_t::Bx, DMagneticFieldMapFineMesh::DBfieldPoint_t::Bz, DMagneticFieldMapFineMesh::DBfieldPoint_t::dBxdx, DMagneticFieldMapFineMesh::DBfieldPoint_t::dBxdxdz, DMagneticFieldMapFineMesh::DBfieldPoint_t::dBxdz, DMagneticFieldMapFineMesh::DBfieldPoint_t::dBzdx, DMagneticFieldMapFineMesh::DBfieldPoint_t::dBzdxdz, DMagneticFieldMapFineMesh::DBfieldPoint_t::dBzdz, Nz, sqrt(), temp, u, and zmin.
|
virtual |
Implements DMagneticFieldMap.
Definition at line 623 of file DMagneticFieldMapFineMesh.cc.
References DMagneticFieldMapFineMesh::DBfieldPoint_t::dBxdx, DMagneticFieldMapFineMesh::DBfieldPoint_t::dBxdz, DMagneticFieldMapFineMesh::DBfieldPoint_t::dBzdx, DMagneticFieldMapFineMesh::DBfieldPoint_t::dBzdz, Nz, sqrt(), and zmin.
void DMagneticFieldMapFineMesh::GetFineMeshMap | ( | string | namepath, |
int32_t | runnumber | ||
) |
Definition at line 852 of file DMagneticFieldMapFineMesh.cc.
References e, and evioFileName.
|
private |
Definition at line 399 of file DMagneticFieldMapFineMesh.cc.
References DMagneticFieldMapFineMesh::DBfieldPoint_t::Bx, DMagneticFieldMapFineMesh::DBfieldPoint_t::Bz, DMagneticFieldMapFineMesh::DBfieldPoint_t::dBxdx, DMagneticFieldMapFineMesh::DBfieldPoint_t::dBxdxdz, DMagneticFieldMapFineMesh::DBfieldPoint_t::dBxdz, DMagneticFieldMapFineMesh::DBfieldPoint_t::dBzdx, DMagneticFieldMapFineMesh::DBfieldPoint_t::dBzdxdz, DMagneticFieldMapFineMesh::DBfieldPoint_t::dBzdz, Nz, temp, u, and zmin.
void DMagneticFieldMapFineMesh::ReadEvioFile | ( | string | evioFileName | ) |
Definition at line 1038 of file DMagneticFieldMapFineMesh.cc.
References HDEVIO::err_code, HDEVIO::err_mess, HDEVIO::HDEVIO_OK, HDEVIO::HDEVIO_USER_BUFFER_TOO_SMALL, HDEVIO::is_open, HDEVIO::last_event_len, and HDEVIO::readNoFileBuff().
int DMagneticFieldMapFineMesh::ReadMap | ( | string | namepath, |
int32_t | runnumber = 1 , |
||
string | context = "" |
||
) |
Read the magnetic field map in from the calibration database. This will read in the map and figure out the number of grid points in each direction (x,y, and z) and the range in each. The gradiant of the field is calculated for all but the most exterior points and saved to use in later calls to GetField(...).
Definition at line 62 of file DMagneticFieldMapFineMesh.cc.
References _DBG_, DMagneticFieldMapFineMesh::DBfieldPoint_t::Bx, DMagneticFieldMapFineMesh::DBfieldPoint_t::By, DMagneticFieldMapFineMesh::DBfieldPoint_t::Bz, DMagneticFieldMapFineMesh::DBfieldPoint_t::dBxdx, DMagneticFieldMapFineMesh::DBfieldPoint_t::dBxdxdz, DMagneticFieldMapFineMesh::DBfieldPoint_t::dBxdz, DMagneticFieldMapFineMesh::DBfieldPoint_t::dBydx, DMagneticFieldMapFineMesh::DBfieldPoint_t::dBydz, DMagneticFieldMapFineMesh::DBfieldPoint_t::dBzdx, DMagneticFieldMapFineMesh::DBfieldPoint_t::dBzdxdz, DMagneticFieldMapFineMesh::DBfieldPoint_t::dBzdz, Nz, x, DMagneticFieldMapFineMesh::DBfieldPoint_t::x, DMagneticFieldMapFineMesh::DBfieldPoint_t::y, y, ymax, ymin, DMagneticFieldMapFineMesh::DBfieldPoint_t::z, zmax, and zmin.
void DMagneticFieldMapFineMesh::WriteEvioFile | ( | string | evioFileName | ) |
Definition at line 923 of file DMagneticFieldMapFineMesh.cc.
|
protected |
Definition at line 75 of file DMagneticFieldMapFineMesh.h.
|
protected |
Definition at line 83 of file DMagneticFieldMapFineMesh.h.
|
protected |
Definition at line 79 of file DMagneticFieldMapFineMesh.h.
|
protected |
Definition at line 79 of file DMagneticFieldMapFineMesh.h.
|
protected |
Definition at line 79 of file DMagneticFieldMapFineMesh.h.
|
protected |
Definition at line 83 of file DMagneticFieldMapFineMesh.h.
|
protected |
Definition at line 72 of file DMagneticFieldMapFineMesh.h.
|
protected |
Definition at line 73 of file DMagneticFieldMapFineMesh.h.
|
protected |
Definition at line 82 of file DMagneticFieldMapFineMesh.h.
|
protected |
Definition at line 84 of file DMagneticFieldMapFineMesh.h.
|
protected |
Definition at line 78 of file DMagneticFieldMapFineMesh.h.
|
protected |
Definition at line 78 of file DMagneticFieldMapFineMesh.h.
|
protected |
Definition at line 78 of file DMagneticFieldMapFineMesh.h.
|
protected |
Definition at line 84 of file DMagneticFieldMapFineMesh.h.
|
protected |
Definition at line 80 of file DMagneticFieldMapFineMesh.h.
|
protected |
Definition at line 80 of file DMagneticFieldMapFineMesh.h.
|
protected |
Definition at line 83 of file DMagneticFieldMapFineMesh.h.
|
protected |
Definition at line 83 of file DMagneticFieldMapFineMesh.h.
|
protected |
Definition at line 85 of file DMagneticFieldMapFineMesh.h.
|
protected |
Definition at line 77 of file DMagneticFieldMapFineMesh.h.
|
protected |
Definition at line 77 of file DMagneticFieldMapFineMesh.h.
|
protected |
Definition at line 77 of file DMagneticFieldMapFineMesh.h.
|
protected |
Definition at line 77 of file DMagneticFieldMapFineMesh.h.
|
protected |
Definition at line 77 of file DMagneticFieldMapFineMesh.h.
|
protected |
Definition at line 83 of file DMagneticFieldMapFineMesh.h.
|
protected |
Definition at line 77 of file DMagneticFieldMapFineMesh.h.
|
protected |
Definition at line 83 of file DMagneticFieldMapFineMesh.h.
|
protected |
Definition at line 85 of file DMagneticFieldMapFineMesh.h.