ProtoDUNE data selection Philip Rodrigues DUNE UK DAQ meeting 11 - - PowerPoint PPT Presentation

protodune data selection
SMART_READER_LITE
LIVE PREVIEW

ProtoDUNE data selection Philip Rodrigues DUNE UK DAQ meeting 11 - - PowerPoint PPT Presentation

ProtoDUNE data selection Philip Rodrigues DUNE UK DAQ meeting 11 April 2019 Overall plan reminder New components: Hit finding in FELIX BR (later, FPGA) Hit-finding board reader Software data selector Trigger at timestamp X


slide-1
SLIDE 1

ProtoDUNE data selection

Philip Rodrigues DUNE UK DAQ meeting 11 April 2019

slide-2
SLIDE 2

Overall plan reminder

  • New components:
  • Hit finding in FELIX BR (later, FPGA)
  • Hit-finding board reader
  • Software data selector
  • ptmp trigger primitive message library
  • Modifications to timing BR

BR Data Queue

Board reader Timing frag gen Timing board artdaq Not artdaq

BR Data Queue

Board reader FELIX frag gen FELIX Rest of artdaq (Routing Master, Event builders)

BR Data Queue

Board reader

Hit finding frag gen

“Trigger at timestamp X”

“Give me data for Y”

Software data selector “Trigger at timestamp Y” (fragment) “Trigger at timestamp Y” (ZeroMQ)

Hits via PTMP Hits via PTMP

One per link

slide-3
SLIDE 3

Hit finding in FELIX BR

  • Fixed a stupid but significant bug

which caused times of hits to be slewed by varying amounts

  • Also, changed the way the code

works to make things clearer. Used to process a ~ms window at a time. Now just process each netio message (12 ticks) as it comes. Finding hits continuously on all data;

  • nly write them out for triggered

data

  • Plot is the raw ADC collection values

in an event (run 7081 evt1) which I ran with just one FELIX link (1/10 APA)

slide-4
SLIDE 4

Hit finding in FELIX BR

  • Here’s that event with the hits
  • verlaid in green
  • When asked for timestamp t, FELIX

returns a window starting at t-500

  • ticks. My code that finds hits

doesn’t apply the same offset, so I added 500 to my hit times for this plot

slide-5
SLIDE 5

Hit finding in FELIX BR

  • Another event, to convince you that

the first wasn’t a fluke (run 7081, evt 2)

slide-6
SLIDE 6

Hit finding in FELIX BR

  • Same with hits
slide-7
SLIDE 7

Hit finding in FELIX BR

  • Here’s a plot of CPU usage (% of one core) vs time (in half-seconds) for each of the links in APA6 for a whole (short) run. Apologies for the quality
  • At the start of the run, something in the netio system gets behind, but the hit-finding catches up and settles at 60-70% per link
  • Not much difference between links, as expected: amount of calculation needed doesn’t depend much on # of hits
  • CPU usage includes unpacking the WIB format, pedestal finding, pedestal RMS finding, 7-tap FIR filter and hit finding, plus storing hits in ring buffer
slide-8
SLIDE 8

Hit-finding board reader progress

  • Rationales for hit-finding BR:
  • Present consistent interface to artdaq

for CPU and FPGA hits

  • Send hits to data selector process
  • Provide hits for triggered data to artdaq

as fragments (I’ve been doing this in a hacky non-maintainable way in the FELIX BR till now)

  • Brett’s trigger primitive message-

passing library is available, and built

  • n the ProtoDUNE cluster:
  • https://github.com/brettviren/ptmp
  • Pierre has written the BR. During

DAQ weeks, we:

  • Added it to the DAQ backend and run

control (thanks John, Enrico)

  • Added a DAQ configuration that uses it
  • Added code to FELIX BR to send hits to

HF BRs (red oval in diagram)

  • Showed that hit-finding BR is seeing hits

from FELIX BR

BR Data Queue

Board reader Timing frag gen Timing board artdaq Not artdaq

BR Data Queue

Board reader FELIX frag gen FELIX Rest of artdaq (Routing Master, Event builders)

BR Data Queue

Board reader

Hit finding frag gen

“Trigger at timestamp X”

“Give me data for Y”

Software data selector “Trigger at timestamp Y” (fragment) “Trigger at timestamp Y” (ZeroMQ)

Hits via PTMP Hits via PTMP

One per link

slide-9
SLIDE 9

Hit-finding board reader todo

  • Hits go out of HF BR in two ways.

Need to test both:

1. ptmp to data selector (red oval) 2. artdaq to offline for triggered data (use timing system random triggers initially)

  • Item 2 needs a raw decoder written
  • Need to check we can get to full APA

(tests on one link so far)

  • Housekeeping: merge with other

changes to DAQ system, test

  • Start to integrate with Giovanna and

Alessandro’s work on data selector

  • Add ptmp receiver code in data sel
  • Later, think about how to aggregate

multiple links

BR Data Queue

Board reader Timing frag gen Timing board artdaq Not artdaq

BR Data Queue

Board reader FELIX frag gen FELIX Rest of artdaq (Routing Master, Event builders)

BR Data Queue

Board reader

Hit finding frag gen

“Trigger at timestamp X”

“Give me data for Y”

Software data selector “Trigger at timestamp Y” (fragment) “Trigger at timestamp Y” (ZeroMQ)

Hits via PTMP Hits via PTMP

One per link

slide-10
SLIDE 10

Link aggregation in data sel

  • Brett has written a TPSorted class

that aggregates multiple links and

  • utputs their hits sorted by time
  • Hits that arrive “late” (after some

configurable delay) are dropped so as to not hold up other hits

t0 t1 t2 t0 t1 t2 t0 t1 t3 t0 t1 t0 t1 t0 t1 t2 t2 t3 TPSorted

slide-11
SLIDE 11

Summary/next steps

  • Hit-finding BR for CPU hits mostly in place. More tests to do, which we’ll do in upcoming DAQ

Fridays

  • More substantial work to integrate with data selector BR