diff --git a/include/aare/RemapGenerate.hpp b/include/aare/RemapGenerate.hpp index 7fa94c3..b1aad41 100644 --- a/include/aare/RemapGenerate.hpp +++ b/include/aare/RemapGenerate.hpp @@ -5,6 +5,9 @@ namespace aare::remap::generate { +/************************************ + * Single chip, multi-pitch, iLGAD + ************************************/ inline defs::StrixelGroupToPixelMap jungfrau_ilgad_singlechip_25um_strixel_map(InclusiveROI rx_roi, defs::SensorPlacement placement, @@ -54,6 +57,61 @@ jungfrau_ilgad_singlechip_multipitch_strixel_maps(InclusiveROI rx_roi, return algo::strixel_to_pixel_maps(configs, placements, rx_roi, bs); }; +/************************************ + * Single chip, multi-pitch, TEW + ************************************/ +inline defs::StrixelGroupToPixelMap +jungfrau_tew_singlechip_25um_strixel_map(InclusiveROI rx_roi, + defs::SensorPlacement placement, + defs::BondShift bs = {0, 0}) { + return algo::strixel_to_pixel_map(config::jungfrau::SingleChipMP_TEW_P25, + placement, rx_roi, bs); +} + +inline defs::StrixelGroupToPixelMap +jungfrau_tew_singlechip_15um_strixel_map(InclusiveROI rx_roi, + defs::SensorPlacement placement, + defs::BondShift bs = {0, 0}) { + return algo::strixel_to_pixel_map(config::jungfrau::SingleChipMP_TEW_P15, + placement, rx_roi, bs); +}; + +inline defs::StrixelGroupToPixelMap +jungfrau_tew_singlechip_18um_strixel_map(InclusiveROI rx_roi, + defs::SensorPlacement placement, + defs::BondShift bs = {0, 0}) { + return algo::strixel_to_pixel_map(config::jungfrau::SingleChipMP_TEW_P18, + placement, rx_roi, bs); +}; + +inline std::vector +jungfrau_tew_singlechip_multipitch_strixel_maps(InclusiveROI rx_roi, + int chip_id = 1, + defs::BondShift bs = {0, 0}) { + defs::SensorPlacement placement; + if (chip_id == 1) + placement = config::jungfrau::Chip1; + else if (chip_id == 6) + placement = config::jungfrau::Chip6; + else { + // or allow user-defined sensor placement + // (that would mean something like std::optional chip_id and + // std::optional sensor_placement) + throw std::runtime_error("Invalid sensor placement."); + } + defs::SensorConfig configs{{config::jungfrau::SingleChipMP_TEW_P25, + config::jungfrau::SingleChipMP_TEW_P15, + config::jungfrau::SingleChipMP_TEW_P18}}; + + std::vector placements(configs.group_configs.size(), + placement); + + return algo::strixel_to_pixel_maps(configs, placements, rx_roi, bs); +}; + +/************************************ + * Quad, 25 um, iLGAD + ************************************/ inline defs::StrixelGroupToPixelMap jungfrau_ilgad_quadhalf_25um_strixel_map(InclusiveROI rx_roi, defs::SensorPlacement placement) {