The maps provided by detector.py seem to reflect an older pattern where each io_group represents a whole anode, which is no longer true for FSD-scale modules. This leaves some ambiguity in the mapping between the io_group ID and the TPC index when there is more than one io_group per anode.
What is provided:
MODULE_TO_IO_GROUPS: This dictionary allows for lookup of the module ID given a packet's io_group field.
MODULE_TO_TPCS: This dictionary allows for lookup of a module given the TPC is known. It also allows one to inspect which TPCs belong to each module.
What is desired:
TPC_TO_IO_GROUPS or IO_GROUP_TO_TPCS: An explicit mapping between io_group and TPC ID. If there is a known way to do this, it is not made clear in the documentation or examples, and an explicit way to make this translation should be provided by detector.py.
The maps provided by
detector.pyseem to reflect an older pattern where eachio_grouprepresents a whole anode, which is no longer true for FSD-scale modules. This leaves some ambiguity in the mapping between the io_group ID and the TPC index when there is more than one io_group per anode.What is provided:
MODULE_TO_IO_GROUPS: This dictionary allows for lookup of the module ID given a packet'sio_groupfield.MODULE_TO_TPCS: This dictionary allows for lookup of a module given the TPC is known. It also allows one to inspect which TPCs belong to each module.What is desired:
TPC_TO_IO_GROUPSorIO_GROUP_TO_TPCS: An explicit mapping betweenio_groupand TPC ID. If there is a known way to do this, it is not made clear in the documentation or examples, and an explicit way to make this translation should be provided bydetector.py.