Get ToT by using DefaultDigitizer

Hello all,

I have a question about the DefaultDigitizer. I would like to examine the time-over-threshold in a simulation. According to the Allpix manual I have to choose a threshold and the qdc_offset parameter. PixelHit is returned. I was looking for a function “GetToT” or something like that, but I only found GetSignal and unfortunately I don’t know what this function returns. So here’s the question, how do I get the ToT value?

I also want to use the ibl_planar sensor in the simulation and know that the ToT is bound in 14 values. Is this taken into account with type = “ibl_planar”?

Thanks a lot for the help!

Hi @marius

the ToT you can obtain from DefaultDigitizer is a very crude approximation, practically taking charge above threshold (setting the threshold itself as offset for the QDC) and mapping it into some ADC bins. So you are correct that the getSignal() function from your PixelHit is the value you are looking for.

If you need a more proper description of your ToT, your simulation chain needs to include time values. This you can either achieve by using e.g. GenericPropagation + PulseTransfer or TransientPropagation+ PulseTransfer. The former will simply take the arrival times of the charge carriers at the electrode, while the latter does a full-fledged transient simulation. You should then use the CSADigitizer module which is a more accurate simulation of a front-end but requires you to know a few parameters sich as rise time and feedback of the amplifier. Then the simulation really counts clock cycles the signal is above threshold.

However, for many simulations, the simple approach should be sufficient and you only need to tune it a little to match the ~4bit you have as resolution.

The detector model ibl_planar only contains the geometry but no settings for the front-end.

Cheers,
Simon

@simonspa

Thank you very much for the quick answer.

I will try GenericPropagation+ PulseTransfer+CSADigitizer. However, when reading the manual, it is not clear to me whether GetSignal() returns the ToT or ToA. Is there still a flag to be set?

(“Noise can be applied to the individual bins of the output pulse, drawn from a normaldistribution. For the amplified pulse signal, alongside the Time-of-Arrival either the determinedTime-over-Threshold, or the integral of the amplified pulse can be stored in thePixelHit.”)

In addition, it is unfortunately not clear to me how the output can be tuned to 4Bit?

Many thanks for the help!

Hi @marius

getSignal() always returns a charge-equivalent measurement, so either ToT or charge or amplitude, whatever your digitizer provides. ToA is a time signal, so you have access to this information via getLocalTime().

With “tuning to 4bit” I mean

  • setting qdc_resolution = 4
  • adjusting qdc_slope and qdc_offset such that the Landau curve fits inside the range of these four bits, just as you would tune the detector using e.g. its Krummenacher feedback current DAC setting.

If you have suggestions on how to improve the wording of the manual please let me know so we can adjust it accordingly!

I would recommend staying clear of CSADigitizer for now and trying to get the desired output using the more simplistic DefaultDigitizer. If that works and you want to improve you can still switch.

/Simon