Finding signal delay

I am trying to automate the identification of signal delay. While there is some statistical variation, the general feature is 3 peaks that have known order, width, and relative delay, without ordinal information on amplitude (there would be a physical motive for identifying particle yield at each detector, but I think I can get around the need to compute that) - and this is also on a periodic domain. I am considering doing a reverse convolution with 3 box functions of the same height, placed with known widths and spacing, but if there are built-ins or known techniques for this (accounting for statistical fluctuations affecting width) that would be great. There are cases where the peaks will intersect, and I’m not sure how robust this would be.

Best case input: good statistics, peaks away from edge of periodic domain
image

Worst case input: poor statistics, peak near edge of periodic domain. Not handling statistics this low is acceptable, but to demonstrate that they get fairly low.
image


ROOT Version: 6.20/04
Platform: Ubuntu 20.04
Compiler: linuxx8664gcc


Maybe TSpectrum or TSpectrum2.