// // $Id: SiStrips.cpp,v 1.11 2002/05/12 23:39:15 skulik Exp $ // // File: SiStrips.cpp // Purpose: // Created: 15-DEC-1997 John Hobbs // // $Revision: 1.11 $ // // // Include files #include "SiStrips.hpp" #include #include #include using namespace std; using namespace dgs; // These accessors probably ought to be inlines SiStrips::SiStrips(float pitch, float stereo, float strip0, float nstrip, float view,double err_factor,double err_const_term): _pitch(pitch), _stereo(stereo), _strip0(strip0), _nstrip(nstrip), _view(view),_err_factor(err_factor),_err_const_term(err_const_term) {} float SiStrips::get_pitch() const {return _pitch;} float SiStrips::get_stereo_angle() const {return _stereo;} float SiStrips::get_strip0() const {return _strip0;} float SiStrips::get_nstrip() const {return _nstrip;} float SiStrips::get_view() const { return _view; } double SiStrips::get_err_scale_factor() const {return _err_factor;} double SiStrips::get_err_const_term() const {return _err_const_term;} //Constructors SiLadderStrips::SiLadderStrips(float pitch, float stereo, float strip0, float nstrip, float view, Handle location): SiStrips(pitch, stereo, strip0, nstrip, view), _location(location) {} SiLadderStrips::SiLadderStrips(float pitch, float stereo, float strip0, float nstrip, float view, double err_factor,double err_const_term,Handle location): SiStrips(pitch, stereo, strip0, nstrip, view,err_factor,err_const_term), _location(location) {} SiWedgeStrips::SiWedgeStrips(float pitch, float stereo, float strip0, float nstrip, float view, Handle location): SiStrips(pitch, stereo, strip0, nstrip, view), _location(location) {} SiWedgeStrips::SiWedgeStrips(float pitch, float stereo, float strip0, float nstrip, float view, double err_factor,double err_const_term,Handle location): SiStrips(pitch, stereo, strip0, nstrip, view,err_factor,err_const_term), _location(location) {} Handle SiLadderStrips::get_ladder_handle() const { return _location; } Handle SiWedgeStrips::get_wedge_handle() const { return _location; } // Global definitions CartesianCoordinate SiLadderStrips::get_global(const CartesianCoordinate& local_point) const { return _location->local_to_global(local_point); } CartesianCoordinate SiWedgeStrips::get_global(const CartesianCoordinate& local_point) const { return _location->local_to_global(local_point); } vector< vector > SiLadderStrips::transform_error( const float sxx, const float szz, const float sxz) const { double orgArray[9]={sxx,0.0,sxz,0.0,0.0,0.0,sxz,0.0,szz}; MatrixD orgMat (3,orgArray); MatrixD g = _location->local_to_global(orgMat); // Convert to the requested format vector< vector > errMatGlobal; for( int irow=0 ; irow<3 ; irow++ ) { vector row; for( int icol=0 ; icol<3 ; icol++ ) row.push_back(g(irow,icol)); errMatGlobal.push_back(row); } return errMatGlobal; } vector< vector > SiWedgeStrips::transform_error( const float sxx, const float szz, const float sxz) const { double orgArray[9]={sxx,0.0,sxz,0.0,0.0,0.0,sxz,0.0,szz}; MatrixD orgMat (3,orgArray); MatrixD g = _location->local_to_global(orgMat); // Convert to the requested format vector< vector > errMatGlobal; for( int irow=0 ; irow<3 ; irow++ ) { vector row; for( int icol=0 ; icol<3 ; icol++ ) row.push_back(g(irow,icol)); errMatGlobal.push_back(row); } return errMatGlobal; }