From ea2a3d886609dddcdd5647bfda9ba04df5038817 Mon Sep 17 00:00:00 2001 From: VCLanNguyen Date: Tue, 12 Aug 2025 16:42:32 -0500 Subject: [PATCH 1/6] first commit --- sbnanaobj/StandardRecord/SRSBNDFrame.cxx | 20 +++++++++++++ sbnanaobj/StandardRecord/SRSBNDFrame.h | 26 +++++++++++++++++ sbnanaobj/StandardRecord/SRSBNDTimingInfo.cxx | 21 ++++++++++++++ sbnanaobj/StandardRecord/SRSBNDTimingInfo.h | 28 +++++++++++++++++++ sbnanaobj/StandardRecord/StandardRecord.h | 4 +++ sbnanaobj/StandardRecord/classes_def.xml | 3 +- 6 files changed, 101 insertions(+), 1 deletion(-) create mode 100644 sbnanaobj/StandardRecord/SRSBNDFrame.cxx create mode 100644 sbnanaobj/StandardRecord/SRSBNDFrame.h create mode 100644 sbnanaobj/StandardRecord/SRSBNDTimingInfo.cxx create mode 100644 sbnanaobj/StandardRecord/SRSBNDTimingInfo.h diff --git a/sbnanaobj/StandardRecord/SRSBNDFrame.cxx b/sbnanaobj/StandardRecord/SRSBNDFrame.cxx new file mode 100644 index 00000000..38af55f6 --- /dev/null +++ b/sbnanaobj/StandardRecord/SRSBNDFrame.cxx @@ -0,0 +1,20 @@ +//////////////////////////////////////////////////////////////////////// +// \file SRSBNDFrame.cxx +//////////////////////////////////////////////////////////////////////// + +#include "sbnanaobj/StandardRecord/SRSBNDFrame.h" + +#include + +namespace caf +{ + SRSBNDFrame::SRSBNDFrame(): + frameTdcCrtt1(std::numeric_limits::signaling_NaN()), + frameTdcBes(std::numeric_limits::signaling_NaN()), + frameTdcRwm(std::numeric_limits::signaling_NaN()), + frameHltCrtt1(std::numeric_limits::signaling_NaN()), + frameHltBeamGate(std::numeric_limits::signaling_NaN()), + frameDataToMC(std::numeric_limits::signaling_NaN()) + {} +} // end namespace caf +//////////////////////////////////////////////////////////////////////// diff --git a/sbnanaobj/StandardRecord/SRSBNDFrame.h b/sbnanaobj/StandardRecord/SRSBNDFrame.h new file mode 100644 index 00000000..e59c36f7 --- /dev/null +++ b/sbnanaobj/StandardRecord/SRSBNDFrame.h @@ -0,0 +1,26 @@ +//////////////////////////////////////////////////////////////////////// +// \file SRSBNDFrame.h +//////////////////////////////////////////////////////////////////////// +#ifndef SRSBNDFRAME_H +#define SRSBNDFRAME_H + +namespace caf +{ + class SRSBNDFrame + { + public: + SRSBNDFrame(); + virtual ~SRSBNDFrame() {} + + double frameTdcCrtt1; + double frameTdcBes; + double frameTdcRwm; + double frameHltCrtt1; + double frameHltBeamGate; + double frameDataToMC; + + }; +} // end namespace + +#endif // SRSBNDFRAME_H +////////////////////////////////////////////////////////////////////////////// diff --git a/sbnanaobj/StandardRecord/SRSBNDTimingInfo.cxx b/sbnanaobj/StandardRecord/SRSBNDTimingInfo.cxx new file mode 100644 index 00000000..816fc7df --- /dev/null +++ b/sbnanaobj/StandardRecord/SRSBNDTimingInfo.cxx @@ -0,0 +1,21 @@ +//////////////////////////////////////////////////////////////////////// +// \file SRSBNDTimingInfo.cxx +//////////////////////////////////////////////////////////////////////// + +#include "sbnanaobj/StandardRecord/SRSBNDTimingInfo.h" + +#include + +namespace caf +{ + SRSBNDTimingInfo::SRSBNDTimingInfo(): + tdcCrtt1(std::numeric_limits::min()), + tdcBes(std::numeric_limits::min()), + tdcRwm(std::numeric_limits::min()), + tdcEtrig(std::numeric_limits::min()), + hltCrtt1(std::numeric_limits::min()), + hltEtrig(std::numeric_limits::min()), + hltBeamGate(std::numeric_limits::min()) + {} +} // end namespace caf +//////////////////////////////////////////////////////////////////////// diff --git a/sbnanaobj/StandardRecord/SRSBNDTimingInfo.h b/sbnanaobj/StandardRecord/SRSBNDTimingInfo.h new file mode 100644 index 00000000..6d5199e3 --- /dev/null +++ b/sbnanaobj/StandardRecord/SRSBNDTimingInfo.h @@ -0,0 +1,28 @@ +//////////////////////////////////////////////////////////////////////// +// \file SRSBNDTimingInfo.h +//////////////////////////////////////////////////////////////////////// +#ifndef SRSBNDFRAME_H +#define SRSBNDFRAME_H + +#include + +namespace caf +{ + class SRSBNDTimingInfo + { + public: + SRSBNDTimingInfo(); + virtual ~SRSBNDTimingInfo() {} + + uint64_t tdcCrtt1; + uint64_t tdcBes; + uint64_t tdcRwm; + uint64_t tdcEtrig; + uint64_t hltCrtt1; + uint64_t hltEtrig; + uint64_t hltBeamGate; + }; +} // end namespace + +#endif // SRSBNDFRAME_H +////////////////////////////////////////////////////////////////////////////// diff --git a/sbnanaobj/StandardRecord/StandardRecord.h b/sbnanaobj/StandardRecord/StandardRecord.h index c08f6d6b..80daede8 100644 --- a/sbnanaobj/StandardRecord/StandardRecord.h +++ b/sbnanaobj/StandardRecord/StandardRecord.h @@ -11,6 +11,8 @@ #include "sbnanaobj/StandardRecord/SRCRTTrack.h" #include "sbnanaobj/StandardRecord/SRCRTSpacePoint.h" #include "sbnanaobj/StandardRecord/SRSBNDCRTTrack.h" +#include "sbnanaobj/StandardRecord/SRSBNDFrame.h" +#include "sbnanaobj/StandardRecord/SRSBNDTimingInfo.h" #include "sbnanaobj/StandardRecord/SRHeader.h" #include "sbnanaobj/StandardRecord/SRCRTPMTMatch.h" #include "sbnanaobj/StandardRecord/SRSlice.h" @@ -54,6 +56,8 @@ namespace caf std::vector sbnd_crt_tracks; ///< CRT tracks in event (SBND) int nopflashes; ///< Number of OpFlashes in spill std::vector opflashes; ///< List of OpFlashes in spill + int nsbnd_frames; ///< Number of Frames (SBND) + std::vector sbnd_frames; ///< List of Frames (SBND) int ncrtpmt_matches; /// crtpmt_matches; ///< CRT-PMT matches in event diff --git a/sbnanaobj/StandardRecord/classes_def.xml b/sbnanaobj/StandardRecord/classes_def.xml index 6833f079..d039c7f0 100644 --- a/sbnanaobj/StandardRecord/classes_def.xml +++ b/sbnanaobj/StandardRecord/classes_def.xml @@ -5,7 +5,8 @@ - + + From b05e89dcb12172aa5deef98cd234f6fd10eb41f6 Mon Sep 17 00:00:00 2001 From: VCLanNguyen Date: Mon, 25 Aug 2025 19:35:15 -0500 Subject: [PATCH 2/6] make new caf standard record --- ...SBNDFrame.cxx => SRSBNDFrameShiftInfo.cxx} | 7 ++++--- .../{SRSBNDFrame.h => SRSBNDFrameShiftInfo.h} | 19 ++++++++++--------- sbnanaobj/StandardRecord/SRSBNDTimingInfo.cxx | 1 + sbnanaobj/StandardRecord/SRSBNDTimingInfo.h | 1 + sbnanaobj/StandardRecord/StandardRecord.h | 8 +++++--- sbnanaobj/StandardRecord/classes_def.xml | 3 ++- 6 files changed, 23 insertions(+), 16 deletions(-) rename sbnanaobj/StandardRecord/{SRSBNDFrame.cxx => SRSBNDFrameShiftInfo.cxx} (73%) rename sbnanaobj/StandardRecord/{SRSBNDFrame.h => SRSBNDFrameShiftInfo.h} (58%) diff --git a/sbnanaobj/StandardRecord/SRSBNDFrame.cxx b/sbnanaobj/StandardRecord/SRSBNDFrameShiftInfo.cxx similarity index 73% rename from sbnanaobj/StandardRecord/SRSBNDFrame.cxx rename to sbnanaobj/StandardRecord/SRSBNDFrameShiftInfo.cxx index 38af55f6..a1bea3b5 100644 --- a/sbnanaobj/StandardRecord/SRSBNDFrame.cxx +++ b/sbnanaobj/StandardRecord/SRSBNDFrameShiftInfo.cxx @@ -2,19 +2,20 @@ // \file SRSBNDFrame.cxx //////////////////////////////////////////////////////////////////////// -#include "sbnanaobj/StandardRecord/SRSBNDFrame.h" +#include "sbnanaobj/StandardRecord/SRSBNDFrameShiftInfo.h" #include namespace caf { - SRSBNDFrame::SRSBNDFrame(): + SRSBNDFrameShiftInfo::SRSBNDFrameShiftInfo(): + timingType(std::numeric_limits::max()), frameTdcCrtt1(std::numeric_limits::signaling_NaN()), frameTdcBes(std::numeric_limits::signaling_NaN()), frameTdcRwm(std::numeric_limits::signaling_NaN()), frameHltCrtt1(std::numeric_limits::signaling_NaN()), frameHltBeamGate(std::numeric_limits::signaling_NaN()), - frameDataToMC(std::numeric_limits::signaling_NaN()) + frameApplyAtCaf(std::numeric_limits::signaling_NaN()) {} } // end namespace caf //////////////////////////////////////////////////////////////////////// diff --git a/sbnanaobj/StandardRecord/SRSBNDFrame.h b/sbnanaobj/StandardRecord/SRSBNDFrameShiftInfo.h similarity index 58% rename from sbnanaobj/StandardRecord/SRSBNDFrame.h rename to sbnanaobj/StandardRecord/SRSBNDFrameShiftInfo.h index e59c36f7..5783d1da 100644 --- a/sbnanaobj/StandardRecord/SRSBNDFrame.h +++ b/sbnanaobj/StandardRecord/SRSBNDFrameShiftInfo.h @@ -1,26 +1,27 @@ //////////////////////////////////////////////////////////////////////// -// \file SRSBNDFrame.h +// \file SRSBNDFrameShiftInfo.h //////////////////////////////////////////////////////////////////////// -#ifndef SRSBNDFRAME_H -#define SRSBNDFRAME_H +#ifndef SRSBNDFRAMESHIFTINFO_H +#define SRSBNDFRAMESHIFTINFO_H +#include namespace caf { - class SRSBNDFrame + class SRSBNDFrameShiftInfo { public: - SRSBNDFrame(); - virtual ~SRSBNDFrame() {} + SRSBNDFrameShiftInfo(); + virtual ~SRSBNDFrameShiftInfo() {} + uint16_t timingType; double frameTdcCrtt1; double frameTdcBes; double frameTdcRwm; double frameHltCrtt1; double frameHltBeamGate; - double frameDataToMC; - + double frameApplyAtCaf; }; } // end namespace -#endif // SRSBNDFRAME_H +#endif // SRSBNDFRAMESHIFTINFO_H ////////////////////////////////////////////////////////////////////////////// diff --git a/sbnanaobj/StandardRecord/SRSBNDTimingInfo.cxx b/sbnanaobj/StandardRecord/SRSBNDTimingInfo.cxx index 816fc7df..6a7fd1a1 100644 --- a/sbnanaobj/StandardRecord/SRSBNDTimingInfo.cxx +++ b/sbnanaobj/StandardRecord/SRSBNDTimingInfo.cxx @@ -9,6 +9,7 @@ namespace caf { SRSBNDTimingInfo::SRSBNDTimingInfo(): + rawDAQHeaderTimestamp(std::numeric_limits::min()), tdcCrtt1(std::numeric_limits::min()), tdcBes(std::numeric_limits::min()), tdcRwm(std::numeric_limits::min()), diff --git a/sbnanaobj/StandardRecord/SRSBNDTimingInfo.h b/sbnanaobj/StandardRecord/SRSBNDTimingInfo.h index 6d5199e3..89fab445 100644 --- a/sbnanaobj/StandardRecord/SRSBNDTimingInfo.h +++ b/sbnanaobj/StandardRecord/SRSBNDTimingInfo.h @@ -14,6 +14,7 @@ namespace caf SRSBNDTimingInfo(); virtual ~SRSBNDTimingInfo() {} + uint64_t rawDAQHeaderTimestamp; uint64_t tdcCrtt1; uint64_t tdcBes; uint64_t tdcRwm; diff --git a/sbnanaobj/StandardRecord/StandardRecord.h b/sbnanaobj/StandardRecord/StandardRecord.h index 80daede8..10fe9ce4 100644 --- a/sbnanaobj/StandardRecord/StandardRecord.h +++ b/sbnanaobj/StandardRecord/StandardRecord.h @@ -11,7 +11,7 @@ #include "sbnanaobj/StandardRecord/SRCRTTrack.h" #include "sbnanaobj/StandardRecord/SRCRTSpacePoint.h" #include "sbnanaobj/StandardRecord/SRSBNDCRTTrack.h" -#include "sbnanaobj/StandardRecord/SRSBNDFrame.h" +#include "sbnanaobj/StandardRecord/SRSBNDFrameShiftInfo.h" #include "sbnanaobj/StandardRecord/SRSBNDTimingInfo.h" #include "sbnanaobj/StandardRecord/SRHeader.h" #include "sbnanaobj/StandardRecord/SRCRTPMTMatch.h" @@ -56,8 +56,10 @@ namespace caf std::vector sbnd_crt_tracks; ///< CRT tracks in event (SBND) int nopflashes; ///< Number of OpFlashes in spill std::vector opflashes; ///< List of OpFlashes in spill - int nsbnd_frames; ///< Number of Frames (SBND) - std::vector sbnd_frames; ///< List of Frames (SBND) + int nsbnd_frames; ///< Number of Frame Shift in event (SBND) + std::vector sbnd_frames; ///< List of Frame Shift in event (SBND) + int nsbnd_timings; ///< Number of Timing Info in event (SBND) + std::vector sbnd_timings; ///< List of Timing Info in event in Unix format(SBND) int ncrtpmt_matches; /// crtpmt_matches; ///< CRT-PMT matches in event diff --git a/sbnanaobj/StandardRecord/classes_def.xml b/sbnanaobj/StandardRecord/classes_def.xml index d039c7f0..d025e8fe 100644 --- a/sbnanaobj/StandardRecord/classes_def.xml +++ b/sbnanaobj/StandardRecord/classes_def.xml @@ -5,7 +5,8 @@ - + + From 123c48d04629a42ab63516b2f2b15942ac01972b Mon Sep 17 00:00:00 2001 From: VCLanNguyen Date: Tue, 26 Aug 2025 15:28:56 -0500 Subject: [PATCH 3/6] update sbnd timing class --- sbnanaobj/StandardRecord/StandardRecord.h | 8 +++----- sbnanaobj/StandardRecord/classes_def.xml | 14 +++++++++++++- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/sbnanaobj/StandardRecord/StandardRecord.h b/sbnanaobj/StandardRecord/StandardRecord.h index 10fe9ce4..fffdba46 100644 --- a/sbnanaobj/StandardRecord/StandardRecord.h +++ b/sbnanaobj/StandardRecord/StandardRecord.h @@ -56,14 +56,12 @@ namespace caf std::vector sbnd_crt_tracks; ///< CRT tracks in event (SBND) int nopflashes; ///< Number of OpFlashes in spill std::vector opflashes; ///< List of OpFlashes in spill - int nsbnd_frames; ///< Number of Frame Shift in event (SBND) - std::vector sbnd_frames; ///< List of Frame Shift in event (SBND) - int nsbnd_timings; ///< Number of Timing Info in event (SBND) - std::vector sbnd_timings; ///< List of Timing Info in event in Unix format(SBND) - int ncrtpmt_matches; /// crtpmt_matches; ///< CRT-PMT matches in event bool pass_flashtrig; ///< Whether this Record passed the Flash Trigger requirement + SRSBNDFrameShiftInfo sbnd_frames; ///< List of Frame Shift in event (SBND) + SRSBNDTimingInfo sbnd_timings; ///< List of Timing Info in event in Unix format(SBND) + }; diff --git a/sbnanaobj/StandardRecord/classes_def.xml b/sbnanaobj/StandardRecord/classes_def.xml index d025e8fe..0587d0e9 100644 --- a/sbnanaobj/StandardRecord/classes_def.xml +++ b/sbnanaobj/StandardRecord/classes_def.xml @@ -5,7 +5,9 @@ - + + + @@ -408,6 +410,16 @@ + + + + + + + + + + From 5c21b166dc1ada5fab1b54298dd6d704d94e0aef Mon Sep 17 00:00:00 2001 From: VCLanNguyen Date: Fri, 29 Aug 2025 19:17:40 -0500 Subject: [PATCH 4/6] add doxygen style comments --- .../StandardRecord/SRSBNDFrameShiftInfo.cxx | 10 +++-- .../StandardRecord/SRSBNDFrameShiftInfo.h | 33 ++++++++++----- sbnanaobj/StandardRecord/SRSBNDTimingInfo.cxx | 10 +++-- sbnanaobj/StandardRecord/SRSBNDTimingInfo.h | 41 ++++++++++++------- sbnanaobj/StandardRecord/StandardRecord.h | 5 +-- 5 files changed, 64 insertions(+), 35 deletions(-) diff --git a/sbnanaobj/StandardRecord/SRSBNDFrameShiftInfo.cxx b/sbnanaobj/StandardRecord/SRSBNDFrameShiftInfo.cxx index a1bea3b5..0b3aa234 100644 --- a/sbnanaobj/StandardRecord/SRSBNDFrameShiftInfo.cxx +++ b/sbnanaobj/StandardRecord/SRSBNDFrameShiftInfo.cxx @@ -1,6 +1,10 @@ -//////////////////////////////////////////////////////////////////////// -// \file SRSBNDFrame.cxx -//////////////////////////////////////////////////////////////////////// +/* + * @file /sbnanaobj/StandardRecord/SRSBNDFrameShiftInfo.cxx + * @brief Defines CAF data structures to store sbnd::timing::FrameShiftInfo (docdb#43090). + * @author Vu Chi Lan Nguyen + * @date August 29, 2025 + * + */ #include "sbnanaobj/StandardRecord/SRSBNDFrameShiftInfo.h" diff --git a/sbnanaobj/StandardRecord/SRSBNDFrameShiftInfo.h b/sbnanaobj/StandardRecord/SRSBNDFrameShiftInfo.h index 5783d1da..04596a7e 100644 --- a/sbnanaobj/StandardRecord/SRSBNDFrameShiftInfo.h +++ b/sbnanaobj/StandardRecord/SRSBNDFrameShiftInfo.h @@ -1,27 +1,38 @@ -//////////////////////////////////////////////////////////////////////// -// \file SRSBNDFrameShiftInfo.h -//////////////////////////////////////////////////////////////////////// +/* + * @file /sbnanaobj/StandardRecord/SRSBNDFrameShiftInfo.h + * @brief Defines CAF data structures to store sbnd::timing::FrameShiftInfo (docdb#43090). + * @author Vu Chi Lan Nguyen + * @date August 29, 2025 + * + */ + #ifndef SRSBNDFRAMESHIFTINFO_H #define SRSBNDFRAMESHIFTINFO_H #include namespace caf { + /* + * @brief A struct to store shifts across different reference frames from sbnd::timing::FrameShiftInfo for SBND Data + * + * Each shift is in [ns] + * + */ + class SRSBNDFrameShiftInfo { public: SRSBNDFrameShiftInfo(); virtual ~SRSBNDFrameShiftInfo() {} - uint16_t timingType; - double frameTdcCrtt1; - double frameTdcBes; - double frameTdcRwm; - double frameHltCrtt1; - double frameHltBeamGate; - double frameApplyAtCaf; + uint16_t timingType; ///< Types of decoded frames: 0 - SPEC TDC ETRIG, 1 - HLT ETRIG, 2 - Do Nothing + double frameTdcCrtt1; ///< Shift from decoded frame to SPEC-TDC CRT T1 [ns] + double frameTdcBes; ///< Shift from decoded frame to SPEC-TDC BES [ns] + double frameTdcRwm; ///< Shift from decoded frame to SPEC-TDC RWM [ns] + double frameHltCrtt1; ///< Shift from decoded frame to HLT CRT T1 [ns] + double frameHltBeamGate; ///< Shift from decoded frame to HLT Beam Gate [ns] + double frameApplyAtCaf; ///< Frame to shift to when running at CAF stage }; } // end namespace - #endif // SRSBNDFRAMESHIFTINFO_H ////////////////////////////////////////////////////////////////////////////// diff --git a/sbnanaobj/StandardRecord/SRSBNDTimingInfo.cxx b/sbnanaobj/StandardRecord/SRSBNDTimingInfo.cxx index 6a7fd1a1..52c13af8 100644 --- a/sbnanaobj/StandardRecord/SRSBNDTimingInfo.cxx +++ b/sbnanaobj/StandardRecord/SRSBNDTimingInfo.cxx @@ -1,6 +1,10 @@ -//////////////////////////////////////////////////////////////////////// -// \file SRSBNDTimingInfo.cxx -//////////////////////////////////////////////////////////////////////// +/* + * @file /sbnanaobj/StandardRecord/SRSBNDTimingInfo.cxx + * @brief Defines CAF data structures to store sbnd::timing::TimingInfo (docdb#43090). + * @author Vu Chi Lan Nguyen + * @date August 29, 2025 + * + */ #include "sbnanaobj/StandardRecord/SRSBNDTimingInfo.h" diff --git a/sbnanaobj/StandardRecord/SRSBNDTimingInfo.h b/sbnanaobj/StandardRecord/SRSBNDTimingInfo.h index 89fab445..2c02f68c 100644 --- a/sbnanaobj/StandardRecord/SRSBNDTimingInfo.h +++ b/sbnanaobj/StandardRecord/SRSBNDTimingInfo.h @@ -1,29 +1,40 @@ -//////////////////////////////////////////////////////////////////////// -// \file SRSBNDTimingInfo.h -//////////////////////////////////////////////////////////////////////// -#ifndef SRSBNDFRAME_H -#define SRSBNDFRAME_H +/* + * @file /sbnanaobj/StandardRecord/SRSBNDTimingInfo.h + * @brief Defines CAF data structures to store sbnd::timing::TimingInfo (docdb#43090). + * @author Vu Chi Lan Nguyen + * @date August 29, 2025 + * + */ + +#ifndef SRSBNDTIMINGINFO_H +#define SRSBNDTIMINGINFO_H #include namespace caf { + /* + * @brief A struct to store important timestamps from sbnd::timing::TimingInfo for SBND data + * + * Each timestamp is in UNIX Timestamp Format [ns] + * + */ + class SRSBNDTimingInfo { public: SRSBNDTimingInfo(); virtual ~SRSBNDTimingInfo() {} - uint64_t rawDAQHeaderTimestamp; - uint64_t tdcCrtt1; - uint64_t tdcBes; - uint64_t tdcRwm; - uint64_t tdcEtrig; - uint64_t hltCrtt1; - uint64_t hltEtrig; - uint64_t hltBeamGate; + uint64_t rawDAQHeaderTimestamp; ///< Timestamp when the event is built by the event builder at DAQ-level + uint64_t tdcCrtt1; ///< Timestamp of BNB stream CRT T1 Reset recorded by the SPEC-TDC + uint64_t tdcBes; ///< Timestamp of BES signal sent by MFTU recorded by the SPEC-TDC + uint64_t tdcRwm; ///< Timestamp of RWM signal recorded by the SPEC-TDC + uint64_t tdcEtrig; ///< Timestamp of Event Trigger (ETRIG) sent by the PTB recorded by the SPEC-TDC + uint64_t hltCrtt1; ///< Timestamp of BNB and Offbeam stream CRT T1 Reset High Level Trigger (HLT) created by the PTB + uint64_t hltEtrig; ///< Timestamp of ETRIG HLT created by the PTB + uint64_t hltBeamGate; ///< Timestamp of Beam Gate Acceptance HLT created by the PTB }; } // end namespace - -#endif // SRSBNDFRAME_H +#endif // SRSBNDTIMINGINFO_H ////////////////////////////////////////////////////////////////////////////// diff --git a/sbnanaobj/StandardRecord/StandardRecord.h b/sbnanaobj/StandardRecord/StandardRecord.h index fffdba46..676fcf67 100644 --- a/sbnanaobj/StandardRecord/StandardRecord.h +++ b/sbnanaobj/StandardRecord/StandardRecord.h @@ -59,9 +59,8 @@ namespace caf int ncrtpmt_matches; /// crtpmt_matches; ///< CRT-PMT matches in event bool pass_flashtrig; ///< Whether this Record passed the Flash Trigger requirement - SRSBNDFrameShiftInfo sbnd_frames; ///< List of Frame Shift in event (SBND) - SRSBNDTimingInfo sbnd_timings; ///< List of Timing Info in event in Unix format(SBND) - + SRSBNDFrameShiftInfo sbnd_frames; ///< List of Frame Shift in event in unit [ns] (SBND) + SRSBNDTimingInfo sbnd_timings; ///< List of Timing Info in event in UNIX timestamp format(SBND) }; From eeed44041fa5803d9d24e229b6f3649996d89215 Mon Sep 17 00:00:00 2001 From: VCLanNguyen Date: Tue, 2 Sep 2025 15:02:11 -0500 Subject: [PATCH 5/6] change class to struct --- .../StandardRecord/SRSBNDFrameShiftInfo.cxx | 25 --------------- .../StandardRecord/SRSBNDFrameShiftInfo.h | 32 +++++++++---------- sbnanaobj/StandardRecord/SRSBNDTimingInfo.cxx | 26 --------------- sbnanaobj/StandardRecord/SRSBNDTimingInfo.h | 28 ++++++++-------- sbnanaobj/StandardRecord/classes_def.xml | 17 ++++------ 5 files changed, 36 insertions(+), 92 deletions(-) delete mode 100644 sbnanaobj/StandardRecord/SRSBNDFrameShiftInfo.cxx delete mode 100644 sbnanaobj/StandardRecord/SRSBNDTimingInfo.cxx diff --git a/sbnanaobj/StandardRecord/SRSBNDFrameShiftInfo.cxx b/sbnanaobj/StandardRecord/SRSBNDFrameShiftInfo.cxx deleted file mode 100644 index 0b3aa234..00000000 --- a/sbnanaobj/StandardRecord/SRSBNDFrameShiftInfo.cxx +++ /dev/null @@ -1,25 +0,0 @@ -/* - * @file /sbnanaobj/StandardRecord/SRSBNDFrameShiftInfo.cxx - * @brief Defines CAF data structures to store sbnd::timing::FrameShiftInfo (docdb#43090). - * @author Vu Chi Lan Nguyen - * @date August 29, 2025 - * - */ - -#include "sbnanaobj/StandardRecord/SRSBNDFrameShiftInfo.h" - -#include - -namespace caf -{ - SRSBNDFrameShiftInfo::SRSBNDFrameShiftInfo(): - timingType(std::numeric_limits::max()), - frameTdcCrtt1(std::numeric_limits::signaling_NaN()), - frameTdcBes(std::numeric_limits::signaling_NaN()), - frameTdcRwm(std::numeric_limits::signaling_NaN()), - frameHltCrtt1(std::numeric_limits::signaling_NaN()), - frameHltBeamGate(std::numeric_limits::signaling_NaN()), - frameApplyAtCaf(std::numeric_limits::signaling_NaN()) - {} -} // end namespace caf -//////////////////////////////////////////////////////////////////////// diff --git a/sbnanaobj/StandardRecord/SRSBNDFrameShiftInfo.h b/sbnanaobj/StandardRecord/SRSBNDFrameShiftInfo.h index 04596a7e..72d0797f 100644 --- a/sbnanaobj/StandardRecord/SRSBNDFrameShiftInfo.h +++ b/sbnanaobj/StandardRecord/SRSBNDFrameShiftInfo.h @@ -1,4 +1,4 @@ -/* +/** * @file /sbnanaobj/StandardRecord/SRSBNDFrameShiftInfo.h * @brief Defines CAF data structures to store sbnd::timing::FrameShiftInfo (docdb#43090). * @author Vu Chi Lan Nguyen @@ -10,29 +10,29 @@ #define SRSBNDFRAMESHIFTINFO_H #include +#include "sbnanaobj/StandardRecord/SRConstants.h" + namespace caf { - /* + /** * @brief A struct to store shifts across different reference frames from sbnd::timing::FrameShiftInfo for 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 SRSBNDFrameShiftInfo - { - public: - SRSBNDFrameShiftInfo(); - virtual ~SRSBNDFrameShiftInfo() {} - - uint16_t timingType; ///< Types of decoded frames: 0 - SPEC TDC ETRIG, 1 - HLT ETRIG, 2 - Do Nothing - double frameTdcCrtt1; ///< Shift from decoded frame to SPEC-TDC CRT T1 [ns] - double frameTdcBes; ///< Shift from decoded frame to SPEC-TDC BES [ns] - double frameTdcRwm; ///< Shift from decoded frame to SPEC-TDC RWM [ns] - double frameHltCrtt1; ///< Shift from decoded frame to HLT CRT T1 [ns] - double frameHltBeamGate; ///< Shift from decoded frame to HLT Beam Gate [ns] - double frameApplyAtCaf; ///< Frame to shift to when running at CAF stage - }; + struct SRSBNDFrameShiftInfo { + static constexpr uint16_t NoType = std::numeric_limits::max(); + uint16_t timingType = NoType; ///< Types of decoded frames: 0 - SPEC TDC ETRIG, 1 - HLT ETRIG, 2 - Do Nothing + double frameTdcCrtt1 = kSignalingNaN; ///< Shift from decoded frame to SPEC-TDC CRT T1 [ns] + double frameTdcBes = kSignalingNaN; ///< Shift from decoded frame to SPEC-TDC BES [ns] + double frameTdcRwm = kSignalingNaN; ///< Shift from decoded frame to SPEC-TDC RWM [ns] + double frameHltCrtt1 = kSignalingNaN; ///< Shift from decoded frame to HLT CRT T1 [ns] + double frameHltBeamGate = kSignalingNaN; ///< Shift from decoded frame to HLT Beam Gate [ns] + double frameApplyAtCaf = kSignalingNaN; ///< Frame to shift to when running at CAF stage + }; } // end namespace #endif // SRSBNDFRAMESHIFTINFO_H ////////////////////////////////////////////////////////////////////////////// diff --git a/sbnanaobj/StandardRecord/SRSBNDTimingInfo.cxx b/sbnanaobj/StandardRecord/SRSBNDTimingInfo.cxx deleted file mode 100644 index 52c13af8..00000000 --- a/sbnanaobj/StandardRecord/SRSBNDTimingInfo.cxx +++ /dev/null @@ -1,26 +0,0 @@ -/* - * @file /sbnanaobj/StandardRecord/SRSBNDTimingInfo.cxx - * @brief Defines CAF data structures to store sbnd::timing::TimingInfo (docdb#43090). - * @author Vu Chi Lan Nguyen - * @date August 29, 2025 - * - */ - -#include "sbnanaobj/StandardRecord/SRSBNDTimingInfo.h" - -#include - -namespace caf -{ - SRSBNDTimingInfo::SRSBNDTimingInfo(): - rawDAQHeaderTimestamp(std::numeric_limits::min()), - tdcCrtt1(std::numeric_limits::min()), - tdcBes(std::numeric_limits::min()), - tdcRwm(std::numeric_limits::min()), - tdcEtrig(std::numeric_limits::min()), - hltCrtt1(std::numeric_limits::min()), - hltEtrig(std::numeric_limits::min()), - hltBeamGate(std::numeric_limits::min()) - {} -} // end namespace caf -//////////////////////////////////////////////////////////////////////// diff --git a/sbnanaobj/StandardRecord/SRSBNDTimingInfo.h b/sbnanaobj/StandardRecord/SRSBNDTimingInfo.h index 2c02f68c..e6005d4e 100644 --- a/sbnanaobj/StandardRecord/SRSBNDTimingInfo.h +++ b/sbnanaobj/StandardRecord/SRSBNDTimingInfo.h @@ -1,4 +1,4 @@ -/* +/** * @file /sbnanaobj/StandardRecord/SRSBNDTimingInfo.h * @brief Defines CAF data structures to store sbnd::timing::TimingInfo (docdb#43090). * @author Vu Chi Lan Nguyen @@ -13,27 +13,27 @@ namespace caf { - /* + /** * @brief A struct to store important timestamps from sbnd::timing::TimingInfo for 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 SRSBNDTimingInfo + struct SRSBNDTimingInfo { - public: - SRSBNDTimingInfo(); - virtual ~SRSBNDTimingInfo() {} + static constexpr uint64_t NoTimestamp = std::numeric_limits::max(); - uint64_t rawDAQHeaderTimestamp; ///< Timestamp when the event is built by the event builder at DAQ-level - uint64_t tdcCrtt1; ///< Timestamp of BNB stream CRT T1 Reset recorded by the SPEC-TDC - uint64_t tdcBes; ///< Timestamp of BES signal sent by MFTU recorded by the SPEC-TDC - uint64_t tdcRwm; ///< Timestamp of RWM signal recorded by the SPEC-TDC - uint64_t tdcEtrig; ///< Timestamp of Event Trigger (ETRIG) sent by the PTB recorded by the SPEC-TDC - uint64_t hltCrtt1; ///< Timestamp of BNB and Offbeam stream CRT T1 Reset High Level Trigger (HLT) created by the PTB - uint64_t hltEtrig; ///< Timestamp of ETRIG HLT created by the PTB - uint64_t hltBeamGate; ///< Timestamp of Beam Gate Acceptance HLT created by the PTB + uint64_t rawDAQHeaderTimestamp = NoTimestamp; ///< Timestamp when the event is built by the event builder at DAQ-level + uint64_t tdcCrtt1 = NoTimestamp; ///< Timestamp of BNB stream CRT T1 Reset recorded by the SPEC-TDC + uint64_t tdcBes = NoTimestamp; ///< Timestamp of BES signal sent by MFTU recorded by the SPEC-TDC + uint64_t tdcRwm = NoTimestamp; ///< Timestamp of RWM signal recorded by the SPEC-TDC + uint64_t tdcEtrig = NoTimestamp; ///< Timestamp of Event Trigger (ETRIG) sent by the PTB recorded by the SPEC-TDC + uint64_t hltCrtt1 = NoTimestamp; ///< Timestamp of BNB and Offbeam stream CRT T1 Reset High Level Trigger (HLT) created by the PTB + uint64_t hltEtrig = NoTimestamp; ///< Timestamp of ETRIG HLT created by the PTB + uint64_t hltBeamGate = NoTimestamp; ///< Timestamp of Beam Gate Acceptance HLT created by the PTB }; } // end namespace #endif // SRSBNDTIMINGINFO_H diff --git a/sbnanaobj/StandardRecord/classes_def.xml b/sbnanaobj/StandardRecord/classes_def.xml index 0587d0e9..d81a7f33 100644 --- a/sbnanaobj/StandardRecord/classes_def.xml +++ b/sbnanaobj/StandardRecord/classes_def.xml @@ -5,10 +5,8 @@ - - - - + + @@ -410,14 +408,11 @@ - - - + + - - - - + + From 811ae4f4ff38128d2c32c2280d5657b6629a8051 Mon Sep 17 00:00:00 2001 From: VCLanNguyen Date: Tue, 2 Sep 2025 20:05:48 -0500 Subject: [PATCH 6/6] fix classes_def --- sbnanaobj/StandardRecord/classes_def.xml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/sbnanaobj/StandardRecord/classes_def.xml b/sbnanaobj/StandardRecord/classes_def.xml index 7c5776ab..f9a9a75f 100644 --- a/sbnanaobj/StandardRecord/classes_def.xml +++ b/sbnanaobj/StandardRecord/classes_def.xml @@ -5,9 +5,8 @@ - - - + +