Cambridge / ATLAS notes

Cambridge / ATLAS · Project note

Which candidate gets the vertex?

Suppose the model proposes two places where a particle might have decayed, and the simulation gives me one eligible decay. Which proposal should learn from that decay? I spent part of this week working through that question with an example small enough to fit on a scrap of paper.

Give each prediction two jobs

The prototype reads the segments from one collision together. Each candidate slot gathers a weighted summary of those measurements, then predicts a position and a score for whether it found a vertex. The number of slots sets the maximum number of predictions. The scores determine how many candidates I keep at inference.

Try it on a line

Imagine the true position is 10 and the two candidates predict 9 and 13. Their distances are 1 and 3, so I match the candidate at 9. I train its position towards 10 and its existence score towards active. The candidate at 13 gets an inactive target for its score. It has no coordinate target for this event.

With two eligible decays, each gets a different slot. I choose the pairing with the smallest total position error and hold that pairing fixed while the model updates. The matched coordinates can move towards their targets because the position error changes as the coordinates move. The next pass makes new predictions and matches them again. A related set-matching idea appears in object detection. DETR paper

What I checked this week

I ran the training loop on synthetic events where I could control how many vertices were present and where they were placed. That exercises the cases I care about in the software, including empty targets, more than one vertex and spare candidates. The next step is to define the eligible decays for the endcap pilot and agree what distance counts as a match. Then I can compare missed, duplicate and extra vertices against the existing reconstruction on the same held-out events.