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.
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.
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.
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
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 )