CMS 3D CMS Logo

GlobalGridWrapper.cc
Go to the documentation of this file.
1 #include "GlobalGridWrapper.h"
2 #include "MagneticFieldGrid.h"
4 
5 using namespace std;
6 
10 }
11 
14  float bx, by, bz;
15 
16  int gridType = theRealOne->gridType();
17  if (gridType == 1 || gridType == 2) {
18  // x,y,z grid
19  theRealOne->interpolateAtPoint(gp.x(), gp.y(), gp.z(), bx, by, bz);
20  } else {
21  // r,phi,z grid
22  // cout << "calling interpolateAtPoint with args "
23  // << gp.perp() << " " << gp.phi() << " " << gp.z() << endl;
24  theRealOne->interpolateAtPoint(gp.perp(), gp.phi(), gp.z(), bx, by, bz);
25  // cout << "interpolateAtPoint returned "
26  // << bx << " " << by << " " << bz << endl;
27  }
28  return LocalVector(bx, by, bz);
29 }
30 
31 void GlobalGridWrapper::dump() const {}
32 
33 void GlobalGridWrapper::toGridFrame(const LocalPoint& p, double& a, double& b, double& c) const {
34  throw MagLogicError("GlobalGridWrapper::toGridFrame not implemented yet");
35 }
36 
37 MFGrid::LocalPoint GlobalGridWrapper::fromGridFrame(double a, double b, double c) const {
38  throw MagLogicError("GlobalGridWrapper::fromGridFrame not implemented yet");
39  return LocalPoint(0, 0, 0);
40 }
41 
43  throw MagLogicError("GlobalGridWrapper::dimensions not implemented yet");
44  return Dimensions();
45 }
46 
48  throw MagLogicError("GlobalGridWrapper::nodePosition not implemented yet");
49  return LocalPoint(0, 0, 0);
50 }
51 
53  throw MagLogicError("GlobalGridWrapper::nodeValue not implemented yet");
54  return LocalVector(0, 0, 0);
55 }
GlobalPoint toGlobal(const LocalPoint &lp) const
GlobalGridWrapper(const GloballyPositioned< float > &vol, const std::string &fileName)
void load(const std::string &name)
load grid binary file
GloballyPositioned< float >::LocalPoint LocalPoint
Definition: MFGrid.h:31
int gridType()
returns value of GridType (and eventually prints the type + short description)
Dimensions dimensions() const override
const GloballyPositioned< float > & frame() const
Local reference frame.
Definition: MFGrid.h:60
LocalPoint fromGridFrame(double a, double b, double c) const override
find grid coordinates for point. For debugging and validation only.
LocalVector nodeValue(int i, int j, int k) const override
Field value at node.
void dump() const override
MagneticFieldGrid * theRealOne
GloballyPositioned< float >::GlobalPoint GlobalPoint
Definition: MFGrid.h:29
double b
Definition: hdecay.h:120
Definition: MFGrid.h:27
GloballyPositioned< float >::LocalVector LocalVector
Definition: MFGrid.h:32
void toGridFrame(const LocalPoint &p, double &a, double &b, double &c) const override
find grid coordinates for point. For debugging and validation only.
double a
Definition: hdecay.h:121
void interpolateAtPoint(double X1, double X2, double X3, float &Bx, float &By, float &Bz)
interpolates the magnetic field at input coordinate point and returns field values ...
LocalVector valueInTesla(const LocalPoint &p) const override
Interpolated field value at given point.
LocalPoint nodePosition(int i, int j, int k) const override
Position of node in local frame.