From b5450def54ac7c2126e766e848183a5dcfc377af Mon Sep 17 00:00:00 2001 From: Alexander Kiselev Date: Mon, 25 Oct 2021 21:43:19 -0400 Subject: [PATCH 01/12] First iteration of Cherenkov PID structures --- eic_data.yaml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/eic_data.yaml b/eic_data.yaml index d493279..4b80f23 100644 --- a/eic_data.yaml +++ b/eic_data.yaml @@ -268,6 +268,24 @@ datatypes: bool isCompound() const {return particles_size() > 0;}\n " + - eic::Index pidID // Index of the associated Cherenkov PID, if any + + + eic::CherenkovMassHypothesis: + Description: "Cherenkov detector PID mass hypothesis" + Author: "A. Kiselev, C. Dilks" + Members: + - eic::Index ID // Unique entry ID + - int16_t npe // Overall p.e. count associated with this hypothesis for a given track + - float weight // The mass of the particle in [GeV] + + eic::CherenkovPID: + Description: "Cherenkov detector PID" + Author: "A. Kiselev, C. Dilks" + Members: + - eic::Index ID // Unique entry ID + - std::array hypotheses// (Up to 4) mass hypotheses (e/pi/K/p) + ## ========================================================================== ## Calorimetry ## ========================================================================== -- GitLab From c72f96b127b92b35869b397721b2fc18b50d36e4 Mon Sep 17 00:00:00 2001 From: Alexander Kiselev Date: Tue, 26 Oct 2021 10:04:29 -0400 Subject: [PATCH 02/12] CherenkovMassHypothesis and CherenkovPID added --- eic_data.yaml | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/eic_data.yaml b/eic_data.yaml index 4b80f23..1b860c7 100644 --- a/eic_data.yaml +++ b/eic_data.yaml @@ -268,14 +268,23 @@ datatypes: bool isCompound() const {return particles_size() > 0;}\n " - - eic::Index pidID // Index of the associated Cherenkov PID, if any + eic::ReconstructedParticleLocation: + Description: "EIC Reconstructed Particle Location" + Author: "W. Armstrong, S. Joosten" + Members: + - eic::Index ID // Unique particle index + - eic::VectorXYZ p // Momentum vector [GeV] + - eic::VectorXYZ v // Vertex [mm] + + - eic::Index recID // Index of the associated ReconstructedParticle particle, if any eic::CherenkovMassHypothesis: Description: "Cherenkov detector PID mass hypothesis" Author: "A. Kiselev, C. Dilks" Members: - eic::Index ID // Unique entry ID + - int32_t pdg // PDG code - int16_t npe // Overall p.e. count associated with this hypothesis for a given track - float weight // The mass of the particle in [GeV] @@ -284,7 +293,9 @@ datatypes: Author: "A. Kiselev, C. Dilks" Members: - eic::Index ID // Unique entry ID - - std::array hypotheses// (Up to 4) mass hypotheses (e/pi/K/p) + - std::array hypothesis// (Up to 4) mass hypotheses (e/pi/K/p) + + - eic::Index recID // Index of the associated ReconstructedParticle particle, if any ## ========================================================================== ## Calorimetry -- GitLab From 4254c14c2005823a74a6702ce5226f75255f7cfb Mon Sep 17 00:00:00 2001 From: Alexander Kiselev Date: Tue, 26 Oct 2021 20:33:34 -0400 Subject: [PATCH 03/12] ChargedParticleLocation and ChargedParticleTrajectory placeholders --- eic_data.yaml | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/eic_data.yaml b/eic_data.yaml index 1b860c7..940d4dc 100644 --- a/eic_data.yaml +++ b/eic_data.yaml @@ -269,13 +269,21 @@ datatypes: " - eic::ReconstructedParticleLocation: - Description: "EIC Reconstructed Particle Location" - Author: "W. Armstrong, S. Joosten" + eic::ChargedParticleLocation: + Description: "EIC Particle Location" + Author: "A. Kiselev, C. Dilks" Members: - - eic::Index ID // Unique particle index + - eic::Index ID // Unique index - eic::VectorXYZ p // Momentum vector [GeV] - - eic::VectorXYZ v // Vertex [mm] + - eic::VectorXYZ v // 3D location [mm] + - float t // Time [ns] + + eic::ChargedParticleTrajectory: + Description: "EIC Charged Particle Trajectory" + Author: "A. Kiselev, C. Dilks" + Members: + - eic::Index ID // Unique index + - std::array location // (Up to 10, let's be generous) particle locations, ordered in time - eic::Index recID // Index of the associated ReconstructedParticle particle, if any @@ -286,7 +294,7 @@ datatypes: - eic::Index ID // Unique entry ID - int32_t pdg // PDG code - int16_t npe // Overall p.e. count associated with this hypothesis for a given track - - float weight // The mass of the particle in [GeV] + - float weight // The weight associated with this hypothesis (the higher the more probable) eic::CherenkovPID: Description: "Cherenkov detector PID" -- GitLab From f0702de2c322c2101c70bbd2d7daaceef888b8e1 Mon Sep 17 00:00:00 2001 From: Alexander Kiselev Date: Wed, 27 Oct 2021 00:50:46 -0400 Subject: [PATCH 04/12] Intermediate version with CherenkovParticleID and Trajectory in one file --- eic_data.yaml | 50 ++++++++++++++++++++------------------------------ 1 file changed, 20 insertions(+), 30 deletions(-) diff --git a/eic_data.yaml b/eic_data.yaml index 940d4dc..5eda010 100644 --- a/eic_data.yaml +++ b/eic_data.yaml @@ -200,6 +200,22 @@ components: - float pathlength // Pathlength from the origin to this point - float pathlengthError // Error on the pathlenght + ## A point along a trajectory + eic::TrajectoryPoint: + Members: + - eic::VectorXYZ position // Position of the trajectory point [mm] + - eic::VectorXYZ p // 3-momentum at the point [GeV] + - eic::Direction direction // (theta, phi) direction of track at the surface [mrad] + - float momentum // magnitude of 3-momentum [GeV] + - float pathlength // Pathlength from the origin to this point + + ## PID hypothesis from Cherenkov detectors + eic::CherenkovPdgHypothesis: + Members: + - int32_t pdg // PDG code + - int16_t npe // Overall p.e. count associated with this hypothesis for a given track + - float weight // The weight associated with this hypothesis (the higher the more probable) + datatypes: ## ========================================================================== @@ -269,42 +285,16 @@ datatypes: " - eic::ChargedParticleLocation: - Description: "EIC Particle Location" - Author: "A. Kiselev, C. Dilks" - Members: - - eic::Index ID // Unique index - - eic::VectorXYZ p // Momentum vector [GeV] - - eic::VectorXYZ v // 3D location [mm] - - float t // Time [ns] - - eic::ChargedParticleTrajectory: - Description: "EIC Charged Particle Trajectory" - Author: "A. Kiselev, C. Dilks" - Members: - - eic::Index ID // Unique index - - std::array location // (Up to 10, let's be generous) particle locations, ordered in time - - - eic::Index recID // Index of the associated ReconstructedParticle particle, if any - - eic::CherenkovMassHypothesis: - Description: "Cherenkov detector PID mass hypothesis" - Author: "A. Kiselev, C. Dilks" - Members: - - eic::Index ID // Unique entry ID - - int32_t pdg // PDG code - - int16_t npe // Overall p.e. count associated with this hypothesis for a given track - - float weight // The weight associated with this hypothesis (the higher the more probable) - - eic::CherenkovPID: + eic::CherenkovParticleID: Description: "Cherenkov detector PID" Author: "A. Kiselev, C. Dilks" Members: - eic::Index ID // Unique entry ID - - std::array hypothesis// (Up to 4) mass hypotheses (e/pi/K/p) - - eic::Index recID // Index of the associated ReconstructedParticle particle, if any + VectorMembers: + - eic::CherenkovPdgHypothesis options // Evaluated PDG hypotheses, typically (e/pi/K/p) + ## ========================================================================== ## Calorimetry ## ========================================================================== -- GitLab From 65e62563d0a0106f3dae15ea6cacffcb4016918e Mon Sep 17 00:00:00 2001 From: christopher dilks Date: Fri, 29 Oct 2021 11:41:07 -0400 Subject: [PATCH 05/12] formatting --- eic_data.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/eic_data.yaml b/eic_data.yaml index 5eda010..bdcfacd 100644 --- a/eic_data.yaml +++ b/eic_data.yaml @@ -291,7 +291,6 @@ datatypes: Members: - eic::Index ID // Unique entry ID - eic::Index recID // Index of the associated ReconstructedParticle particle, if any - VectorMembers: - eic::CherenkovPdgHypothesis options // Evaluated PDG hypotheses, typically (e/pi/K/p) -- GitLab From 00db93220d309d111bf1f342a1f7146237c3fedd Mon Sep 17 00:00:00 2001 From: Alexander Kiselev Date: Thu, 4 Nov 2021 21:46:43 -0400 Subject: [PATCH 06/12] 'radiator' field added to CherenkovPdgHypothesis in eic_data.yaml --- eic_data.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/eic_data.yaml b/eic_data.yaml index bdcfacd..e35d666 100644 --- a/eic_data.yaml +++ b/eic_data.yaml @@ -212,8 +212,9 @@ components: ## PID hypothesis from Cherenkov detectors eic::CherenkovPdgHypothesis: Members: + - char radiator // Radiator number (0/1/..) in a sequence of the IRTAlgorithm configuration file - int32_t pdg // PDG code - - int16_t npe // Overall p.e. count associated with this hypothesis for a given track + - float npe // Overall p.e. count associated with this hypothesis for a given track - float weight // The weight associated with this hypothesis (the higher the more probable) datatypes: -- GitLab From 3eed4f5372e16a01927314df4a3e379146f230c3 Mon Sep 17 00:00:00 2001 From: Alexander Kiselev Date: Wed, 17 Nov 2021 02:08:31 -0500 Subject: [PATCH 07/12] Added average Cherenkov theta calculation table for IRT --- eic_data.yaml | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/eic_data.yaml b/eic_data.yaml index e35d666..36add1e 100644 --- a/eic_data.yaml +++ b/eic_data.yaml @@ -217,6 +217,13 @@ components: - float npe // Overall p.e. count associated with this hypothesis for a given track - float weight // The weight associated with this hypothesis (the higher the more probable) + ## Cherenkov angle measurement for a given radiator + eic::CherenkovThetaAngleMeasurement: + Members: + - char radiator // Radiator number (0/1/..) in a sequence of the IRTAlgorithm configuration file + - float npe // Overall p.e. count associated with this estimate + - float theta // Cherenkov theta angle + datatypes: ## ========================================================================== @@ -290,10 +297,11 @@ datatypes: Description: "Cherenkov detector PID" Author: "A. Kiselev, C. Dilks" Members: - - eic::Index ID // Unique entry ID - - eic::Index recID // Index of the associated ReconstructedParticle particle, if any + - eic::Index ID // Unique entry ID + - eic::Index recID // Index of the associated ReconstructedParticle particle, if any VectorMembers: - - eic::CherenkovPdgHypothesis options // Evaluated PDG hypotheses, typically (e/pi/K/p) + - eic::CherenkovPdgHypothesis options // Evaluated PDG hypotheses, typically (e/pi/K/p) + - eic::CherenkovThetaAngleMeasurement angles // Evaluated Cherenkov angles for different radiators ## ========================================================================== ## Calorimetry -- GitLab From 0ea94d04c48e69be573a1677c09ddf6cbac169dd Mon Sep 17 00:00:00 2001 From: Alexander Kiselev Date: Thu, 18 Nov 2021 04:11:18 -0500 Subject: [PATCH 08/12] Added average refractive index field in IRT --- eic_data.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/eic_data.yaml b/eic_data.yaml index 36add1e..ca4b5ed 100644 --- a/eic_data.yaml +++ b/eic_data.yaml @@ -223,6 +223,7 @@ components: - char radiator // Radiator number (0/1/..) in a sequence of the IRTAlgorithm configuration file - float npe // Overall p.e. count associated with this estimate - float theta // Cherenkov theta angle + - float rindex // Average refractive index for this collection of photons datatypes: -- GitLab From cedec86b7e94290a8ac92dc071173fd36ffbfbba Mon Sep 17 00:00:00 2001 From: Alexander Kiselev Date: Thu, 2 Dec 2021 22:54:39 -0500 Subject: [PATCH 09/12] Added average wavelength to RICH PID tables --- eic_data.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/eic_data.yaml b/eic_data.yaml index ca4b5ed..e6f6255 100644 --- a/eic_data.yaml +++ b/eic_data.yaml @@ -224,6 +224,7 @@ components: - float npe // Overall p.e. count associated with this estimate - float theta // Cherenkov theta angle - float rindex // Average refractive index for this collection of photons + - float wavelength // Average wavelength for this collection of photons datatypes: -- GitLab From 8f419f995202c67a9ecf7ce88c059d632450b2b3 Mon Sep 17 00:00:00 2001 From: christopher dilks Date: Fri, 17 Jun 2022 21:01:38 -0400 Subject: [PATCH 10/12] remove TrajectoryPoint; add one-to-one relation between CherenkovParticleID and ReconstructedParticle --- eic_data.yaml | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/eic_data.yaml b/eic_data.yaml index e6f6255..fb522f4 100644 --- a/eic_data.yaml +++ b/eic_data.yaml @@ -200,15 +200,6 @@ components: - float pathlength // Pathlength from the origin to this point - float pathlengthError // Error on the pathlenght - ## A point along a trajectory - eic::TrajectoryPoint: - Members: - - eic::VectorXYZ position // Position of the trajectory point [mm] - - eic::VectorXYZ p // 3-momentum at the point [GeV] - - eic::Direction direction // (theta, phi) direction of track at the surface [mrad] - - float momentum // magnitude of 3-momentum [GeV] - - float pathlength // Pathlength from the origin to this point - ## PID hypothesis from Cherenkov detectors eic::CherenkovPdgHypothesis: Members: @@ -294,16 +285,15 @@ datatypes: bool isCompound() const {return particles_size() > 0;}\n " - eic::CherenkovParticleID: Description: "Cherenkov detector PID" Author: "A. Kiselev, C. Dilks" - Members: - - eic::Index ID // Unique entry ID - - eic::Index recID // Index of the associated ReconstructedParticle particle, if any VectorMembers: - eic::CherenkovPdgHypothesis options // Evaluated PDG hypotheses, typically (e/pi/K/p) - eic::CherenkovThetaAngleMeasurement angles // Evaluated Cherenkov angles for different radiators + OneToOneRelations: + ## @TODO: should it be one-to-one? + - eicd::ReconstructedParticle associatedParticle // associated reconstructed particle ## ========================================================================== ## Calorimetry -- GitLab From a0867171e1c50f09613db42640bdeceb133ba9c1 Mon Sep 17 00:00:00 2001 From: christopher dilks Date: Sat, 18 Jun 2022 08:15:21 -0400 Subject: [PATCH 11/12] eic -> eicd --- eic_data.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/eic_data.yaml b/eic_data.yaml index fb522f4..59b73a9 100644 --- a/eic_data.yaml +++ b/eic_data.yaml @@ -201,7 +201,7 @@ components: - float pathlengthError // Error on the pathlenght ## PID hypothesis from Cherenkov detectors - eic::CherenkovPdgHypothesis: + eicd::CherenkovPdgHypothesis: Members: - char radiator // Radiator number (0/1/..) in a sequence of the IRTAlgorithm configuration file - int32_t pdg // PDG code @@ -209,7 +209,7 @@ components: - float weight // The weight associated with this hypothesis (the higher the more probable) ## Cherenkov angle measurement for a given radiator - eic::CherenkovThetaAngleMeasurement: + eicd::CherenkovThetaAngleMeasurement: Members: - char radiator // Radiator number (0/1/..) in a sequence of the IRTAlgorithm configuration file - float npe // Overall p.e. count associated with this estimate @@ -285,12 +285,12 @@ datatypes: bool isCompound() const {return particles_size() > 0;}\n " - eic::CherenkovParticleID: + eicd::CherenkovParticleID: Description: "Cherenkov detector PID" Author: "A. Kiselev, C. Dilks" VectorMembers: - - eic::CherenkovPdgHypothesis options // Evaluated PDG hypotheses, typically (e/pi/K/p) - - eic::CherenkovThetaAngleMeasurement angles // Evaluated Cherenkov angles for different radiators + - eicd::CherenkovPdgHypothesis options // Evaluated PDG hypotheses, typically (e/pi/K/p) + - eicd::CherenkovThetaAngleMeasurement angles // Evaluated Cherenkov angles for different radiators OneToOneRelations: ## @TODO: should it be one-to-one? - eicd::ReconstructedParticle associatedParticle // associated reconstructed particle -- GitLab From 842f6905ac1ba4060d3a7785daeb8650eab4792a Mon Sep 17 00:00:00 2001 From: Christopher Dilks Date: Mon, 15 Aug 2022 19:36:55 -0400 Subject: [PATCH 12/12] Squashed commit of the following: commit 5a106418aba4be17e1b614da2f0e41601fb57a0e Author: Christopher Dilks Date: Fri Aug 12 19:12:40 2022 -0400 modified: eic_data.yaml commit 0d8eb51512fcaa7bd657f5e05314c7ece16e6de4 Author: Christopher Dilks Date: Fri Aug 12 19:10:15 2022 -0400 cherry pick CMakeLists from `use-upstream-edm4hep` branch --- CMakeLists.txt | 5 ++++- eic_data.yaml | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 29ab2a9..6876f05 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -25,7 +25,10 @@ set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake) find_package(ROOT REQUIRED COMPONENTS Core RIO Tree) include(${ROOT_USE_FILE}) -PODIO_GENERATE_DATAMODEL(eicd eic_data.yaml headers sources OUTPUT_FOLDER ${CMAKE_CURRENT_BINARY_DIR}) +PODIO_GENERATE_DATAMODEL(eicd eic_data.yaml headers sources + UPSTREAM_EDM edm4hep:${EDM4HEP_DATA_DIR}/edm4hep.yaml + OUTPUT_FOLDER ${CMAKE_CURRENT_BINARY_DIR} + ) add_library(eicd SHARED ${sources} diff --git a/eic_data.yaml b/eic_data.yaml index f524eb5..0317ef5 100644 --- a/eic_data.yaml +++ b/eic_data.yaml @@ -280,7 +280,7 @@ datatypes: - eicd::CherenkovThetaAngleMeasurement angles // Evaluated Cherenkov angles for different radiators OneToOneRelations: ## @TODO: should it be one-to-one? - - eicd::ReconstructedParticle associatedParticle // associated reconstructed particle + - edm4hep::MCParticle associatedParticle // associated reconstructed particle ## ========================================================================== ## Calorimetry -- GitLab