diff --git a/App/src/IsGISAXSTools.cpp b/App/src/IsGISAXSTools.cpp index e97ba27c050a2899b34ecf045993c2e0ec80c3b8..2d1b10ddbdcc339e1d6b5e75d2af37852d341d0e 100644 --- a/App/src/IsGISAXSTools.cpp +++ b/App/src/IsGISAXSTools.cpp @@ -441,8 +441,8 @@ OutputData<double> *IsGISAXSTools::readOutputDataFromFile(const std::string &fil int y_size = (int)buff_2d.size(); int x_size = buff_2d.size() ? (int)buff_2d[0].size() : 0; OutputData<double> *p_result = new OutputData<double>; - p_result->addAxis(std::string("x-axis"), 0.0, double(x_size), x_size); - p_result->addAxis(std::string("y-axis"), 0.0, double(y_size), y_size); + p_result->addAxis(std::string("x-axis"), x_size, 0.0, double(x_size)); + p_result->addAxis(std::string("y-axis"), y_size, 0.0, double(y_size)); p_result->setAllTo(0.0); OutputData<double>::iterator it = p_result->begin(); @@ -564,7 +564,7 @@ TH1D *IsGISAXSTools::getOutputDataScanHist(const OutputData<double> &data, const if( !hist1 ) throw LogicErrorException("IsGISAXSTools::getOutputDataScanHist() -> Error! Failed to make projection, existing name?"); hist1->SetTitle(ostr_title.str().c_str()); - // FIXME remove this trick to bypass weared bug with DrawCopy of TH1D projection of TH1D histohgrams + // FIXME remove this trick to bypass weird bug with DrawCopy of TH1D projection of TH1D histograms TH1D *h1 = (TH1D*)hist1->Clone(); delete hist1; return h1; diff --git a/App/src/TestDiffuseReflection.cpp b/App/src/TestDiffuseReflection.cpp index ef949cc0cdac9aaa9a54441637f19aa95892e78b..dc02bcad73b6095af1244a7cab1dc0db02178d10 100644 --- a/App/src/TestDiffuseReflection.cpp +++ b/App/src/TestDiffuseReflection.cpp @@ -78,8 +78,8 @@ void TestDiffuseReflection::execute() // offspecular reflectivity m_data_offspec = new OutputData<double >; - m_data_offspec->addAxis(std::string("alpha_i"), m_alphaMin, m_alphaMax, m_npoints); - m_data_offspec->addAxis(std::string("alpha_f"), m_alphaMin, m_alphaMax, m_npoints); + m_data_offspec->addAxis(std::string("alpha_i"), m_npoints, m_alphaMin, m_alphaMax); + m_data_offspec->addAxis(std::string("alpha_f"), m_npoints, m_alphaMin, m_alphaMax); OutputData<double>::iterator it = m_data_offspec->begin(); while (it != m_data_offspec->end()) { diff --git a/App/src/TestFormFactor.cpp b/App/src/TestFormFactor.cpp index 4e774df2675629a920f0b6ab54b4a05af6e19ac2..45df3456288963c44fe0d7b24c97814b9e64126f 100644 --- a/App/src/TestFormFactor.cpp +++ b/App/src/TestFormFactor.cpp @@ -13,8 +13,8 @@ TestFormFactor::TestFormFactor() : m_ff(50.0, 50.0) { mp_intensity_output = new OutputData<double>(); - AxisDouble y_axis(std::string("detector y-axis"), -4.0, 4.0, 200); - AxisDouble z_axis(std::string("detector z-axis"), 0.0, 4.0, 200); + AxisDouble y_axis(std::string("detector y-axis"), 200, -4.0, 4.0); + AxisDouble z_axis(std::string("detector z-axis"), 200, 0.0, 4.0); mp_intensity_output->addAxis(y_axis); mp_intensity_output->addAxis(z_axis); } diff --git a/App/src/TestFresnelCoeff.cpp b/App/src/TestFresnelCoeff.cpp index 5e721f16ac8f0f6911953e4254c108c61d98ca4e..2476675cb306a0f28bf5c2f08a026f1b9508d3a9 100644 --- a/App/src/TestFresnelCoeff.cpp +++ b/App/src/TestFresnelCoeff.cpp @@ -67,7 +67,7 @@ void TestFresnelCoeff::test_standard_samples() mp_sample = dynamic_cast<MultiLayer *>(SampleFactory::createSample(snames[i_sample])); mp_coeffs = new OutputData<OpticalFresnel::MultiLayerCoeff_t >; - mp_coeffs->addAxis(std::string("alpha_i"), 0.0*Units::degree, 2.0*Units::degree, 2000); + mp_coeffs->addAxis(std::string("alpha_i"), 2000, 0.0*Units::degree, 2.0*Units::degree); OutputData<OpticalFresnel::MultiLayerCoeff_t >::iterator it = mp_coeffs->begin(); while (it != mp_coeffs->end()) { double alpha_i = mp_coeffs->getValueOfAxis("alpha_i", it.getIndex()); @@ -233,8 +233,8 @@ void TestFresnelCoeff::test_roughness_set() std::cout << *mp_sample << std::endl; mp_coeffs = new OutputData<OpticalFresnel::MultiLayerCoeff_t >; - mp_coeffs->addAxis(std::string("alpha_i"), 0.0*Units::degree, 2.0*Units::degree, 1000); - mp_coeffs->addAxis(std::string("roughness"), 0.0, 12.0*Units::nanometer, 6); + mp_coeffs->addAxis(std::string("alpha_i"), 1000, 0.0*Units::degree, 2.0*Units::degree); + mp_coeffs->addAxis(std::string("roughness"), 6, 0.0, 12.0*Units::nanometer); OutputData<OpticalFresnel::MultiLayerCoeff_t >::iterator it = mp_coeffs->begin(); while (it != mp_coeffs->end()) { double alpha_i = mp_coeffs->getValueOfAxis("alpha_i", it.getIndex()); diff --git a/App/src/TestMiscellaneous.cpp b/App/src/TestMiscellaneous.cpp index 2ad6fbb9df3f7b9097b7d7c57bbce42a84fa1685..c2ddc317ccc0612eeaf31f0d2c843858c1afd3bc 100644 --- a/App/src/TestMiscellaneous.cpp +++ b/App/src/TestMiscellaneous.cpp @@ -53,8 +53,8 @@ void TestMiscellaneous::test_OutputDataTo2DArray() int axis0_size = 2; int axis1_size = 4; OutputData<double> *p_output = new OutputData<double>; - p_output->addAxis(std::string("axis0"), 0.0, double(axis0_size), axis0_size); - p_output->addAxis(std::string("axis1"), 0.0, double(axis1_size), axis1_size); + p_output->addAxis(std::string("axis0"), axis0_size, 0.0, double(axis0_size)); + p_output->addAxis(std::string("axis1"), axis1_size, 0.0, double(axis1_size)); p_output->setAllTo(0.0); OutputData<double>::iterator it = p_output->begin(); @@ -219,9 +219,9 @@ void TestMiscellaneous::test_FormFactor() OutputData<double> *p_data = new OutputData<double>(); - p_data->addAxis(std::string("qx"), qmin, qmax, nbins); - p_data->addAxis(std::string("qy"), qmin, qmax, nbins); - p_data->addAxis(std::string("qz"), qmin, qmax, nbins); + p_data->addAxis(std::string("qx"), nbins, qmin, qmax); + p_data->addAxis(std::string("qy"), nbins, qmin, qmax); + p_data->addAxis(std::string("qz"), nbins, qmin, qmax); OutputData<double>::const_iterator it = p_data->begin(); while (it != p_data->end()) { double x = p_data->getValueOfAxis("qx", it.getIndex()); @@ -296,7 +296,7 @@ void TestMiscellaneous::test_DoubleToComplexInterpolatingFunction() MultiLayer *sample = dynamic_cast<MultiLayer *>(SampleFactory::instance().createItem("MultilayerOffspecTestcase1a")); OutputData<double > *data_alpha = new OutputData<double >; - data_alpha->addAxis(std::string("alpha_f"), 0.0*Units::degree, 2.0*Units::degree, 200); + data_alpha->addAxis(std::string("alpha_f"), 200, 0.0*Units::degree, 2.0*Units::degree); OpticalFresnel fresnelCalculator; diff --git a/App/src/TestMultiLayerRoughness.cpp b/App/src/TestMultiLayerRoughness.cpp index c1b58101e20dca532c262031414d9f5b86b5dcc8..cc9805a47c4fa50caa45742879f80adfa5ae71e4 100644 --- a/App/src/TestMultiLayerRoughness.cpp +++ b/App/src/TestMultiLayerRoughness.cpp @@ -34,7 +34,7 @@ void TestMultiLayerRoughness::execute() h2->SetContour(50); OutputData<double> *p_data_alpha_i = new OutputData<double>(); - p_data_alpha_i->addAxis(std::string("alpha_i"), 0.0*Units::degree, 2.0*Units::degree, npoints); + p_data_alpha_i->addAxis(std::string("alpha_i"), npoints, 0.0*Units::degree, 2.0*Units::degree); OutputData<double>::const_iterator it_alpha_i = p_data_alpha_i->begin(); while (it_alpha_i != p_data_alpha_i->end()) { double alpha_i = p_data_alpha_i->getValueOfAxis("alpha_i", it_alpha_i.getIndex()); diff --git a/Core/Algorithms/src/GISASExperiment.cpp b/Core/Algorithms/src/GISASExperiment.cpp index 9bacd4fb2d92c04b08e7e7397911d298ddb3c7ca..350a3509d696c7f99d7943c548ef69b85732645a 100644 --- a/Core/Algorithms/src/GISASExperiment.cpp +++ b/Core/Algorithms/src/GISASExperiment.cpp @@ -125,7 +125,7 @@ void GISASExperiment::normalize() } } -// TODO : refactor to the detector object +// TODO : refactor to take detector parameter object void GISASExperiment::setDetectorParameters(size_t n_phi, double phi_f_min, double phi_f_max, size_t n_alpha, double alpha_f_min, double alpha_f_max, bool isgisaxs_style) { @@ -137,8 +137,8 @@ void GISASExperiment::setDetectorParameters(size_t n_phi, double phi_f_min, doub initializeAnglesIsgisaxs(&alpha_axis, alpha_f_min, alpha_f_max, n_alpha); } else { - phi_axis.initElements(phi_f_min, phi_f_max, n_phi); - alpha_axis.initElements(alpha_f_min, alpha_f_max, n_alpha); + phi_axis.initElements(n_phi, phi_f_min, phi_f_max); + alpha_axis.initElements(n_alpha, alpha_f_min, alpha_f_max); } m_detector.addAxis(phi_axis); m_detector.addAxis(alpha_axis); diff --git a/Core/Tools/inc/AxisDouble.h b/Core/Tools/inc/AxisDouble.h index b0e5f4bfb0b271cda1f17342ddbc17fd268121b8..dfa456f9cc5597499c3332679abf64c9da2f4f13 100644 --- a/Core/Tools/inc/AxisDouble.h +++ b/Core/Tools/inc/AxisDouble.h @@ -27,7 +27,7 @@ public: //! constructors AxisDouble(std::string name); // TODO: change the order from (xmin, xmax, nbin) to (nbin, xmin, xmax) - AxisDouble(std::string name, double start, double end, size_t size); + AxisDouble(std::string name, size_t size, double start, double end); //! clone function AxisDouble* clone() const; @@ -38,9 +38,6 @@ public: //! destructor ~AxisDouble() {} - //! initialize axis points - void initElements(double start, double end, size_t size); - //! retrieve the number of bins size_t getSize() const { return m_value_vector.size(); } @@ -65,6 +62,9 @@ public: //! get value of last point of axis double getMax() const { return m_value_vector.back(); } + //! initialize axis points + void initElements(size_t size, double start, double end); + //! find number of bin which is closest to given value size_t findClosestIndex(double value) const; diff --git a/Core/Tools/inc/OutputData.h b/Core/Tools/inc/OutputData.h index 9572f2076ef2d33662ce38a7b6cb8b87e64c3bf0..bfcdd8c61bd9853377fad7996f77a7e9c3acba30 100644 --- a/Core/Tools/inc/OutputData.h +++ b/Core/Tools/inc/OutputData.h @@ -39,7 +39,7 @@ public: void copyFrom(const OutputData<T> &x); void addAxis(const AxisDouble &new_axis); - void addAxis(std::string name, double start, double end, size_t size); + void addAxis(std::string name, size_t size, double start, double end); const AxisDouble *getAxis(size_t index) const; const AxisDouble *getAxis(std::string label) const; @@ -258,10 +258,10 @@ template <class T> void OutputData<T>::addAxis(const AxisDouble &new_axis) } template <class T> -void OutputData<T>::addAxis(std::string name, double start, double end, size_t size) +void OutputData<T>::addAxis(std::string name, size_t size, double start, double end) { if( getAxis(name) ) throw LogicErrorException("OutputData<T>::addAxis(std::string name) -> Error! Attempt to add axis with already existing name '"+name+std::string("'")); - AxisDouble new_axis(name, start, end, size); + AxisDouble new_axis(name, size, start, end); addAxis(new_axis); } @@ -451,7 +451,7 @@ template <class T> void OutputData<T>::setAxisSizes(size_t rank, int *n_dims) for (size_t i=0; i<rank; ++i) { std::ostringstream name; name << basename << i; - addAxis(name.str(), 0.0, (double)(n_dims[i]-1), n_dims[i]); + addAxis(name.str(), n_dims[i], 0.0, (double)(n_dims[i]-1)); } } diff --git a/Core/Tools/src/AxisDouble.cpp b/Core/Tools/src/AxisDouble.cpp index f8ad45c9bd73be0404d4e2863084988299b2bf7a..0d444e0729544a956dfd967f7d3275a7c7d60f40 100644 --- a/Core/Tools/src/AxisDouble.cpp +++ b/Core/Tools/src/AxisDouble.cpp @@ -9,10 +9,10 @@ AxisDouble::AxisDouble(std::string name) { } -AxisDouble::AxisDouble(std::string name, double start, double end, size_t size) +AxisDouble::AxisDouble(std::string name, size_t size, double start, double end) : m_name(name) { - initElements(start, end, size); + initElements(size, start, end); } AxisDouble* AxisDouble::clone() const @@ -42,7 +42,7 @@ AxisDouble AxisDouble::createDoubleBinSize() const return result; } -void AxisDouble::initElements(double start, double end, size_t size) +void AxisDouble::initElements(size_t size, double start, double end) { double step = size>1 ? (end - start)/(size-1) : end; for (size_t i=0; i<size; ++i) diff --git a/Core/Tools/src/OutputDataFunctions.cpp b/Core/Tools/src/OutputDataFunctions.cpp index 3f01c4fe2324d7460be83af639a9746d30cafa04..0971cc09d341daa9737a19c3d4e45265b3756023 100644 --- a/Core/Tools/src/OutputDataFunctions.cpp +++ b/Core/Tools/src/OutputDataFunctions.cpp @@ -272,7 +272,7 @@ OutputData<double> *OutputDataFunctions::selectRangeOnOneAxis(const OutputData<d if( axis->getName() != selected_axis_name ) { new_data->addAxis(*axis); } else { - new_data->addAxis(selected_axis->getName(), x1, x2, nbin2-nbin1+1); + new_data->addAxis(selected_axis->getName(), nbin2-nbin1+1, x1, x2); } } new_data->setAllTo(0.0); diff --git a/UnitTests/TestCore/AxisDoubleTest.h b/UnitTests/TestCore/AxisDoubleTest.h index b4eecea946738ea4b372b0fd824c120d43159b43..20b3985e97e511bffa42dd585f971ca9c2260fcc 100644 --- a/UnitTests/TestCore/AxisDoubleTest.h +++ b/UnitTests/TestCore/AxisDoubleTest.h @@ -17,7 +17,7 @@ protected: AxisDoubleTest::AxisDoubleTest() : angleAxis("angle") -, lengthAxis("length", 0.0, 9.9, 100) +, lengthAxis("length", 100, 0.0, 9.9) { } @@ -44,29 +44,28 @@ TEST_F(AxisDoubleTest, ExtendedConstructor) TEST_F(AxisDoubleTest, VectorOfUnitLength) { - AxisDouble vec("name", 1.0, 2.0, 1); + AxisDouble vec("name", 1, 1.0, 2.0); EXPECT_EQ((size_t)1, vec.getSize()); EXPECT_EQ(double(1), vec.getMin()); EXPECT_EQ(double(1), vec.getMax()); } - TEST_F(AxisDoubleTest, FindClosestIndex) { - AxisDouble vec_size1("name", 2.0, 4.0, 1); + AxisDouble vec_size1("name", 1, 2.0, 4.0); EXPECT_EQ( size_t(1), vec_size1.getSize()); EXPECT_EQ( size_t(0), vec_size1.findClosestIndex(1.0)); EXPECT_EQ( size_t(0), vec_size1.findClosestIndex(3.0)); EXPECT_EQ( size_t(0), vec_size1.findClosestIndex(5.0)); - AxisDouble vec_size2("name", 2.0, 4.0, 2); + AxisDouble vec_size2("name", 2, 2.0, 4.0); EXPECT_EQ( size_t(2), vec_size2.getSize() ); EXPECT_EQ( size_t(0), vec_size2.findClosestIndex(1.0)); EXPECT_EQ( size_t(0), vec_size2.findClosestIndex(2.9)); EXPECT_EQ( size_t(1), vec_size2.findClosestIndex(3.1)); EXPECT_EQ( size_t(1), vec_size2.findClosestIndex(4.1)); - AxisDouble vec_size11("name", 0.0, 10.0, 11); + AxisDouble vec_size11("name", 11, 0.0, 10.0); EXPECT_EQ( size_t(11), vec_size11.getSize()); EXPECT_DOUBLE_EQ(double(0), vec_size11[0]); EXPECT_DOUBLE_EQ(double(10), vec_size11[10]); @@ -79,6 +78,4 @@ TEST_F(AxisDoubleTest, FindClosestIndex) EXPECT_EQ( size_t(10), vec_size11.findClosestIndex(100.)); } - - #endif // AXISDOUBLETEST_H diff --git a/UnitTests/TestCore/DetectorTest.h b/UnitTests/TestCore/DetectorTest.h index 7c703926913e271b32ed249e2acaf2a083561b82..89be1d35b359d6b96280d46b18c7ea77742b40a8 100644 --- a/UnitTests/TestCore/DetectorTest.h +++ b/UnitTests/TestCore/DetectorTest.h @@ -27,8 +27,8 @@ protected: DetectorTest::DetectorTest() { originalDetector = new Detector(); - AxisDouble axis0("axis0", 0.0, 10.0, 10); - AxisDouble axis1("axis1", 0.0, 20.0, 20); + AxisDouble axis0("axis0", 10, 0.0, 10.0); + AxisDouble axis1("axis1", 20, 0.0, 20.0); originalDetector->addAxis(axis0); originalDetector->addAxis(axis1); originalDetector->setDetectorResolution(new ConvolutionDetectorResolution( new ResolutionFunction2DSimple(1,1))); @@ -53,8 +53,8 @@ TEST_F(DetectorTest, InitialDetectorState) TEST_F(DetectorTest, DetectorConstruction) { // pushing two axes - AxisDouble axis0("axis0", 0.0, 10.0, 10); - AxisDouble axis1("axis1", 0.0, 20.0, 20); + AxisDouble axis0("axis0", 10, 0.0, 10.0); + AxisDouble axis1("axis1", 20, 0.0, 20.0); constructedDetector.addAxis(axis0); constructedDetector.addAxis(axis1); EXPECT_EQ((size_t)2, constructedDetector.getDimension()); diff --git a/UnitTests/TestCore/ExperimentTest.h b/UnitTests/TestCore/ExperimentTest.h index 7deecbd52cc0c83ecdf0fe07179cf5ff382b193b..4105eb91fc2ec738b65bc0a8aec4418be1ae9a02 100644 --- a/UnitTests/TestCore/ExperimentTest.h +++ b/UnitTests/TestCore/ExperimentTest.h @@ -33,8 +33,8 @@ protected: ExperimentTest::ExperimentTest() { - test_data.addAxis("phi_f",0., 10., 10); - test_data.addAxis("theta_f",0., 20., 20); + test_data.addAxis("phi_f", 10, 0., 10.); + test_data.addAxis("theta_f", 20, 0., 20.); test_data.setAllTo(2.0); } diff --git a/UnitTests/TestCore/GISASExperimentTest.h b/UnitTests/TestCore/GISASExperimentTest.h index 384677f54c228b8d4766e5e6132a592e54372b51..95fd2df0f6390bb0a241ec8f276baa53da8a4f26 100644 --- a/UnitTests/TestCore/GISASExperimentTest.h +++ b/UnitTests/TestCore/GISASExperimentTest.h @@ -32,8 +32,8 @@ protected: GISASExperimentTest::GISASExperimentTest() { - test_data.addAxis("phi_f",0., 10., 10); - test_data.addAxis("theta_f",0., 20., 20); + test_data.addAxis("phi_f", 10, 0., 10.); + test_data.addAxis("theta_f", 20, 0., 20.); test_data.setAllTo(2.0); } diff --git a/UnitTests/TestCore/OutputDataTest.h b/UnitTests/TestCore/OutputDataTest.h index 55eec0361339ad4c3e71b437f4b2525c096ae2a7..c6bd0714fe30aca37fae8918eef77dc651aea7db 100644 --- a/UnitTests/TestCore/OutputDataTest.h +++ b/UnitTests/TestCore/OutputDataTest.h @@ -23,8 +23,8 @@ OutputDataTest::OutputDataTest() zero_3d_coordinate.push_back(0); zero_3d_coordinate.push_back(0); zero_3d_coordinate.push_back(0); - AxisDouble angle_axis("angle", 0.0, 0.1, 20); - AxisDouble length_axis("length", 0.0, 0.5, 10); + AxisDouble angle_axis("angle", 20, 0.0, 0.1); + AxisDouble length_axis("length", 10, 0.0, 0.5); AxisDouble index_axis("index", 10, 1, 10); fl_data_1d.addAxis(angle_axis); @@ -68,13 +68,13 @@ TEST_F(OutputDataTest, DataCopying) { OutputData<double> data1; OutputData<double> data2; - data1.addAxis("axis1",0.,10.,10); - data2.addAxis("axis1",0.,10.,10); + data1.addAxis("axis1", 10, 0., 10.); + data2.addAxis("axis1", 10, 0., 10.); EXPECT_TRUE( data1.hasSameDimensions(data2)); EXPECT_TRUE( data1.hasSameShape(data2)); - data1.addAxis("axis2",0.,10.,10); - data2.addAxis("axis2",1.,10.,10); + data1.addAxis("axis2", 10, 0., 10.); + data2.addAxis("axis2", 10, 1., 10.); EXPECT_TRUE( data1.hasSameDimensions(data2)); EXPECT_FALSE( data1.hasSameShape(data2)); @@ -82,8 +82,8 @@ TEST_F(OutputDataTest, DataCopying) EXPECT_TRUE( data1.hasSameDimensions(data2)); EXPECT_TRUE( data1.hasSameShape(data2)); - data1.addAxis("axis3",0.,10.,10); - data2.addAxis("axis3another",0.,10.,10); + data1.addAxis("axis3", 10, 0., 10.); + data2.addAxis("axis3another", 10, 0., 10.); EXPECT_TRUE( data1.hasSameDimensions(data2)); EXPECT_FALSE( data1.hasSameShape(data2)); @@ -101,12 +101,11 @@ TEST_F(OutputDataTest, DataCopying) } - TEST_F(OutputDataTest, MaxElement) { OutputData<double > data; - data.addAxis("axis1",0.,10.,10); - data.addAxis("axis2",0.,10.,2); + data.addAxis("axis1", 10, 0., 10.); + data.addAxis("axis2", 2, 0., 10.); data.setAllTo(1.0); OutputData<double >::iterator it = data.begin(); @@ -115,5 +114,4 @@ TEST_F(OutputDataTest, MaxElement) EXPECT_EQ( double(10.0), (*cit)); } - #endif // OUTPUTDATATEST_H