Signal from a sensor


My simulation currently simulates one particle (mu-) that passes through a gas detector with a wire in its center (90% Ar, 10% CO2, 1800V on wire) and some signal is shown (attached) . I am at the stage of trying to extract data from it. I am using functions in the source file: “ComputeThresholdCrossings”, “GetThresholdCrossing”.

I would to get the length (in time) of a signal as a function of the threshold. Currently, regardless of the threshold that I am setting, the output is that there is no crossing.
In the code I am scanning 12 orders of magnitudes of thresholds but still it doesn’t seem to deliver any data (adding a picture of the output).

        double threshold = 0.02 ;
        for ( int k = 0; k <= 12; k++ ) {
          int crossing = 0 ;
          int power = -6+k ;
          double expo = pow(10,power) ;
          double now_threshold = threshold*expo ;
          sensor->ComputeThresholdCrossings(now_threshold , "s", crossing) ;
          cout << "now_threshold = " << now_threshold << ", crossing = " << crossing << "\n" ;
          double time_of = 0. ;
          double thr = 0. ;
          bool rising = true ;
          sensor->GetThresholdCrossing(0, time_of, thr, rising) ;
          cout << "time_of = " << time_of << ", thr = " << thr << ", rising = " << rising << "\n" ;
          rising = false ;
          sensor->GetThresholdCrossing(0, time_of, thr, rising) ;
          cout << "time_of = " << time_of << ", thr = " << thr << ", rising = " << rising << "\n\n\n" ;

Does anyone see why I can’t seem to analyse the signal?

There is a similar question in this forum (I can not add the link here) But I could not find my answer there since I definitely have a signal and there it seems that that was the issue.


ROOT Version: 6.24.06
Platform: Ubuntu20.04
Compiler: g++ 9.4.0

Can you try a negative threshold?

Yes, just tried.
Negative threshold is working for recognizing all crossing events!
I have noticed that for 4 crossing events “GetThresholdCrossing” should get as the first parameter = {0,1,2,3}. Where index ‘2’ and ‘3’ will be the falling times of rising times index ‘0’ and ‘1’ receptively.
What is then the meaning of the bool variable as a last parameter?

Thank you for your reply!

After working more on the simulation it seems that the signal that I get is not quite correct.
As seen in the picture added I am using “ConvoluteSignal” that uses the transfer function created in “SetTransferFunction”.
Given the parameters above, how would I create a relevant transfer function?

The transfer function is meant to describe the response of your front-end electronics, so it really depends on your detector.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.