Skip to content

Add SimPulse data type for storing simulated pulses pre-digitization#106

Merged
sly2j merged 16 commits intomainfrom
feat-add-simcalorimeterpulse
Apr 14, 2025
Merged

Add SimPulse data type for storing simulated pulses pre-digitization#106
sly2j merged 16 commits intomainfrom
feat-add-simcalorimeterpulse

Conversation

@sly2j
Copy link
Copy Markdown
Contributor

@sly2j sly2j commented Apr 1, 2025

Briefly, what does this PR introduce?

This PR adds a new data type, edm4eic::SimPulse, to represent simulated pulses before digitization.

The new structure is modeled consistently with the edmhep simulated hit types and aligns with existing waveform structures such as edm4hep::RawTimeSeries (generic digitization output) and edm4hep::TimeSeries (generic measured time series).

SimPulse defines four one-to-many relations relations:

  • SimCalorimeterHit: Pulses can be constructed from contributions of one or more simulated calorimeter hits.
  • SimTrackerHit: Pulses can be constructed from one or more simulated tracker hits.
  • SimPulse: Pulses can be constructed out of other pulses.
  • MCParticle: Each pulse can be attributed to a single MCParticle (primary pulse), multiple MCParticles (overlayed pulses), or zero MCParticles (noise pulse).

Storing pulses at the simulation level ensures conceptual clarity and consistency within our data model. The simulated pulse data to be stored in this structure have no equivalent in real detector output, and are therefore not digitization output.

By using a Simulation structure, we gain direct Relation support with other simulation entities, enabling efficient backward navigation through the simulation chain. While Associations are used to link digitization and reconstruction structures to simulation, Relations are preferred for internal connections within the same domain (e.g. within Simulation or within Reconstruction). This design avoids introducing redundant Association types and keeps the data model consistent, clean and efficient.

What kind of change does this PR introduce?

  • Bug fix (issue #__)
  • New feature (issue #__)
  • Documentation update
  • Other: __

Please check if this PR fulfills the following:

  • Tests for the changes have been added
  • Documentation has been added / updated
  • Changes have been communicated to collaborators

Does this PR introduce breaking changes? What changes might users need to make to their code?

No

Does this PR change default behavior?

No

@sly2j sly2j requested a review from a team as a code owner April 1, 2025 18:25
Copy link
Copy Markdown
Contributor

@ruse-traveler ruse-traveler left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Found a typo!

sly2j and others added 3 commits April 10, 2025 09:44
Co-authored-by: Dmitry Kalinkin <dmitry.kalinkin@gmail.com>
…ric pulse access in algorithms in the future
Co-authored-by: Derek M Anderson <derek.murphy.anderson@protonmail.com>
@sly2j sly2j changed the title Add SimCalorimeterPulse data type for storing simulated calorimeter pulses pre-digitization Add SimPulse data type for storing simulated pulses pre-digitization Apr 14, 2025
Co-authored-by: Simon Gardner <simon.gardner@glasgow.ac.uk>
Copy link
Copy Markdown
Member

@veprbl veprbl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you also update version in CMakeLists.txt, please?

sly2j and others added 3 commits April 14, 2025 10:57
Co-authored-by: Simon Gardner <simon.gardner@glasgow.ac.uk>
Co-authored-by: Dmitry Kalinkin <dmitry.kalinkin@gmail.com>
@sly2j sly2j enabled auto-merge (squash) April 14, 2025 16:03
@sly2j sly2j merged commit 0cf03e7 into main Apr 14, 2025
3 checks passed
@sly2j sly2j deleted the feat-add-simcalorimeterpulse branch April 14, 2025 16:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants