Fix configuration for MT Pileup
Contains a few configuration changes for MT pileup:
- Turns off
Digitization.DoXingByXingPileUp
when using MT pileup so tools are configured properly - Set low
p_T
minbias batch size to 128 hard scatter events - Set number of non-reusable background events loaded per batch using a lookup table. This number is set so the probability of running out of background events (per hard scatter) is less than
10^{-6}
.
On the topic of 3, this does lead to us being rather wasteful with these background events. It would be better to implement a system that only loads the number of background events needed for a given hard scatter but it's rather difficult to combine this with event skipping. The best solution I can come up with involves:
- Having the
MinbiasSvc
(here it would be a newOnDemandMinbiasSvc
) determine which background events are used for a given hard scatter. This means this determination would be made using a separate random number generation strategy (my plan is to use xxhash to hash the event index with a seed) in theMinbiasSvc
. - For any event we decide how many background events to load (and their distribution among bunch crossings) assuming all bunch crossings are filled. Some are then just skipped by the pileup algorithm. Otherwise we would need to know the bunch filling pattern for each event to be able to skip the event and that doesn't seem feasible.
Edited by Beojan Stanislaus