CERN openlab notes

CERN openlab · Project note

What counts as replaying the same collision?

Writing up the openlab project in October made me separate two questions I had been treating as one. Can I run PEPPER again with the same sampling setup? And can I ask two arithmetic builds to evaluate the same candidate collision? The distinction decides what a difference in the output can tell me.

Reuse the sampler, then match the input

An event generator learns where to spend its effort. It can save settings that guide it towards parts of phase space that contribute strongly to a process. In my precision study I reused that optimisation state to study the production stage separately. That held the sampling setup fixed while leaving the generator free to draw new candidate collisions.

For an event-by-event comparison, I need each build to see the same momenta and to match the choices that affect the weight, such as the incoming particle types and any sampled spin states. The random seed starts a sequence. Which step uses which number depends on how the run proceeds. Imagine that drawing momenta normally uses the first three random numbers and choosing a spin state uses the fourth. If I read the momenta from a file and skip those first three draws, the spin choice now gets the first number.

PEPPER’s current manual describes how its file-based replay keeps those later draws aligned. It draws and discards the numbers that would have been spent generating the momenta. It also lists the settings required to reproduce the original run, and explains why recalculation from stored momenta can still differ at the level of rounding. PEPPER manual on reusing phase-space points.

Check the route before comparing precision

I compared direct generation with writing and reading events while keeping the arithmetic in FP64. That isolated the effect of changing how the input reached the calculation. It also gave me a better order for the next comparison. First I’d match the input, settings and relevant sampling choices. Then I’d compare weights before unweighting and follow any discrepancies through the calculation.

“Run it again” sounds like the easy part. For this project it turned out to be one of the more interesting experimental controls.