|
LDMX Software
|
Central definition of the tracker silicon-strip channel mapping. More...
Functions | |
| constexpr int16_t | pchannel (uint8_t apv_id, uint8_t channel) |
| Convert an (APV id, APV channel) pair into the physical strip number (pchannel) within a hybrid, in [0, kChannelsPerHybrid). | |
| std::string | channelKey (uint8_t feb, uint8_t hybrid, uint8_t apv, uint8_t channel) |
| Build the per-channel pedestal-map key "feb:hybrid:apv:channel". | |
| constexpr uint32_t | channelId (uint8_t feb, uint8_t hybrid, uint8_t apv, uint8_t channel) |
| Pack the full electronics address (feb, hybrid, apv, channel) into a single 32-bit id, used as the row key of the pedestal conditions table. | |
| bool | parseChannelKey (const std::string &key, uint8_t &feb, uint8_t &hybrid, uint8_t &apv, uint8_t &channel) |
| Parse a "feb:hybrid:apv:channel" key (as produced by channelKey()) back into its electronics fields. | |
| constexpr uint32_t | groupKey (uint8_t feb, uint8_t hybrid, int16_t pchannel) |
| Pack (feb, hybrid, pchannel) into a single 32-bit waveform-grouping key. | |
| constexpr int16_t | pchannelFromGroupKey (uint32_t key) |
| Extract the pchannel back out of a key produced by groupKey(). | |
Variables | |
| constexpr int | K_CHANNELS_PER_APV = 128 |
| Number of readout channels per APV25 chip. | |
| constexpr int | K_APVS_PER_HYBRID = 5 |
| Number of APV25 chips per hybrid. | |
| constexpr int | K_CHANNELS_PER_HYBRID |
| Number of physical strips per hybrid (kApvsPerHybrid * kChannelsPerApv). | |
| constexpr int | K_SAMPLES_PER_APV_TRIGGER = 3 |
| Number of ADC samples the APV25 reads out per channel per trigger. | |
Central definition of the tracker silicon-strip channel mapping.
Every electronics-id <-> physical-strip conversion (and the keys used to group/lookup channels) lives here so the layout only has to change in one place. All functions are header-only constexpr/inline helpers; there is no per-instance state.
|
inlineconstexpr |
Pack the full electronics address (feb, hybrid, apv, channel) into a single 32-bit id, used as the row key of the pedestal conditions table.
Definition at line 53 of file SiStripChannelMap.h.
Referenced by tracking::reco::TrackerPedestals::add(), and tracking::reco::TrackerPedestals::find().
|
inline |
Build the per-channel pedestal-map key "feb:hybrid:apv:channel".
Definition at line 45 of file SiStripChannelMap.h.
Referenced by tracking::reco::PedestalCalculator::analyze(), and tracking::reco::PedestalSubtractor::produce().
|
inlineconstexpr |
Pack (feb, hybrid, pchannel) into a single 32-bit waveform-grouping key.
Definition at line 75 of file SiStripChannelMap.h.
References pchannel().
Referenced by tracking::reco::SiStripWaveformBuilder::produce().
|
inline |
Parse a "feb:hybrid:apv:channel" key (as produced by channelKey()) back into its electronics fields.
Returns false if the string is malformed.
Definition at line 62 of file SiStripChannelMap.h.
|
inlineconstexpr |
Convert an (APV id, APV channel) pair into the physical strip number (pchannel) within a hybrid, in [0, kChannelsPerHybrid).
The APV readout order is reversed relative to the physical strip order, and the APVs are laid out back-to-front along the hybrid, hence the double reversal.
Definition at line 38 of file SiStripChannelMap.h.
References K_CHANNELS_PER_APV, and K_CHANNELS_PER_HYBRID.
Referenced by groupKey(), and tracking::reco::SiStripWaveformBuilder::produce().
|
inlineconstexpr |
Extract the pchannel back out of a key produced by groupKey().
Definition at line 83 of file SiStripChannelMap.h.
Referenced by tracking::reco::SiStripWaveformBuilder::produce().
|
inlineconstexpr |
Number of APV25 chips per hybrid.
Definition at line 23 of file SiStripChannelMap.h.
|
inlineconstexpr |
Number of readout channels per APV25 chip.
Definition at line 21 of file SiStripChannelMap.h.
Referenced by pchannel().
|
inlineconstexpr |
Number of physical strips per hybrid (kApvsPerHybrid * kChannelsPerApv).
Definition at line 25 of file SiStripChannelMap.h.
Referenced by pchannel().
|
inlineconstexpr |
Number of ADC samples the APV25 reads out per channel per trigger.
Definition at line 28 of file SiStripChannelMap.h.
Referenced by tracking::reco::PedestalCalculator::analyze(), tracking::reco::PedestalSubtractor::produce(), tracking::reco::SiStripWaveformBuilder::produce(), and tracking::reco::PedestalCalculator::writePedestalsJson().