Provide dataprep module that handles one APA at a time
The new dataprep module DataPrepModule and accompanying service StandardRawDigitPrepService (see #12701) build recob::Wire for the entire detector at once. This is likely unnecessarily using a large amount of memory to store the transient data (AdcChannelData). See #13749. For detectors with many APAs, we should be able to reduce this significantly by processing each APA independently and discarding the transient data for each immediately after processing. The request here is to provide such a module.
#7 Updated by David Adams almost 4 years ago
The service interface RawDigitPrepService and implementation StandardRawDigitPrepService are modified to take the input digits from the transient ADC channel data map instead of from a vector of digits. The module DataPrepModule is modified to fill the map and no longer pass the digit vector.
The changes will facilitate add a module which process channels by groups instead the whole detector at once.
#9 Updated by David Adams almost 4 years ago
I have modified DataPrepModule to add the option to process one channel group at a time. It is controlled by the fcl param DoGroups. I processed a small 35t no-ZS sim sample without groups and with APA and ROP groups. By eye, the prepared data looks the same for all three. The memory use (from the larsoft report) is 1.65 GB without groups, 1.48 with APA groups and 1.44 with ROP groups.
I have modified the default data prep configuration (producer_adcprep) to use groups and have added the APA channel group service to the configurations for 35t, 10kt and protoDUNE in services_dune.fcl. To disable use of groups, use this line:
I am about to commit these changes to dunetpc develop.