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

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

Open
bieryAtFnal opened this issue Feb 9, 2024 · 0 comments

Comments

@bieryAtFnal
Copy link
Contributor

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.

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

1 participant