DUNE-DAQ / DUNE-DAQ/trigger

A situation in which the TriggerCandidate fragment in the TriggerRecord is empty

Open
#270 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C++
Stars
0
Forks
8
Avg merge
7h 21m
Merged PRs (30d)
3

Description

I don't know if the trigger repo is the best place for this Issue, nor do I know if what I've seen is a feature or a problem, but I wanted to share what I've seen.

In a somewhat contrived situation that I stumbled upon accidentally, I see TRs that have empty TC fragments. I saw this when using the most recent RandomTriggerCandidateMaker code and when using the MLT readout window map. The accidental choice that I made was to set the readout window in the MLT readout map to be smaller than what the RTCM uses naturally.

Here are the steps to demonstrate what I've seen:

source /cvmfs/dunedaq.opensciencegrid.org/setup_dunedaq.sh
setup_dbt latest
dbt-create -n NAFD24-02-09 09FebFDDevEmptyTCDemo
cd 09FebFDDevEmptyTCDemo/sourcecode
git clone https://github.com/DUNE-DAQ/daqsystemtest.git -b develop
git clone https://github.com/DUNE-DAQ/hdf5libs.git -b kbiery/empty_tcfrag_fix
cd ..

dbt-workarea-env
dbt-build -j 20
dbt-workarea-env

mkdir rundir
cd rundir

cat <<EOF1 > daqconf.json
{
  "boot": {
    "use_connectivity_service": true,
    "start_connectivity_service": true,
    "connectivity_service_host": "localhost",
    "connectivity_service_port": 15432
  }, 
  "daq_common": {
    "data_rate_slowdown_factor": 1
  },
  "detector": {
    "clock_speed_hz": 62500000
  },
  "readout": {
    "use_fake_cards": true,
    "default_data_file": "asset://?label=WIBEth&subsystem=readout"
  },
  "trigger": {
    "use_random_maker": true,
    "rtcm_timestamp_method": "kTimeSync",
    "rtcm_time_distribution": "kUniform",
    "rtcm_trigger_interval_ticks": 62500000,
    "mlt_use_readout_map": true,
    "mlt_td_readout_map": [
      {
          "candidate_type": 4,
          "time_before": 100,
          "time_after": 200
      }
    ]
  },
  "hsi": {
    "use_fake_hsi": false,    
    "use_timing_hsi": false,    
    "random_trigger_rate_hz": 1.0
  }
}
EOF1

cat <<EOF2 > dro_map.json
[
    {
        "src_id": 100,
        "geo_id": {
            "det_id": 3,
            "crate_id": 1,
            "slot_id": 0,
            "stream_id": 0
        },
        "kind": "eth",
        "parameters": {
            "protocol": "udp",
            "mode": "fix_rate",
            "rx_iface": 0,
            "rx_host": "localhost",
            "rx_pcie_dev": "0000:00:00.0",
            "rx_mac": "00:00:00:00:00:00",
            "rx_ip": "0.0.0.0",
            "tx_host": "localhost",
            "tx_mac": "00:00:00:00:00:00",
            "tx_ip": "0.0.0.0"
        }
    },
    {
        "src_id": 101,
        "geo_id": {
            "det_id": 3,
            "crate_id": 1,
            "slot_id": 0,
            "stream_id": 1
        },
        "kind": "eth",
        "parameters": {
            "protocol": "udp",
            "mode": "fix_rate",
            "rx_iface": 0,
            "rx_host": "localhost",
            "rx_pcie_dev": "0000:00:00.0",
            "rx_mac": "00:00:00:00:00:00",
            "rx_ip": "0.0.0.0",
            "tx_host": "localhost",
            "tx_mac": "00:00:00:00:00:00",
            "tx_ip": "0.0.0.0"
        }
    }
]
EOF2

fddaqconf_gen -c ./daqconf.json --detector-readout-map-file ./dro_map.json mdapp_wibeth_rtcm_mltrw

nanorc --partition-number 2 mdapp_wibeth_rtcm_mltrw ${USER}-test boot conf start_run 101 wait 20 stop_run scrap terminate

HDF5LIBS_TestDumpRecord swtest_run000101_0000_*.hdf5

When you run the last step (the TRDump), you'll see that the TC fragments are empty.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the case using the supplied daqconf.json, dro_map.json, RandomTriggerCandidateMaker, and MLT readout map settings, then inspect the trigger record path and HDF5LIBS_TestDumpRecord output. Done means the demonstrated configuration no longer produces TriggerRecords with empty TriggerCandidate fragments, with a regression test covering the smaller readout window.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
backend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.