JFJochServices: Take calibration as pointer (it can be nullptr)

This commit is contained in:
2025-11-05 09:16:00 +01:00
parent 74a55d8bc9
commit 96de9e41ea
3 changed files with 9 additions and 13 deletions
+2 -6
View File
@@ -10,18 +10,14 @@ JFJochServices::JFJochServices(Logger &in_logger) : logger(in_logger) {}
void JFJochServices::Start(const DiffractionExperiment& experiment,
const PixelMask &pixel_mask,
const JFCalibration &calibration) {
const JFCalibration *calibration) {
logger.Info("Measurement start for: {}", experiment.GetFilePrefix());
cannot_stop_detector = false;
if (receiver != nullptr) {
logger.Info(" ... receiver start");
if (experiment.IsJungfrauConvPhotonCnt())
receiver->Start(experiment, pixel_mask, &calibration);
else
receiver->Start(experiment, pixel_mask, nullptr);
receiver->Start(experiment, pixel_mask, calibration);
if (detector && !experiment.IsUsingInternalPacketGen()) {
logger.Info(" ... detector start");
detector->Start(experiment);
+1 -1
View File
@@ -27,7 +27,7 @@ public:
void ConfigureDetector(const DiffractionExperiment& experiment);
void Start(const DiffractionExperiment& experiment,
const PixelMask &pixel_mask,
const JFCalibration &calibration);
const JFCalibration *calibration = nullptr);
JFJochServicesOutput Stop();
void Cancel();
void Trigger();
+6 -6
View File
@@ -63,7 +63,7 @@ void JFJochStateMachine::TakePedestalInternalAll(std::unique_lock<std::mutex> &u
if (experiment.GetDetectorSetup().GetDetectorType() != DetectorType::JUNGFRAU) {
try {
calibration.reset();
logger.Info("EIGER configuration");
logger.Info("Photon counting detector configuration");
services.ConfigureDetector(experiment);
logger.Info(" ... done ");
SetState(JFJochState::Idle,
@@ -125,7 +125,7 @@ void JFJochStateMachine::TakeDarkMaskInternal(std::unique_lock<std::mutex> &ul)
SetState(JFJochState::Pedestal, "Dark sequence for mask calculation", BrokerStatus::MessageSeverity::Info);
services.ConfigureDetector(local_experiment);
services.Start(local_experiment, pixel_mask, *calibration);
services.Start(local_experiment, pixel_mask, nullptr);
ul.unlock();
// Allow to cancel/abort during the mask data collection
@@ -169,7 +169,7 @@ void JFJochStateMachine::TakePedestalInternalG0(std::unique_lock<std::mutex> &ul
SetState(JFJochState::Pedestal, message, BrokerStatus::MessageSeverity::Info);
services.ConfigureDetector(local_experiment);
services.Start(local_experiment, pixel_mask, *calibration);
services.Start(local_experiment, pixel_mask, calibration.get());
services.Trigger();
@@ -212,7 +212,7 @@ void JFJochStateMachine::TakePedestalInternalG1(std::unique_lock<std::mutex> &ul
"Pedestal G1 SC" + std::to_string(storage_cell),
BrokerStatus::MessageSeverity::Info);
services.ConfigureDetector(local_experiment);
services.Start(local_experiment, pixel_mask, *calibration);
services.Start(local_experiment, pixel_mask, calibration.get());
services.Trigger();
@@ -252,7 +252,7 @@ void JFJochStateMachine::TakePedestalInternalG2(std::unique_lock<std::mutex> &ul
"Pedestal G2 SC" + std::to_string(storage_cell),
BrokerStatus::MessageSeverity::Info);
services.ConfigureDetector(local_experiment);
services.Start(local_experiment, pixel_mask, *calibration);
services.Start(local_experiment, pixel_mask, calibration.get());
services.Trigger();
@@ -361,7 +361,7 @@ void JFJochStateMachine::Start(const DatasetSettings &settings) {
try {
SetState(JFJochState::Busy, "Preparing measurement", BrokerStatus::MessageSeverity::Info);
services.SetSpotFindingSettings(GetSpotFindingSettings());
services.Start(experiment, pixel_mask, *calibration);
services.Start(experiment, pixel_mask, calibration.get());
SetState(JFJochState::Measuring, "Measuring ...", BrokerStatus::MessageSeverity::Info);
measurement = std::async(std::launch::async, &JFJochStateMachine::MeasurementThread, this);