From b9dffd6e019b115bd8db2bc3cf8d854b3b036f33 Mon Sep 17 00:00:00 2001 From: wpierozak Date: Fri, 19 Sep 2025 13:49:48 +0200 Subject: [PATCH 01/15] FIT: implemented getters and setters in ChannelDataFloat for FT0,FV0 and FDD --- .../FIT/FDD/include/DataFormatsFDD/RecPoint.h | 47 ++++++++++++++++-- .../FT0/include/DataFormatsFT0/RecPoints.h | 48 +++++++++++++++++-- .../FV0/include/DataFormatsFV0/RecPoints.h | 43 +++++++++++++++-- .../include/DataFormatsFIT/EEventDataBit.h | 35 ++++++++++++++ 4 files changed, 161 insertions(+), 12 deletions(-) create mode 100644 DataFormats/Detectors/FIT/common/include/DataFormatsFIT/EEventDataBit.h diff --git a/DataFormats/Detectors/FIT/FDD/include/DataFormatsFDD/RecPoint.h b/DataFormats/Detectors/FIT/FDD/include/DataFormatsFDD/RecPoint.h index f784d99145728..402c88a19e373 100644 --- a/DataFormats/Detectors/FIT/FDD/include/DataFormatsFDD/RecPoint.h +++ b/DataFormats/Detectors/FIT/FDD/include/DataFormatsFDD/RecPoint.h @@ -21,17 +21,22 @@ #include "DataFormatsFDD/ChannelData.h" #include "CommonDataFormat/RangeReference.h" #include "DataFormatsFDD/Digit.h" +#include "DataFormat/Detectors/FIT/common/EEvebtDataBit.h" namespace o2 { namespace fdd { struct ChannelDataFloat { + static constexpr int DUMMY_CHANNEL_ID = -1; + static constexpr int DUMMY_CHAIN_QTC = -1; + static constexpr double DUMMY_CFD_TIME = -20000; + static constexpr double DUMMY_QTC_AMPL = -20000; - int mPMNumber = -1; // channel Id - int adcId = -1; // QTC chain - double mTime = -20000; // time in ps, 0 at the LHC clk center - double mChargeADC = -20000; // charge [channels] + int mPMNumber = DUMMY_CHANNEL_ID; // channel Id + int adcId = DUMMY_CHAIN_QTC; // QTC chain + double mTime = DUMMY_CFD_TIME; // time in ps, 0 at the LHC clk center + double mChargeADC = DUMMY_QTC_AMPL; // charge [channels] ChannelDataFloat() = default; ChannelDataFloat(int Channel, double Time, double Charge, int AdcId) @@ -42,7 +47,41 @@ struct ChannelDataFloat { adcId = AdcId; } + static void setFlag(fit::EEventDataBit bitFlag, int& adcId) + { + adcId = uint8_t(adcId) | 1u << bitFlag; + } + static void clearFlag(fit::EEventDataBit bitFlag, int& adcId) + { + adcId = uint8_t(adcId) & ~(1u << bitFlag); + } + void setFlag(int flag) + { + adcId = flag; + } + void setFlag(fit::EEventDataBit bitFlag, bool value) + { + adcId = uint8_t(adcId) | uint8_t(value) << bitFlag; + } + bool getFlag(fit::EEventDataBit bitFlag) const + { + return bool(uint8_t(adcId) & (1u << bitFlag)); + } + bool areAllFlagsGood() const + { + return (!getFlag(fit::EEventDataBit::kIsDoubleEvent) && + !getFlag(fit::EEventDataBit::kIsTimeInfoNOTvalid) && + getFlag(fit::EEventDataBit::kIsCFDinADCgate) && + !getFlag(fit::EEventDataBit::kIsTimeInfoLate) && + !getFlag(fit::EEventDataBit::kIsAmpHigh) && + getFlag(fit::EEventDataBit::kIsEventInTVDC) && + !getFlag(fit::EEventDataBit::kIsTimeInfoLost)); + } + void print() const; + [[nodiscard]] int getChannelId() const { return mPMNumber; } + [[nodiscard]] double getTime() const { return mTime; } + [[nodiscard]] double getAmp() const { return mChargeADC; } bool operator==(const ChannelDataFloat&) const = default; ClassDefNV(ChannelDataFloat, 1); diff --git a/DataFormats/Detectors/FIT/FT0/include/DataFormatsFT0/RecPoints.h b/DataFormats/Detectors/FIT/FT0/include/DataFormatsFT0/RecPoints.h index 0503e4f39948f..dbb0f914f62b7 100644 --- a/DataFormats/Detectors/FIT/FT0/include/DataFormatsFT0/RecPoints.h +++ b/DataFormats/Detectors/FIT/FT0/include/DataFormatsFT0/RecPoints.h @@ -20,6 +20,7 @@ #include "DataFormatsFT0/ChannelData.h" #include "CommonDataFormat/RangeReference.h" #include "DataFormatsFT0/Digit.h" +#include "DataFormat/Detectors/FIT/common/EEvebtDataBit.h" #include #include "Rtypes.h" #include @@ -33,11 +34,15 @@ namespace ft0 { struct ChannelDataFloat { + static constexpr int DUMMY_CHANNEL_ID = -1; + static constexpr int DUMMY_CHAIN_QTC = -1; + static constexpr float DUMMY_CFD_TIME = -20000; + static constexpr float DUMMY_QTC_AMPL = -20000; - int ChId = -1; // channel Id - int ChainQTC = -1; // QTC chain - float CFDTime = -20000; // time in ps, 0 at the LHC clk center - float QTCAmpl = -20000; // Amplitude mV + int ChId = DUMMY_CHANNEL_ID; // channel Id + int ChainQTC = DUMMY_CHAIN_QTC; // QTC chain + float CFDTime = DUMMY_CFD_TIME; // time in ps, 0 at the LHC clk center + float QTCAmpl = DUMMY_QTC_AMPL; // Amplitude mV ChannelDataFloat() = default; ChannelDataFloat(int iPmt, float time, float charge, int chainQTC) @@ -48,7 +53,42 @@ struct ChannelDataFloat { ChainQTC = chainQTC; } + static void setFlag(fit::EEventDataBit bitFlag, int& chainQTC) + { + ChainQTC = uint8_t(ChainQTC) | 1u << bitFlag; + } + static void clearFlag(fit::EEventDataBit bitFlag, int& chainQTC) + { + ChainQTC = uint8_t(ChainQTC) & ~(1u << bitFlag); + } + void setFlag(int flag) + { + ChainQTC = flag; + } + void setFlag(fit::EEventDataBit bitFlag, bool value) + { + ChainQTC = uint8_t(ChainQTC) | uint8_t(value) << bitFlag; + } + bool getFlag(fit::EEventDataBit bitFlag) const + { + return bool(uint8_t(ChainQTC) & (1u << bitFlag)); + } + bool areAllFlagsGood() const + { + return (!getFlag(fit::EEventDataBit::kIsDoubleEvent) && + !getFlag(fit::EEventDataBit::kIsTimeInfoNOTvalid) && + getFlag(fit::EEventDataBit::kIsCFDinADCgate) && + !getFlag(fit::EEventDataBit::kIsTimeInfoLate) && + !getFlag(fit::EEventDataBit::kIsAmpHigh) && + getFlag(fit::EEventDataBit::kIsEventInTVDC) && + !getFlag(fit::EEventDataBit::kIsTimeInfoLost)); + } + void print() const; + [[nodiscard]] int getChannelId() const { return ChId; } + [[nodiscard]] float getTime() const { return CFDTime; } + [[nodiscard]] float getAmp() const { return QTCAmpl; } + bool operator==(const ChannelDataFloat&) const = default; ClassDefNV(ChannelDataFloat, 1); diff --git a/DataFormats/Detectors/FIT/FV0/include/DataFormatsFV0/RecPoints.h b/DataFormats/Detectors/FIT/FV0/include/DataFormatsFV0/RecPoints.h index b3527fdd049d2..bbddd80d02d80 100644 --- a/DataFormats/Detectors/FIT/FV0/include/DataFormatsFV0/RecPoints.h +++ b/DataFormats/Detectors/FIT/FV0/include/DataFormatsFV0/RecPoints.h @@ -18,6 +18,7 @@ #include "CommonDataFormat/InteractionRecord.h" #include "CommonDataFormat/RangeReference.h" #include "DataFormatsFV0/Digit.h" +#include "DataFormat/Detectors/FIT/common/EEvebtDataBit.h" #include #include @@ -26,11 +27,15 @@ namespace o2 namespace fv0 { struct ChannelDataFloat { + static constexpr int DUMMY_CHANNEL_ID = -1; + static constexpr int DUMMY_CHAIN_QTC = -1; + static constexpr double DUMMY_CFD_TIME = -20000.0; + static constexpr double DUMMY_QTC_AMPL = -20000.0; - int channel = -1; // channel Id - double time = -20000; // time in ns, 0 at the LHC clk center - double charge = -20000; // charge [channels] - int adcId = -1; // QTC chain + int channel = DUMMY_CHANNEL_ID; // channel Id + double time = DUMMY_CFD_TIME; // time in ns, 0 at the LHC clk center + double charge = DUMMY_QTC_AMPL; // charge [channels] + int adcId = DUMMY_CHAIN_QTC; // QTC chain ChannelDataFloat() = default; ChannelDataFloat(int Channel, double Time, double Charge, int AdcId) @@ -41,7 +46,37 @@ struct ChannelDataFloat { adcId = AdcId; } + static void setFlag(fit::EEventDataBit bitFlag, int& adcId) + { + adcId = uint8_t(adcId) | 1u << bitFlag; + } + static void clearFlag(fit::EEventDataBit bitFlag, int& adcId) + { + adcId = uint8_t(adcId) & ~(1u << bitFlag); + } + void setFlag(int flag) + { + adcId = flag; + } + bool getFlag(fit::EEventDataBit bitFlag) + { + return bool(uint8_t(adcId) & (1u << bitFlag)); + } + bool areAllFlagsGood() const + { + return (!getFlag(fit::EEventDataBit::kIsDoubleEvent) && + !getFlag(fit::EEventDataBit::kIsTimeInfoNOTvalid) && + getFlag(fit::EEventDataBit::kIsCFDinADCgate) && + !getFlag(fit::EEventDataBit::kIsTimeInfoLate) && + !getFlag(fit::EEventDataBit::kIsAmpHigh) && + getFlag(fit::EEventDataBit::kIsEventInTVDC) && + !getFlag(fit::EEventDataBit::kIsTimeInfoLost)); + } + void print() const; + [[nodiscard]] int getChannelId() const { return channel; } + [[nodiscard]] int getTime() const { return time; } + [[nodiscard]] int getAmp() const { return charge; } bool operator==(const ChannelDataFloat&) const = default; ClassDefNV(ChannelDataFloat, 1); diff --git a/DataFormats/Detectors/FIT/common/include/DataFormatsFIT/EEventDataBit.h b/DataFormats/Detectors/FIT/common/include/DataFormatsFIT/EEventDataBit.h new file mode 100644 index 0000000000000..e0b94610055a1 --- /dev/null +++ b/DataFormats/Detectors/FIT/common/include/DataFormatsFIT/EEventDataBit.h @@ -0,0 +1,35 @@ +// Copyright 2019-2020 CERN and copyright holders of ALICE O2. +// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. +// All rights not expressly granted are reserved. +// +// This software is distributed under the terms of the GNU General Public +// License v3 (GPL Version 3), copied verbatim in the file "COPYING". +// +// In applying this license CERN does not waive the privileges and immunities +// granted to it by virtue of its status as an Intergovernmental Organization +// or submit itself to any jurisdiction. + +/// \file EEventDataBit.h +/// \brief Enum type describing bits in ChainQTC flag +/// \author wiktor.pierozak@cern.ch + +#ifndef O2_FIT_EEVENT_DATA_BIT_ +#define O2_FIT_EEVENT_DATA_BIT_ + +namespace o2 +{ +namespace fv0 +{ +enum class EEventDataBit { kNumberADC = 0, + kIsDoubleEvent, + kIsTimeInfoNOTvalid, + kIsCFDinADCgate, + kIsTimeInfoLate, + kIsAmpHigh, + kIsEventInTVDC, + kIsTimeInfoLost +}; +} +} // namespace o2 + +#endif \ No newline at end of file From 0e9bae95f81db11d0228cf3b7d3ea63735375be9 Mon Sep 17 00:00:00 2001 From: wpierozak Date: Mon, 22 Sep 2025 08:13:57 +0200 Subject: [PATCH 02/15] Fixed path to DataFormatsFit/EEventDataBit.h --- DataFormats/Detectors/FIT/FDD/include/DataFormatsFDD/RecPoint.h | 2 +- .../Detectors/FIT/FT0/include/DataFormatsFT0/RecPoints.h | 2 +- .../Detectors/FIT/FV0/include/DataFormatsFV0/RecPoints.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/DataFormats/Detectors/FIT/FDD/include/DataFormatsFDD/RecPoint.h b/DataFormats/Detectors/FIT/FDD/include/DataFormatsFDD/RecPoint.h index 402c88a19e373..6f1e3e8a036ea 100644 --- a/DataFormats/Detectors/FIT/FDD/include/DataFormatsFDD/RecPoint.h +++ b/DataFormats/Detectors/FIT/FDD/include/DataFormatsFDD/RecPoint.h @@ -21,7 +21,7 @@ #include "DataFormatsFDD/ChannelData.h" #include "CommonDataFormat/RangeReference.h" #include "DataFormatsFDD/Digit.h" -#include "DataFormat/Detectors/FIT/common/EEvebtDataBit.h" +#include "DataFormatsFIT/EEventDataBit.h" namespace o2 { diff --git a/DataFormats/Detectors/FIT/FT0/include/DataFormatsFT0/RecPoints.h b/DataFormats/Detectors/FIT/FT0/include/DataFormatsFT0/RecPoints.h index dbb0f914f62b7..3aa1542f72414 100644 --- a/DataFormats/Detectors/FIT/FT0/include/DataFormatsFT0/RecPoints.h +++ b/DataFormats/Detectors/FIT/FT0/include/DataFormatsFT0/RecPoints.h @@ -20,7 +20,7 @@ #include "DataFormatsFT0/ChannelData.h" #include "CommonDataFormat/RangeReference.h" #include "DataFormatsFT0/Digit.h" -#include "DataFormat/Detectors/FIT/common/EEvebtDataBit.h" +#include "DataFormatsFIT/EEventDataBit.h" #include #include "Rtypes.h" #include diff --git a/DataFormats/Detectors/FIT/FV0/include/DataFormatsFV0/RecPoints.h b/DataFormats/Detectors/FIT/FV0/include/DataFormatsFV0/RecPoints.h index bbddd80d02d80..01c88763c7245 100644 --- a/DataFormats/Detectors/FIT/FV0/include/DataFormatsFV0/RecPoints.h +++ b/DataFormats/Detectors/FIT/FV0/include/DataFormatsFV0/RecPoints.h @@ -18,7 +18,7 @@ #include "CommonDataFormat/InteractionRecord.h" #include "CommonDataFormat/RangeReference.h" #include "DataFormatsFV0/Digit.h" -#include "DataFormat/Detectors/FIT/common/EEvebtDataBit.h" +#include "DataFormatsFIT/EEventDataBit.h" #include #include From e8612b8148449ec70c05e112c2ab51268593921c Mon Sep 17 00:00:00 2001 From: wpierozak Date: Mon, 22 Sep 2025 08:19:07 +0200 Subject: [PATCH 03/15] Fixed namespace in EEventDataBit - changed from fv0 to fit --- .../Detectors/FIT/common/include/DataFormatsFIT/EEventDataBit.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DataFormats/Detectors/FIT/common/include/DataFormatsFIT/EEventDataBit.h b/DataFormats/Detectors/FIT/common/include/DataFormatsFIT/EEventDataBit.h index e0b94610055a1..3557d67b6d4fa 100644 --- a/DataFormats/Detectors/FIT/common/include/DataFormatsFIT/EEventDataBit.h +++ b/DataFormats/Detectors/FIT/common/include/DataFormatsFIT/EEventDataBit.h @@ -18,7 +18,7 @@ namespace o2 { -namespace fv0 +namespace fit { enum class EEventDataBit { kNumberADC = 0, kIsDoubleEvent, From 39f8c8954d70802bf0b9afa9ec48ec824c5a155b Mon Sep 17 00:00:00 2001 From: wpierozak Date: Mon, 22 Sep 2025 08:30:14 +0200 Subject: [PATCH 04/15] FIT: added explicit type conversion where EEventDataBit is used --- .../Detectors/FIT/FDD/include/DataFormatsFDD/RecPoint.h | 8 ++++---- .../Detectors/FIT/FT0/include/DataFormatsFT0/RecPoints.h | 8 ++++---- .../Detectors/FIT/FV0/include/DataFormatsFV0/RecPoints.h | 6 +++--- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/DataFormats/Detectors/FIT/FDD/include/DataFormatsFDD/RecPoint.h b/DataFormats/Detectors/FIT/FDD/include/DataFormatsFDD/RecPoint.h index 6f1e3e8a036ea..a4228089ed9f6 100644 --- a/DataFormats/Detectors/FIT/FDD/include/DataFormatsFDD/RecPoint.h +++ b/DataFormats/Detectors/FIT/FDD/include/DataFormatsFDD/RecPoint.h @@ -49,11 +49,11 @@ struct ChannelDataFloat { static void setFlag(fit::EEventDataBit bitFlag, int& adcId) { - adcId = uint8_t(adcId) | 1u << bitFlag; + adcId = uint8_t(adcId) | 1u << uint8_t(bitFlag); } static void clearFlag(fit::EEventDataBit bitFlag, int& adcId) { - adcId = uint8_t(adcId) & ~(1u << bitFlag); + adcId = uint8_t(adcId) & ~(1u << uint8_t(bitFlag)); } void setFlag(int flag) { @@ -61,11 +61,11 @@ struct ChannelDataFloat { } void setFlag(fit::EEventDataBit bitFlag, bool value) { - adcId = uint8_t(adcId) | uint8_t(value) << bitFlag; + adcId = uint8_t(adcId) | uint8_t(value) << uint8_t(bitFlag); } bool getFlag(fit::EEventDataBit bitFlag) const { - return bool(uint8_t(adcId) & (1u << bitFlag)); + return bool(uint8_t(adcId) & (1u << uint8_t(bitFlag))); } bool areAllFlagsGood() const { diff --git a/DataFormats/Detectors/FIT/FT0/include/DataFormatsFT0/RecPoints.h b/DataFormats/Detectors/FIT/FT0/include/DataFormatsFT0/RecPoints.h index 3aa1542f72414..c38b8a94839bb 100644 --- a/DataFormats/Detectors/FIT/FT0/include/DataFormatsFT0/RecPoints.h +++ b/DataFormats/Detectors/FIT/FT0/include/DataFormatsFT0/RecPoints.h @@ -55,11 +55,11 @@ struct ChannelDataFloat { static void setFlag(fit::EEventDataBit bitFlag, int& chainQTC) { - ChainQTC = uint8_t(ChainQTC) | 1u << bitFlag; + ChainQTC = uint8_t(ChainQTC) | 1u << uint8_t(bitFlag); } static void clearFlag(fit::EEventDataBit bitFlag, int& chainQTC) { - ChainQTC = uint8_t(ChainQTC) & ~(1u << bitFlag); + ChainQTC = uint8_t(ChainQTC) & ~(1u << uint8_t(bitFlag)); } void setFlag(int flag) { @@ -67,11 +67,11 @@ struct ChannelDataFloat { } void setFlag(fit::EEventDataBit bitFlag, bool value) { - ChainQTC = uint8_t(ChainQTC) | uint8_t(value) << bitFlag; + ChainQTC = uint8_t(ChainQTC) | uint8_t(value) << uint8_t(bitFlag); } bool getFlag(fit::EEventDataBit bitFlag) const { - return bool(uint8_t(ChainQTC) & (1u << bitFlag)); + return bool(uint8_t(ChainQTC) & (1u << uint8_t(bitFlag))); } bool areAllFlagsGood() const { diff --git a/DataFormats/Detectors/FIT/FV0/include/DataFormatsFV0/RecPoints.h b/DataFormats/Detectors/FIT/FV0/include/DataFormatsFV0/RecPoints.h index 01c88763c7245..b379e14c58a8b 100644 --- a/DataFormats/Detectors/FIT/FV0/include/DataFormatsFV0/RecPoints.h +++ b/DataFormats/Detectors/FIT/FV0/include/DataFormatsFV0/RecPoints.h @@ -48,11 +48,11 @@ struct ChannelDataFloat { static void setFlag(fit::EEventDataBit bitFlag, int& adcId) { - adcId = uint8_t(adcId) | 1u << bitFlag; + adcId = uint8_t(adcId) | 1u << uint8_t(bitFlag); } static void clearFlag(fit::EEventDataBit bitFlag, int& adcId) { - adcId = uint8_t(adcId) & ~(1u << bitFlag); + adcId = uint8_t(adcId) & ~(1u << uint8_t(bitFlag)); } void setFlag(int flag) { @@ -60,7 +60,7 @@ struct ChannelDataFloat { } bool getFlag(fit::EEventDataBit bitFlag) { - return bool(uint8_t(adcId) & (1u << bitFlag)); + return bool(uint8_t(adcId) & (1u << uint8_t(bitFlag))); } bool areAllFlagsGood() const { From b72658da669aed722951d3f849dee8b057f17705 Mon Sep 17 00:00:00 2001 From: wpierozak Date: Mon, 22 Sep 2025 09:35:12 +0200 Subject: [PATCH 05/15] FIT: Fixed typoe in DataFormatsFT0/RecPoints.h --- .../Detectors/FIT/FT0/include/DataFormatsFT0/RecPoints.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/DataFormats/Detectors/FIT/FT0/include/DataFormatsFT0/RecPoints.h b/DataFormats/Detectors/FIT/FT0/include/DataFormatsFT0/RecPoints.h index c38b8a94839bb..1a14f22b3cf4b 100644 --- a/DataFormats/Detectors/FIT/FT0/include/DataFormatsFT0/RecPoints.h +++ b/DataFormats/Detectors/FIT/FT0/include/DataFormatsFT0/RecPoints.h @@ -55,11 +55,11 @@ struct ChannelDataFloat { static void setFlag(fit::EEventDataBit bitFlag, int& chainQTC) { - ChainQTC = uint8_t(ChainQTC) | 1u << uint8_t(bitFlag); + chainQTC = uint8_t(chainQTC) | 1u << uint8_t(bitFlag); } static void clearFlag(fit::EEventDataBit bitFlag, int& chainQTC) { - ChainQTC = uint8_t(ChainQTC) & ~(1u << uint8_t(bitFlag)); + chainQTC = uint8_t(chainQTC) & ~(1u << uint8_t(bitFlag)); } void setFlag(int flag) { From f470e56440358bda25b7f1bf448cc96d3a499298 Mon Sep 17 00:00:00 2001 From: wpierozak Date: Mon, 22 Sep 2025 09:40:45 +0200 Subject: [PATCH 06/15] FIT: Added missing const qualifier to fv0::ChannelDataFloat::getFlag --- .../Detectors/FIT/FV0/include/DataFormatsFV0/RecPoints.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DataFormats/Detectors/FIT/FV0/include/DataFormatsFV0/RecPoints.h b/DataFormats/Detectors/FIT/FV0/include/DataFormatsFV0/RecPoints.h index b379e14c58a8b..36237e30010a1 100644 --- a/DataFormats/Detectors/FIT/FV0/include/DataFormatsFV0/RecPoints.h +++ b/DataFormats/Detectors/FIT/FV0/include/DataFormatsFV0/RecPoints.h @@ -58,7 +58,7 @@ struct ChannelDataFloat { { adcId = flag; } - bool getFlag(fit::EEventDataBit bitFlag) + bool getFlag(fit::EEventDataBit bitFlag) const { return bool(uint8_t(adcId) & (1u << uint8_t(bitFlag))); } From a3d205e617a058f8860656578cffb7a5b30a3d96 Mon Sep 17 00:00:00 2001 From: wpierozak Date: Mon, 22 Sep 2025 10:26:41 +0200 Subject: [PATCH 07/15] FIT: Replaced access to ChannelDataFloat members in o2::fv0::BaseRecoTask::process by getters --- .../FIT/FV0/reconstruction/src/BaseRecoTask.cxx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Detectors/FIT/FV0/reconstruction/src/BaseRecoTask.cxx b/Detectors/FIT/FV0/reconstruction/src/BaseRecoTask.cxx index 8a217232592df..a108f0b906d47 100644 --- a/Detectors/FIT/FV0/reconstruction/src/BaseRecoTask.cxx +++ b/Detectors/FIT/FV0/reconstruction/src/BaseRecoTask.cxx @@ -51,15 +51,15 @@ RP BaseRecoTask::process(o2::fv0::Digit const& bcd, inChData[ich].ChainQTC}; // Conditions for reconstructing collision time (3 variants: first, average-relaxed and average-tight) - if (outChData[ich].charge > FV0DigParam::Instance().chargeThrForMeanTime) { - sideAtimeFirst = std::min(static_cast(sideAtimeFirst), outChData[ich].time); + if (outChData[ich].getAmp() > FV0DigParam::Instance().chargeThrForMeanTime) { + sideAtimeFirst = std::min(static_cast(sideAtimeFirst), outChData[ich].getTime()); if (inChData[ich].areAllFlagsGood()) { - if (std::abs(outChData[ich].time) < FV0DigParam::Instance().mTimeThresholdForReco) { - sideAtimeAvg += outChData[ich].time; + if (std::abs(outChData[ich].getTime()) < FV0DigParam::Instance().mTimeThresholdForReco) { + sideAtimeAvg += outChData[ich].getTime(); ndigitsA++; } - if (outChData[ich].charge > FV0DigParam::Instance().mAmpThresholdForReco && std::abs(outChData[ich].time) < FV0DigParam::Instance().mTimeThresholdForReco) { - sideAtimeAvgSelected += outChData[ich].time; + if (outChData[ich].getAmp() > FV0DigParam::Instance().mAmpThresholdForReco && std::abs(outChData[ich].getTime()) < FV0DigParam::Instance().mTimeThresholdForReco) { + sideAtimeAvgSelected += outChData[ich].getTime(); ndigitsASelected++; } } From 78fcd7427e3cf84f2e626655b48b59e84136082b Mon Sep 17 00:00:00 2001 From: wpierozak Date: Mon, 22 Sep 2025 10:45:22 +0200 Subject: [PATCH 08/15] FIT: changed return type to float in fv0::ChannelDataFloat::getTime and fv0::ChannelDataFloat::getAmp; added no discard to getters in fv0::ChannelDataFloat, fdd::ChannelDataFloat, ft0::ChannelDataFloat --- .../Detectors/FIT/FDD/include/DataFormatsFDD/RecPoint.h | 4 ++-- .../Detectors/FIT/FT0/include/DataFormatsFT0/RecPoints.h | 4 ++-- .../Detectors/FIT/FV0/include/DataFormatsFV0/RecPoints.h | 8 ++++---- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/DataFormats/Detectors/FIT/FDD/include/DataFormatsFDD/RecPoint.h b/DataFormats/Detectors/FIT/FDD/include/DataFormatsFDD/RecPoint.h index a4228089ed9f6..bdafce7135a62 100644 --- a/DataFormats/Detectors/FIT/FDD/include/DataFormatsFDD/RecPoint.h +++ b/DataFormats/Detectors/FIT/FDD/include/DataFormatsFDD/RecPoint.h @@ -63,11 +63,11 @@ struct ChannelDataFloat { { adcId = uint8_t(adcId) | uint8_t(value) << uint8_t(bitFlag); } - bool getFlag(fit::EEventDataBit bitFlag) const + [[nodiscard]] bool getFlag(fit::EEventDataBit bitFlag) const { return bool(uint8_t(adcId) & (1u << uint8_t(bitFlag))); } - bool areAllFlagsGood() const + [[nodiscard]] bool areAllFlagsGood() const { return (!getFlag(fit::EEventDataBit::kIsDoubleEvent) && !getFlag(fit::EEventDataBit::kIsTimeInfoNOTvalid) && diff --git a/DataFormats/Detectors/FIT/FT0/include/DataFormatsFT0/RecPoints.h b/DataFormats/Detectors/FIT/FT0/include/DataFormatsFT0/RecPoints.h index 1a14f22b3cf4b..9b1b20a9d67c9 100644 --- a/DataFormats/Detectors/FIT/FT0/include/DataFormatsFT0/RecPoints.h +++ b/DataFormats/Detectors/FIT/FT0/include/DataFormatsFT0/RecPoints.h @@ -69,11 +69,11 @@ struct ChannelDataFloat { { ChainQTC = uint8_t(ChainQTC) | uint8_t(value) << uint8_t(bitFlag); } - bool getFlag(fit::EEventDataBit bitFlag) const + [[nodiscard]] bool getFlag(fit::EEventDataBit bitFlag) const { return bool(uint8_t(ChainQTC) & (1u << uint8_t(bitFlag))); } - bool areAllFlagsGood() const + [[nodiscard]] bool areAllFlagsGood() const { return (!getFlag(fit::EEventDataBit::kIsDoubleEvent) && !getFlag(fit::EEventDataBit::kIsTimeInfoNOTvalid) && diff --git a/DataFormats/Detectors/FIT/FV0/include/DataFormatsFV0/RecPoints.h b/DataFormats/Detectors/FIT/FV0/include/DataFormatsFV0/RecPoints.h index 36237e30010a1..ad7d219f0a399 100644 --- a/DataFormats/Detectors/FIT/FV0/include/DataFormatsFV0/RecPoints.h +++ b/DataFormats/Detectors/FIT/FV0/include/DataFormatsFV0/RecPoints.h @@ -58,11 +58,11 @@ struct ChannelDataFloat { { adcId = flag; } - bool getFlag(fit::EEventDataBit bitFlag) const + [[nodiscard]] bool getFlag(fit::EEventDataBit bitFlag) const { return bool(uint8_t(adcId) & (1u << uint8_t(bitFlag))); } - bool areAllFlagsGood() const + [[nodiscard]] bool areAllFlagsGood() const { return (!getFlag(fit::EEventDataBit::kIsDoubleEvent) && !getFlag(fit::EEventDataBit::kIsTimeInfoNOTvalid) && @@ -75,8 +75,8 @@ struct ChannelDataFloat { void print() const; [[nodiscard]] int getChannelId() const { return channel; } - [[nodiscard]] int getTime() const { return time; } - [[nodiscard]] int getAmp() const { return charge; } + [[nodiscard]] double getTime() const { return time; } + [[nodiscard]] double getAmp() const { return charge; } bool operator==(const ChannelDataFloat&) const = default; ClassDefNV(ChannelDataFloat, 1); From da3e85816327227f9aa3c24ced35be8f7fab12d7 Mon Sep 17 00:00:00 2001 From: wpierozak Date: Wed, 24 Sep 2025 11:51:13 +0200 Subject: [PATCH 09/15] FIT: Renamed EEventDataBit to ChannelDataBit --- .../FIT/FDD/include/DataFormatsFDD/RecPoint.h | 24 +++++++++---------- .../FT0/include/DataFormatsFT0/RecPoints.h | 24 +++++++++---------- .../FV0/include/DataFormatsFV0/RecPoints.h | 22 ++++++++--------- .../{EEventDataBit.h => ChannelDataBit.h} | 2 +- 4 files changed, 36 insertions(+), 36 deletions(-) rename DataFormats/Detectors/FIT/common/include/DataFormatsFIT/{EEventDataBit.h => ChannelDataBit.h} (96%) diff --git a/DataFormats/Detectors/FIT/FDD/include/DataFormatsFDD/RecPoint.h b/DataFormats/Detectors/FIT/FDD/include/DataFormatsFDD/RecPoint.h index bdafce7135a62..4b98370a7eb5f 100644 --- a/DataFormats/Detectors/FIT/FDD/include/DataFormatsFDD/RecPoint.h +++ b/DataFormats/Detectors/FIT/FDD/include/DataFormatsFDD/RecPoint.h @@ -21,7 +21,7 @@ #include "DataFormatsFDD/ChannelData.h" #include "CommonDataFormat/RangeReference.h" #include "DataFormatsFDD/Digit.h" -#include "DataFormatsFIT/EEventDataBit.h" +#include "DataFormatsFIT/ChannelDataBit.h" namespace o2 { @@ -47,11 +47,11 @@ struct ChannelDataFloat { adcId = AdcId; } - static void setFlag(fit::EEventDataBit bitFlag, int& adcId) + static void setFlag(fit::ChannelDataBit bitFlag, int& adcId) { adcId = uint8_t(adcId) | 1u << uint8_t(bitFlag); } - static void clearFlag(fit::EEventDataBit bitFlag, int& adcId) + static void clearFlag(fit::ChannelDataBit bitFlag, int& adcId) { adcId = uint8_t(adcId) & ~(1u << uint8_t(bitFlag)); } @@ -59,23 +59,23 @@ struct ChannelDataFloat { { adcId = flag; } - void setFlag(fit::EEventDataBit bitFlag, bool value) + void setFlag(fit::ChannelDataBit bitFlag, bool value) { adcId = uint8_t(adcId) | uint8_t(value) << uint8_t(bitFlag); } - [[nodiscard]] bool getFlag(fit::EEventDataBit bitFlag) const + [[nodiscard]] bool getFlag(fit::ChannelDataBit bitFlag) const { return bool(uint8_t(adcId) & (1u << uint8_t(bitFlag))); } [[nodiscard]] bool areAllFlagsGood() const { - return (!getFlag(fit::EEventDataBit::kIsDoubleEvent) && - !getFlag(fit::EEventDataBit::kIsTimeInfoNOTvalid) && - getFlag(fit::EEventDataBit::kIsCFDinADCgate) && - !getFlag(fit::EEventDataBit::kIsTimeInfoLate) && - !getFlag(fit::EEventDataBit::kIsAmpHigh) && - getFlag(fit::EEventDataBit::kIsEventInTVDC) && - !getFlag(fit::EEventDataBit::kIsTimeInfoLost)); + return (!getFlag(fit::ChannelDataBit::kIsDoubleEvent) && + !getFlag(fit::ChannelDataBit::kIsTimeInfoNOTvalid) && + getFlag(fit::ChannelDataBit::kIsCFDinADCgate) && + !getFlag(fit::ChannelDataBit::kIsTimeInfoLate) && + !getFlag(fit::ChannelDataBit::kIsAmpHigh) && + getFlag(fit::ChannelDataBit::kIsEventInTVDC) && + !getFlag(fit::ChannelDataBit::kIsTimeInfoLost)); } void print() const; diff --git a/DataFormats/Detectors/FIT/FT0/include/DataFormatsFT0/RecPoints.h b/DataFormats/Detectors/FIT/FT0/include/DataFormatsFT0/RecPoints.h index 9b1b20a9d67c9..5ad318630f7d8 100644 --- a/DataFormats/Detectors/FIT/FT0/include/DataFormatsFT0/RecPoints.h +++ b/DataFormats/Detectors/FIT/FT0/include/DataFormatsFT0/RecPoints.h @@ -20,7 +20,7 @@ #include "DataFormatsFT0/ChannelData.h" #include "CommonDataFormat/RangeReference.h" #include "DataFormatsFT0/Digit.h" -#include "DataFormatsFIT/EEventDataBit.h" +#include "DataFormatsFIT/ChannelDataBit.h" #include #include "Rtypes.h" #include @@ -53,11 +53,11 @@ struct ChannelDataFloat { ChainQTC = chainQTC; } - static void setFlag(fit::EEventDataBit bitFlag, int& chainQTC) + static void setFlag(fit::ChannelDataBit bitFlag, int& chainQTC) { chainQTC = uint8_t(chainQTC) | 1u << uint8_t(bitFlag); } - static void clearFlag(fit::EEventDataBit bitFlag, int& chainQTC) + static void clearFlag(fit::ChannelDataBit bitFlag, int& chainQTC) { chainQTC = uint8_t(chainQTC) & ~(1u << uint8_t(bitFlag)); } @@ -65,23 +65,23 @@ struct ChannelDataFloat { { ChainQTC = flag; } - void setFlag(fit::EEventDataBit bitFlag, bool value) + void setFlag(fit::ChannelDataBit bitFlag, bool value) { ChainQTC = uint8_t(ChainQTC) | uint8_t(value) << uint8_t(bitFlag); } - [[nodiscard]] bool getFlag(fit::EEventDataBit bitFlag) const + [[nodiscard]] bool getFlag(fit::ChannelDataBit bitFlag) const { return bool(uint8_t(ChainQTC) & (1u << uint8_t(bitFlag))); } [[nodiscard]] bool areAllFlagsGood() const { - return (!getFlag(fit::EEventDataBit::kIsDoubleEvent) && - !getFlag(fit::EEventDataBit::kIsTimeInfoNOTvalid) && - getFlag(fit::EEventDataBit::kIsCFDinADCgate) && - !getFlag(fit::EEventDataBit::kIsTimeInfoLate) && - !getFlag(fit::EEventDataBit::kIsAmpHigh) && - getFlag(fit::EEventDataBit::kIsEventInTVDC) && - !getFlag(fit::EEventDataBit::kIsTimeInfoLost)); + return (!getFlag(fit::ChannelDataBit::kIsDoubleEvent) && + !getFlag(fit::ChannelDataBit::kIsTimeInfoNOTvalid) && + getFlag(fit::ChannelDataBit::kIsCFDinADCgate) && + !getFlag(fit::ChannelDataBit::kIsTimeInfoLate) && + !getFlag(fit::ChannelDataBit::kIsAmpHigh) && + getFlag(fit::ChannelDataBit::kIsEventInTVDC) && + !getFlag(fit::ChannelDataBit::kIsTimeInfoLost)); } void print() const; diff --git a/DataFormats/Detectors/FIT/FV0/include/DataFormatsFV0/RecPoints.h b/DataFormats/Detectors/FIT/FV0/include/DataFormatsFV0/RecPoints.h index ad7d219f0a399..40883daff0a4f 100644 --- a/DataFormats/Detectors/FIT/FV0/include/DataFormatsFV0/RecPoints.h +++ b/DataFormats/Detectors/FIT/FV0/include/DataFormatsFV0/RecPoints.h @@ -18,7 +18,7 @@ #include "CommonDataFormat/InteractionRecord.h" #include "CommonDataFormat/RangeReference.h" #include "DataFormatsFV0/Digit.h" -#include "DataFormatsFIT/EEventDataBit.h" +#include "DataFormatsFIT/ChannelDataBit.h" #include #include @@ -46,11 +46,11 @@ struct ChannelDataFloat { adcId = AdcId; } - static void setFlag(fit::EEventDataBit bitFlag, int& adcId) + static void setFlag(fit::ChannelDataBit bitFlag, int& adcId) { adcId = uint8_t(adcId) | 1u << uint8_t(bitFlag); } - static void clearFlag(fit::EEventDataBit bitFlag, int& adcId) + static void clearFlag(fit::ChannelDataBit bitFlag, int& adcId) { adcId = uint8_t(adcId) & ~(1u << uint8_t(bitFlag)); } @@ -58,19 +58,19 @@ struct ChannelDataFloat { { adcId = flag; } - [[nodiscard]] bool getFlag(fit::EEventDataBit bitFlag) const + [[nodiscard]] bool getFlag(fit::ChannelDataBit bitFlag) const { return bool(uint8_t(adcId) & (1u << uint8_t(bitFlag))); } [[nodiscard]] bool areAllFlagsGood() const { - return (!getFlag(fit::EEventDataBit::kIsDoubleEvent) && - !getFlag(fit::EEventDataBit::kIsTimeInfoNOTvalid) && - getFlag(fit::EEventDataBit::kIsCFDinADCgate) && - !getFlag(fit::EEventDataBit::kIsTimeInfoLate) && - !getFlag(fit::EEventDataBit::kIsAmpHigh) && - getFlag(fit::EEventDataBit::kIsEventInTVDC) && - !getFlag(fit::EEventDataBit::kIsTimeInfoLost)); + return (!getFlag(fit::ChannelDataBit::kIsDoubleEvent) && + !getFlag(fit::ChannelDataBit::kIsTimeInfoNOTvalid) && + getFlag(fit::ChannelDataBit::kIsCFDinADCgate) && + !getFlag(fit::ChannelDataBit::kIsTimeInfoLate) && + !getFlag(fit::ChannelDataBit::kIsAmpHigh) && + getFlag(fit::ChannelDataBit::kIsEventInTVDC) && + !getFlag(fit::ChannelDataBit::kIsTimeInfoLost)); } void print() const; diff --git a/DataFormats/Detectors/FIT/common/include/DataFormatsFIT/EEventDataBit.h b/DataFormats/Detectors/FIT/common/include/DataFormatsFIT/ChannelDataBit.h similarity index 96% rename from DataFormats/Detectors/FIT/common/include/DataFormatsFIT/EEventDataBit.h rename to DataFormats/Detectors/FIT/common/include/DataFormatsFIT/ChannelDataBit.h index 3557d67b6d4fa..80d1ef5e55be0 100644 --- a/DataFormats/Detectors/FIT/common/include/DataFormatsFIT/EEventDataBit.h +++ b/DataFormats/Detectors/FIT/common/include/DataFormatsFIT/ChannelDataBit.h @@ -20,7 +20,7 @@ namespace o2 { namespace fit { -enum class EEventDataBit { kNumberADC = 0, +enum class ChannelDataBit { kNumberADC = 0, kIsDoubleEvent, kIsTimeInfoNOTvalid, kIsCFDinADCgate, From 8e1cfd806474628832cb5ad124f24233e038073a Mon Sep 17 00:00:00 2001 From: wpierozak Date: Wed, 24 Sep 2025 12:17:19 +0200 Subject: [PATCH 10/15] FIT: clang-format ChannelDataBit --- .../common/include/DataFormatsFIT/ChannelDataBit.h | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/DataFormats/Detectors/FIT/common/include/DataFormatsFIT/ChannelDataBit.h b/DataFormats/Detectors/FIT/common/include/DataFormatsFIT/ChannelDataBit.h index 80d1ef5e55be0..7ec420ce9dd04 100644 --- a/DataFormats/Detectors/FIT/common/include/DataFormatsFIT/ChannelDataBit.h +++ b/DataFormats/Detectors/FIT/common/include/DataFormatsFIT/ChannelDataBit.h @@ -21,13 +21,13 @@ namespace o2 namespace fit { enum class ChannelDataBit { kNumberADC = 0, - kIsDoubleEvent, - kIsTimeInfoNOTvalid, - kIsCFDinADCgate, - kIsTimeInfoLate, - kIsAmpHigh, - kIsEventInTVDC, - kIsTimeInfoLost + kIsDoubleEvent, + kIsTimeInfoNOTvalid, + kIsCFDinADCgate, + kIsTimeInfoLate, + kIsAmpHigh, + kIsEventInTVDC, + kIsTimeInfoLost }; } } // namespace o2 From 61cfaada056889fcc19f2be085ce9912bc8b208a Mon Sep 17 00:00:00 2001 From: Andreas Molander Date: Wed, 24 Sep 2025 14:20:04 +0300 Subject: [PATCH 11/15] Make comments more descriptive --- .../Detectors/FIT/FDD/include/DataFormatsFDD/RecPoint.h | 8 ++++---- .../Detectors/FIT/FT0/include/DataFormatsFT0/RecPoints.h | 8 ++++---- .../Detectors/FIT/FV0/include/DataFormatsFV0/RecPoints.h | 8 ++++---- .../FIT/common/include/DataFormatsFIT/ChannelDataBit.h | 9 +++++---- 4 files changed, 17 insertions(+), 16 deletions(-) diff --git a/DataFormats/Detectors/FIT/FDD/include/DataFormatsFDD/RecPoint.h b/DataFormats/Detectors/FIT/FDD/include/DataFormatsFDD/RecPoint.h index 4b98370a7eb5f..fec61ad32db10 100644 --- a/DataFormats/Detectors/FIT/FDD/include/DataFormatsFDD/RecPoint.h +++ b/DataFormats/Detectors/FIT/FDD/include/DataFormatsFDD/RecPoint.h @@ -33,10 +33,10 @@ struct ChannelDataFloat { static constexpr double DUMMY_CFD_TIME = -20000; static constexpr double DUMMY_QTC_AMPL = -20000; - int mPMNumber = DUMMY_CHANNEL_ID; // channel Id - int adcId = DUMMY_CHAIN_QTC; // QTC chain - double mTime = DUMMY_CFD_TIME; // time in ps, 0 at the LHC clk center - double mChargeADC = DUMMY_QTC_AMPL; // charge [channels] + int mPMNumber = DUMMY_CHANNEL_ID; ///< Channel ID + int adcId = DUMMY_CHAIN_QTC; ///< Channel data bits + double mTime = DUMMY_CFD_TIME; ///< Channel time (ns), 0 at the LHC clock center + double mChargeADC = DUMMY_QTC_AMPL; ///< Channel charge (ADC channels) ChannelDataFloat() = default; ChannelDataFloat(int Channel, double Time, double Charge, int AdcId) diff --git a/DataFormats/Detectors/FIT/FT0/include/DataFormatsFT0/RecPoints.h b/DataFormats/Detectors/FIT/FT0/include/DataFormatsFT0/RecPoints.h index 5ad318630f7d8..4ac1fe5e43204 100644 --- a/DataFormats/Detectors/FIT/FT0/include/DataFormatsFT0/RecPoints.h +++ b/DataFormats/Detectors/FIT/FT0/include/DataFormatsFT0/RecPoints.h @@ -39,10 +39,10 @@ struct ChannelDataFloat { static constexpr float DUMMY_CFD_TIME = -20000; static constexpr float DUMMY_QTC_AMPL = -20000; - int ChId = DUMMY_CHANNEL_ID; // channel Id - int ChainQTC = DUMMY_CHAIN_QTC; // QTC chain - float CFDTime = DUMMY_CFD_TIME; // time in ps, 0 at the LHC clk center - float QTCAmpl = DUMMY_QTC_AMPL; // Amplitude mV + int ChId = DUMMY_CHANNEL_ID; ///< Channel ID + int ChainQTC = DUMMY_CHAIN_QTC; ///< Channel data bits + float CFDTime = DUMMY_CFD_TIME; ///< Channel time (ns), 0 at the LHC clock center + float QTCAmpl = DUMMY_QTC_AMPL; ///< Channel charge (ADC channels) ChannelDataFloat() = default; ChannelDataFloat(int iPmt, float time, float charge, int chainQTC) diff --git a/DataFormats/Detectors/FIT/FV0/include/DataFormatsFV0/RecPoints.h b/DataFormats/Detectors/FIT/FV0/include/DataFormatsFV0/RecPoints.h index 40883daff0a4f..9d51205e52d26 100644 --- a/DataFormats/Detectors/FIT/FV0/include/DataFormatsFV0/RecPoints.h +++ b/DataFormats/Detectors/FIT/FV0/include/DataFormatsFV0/RecPoints.h @@ -32,10 +32,10 @@ struct ChannelDataFloat { static constexpr double DUMMY_CFD_TIME = -20000.0; static constexpr double DUMMY_QTC_AMPL = -20000.0; - int channel = DUMMY_CHANNEL_ID; // channel Id - double time = DUMMY_CFD_TIME; // time in ns, 0 at the LHC clk center - double charge = DUMMY_QTC_AMPL; // charge [channels] - int adcId = DUMMY_CHAIN_QTC; // QTC chain + int channel = DUMMY_CHANNEL_ID; ///< Channel ID + double time = DUMMY_CFD_TIME; ///< Channel time (ns), 0 at the LHC clock center + double charge = DUMMY_QTC_AMPL; ///< Channel charge (ADC channels) + int adcId = DUMMY_CHAIN_QTC; ///< Channel data bits ChannelDataFloat() = default; ChannelDataFloat(int Channel, double Time, double Charge, int AdcId) diff --git a/DataFormats/Detectors/FIT/common/include/DataFormatsFIT/ChannelDataBit.h b/DataFormats/Detectors/FIT/common/include/DataFormatsFIT/ChannelDataBit.h index 7ec420ce9dd04..cc4eaef4ceebf 100644 --- a/DataFormats/Detectors/FIT/common/include/DataFormatsFIT/ChannelDataBit.h +++ b/DataFormats/Detectors/FIT/common/include/DataFormatsFIT/ChannelDataBit.h @@ -9,12 +9,13 @@ // granted to it by virtue of its status as an Intergovernmental Organization // or submit itself to any jurisdiction. -/// \file EEventDataBit.h -/// \brief Enum type describing bits in ChainQTC flag +/// \file ChannelDataBit.h +/// \brief Enum type describing channel data bits +/// /// \author wiktor.pierozak@cern.ch -#ifndef O2_FIT_EEVENT_DATA_BIT_ -#define O2_FIT_EEVENT_DATA_BIT_ +#ifndef O2_FIT_CHANNEL_DATA_BIT_ +#define O2_FIT_CHANNEL_DATA_BIT_ namespace o2 { From 94e5eaf6db89a56f84cfddddf94cc37fa161a511 Mon Sep 17 00:00:00 2001 From: wpierozak Date: Fri, 3 Oct 2025 10:35:27 +0200 Subject: [PATCH 12/15] FIT: Refactored ChannelDataFloat: removed nodiscard qualifier, changed all floating point values type to float, fixed setFlag method --- .../FIT/FDD/include/DataFormatsFDD/RecPoint.h | 28 ++++++++--------- .../FT0/include/DataFormatsFT0/RecPoints.h | 22 +++++++------- .../FV0/include/DataFormatsFV0/RecPoints.h | 30 +++++++++++-------- 3 files changed, 42 insertions(+), 38 deletions(-) diff --git a/DataFormats/Detectors/FIT/FDD/include/DataFormatsFDD/RecPoint.h b/DataFormats/Detectors/FIT/FDD/include/DataFormatsFDD/RecPoint.h index fec61ad32db10..fceb629852d69 100644 --- a/DataFormats/Detectors/FIT/FDD/include/DataFormatsFDD/RecPoint.h +++ b/DataFormats/Detectors/FIT/FDD/include/DataFormatsFDD/RecPoint.h @@ -30,13 +30,13 @@ namespace fdd struct ChannelDataFloat { static constexpr int DUMMY_CHANNEL_ID = -1; static constexpr int DUMMY_CHAIN_QTC = -1; - static constexpr double DUMMY_CFD_TIME = -20000; - static constexpr double DUMMY_QTC_AMPL = -20000; + static constexpr float DUMMY_CFD_TIME = -20000; + static constexpr float DUMMY_QTC_AMPL = -20000; int mPMNumber = DUMMY_CHANNEL_ID; ///< Channel ID int adcId = DUMMY_CHAIN_QTC; ///< Channel data bits - double mTime = DUMMY_CFD_TIME; ///< Channel time (ns), 0 at the LHC clock center - double mChargeADC = DUMMY_QTC_AMPL; ///< Channel charge (ADC channels) + float mTime = DUMMY_CFD_TIME; ///< Channel time (ns), 0 at the LHC clock center + float mChargeADC = DUMMY_QTC_AMPL; ///< Channel charge (ADC channels) ChannelDataFloat() = default; ChannelDataFloat(int Channel, double Time, double Charge, int AdcId) @@ -49,25 +49,25 @@ struct ChannelDataFloat { static void setFlag(fit::ChannelDataBit bitFlag, int& adcId) { - adcId = uint8_t(adcId) | 1u << uint8_t(bitFlag); + adcId = adcId | (1 << bitFlag); } static void clearFlag(fit::ChannelDataBit bitFlag, int& adcId) { adcId = uint8_t(adcId) & ~(1u << uint8_t(bitFlag)); } - void setFlag(int flag) + void setFlags(int flag) { adcId = flag; } - void setFlag(fit::ChannelDataBit bitFlag, bool value) + void setFlag(fit::ChannelDataBit bitFlag, bool value = true) { - adcId = uint8_t(adcId) | uint8_t(value) << uint8_t(bitFlag); + adcId = (adcId & (~(1 << bitFlag))) | (int(value) << bitFlag); } - [[nodiscard]] bool getFlag(fit::ChannelDataBit bitFlag) const + bool getFlag(fit::ChannelDataBit bitFlag) const { - return bool(uint8_t(adcId) & (1u << uint8_t(bitFlag))); + return bool(adcId & (1 << bitFlag)); } - [[nodiscard]] bool areAllFlagsGood() const + bool areAllFlagsGood() const { return (!getFlag(fit::ChannelDataBit::kIsDoubleEvent) && !getFlag(fit::ChannelDataBit::kIsTimeInfoNOTvalid) && @@ -79,9 +79,9 @@ struct ChannelDataFloat { } void print() const; - [[nodiscard]] int getChannelId() const { return mPMNumber; } - [[nodiscard]] double getTime() const { return mTime; } - [[nodiscard]] double getAmp() const { return mChargeADC; } + int getChannelId() const { return mPMNumber; } + float getTime() const { return mTime; } + float getAmp() const { return mChargeADC; } bool operator==(const ChannelDataFloat&) const = default; ClassDefNV(ChannelDataFloat, 1); diff --git a/DataFormats/Detectors/FIT/FT0/include/DataFormatsFT0/RecPoints.h b/DataFormats/Detectors/FIT/FT0/include/DataFormatsFT0/RecPoints.h index 4ac1fe5e43204..218be2f63c0f4 100644 --- a/DataFormats/Detectors/FIT/FT0/include/DataFormatsFT0/RecPoints.h +++ b/DataFormats/Detectors/FIT/FT0/include/DataFormatsFT0/RecPoints.h @@ -55,25 +55,25 @@ struct ChannelDataFloat { static void setFlag(fit::ChannelDataBit bitFlag, int& chainQTC) { - chainQTC = uint8_t(chainQTC) | 1u << uint8_t(bitFlag); + chainQTC = chainQTC | 1 << bitFlag; } static void clearFlag(fit::ChannelDataBit bitFlag, int& chainQTC) { - chainQTC = uint8_t(chainQTC) & ~(1u << uint8_t(bitFlag)); + chainQTC = chainQTC & (~(1 << bitFlag)); } - void setFlag(int flag) + void setFlags(int flag) { ChainQTC = flag; } - void setFlag(fit::ChannelDataBit bitFlag, bool value) + void setFlag(fit::ChannelDataBit bitFlag, bool value = true) { - ChainQTC = uint8_t(ChainQTC) | uint8_t(value) << uint8_t(bitFlag); + ChainQTC = (ChainQTC & (~(1 << bitFlag))) | (int(value) << bitFlag); } - [[nodiscard]] bool getFlag(fit::ChannelDataBit bitFlag) const + bool getFlag(fit::ChannelDataBit bitFlag) const { - return bool(uint8_t(ChainQTC) & (1u << uint8_t(bitFlag))); + return bool(ChainQTC & (1 << bitFlag)); } - [[nodiscard]] bool areAllFlagsGood() const + bool areAllFlagsGood() const { return (!getFlag(fit::ChannelDataBit::kIsDoubleEvent) && !getFlag(fit::ChannelDataBit::kIsTimeInfoNOTvalid) && @@ -85,9 +85,9 @@ struct ChannelDataFloat { } void print() const; - [[nodiscard]] int getChannelId() const { return ChId; } - [[nodiscard]] float getTime() const { return CFDTime; } - [[nodiscard]] float getAmp() const { return QTCAmpl; } + int getChannelId() const { return ChId; } + float getTime() const { return CFDTime; } + float getAmp() const { return QTCAmpl; } bool operator==(const ChannelDataFloat&) const = default; diff --git a/DataFormats/Detectors/FIT/FV0/include/DataFormatsFV0/RecPoints.h b/DataFormats/Detectors/FIT/FV0/include/DataFormatsFV0/RecPoints.h index 9d51205e52d26..387253bd67e7d 100644 --- a/DataFormats/Detectors/FIT/FV0/include/DataFormatsFV0/RecPoints.h +++ b/DataFormats/Detectors/FIT/FV0/include/DataFormatsFV0/RecPoints.h @@ -29,12 +29,12 @@ namespace fv0 struct ChannelDataFloat { static constexpr int DUMMY_CHANNEL_ID = -1; static constexpr int DUMMY_CHAIN_QTC = -1; - static constexpr double DUMMY_CFD_TIME = -20000.0; - static constexpr double DUMMY_QTC_AMPL = -20000.0; + static constexpr float DUMMY_CFD_TIME = -20000.0; + static constexpr float DUMMY_QTC_AMPL = -20000.0; int channel = DUMMY_CHANNEL_ID; ///< Channel ID - double time = DUMMY_CFD_TIME; ///< Channel time (ns), 0 at the LHC clock center - double charge = DUMMY_QTC_AMPL; ///< Channel charge (ADC channels) + float time = DUMMY_CFD_TIME; ///< Channel time (ns), 0 at the LHC clock center + float charge = DUMMY_QTC_AMPL; ///< Channel charge (ADC channels) int adcId = DUMMY_CHAIN_QTC; ///< Channel data bits ChannelDataFloat() = default; @@ -48,21 +48,25 @@ struct ChannelDataFloat { static void setFlag(fit::ChannelDataBit bitFlag, int& adcId) { - adcId = uint8_t(adcId) | 1u << uint8_t(bitFlag); + adcId = adcId | (1 << bitFlag); } static void clearFlag(fit::ChannelDataBit bitFlag, int& adcId) { - adcId = uint8_t(adcId) & ~(1u << uint8_t(bitFlag)); + adcId = adcId & (~(1u << bitFlag)); } - void setFlag(int flag) + void setFlags(int flag) { adcId = flag; } - [[nodiscard]] bool getFlag(fit::ChannelDataBit bitFlag) const + void setFlag(fit::ChannelDataBit bitFlag, bool value = true) { - return bool(uint8_t(adcId) & (1u << uint8_t(bitFlag))); + adcId = (adcId & (~(1 << bitFlag))) | (int(value) << bitFlag); } - [[nodiscard]] bool areAllFlagsGood() const + bool getFlag(fit::ChannelDataBit bitFlag) const + { + return bool(adcId & (1 << bitFlag)); + } + bool areAllFlagsGood() const { return (!getFlag(fit::ChannelDataBit::kIsDoubleEvent) && !getFlag(fit::ChannelDataBit::kIsTimeInfoNOTvalid) && @@ -74,9 +78,9 @@ struct ChannelDataFloat { } void print() const; - [[nodiscard]] int getChannelId() const { return channel; } - [[nodiscard]] double getTime() const { return time; } - [[nodiscard]] double getAmp() const { return charge; } + int getChannelId() const { return channel; } + float getTime() const { return time; } + float getAmp() const { return charge; } bool operator==(const ChannelDataFloat&) const = default; ClassDefNV(ChannelDataFloat, 1); From ebc1181972260285fc4d9b2d645951d2a91c5ae3 Mon Sep 17 00:00:00 2001 From: wpierozak Date: Fri, 3 Oct 2025 11:07:55 +0200 Subject: [PATCH 13/15] FIT: overloaded << operator for fit::ChannelDataBit --- .../Detectors/FIT/FDD/include/DataFormatsFDD/RecPoint.h | 2 +- .../Detectors/FIT/FV0/include/DataFormatsFV0/RecPoints.h | 2 +- .../FIT/common/include/DataFormatsFIT/ChannelDataBit.h | 9 +++++++++ 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/DataFormats/Detectors/FIT/FDD/include/DataFormatsFDD/RecPoint.h b/DataFormats/Detectors/FIT/FDD/include/DataFormatsFDD/RecPoint.h index fceb629852d69..437f4407d56a5 100644 --- a/DataFormats/Detectors/FIT/FDD/include/DataFormatsFDD/RecPoint.h +++ b/DataFormats/Detectors/FIT/FDD/include/DataFormatsFDD/RecPoint.h @@ -53,7 +53,7 @@ struct ChannelDataFloat { } static void clearFlag(fit::ChannelDataBit bitFlag, int& adcId) { - adcId = uint8_t(adcId) & ~(1u << uint8_t(bitFlag)); + adcId = adcId & ~(1 << bitFlag); } void setFlags(int flag) { diff --git a/DataFormats/Detectors/FIT/FV0/include/DataFormatsFV0/RecPoints.h b/DataFormats/Detectors/FIT/FV0/include/DataFormatsFV0/RecPoints.h index 387253bd67e7d..25fb3f7456c2f 100644 --- a/DataFormats/Detectors/FIT/FV0/include/DataFormatsFV0/RecPoints.h +++ b/DataFormats/Detectors/FIT/FV0/include/DataFormatsFV0/RecPoints.h @@ -52,7 +52,7 @@ struct ChannelDataFloat { } static void clearFlag(fit::ChannelDataBit bitFlag, int& adcId) { - adcId = adcId & (~(1u << bitFlag)); + adcId = adcId & (~(1 << bitFlag)); } void setFlags(int flag) { diff --git a/DataFormats/Detectors/FIT/common/include/DataFormatsFIT/ChannelDataBit.h b/DataFormats/Detectors/FIT/common/include/DataFormatsFIT/ChannelDataBit.h index cc4eaef4ceebf..32cfcabf20006 100644 --- a/DataFormats/Detectors/FIT/common/include/DataFormatsFIT/ChannelDataBit.h +++ b/DataFormats/Detectors/FIT/common/include/DataFormatsFIT/ChannelDataBit.h @@ -17,6 +17,8 @@ #ifndef O2_FIT_CHANNEL_DATA_BIT_ #define O2_FIT_CHANNEL_DATA_BIT_ +#include + namespace o2 { namespace fit @@ -30,6 +32,13 @@ enum class ChannelDataBit { kNumberADC = 0, kIsEventInTVDC, kIsTimeInfoLost }; + +template +requires std::integral +IntegerType operator<<(IntegerType n, ChannelDataBit bitFlag) +{ + return n << static_cast(bitFlag); +} } } // namespace o2 From 5726ce20a855a384b96094c0df16970db09a5ffe Mon Sep 17 00:00:00 2001 From: wpierozak Date: Sun, 5 Oct 2025 18:33:10 +0200 Subject: [PATCH 14/15] FIT: ChannelDataFloat: Changed amplitude and time field datatypes back to double --- .../FIT/FDD/include/DataFormatsFDD/RecPoint.h | 12 ++++++------ .../FIT/FV0/include/DataFormatsFV0/RecPoints.h | 8 ++++---- .../common/include/DataFormatsFIT/ChannelDataBit.h | 6 +++--- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/DataFormats/Detectors/FIT/FDD/include/DataFormatsFDD/RecPoint.h b/DataFormats/Detectors/FIT/FDD/include/DataFormatsFDD/RecPoint.h index 437f4407d56a5..94088a0f3fdc8 100644 --- a/DataFormats/Detectors/FIT/FDD/include/DataFormatsFDD/RecPoint.h +++ b/DataFormats/Detectors/FIT/FDD/include/DataFormatsFDD/RecPoint.h @@ -30,13 +30,13 @@ namespace fdd struct ChannelDataFloat { static constexpr int DUMMY_CHANNEL_ID = -1; static constexpr int DUMMY_CHAIN_QTC = -1; - static constexpr float DUMMY_CFD_TIME = -20000; - static constexpr float DUMMY_QTC_AMPL = -20000; + static constexpr double DUMMY_CFD_TIME = -20000; + static constexpr double DUMMY_QTC_AMPL = -20000; int mPMNumber = DUMMY_CHANNEL_ID; ///< Channel ID int adcId = DUMMY_CHAIN_QTC; ///< Channel data bits - float mTime = DUMMY_CFD_TIME; ///< Channel time (ns), 0 at the LHC clock center - float mChargeADC = DUMMY_QTC_AMPL; ///< Channel charge (ADC channels) + double mTime = DUMMY_CFD_TIME; ///< Channel time (ns), 0 at the LHC clock center + double mChargeADC = DUMMY_QTC_AMPL; ///< Channel charge (ADC channels) ChannelDataFloat() = default; ChannelDataFloat(int Channel, double Time, double Charge, int AdcId) @@ -80,8 +80,8 @@ struct ChannelDataFloat { void print() const; int getChannelId() const { return mPMNumber; } - float getTime() const { return mTime; } - float getAmp() const { return mChargeADC; } + double getTime() const { return mTime; } + double getAmp() const { return mChargeADC; } bool operator==(const ChannelDataFloat&) const = default; ClassDefNV(ChannelDataFloat, 1); diff --git a/DataFormats/Detectors/FIT/FV0/include/DataFormatsFV0/RecPoints.h b/DataFormats/Detectors/FIT/FV0/include/DataFormatsFV0/RecPoints.h index 25fb3f7456c2f..d1e1aa837ba35 100644 --- a/DataFormats/Detectors/FIT/FV0/include/DataFormatsFV0/RecPoints.h +++ b/DataFormats/Detectors/FIT/FV0/include/DataFormatsFV0/RecPoints.h @@ -29,8 +29,8 @@ namespace fv0 struct ChannelDataFloat { static constexpr int DUMMY_CHANNEL_ID = -1; static constexpr int DUMMY_CHAIN_QTC = -1; - static constexpr float DUMMY_CFD_TIME = -20000.0; - static constexpr float DUMMY_QTC_AMPL = -20000.0; + static constexpr double DUMMY_CFD_TIME = -20000.0; + static constexpr double DUMMY_QTC_AMPL = -20000.0; int channel = DUMMY_CHANNEL_ID; ///< Channel ID float time = DUMMY_CFD_TIME; ///< Channel time (ns), 0 at the LHC clock center @@ -79,8 +79,8 @@ struct ChannelDataFloat { void print() const; int getChannelId() const { return channel; } - float getTime() const { return time; } - float getAmp() const { return charge; } + double getTime() const { return time; } + double getAmp() const { return charge; } bool operator==(const ChannelDataFloat&) const = default; ClassDefNV(ChannelDataFloat, 1); diff --git a/DataFormats/Detectors/FIT/common/include/DataFormatsFIT/ChannelDataBit.h b/DataFormats/Detectors/FIT/common/include/DataFormatsFIT/ChannelDataBit.h index 32cfcabf20006..aeb8e431d5c6d 100644 --- a/DataFormats/Detectors/FIT/common/include/DataFormatsFIT/ChannelDataBit.h +++ b/DataFormats/Detectors/FIT/common/include/DataFormatsFIT/ChannelDataBit.h @@ -33,11 +33,11 @@ enum class ChannelDataBit { kNumberADC = 0, kIsTimeInfoLost }; -template -requires std::integral +template + requires std::integral IntegerType operator<<(IntegerType n, ChannelDataBit bitFlag) { - return n << static_cast(bitFlag); + return n << static_cast(bitFlag); } } } // namespace o2 From b01c4249787dcc8f5509522a83bc4e6e552871f4 Mon Sep 17 00:00:00 2001 From: ALICE Action Bot Date: Sun, 5 Oct 2025 16:33:59 +0000 Subject: [PATCH 15/15] Please consider the following formatting changes --- .../Detectors/FIT/FDD/include/DataFormatsFDD/RecPoint.h | 4 ++-- .../FIT/common/include/DataFormatsFIT/ChannelDataBit.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/DataFormats/Detectors/FIT/FDD/include/DataFormatsFDD/RecPoint.h b/DataFormats/Detectors/FIT/FDD/include/DataFormatsFDD/RecPoint.h index 94088a0f3fdc8..226663dfa2319 100644 --- a/DataFormats/Detectors/FIT/FDD/include/DataFormatsFDD/RecPoint.h +++ b/DataFormats/Detectors/FIT/FDD/include/DataFormatsFDD/RecPoint.h @@ -35,8 +35,8 @@ struct ChannelDataFloat { int mPMNumber = DUMMY_CHANNEL_ID; ///< Channel ID int adcId = DUMMY_CHAIN_QTC; ///< Channel data bits - double mTime = DUMMY_CFD_TIME; ///< Channel time (ns), 0 at the LHC clock center - double mChargeADC = DUMMY_QTC_AMPL; ///< Channel charge (ADC channels) + double mTime = DUMMY_CFD_TIME; ///< Channel time (ns), 0 at the LHC clock center + double mChargeADC = DUMMY_QTC_AMPL; ///< Channel charge (ADC channels) ChannelDataFloat() = default; ChannelDataFloat(int Channel, double Time, double Charge, int AdcId) diff --git a/DataFormats/Detectors/FIT/common/include/DataFormatsFIT/ChannelDataBit.h b/DataFormats/Detectors/FIT/common/include/DataFormatsFIT/ChannelDataBit.h index aeb8e431d5c6d..3a90f5c4764b8 100644 --- a/DataFormats/Detectors/FIT/common/include/DataFormatsFIT/ChannelDataBit.h +++ b/DataFormats/Detectors/FIT/common/include/DataFormatsFIT/ChannelDataBit.h @@ -39,7 +39,7 @@ IntegerType operator<<(IntegerType n, ChannelDataBit bitFlag) { return n << static_cast(bitFlag); } -} +} // namespace fit } // namespace o2 #endif \ No newline at end of file