From 045c74d2f67d19d4cab1e8db2d3d9d4e67c752a5 Mon Sep 17 00:00:00 2001 From: Alvaro Ezquerro Date: Wed, 6 May 2026 11:06:35 +0200 Subject: [PATCH 1/6] always set run start and end times from femdaq info --- src/TRestRawFemDAQToSignalProcess.cxx | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/src/TRestRawFemDAQToSignalProcess.cxx b/src/TRestRawFemDAQToSignalProcess.cxx index 6cd500a..afb4bfa 100644 --- a/src/TRestRawFemDAQToSignalProcess.cxx +++ b/src/TRestRawFemDAQToSignalProcess.cxx @@ -118,12 +118,21 @@ void TRestRawFemDAQToSignalProcess::InitProcess() { exit(1); } + TObjString* tsObj = (TObjString*)fInputFile->Get("startTime"); + TObjString* etObj = (TObjString*)fInputFile->Get("endTime"); + if (tsObj) { + Double_t startTimestamp = std::stod(tsObj->GetString().Data()); + fRunInfo->SetStartTimeStamp(startTimestamp); + } + if (etObj) { + Double_t endTimestamp = std::stod(etObj->GetString().Data()); + fRunInfo->SetEndTimeStamp(endTimestamp); + } + #ifndef NO_YAML_CPP if (fUseFeminosDaqRunInfo) { TObjString* yamlConfigObj = (TObjString*)fInputFile->Get("RunConfigYAML"); TObjString* yamlfNameObj = (TObjString*)fInputFile->Get("yaml_fileName"); - TObjString* tsObj = (TObjString*)fInputFile->Get("startTime"); - TObjString* etObj = (TObjString*)fInputFile->Get("endTime"); if (yamlConfigObj) { std::string yamlConfig = yamlConfigObj->GetString().Data(); @@ -144,13 +153,6 @@ void TRestRawFemDAQToSignalProcess::InitProcess() { std::cout << "Config fileName: " << fileName << std::endl; } - if (tsObj) { - fStartTimestamp = std::stod(tsObj->GetString().Data()); - } - - if (etObj) { - fEndTimestamp = std::stod(etObj->GetString().Data()); - } } #else fUseFeminosDaqRunInfo = false; From 1fffaf24e7297071890404b4f9eac7318ece73b0 Mon Sep 17 00:00:00 2001 From: Alvaro Ezquerro Date: Wed, 6 May 2026 11:07:23 +0200 Subject: [PATCH 2/6] add option to set run start end times from the first and last event --- inc/TRestRawFemDAQToSignalProcess.h | 1 + src/TRestRawFemDAQToSignalProcess.cxx | 8 +++++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/inc/TRestRawFemDAQToSignalProcess.h b/inc/TRestRawFemDAQToSignalProcess.h index af86fb6..d96640f 100644 --- a/inc/TRestRawFemDAQToSignalProcess.h +++ b/inc/TRestRawFemDAQToSignalProcess.h @@ -48,6 +48,7 @@ class TRestRawFemDAQToSignalProcess : public TRestEventProcess { Double_t fStartTimestamp = std::numeric_limits::max(); //! Double_t fEndTimestamp = 0; //! Bool_t fUseFeminosDaqRunInfo = true; //< + Bool_t fSetRunStartEndFromEvents = false; //< public: RESTValue GetInputEvent() const override { return RESTValue((TRestEvent*)nullptr); } diff --git a/src/TRestRawFemDAQToSignalProcess.cxx b/src/TRestRawFemDAQToSignalProcess.cxx index afb4bfa..63945ef 100644 --- a/src/TRestRawFemDAQToSignalProcess.cxx +++ b/src/TRestRawFemDAQToSignalProcess.cxx @@ -174,7 +174,7 @@ TRestEvent* TRestRawFemDAQToSignalProcess::ProcessEvent(TRestEvent* inputEvent) // fTimestamp is in seconds fSignalEvent->SetTime(fTimestamp); - // Check if start timestamp is lower than event timestamp + // get the first event timestamp if (fTimestamp < fStartTimestamp) { fStartTimestamp = fTimestamp; } @@ -207,6 +207,8 @@ TRestEvent* TRestRawFemDAQToSignalProcess::ProcessEvent(TRestEvent* inputEvent) } void TRestRawFemDAQToSignalProcess::EndProcess() { - fRunInfo->SetStartTimeStamp(fStartTimestamp); - fRunInfo->SetEndTimeStamp(fEndTimestamp); + if (fSetRunStartEndFromEvents) { + fRunInfo->SetStartTimeStamp(fStartTimestamp); + fRunInfo->SetEndTimeStamp(fEndTimestamp); + } } From ed6255fe77123de59a11dd5fccfa6b4fd1e9bfb5 Mon Sep 17 00:00:00 2001 From: Alvaro Ezquerro Date: Wed, 6 May 2026 11:07:39 +0200 Subject: [PATCH 3/6] update doc --- src/TRestRawFemDAQToSignalProcess.cxx | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/TRestRawFemDAQToSignalProcess.cxx b/src/TRestRawFemDAQToSignalProcess.cxx index 63945ef..184071e 100644 --- a/src/TRestRawFemDAQToSignalProcess.cxx +++ b/src/TRestRawFemDAQToSignalProcess.cxx @@ -28,15 +28,19 @@ /// /// ### Parameters /// - **fUseFeminosDaqRunInfo**: Flag to determine if Feminos DAQ run info is transferred -/// to the TRestRun object. If `true` (default), the run info such as start time, +/// to the TRestRun object. If `true` (default), the run info such as /// run number, tag, and description are set from the FEMDAQ info (stored -/// in the .root file as a yaml dump). If `false`, this behavior is disabled and the -/// start time is set from the first processed event timestamp. *Note: if you are using +/// in the .root file as a yaml dump). *Note: if you are using /// inputFormat in TRestRun to extract the run information (run number and tag usually), /// be aware that this happens before TRestRawFemDAQToSignalProcess. The process, /// with fUseFeminosDaqRunInfo set to true, will overwrite the run info so the final /// values in the TRestRun will come from the .root file generated by feminos-daq, /// not the filename.* +/// - **fSetRunStartEndFromEvents**: Flag to determine if the start and end timestamps +/// of the run are set from the event with the lowest and highest timestamp respectively. +/// If `false` (default), the start and end timestamps are set from the "startTime" and +/// "endTime" entries in the .root file generated by FemDaq acquisition program, which are +/// the times when the acquisition was started and stopped. /// /// ///
From 7e682b8afdc4b084b89f91498701b603abe265be Mon Sep 17 00:00:00 2001 From: Alvaro Ezquerro Date: Wed, 6 May 2026 11:08:38 +0200 Subject: [PATCH 4/6] update PrintMetadata() --- inc/TRestRawFemDAQToSignalProcess.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/inc/TRestRawFemDAQToSignalProcess.h b/inc/TRestRawFemDAQToSignalProcess.h index d96640f..ac31b47 100644 --- a/inc/TRestRawFemDAQToSignalProcess.h +++ b/inc/TRestRawFemDAQToSignalProcess.h @@ -65,7 +65,10 @@ class TRestRawFemDAQToSignalProcess : public TRestEventProcess { inline void PrintMetadata() override { BeginPrintProcess(); std::string useFemDaqRunInfoStr = fUseFeminosDaqRunInfo ? "true" : "false"; + std::string setRunStartEndFromEventsStr = fSetRunStartEndFromEvents ? "true" : "false"; RESTMetadata << "Use fem-daq run information: " << useFemDaqRunInfoStr << RESTendl; + RESTMetadata << "Set run start/end times from events: " << setRunStartEndFromEventsStr + << RESTendl; EndPrintProcess(); } From 56347bd619429620d227ae648d9c0fad90828bea Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Wed, 6 May 2026 09:13:57 +0000 Subject: [PATCH 5/6] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- inc/TRestRawFemDAQToSignalProcess.h | 3 +-- src/TRestRawFemDAQToSignalProcess.cxx | 1 - 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/inc/TRestRawFemDAQToSignalProcess.h b/inc/TRestRawFemDAQToSignalProcess.h index ac31b47..3c60b1a 100644 --- a/inc/TRestRawFemDAQToSignalProcess.h +++ b/inc/TRestRawFemDAQToSignalProcess.h @@ -67,8 +67,7 @@ class TRestRawFemDAQToSignalProcess : public TRestEventProcess { std::string useFemDaqRunInfoStr = fUseFeminosDaqRunInfo ? "true" : "false"; std::string setRunStartEndFromEventsStr = fSetRunStartEndFromEvents ? "true" : "false"; RESTMetadata << "Use fem-daq run information: " << useFemDaqRunInfoStr << RESTendl; - RESTMetadata << "Set run start/end times from events: " << setRunStartEndFromEventsStr - << RESTendl; + RESTMetadata << "Set run start/end times from events: " << setRunStartEndFromEventsStr << RESTendl; EndPrintProcess(); } diff --git a/src/TRestRawFemDAQToSignalProcess.cxx b/src/TRestRawFemDAQToSignalProcess.cxx index 184071e..af3b76f 100644 --- a/src/TRestRawFemDAQToSignalProcess.cxx +++ b/src/TRestRawFemDAQToSignalProcess.cxx @@ -156,7 +156,6 @@ void TRestRawFemDAQToSignalProcess::InitProcess() { std::string fileName = yamlfNameObj->GetString().Data(); std::cout << "Config fileName: " << fileName << std::endl; } - } #else fUseFeminosDaqRunInfo = false; From d2b172ab0a34674c4b1b70bc352e2786aab815f3 Mon Sep 17 00:00:00 2001 From: Alvaro Ezquerro Date: Wed, 6 May 2026 11:27:57 +0200 Subject: [PATCH 6/6] increase class version --- inc/TRestRawFemDAQToSignalProcess.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inc/TRestRawFemDAQToSignalProcess.h b/inc/TRestRawFemDAQToSignalProcess.h index 3c60b1a..e2f0803 100644 --- a/inc/TRestRawFemDAQToSignalProcess.h +++ b/inc/TRestRawFemDAQToSignalProcess.h @@ -79,7 +79,7 @@ class TRestRawFemDAQToSignalProcess : public TRestEventProcess { ~TRestRawFemDAQToSignalProcess(); ClassDefOverride(TRestRawFemDAQToSignalProcess, - 0); // Template for a REST "event process" class inherited from + 1); // Template for a REST "event process" class inherited from // TRestEventProcess }; #endif