diff --git a/Device/Resolution/ConvolutionDetectorResolution.cpp b/Device/Resolution/ConvolutionDetectorResolution.cpp index 2efebdda96ec7397a4f130fe634c4438fa9324d4..d834e8ba4f9c87974b1fcfe6d110a7780c1f8abb 100644 --- a/Device/Resolution/ConvolutionDetectorResolution.cpp +++ b/Device/Resolution/ConvolutionDetectorResolution.cpp @@ -109,20 +109,20 @@ void ConvolutionDetectorResolution::apply2dConvolution(Datafield* df) const // Construct kernel vector from resolution function std::vector<std::vector<double>> kernel; - kernel.resize(nx); + kernel.resize(ny); double mid_value1 = X.binCenter(nx / 2); // because Convolve expects zero at midpoint double mid_value2 = Y.binCenter(ny / 2); // because Convolve expects zero at midpoint double dx = std::abs(X.binCenter(0) - X.binCenter(nx - 1)) / (nx - 1); double dy = std::abs(Y.binCenter(0) - Y.binCenter(ny - 1)) / (ny - 1); - for (size_t ix = 0; ix < nx; ++ix) { - double x = X.binCenter(ix) - mid_value1; + for (size_t iy = 0; iy < ny; ++iy) { + double y = Y.binCenter(iy) - mid_value2; std::vector<double> row_vector; - row_vector.resize(ny, 0.0); - for (size_t iy = 0; iy < ny; ++iy) { - double y = Y.binCenter(iy) - mid_value2; - row_vector[iy] = getIntegratedPDF2d(x, dx, y, dy); + row_vector.resize(nx, 0.0); + for (size_t ix = 0; ix < nx; ++ix) { + double x = X.binCenter(ix) - mid_value1; + row_vector[ix] = getIntegratedPDF2d(x, dx, y, dy); } - kernel[ix] = row_vector; + kernel[iy] = row_vector; } // Calculate convolution diff --git a/Tests/ReferenceData/MiniExamples/scatter2d/Resolution.1.int b/Tests/ReferenceData/MiniExamples/scatter2d/Resolution.1.int index da4b081d300989260ab9f35aa4c4b99a62a4a06c..2b9412b6be6242c56bc88354d581bb913e618bc0 100644 --- a/Tests/ReferenceData/MiniExamples/scatter2d/Resolution.1.int +++ b/Tests/ReferenceData/MiniExamples/scatter2d/Resolution.1.int @@ -7,11 +7,11 @@ EquiDivision("u (mm)", 7, 0, 107) EquiDivision("v (mm)", 11, 0, 140) # data -6.976986320957e+00 5.430263138483e-01 2.778162096832e-02 2.103468769170e-02 1.554450451334e-02 1.038814778097e-02 5.952878903581e-03 2.720942100855e-03 8.722818718153e-04 1.461696492366e-04 7.059309962333e-06 -1.042312162488e+02 8.108220408659e+00 4.118370874392e-01 3.118115697721e-01 2.305860885153e-01 1.544257760316e-01 8.893482470694e-02 4.107963349474e-02 1.345550727776e-02 2.358003742973e-03 1.165381001469e-04 -2.849809532829e+02 2.216470460208e+01 1.126057867858e+00 8.565510054254e-01 6.375083729717e-01 4.306014624859e-01 2.507968724467e-01 1.176293606519e-01 3.938405251447e-02 7.144009044990e-03 3.603373129585e-04 -2.338056768865e+04 1.818420963941e+03 9.255406769182e+01 7.064205329445e+01 5.281694625253e+01 3.588310818329e+01 2.105210246629e+01 9.964123232199e+00 3.375269263444e+00 6.219699090539e-01 3.165992083355e-02 -2.849809532829e+02 2.216470460208e+01 1.126057867858e+00 8.565510054256e-01 6.375083729720e-01 4.306014624855e-01 2.507968724466e-01 1.176293606520e-01 3.938405251375e-02 7.144009045376e-03 3.603373129735e-04 -1.042312162488e+02 8.108220408659e+00 4.118370874389e-01 3.118115697725e-01 2.305860885149e-01 1.544257760321e-01 8.893482470742e-02 4.107963349453e-02 1.345550727624e-02 2.358003742613e-03 1.165381002786e-04 -6.976986320957e+00 5.430263138483e-01 2.778162096817e-02 2.103468769184e-02 1.554450451378e-02 1.038814778120e-02 5.952878903645e-03 2.720942100885e-03 8.722818726723e-04 1.461696492060e-04 7.059310133115e-06 +1.451045942923e+01 7.649531000353e-02 4.925198410663e-02 3.799201959400e-02 2.811873809712e-02 1.875150501039e-02 1.068123737649e-02 4.812484120218e-03 1.482291183663e-03 2.094852819225e-04 3.342269950360e-07 +1.253592943677e+02 6.582456687932e-01 4.239258494582e-01 3.272599381817e-01 2.425559569021e-01 1.621587544881e-01 9.278169754985e-02 4.214507876562e-02 1.318762727187e-02 1.932742436752e-03 3.376127345203e-06 +1.982711336504e+03 1.038354215489e+01 6.715965698857e+00 5.219924792901e+00 3.905332384375e+00 2.643310756821e+00 1.536993988559e+00 7.134101598468e-01 2.302885974268e-01 3.563427083612e-02 8.073514970874e-05 +2.341292184130e+04 1.226074206253e+02 7.932747407433e+01 6.168819537650e+01 4.618464620234e+01 3.128779727656e+01 1.821316973242e+01 8.465819580097e+00 2.737919525643e+00 4.248974814097e-01 9.752823522647e-04 +1.982711336504e+03 1.038354215489e+01 6.715965698857e+00 5.219924792901e+00 3.905332384375e+00 2.643310756820e+00 1.536993988559e+00 7.134101598467e-01 2.302885974260e-01 3.563427083657e-02 8.073514924064e-05 +1.253592943677e+02 6.582456687933e-01 4.239258494582e-01 3.272599381813e-01 2.425559569022e-01 1.621587544884e-01 9.278169754985e-02 4.214507876532e-02 1.318762727037e-02 1.932742436951e-03 3.376127167910e-06 +1.451045942923e+01 7.649531000348e-02 4.925198410656e-02 3.799201959425e-02 2.811873809689e-02 1.875150501079e-02 1.068123737672e-02 4.812484119464e-03 1.482291183620e-03 2.094852820714e-04 3.342269578232e-07 diff --git a/Tests/ReferenceData/MiniExamples/scatter2d/Resolution.2.int b/Tests/ReferenceData/MiniExamples/scatter2d/Resolution.2.int index 0daf4cae3d65f8a2516e6ac03f42a6eab7b64161..0356e4434564fc5bcb5e2ce63ef24dd359bfa9c9 100644 --- a/Tests/ReferenceData/MiniExamples/scatter2d/Resolution.2.int +++ b/Tests/ReferenceData/MiniExamples/scatter2d/Resolution.2.int @@ -7,11 +7,11 @@ EquiDivision("u (mm)", 7, 0, 107) EquiDivision("v (mm)", 11, 0, 140) # data -1.615746226033e+01 1.257124588644e+00 6.401189135893e-02 4.846563244377e-02 3.583227104000e-02 2.397981180647e-02 1.378663437678e-02 6.345366503524e-03 2.063358292494e-03 3.562749699429e-04 1.747715893934e-05 -1.142628047354e+02 8.888165671472e+00 4.515116843287e-01 3.422928702179e-01 2.535794178336e-01 1.702277707279e-01 9.834353341133e-02 4.561990808216e-02 1.503500076364e-02 2.660748270094e-03 1.322827974296e-04 -2.610593626071e+03 2.030390605013e+02 1.033254451688e+01 7.883753622371e+00 5.891869459672e+00 4.000626042071e+00 2.345481640649e+00 1.109175209040e+00 3.753096234519e-01 6.905660878058e-02 3.512171285975e-03 -1.868948707201e+04 1.453572778303e+03 7.398358643271e+01 5.646750919327e+01 4.221847356810e+01 2.868214095883e+01 1.682702692716e+01 7.964143951013e+00 2.697697999418e+00 4.970890036531e-01 2.530247827731e-02 -2.610593626071e+03 2.030390605013e+02 1.033254451688e+01 7.883753622372e+00 5.891869459672e+00 4.000626042071e+00 2.345481640649e+00 1.109175209040e+00 3.753096234516e-01 6.905660878073e-02 3.512171285885e-03 -1.142628047354e+02 8.888165671474e+00 4.515116843275e-01 3.422928702177e-01 2.535794178336e-01 1.702277707281e-01 9.834353341094e-02 4.561990808247e-02 1.503500076333e-02 2.660748270507e-03 1.322827965580e-04 -1.615746226032e+01 1.257124588644e+00 6.401189135863e-02 4.846563244359e-02 3.583227104014e-02 2.397981180679e-02 1.378663437692e-02 6.345366503597e-03 2.063358292149e-03 3.562749698170e-04 1.747715854752e-05 +1.157093667403e+01 1.538628535751e+00 5.184479041185e-02 3.813405058233e-02 2.817034547907e-02 1.888349065606e-02 1.090522330029e-02 5.070750674303e-03 1.691614534946e-03 3.177311536276e-04 2.162668239015e-05 +9.996379580629e+01 1.329033221838e+01 4.462822492870e-01 3.284851197719e-01 2.429951766028e-01 1.632802220046e-01 9.468838581929e-02 4.435066596785e-02 1.498872831425e-02 2.881764301112e-03 1.997312668104e-04 +1.581047527365e+03 2.101822137645e+02 7.068991384204e+00 5.238514127970e+00 3.910697534464e+00 2.659156745722e+00 1.565759973223e+00 7.480479101019e-01 2.596375561420e-01 5.182460617737e-02 3.696345780850e-03 +1.866985884046e+04 2.481941231964e+03 8.349599075776e+01 6.190700474069e+01 4.624656794957e+01 3.147324430474e+01 1.855169576624e+01 8.874747944388e+00 3.085352436076e+00 6.171345456671e-01 4.408415973914e-02 +1.581047527365e+03 2.101822137645e+02 7.068991384206e+00 5.238514127971e+00 3.910697534463e+00 2.659156745722e+00 1.565759973223e+00 7.480479101019e-01 2.596375561417e-01 5.182460617752e-02 3.696345780413e-03 +9.996379580629e+01 1.329033221838e+01 4.462822492863e-01 3.284851197716e-01 2.429951766023e-01 1.632802220041e-01 9.468838581940e-02 4.435066596730e-02 1.498872831416e-02 2.881764301307e-03 1.997312667287e-04 +1.157093667403e+01 1.538628535752e+00 5.184479041154e-02 3.813405058236e-02 2.817034547904e-02 1.888349065604e-02 1.090522330058e-02 5.070750673879e-03 1.691614535158e-03 3.177311535840e-04 2.162668241497e-05 diff --git a/hugo/content/ref/instr/det/resolution/index.md b/hugo/content/ref/instr/det/resolution/index.md index d2e2f4dfd945d3ae5385b0a8c4db6d42ba109bf1..61b03afef4b161f38ecaddce3ee555b20fbe16c9 100644 --- a/hugo/content/ref/instr/det/resolution/index.md +++ b/hugo/content/ref/instr/det/resolution/index.md @@ -15,7 +15,7 @@ Currently, only Gaussian resolution functions are supported. Create a Gaussian resolution function, and attach it to a detector, as follows: ``` -resol = ba.ResolutionFunction2DGaussian(vertical_width, horizontal_width) +resol = ba.ResolutionFunction2DGaussian(horizontal_width, vertical_width) detector.setResolutionFunction(resol) ```