Precise time points and corresponding signal values from CSADigitizer

Hi!

I have two questions I would greatly appreciate your help with:

First, when using the output_pulsegraphs = true setting in the CSADigitizer module, I was able
to obtain the pulses corresponding to each event, as shown in the following figure.

I’m wondering if there is a way to extract the precise time points and corresponding signal values, such as (40ns, -205mV), (50ns, -150mV), (60ns, -100mV), (70ns, -30mV), and (80ns, -10mV). I have already tried using ROOT to analyze pixelHit and pixelPulse, but it didn’t yield the expected results.

Secondly, regarding the previous discussion, @simonspa mentioned that the clock is not shared between different events. Does this mean that it is impossible to sequentially execute events and obtain the relative time of each photon with respect to the start of the first event? Specifically, is it feasible to achieve something like the following scenario:

•	Event 1 starts at T1 and ends at T2, with particle A interacting with the detector at T1 + dt1.
•	Event 2 starts at T2 and ends at T3, with particle B interacting at T2 + dt2.

In this case, would it be possible to calculate the time of particle B relative to the start of Event 1, resulting in T1 + dt1 + dt2?

Thank you very much for your time and assistance. I look forward to your guidance on these questions.

Best regards,
Caro

Hi @Caro ,

The pulses are saved as TGraphs, so to get the signal at a specific time point you could for example use the TGraph Eval() function. This will interpolate between the nearest points, by default. So, to do this you would get the pulse object using a ROOT macro or so, and run this function on it.

As for the second question, it is important to note that the events are quite independent entities. It would thus be a bit tricky to do if you shoot one single photon per event. Very little is impossible, however! You could for example simulate several photons in a single event (e.g. by using a macro file in [DepositionGeant4] for full control), or generate the particles with some external software and then use [DepositionGenerator] to read it in.

Kind regards,
Håkan

Thank you so much for your time and suggestions!

Dear @Caro

to add onto that - the proper way of analyzing a simulation with charge pulses would be to write them to disk using the ROOTObjectWriter module. You can then analyze the data with an analysis script which gives you directly the simulation objects - the pulse is then just a vector of values with the chosen time binning.

Have a look at the repo for examples of analysis scripts: tools/root_analysis_macros · master · Allpix Squared / Allpix Squared · GitLab

Best regards,
Simon

1 Like

Dear @hwennlof and @simonspa

I am trying to simulate several photons in a single event, and get the pulsegraphs.


However, the CSADigitizer module can only obtain pulse graphs within 500ns. Is there any way to extend the length of the x-axis to record pulses over a longer duration?

Thank you in advance for your time and suggestions!
Caro

Oh! I found it, using the integration_time parameter. :smiley:

It doesn’t seem to work. :smiling_face_with_tear:

Is there any method to obtain a pulse graph similar to the one shown below?
image
In DepositionGeant4 module, I used the following parameters to emit 100 particles from 0ns to 5000ns.

[DepositionGeant4]
particle_type = "gamma"
source_energy = 50.0keV
number_of_particles = 100
source_time = 0ns
source_time_window = 5000ns

In CSADigitizer module , I applied the following configuration to extend the x-axis to 5000ns.

[CSADigitizer]
integration_time = 5000ns
output_pulsegraphs = 1

But as following, it seems that I didn’t get the expected result. :joy:

This is my complete configuration file.
dialeil-simulation.conf (4.7 KB)

Thank you in advance for your time and suggestions!

Caro

Hej @Caro

I think you are almost there, but the integration_time parameter (which indeed controls for how long your TransientPropagation module - the one which currently limits the run time of the event, not the digitizer.

(side note: instead of 50000ns you could also just write 50us :slight_smile: )

Best,
Simon

1 Like

Dear @simonspa

Thank you very much! :grinning:

Best,
Caro