Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

May 2024 Packet Capture Data + JANA2 #48

Open
1 of 19 tasks
faustus123 opened this issue Aug 15, 2024 · 0 comments
Open
1 of 19 tasks

May 2024 Packet Capture Data + JANA2 #48

faustus123 opened this issue Aug 15, 2024 · 0 comments
Assignees

Comments

@faustus123
Copy link
Contributor

faustus123 commented Aug 15, 2024

This is a detailed checklist of what is needed to process the May 2024 RTDP packet capture data using JANA2. This will implement a system with a simple factory for identifying events based on hits from a time frame. It will also implement a simple factory for filtering events using a mechanism similar to the TriDAS+JANA streaming readout R&D exercise.

Checklist

  • Split May 2024 5nA data on port number using pcapSplit
  • Complete rtdp_aggregator tools
    • Add proper evio header word to aggregated bank in rtdp_dc.cc (see line 283)
    • Add description of each tool to top of source file
    • Add README.md file to describe EVIO bank levels
      • specifically, the aggregation level on top and the VTP level next
    • Complete rtdp_er.cc
      • Write well-formed EVIO as verified with evio2xml (e.g. block header/trailer)
      • Identify end of stream (e.g. command message from dc?)
    • Merge rtdp_aggregator branch into main branch of SRO-RTDP repository
  • Create Docker container for RTDP tools with all of the aggregator tools and utilities
  • Create docker-compose.yml for starting up all rtdp aggregator tools in workflow
  • Add rtdp_filter component to rtdp_aggregator that is a JANA2 process
    • Output writes to zmq socket just like rtdp_dc
      objects
    • Create arrow topology which includes:
      • Two queues. One for TimeFrames and one for Events
    • Add event source that reads from zmq socket (just like rtdp_er) and writes TimeFrames into time frame queue
      • This should not parse the EVIO buffer but simply wrap it in a class (possibly in Carl's C++ EVIO library already)
    • Add factory to time frame JFactorySet that takes in the EVIO buffer objects and parses them to create F250Hit and DCRBHit objects
    • Add factory to time frame JFactorySet that implements simple event identifier
      • This may be a trivial 1-to-1 copy of hit objects for now
    • Add factory to event JFactorySet that implements simple filter
      • The FilterInfo objects will include keep/discard information from the filter
      • System should allow multiple factories that produce FilterInfo objects to allow for multiple simultaneous filters
    • Add processor to event JFactorySet that uses FilterInfo objects
      • This should send events out via zmq based on contents of FilterInfo objects
      • The event should be emitted if no filter objects exist or if at least one exists that marks it for keeping
      • An unbiased prescale feature should be present and configurable to ensure every Nth event is saved regardless of filter status
      • Events sent should be formatted into EVIO that is compatible with the event source
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants