diff --git a/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/PeaksWorkspace.h b/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/PeaksWorkspace.h index 847c6145a157e8ba21d6ecf8359b8998084c27a2..7c080bdf0504cccc554589b9b1f8d2d66e038ebd 100644 --- a/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/PeaksWorkspace.h +++ b/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/PeaksWorkspace.h @@ -354,8 +354,8 @@ class DLLExport PeaksWorkspace: public DataObjects::TableWorkspace void removeAllPeaks(); - bool addColumn ( const std::string & type, - const std::string & name + bool addColumn ( const std::string & /*type*/, + const std::string & /* name*/ ) {return false;} static const int IhklCol =0; /** Column number where V3D hkl value is stored*/ diff --git a/Code/Mantid/Framework/DataObjects/src/PeaksWorkspace.cpp b/Code/Mantid/Framework/DataObjects/src/PeaksWorkspace.cpp index 781b7e5a0695e6ed5d8ecd64f781bc6cb180c2eb..22b04b37206f0630e7de5e55a4db4264fd61c684 100644 --- a/Code/Mantid/Framework/DataObjects/src/PeaksWorkspace.cpp +++ b/Code/Mantid/Framework/DataObjects/src/PeaksWorkspace.cpp @@ -106,10 +106,10 @@ namespace DataObjects C_version = std::string( version ); C_experimentDate = Kernel::DateAndTime( experimentDate); ClearDeleteCalibrationData(); - for( int i=0; i<PanelNames.size() ; i++) + for( size_t i=0; i<PanelNames.size() ; i++) DetNames.push_back( std::string(PanelNames[i])); - for( int i=0; i<PanelInfo.size(); i++) + for( size_t i=0; i<PanelInfo.size(); i++) { double* data = PanelInfo[i]; double* data1 = new double[15]; @@ -158,7 +158,7 @@ namespace DataObjects { int i = rowCount(); insertRow( i ); - double T = time; + //double T = time; try { @@ -1087,7 +1087,8 @@ namespace DataObjects { int Reflag = getReflag( i ); int unitsDig = Reflag %10; - Geometry::V3D hkl= UBI*get_hkl(i); + Geometry::V3D hkl= UBI*get_QXtal(i); + double h_low = hkl.X()-floor(hkl.X()); double k_low = hkl.Y()-floor( hkl.Y()); double l_low = hkl.Z()-floor( hkl.Z()); @@ -1096,6 +1097,7 @@ namespace DataObjects (l_low <tolerance || (1-l_low)<tolerance )) { sethkl( hkl, i); + Reflag = (Reflag /100)+10*reflag + unitsDig; } else diff --git a/Code/Mantid/Framework/DataObjects/test/PeaksWorkspaceTest.h b/Code/Mantid/Framework/DataObjects/test/PeaksWorkspaceTest.h index 85f3420f75bb2077146cee729c78312322f50b2e..f70bda0fc504cfddbef5f602e2a6e3c6fe49abf3 100644 --- a/Code/Mantid/Framework/DataObjects/test/PeaksWorkspaceTest.h +++ b/Code/Mantid/Framework/DataObjects/test/PeaksWorkspaceTest.h @@ -13,6 +13,7 @@ #include "MantidDataObjects/PeaksWorkspace.h" #include "MantidGeometry/V3D.h" #include "MantidKernel/Strings.h" +#include "MantidKernel/PhysicalConstants.h" using namespace Mantid::DataObjects; using namespace Mantid::API; @@ -99,10 +100,10 @@ public: TS_ASSERT_LESS_THAN(hkl.norm(),.00001); TS_ASSERT( save==pw.get_hkl(6)); - double pi = 3.1415926535897932384626433832795; + V3D position =pw.getPosition(6); V3D ptest; - ptest.spherical(.45647,1.3748*180/pi,2.52165*180/pi); + ptest.spherical(.45647,1.3748*180/M_PI,2.52165*180/M_PI); V3D psave(position); position -=ptest; @@ -128,7 +129,7 @@ public: V3D sampOrient = pw.getSampleOrientation(6); V3D soSave(sampOrient); V3D soTest(164.96,45,0); - soTest *=pi/180; + soTest *=M_PI/180; sampOrient -=soTest; TS_ASSERT_LESS_THAN( sampOrient.norm(), .001); TS_ASSERT( soSave ==pw.getSampleOrientation(6) ); @@ -139,8 +140,6 @@ public: TS_ASSERT_LESS_THAN( abs(1/.5203-pw.get_Qmagnitude(6)),.004); - //unrot Q (ISAW)= 1.1155452(beam) , 0.55290407(back) , 1.4642019(up) - //getQ not adjusted for samp orient -1.220807(beam) , -1.2082262(back) , 0.8624681(up) V3D Qlab= pw.get_Qlab(6); // McStas==back,up,beam @@ -150,10 +149,51 @@ public: V3D QlabR= pw.get_QXtal(6); // McStas==back,up,beam + V3D QlabRSave = V3D(QlabR); V3D QlabRTest(.55290407,1.4642019,1.1155452); QlabR -=QlabRTest; TS_ASSERT_LESS_THAN( QlabR.norm(), .001); + Matrix<double> mat(3,3); + int beam =2; + int up =1; + int back =0; + int base1=0; + int base2 = 1; + int base3 =2; + mat[beam][base1]=-0.36622801; + mat[back][base1]=-0.17730089; + mat[up][base1]=-0.29209167; + mat[beam][base2]=-0.52597409; + mat[back][base2]=0.20688301; + mat[up][base2]=0.00279823; + mat[beam][base3]=-0.15912011; + mat[back][base3]=0.36190018; + mat[up][base3]=-0.28579932; + + pw.sethkls( mat, .1, false, 1); + Matrix<double>matSave = Matrix<double>(mat); + mat.Invert(); + QlabRSave = pw.get_QXtal(6); + + V3D hklD = (mat*QlabRSave)-pw.get_hkl(6); + TS_ASSERT_LESS_THAN( hklD.norm() ,.001); + TS_ASSERT_EQUALS( pw.getReflag(6),10); + + pw.sethkls( matSave, .1, true, 2); + hklD = (mat*QlabRSave)-pw.get_hkl(6); + TS_ASSERT_LESS_THAN( hklD.norm() ,.001); + TS_ASSERT_EQUALS( pw.getReflag(6),10); + + + pw.sethkls( matSave, .01, false, 1); + TS_ASSERT_EQUALS( pw.get_hkl(6).norm(),0); + TS_ASSERT_EQUALS( pw.getReflag(6),0); + + pw.sethkls( matSave, .1, true, 2); + hklD = (mat*QlabRSave)-pw.get_hkl(6); + TS_ASSERT_LESS_THAN( hklD.norm() ,.001); + TS_ASSERT_EQUALS( pw.getReflag(6),20); //Now test out the various sets. Not all sets are possible. V3D testV(3,5,-6); @@ -188,6 +228,7 @@ public: TS_ASSERT_EQUALS( pw.get_time_channel(6) , 200); + }