Pulse graphs generated by CSADigitizer module

Hello everyone,

I’m currently working with the CSADigitizer module and have set output_pulsegraphs = 1. For two events, A and B, I obtained two pulse graphs: Fig.a and Fig.b. In event A, the pulse reaches its maximum at around 50ns, while in event B, the maximum occurs at approximately 90ns.

Fig.a
Fig.b

I have two questions:

  1. Understanding the X-axis:
    I’d like to clarify what the X-axis in the pulse graphs represents. I used Hit->getGlobalTime() and Hit->getLocalTime() to check the time information, but I’m unsure how these relate to the time shown on the X-axis. Could someone explain the connection between the X-axis time and the values from getGlobalTime() and getLocalTime()?
  2. Different Peak Times:
    What could be the cause of the different peak times (50ns vs. 90ns) for these two events?

Thank you very much!

Caro

Hi @Caro ,

the difference between the local and the global time is the following:

  • The global time is the start of the event. That’s a bit of a vague definition, but e.g. when using DepositionGeant4, Geant4 has an inherent time axis. With a “default” configuration, this would be the time the primary particles are released from their source point. Depending on the configuration, though, the particles can be released from the source at later times.
  • The local time is defined per detector plane and denotes the time at which the first primary particle enters the corresponding sensor.

This is documented here.

The pulses you show look very similar besides an offset in time. Hence, the different peaking times most likely arise from a different temporal structure of the event, i.e. the particles are just released later. However, without more information on your setup, it’s hard to tell. Would you mind posting your configuration files?

Cheers
Paul

Dear @pschutze

Thank you for your response!

Here is my configuration file:
singleSource20-test.conf (4.7 KB)

I used ROOT analysis tool and obtained the following time values:

  • For Event A:
    • GlobalTime = 0.104393
    • LocalTime = 0
  • For Event B:
    • GlobalTime = 0.190126
    • LocalTime = 0.09

I’m trying to understand what the zero point on the X-axis of the pulse graph represents. Does it correspond to the start of the event, or is it the time at which the first primary particle enters the sensor?

Additionally, what could explain the difference in peak times between these two events (50ns for Event A and 90ns for Event B)?

Thank you for your help!

Caro

Hi @Caro

the zero point of the X-axis of the pulse graph represents the beginning of the event, hence the “global 0”. Hence, it looks to me like the particles are only entering the detector after few tens of nanoseconds, and at different times for events A and B, respectively. Would that make sense for your setup? What does your geometry look like?

Cheers
Paul

Dear @pschutze

Thank you for your response! However, I still have some questions regarding the two pulse plots.

If the zero point on the X-axis represents the start of the event, or the global 0, then from the two pulse plots:

  • For Event A, hit->getGlobaltime() should be approximately 42 ns.
  • For Event B, hit->getGlobaltime() should be around 78 ns.

This means the global times of the two pixelHit should differ by about 36 ns.

However, using the ROOT analysis tool, I found:

  • For Event A, the GlobalTime is 0.104393.
  • For Event B, the GlobalTime is 0.190126.

The difference between the global times of the two pixelHit is only about 0.09 ns.
I’m not sure where my understanding might be incorrect.

Below, I’ve included my complete configuration files
dialeil-detector-gdml-nosample.conf (248 Bytes)
dialeil-geometry.conf (675 Bytes)
dialeil-LEAPS-nosample.gdml (13.0 KB)
materials.xml (8.4 KB)
singleSource20-test.conf (4.7 KB)

And the data file containing information for 100 events, where the first event corresponds to Event A mentioned above, and the second event corresponds to Event B.
SingleFile20-test.root (14.7 MB)

Thank you again for your suggestions and assistance!

Caro

Hi @Caro

looking through your config files I have a few comments and questions:

  • You seem, to be simulating a Germanium detector. Is there a reason why you manually specify Fano factor and charge creation energy but do not set the correct material in the model file? (see Detector Models | Allpix Squared and Sensor Material Properties | Allpix Squared)
  • At least in the config file as you sent, you are using a linear electric field. Make sure to not combine this with a weighting potential calculated from a different electric field!
  • Your sensor is quite thick with 4mm and you are measuring gammas - which means the deposited charge carriers might be created relatively deep in the sensor. With the simple transient approach you seem to use (i.e. GenericPropagation and calculating the pulse from the arrival time of charge carriers) you would definitely expect different arrival of your charge carriers at the electrode, as a function of the depth of your interaction. You can check this by looking at there the interaction happened along z.

:slight_smile:

Cheers,
Simon

Good catch @simonspa , this might be the reason. Charge carriers can take more than 50 ns to travel through 4 mm of silicon (the jacoboni mobility model you’re setting only applies to silicon). Using a weighting potential and the TransientPropagation module, things would look different, but with this simplified transient approach and gammas, that’s what you get.

Thanks @simonspa !

Thanks @pschutze, I indeed forgot to explicitly mention - I would strongly recommend picking a mobility model for Germanium, have a look at Charge Carrier Mobility | Allpix Squared, e.g.

[GenericPropagation]
mobility_model = "quay"

The correct parameter set is chosen automatically as long as you set the sensor material correctly.

Cheers,
Simon