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/28] 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/28] 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/28] 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/28] 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/28] 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/28] 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/28] 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/28] 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/28] 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/28] 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/28] 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/28] 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 { From 07ca11dd487a774bd79c3bde11f77911bb4194ed Mon Sep 17 00:00:00 2001 From: Mark E Smith Date: Wed, 17 Jun 2026 11:00:20 +0100 Subject: [PATCH 13/28] add RecHit --- CMakeLists.txt | 2 ++ include/SHiP/LinkDef.h | 2 ++ include/SHiP/RecParticle.hpp | 2 ++ 3 files changed, 6 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 01a680e..ea12f86 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/RecHit.hpp include/SHiP/RecParticle.hpp ) target_link_libraries(SHiPDataModel PUBLIC ROOT::Core) @@ -30,6 +31,7 @@ root_generate_dictionary( SHiP/SimHit.hpp SHiP/SimParticle.hpp SHiP/SimResult.hpp + SHiP/RecHit.hpp SHiP/RecParticle.hpp MODULE SHiPDataModel diff --git a/include/SHiP/LinkDef.h b/include/SHiP/LinkDef.h index 33ad6b5..a483efc 100644 --- a/include/SHiP/LinkDef.h +++ b/include/SHiP/LinkDef.h @@ -15,6 +15,8 @@ #pragma link C++ class std::vector+; // Reconstruction +#pragma link C++ class SHiP::RecHit+; +#pragma link C++ class std::vector+; #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 index dc03f19..cefd002 100644 --- a/include/SHiP/RecParticle.hpp +++ b/include/SHiP/RecParticle.hpp @@ -1,6 +1,7 @@ #pragma once #include +#include #include #include @@ -14,6 +15,7 @@ struct RecParticle { 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] + std::vector hits{}; double energy{0}; ///< Initial kinetic energy [GeV] double time{0}; ///< Production time [ns] std::int32_t creatorProcess{0}; From ddac47a434930e68e233d377027ad8ea046d9d5d Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Fri, 19 Jun 2026 09:35:43 +0000 Subject: [PATCH 14/28] style: pre-commit fixes --- include/SHiP/RecParticle.hpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/include/SHiP/RecParticle.hpp b/include/SHiP/RecParticle.hpp index a9f8d4d..f815c2f 100644 --- a/include/SHiP/RecParticle.hpp +++ b/include/SHiP/RecParticle.hpp @@ -3,8 +3,8 @@ #include #include -#include "SHiP/SimParticle.hpp" #include "SHiP/RecHit.hpp" +#include "SHiP/SimParticle.hpp" namespace SHiP { @@ -17,8 +17,8 @@ struct RecParticle { std::array endpoint{0, 0, 0}; ///< End point [mm] std::array momentum{0, 0, 0}; ///< Initial momentum [GeV/c] std::vector hits{}; - double energy{0}; ///< Initial kinetic energy [GeV] - double time{0}; ///< Production time [ns] + 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] }; From 48f111f3ffc00dce03650d6efde308d8611d53e9 Mon Sep 17 00:00:00 2001 From: Mark E Smith Date: Fri, 19 Jun 2026 11:18:12 +0100 Subject: [PATCH 15/28] vector --- include/SHiP/RecHit.hpp | 34 ++++++++++++++++++++++++++++++++++ include/SHiP/RecParticle.hpp | 1 + 2 files changed, 35 insertions(+) create mode 100644 include/SHiP/RecHit.hpp diff --git a/include/SHiP/RecHit.hpp b/include/SHiP/RecHit.hpp new file mode 100644 index 0000000..6e38f3d --- /dev/null +++ b/include/SHiP/RecHit.hpp @@ -0,0 +1,34 @@ +#pragma once + +#include +#include +#include "SHiP/SimHit.hpp" + +namespace SHiP { + +/// Reconstructed particle +struct RecHit { + + std::int32_t detectorId{0}; + std::int32_t trackId{0}; + std::int32_t pdgCode{0}; + std::array position{0, 0, 0}; ///< Hit position [mm] + std::array momentum{0, 0, 0}; ///< Momentum at hit [GeV/c] + double energyDeposit{0}; ///< Energy deposited [GeV] + double time{0}; ///< Global time [ns] + double pathLength{0}; ///< Step length [mm] +}; + +inline RecHit fromSimHit(SimHit const& sp) { + return { + .detectorId = sp.detectorId, + .trackId = sp.trackId, + .pdgCode = sp.pdgCode, + .position = sp.position, + .momentum = sp.momentum, + .energyDeposit = sp.energyDeposit, + .time = sp.time + }; +} + +} // namespace SHiP diff --git a/include/SHiP/RecParticle.hpp b/include/SHiP/RecParticle.hpp index a9f8d4d..3cf3876 100644 --- a/include/SHiP/RecParticle.hpp +++ b/include/SHiP/RecParticle.hpp @@ -2,6 +2,7 @@ #include #include +#include #include "SHiP/SimParticle.hpp" #include "SHiP/RecHit.hpp" From 71ab115bb9b4028f6e3f1ed29cd2a2ccf1360684 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Fri, 19 Jun 2026 10:22:05 +0000 Subject: [PATCH 16/28] style: pre-commit fixes --- include/SHiP/RecHit.hpp | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/include/SHiP/RecHit.hpp b/include/SHiP/RecHit.hpp index 6e38f3d..529e990 100644 --- a/include/SHiP/RecHit.hpp +++ b/include/SHiP/RecHit.hpp @@ -2,13 +2,13 @@ #include #include + #include "SHiP/SimHit.hpp" namespace SHiP { /// Reconstructed particle struct RecHit { - std::int32_t detectorId{0}; std::int32_t trackId{0}; std::int32_t pdgCode{0}; @@ -20,15 +20,13 @@ struct RecHit { }; inline RecHit fromSimHit(SimHit const& sp) { - return { - .detectorId = sp.detectorId, - .trackId = sp.trackId, - .pdgCode = sp.pdgCode, - .position = sp.position, - .momentum = sp.momentum, - .energyDeposit = sp.energyDeposit, - .time = sp.time - }; + return {.detectorId = sp.detectorId, + .trackId = sp.trackId, + .pdgCode = sp.pdgCode, + .position = sp.position, + .momentum = sp.momentum, + .energyDeposit = sp.energyDeposit, + .time = sp.time}; } } // namespace SHiP From b84aa052b0c184063add13681a8259dadeba0c5a Mon Sep 17 00:00:00 2001 From: Mark E Smith Date: Thu, 2 Jul 2026 19:26:02 +0100 Subject: [PATCH 17/28] add track fit result --- CMakeLists.txt | 6 ++- include/SHiP/LinkDef.h | 2 + include/SHiP/TrackFitResult.hpp | 31 +++++++++++++++ include/SHiP/Utilities.hpp | 68 +++++++++++++++++++++++++++++++++ 4 files changed, 106 insertions(+), 1 deletion(-) create mode 100644 include/SHiP/TrackFitResult.hpp create mode 100644 include/SHiP/Utilities.hpp diff --git a/CMakeLists.txt b/CMakeLists.txt index ea12f86..c7333b8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,6 +6,7 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) find_package(ROOT REQUIRED COMPONENTS Core RIO) +find_package(Acts CONFIG REQUIRED) add_library(SHiPDataModel SHARED) target_sources( @@ -20,9 +21,11 @@ target_sources( include/SHiP/SimParticle.hpp include/SHiP/SimResult.hpp include/SHiP/RecHit.hpp + include/SHiP/TrackFitResult.hpp + include/SHiP/Utilities.hpp include/SHiP/RecParticle.hpp ) -target_link_libraries(SHiPDataModel PUBLIC ROOT::Core) +target_link_libraries(SHiPDataModel PUBLIC ROOT::Core Acts::Core) set_target_properties(SHiPDataModel PROPERTIES LINKER_LANGUAGE CXX) root_generate_dictionary( @@ -32,6 +35,7 @@ root_generate_dictionary( SHiP/SimParticle.hpp SHiP/SimResult.hpp SHiP/RecHit.hpp + SHiP/TrackFitResult.hpp SHiP/RecParticle.hpp MODULE SHiPDataModel diff --git a/include/SHiP/LinkDef.h b/include/SHiP/LinkDef.h index a483efc..d2eafe6 100644 --- a/include/SHiP/LinkDef.h +++ b/include/SHiP/LinkDef.h @@ -17,6 +17,8 @@ // Reconstruction #pragma link C++ class SHiP::RecHit+; #pragma link C++ class std::vector+; +#pragma link C++ class SHiP::TrackFitResult+; +#pragma link C++ class std::vector+; #pragma link C++ class SHiP::RecParticle+; #pragma link C++ class std::vector+; #endif diff --git a/include/SHiP/TrackFitResult.hpp b/include/SHiP/TrackFitResult.hpp new file mode 100644 index 0000000..d7b4421 --- /dev/null +++ b/include/SHiP/TrackFitResult.hpp @@ -0,0 +1,31 @@ +#pragma once + +#include +#include +#include + + +//#include +//#include + +namespace SHiP { + +/// Reconstructed particle +struct TrackFitResult { + std::int32_t nMeas{0}; + std::int32_t fitStatus{1}; // 0 = success, 1 = failure + double chi2{0}; + std::int32_t ndf{0}; + double qoverp{0}; + double phi{0}; + double theta{0}; + double time{0}; + std::array refLoc{0,0,0}; + std::vector inputMeasurementsX{}; + std::vector inputMeasurementsY{}; + std::vector fittedMeasurementsX{}; + std::vector fittedMeasurementsY{}; + std::vector residualsX{}; + std::vector residualsY{}; +}; +} // namespace SHiP diff --git a/include/SHiP/Utilities.hpp b/include/SHiP/Utilities.hpp new file mode 100644 index 0000000..2c138a8 --- /dev/null +++ b/include/SHiP/Utilities.hpp @@ -0,0 +1,68 @@ +#pragma once + +#include +#include +#include + +#include + +#include +#include + +namespace SHiP { + +inline TrackFitResult fromACTSFitResult( + const Acts::Result::TrackProxy>& actsResult, + Acts::TrackContainer& tracks) { + + TrackFitResult result; + if (!actsResult.ok()) { + result.fitStatus = 1; + return result; + } + + auto track = actsResult.value(); + const auto& params = track.parameters(); + auto& states = tracks.trackStateContainer(); + + result.fitStatus = 0; + result.chi2 = track.chi2(); + result.ndf = track.nDoF(); + result.qoverp = params[Acts::eBoundQOverP]; + result.phi = params[Acts::eBoundPhi]; + result.theta = params[Acts::eBoundTheta]; + result.time = params[Acts::eBoundTime]; + result.refLoc = {params[Acts::eBoundLoc0], params[Acts::eBoundLoc1], 0.0}; + + states.visitBackwards(track.tipIndex(), [&](auto ts) { + if (!ts.typeFlags().isMeasurement()){ + return true; + } + if (!(ts.hasCalibrated())) {; + return true; + } + if(!ts.hasSmoothed()) { + return true; + } + + auto meas = ts.template calibrated<2>(); + auto smooth = ts.smoothed(); + + Acts::Vector2 fitted; + fitted << smooth[Acts::eBoundLoc0], smooth[Acts::eBoundLoc1]; + + Acts::Vector2 residual = meas - fitted; + result.inputMeasurementsX.push_back(meas[0]); + result.inputMeasurementsY.push_back(meas[1]); + result.fittedMeasurementsX.push_back(fitted[0]); + result.fittedMeasurementsY.push_back(fitted[1]); + result.residualsX.push_back(residual[0]); + result.residualsY.push_back(residual[1]); + return true; + }); + result.nMeas = static_cast(result.inputMeasurementsX.size()); + + return result; +} +} \ No newline at end of file From de599984c5d16a020a3a6519c75f20969c0936bb Mon Sep 17 00:00:00 2001 From: Mark E Smith Date: Thu, 2 Jul 2026 19:42:06 +0100 Subject: [PATCH 18/28] tidy --- include/SHiP/TrackFitResult.hpp | 4 ---- 1 file changed, 4 deletions(-) diff --git a/include/SHiP/TrackFitResult.hpp b/include/SHiP/TrackFitResult.hpp index d7b4421..1555220 100644 --- a/include/SHiP/TrackFitResult.hpp +++ b/include/SHiP/TrackFitResult.hpp @@ -4,10 +4,6 @@ #include #include - -//#include -//#include - namespace SHiP { /// Reconstructed particle From 8cd7edc855c7ca4e0e0c1cc54fb85fef2b8ac6d8 Mon Sep 17 00:00:00 2001 From: Mark E Smith Date: Thu, 2 Jul 2026 19:46:10 +0100 Subject: [PATCH 19/28] conflict resolution --- CMakeLists.txt | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 12948d4..5cf17f8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,19 +13,6 @@ target_sources( SHiPDataModel PUBLIC FILE_SET headers -<<<<<<< HEAD - TYPE HEADERS - BASE_DIRS include - FILES - include/SHiP/MCParticle.hpp - include/SHiP/SimHit.hpp - include/SHiP/SimParticle.hpp - include/SHiP/SimResult.hpp - include/SHiP/RecHit.hpp - include/SHiP/TrackFitResult.hpp - include/SHiP/Utilities.hpp - include/SHiP/RecParticle.hpp -======= TYPE HEADERS BASE_DIRS include FILES @@ -33,8 +20,10 @@ target_sources( include/SHiP/SimHit.hpp include/SHiP/SimParticle.hpp include/SHiP/SimResult.hpp + include/SHiP/RecHit.hpp + include/SHiP/TrackFitResult.hpp + include/SHiP/Utilities.hpp include/SHiP/RecParticle.hpp ->>>>>>> main ) target_link_libraries(SHiPDataModel PUBLIC ROOT::Core Acts::Core) set_target_properties(SHiPDataModel PROPERTIES LINKER_LANGUAGE CXX) From 9a581d293283cf5ced8bc5306947b0be49406428 Mon Sep 17 00:00:00 2001 From: Mark E Smith Date: Fri, 3 Jul 2026 11:33:33 +0100 Subject: [PATCH 20/28] adjust --- include/SHiP/Utilities.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/SHiP/Utilities.hpp b/include/SHiP/Utilities.hpp index 2c138a8..2ba0101 100644 --- a/include/SHiP/Utilities.hpp +++ b/include/SHiP/Utilities.hpp @@ -65,4 +65,4 @@ inline TrackFitResult fromACTSFitResult( return result; } -} \ No newline at end of file +} From 0971774a0d6f70b240d02196243cd8bd69fad29b Mon Sep 17 00:00:00 2001 From: Mark E Smith Date: Thu, 9 Jul 2026 14:10:40 +0100 Subject: [PATCH 21/28] Add subdetector hits --- include/SHiP/detectors/CaloHit.hpp | 9 +++++++++ include/SHiP/detectors/SBTHit.hpp | 9 +++++++++ include/SHiP/detectors/StrawTubesHit.hpp | 9 +++++++++ include/SHiP/detectors/TimeDetHit.hpp | 9 +++++++++ include/SHiP/detectors/UBTHit.hpp | 9 +++++++++ 5 files changed, 45 insertions(+) create mode 100644 include/SHiP/detectors/CaloHit.hpp create mode 100644 include/SHiP/detectors/SBTHit.hpp create mode 100644 include/SHiP/detectors/StrawTubesHit.hpp create mode 100644 include/SHiP/detectors/TimeDetHit.hpp create mode 100644 include/SHiP/detectors/UBTHit.hpp diff --git a/include/SHiP/detectors/CaloHit.hpp b/include/SHiP/detectors/CaloHit.hpp new file mode 100644 index 0000000..7c8cf71 --- /dev/null +++ b/include/SHiP/detectors/CaloHit.hpp @@ -0,0 +1,9 @@ +#pragma once +#include "SHiP/RecHit.hpp" + +namespace SHiP { + +/// Hit reconstructed by the UBT (Upstream Background Tagger) +struct UBTHit : public RecHit {}; + +} // namespace SHiP diff --git a/include/SHiP/detectors/SBTHit.hpp b/include/SHiP/detectors/SBTHit.hpp new file mode 100644 index 0000000..7c8cf71 --- /dev/null +++ b/include/SHiP/detectors/SBTHit.hpp @@ -0,0 +1,9 @@ +#pragma once +#include "SHiP/RecHit.hpp" + +namespace SHiP { + +/// Hit reconstructed by the UBT (Upstream Background Tagger) +struct UBTHit : public RecHit {}; + +} // namespace SHiP diff --git a/include/SHiP/detectors/StrawTubesHit.hpp b/include/SHiP/detectors/StrawTubesHit.hpp new file mode 100644 index 0000000..7c8cf71 --- /dev/null +++ b/include/SHiP/detectors/StrawTubesHit.hpp @@ -0,0 +1,9 @@ +#pragma once +#include "SHiP/RecHit.hpp" + +namespace SHiP { + +/// Hit reconstructed by the UBT (Upstream Background Tagger) +struct UBTHit : public RecHit {}; + +} // namespace SHiP diff --git a/include/SHiP/detectors/TimeDetHit.hpp b/include/SHiP/detectors/TimeDetHit.hpp new file mode 100644 index 0000000..7c8cf71 --- /dev/null +++ b/include/SHiP/detectors/TimeDetHit.hpp @@ -0,0 +1,9 @@ +#pragma once +#include "SHiP/RecHit.hpp" + +namespace SHiP { + +/// Hit reconstructed by the UBT (Upstream Background Tagger) +struct UBTHit : public RecHit {}; + +} // namespace SHiP diff --git a/include/SHiP/detectors/UBTHit.hpp b/include/SHiP/detectors/UBTHit.hpp new file mode 100644 index 0000000..7c8cf71 --- /dev/null +++ b/include/SHiP/detectors/UBTHit.hpp @@ -0,0 +1,9 @@ +#pragma once +#include "SHiP/RecHit.hpp" + +namespace SHiP { + +/// Hit reconstructed by the UBT (Upstream Background Tagger) +struct UBTHit : public RecHit {}; + +} // namespace SHiP From 8a7efd7bb4339b295a01c4d3ca45312ecab977d5 Mon Sep 17 00:00:00 2001 From: Mark E Smith Date: Thu, 9 Jul 2026 14:14:30 +0100 Subject: [PATCH 22/28] add some detector particles --- include/SHiP/LinkDef.h | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/include/SHiP/LinkDef.h b/include/SHiP/LinkDef.h index d2eafe6..cdaba9c 100644 --- a/include/SHiP/LinkDef.h +++ b/include/SHiP/LinkDef.h @@ -14,9 +14,21 @@ #pragma link C++ class std::vector+; #pragma link C++ class std::vector+; -// Reconstruction +// Digitisation #pragma link C++ class SHiP::RecHit+; #pragma link C++ class std::vector+; +#pragma link C++ class SHiP::UBTHit+; +#pragma link C++ class std::vector+; +#pragma link C++ class SHiP::SBTHit+; +#pragma link C++ class std::vector+; +#pragma link C++ class SHiP::TimeDetHit+; +#pragma link C++ class std::vector+; +#pragma link C++ class SHiP::StrawTubesHit+; +#pragma link C++ class std::vector+; +#pragma link C++ class SHiP::CaloHit+; +#pragma link C++ class std::vector+; + +// Reconstruction #pragma link C++ class SHiP::TrackFitResult+; #pragma link C++ class std::vector+; #pragma link C++ class SHiP::RecParticle+; From 0554e47ab3e68380154379483b3b77c5a7ab5836 Mon Sep 17 00:00:00 2001 From: Mark E Smith Date: Thu, 9 Jul 2026 14:16:39 +0100 Subject: [PATCH 23/28] update CMakeLists.txt --- CMakeLists.txt | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5cf17f8..fc81230 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -24,6 +24,11 @@ target_sources( include/SHiP/TrackFitResult.hpp include/SHiP/Utilities.hpp include/SHiP/RecParticle.hpp + include/SHiP/detectors/UBTHit.hpp + include/SHiP/detectors/SBTHit.hpp + include/SHiP/detectors/StrawTubesHit.hpp + include/SHiP/detectors/CaloHit.hpp + include/SHiP/detectors/TimeDetHit.hpp ) target_link_libraries(SHiPDataModel PUBLIC ROOT::Core Acts::Core) set_target_properties(SHiPDataModel PROPERTIES LINKER_LANGUAGE CXX) @@ -37,6 +42,11 @@ root_generate_dictionary( SHiP/RecHit.hpp SHiP/TrackFitResult.hpp SHiP/RecParticle.hpp + SHiP/detectors/UBTHit.hpp + SHiP/detectors/SBTHit.hpp + SHiP/detectors/StrawTubesHit.hpp + SHiP/detectors/CaloHit.hpp + SHiP/detectors/TimeDetHit.hpp MODULE SHiPDataModel LINKDEF From 4ac87a37a2fca56d374b782fdf9d8adb6a4e4344 Mon Sep 17 00:00:00 2001 From: Mark E Smith Date: Thu, 9 Jul 2026 14:18:04 +0100 Subject: [PATCH 24/28] fix --- include/SHiP/detectors/CaloHit.hpp | 2 +- include/SHiP/detectors/SBTHit.hpp | 2 +- include/SHiP/detectors/StrawTubesHit.hpp | 2 +- include/SHiP/detectors/TimeDetHit.hpp | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/include/SHiP/detectors/CaloHit.hpp b/include/SHiP/detectors/CaloHit.hpp index 7c8cf71..d9f1f7c 100644 --- a/include/SHiP/detectors/CaloHit.hpp +++ b/include/SHiP/detectors/CaloHit.hpp @@ -4,6 +4,6 @@ namespace SHiP { /// Hit reconstructed by the UBT (Upstream Background Tagger) -struct UBTHit : public RecHit {}; +struct CaloHit : public RecHit {}; } // namespace SHiP diff --git a/include/SHiP/detectors/SBTHit.hpp b/include/SHiP/detectors/SBTHit.hpp index 7c8cf71..c8846f0 100644 --- a/include/SHiP/detectors/SBTHit.hpp +++ b/include/SHiP/detectors/SBTHit.hpp @@ -4,6 +4,6 @@ namespace SHiP { /// Hit reconstructed by the UBT (Upstream Background Tagger) -struct UBTHit : public RecHit {}; +struct SBTHit : public RecHit {}; } // namespace SHiP diff --git a/include/SHiP/detectors/StrawTubesHit.hpp b/include/SHiP/detectors/StrawTubesHit.hpp index 7c8cf71..441a6a5 100644 --- a/include/SHiP/detectors/StrawTubesHit.hpp +++ b/include/SHiP/detectors/StrawTubesHit.hpp @@ -4,6 +4,6 @@ namespace SHiP { /// Hit reconstructed by the UBT (Upstream Background Tagger) -struct UBTHit : public RecHit {}; +struct StrawTubesHit : public RecHit {}; } // namespace SHiP diff --git a/include/SHiP/detectors/TimeDetHit.hpp b/include/SHiP/detectors/TimeDetHit.hpp index 7c8cf71..8824405 100644 --- a/include/SHiP/detectors/TimeDetHit.hpp +++ b/include/SHiP/detectors/TimeDetHit.hpp @@ -4,6 +4,6 @@ namespace SHiP { /// Hit reconstructed by the UBT (Upstream Background Tagger) -struct UBTHit : public RecHit {}; +struct TimeDetHit : public RecHit {}; } // namespace SHiP From 8989d3c6a1b786735a8c68d6292d748bdbb527d3 Mon Sep 17 00:00:00 2001 From: Mark E Smith Date: Thu, 9 Jul 2026 15:37:38 +0100 Subject: [PATCH 25/28] fix compilation --- CMakeLists.txt | 3 +-- include/SHiP/detectors/CaloHit.hpp | 2 +- include/SHiP/detectors/SBTHit.hpp | 2 +- include/SHiP/detectors/StrawTubesHit.hpp | 2 +- include/SHiP/detectors/TimeDetHit.hpp | 2 +- 5 files changed, 5 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c60ec24..d68a502 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,7 +6,6 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) find_package(ROOT REQUIRED COMPONENTS Core RIO) -find_package(Acts CONFIG REQUIRED) add_library(SHiPDataModel SHARED) target_sources( @@ -30,7 +29,7 @@ target_sources( include/SHiP/detectors/CaloHit.hpp include/SHiP/detectors/TimeDetHit.hpp ) -target_link_libraries(SHiPDataModel PUBLIC ROOT::Core Acts::Core) +target_link_libraries(SHiPDataModel PUBLIC ROOT::Core) set_target_properties(SHiPDataModel PROPERTIES LINKER_LANGUAGE CXX) root_generate_dictionary( diff --git a/include/SHiP/detectors/CaloHit.hpp b/include/SHiP/detectors/CaloHit.hpp index d9f1f7c..b5849de 100644 --- a/include/SHiP/detectors/CaloHit.hpp +++ b/include/SHiP/detectors/CaloHit.hpp @@ -3,7 +3,7 @@ namespace SHiP { -/// Hit reconstructed by the UBT (Upstream Background Tagger) +/// Hit reconstructed by the calorimeter struct CaloHit : public RecHit {}; } // namespace SHiP diff --git a/include/SHiP/detectors/SBTHit.hpp b/include/SHiP/detectors/SBTHit.hpp index c8846f0..6e8172a 100644 --- a/include/SHiP/detectors/SBTHit.hpp +++ b/include/SHiP/detectors/SBTHit.hpp @@ -3,7 +3,7 @@ namespace SHiP { -/// Hit reconstructed by the UBT (Upstream Background Tagger) +/// Hit reconstructed by the SBT (Surround Background Tagger) struct SBTHit : public RecHit {}; } // namespace SHiP diff --git a/include/SHiP/detectors/StrawTubesHit.hpp b/include/SHiP/detectors/StrawTubesHit.hpp index 441a6a5..abc977f 100644 --- a/include/SHiP/detectors/StrawTubesHit.hpp +++ b/include/SHiP/detectors/StrawTubesHit.hpp @@ -3,7 +3,7 @@ namespace SHiP { -/// Hit reconstructed by the UBT (Upstream Background Tagger) +/// Hit reconstructed by a layer of the straw tubes spectrometer struct StrawTubesHit : public RecHit {}; } // namespace SHiP diff --git a/include/SHiP/detectors/TimeDetHit.hpp b/include/SHiP/detectors/TimeDetHit.hpp index 8824405..ce3de1d 100644 --- a/include/SHiP/detectors/TimeDetHit.hpp +++ b/include/SHiP/detectors/TimeDetHit.hpp @@ -3,7 +3,7 @@ namespace SHiP { -/// Hit reconstructed by the UBT (Upstream Background Tagger) +/// Hit reconstructed by the timing detector struct TimeDetHit : public RecHit {}; } // namespace SHiP From 888722bb486c36d1b95d829c9345b3e6edd06dda Mon Sep 17 00:00:00 2001 From: Mark E Smith Date: Fri, 10 Jul 2026 11:06:06 +0100 Subject: [PATCH 26/28] update --- CMakeLists.txt | 1 - include/SHiP/Utilities.hpp | 68 -------------------------------------- 2 files changed, 69 deletions(-) delete mode 100644 include/SHiP/Utilities.hpp diff --git a/CMakeLists.txt b/CMakeLists.txt index d68a502..71bfae8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -21,7 +21,6 @@ target_sources( include/SHiP/SimResult.hpp include/SHiP/RecHit.hpp include/SHiP/TrackFitResult.hpp - include/SHiP/Utilities.hpp include/SHiP/RecParticle.hpp include/SHiP/detectors/UBTHit.hpp include/SHiP/detectors/SBTHit.hpp diff --git a/include/SHiP/Utilities.hpp b/include/SHiP/Utilities.hpp deleted file mode 100644 index 2ba0101..0000000 --- a/include/SHiP/Utilities.hpp +++ /dev/null @@ -1,68 +0,0 @@ -#pragma once - -#include -#include -#include - -#include - -#include -#include - -namespace SHiP { - -inline TrackFitResult fromACTSFitResult( - const Acts::Result::TrackProxy>& actsResult, - Acts::TrackContainer& tracks) { - - TrackFitResult result; - if (!actsResult.ok()) { - result.fitStatus = 1; - return result; - } - - auto track = actsResult.value(); - const auto& params = track.parameters(); - auto& states = tracks.trackStateContainer(); - - result.fitStatus = 0; - result.chi2 = track.chi2(); - result.ndf = track.nDoF(); - result.qoverp = params[Acts::eBoundQOverP]; - result.phi = params[Acts::eBoundPhi]; - result.theta = params[Acts::eBoundTheta]; - result.time = params[Acts::eBoundTime]; - result.refLoc = {params[Acts::eBoundLoc0], params[Acts::eBoundLoc1], 0.0}; - - states.visitBackwards(track.tipIndex(), [&](auto ts) { - if (!ts.typeFlags().isMeasurement()){ - return true; - } - if (!(ts.hasCalibrated())) {; - return true; - } - if(!ts.hasSmoothed()) { - return true; - } - - auto meas = ts.template calibrated<2>(); - auto smooth = ts.smoothed(); - - Acts::Vector2 fitted; - fitted << smooth[Acts::eBoundLoc0], smooth[Acts::eBoundLoc1]; - - Acts::Vector2 residual = meas - fitted; - result.inputMeasurementsX.push_back(meas[0]); - result.inputMeasurementsY.push_back(meas[1]); - result.fittedMeasurementsX.push_back(fitted[0]); - result.fittedMeasurementsY.push_back(fitted[1]); - result.residualsX.push_back(residual[0]); - result.residualsY.push_back(residual[1]); - return true; - }); - result.nMeas = static_cast(result.inputMeasurementsX.size()); - - return result; -} -} From 33c6eee2502394de7b1ab1d8a5256a0b7be6249e Mon Sep 17 00:00:00 2001 From: Mark E Smith Date: Fri, 10 Jul 2026 11:08:15 +0100 Subject: [PATCH 27/28] tidy --- include/SHiP/RecHit.hpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/SHiP/RecHit.hpp b/include/SHiP/RecHit.hpp index 529e990..7916a14 100644 --- a/include/SHiP/RecHit.hpp +++ b/include/SHiP/RecHit.hpp @@ -26,7 +26,8 @@ inline RecHit fromSimHit(SimHit const& sp) { .position = sp.position, .momentum = sp.momentum, .energyDeposit = sp.energyDeposit, - .time = sp.time}; + .time = sp.time, + .pathLength = sp.pathLength}; } } // namespace SHiP From 6678dd828c3da1c2f8a089f6058ca149b283baec Mon Sep 17 00:00:00 2001 From: Mark E Smith Date: Sat, 11 Jul 2026 18:34:58 +0100 Subject: [PATCH 28/28] updates for digitisatio --- CMakeLists.txt | 16 +++++++++++++--- include/SHiP/detectors/CaloHit.hpp | 4 +++- include/SHiP/detectors/DetectorID.hpp | 16 ++++++++++++++++ include/SHiP/detectors/SBTHit.hpp | 4 +++- include/SHiP/detectors/StrawTubesHit.hpp | 4 +++- include/SHiP/detectors/TimeDetHit.hpp | 4 +++- include/SHiP/detectors/UBTHit.hpp | 4 +++- 7 files changed, 44 insertions(+), 8 deletions(-) create mode 100644 include/SHiP/detectors/DetectorID.hpp diff --git a/CMakeLists.txt b/CMakeLists.txt index 71bfae8..1168682 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -26,11 +26,17 @@ target_sources( include/SHiP/detectors/SBTHit.hpp include/SHiP/detectors/StrawTubesHit.hpp include/SHiP/detectors/CaloHit.hpp - include/SHiP/detectors/TimeDetHit.hpp + include/SHiP/detectors/TimeDetHit.hpp + include/SHiP/detectors/DetectorID.hpp ) target_link_libraries(SHiPDataModel PUBLIC ROOT::Core) set_target_properties(SHiPDataModel PROPERTIES LINKER_LANGUAGE CXX) - +target_include_directories( + SHiPDataModel + PUBLIC + $ + $ +) root_generate_dictionary( G__SHiPDataModel SHiP/MCParticle.hpp @@ -57,7 +63,10 @@ install( TARGETS SHiPDataModel EXPORT SHiPDataModelTargets LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - FILE_SET headers + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + FILE_SET headers DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} + INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} ) install( FILES @@ -89,6 +98,7 @@ install( DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/SHiPDataModel ) + include(CTest) if(BUILD_TESTING) add_subdirectory(tests) diff --git a/include/SHiP/detectors/CaloHit.hpp b/include/SHiP/detectors/CaloHit.hpp index b5849de..e86e3ff 100644 --- a/include/SHiP/detectors/CaloHit.hpp +++ b/include/SHiP/detectors/CaloHit.hpp @@ -4,6 +4,8 @@ namespace SHiP { /// Hit reconstructed by the calorimeter -struct CaloHit : public RecHit {}; +struct CaloHit{ + RecHit recHit; ///< The reconstructed hit +}; } // namespace SHiP diff --git a/include/SHiP/detectors/DetectorID.hpp b/include/SHiP/detectors/DetectorID.hpp new file mode 100644 index 0000000..c8b497b --- /dev/null +++ b/include/SHiP/detectors/DetectorID.hpp @@ -0,0 +1,16 @@ +// SHiP/DetectorID.hpp +#pragma once + +#include + +namespace SHiP { + +enum class DetectorID : std::int32_t { + StrawTubes = 2, + Calorimeter = 3, + UpstreamTagger = 0, + SurroundTagger = 1, + TimingDetector = 4 +}; + +} // namespace SHiP \ No newline at end of file diff --git a/include/SHiP/detectors/SBTHit.hpp b/include/SHiP/detectors/SBTHit.hpp index 6e8172a..1828e9c 100644 --- a/include/SHiP/detectors/SBTHit.hpp +++ b/include/SHiP/detectors/SBTHit.hpp @@ -4,6 +4,8 @@ namespace SHiP { /// Hit reconstructed by the SBT (Surround Background Tagger) -struct SBTHit : public RecHit {}; +struct SBTHit{ + RecHit recHit; ///< The reconstructed hit +}; } // namespace SHiP diff --git a/include/SHiP/detectors/StrawTubesHit.hpp b/include/SHiP/detectors/StrawTubesHit.hpp index abc977f..db4282c 100644 --- a/include/SHiP/detectors/StrawTubesHit.hpp +++ b/include/SHiP/detectors/StrawTubesHit.hpp @@ -4,6 +4,8 @@ namespace SHiP { /// Hit reconstructed by a layer of the straw tubes spectrometer -struct StrawTubesHit : public RecHit {}; +struct StrawTubesHit{ + RecHit recHit; ///< The reconstructed hit +}; } // namespace SHiP diff --git a/include/SHiP/detectors/TimeDetHit.hpp b/include/SHiP/detectors/TimeDetHit.hpp index ce3de1d..cfa3080 100644 --- a/include/SHiP/detectors/TimeDetHit.hpp +++ b/include/SHiP/detectors/TimeDetHit.hpp @@ -4,6 +4,8 @@ namespace SHiP { /// Hit reconstructed by the timing detector -struct TimeDetHit : public RecHit {}; +struct TimeDetHit{ + RecHit recHit; ///< The reconstructed hit +}; } // namespace SHiP diff --git a/include/SHiP/detectors/UBTHit.hpp b/include/SHiP/detectors/UBTHit.hpp index 7c8cf71..79792a4 100644 --- a/include/SHiP/detectors/UBTHit.hpp +++ b/include/SHiP/detectors/UBTHit.hpp @@ -4,6 +4,8 @@ namespace SHiP { /// Hit reconstructed by the UBT (Upstream Background Tagger) -struct UBTHit : public RecHit {}; +struct UBTHit{ + RecHit recHit; ///< The reconstructed hit +}; } // namespace SHiP