Skip to content

An alternative implementation of a type for HGC/CALOROC output #116

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

ruse-traveler
Copy link
Contributor

@ruse-traveler ruse-traveler commented Jun 9, 2025

Briefly, what does this PR introduce?

This PR introduces two types to facilitate work with the output of HGC/CALOROC chips:

  1. The component, edm4eic::CALOROCSample, which defines for a given sample read out by the a chip
    • the ADC,
    • the Time of Arrival (TOA),
    • the Time over Threshold (TOT),
    • and the in-progress/complete relevant flags for TOT;
  2. And the datatype, edm4eic::RawCALOROCHit, which consolidates for a given hit
    • the geometrical information (cell ID)
    • the time information (time stamp and sample phase),
    • and the relevant samples organized into a time series (represented as a vector member).

This PR is intended to supersede #101. It makes two distinct design choices from #101 informed by experience from the 2024 LFHCAL and EEEMCal test beams, both of which utilized HGCROC prototypes.

  1. Rather than define separate vector members for the ADC, TOA, and TOT values, these values are collected into a component which are then stored as a vector. This more closely matches what the HGCROC actually reads out, where each value is technically read out once per sample (even if some, such as the TOA and TOT are zero for most).
  2. The dual readout ("Type B") chips are intentionally not supported by this type. This is because such chips are currently not available nor in use. It is assumed that the processing of such a chip would be significantly different than the current chips actually in use ("Type A"), and as such would be better supported by a distinct type.

What kind of change does this PR introduce?

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.

@ruse-traveler ruse-traveler requested a review from a team as a code owner June 9, 2025 15:32
@ruse-traveler ruse-traveler self-assigned this Jun 9, 2025
@ruse-traveler ruse-traveler changed the title Add reworked CALOROC proposal An alternative implementation of a type for HGC/CALOROC output Jun 9, 2025
edm4eic.yaml Outdated
Comment on lines 194 to 195
## An individual sample output by a HGC/CALOROC chip
edm4eic::CALOROCSample:
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
## An individual sample output by a HGC/CALOROC chip
edm4eic::CALOROCSample:
## An individual sample output by a HGCROC chip
edm4eic::HGCROCSample:

As discussed, we don't know much about CALOROC, so this is HGCROC

Copy link
Contributor Author

Choose a reason for hiding this comment

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

True! I left it as CALOROC largely just for parallelism with the original PR. I'm fine with changing it to HGCROC, since (as you note) this is explicitly inspired by the existing HGCROC!

edm4eic.yaml Outdated
Comment on lines 278 to 279
edm4eic::RawCALOROCHit:
Description: "Raw hit from a CALOROC/HGCROC chip"
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
edm4eic::RawCALOROCHit:
Description: "Raw hit from a CALOROC/HGCROC chip"
edm4eic::RawHGCROCHit:
Description: "Raw hit from a HGCROC chip"

edm4eic.yaml Outdated
- int32_t samplePhase // Phase of samples in [# samples], for synchronizing across chips
- int32_t timeStamp // [TDC counts]
VectorMembers:
- edm4eic::CALOROCSample sample // ADC, Time of Arrival (TOA), and Time over Threshold (TOT) values for each sample read out
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
- edm4eic::CALOROCSample sample // ADC, Time of Arrival (TOA), and Time over Threshold (TOT) values for each sample read out
- edm4eic::HGCROCSample sample // ADC, Time of Arrival (TOA), and Time over Threshold (TOT) values for each sample read out

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.

2 participants