rate correction updated in rxr also when chanign exptime, subexptime, default rate correction

This commit is contained in:
maliakal_d 2020-08-03 10:07:00 +02:00
parent 885b22eca8
commit e2f1fd076a

View File

@ -281,6 +281,7 @@ Result<int> Detector::getDynamicRange(Positions pos) const {
void Detector::setDynamicRange(int value) { void Detector::setDynamicRange(int value) {
pimpl->Parallel(&Module::setDynamicRange, {}, value); pimpl->Parallel(&Module::setDynamicRange, {}, value);
updateRxRateCorrections();
} }
Result<defs::timingMode> Detector::getTimingMode(Positions pos) const { Result<defs::timingMode> Detector::getTimingMode(Positions pos) const {
@ -1040,6 +1041,7 @@ Result<ns> Detector::getSubExptime(Positions pos) const {
void Detector::setSubExptime(ns t, Positions pos) { void Detector::setSubExptime(ns t, Positions pos) {
pimpl->Parallel(&Module::setSubExptime, pos, t.count()); pimpl->Parallel(&Module::setSubExptime, pos, t.count());
updateRxRateCorrections();
} }
Result<ns> Detector::getSubDeadTime(Positions pos) const { Result<ns> Detector::getSubDeadTime(Positions pos) const {
@ -1107,6 +1109,7 @@ Result<ns> Detector::getRateCorrection(Positions pos) const {
void Detector::setDefaultRateCorrection(Positions pos) { void Detector::setDefaultRateCorrection(Positions pos) {
pimpl->Parallel(&Module::setDefaultRateCorrection, pos); pimpl->Parallel(&Module::setDefaultRateCorrection, pos);
updateRxRateCorrections();
} }
void Detector::setRateCorrection(ns dead_time, Positions pos) { void Detector::setRateCorrection(ns dead_time, Positions pos) {
@ -1116,6 +1119,7 @@ void Detector::setRateCorrection(ns dead_time, Positions pos) {
void Detector::updateRxRateCorrections() { void Detector::updateRxRateCorrections() {
// get tau from all modules and send to Rx index 0 // get tau from all modules and send to Rx index 0
if (getDetectorType().squash() == EIGER) {
if (getUseReceiverFlag().squash(false)) { if (getUseReceiverFlag().squash(false)) {
// convert Result<ns> to std::vector<in64_t> // convert Result<ns> to std::vector<in64_t>
auto retval = getRateCorrection(); auto retval = getRateCorrection();
@ -1125,6 +1129,7 @@ void Detector::updateRxRateCorrections() {
} }
pimpl->Parallel(&Module::sendReceiverRateCorrections, {0}, t); pimpl->Parallel(&Module::sendReceiverRateCorrections, {0}, t);
} }
}
} }
Result<int> Detector::getPartialReadout(Positions pos) const { Result<int> Detector::getPartialReadout(Positions pos) const {
@ -1421,6 +1426,7 @@ Result<ns> Detector::getExptime(int gateIndex, Positions pos) const {
void Detector::setExptime(int gateIndex, ns t, Positions pos) { void Detector::setExptime(int gateIndex, ns t, Positions pos) {
pimpl->Parallel(&Module::setExptime, pos, gateIndex, t.count()); pimpl->Parallel(&Module::setExptime, pos, gateIndex, t.count());
updateRxRateCorrections();
} }
Result<std::array<ns, 3>> Detector::getExptimeForAllGates(Positions pos) const { Result<std::array<ns, 3>> Detector::getExptimeForAllGates(Positions pos) const {