From d9f71f22875e802f8f8506dce95a0ccdcd9b2120 Mon Sep 17 00:00:00 2001 From: Mark E Smith Date: Tue, 9 Jun 2026 11:26:04 +0100 Subject: [PATCH 01/12] add rec particle --- CMakeLists.txt | 2 ++ include/SHiP/LinkDef.h | 5 +++++ include/SHiP/RecParticle.hpp | 38 ++++++++++++++++++++++++++++++++++++ 3 files changed, 45 insertions(+) create mode 100644 include/SHiP/RecParticle.hpp diff --git a/CMakeLists.txt b/CMakeLists.txt index 9cd458c..01a680e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -19,6 +19,7 @@ target_sources( include/SHiP/SimHit.hpp include/SHiP/SimParticle.hpp include/SHiP/SimResult.hpp + include/SHiP/RecParticle.hpp ) target_link_libraries(SHiPDataModel PUBLIC ROOT::Core) set_target_properties(SHiPDataModel PROPERTIES LINKER_LANGUAGE CXX) @@ -29,6 +30,7 @@ root_generate_dictionary( SHiP/SimHit.hpp SHiP/SimParticle.hpp SHiP/SimResult.hpp + SHiP/RecParticle.hpp MODULE SHiPDataModel LINKDEF diff --git a/include/SHiP/LinkDef.h b/include/SHiP/LinkDef.h index 271aa85..2afe939 100644 --- a/include/SHiP/LinkDef.h +++ b/include/SHiP/LinkDef.h @@ -13,4 +13,9 @@ #pragma link C++ class SHiP::SimResult+; #pragma link C++ class std::vector+; #pragma link C++ class std::vector+; + + +// Reconstruction +#pragma link C++ class SHiP::RecParticle+; +#pragma link C++ class std::vector+; #endif diff --git a/include/SHiP/RecParticle.hpp b/include/SHiP/RecParticle.hpp new file mode 100644 index 0000000..2cc1b23 --- /dev/null +++ b/include/SHiP/RecParticle.hpp @@ -0,0 +1,38 @@ +#pragma once + +#include +#include +#include + +namespace SHiP { + +/// Reconstructed particle +class RecParticle { + + public: + RecParticle() = default; + explicit RecParticle(const SimParticle &sp) + : trackId(sp.trackId), + parentId(sp.parentId), + pdgCode(sp.pdgCode), + vertex(sp.vertex), + endpoint(sp.endpoint), + momentum(sp.momentum), + energy(sp.energy), + time(sp.time), + creatorProcess(sp.creatorProcess) {} + + private: + std::int32_t trackId{0}; + std::int32_t parentId{0}; + std::int32_t pdgCode{0}; + std::array vertex{0, 0, 0}; ///< Production vertex [mm] + std::array endpoint{0, 0, 0}; ///< End point [mm] + std::array momentum{0, 0, 0}; ///< Initial momentum [GeV/c] + double energy{0}; ///< Initial kinetic energy [GeV] + double time{0}; ///< Production time [ns] + std::int32_t creatorProcess{0}; + double ipPV{0}; ///< IP wrt to the PV (at 0,0,0) [mm]> +}; + +} // namespace SHiP From a2ca5b268a4d8a4da0b33162305aea937f0c2f2b Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 9 Jun 2026 10:37:04 +0000 Subject: [PATCH 02/12] style: pre-commit fixes --- include/SHiP/RecParticle.hpp | 49 ++++++++++++++++++------------------ 1 file changed, 24 insertions(+), 25 deletions(-) diff --git a/include/SHiP/RecParticle.hpp b/include/SHiP/RecParticle.hpp index 2cc1b23..111e9bf 100644 --- a/include/SHiP/RecParticle.hpp +++ b/include/SHiP/RecParticle.hpp @@ -1,38 +1,37 @@ #pragma once +#include #include #include -#include namespace SHiP { /// Reconstructed particle class RecParticle { + public: + RecParticle() = default; + explicit RecParticle(const SimParticle &sp) + : trackId(sp.trackId), + parentId(sp.parentId), + pdgCode(sp.pdgCode), + vertex(sp.vertex), + endpoint(sp.endpoint), + momentum(sp.momentum), + energy(sp.energy), + time(sp.time), + creatorProcess(sp.creatorProcess) {} - public: - RecParticle() = default; - explicit RecParticle(const SimParticle &sp) - : trackId(sp.trackId), - parentId(sp.parentId), - pdgCode(sp.pdgCode), - vertex(sp.vertex), - endpoint(sp.endpoint), - momentum(sp.momentum), - energy(sp.energy), - time(sp.time), - creatorProcess(sp.creatorProcess) {} - - private: - std::int32_t trackId{0}; - std::int32_t parentId{0}; - std::int32_t pdgCode{0}; - std::array vertex{0, 0, 0}; ///< Production vertex [mm] - std::array endpoint{0, 0, 0}; ///< End point [mm] - std::array momentum{0, 0, 0}; ///< Initial momentum [GeV/c] - double energy{0}; ///< Initial kinetic energy [GeV] - double time{0}; ///< Production time [ns] - std::int32_t creatorProcess{0}; - double ipPV{0}; ///< IP wrt to the PV (at 0,0,0) [mm]> + private: + std::int32_t trackId{0}; + std::int32_t parentId{0}; + std::int32_t pdgCode{0}; + std::array vertex{0, 0, 0}; ///< Production vertex [mm] + std::array endpoint{0, 0, 0}; ///< End point [mm] + std::array momentum{0, 0, 0}; ///< Initial momentum [GeV/c] + double energy{0}; ///< Initial kinetic energy [GeV] + double time{0}; ///< Production time [ns] + std::int32_t creatorProcess{0}; + double ipPV{0}; ///< IP wrt to the PV (at 0,0,0) [mm]> }; } // namespace SHiP From 668f31e57d9a183c7b267f7a161b4d3eacbad0e9 Mon Sep 17 00:00:00 2001 From: Mark E Smith Date: Tue, 9 Jun 2026 11:40:43 +0100 Subject: [PATCH 03/12] reorder header --- include/SHiP/RecParticle.hpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/SHiP/RecParticle.hpp b/include/SHiP/RecParticle.hpp index 111e9bf..bbf0e6a 100644 --- a/include/SHiP/RecParticle.hpp +++ b/include/SHiP/RecParticle.hpp @@ -1,9 +1,10 @@ #pragma once -#include #include #include +#include + namespace SHiP { /// Reconstructed particle From a5f1b5ad73f0e78e0d4b16e7fa71615bc8bc9e6e Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 9 Jun 2026 10:41:03 +0000 Subject: [PATCH 04/12] style: pre-commit fixes --- include/SHiP/RecParticle.hpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/include/SHiP/RecParticle.hpp b/include/SHiP/RecParticle.hpp index bbf0e6a..111e9bf 100644 --- a/include/SHiP/RecParticle.hpp +++ b/include/SHiP/RecParticle.hpp @@ -1,10 +1,9 @@ #pragma once +#include #include #include -#include - namespace SHiP { /// Reconstructed particle From 807d28d234fab4293f8a9e00a2a5d09423f1f857 Mon Sep 17 00:00:00 2001 From: Mark E Smith Date: Tue, 9 Jun 2026 11:49:41 +0100 Subject: [PATCH 05/12] make it work --- include/SHiP/RecParticle.hpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/include/SHiP/RecParticle.hpp b/include/SHiP/RecParticle.hpp index bbf0e6a..fb96180 100644 --- a/include/SHiP/RecParticle.hpp +++ b/include/SHiP/RecParticle.hpp @@ -3,7 +3,7 @@ #include #include -#include +#include namespace SHiP { @@ -22,7 +22,6 @@ class RecParticle { time(sp.time), creatorProcess(sp.creatorProcess) {} - private: std::int32_t trackId{0}; std::int32_t parentId{0}; std::int32_t pdgCode{0}; @@ -32,7 +31,7 @@ class RecParticle { double energy{0}; ///< Initial kinetic energy [GeV] double time{0}; ///< Production time [ns] std::int32_t creatorProcess{0}; - double ipPV{0}; ///< IP wrt to the PV (at 0,0,0) [mm]> + double ipPV{0}; ///< IP wrt to the PV (at 0,0,0) [mm] }; } // namespace SHiP From 9d4c39928373212afcc45746e3e81ae1635af276 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 9 Jun 2026 10:51:56 +0000 Subject: [PATCH 06/12] style: pre-commit fixes --- include/SHiP/RecParticle.hpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/include/SHiP/RecParticle.hpp b/include/SHiP/RecParticle.hpp index fb96180..5e7cc28 100644 --- a/include/SHiP/RecParticle.hpp +++ b/include/SHiP/RecParticle.hpp @@ -1,10 +1,9 @@ #pragma once +#include #include #include -#include - namespace SHiP { /// Reconstructed particle From 56e796099600977f717852c42d8ee5c1adcb556e Mon Sep 17 00:00:00 2001 From: Mark E Smith Date: Tue, 9 Jun 2026 14:56:07 +0100 Subject: [PATCH 07/12] things --- include/SHiP/LinkDef.h | 1 - include/SHiP/RecParticle.hpp | 30 +++++++++++++++++------------- 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/include/SHiP/LinkDef.h b/include/SHiP/LinkDef.h index 2afe939..33ad6b5 100644 --- a/include/SHiP/LinkDef.h +++ b/include/SHiP/LinkDef.h @@ -14,7 +14,6 @@ #pragma link C++ class std::vector+; #pragma link C++ class std::vector+; - // Reconstruction #pragma link C++ class SHiP::RecParticle+; #pragma link C++ class std::vector+; diff --git a/include/SHiP/RecParticle.hpp b/include/SHiP/RecParticle.hpp index fb96180..44e68f0 100644 --- a/include/SHiP/RecParticle.hpp +++ b/include/SHiP/RecParticle.hpp @@ -8,19 +8,7 @@ namespace SHiP { /// Reconstructed particle -class RecParticle { - public: - RecParticle() = default; - explicit RecParticle(const SimParticle &sp) - : trackId(sp.trackId), - parentId(sp.parentId), - pdgCode(sp.pdgCode), - vertex(sp.vertex), - endpoint(sp.endpoint), - momentum(sp.momentum), - energy(sp.energy), - time(sp.time), - creatorProcess(sp.creatorProcess) {} +struct RecParticle { std::int32_t trackId{0}; std::int32_t parentId{0}; @@ -34,4 +22,20 @@ class RecParticle { double ipPV{0}; ///< IP wrt to the PV (at 0,0,0) [mm] }; +inline RecParticle fromSimParticle(SimParticle const& sp) +{ + return { + .trackId = sp.trackId, + .parentId = sp.parentId, + .pdgCode = sp.pdgCode, + .vertex = sp.vertex, + .endpoint = sp.endpoint, + .momentum = sp.momentum, + .energy = sp.energy, + .time = sp.time, + .creatorProcess = sp.creatorProcess, + .ipPV = 0.0, + }; +}; + } // namespace SHiP From e12c868cbb3c38a7675631733d8a1df79ef81ddd Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 9 Jun 2026 13:56:35 +0000 Subject: [PATCH 08/12] style: pre-commit fixes --- include/SHiP/RecParticle.hpp | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/include/SHiP/RecParticle.hpp b/include/SHiP/RecParticle.hpp index 6d4e0bb..2526d11 100644 --- a/include/SHiP/RecParticle.hpp +++ b/include/SHiP/RecParticle.hpp @@ -8,7 +8,6 @@ namespace SHiP { /// Reconstructed particle struct RecParticle { - std::int32_t trackId{0}; std::int32_t parentId{0}; std::int32_t pdgCode{0}; @@ -21,19 +20,18 @@ struct RecParticle { double ipPV{0}; ///< IP wrt to the PV (at 0,0,0) [mm] }; -inline RecParticle fromSimParticle(SimParticle const& sp) -{ +inline RecParticle fromSimParticle(SimParticle const& sp) { return { - .trackId = sp.trackId, - .parentId = sp.parentId, - .pdgCode = sp.pdgCode, - .vertex = sp.vertex, - .endpoint = sp.endpoint, - .momentum = sp.momentum, - .energy = sp.energy, - .time = sp.time, - .creatorProcess = sp.creatorProcess, - .ipPV = 0.0, + .trackId = sp.trackId, + .parentId = sp.parentId, + .pdgCode = sp.pdgCode, + .vertex = sp.vertex, + .endpoint = sp.endpoint, + .momentum = sp.momentum, + .energy = sp.energy, + .time = sp.time, + .creatorProcess = sp.creatorProcess, + .ipPV = 0.0, }; }; From b8212b516d8d53129768f8095910fe223b9b8ca4 Mon Sep 17 00:00:00 2001 From: Mark E Smith Date: Tue, 9 Jun 2026 14:59:02 +0100 Subject: [PATCH 09/12] tidy --- include/SHiP/RecParticle.hpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/include/SHiP/RecParticle.hpp b/include/SHiP/RecParticle.hpp index 2526d11..e8b5569 100644 --- a/include/SHiP/RecParticle.hpp +++ b/include/SHiP/RecParticle.hpp @@ -1,9 +1,10 @@ #pragma once -#include #include #include +#include + namespace SHiP { /// Reconstructed particle @@ -33,6 +34,6 @@ inline RecParticle fromSimParticle(SimParticle const& sp) { .creatorProcess = sp.creatorProcess, .ipPV = 0.0, }; -}; +} } // namespace SHiP From 7ac38a04bff21f4a254ff85aed04c07d30edeb8c Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 9 Jun 2026 13:59:21 +0000 Subject: [PATCH 10/12] style: pre-commit fixes --- include/SHiP/RecParticle.hpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/include/SHiP/RecParticle.hpp b/include/SHiP/RecParticle.hpp index e8b5569..dc03f19 100644 --- a/include/SHiP/RecParticle.hpp +++ b/include/SHiP/RecParticle.hpp @@ -1,10 +1,9 @@ #pragma once +#include #include #include -#include - namespace SHiP { /// Reconstructed particle From e9c61eabc3999cfdcc4015d694d564e6dbd9e8b3 Mon Sep 17 00:00:00 2001 From: Mark E Smith Date: Tue, 9 Jun 2026 15:18:16 +0100 Subject: [PATCH 11/12] order --- include/SHiP/RecParticle.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/SHiP/RecParticle.hpp b/include/SHiP/RecParticle.hpp index dc03f19..34c0151 100644 --- a/include/SHiP/RecParticle.hpp +++ b/include/SHiP/RecParticle.hpp @@ -1,8 +1,8 @@ #pragma once -#include #include #include +#include namespace SHiP { From 9286927fbe700e39a20950c519146f40ba3b8c5f Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 9 Jun 2026 14:18:40 +0000 Subject: [PATCH 12/12] style: pre-commit fixes --- include/SHiP/RecParticle.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/SHiP/RecParticle.hpp b/include/SHiP/RecParticle.hpp index 34c0151..dc03f19 100644 --- a/include/SHiP/RecParticle.hpp +++ b/include/SHiP/RecParticle.hpp @@ -1,8 +1,8 @@ #pragma once +#include #include #include -#include namespace SHiP {