00001 #include "MagneticField/Interpolation/src/ZReflectedMFGrid.h"
00002 #include "MagneticField/VolumeGeometry/interface/MagExceptions.h"
00003
00004 #include <iostream>
00005
00006 using namespace std;
00007
00008 ZReflectedMFGrid::ZReflectedMFGrid( const GloballyPositioned<float>& vol,
00009 MFGrid* sectorGrid) :
00010 MFGrid(vol), theSectorGrid( sectorGrid)
00011
00012 {}
00013
00014 ZReflectedMFGrid::~ZReflectedMFGrid()
00015 {
00016 delete theSectorGrid;
00017 }
00018
00019 MFGrid::LocalVector ZReflectedMFGrid::valueInTesla( const LocalPoint& p) const
00020 {
00021
00022 LocalPoint mirrorp( p.x(), p.y(), -p.z());
00023 LocalVector mirrorB = theSectorGrid->valueInTesla( mirrorp);
00024 return LocalVector( -mirrorB.x(), -mirrorB.y(), mirrorB.z());
00025 }
00026
00027 void ZReflectedMFGrid::throwUp( const std::string& message) const
00028 {
00029 std::cout << "Throwing exception " << message << std::endl;
00030 throw MagGeometryError(message);
00031 }
00032 void ZReflectedMFGrid::toGridFrame( const LocalPoint& p, double& a, double& b, double& c) const
00033 {
00034 throwUp("Not implemented yet");
00035 }
00036
00037 MFGrid::LocalPoint ZReflectedMFGrid::fromGridFrame( double a, double b, double c) const
00038 {
00039 throwUp("Not implemented yet");
00040 return LocalPoint();
00041 }
00042
00043 vector<int> ZReflectedMFGrid::dimensions() const {return theSectorGrid->dimensions();}
00044
00045 MFGrid::LocalPoint ZReflectedMFGrid::nodePosition( int i, int j, int k) const
00046 {
00047 throwUp("Not implemented yet");
00048 return LocalPoint();
00049 }
00050
00051 MFGrid::LocalVector ZReflectedMFGrid::nodeValue( int i, int j, int k) const
00052 {
00053 throwUp("Not implemented yet");
00054 return LocalVector();
00055 }