Skip to content

[ATR-21897] Chain Multiplicity to JSON for use offline

Tim Martin requested to merge tamartin/athena:multiplicityToJSON into master

This MR adds per-leg multiplicity data to the menu JSON

Example entry

        "HLT_mu24_2mu4noL1_L1MU20": {
            "counter": 37,
            "nameHash": 3233544630,
            "legMultiplicities": [
                1,
                2
            ],
            "l1item": "L1_MU20",
            "l1thresholds": [
                "MU20",
                "FSNOSEED"
            ],
            "groups": [
                "RATE:MultiMuon",
                "BW:Muon"
            ],
            "streams": [
                "Main"
            ],
            "sequencers": [
                "Step1_merged_1mufast_EmptySeq1_1mufast_leg0",
                "Step2_merged_1muComb_EmptySeq2_1muComb_leg0",
                "Step3_merged_1muEFSA_EmptySeq3_1muEFSA_leg0",
                "Step4_merged_1EFCB_EmptySeq4_1EFCB_leg0",
                "Step5_merged_1EFCB_EmptySeq4_1EFCB_leg0_EmptyMuonAlign1_merged_EmptySeq1_NFSmuEFSA_leg1_NFSmuEFSA",
                "Step6_merged_EmptySeq1_NFSmuEFSA_leg1_NFSmuEFSA",
                "Step7_merged_EmptySeq2_NFSmuEFCB_leg1_NFSmuEFCB"
            ]
        },

The TDT consumes this info. If the user requests features from HLT_mu24_2mu4noL1_L1MU20, the TDT sees multiplicities.size() == 2 and interprets this as a request to collect features for both leg000_HLT_mu24_2mu4noL1_L1MU20 and leg001_HLT_mu24_2mu4noL1_L1MU20 from the navigation graph.

At present, only the size of the multiplicity vector is used. Not the fact that this chain requires >=1 on its first leg and >=2 on its second leg. These per-leg data will be used in a future update to generate combinations over the features.

An update will be needed once Jet+Bjet chains are working. The data we want to export here is the final multiplicity, at the end of the chain's processing.

Note: Marking WIP as this builds on top of (and currently shows all the changes of !37603 (merged))

Note: As the TDT uses the legacy interface, I added a method into the legacy interface to fetch these multiplicity data to simplify things. Rather than updating the TDT to switch to the new interface (not a small task)

cc @mark, @stelzer

This is the second half of the updates needed to do offline feature matching (cc @jburr)

Edited by Tim Martin

Merge request reports