diff --git a/algo/CMakeLists.txt b/algo/CMakeLists.txt index 02c7fcacd2852103decb12bdf415befca3310208..f09ec98a1d742334367e69578a0656e0dcc64174 100644 --- a/algo/CMakeLists.txt +++ b/algo/CMakeLists.txt @@ -121,7 +121,6 @@ install( base/ChainContext.h base/Definitions.h base/Options.h - base/Prelude.h base/RecoParams.h base/SubChain.h ca/simd/CaSimd.h diff --git a/algo/base/Definitions.h b/algo/base/Definitions.h index 3a3cb83e1b166f1f15f575351fedf959be98a319..274c2e8e051c5d2927ec9a876f494bed55e8efc5 100644 --- a/algo/base/Definitions.h +++ b/algo/base/Definitions.h @@ -6,11 +6,31 @@ #include "MicrosliceDescriptor.hpp" // For fles::Subsystem +#include <cstdint> + #include "util/EnumDict.h" namespace cbm::algo { + // typealias for Rust-like fixed size integer types + using i8 = std::int8_t; + using u8 = std::uint8_t; + using i16 = std::int16_t; + using u16 = std::uint16_t; + using i32 = std::int32_t; + using u32 = std::uint32_t; + using i64 = std::int64_t; + using u64 = std::uint64_t; + using f32 = float; + using f64 = double; + +#ifdef CBM_ALGO_REAL64 + using real = f64; +#else + using real = f32; +#endif + enum class Step { Unpack, diff --git a/algo/base/Prelude.h b/algo/base/Prelude.h deleted file mode 100644 index 31a5f5a5eaa992ca19241736331bba2e070ec619..0000000000000000000000000000000000000000 --- a/algo/base/Prelude.h +++ /dev/null @@ -1,32 +0,0 @@ -/* Copyright (C) 2023 FIAS Frankfurt Institute for Advanced Studies, Frankfurt / Main - SPDX-License-Identifier: GPL-3.0-only - Authors: Felix Weiglhofer [committer] */ -#ifndef CBM_ALGO_BASE_PRELUDE_H -#define CBM_ALGO_BASE_PRELUDE_H - -#include <cstdint> - -namespace cbm::algo -{ - - // typealias for Rust-like fixed size integer types - using i8 = std::int8_t; - using u8 = std::uint8_t; - using i16 = std::int16_t; - using u16 = std::uint16_t; - using i32 = std::int32_t; - using u32 = std::uint32_t; - using i64 = std::int64_t; - using u64 = std::uint64_t; - using f32 = float; - using f64 = double; - -#ifdef CBM_ALGO_REAL64 - using real = f64; -#else - using real = f32; -#endif - -} // namespace cbm::algo - -#endif // CBM_ALGO_BASE_PRELUDE_H diff --git a/algo/base/RecoParams.h b/algo/base/RecoParams.h index b1f08da263c03c2842e8dcda501f528901c07a50..45c845a50e55b97792bb0a4be07ba92e0c451dc1 100644 --- a/algo/base/RecoParams.h +++ b/algo/base/RecoParams.h @@ -6,7 +6,7 @@ #include <xpu/defines.h> -#include "Prelude.h" +#include "Definitions.h" #include "config/Property.h" #include "util/EnumDict.h" diff --git a/algo/base/config/BaseTypes.h b/algo/base/config/BaseTypes.h index b69620abcde029914f5515a190dcc3887c9b4c5c..5cb598dd7f5b77df65a48c10de4d9966a487996a 100644 --- a/algo/base/config/BaseTypes.h +++ b/algo/base/config/BaseTypes.h @@ -8,7 +8,7 @@ #include <tuple> #include <vector> -#include "Prelude.h" +#include "Definitions.h" namespace cbm::algo::config { diff --git a/algo/base/config/Property.h b/algo/base/config/Property.h index baddbd9755e22dff031fd8120c43d72f2c49374b..b099498b118e5fb7042eaea1dca2626c2121d7ea 100644 --- a/algo/base/config/Property.h +++ b/algo/base/config/Property.h @@ -10,7 +10,7 @@ #include <yaml-cpp/emittermanip.h> -#include "Prelude.h" +#include "Definitions.h" namespace cbm::algo::config { diff --git a/algo/base/config/Yaml.h b/algo/base/config/Yaml.h index cb836b0465c89f329fd9fc2054991dd3d7f19721..71895d38ce8b208bc997c99d632eab084f38467d 100644 --- a/algo/base/config/Yaml.h +++ b/algo/base/config/Yaml.h @@ -11,7 +11,7 @@ #include <yaml-cpp/yaml.h> #include "BaseTypes.h" -#include "Prelude.h" +#include "Definitions.h" #include "Property.h" #include "util/EnumDict.h" diff --git a/algo/base/gpu/Params.h b/algo/base/gpu/Params.h index b5e3beb259c79bb2032795a72acc56d72a251e97..86a4a407981b463f9d2fb87592933cfa5a43d706 100644 --- a/algo/base/gpu/Params.h +++ b/algo/base/gpu/Params.h @@ -7,7 +7,6 @@ #include <xpu/device.h> #include "DeviceImage.h" -#include "Prelude.h" #include "RecoParams.h" namespace cbm::algo diff --git a/algo/base/util/TimingsFormat.h b/algo/base/util/TimingsFormat.h index 593c8cae3a0ed13198176d49aeaa1da578d2291b..d01cda44806fb19e50e3d5c16870859010d48157 100644 --- a/algo/base/util/TimingsFormat.h +++ b/algo/base/util/TimingsFormat.h @@ -7,7 +7,7 @@ #include <string> #include <string_view> -#include "Prelude.h" +#include "Definitions.h" namespace xpu { diff --git a/algo/data/sts/Cluster.h b/algo/data/sts/Cluster.h index 0cd4fd86361233dc06acd2d4e2aeafcad0401fed..1e102b32e45fc6e85844515578068db3d05ba195 100644 --- a/algo/data/sts/Cluster.h +++ b/algo/data/sts/Cluster.h @@ -4,7 +4,7 @@ #ifndef CBM_ALGO_DATA_STS_CLUSTER_H #define CBM_ALGO_DATA_STS_CLUSTER_H -#include "Prelude.h" +#include "Definitions.h" namespace cbm::algo::sts { diff --git a/algo/data/sts/Hit.h b/algo/data/sts/Hit.h index 1a1aa6d9e098feda0c985b05198ba909d3361a79..8446e6e1fc7beebe323f738001528a534221681d 100644 --- a/algo/data/sts/Hit.h +++ b/algo/data/sts/Hit.h @@ -5,7 +5,7 @@ #ifndef CBM_ALGO_DATA_STS_HIT_H #define CBM_ALGO_DATA_STS_HIT_H -#include "Prelude.h" +#include "Definitions.h" namespace cbm::algo::sts { diff --git a/algo/data/sts/HitfinderPars.h b/algo/data/sts/HitfinderPars.h index b89cf25a4b6d6b156aa24fc8652faee7a9fd2c8c..84e99607ed189a6dd419cb19b0d37173431086e1 100644 --- a/algo/data/sts/HitfinderPars.h +++ b/algo/data/sts/HitfinderPars.h @@ -4,8 +4,8 @@ #ifndef CBM_ALGO_DATA_STS_HITFINDERPARS_H #define CBM_ALGO_DATA_STS_HITFINDERPARS_H +#include "Definitions.h" #include "LandauTable.h" -#include "Prelude.h" #include "config/Property.h" namespace cbm::algo::sts diff --git a/algo/data/sts/LandauTable.h b/algo/data/sts/LandauTable.h index 06ca3546925440779f42945d51e0a4570d612a8e..df976a44bb8ca6e4a227848dc268c8e97bb86c1f 100644 --- a/algo/data/sts/LandauTable.h +++ b/algo/data/sts/LandauTable.h @@ -6,7 +6,7 @@ #include <vector> -#include "Prelude.h" +#include "Definitions.h" #include "compat/Filesystem.h" namespace cbm::algo::sts diff --git a/algo/detectors/sts/ReadoutConfig.h b/algo/detectors/sts/ReadoutConfig.h index 38e3239f08e1a08ecaf7db44c6575a976ca2ba85..7328fd32b604f64acb4e1a7b834c16a5ce4cc03a 100644 --- a/algo/detectors/sts/ReadoutConfig.h +++ b/algo/detectors/sts/ReadoutConfig.h @@ -8,7 +8,7 @@ #include <string> #include <vector> -#include "Prelude.h" +#include "Definitions.h" #include "config/Property.h" namespace cbm::algo::sts diff --git a/algo/detectors/sts/StsHitfinder.h b/algo/detectors/sts/StsHitfinder.h index 07c0cd2bd67f4f9ee6fd2476e35a691a8219afa4..f41ce3354cfdff4d0dd86d865e9f560759441f22 100644 --- a/algo/detectors/sts/StsHitfinder.h +++ b/algo/detectors/sts/StsHitfinder.h @@ -9,7 +9,7 @@ #include <xpu/device.h> -#include "Prelude.h" +#include "Definitions.h" #include "gpu/DeviceImage.h" #include "gpu/Params.h" #include "sts/Cluster.h" diff --git a/algo/detectors/sts/StsUnpackChain.h b/algo/detectors/sts/StsUnpackChain.h new file mode 100644 index 0000000000000000000000000000000000000000..c004363b2b08b5a24cc2aeebbfb1c5af53865294 --- /dev/null +++ b/algo/detectors/sts/StsUnpackChain.h @@ -0,0 +1,41 @@ +/* Copyright (C) 2022 FIAS Frankfurt Institute for Advanced Studies, Frankfurt / Main + SPDX-License-Identifier: GPL-3.0-only + Authors: Felix Weiglhofer [committer]*/ +#ifndef CBM_ALGO_DETECTORS_STS_UNPACKCHAIN_H +#define CBM_ALGO_DETECTORS_STS_UNPACKCHAIN_H + +#include <optional> +#include <unordered_map> +#include <vector> + +#include <xpu/defines.h> +#include <yaml-cpp/yaml.h> + +#include "Definitions.h" +#include "ReadoutConfig.h" +#include "SubChain.h" +#include "UnpackSts.h" + +class CbmStsDigi; +namespace fles +{ + class Timeslice; +} + +namespace cbm::algo::sts +{ + + class UnpackChain : public SubChain { + + public: + void Init(sts::ReadoutConfig config); + std::vector<CbmStsDigi> Run(const fles::Timeslice& ts); + + private: + std::unordered_map<u16, UnpackSts> fAlgoSts; + std::optional<sts::ReadoutConfig> fConfig; + }; + +} // namespace cbm::algo::sts + +#endif // CBM_ALGO_DETECTORS_STS_UNPACKCHAIN_H diff --git a/algo/detectors/sts/UnpackSts.h b/algo/detectors/sts/UnpackSts.h index d06db8877a899396eddcb1789a738b758a48d800..0be3abda746250c9fe495e6e817d2293daf04b0c 100644 --- a/algo/detectors/sts/UnpackSts.h +++ b/algo/detectors/sts/UnpackSts.h @@ -16,7 +16,7 @@ #include <memory> #include <vector> -#include "Prelude.h" +#include "Definitions.h" #include "StsXyterMessage.h" namespace cbm::algo diff --git a/algo/detectors/tof/UnpackTof.h b/algo/detectors/tof/UnpackTof.h index 0b4457c56f0b2b5d99b7cdbd87985c59b4fc51f1..b6e9ff1a7f163d7a90a289738f31941db09e8d98 100644 --- a/algo/detectors/tof/UnpackTof.h +++ b/algo/detectors/tof/UnpackTof.h @@ -19,7 +19,7 @@ #include <vector> #include "CriGet4Mess001.h" -#include "Prelude.h" +#include "Definitions.h" namespace cbm::algo {