Version 1.0.0-rc.12
This commit is contained in:
@@ -10,16 +10,17 @@ AzimuthalIntegration::AzimuthalIntegration(const DiffractionExperiment& experime
|
||||
corrections(experiment.GetPixelsNum(), 1.0),
|
||||
nbins(mapping.GetBinNumber()),
|
||||
sum(mapping.GetBinNumber(), 0),
|
||||
sum2(mapping.GetBinNumber(), 0),
|
||||
count(mapping.GetBinNumber(), 0)
|
||||
{
|
||||
auto mapping_raw = mapping.GetPixelToBinMappingRaw();
|
||||
RawToConvertedGeometry(experiment, pixel_to_bin.data(), mapping_raw.data());
|
||||
|
||||
auto &bin_to_q = mapping.GetBinToQ();
|
||||
std::vector<float> corrections_raw(experiment.GetModulesNum() * RAW_MODULE_SIZE);
|
||||
for (int i = 0; i < experiment.GetModulesNum(); i++)
|
||||
CalcAzIntCorrRawCoord(corrections_raw.data() + i * RAW_MODULE_SIZE, experiment, i);
|
||||
|
||||
solid_angle_corr.resize(mapping.GetBinNumber());
|
||||
for (int i = 0; i < mapping.GetBinNumber(); i++)
|
||||
solid_angle_corr[i] = 1.0 / CalcAzIntSolidAngleCorr(experiment, bin_to_q[i]);
|
||||
RawToConvertedGeometry(experiment, corrections.data(), corrections_raw.data());
|
||||
}
|
||||
|
||||
void AzimuthalIntegration::Process(const int16_t *data, size_t npixel) {
|
||||
@@ -29,9 +30,10 @@ void AzimuthalIntegration::Process(const int16_t *data, size_t npixel) {
|
||||
|
||||
for (int i = 0; i < npixel; i++) {
|
||||
auto bin = pixel_to_bin[i];
|
||||
auto value = data[i];
|
||||
if ((value > INT16_MIN + 4) && (value < INT16_MAX - 4) && (bin < nbins)) {
|
||||
auto value = data[i] * corrections[i];
|
||||
if ((data[i] > INT16_MIN + 4) && (data[i] < INT16_MAX - 4) && (bin < nbins)) {
|
||||
sum[bin] += value;
|
||||
sum2[bin] += value * value;
|
||||
count[bin] += 1;
|
||||
}
|
||||
}
|
||||
@@ -42,7 +44,7 @@ void AzimuthalIntegration::GetResult(std::vector<double> &result) const {
|
||||
|
||||
for (int i = 0; i < nbins; i++) {
|
||||
if (count[i] > 0)
|
||||
result[i] = static_cast<double>(sum[i]) / static_cast<double>(count[i]) * solid_angle_corr[i];
|
||||
result[i] = sum[i] / count[i];
|
||||
else
|
||||
result[i] = 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user