Think about ways to read data from front-ends and discard it between runs
This topic came up in discussions about the LBNE 35t detector, however it is not currently believed to be a requirement for 35t running. So, there is no need to work on it now. But, I wanted to jot down some notes so that we have a record of this issue.
Some DAQ systems have front-end boards that are free-running. That is, the front-end boards start producing data as soon as they are configured (presumably as part of the artdaq Initialization step). In these cases, it may be necessary to have some sort of entity within artdaq to read out the front-end boards and discard the data until a run starts. This functionality would also be needed between runs and when runs are paused.
One option might be to use the same FragmentGenerator class that is used during data taking to acquire the data between runs, but then not send it anywhere within artdaq. Another option would be to have the ability for the user to specify a different FragmentGenerator class that is used between runs.
Another consideration is whether to use separate threads for data taking and data discarding. Or to modify the current processFragments() method to handle both cases.
#2 Updated by Eric Flumerfelt about 4 years ago
- Category set to Additional Functionality
- Target version deleted (
Some of this might actually be covered by the Buffer or Window modes of CommandableFragmentGenerator. We definitely shouldn't casually throw away data unless we're absolutely sure it is not valid.