Test vector generation is currently broken. This is because the TrackletEventProcessor object is local to L1FPGATrackProducer::produce, so it is re-constructed on every event. This means the Sector objects that belong to the TrackletEventProcessor, as well as the various memory objects that belong to the Sector objects, are re-constructed on every event. In particular, this causes MemoryBase::event_ to be reset, so the test vectors are never opened for appending, they are just overwritten on every event.
To fix this, I made eventProcessor a member of L1FPGATrackProducer, so that it persists between events. I also fixed a minor bug where the TC lookup tables were not generated in the reduced config.
PR validation:
Test vectors are once again successfully generated for multiple events, and the TC lookup tables are successfully generated in the reduced config.
PR description:
Test vector generation is currently broken. This is because the TrackletEventProcessor object is local to
L1FPGATrackProducer::produce
, so it is re-constructed on every event. This means the Sector objects that belong to the TrackletEventProcessor, as well as the various memory objects that belong to the Sector objects, are re-constructed on every event. In particular, this causesMemoryBase::event_
to be reset, so the test vectors are never opened for appending, they are just overwritten on every event.To fix this, I made
eventProcessor
a member of L1FPGATrackProducer, so that it persists between events. I also fixed a minor bug where the TC lookup tables were not generated in the reduced config.PR validation:
Test vectors are once again successfully generated for multiple events, and the TC lookup tables are successfully generated in the reduced config.