From 536cf8e9bd257956ce822a5f993e604f7e2b8186 Mon Sep 17 00:00:00 2001 From: VCLanNguyen Date: Fri, 29 Aug 2025 17:28:37 -0500 Subject: [PATCH 01/10] move sbndcode products to sbnobj --- sbnobj/SBND/Timing/CMakeLists.txt | 2 + sbnobj/SBND/Timing/FrameShiftInfo.cxx | 47 ++++++++++++++++++++++ sbnobj/SBND/Timing/FrameShiftInfo.hh | 55 +++++++++++++++++++++++++ sbnobj/SBND/Timing/TimingInfo.cxx | 51 +++++++++++++++++++++++ sbnobj/SBND/Timing/TimingInfo.hh | 58 +++++++++++++++++++++++++++ sbnobj/SBND/Timing/classes.h | 2 + sbnobj/SBND/Timing/classes_def.xml | 14 ++++++- 7 files changed, 228 insertions(+), 1 deletion(-) create mode 100644 sbnobj/SBND/Timing/FrameShiftInfo.cxx create mode 100644 sbnobj/SBND/Timing/FrameShiftInfo.hh create mode 100644 sbnobj/SBND/Timing/TimingInfo.cxx create mode 100644 sbnobj/SBND/Timing/TimingInfo.hh diff --git a/sbnobj/SBND/Timing/CMakeLists.txt b/sbnobj/SBND/Timing/CMakeLists.txt index bf0b0c475..243c00e44 100644 --- a/sbnobj/SBND/Timing/CMakeLists.txt +++ b/sbnobj/SBND/Timing/CMakeLists.txt @@ -1,6 +1,8 @@ cet_make_library( SOURCE DAQTimestamp.cxx + TimingInfo.cxx + FrameShiftInfo.cxx LIBRARIES cetlib_except::cetlib_except ) diff --git a/sbnobj/SBND/Timing/FrameShiftInfo.cxx b/sbnobj/SBND/Timing/FrameShiftInfo.cxx new file mode 100644 index 000000000..4a388e987 --- /dev/null +++ b/sbnobj/SBND/Timing/FrameShiftInfo.cxx @@ -0,0 +1,47 @@ +#ifndef SBND_FRAMSHIFTINFO_CXX +#define SBND_FRAMSHIFTINFO_CXX + +#include "sbnobj/SBND/Timing/FrameShiftInfo.hh" + +namespace sbnd::timing { + + FrameShiftInfo::FrameShiftInfo() + : fTimingType(99) + , fFrameTdcCrtt1(0) + , fFrameTdcBes(0) + , fFrameTdcRwm(0) + , fFrameHltCrtt1(0) + , fFrameHltBeamGate(0) + , fFrameApplyAtCaf(0) + {} + + FrameShiftInfo::FrameShiftInfo(uint16_t _timingType, double _frameTdcCrtt1, double _frameTdcBes, double _frameTdcRwm, double _frameHltCrtt1, double _frameHltBeamGate, double _frameApplyAtCaf) + : fTimingType(_timingType) + , fFrameTdcCrtt1(_frameTdcCrtt1) + , fFrameTdcBes(_frameTdcBes) + , fFrameTdcRwm(_frameTdcRwm) + , fFrameHltCrtt1(_frameHltCrtt1) + , fFrameHltBeamGate(_frameHltBeamGate) + , fFrameApplyAtCaf(_frameApplyAtCaf) + {} + + FrameShiftInfo::~FrameShiftInfo() {} + + uint16_t FrameShiftInfo::TimingType() const { return fTimingType; } + double FrameShiftInfo::FrameTdcCrtt1() const { return fFrameTdcCrtt1; } + double FrameShiftInfo::FrameTdcBes() const { return fFrameTdcBes; } + double FrameShiftInfo::FrameTdcRwm() const { return fFrameTdcRwm; } + double FrameShiftInfo::FrameHltCrtt1() const { return fFrameHltCrtt1; } + double FrameShiftInfo::FrameHltBeamGate() const { return fFrameHltBeamGate; } + double FrameShiftInfo::FrameApplyAtCaf() const { return fFrameApplyAtCaf; } + + void FrameShiftInfo::SetTimingType(uint16_t _type){ fTimingType = _type; } + void FrameShiftInfo::SetFrameTdcCrtt1(double _frame){ fFrameTdcCrtt1 = _frame; } + void FrameShiftInfo::SetFrameTdcBes(double _frame){ fFrameTdcBes = _frame; } + void FrameShiftInfo::SetFrameTdcRwm(double _frame){ fFrameTdcRwm = _frame; } + void FrameShiftInfo::SetFrameHltCrtt1(double _frame){ fFrameHltCrtt1 = _frame; } + void FrameShiftInfo::SetFrameHltBeamGate(double _frame){ fFrameHltBeamGate = _frame; } + void FrameShiftInfo::SetFrameApplyAtCaf(double _frame){ fFrameApplyAtCaf = _frame; } +} + +#endif diff --git a/sbnobj/SBND/Timing/FrameShiftInfo.hh b/sbnobj/SBND/Timing/FrameShiftInfo.hh new file mode 100644 index 000000000..27e3fccd7 --- /dev/null +++ b/sbnobj/SBND/Timing/FrameShiftInfo.hh @@ -0,0 +1,55 @@ +/** + * \brief Data product to shift reference frames in SBND + * + * \author Vu Chi Lan Nguyen (vclnguyen@ucsb.edu) + * Object to shift timing to a specific frame after being decoded + * Products made by FrameShift module + */ + +#ifndef SBND_FRAMESHIFTINFO_HH +#define SBND_FRAMESHIFTINFO_HH + +#include +#include +#include +#include // for std::numeric_limits + +namespace sbnd::timing { + + class FrameShiftInfo { + + uint16_t fTimingType; // e.g. SPECTDC = 0; PTB HLT = 1; CAEN-only = 3 + double fFrameTdcCrtt1; + double fFrameTdcBes; + double fFrameTdcRwm; + double fFrameHltCrtt1; + double fFrameHltBeamGate; + double fFrameApplyAtCaf; + + public: + + FrameShiftInfo(); + + FrameShiftInfo(uint16_t _timingType, double _frameTdcCrtt1, double _frameTdcBes, double _frameTdcRwm, double _frameHltCrtt1, double _frameHltBeamGate, double _frameApplyAtCaf); + + virtual ~FrameShiftInfo(); + + uint16_t TimingType() const; + double FrameTdcCrtt1() const; + double FrameTdcBes() const; + double FrameTdcRwm() const; + double FrameHltCrtt1() const; + double FrameHltBeamGate() const; + double FrameApplyAtCaf() const; + + void SetTimingType(uint16_t _type); + void SetFrameTdcCrtt1(double _frame); + void SetFrameTdcBes(double _frame); + void SetFrameTdcRwm(double _frame); + void SetFrameHltCrtt1(double _frame); + void SetFrameHltBeamGate(double _frame); + void SetFrameApplyAtCaf(double _frame); + }; +} + +#endif diff --git a/sbnobj/SBND/Timing/TimingInfo.cxx b/sbnobj/SBND/Timing/TimingInfo.cxx new file mode 100644 index 000000000..329ac6232 --- /dev/null +++ b/sbnobj/SBND/Timing/TimingInfo.cxx @@ -0,0 +1,51 @@ +#ifndef SBND_TIMINGINFO_CXX +#define SBND_TIMINGINFO_CXX + +#include "sbnobj/SBND/Timing/TimingInfo.hh" + +namespace sbnd::timing { + + TimingInfo::TimingInfo() + : fRawDAQHeaderTimestamp(0) + , fTdcCrtt1(0) + , fTdcBes(0) + , fTdcRwm(0) + , fTdcEtrig(0) + , fHltCrtt1(0) + , fHltEtrig(0) + , fHltBeamGate(0) + {} + + TimingInfo::TimingInfo(uint64_t _rawDAQHeaderTimestamp, uint64_t _tdcCrtt1, uint64_t _tdcBes, uint64_t _tdcRwm, uint64_t _tdcEtrig, uint64_t _hltCrtt1, uint64_t _hltEtrig, uint64_t _hltBeamGate) + : fRawDAQHeaderTimestamp(_rawDAQHeaderTimestamp) + , fTdcCrtt1(_tdcCrtt1) + , fTdcBes(_tdcBes) + , fTdcRwm(_tdcRwm) + , fTdcEtrig(_tdcEtrig) + , fHltCrtt1(_hltCrtt1) + , fHltEtrig(_hltEtrig) + , fHltBeamGate(_hltBeamGate) + {} + + TimingInfo::~TimingInfo() {} + + uint64_t TimingInfo::RawDAQHeaderTimestamp() const { return fRawDAQHeaderTimestamp; } + uint64_t TimingInfo::TdcCrtt1() const { return fTdcCrtt1; } + uint64_t TimingInfo::TdcBes() const { return fTdcRwm; } + uint64_t TimingInfo::TdcRwm() const { return fTdcRwm; } + uint64_t TimingInfo::TdcEtrig() const { return fTdcEtrig; } + uint64_t TimingInfo::HltCrtt1() const { return fHltCrtt1; } + uint64_t TimingInfo::HltEtrig() const { return fHltEtrig; } + uint64_t TimingInfo::HltBeamGate() const { return fHltBeamGate; } + + void TimingInfo::SetRawDAQHeaderTimestamp(uint64_t _timestamp){ fRawDAQHeaderTimestamp = _timestamp; } + void TimingInfo::SetTdcCrtt1(uint64_t _timestamp){ fTdcCrtt1 = _timestamp; } + void TimingInfo::SetTdcBes(uint64_t _timestamp){ fTdcBes = _timestamp; } + void TimingInfo::SetTdcRwm(uint64_t _timestamp){ fTdcRwm = _timestamp; } + void TimingInfo::SetTdcEtrig(uint64_t _timestamp){ fTdcEtrig = _timestamp; } + void TimingInfo::SetHltCrtt1(uint64_t _timestamp){ fHltCrtt1 = _timestamp; } + void TimingInfo::SetHltEtrig(uint64_t _timestamp){ fHltEtrig = _timestamp; } + void TimingInfo::SetHltBeamGate(uint64_t _timestamp){ fHltBeamGate = _timestamp; } +} + +#endif diff --git a/sbnobj/SBND/Timing/TimingInfo.hh b/sbnobj/SBND/Timing/TimingInfo.hh new file mode 100644 index 000000000..9d4201207 --- /dev/null +++ b/sbnobj/SBND/Timing/TimingInfo.hh @@ -0,0 +1,58 @@ +/** + * \brief Data product to store important timestamps + * + * \author Vu Chi Lan Nguyen (vclnguyen@ucsb.edu) + * To save important timing info in unix timestamp format + * Products made by FrameShift module + */ + +#ifndef SBND_TIMINGINFO_HH +#define SBND_TIMINGINFO_HH + +#include +#include +#include +#include // for std::numeric_limits + +namespace sbnd::timing { + + class TimingInfo { + + uint64_t fRawDAQHeaderTimestamp; + uint64_t fTdcCrtt1; + uint64_t fTdcBes; + uint64_t fTdcRwm; + uint64_t fTdcEtrig; //Global frame for timingType = 0 + uint64_t fHltCrtt1; + uint64_t fHltEtrig; //Global frame for timingType = 1 + uint64_t fHltBeamGate; + + public: + + TimingInfo(); + + TimingInfo(uint64_t _rawDAQHeaderTimestamp, uint64_t _tdcCrtt1, uint64_t _tdcBes, uint64_t _tdcRwm, uint64_t _tdcEtrig, uint64_t _hltCrtt1, uint64_t _hltEtrig, uint64_t _hltBeamGate); + + virtual ~TimingInfo(); + + uint64_t RawDAQHeaderTimestamp() const; + uint64_t TdcCrtt1() const; + uint64_t TdcBes() const; + uint64_t TdcRwm() const; + uint64_t TdcEtrig() const; //Global frame for timingType = 0 + uint64_t HltCrtt1() const; + uint64_t HltEtrig() const; //Global frame for timingType = 1 + uint64_t HltBeamGate() const; + + void SetRawDAQHeaderTimestamp(uint64_t timestamp); + void SetTdcCrtt1(uint64_t timestamp); + void SetTdcBes(uint64_t timestamp); + void SetTdcRwm(uint64_t timestamp); + void SetTdcEtrig(uint64_t timestamp); //Global frame for timingType = 0 + void SetHltCrtt1(uint64_t timestamp); + void SetHltEtrig(uint64_t timestamp); //Global frame for timingType = 1 + void SetHltBeamGate(uint64_t timestamp); + }; +} + +#endif diff --git a/sbnobj/SBND/Timing/classes.h b/sbnobj/SBND/Timing/classes.h index ee7955a38..5e8436bdc 100644 --- a/sbnobj/SBND/Timing/classes.h +++ b/sbnobj/SBND/Timing/classes.h @@ -1,3 +1,5 @@ #include "canvas/Persistency/Common/Wrapper.h" #include "canvas/Persistency/Common/Assns.h" #include "sbnobj/SBND/Timing/DAQTimestamp.hh" +#include "sbnobj/SBND/Timing/TimingInfo.hh" +#include "sbnobj/SBND/Timing/FrameShiftInfo.hh" diff --git a/sbnobj/SBND/Timing/classes_def.xml b/sbnobj/SBND/Timing/classes_def.xml index 88cb51adf..e1ba42590 100644 --- a/sbnobj/SBND/Timing/classes_def.xml +++ b/sbnobj/SBND/Timing/classes_def.xml @@ -1,8 +1,20 @@ - + + + + + + + + + + + + + From 9664a0a8772e0858fc650b1ce577711ff4158dfe Mon Sep 17 00:00:00 2001 From: VCLanNguyen Date: Fri, 29 Aug 2025 19:18:07 -0500 Subject: [PATCH 02/10] fix bug and add doxygen style comments --- sbnobj/SBND/Timing/FrameShiftInfo.cxx | 8 ++++ sbnobj/SBND/Timing/FrameShiftInfo.hh | 56 ++++++++++++++++------ sbnobj/SBND/Timing/TimingInfo.cxx | 10 +++- sbnobj/SBND/Timing/TimingInfo.hh | 67 ++++++++++++++++++++------- 4 files changed, 109 insertions(+), 32 deletions(-) diff --git a/sbnobj/SBND/Timing/FrameShiftInfo.cxx b/sbnobj/SBND/Timing/FrameShiftInfo.cxx index 4a388e987..e26ba6099 100644 --- a/sbnobj/SBND/Timing/FrameShiftInfo.cxx +++ b/sbnobj/SBND/Timing/FrameShiftInfo.cxx @@ -1,3 +1,11 @@ +/* + * @file sbnobj/SBND/Timing/FrameShiftInfo.cxx + * @brief Defines data structures for SBND Frame Shift products (docdb#43090). + * @author Vu Chi Lan Nguyen + * @date August 29, 2025 + * + */ + #ifndef SBND_FRAMSHIFTINFO_CXX #define SBND_FRAMSHIFTINFO_CXX diff --git a/sbnobj/SBND/Timing/FrameShiftInfo.hh b/sbnobj/SBND/Timing/FrameShiftInfo.hh index 27e3fccd7..a11226fcc 100644 --- a/sbnobj/SBND/Timing/FrameShiftInfo.hh +++ b/sbnobj/SBND/Timing/FrameShiftInfo.hh @@ -1,9 +1,9 @@ -/** - * \brief Data product to shift reference frames in SBND +/* + * @file sbnobj/SBND/Timing/FrameShiftInfo.hh + * @brief Defines data structures for SBND Frame Shift products (docdb#43090). + * @author Vu Chi Lan Nguyen + * @date August 29, 2025 * - * \author Vu Chi Lan Nguyen (vclnguyen@ucsb.edu) - * Object to shift timing to a specific frame after being decoded - * Products made by FrameShift module */ #ifndef SBND_FRAMESHIFTINFO_HH @@ -12,28 +12,55 @@ #include #include #include -#include // for std::numeric_limits +#include namespace sbnd::timing { + /* + * @brief A struct to shifts across different reference frames in SBND Data + * + * Each shift is in [ns] + * + */ + class FrameShiftInfo { - uint16_t fTimingType; // e.g. SPECTDC = 0; PTB HLT = 1; CAEN-only = 3 - double fFrameTdcCrtt1; - double fFrameTdcBes; - double fFrameTdcRwm; - double fFrameHltCrtt1; - double fFrameHltBeamGate; - double fFrameApplyAtCaf; + uint16_t fTimingType; ///< Types of decoded frames: 0 - SPEC TDC ETRIG, 1 - HLT ETRIG, 2 - Do Nothing + double fFrameTdcCrtt1; ///< Shift from decoded frame to SPEC-TDC CRT T1 [ns] + double fFrameTdcBes; ///< Shift from decoded frame to SPEC-TDC BES [ns] + double fFrameTdcRwm; ///< Shift from decoded frame to SPEC-TDC RWM [ns] + double fFrameHltCrtt1; ///< Shift from decoded frame to HLT CRT T1 [ns] + double fFrameHltBeamGate; ///< Shift from decoded frame to HLT Beam Gate [ns] + double fFrameApplyAtCaf; ///< Frame to shift to when running at CAF stage public: + /* + * Default constructor. + */ FrameShiftInfo(); + /* + * Constructor to set all timestamps + * + * @param _timingType Types of decoded frames + * @param _frameTdcCrtt1 Shift from decoded frame to SPEC-TDC CRT T1 [ns] + * @param _frameTdcBes Shift from decoded frame to SPEC-TDC BES [ns] + * @param _frameTdcRwm Shift from decoded frame to SPEC-TDC RWM [ns] + * @param _frameHltCrtt1 Shift from decoded frame to HLT CRT T1 [ns] + * @param _frameHltBeamGate Shift from decoded frame to HLT Beam Gate [ns] + * @param _frameApplyAtCaf Frame to shift to when running at CAF stage + */ FrameShiftInfo(uint16_t _timingType, double _frameTdcCrtt1, double _frameTdcBes, double _frameTdcRwm, double _frameHltCrtt1, double _frameHltBeamGate, double _frameApplyAtCaf); + /** + * Destructor + */ virtual ~FrameShiftInfo(); + /** + * Getters + */ uint16_t TimingType() const; double FrameTdcCrtt1() const; double FrameTdcBes() const; @@ -42,6 +69,9 @@ namespace sbnd::timing { double FrameHltBeamGate() const; double FrameApplyAtCaf() const; + /** + * Getters + */ void SetTimingType(uint16_t _type); void SetFrameTdcCrtt1(double _frame); void SetFrameTdcBes(double _frame); diff --git a/sbnobj/SBND/Timing/TimingInfo.cxx b/sbnobj/SBND/Timing/TimingInfo.cxx index 329ac6232..3e3aef936 100644 --- a/sbnobj/SBND/Timing/TimingInfo.cxx +++ b/sbnobj/SBND/Timing/TimingInfo.cxx @@ -1,3 +1,11 @@ +/* + * @file sbnobj/SBND/Timing/TimingInfo.cxx + * @brief Defines data structures for SBND Timing Product (docdb#43090). + * @author Vu Chi Lan Nguyen + * @date August 29, 2025 + * + */ + #ifndef SBND_TIMINGINFO_CXX #define SBND_TIMINGINFO_CXX @@ -31,7 +39,7 @@ namespace sbnd::timing { uint64_t TimingInfo::RawDAQHeaderTimestamp() const { return fRawDAQHeaderTimestamp; } uint64_t TimingInfo::TdcCrtt1() const { return fTdcCrtt1; } - uint64_t TimingInfo::TdcBes() const { return fTdcRwm; } + uint64_t TimingInfo::TdcBes() const { return fTdcBes; } uint64_t TimingInfo::TdcRwm() const { return fTdcRwm; } uint64_t TimingInfo::TdcEtrig() const { return fTdcEtrig; } uint64_t TimingInfo::HltCrtt1() const { return fHltCrtt1; } diff --git a/sbnobj/SBND/Timing/TimingInfo.hh b/sbnobj/SBND/Timing/TimingInfo.hh index 9d4201207..473121cd9 100644 --- a/sbnobj/SBND/Timing/TimingInfo.hh +++ b/sbnobj/SBND/Timing/TimingInfo.hh @@ -1,9 +1,9 @@ -/** - * \brief Data product to store important timestamps +/* + * @file sbnobj/SBND/Timing/TimingInfo.hh + * @brief Defines data structures for SBND Timing Product (docdb#43090). + * @author Vu Chi Lan Nguyen + * @date August 29, 2025 * - * \author Vu Chi Lan Nguyen (vclnguyen@ucsb.edu) - * To save important timing info in unix timestamp format - * Products made by FrameShift module */ #ifndef SBND_TIMINGINFO_HH @@ -12,45 +12,76 @@ #include #include #include -#include // for std::numeric_limits +#include namespace sbnd::timing { + /* + * @brief A struct to store important timestamps in SBND Data + * + * Each timestamp is in UNIX Timestamp Format [ns] + * + */ + class TimingInfo { - uint64_t fRawDAQHeaderTimestamp; - uint64_t fTdcCrtt1; - uint64_t fTdcBes; - uint64_t fTdcRwm; - uint64_t fTdcEtrig; //Global frame for timingType = 0 - uint64_t fHltCrtt1; - uint64_t fHltEtrig; //Global frame for timingType = 1 - uint64_t fHltBeamGate; + uint64_t fRawDAQHeaderTimestamp; ///< Timestamp when the event is built by the event builder at DAQ-level + uint64_t fTdcCrtt1; ///< Timestamp of BNB stream CRT T1 Reset recorded by the SPEC-TDC + uint64_t fTdcBes; ///< Timestamp of BES signal sent by MFTU recorded by the SPEC-TDC + uint64_t fTdcRwm; ///< Timestamp of RWM signal recorded by the SPEC-TDC + uint64_t fTdcEtrig; ///< Timestamp of Event Trigger (ETRIG) sent by the PTB recorded by the SPEC-TDC + uint64_t fHltCrtt1; ///< Timestamp of BNB and Offbeam stream CRT T1 Reset High Level Trigger (HLT) created by the PTB + uint64_t fHltEtrig; ///< Timestamp of ETRIG HLT created by the PTB + uint64_t fHltBeamGate; ///< Timestamp of Beam Gate Acceptance HLT created by the PTB public: + /* + * Default constructor. + */ TimingInfo(); + /* + * Constructor to set all timestamps + * + * @param _rawDAQHeaderTimestamp Raw DAQ Timestamp in UNIX format [ns] + * @param _tdcCrtt1 CRT T1 Timestamp in UNIX format [ns] + * @param _tdcBes BES Timestamp recorded by TDC in UNIX format [ns] + * @param _tdcRwm RWM Timestamp recorded by TDC in UNIX format [ns] + * @param _tdcEtrig ETRIG Timestamp recorded by TDC in UNIX format [ns] + * @param _hltCrtt1 CRT T1 Timestamp created by PTB in UNIX format [ns] + * @param _hltEtrig ETRIG Timestamp created by PTB in UNIX format [ns] + * @param _hltBeamGate Beam Gate Timestamp created by PTB in UNIX format [ns] + */ TimingInfo(uint64_t _rawDAQHeaderTimestamp, uint64_t _tdcCrtt1, uint64_t _tdcBes, uint64_t _tdcRwm, uint64_t _tdcEtrig, uint64_t _hltCrtt1, uint64_t _hltEtrig, uint64_t _hltBeamGate); + /** + * Destructor + */ virtual ~TimingInfo(); + /** + * Getters + */ uint64_t RawDAQHeaderTimestamp() const; uint64_t TdcCrtt1() const; uint64_t TdcBes() const; uint64_t TdcRwm() const; - uint64_t TdcEtrig() const; //Global frame for timingType = 0 + uint64_t TdcEtrig() const; uint64_t HltCrtt1() const; - uint64_t HltEtrig() const; //Global frame for timingType = 1 + uint64_t HltEtrig() const; uint64_t HltBeamGate() const; + /** + * Setters + */ void SetRawDAQHeaderTimestamp(uint64_t timestamp); void SetTdcCrtt1(uint64_t timestamp); void SetTdcBes(uint64_t timestamp); void SetTdcRwm(uint64_t timestamp); - void SetTdcEtrig(uint64_t timestamp); //Global frame for timingType = 0 + void SetTdcEtrig(uint64_t timestamp); void SetHltCrtt1(uint64_t timestamp); - void SetHltEtrig(uint64_t timestamp); //Global frame for timingType = 1 + void SetHltEtrig(uint64_t timestamp); void SetHltBeamGate(uint64_t timestamp); }; } From 6331084fed6c3f1d257bff4d053224d45d4b60d6 Mon Sep 17 00:00:00 2001 From: VCLanNguyen <74775793+VCLanNguyen@users.noreply.github.com> Date: Tue, 2 Sep 2025 07:20:00 -0700 Subject: [PATCH 03/10] Update sbnobj/SBND/Timing/FrameShiftInfo.cxx for Doxygen format Co-authored-by: Gianluca Petrillo --- sbnobj/SBND/Timing/FrameShiftInfo.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbnobj/SBND/Timing/FrameShiftInfo.cxx b/sbnobj/SBND/Timing/FrameShiftInfo.cxx index e26ba6099..70aee810a 100644 --- a/sbnobj/SBND/Timing/FrameShiftInfo.cxx +++ b/sbnobj/SBND/Timing/FrameShiftInfo.cxx @@ -1,4 +1,4 @@ -/* +/** * @file sbnobj/SBND/Timing/FrameShiftInfo.cxx * @brief Defines data structures for SBND Frame Shift products (docdb#43090). * @author Vu Chi Lan Nguyen From 5688d6bb2de0b503a6ea22c396fb9c27f67f9106 Mon Sep 17 00:00:00 2001 From: VCLanNguyen <74775793+VCLanNguyen@users.noreply.github.com> Date: Tue, 2 Sep 2025 07:23:33 -0700 Subject: [PATCH 04/10] Update sbnobj/SBND/Timing/FrameShiftInfo.cxx - fix typo Co-authored-by: Gianluca Petrillo --- sbnobj/SBND/Timing/FrameShiftInfo.cxx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sbnobj/SBND/Timing/FrameShiftInfo.cxx b/sbnobj/SBND/Timing/FrameShiftInfo.cxx index 70aee810a..69fa77203 100644 --- a/sbnobj/SBND/Timing/FrameShiftInfo.cxx +++ b/sbnobj/SBND/Timing/FrameShiftInfo.cxx @@ -6,8 +6,8 @@ * */ -#ifndef SBND_FRAMSHIFTINFO_CXX -#define SBND_FRAMSHIFTINFO_CXX +#ifndef SBND_FRAMESHIFTINFO_CXX +#define SBND_FRAMESHIFTINFO_CXX #include "sbnobj/SBND/Timing/FrameShiftInfo.hh" From 576d9f4987602879699e935bd56d3aa399aebc09 Mon Sep 17 00:00:00 2001 From: VCLanNguyen <74775793+VCLanNguyen@users.noreply.github.com> Date: Tue, 2 Sep 2025 07:23:51 -0700 Subject: [PATCH 05/10] Update sbnobj/SBND/Timing/FrameShiftInfo.hh - add for doxygen style Co-authored-by: Gianluca Petrillo --- sbnobj/SBND/Timing/FrameShiftInfo.hh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbnobj/SBND/Timing/FrameShiftInfo.hh b/sbnobj/SBND/Timing/FrameShiftInfo.hh index a11226fcc..b0b120ce9 100644 --- a/sbnobj/SBND/Timing/FrameShiftInfo.hh +++ b/sbnobj/SBND/Timing/FrameShiftInfo.hh @@ -35,7 +35,7 @@ namespace sbnd::timing { public: - /* + /** * Default constructor. */ FrameShiftInfo(); From 5961a2a195b0bd4285bf7872c0dd682891d52794 Mon Sep 17 00:00:00 2001 From: VCLanNguyen <74775793+VCLanNguyen@users.noreply.github.com> Date: Tue, 2 Sep 2025 07:24:27 -0700 Subject: [PATCH 06/10] Update sbnobj/SBND/Timing/FrameShiftInfo.hh -- add for doxygen style Co-authored-by: Gianluca Petrillo --- sbnobj/SBND/Timing/FrameShiftInfo.hh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sbnobj/SBND/Timing/FrameShiftInfo.hh b/sbnobj/SBND/Timing/FrameShiftInfo.hh index b0b120ce9..f9bfeca57 100644 --- a/sbnobj/SBND/Timing/FrameShiftInfo.hh +++ b/sbnobj/SBND/Timing/FrameShiftInfo.hh @@ -16,11 +16,13 @@ namespace sbnd::timing { - /* + /** * @brief A struct to shifts across different reference frames in SBND Data * * Each shift is in [ns] * + * For more information, see + * [SBN DocDB 43090](https://sbn-docdb.fnal.gov/cgi-bin/sso/ShowDocument?docid=43090). */ class FrameShiftInfo { From 50340300c8b6eaa47734727c4b16201c25052907 Mon Sep 17 00:00:00 2001 From: VCLanNguyen <74775793+VCLanNguyen@users.noreply.github.com> Date: Tue, 2 Sep 2025 07:47:00 -0700 Subject: [PATCH 07/10] Update sbnobj/SBND/Timing/FrameShiftInfo.hh -- add doxygen comment styles Co-authored-by: Gianluca Petrillo --- sbnobj/SBND/Timing/FrameShiftInfo.hh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sbnobj/SBND/Timing/FrameShiftInfo.hh b/sbnobj/SBND/Timing/FrameShiftInfo.hh index f9bfeca57..5f7aff0f1 100644 --- a/sbnobj/SBND/Timing/FrameShiftInfo.hh +++ b/sbnobj/SBND/Timing/FrameShiftInfo.hh @@ -60,9 +60,8 @@ namespace sbnd::timing { */ virtual ~FrameShiftInfo(); - /** - * Getters - */ + /// @name Getters + /// @{ uint16_t TimingType() const; double FrameTdcCrtt1() const; double FrameTdcBes() const; @@ -70,6 +69,7 @@ namespace sbnd::timing { double FrameHltCrtt1() const; double FrameHltBeamGate() const; double FrameApplyAtCaf() const; + /// @} /** * Getters From 892db00f2f3f50fc6890a575fbd0db23bbbfb935 Mon Sep 17 00:00:00 2001 From: VCLanNguyen Date: Tue, 2 Sep 2025 11:18:54 -0500 Subject: [PATCH 08/10] address doxygen comments and classes def --- sbnobj/SBND/Timing/FrameShiftInfo.cxx | 44 ++--------- sbnobj/SBND/Timing/FrameShiftInfo.hh | 85 +++++++++++---------- sbnobj/SBND/Timing/TimingInfo.cxx | 49 +++--------- sbnobj/SBND/Timing/TimingInfo.hh | 104 +++++++++++++------------- sbnobj/SBND/Timing/classes_def.xml | 14 ++-- 5 files changed, 117 insertions(+), 179 deletions(-) diff --git a/sbnobj/SBND/Timing/FrameShiftInfo.cxx b/sbnobj/SBND/Timing/FrameShiftInfo.cxx index 69fa77203..3c328c115 100644 --- a/sbnobj/SBND/Timing/FrameShiftInfo.cxx +++ b/sbnobj/SBND/Timing/FrameShiftInfo.cxx @@ -13,43 +13,15 @@ namespace sbnd::timing { - FrameShiftInfo::FrameShiftInfo() - : fTimingType(99) - , fFrameTdcCrtt1(0) - , fFrameTdcBes(0) - , fFrameTdcRwm(0) - , fFrameHltCrtt1(0) - , fFrameHltBeamGate(0) - , fFrameApplyAtCaf(0) + FrameShiftInfo::FrameShiftInfo(uint16_t timingType, double frameTdcCrtt1, double frameTdcBes, double frameTdcRwm, double frameHltCrtt1, double frameHltBeamGate, double frameApplyAtCaf) + : fTimingType(timingType) + , fFrameTdcCrtt1(frameTdcCrtt1) + , fFrameTdcBes(frameTdcBes) + , fFrameTdcRwm(frameTdcRwm) + , fFrameHltCrtt1(frameHltCrtt1) + , fFrameHltBeamGate(frameHltBeamGate) + , fFrameApplyAtCaf(frameApplyAtCaf) {} - - FrameShiftInfo::FrameShiftInfo(uint16_t _timingType, double _frameTdcCrtt1, double _frameTdcBes, double _frameTdcRwm, double _frameHltCrtt1, double _frameHltBeamGate, double _frameApplyAtCaf) - : fTimingType(_timingType) - , fFrameTdcCrtt1(_frameTdcCrtt1) - , fFrameTdcBes(_frameTdcBes) - , fFrameTdcRwm(_frameTdcRwm) - , fFrameHltCrtt1(_frameHltCrtt1) - , fFrameHltBeamGate(_frameHltBeamGate) - , fFrameApplyAtCaf(_frameApplyAtCaf) - {} - - FrameShiftInfo::~FrameShiftInfo() {} - - uint16_t FrameShiftInfo::TimingType() const { return fTimingType; } - double FrameShiftInfo::FrameTdcCrtt1() const { return fFrameTdcCrtt1; } - double FrameShiftInfo::FrameTdcBes() const { return fFrameTdcBes; } - double FrameShiftInfo::FrameTdcRwm() const { return fFrameTdcRwm; } - double FrameShiftInfo::FrameHltCrtt1() const { return fFrameHltCrtt1; } - double FrameShiftInfo::FrameHltBeamGate() const { return fFrameHltBeamGate; } - double FrameShiftInfo::FrameApplyAtCaf() const { return fFrameApplyAtCaf; } - - void FrameShiftInfo::SetTimingType(uint16_t _type){ fTimingType = _type; } - void FrameShiftInfo::SetFrameTdcCrtt1(double _frame){ fFrameTdcCrtt1 = _frame; } - void FrameShiftInfo::SetFrameTdcBes(double _frame){ fFrameTdcBes = _frame; } - void FrameShiftInfo::SetFrameTdcRwm(double _frame){ fFrameTdcRwm = _frame; } - void FrameShiftInfo::SetFrameHltCrtt1(double _frame){ fFrameHltCrtt1 = _frame; } - void FrameShiftInfo::SetFrameHltBeamGate(double _frame){ fFrameHltBeamGate = _frame; } - void FrameShiftInfo::SetFrameApplyAtCaf(double _frame){ fFrameApplyAtCaf = _frame; } } #endif diff --git a/sbnobj/SBND/Timing/FrameShiftInfo.hh b/sbnobj/SBND/Timing/FrameShiftInfo.hh index 5f7aff0f1..26ae127ba 100644 --- a/sbnobj/SBND/Timing/FrameShiftInfo.hh +++ b/sbnobj/SBND/Timing/FrameShiftInfo.hh @@ -10,14 +10,12 @@ #define SBND_FRAMESHIFTINFO_HH #include -#include -#include #include namespace sbnd::timing { /** - * @brief A struct to shifts across different reference frames in SBND Data + * @brief A class to store the shifts across different time reference frames in SBND Data * * Each shift is in [ns] * @@ -26,61 +24,62 @@ namespace sbnd::timing { */ class FrameShiftInfo { + + public: + static constexpr uint16_t InvalidTimingType = 99; ///< Invalid timing type for decoded frame + static constexpr uint64_t NoShift = 0; ///< No shift. - uint16_t fTimingType; ///< Types of decoded frames: 0 - SPEC TDC ETRIG, 1 - HLT ETRIG, 2 - Do Nothing - double fFrameTdcCrtt1; ///< Shift from decoded frame to SPEC-TDC CRT T1 [ns] - double fFrameTdcBes; ///< Shift from decoded frame to SPEC-TDC BES [ns] - double fFrameTdcRwm; ///< Shift from decoded frame to SPEC-TDC RWM [ns] - double fFrameHltCrtt1; ///< Shift from decoded frame to HLT CRT T1 [ns] - double fFrameHltBeamGate; ///< Shift from decoded frame to HLT Beam Gate [ns] - double fFrameApplyAtCaf; ///< Frame to shift to when running at CAF stage + private: + + uint16_t fTimingType = InvalidTimingType; ///< Types of decoded frames: 0 - SPEC TDC ETRIG, 1 - HLT ETRIG, 2 - Do Nothing + double fFrameTdcCrtt1 = NoShift; ///< Shift from decoded frame to SPEC-TDC CRT T1 [ns] + double fFrameTdcBes = NoShift; ///< Shift from decoded frame to SPEC-TDC BES [ns] + double fFrameTdcRwm = NoShift; ///< Shift from decoded frame to SPEC-TDC RWM [ns] + double fFrameHltCrtt1 = NoShift; ///< Shift from decoded frame to HLT CRT T1 [ns] + double fFrameHltBeamGate = NoShift; ///< Shift from decoded frame to HLT Beam Gate [ns] + double fFrameApplyAtCaf = NoShift; ///< Frame to shift to when running at CAF stage public: /** * Default constructor. */ - FrameShiftInfo(); - - /* - * Constructor to set all timestamps - * - * @param _timingType Types of decoded frames - * @param _frameTdcCrtt1 Shift from decoded frame to SPEC-TDC CRT T1 [ns] - * @param _frameTdcBes Shift from decoded frame to SPEC-TDC BES [ns] - * @param _frameTdcRwm Shift from decoded frame to SPEC-TDC RWM [ns] - * @param _frameHltCrtt1 Shift from decoded frame to HLT CRT T1 [ns] - * @param _frameHltBeamGate Shift from decoded frame to HLT Beam Gate [ns] - * @param _frameApplyAtCaf Frame to shift to when running at CAF stage - */ - FrameShiftInfo(uint16_t _timingType, double _frameTdcCrtt1, double _frameTdcBes, double _frameTdcRwm, double _frameHltCrtt1, double _frameHltBeamGate, double _frameApplyAtCaf); + FrameShiftInfo() = default; /** - * Destructor + * Constructor to set all frames + * + * @param timingType Types of decoded frames + * @param frameTdcCrtt1 Shift from decoded frame to SPEC-TDC CRT T1 [ns] + * @param frameTdcBes Shift from decoded frame to SPEC-TDC BES [ns] + * @param frameTdcRwm Shift from decoded frame to SPEC-TDC RWM [ns] + * @param frameHltCrtt1 Shift from decoded frame to HLT CRT T1 [ns] + * @param frameHltBeamGate Shift from decoded frame to HLT Beam Gate [ns] + * @param frameApplyAtCaf Frame to shift to when running at CAF stage */ - virtual ~FrameShiftInfo(); + FrameShiftInfo(uint16_t timingType, double frameTdcCrtt1, double frameTdcBes, double frameTdcRwm, double frameHltCrtt1, double frameHltBeamGate, double frameApplyAtCaf); /// @name Getters /// @{ - uint16_t TimingType() const; - double FrameTdcCrtt1() const; - double FrameTdcBes() const; - double FrameTdcRwm() const; - double FrameHltCrtt1() const; - double FrameHltBeamGate() const; - double FrameApplyAtCaf() const; + uint16_t TimingType() const { return fTimingType; } + double FrameTdcCrtt1() const { return fFrameTdcCrtt1; } + double FrameTdcBes() const { return fFrameTdcBes; } + double FrameTdcRwm() const { return fFrameTdcRwm; } + double FrameHltCrtt1() const { return fFrameHltCrtt1;} + double FrameHltBeamGate() const { return fFrameHltBeamGate; } + double FrameApplyAtCaf() const { return fFrameApplyAtCaf; } /// @} - /** - * Getters - */ - void SetTimingType(uint16_t _type); - void SetFrameTdcCrtt1(double _frame); - void SetFrameTdcBes(double _frame); - void SetFrameTdcRwm(double _frame); - void SetFrameHltCrtt1(double _frame); - void SetFrameHltBeamGate(double _frame); - void SetFrameApplyAtCaf(double _frame); + /// @name Setters + /// @{ + void SetTimingType(uint16_t type){ fTimingType = type; } + void SetFrameTdcCrtt1(double frame){ fFrameTdcCrtt1 = frame; } + void SetFrameTdcBes(double frame){ fFrameTdcBes = frame; } + void SetFrameTdcRwm(double frame){ fFrameTdcRwm = frame; } + void SetFrameHltCrtt1(double frame){ fFrameHltCrtt1 = frame; } + void SetFrameHltBeamGate(double frame){ fFrameHltBeamGate = frame; } + void SetFrameApplyAtCaf(double frame){ fFrameApplyAtCaf = frame; } + /// @} }; } diff --git a/sbnobj/SBND/Timing/TimingInfo.cxx b/sbnobj/SBND/Timing/TimingInfo.cxx index 3e3aef936..f195f6d96 100644 --- a/sbnobj/SBND/Timing/TimingInfo.cxx +++ b/sbnobj/SBND/Timing/TimingInfo.cxx @@ -13,47 +13,16 @@ namespace sbnd::timing { - TimingInfo::TimingInfo() - : fRawDAQHeaderTimestamp(0) - , fTdcCrtt1(0) - , fTdcBes(0) - , fTdcRwm(0) - , fTdcEtrig(0) - , fHltCrtt1(0) - , fHltEtrig(0) - , fHltBeamGate(0) + TimingInfo::TimingInfo(uint64_t rawDAQHeaderTimestamp, uint64_t tdcCrtt1, uint64_t tdcBes, uint64_t tdcRwm, uint64_t tdcEtrig, uint64_t hltCrtt1, uint64_t hltEtrig, uint64_t hltBeamGate) + : fRawDAQHeaderTimestamp(rawDAQHeaderTimestamp) + , fTdcCrtt1(tdcCrtt1) + , fTdcBes(tdcBes) + , fTdcRwm(tdcRwm) + , fTdcEtrig(tdcEtrig) + , fHltCrtt1(hltCrtt1) + , fHltEtrig(hltEtrig) + , fHltBeamGate(hltBeamGate) {} - - TimingInfo::TimingInfo(uint64_t _rawDAQHeaderTimestamp, uint64_t _tdcCrtt1, uint64_t _tdcBes, uint64_t _tdcRwm, uint64_t _tdcEtrig, uint64_t _hltCrtt1, uint64_t _hltEtrig, uint64_t _hltBeamGate) - : fRawDAQHeaderTimestamp(_rawDAQHeaderTimestamp) - , fTdcCrtt1(_tdcCrtt1) - , fTdcBes(_tdcBes) - , fTdcRwm(_tdcRwm) - , fTdcEtrig(_tdcEtrig) - , fHltCrtt1(_hltCrtt1) - , fHltEtrig(_hltEtrig) - , fHltBeamGate(_hltBeamGate) - {} - - TimingInfo::~TimingInfo() {} - - uint64_t TimingInfo::RawDAQHeaderTimestamp() const { return fRawDAQHeaderTimestamp; } - uint64_t TimingInfo::TdcCrtt1() const { return fTdcCrtt1; } - uint64_t TimingInfo::TdcBes() const { return fTdcBes; } - uint64_t TimingInfo::TdcRwm() const { return fTdcRwm; } - uint64_t TimingInfo::TdcEtrig() const { return fTdcEtrig; } - uint64_t TimingInfo::HltCrtt1() const { return fHltCrtt1; } - uint64_t TimingInfo::HltEtrig() const { return fHltEtrig; } - uint64_t TimingInfo::HltBeamGate() const { return fHltBeamGate; } - - void TimingInfo::SetRawDAQHeaderTimestamp(uint64_t _timestamp){ fRawDAQHeaderTimestamp = _timestamp; } - void TimingInfo::SetTdcCrtt1(uint64_t _timestamp){ fTdcCrtt1 = _timestamp; } - void TimingInfo::SetTdcBes(uint64_t _timestamp){ fTdcBes = _timestamp; } - void TimingInfo::SetTdcRwm(uint64_t _timestamp){ fTdcRwm = _timestamp; } - void TimingInfo::SetTdcEtrig(uint64_t _timestamp){ fTdcEtrig = _timestamp; } - void TimingInfo::SetHltCrtt1(uint64_t _timestamp){ fHltCrtt1 = _timestamp; } - void TimingInfo::SetHltEtrig(uint64_t _timestamp){ fHltEtrig = _timestamp; } - void TimingInfo::SetHltBeamGate(uint64_t _timestamp){ fHltBeamGate = _timestamp; } } #endif diff --git a/sbnobj/SBND/Timing/TimingInfo.hh b/sbnobj/SBND/Timing/TimingInfo.hh index 473121cd9..d7ed17fac 100644 --- a/sbnobj/SBND/Timing/TimingInfo.hh +++ b/sbnobj/SBND/Timing/TimingInfo.hh @@ -1,6 +1,6 @@ /* * @file sbnobj/SBND/Timing/TimingInfo.hh - * @brief Defines data structures for SBND Timing Product (docdb#43090). + * @brief Defines data structures for SBND Timing products (docdb#43090). * @author Vu Chi Lan Nguyen * @date August 29, 2025 * @@ -10,79 +10,79 @@ #define SBND_TIMINGINFO_HH #include -#include -#include -#include namespace sbnd::timing { - /* - * @brief A struct to store important timestamps in SBND Data + /** + * @brief A class to store important timestamps in SBND Data * * Each timestamp is in UNIX Timestamp Format [ns] * + * For more information, see + * [SBN DocDB 43090](https://sbn-docdb.fnal.gov/cgi-bin/sso/ShowDocument?docid=43090). */ class TimingInfo { + + public: + static constexpr uint64_t InvalidTimestamp = 0; ///< Invalid timestamp - uint64_t fRawDAQHeaderTimestamp; ///< Timestamp when the event is built by the event builder at DAQ-level - uint64_t fTdcCrtt1; ///< Timestamp of BNB stream CRT T1 Reset recorded by the SPEC-TDC - uint64_t fTdcBes; ///< Timestamp of BES signal sent by MFTU recorded by the SPEC-TDC - uint64_t fTdcRwm; ///< Timestamp of RWM signal recorded by the SPEC-TDC - uint64_t fTdcEtrig; ///< Timestamp of Event Trigger (ETRIG) sent by the PTB recorded by the SPEC-TDC - uint64_t fHltCrtt1; ///< Timestamp of BNB and Offbeam stream CRT T1 Reset High Level Trigger (HLT) created by the PTB - uint64_t fHltEtrig; ///< Timestamp of ETRIG HLT created by the PTB - uint64_t fHltBeamGate; ///< Timestamp of Beam Gate Acceptance HLT created by the PTB + private: + + uint64_t fRawDAQHeaderTimestamp = InvalidTimestamp; ///< Timestamp when the event is built by the event builder at DAQ-level + uint64_t fTdcCrtt1 = InvalidTimestamp; ///< Timestamp of BNB stream CRT T1 Reset recorded by the SPEC-TDC + uint64_t fTdcBes = InvalidTimestamp; ///< Timestamp of BES signal sent by MFTU recorded by the SPEC-TDC + uint64_t fTdcRwm = InvalidTimestamp; ///< Timestamp of RWM signal recorded by the SPEC-TDC + uint64_t fTdcEtrig = InvalidTimestamp; ///< Timestamp of Event Trigger (ETRIG) sent by the PTB recorded by the SPEC-TDC + uint64_t fHltCrtt1 = InvalidTimestamp; ///< Timestamp of BNB and Offbeam stream CRT T1 Reset High Level Trigger (HLT) created by the PTB + uint64_t fHltEtrig = InvalidTimestamp; ///< Timestamp of ETRIG HLT created by the PTB + uint64_t fHltBeamGate = InvalidTimestamp; ///< Timestamp of Beam Gate Acceptance HLT created by the PTB public: - /* + /** * Default constructor. */ - TimingInfo(); + TimingInfo() = default; /* * Constructor to set all timestamps * - * @param _rawDAQHeaderTimestamp Raw DAQ Timestamp in UNIX format [ns] - * @param _tdcCrtt1 CRT T1 Timestamp in UNIX format [ns] - * @param _tdcBes BES Timestamp recorded by TDC in UNIX format [ns] - * @param _tdcRwm RWM Timestamp recorded by TDC in UNIX format [ns] - * @param _tdcEtrig ETRIG Timestamp recorded by TDC in UNIX format [ns] - * @param _hltCrtt1 CRT T1 Timestamp created by PTB in UNIX format [ns] - * @param _hltEtrig ETRIG Timestamp created by PTB in UNIX format [ns] - * @param _hltBeamGate Beam Gate Timestamp created by PTB in UNIX format [ns] - */ - TimingInfo(uint64_t _rawDAQHeaderTimestamp, uint64_t _tdcCrtt1, uint64_t _tdcBes, uint64_t _tdcRwm, uint64_t _tdcEtrig, uint64_t _hltCrtt1, uint64_t _hltEtrig, uint64_t _hltBeamGate); - - /** - * Destructor + * @param rawDAQHeaderTimestamp Raw DAQ Timestamp in UNIX format [ns] + * @param tdcCrtt1 CRT T1 Timestamp in UNIX format [ns] + * @param tdcBes BES Timestamp recorded by TDC in UNIX format [ns] + * @param tdcRwm RWM Timestamp recorded by TDC in UNIX format [ns] + * @param tdcEtrig ETRIG Timestamp recorded by TDC in UNIX format [ns] + * @param hltCrtt1 CRT T1 Timestamp created by PTB in UNIX format [ns] + * @param hltEtrig ETRIG Timestamp created by PTB in UNIX format [ns] + * @param hltBeamGate Beam Gate Timestamp created by PTB in UNIX format [ns] */ - virtual ~TimingInfo(); + TimingInfo(uint64_t rawDAQHeaderTimestamp, uint64_t tdcCrtt1, uint64_t tdcBes, uint64_t tdcRwm, uint64_t tdcEtrig, uint64_t hltCrtt1, uint64_t hltEtrig, uint64_t hltBeamGate); - /** - * Getters - */ - uint64_t RawDAQHeaderTimestamp() const; - uint64_t TdcCrtt1() const; - uint64_t TdcBes() const; - uint64_t TdcRwm() const; - uint64_t TdcEtrig() const; - uint64_t HltCrtt1() const; - uint64_t HltEtrig() const; - uint64_t HltBeamGate() const; + /// @name Getters + /// @{ + uint64_t RawDAQHeaderTimestamp() const { return fRawDAQHeaderTimestamp; } + uint64_t TdcCrtt1() const { return fTdcCrtt1; } + uint64_t TdcBes() const { return fTdcBes; } + uint64_t TdcRwm() const { return fTdcRwm; } + uint64_t TdcEtrig() const { return fTdcEtrig; } + uint64_t HltCrtt1() const { return fHltCrtt1; } + uint64_t HltEtrig() const { return fHltEtrig; } + uint64_t HltBeamGate() const { return fHltBeamGate; } + /// @} - /** - * Setters - */ - void SetRawDAQHeaderTimestamp(uint64_t timestamp); - void SetTdcCrtt1(uint64_t timestamp); - void SetTdcBes(uint64_t timestamp); - void SetTdcRwm(uint64_t timestamp); - void SetTdcEtrig(uint64_t timestamp); - void SetHltCrtt1(uint64_t timestamp); - void SetHltEtrig(uint64_t timestamp); - void SetHltBeamGate(uint64_t timestamp); + /// @name Setters + /// @{ + void SetRawDAQHeaderTimestamp(uint64_t timestamp){ fRawDAQHeaderTimestamp = timestamp; } + void SetTdcCrtt1(uint64_t timestamp){ fTdcCrtt1 = timestamp; } + void SetTdcBes(uint64_t timestamp){ fTdcBes = timestamp; } + void SetTdcRwm(uint64_t timestamp){ fTdcRwm = timestamp; } + void SetTdcEtrig(uint64_t timestamp){ fTdcEtrig = timestamp; } + void SetHltCrtt1(uint64_t timestamp){ fHltCrtt1 = timestamp; } + void SetHltEtrig(uint64_t timestamp){ fHltEtrig = timestamp; } + void SetHltBeamGate(uint64_t timestamp){ fHltBeamGate = timestamp; } + /// @} + }; } diff --git a/sbnobj/SBND/Timing/classes_def.xml b/sbnobj/SBND/Timing/classes_def.xml index e1ba42590..717e1bfff 100644 --- a/sbnobj/SBND/Timing/classes_def.xml +++ b/sbnobj/SBND/Timing/classes_def.xml @@ -1,20 +1,18 @@ - - + + - - - + + - - - + + From c8a8d02af53abe1034c0c39c42d14f687262f092 Mon Sep 17 00:00:00 2001 From: VCLanNguyen Date: Tue, 2 Sep 2025 12:30:37 -0500 Subject: [PATCH 09/10] add doxygen style comment --- sbnobj/SBND/Timing/FrameShiftInfo.hh | 2 +- sbnobj/SBND/Timing/TimingInfo.cxx | 2 +- sbnobj/SBND/Timing/TimingInfo.hh | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/sbnobj/SBND/Timing/FrameShiftInfo.hh b/sbnobj/SBND/Timing/FrameShiftInfo.hh index 26ae127ba..a7730a3fc 100644 --- a/sbnobj/SBND/Timing/FrameShiftInfo.hh +++ b/sbnobj/SBND/Timing/FrameShiftInfo.hh @@ -1,4 +1,4 @@ -/* +/** * @file sbnobj/SBND/Timing/FrameShiftInfo.hh * @brief Defines data structures for SBND Frame Shift products (docdb#43090). * @author Vu Chi Lan Nguyen diff --git a/sbnobj/SBND/Timing/TimingInfo.cxx b/sbnobj/SBND/Timing/TimingInfo.cxx index f195f6d96..84ba5dd41 100644 --- a/sbnobj/SBND/Timing/TimingInfo.cxx +++ b/sbnobj/SBND/Timing/TimingInfo.cxx @@ -1,4 +1,4 @@ -/* +/** * @file sbnobj/SBND/Timing/TimingInfo.cxx * @brief Defines data structures for SBND Timing Product (docdb#43090). * @author Vu Chi Lan Nguyen diff --git a/sbnobj/SBND/Timing/TimingInfo.hh b/sbnobj/SBND/Timing/TimingInfo.hh index d7ed17fac..04daef1a5 100644 --- a/sbnobj/SBND/Timing/TimingInfo.hh +++ b/sbnobj/SBND/Timing/TimingInfo.hh @@ -1,4 +1,4 @@ -/* +/** * @file sbnobj/SBND/Timing/TimingInfo.hh * @brief Defines data structures for SBND Timing products (docdb#43090). * @author Vu Chi Lan Nguyen From 3a469dac54a5fc88ba4f1e3234af003d6c6eb4ec Mon Sep 17 00:00:00 2001 From: VCLanNguyen Date: Tue, 2 Sep 2025 19:50:11 -0500 Subject: [PATCH 10/10] add missing asterisk --- sbnobj/SBND/Timing/TimingInfo.hh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbnobj/SBND/Timing/TimingInfo.hh b/sbnobj/SBND/Timing/TimingInfo.hh index 04daef1a5..32b89e840 100644 --- a/sbnobj/SBND/Timing/TimingInfo.hh +++ b/sbnobj/SBND/Timing/TimingInfo.hh @@ -45,7 +45,7 @@ namespace sbnd::timing { */ TimingInfo() = default; - /* + /** * Constructor to set all timestamps * * @param rawDAQHeaderTimestamp Raw DAQ Timestamp in UNIX format [ns]