Skip to content

Commit c9129be

Browse files
An alternative implementation of a type for HGCROC output (#116)
### Briefly, what does this PR introduce? This PR introduces two types to facilitate work with the output of HGCROC chips: 1. The component, `edm4eic::HGCROCSample`, 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::RawHGCROCHit`, 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? - [ ] Bug fix (issue #__) - [x] New feature (issue #89 ) - [ ] Documentation update - [ ] Other: __ ### Please check if this PR fulfills the following: - [ ] Tests for the changes have been added - [ ] Documentation has been added / updated - [x] 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. --------- Co-authored-by: Dmitry Kalinkin <[email protected]>
1 parent 6dca224 commit c9129be

File tree

2 files changed

+22
-2
lines changed

2 files changed

+22
-2
lines changed

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ project(EDM4EIC
77
LANGUAGES CXX)
88

99
SET( ${PROJECT_NAME}_VERSION_MAJOR 8 )
10-
SET( ${PROJECT_NAME}_VERSION_MINOR 2 )
10+
SET( ${PROJECT_NAME}_VERSION_MINOR 3 )
1111
SET( ${PROJECT_NAME}_VERSION_PATCH 0 )
1212
SET( ${PROJECT_NAME}_VERSION "${${PROJECT_NAME}_VERSION_MAJOR}.${${PROJECT_NAME}_VERSION_MINOR}.${${PROJECT_NAME}_VERSION_PATCH}" )
1313

edm4eic.yaml

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
## If there are schema version changes that can be evolved, see the podio documentation
1010
## for an example: https://github.com/AIDASoft/podio/tree/master/tests/schema_evolution
1111
##
12-
schema_version: 820
12+
schema_version: 830
1313

1414
options :
1515
# should getters / setters be prefixed with get / set?
@@ -191,6 +191,15 @@ components:
191191
- uint32_t boundValuesSize // size of bound values
192192
- std::array<double,16> transform // row-wise 4x4 affine transform [R T; 0 1] with 3x3 rotation matrix R and translation column 3-vector T
193193

194+
## An individual sample output by an HGCROC chip
195+
edm4eic::HGCROCSample:
196+
Members:
197+
- uint16_t ADC // [ADC Counts], amplitude of signal during sample, valid IFF TOTInProgress is false
198+
- uint16_t timeOfArrival // Time of arrival (TOA) [TDC counts], nonzero IFF ADC crossed threshold upwards during sample
199+
- uint16_t timeOverThreshold // Time over threshold (TOT) [TDC counts], nonzero IFF ADC crossed threshold downwards during sample AND if TOA fired in a previous sample
200+
- bool TOTInProgress // Flag which indicates if TOT calculation is ongoing, ADC value may be corrupted if this is true
201+
- bool TOTComplete // Flag which indicates if a TOT calculation is complete and TOT value is valid
202+
194203
datatypes:
195204

196205
edm4eic::Tensor:
@@ -258,6 +267,17 @@ datatypes:
258267
## ==========================================================================
259268
## Calorimetry
260269
## ==========================================================================
270+
271+
edm4eic::RawHGCROCHit:
272+
Description: "Raw hit from an HGCROC chip"
273+
Author: "D. Anderson, S. Joosten, T. Protzman, N. Novitzky, D. Kalinkin"
274+
Members:
275+
- uint64_t cellID // Detector specific (geometrical) cell id
276+
- int32_t samplePhase // Phase of samples in [# samples], for synchronizing across chips
277+
- int32_t timeStamp // [TDC counts]
278+
VectorMembers:
279+
- edm4eic::HGCROCSample samples // ADC, Time of Arrival (TOA), and Time over Threshold (TOT) values for each sample read out
280+
261281
edm4eic::CalorimeterHit:
262282
Description: "Calorimeter hit"
263283
Author: "W. Armstrong, S. Joosten"

0 commit comments

Comments
 (0)