TRestRawSignalAnalysisProcess is processing too little events

REST version : v2.2.19
REST commit : a5f6b224

I am analysing some .aqs files and I find that the output of TRestMultiFEMINOSToSignalProcess is what I expected (~60000 events), but TRestRawSignalAnalysisProcesses is only processing ~100 events.

I havo no cuts implemented in this process. I have tried re-installing v2.2.18 and it works fine using exatly the same RML, so I cannot find the problem.

I upload a sample .aqs file, together with the files processes.rml and rawToSignalCris.rml to Index of /rawdata

I tested your rml and aqs file with your version. The output is ~60000 events as we expected.

Can you set the verbose level to “info” for TRestProcessRunner and show the information printed by TRestRawSignalAnalysisProcesses? In your processes.rml the cut should be disabled, and there shall be no lines like:

This is the information printed by TRestRawSignalAnalysisProcess:

info

Cuts are disabled (false) in processes.rml:

    <parameter name="cutsEnabled" value="false" />

<parameter name="meanBaseLineCutRange" value="(200,800)" />
<parameter name="meanBaseLineSigmaCutRange" value="(0,6)" />
<parameter name="maxNumberOfSignalsCut" value="(1,20)" />
<parameter name="maxNumberOfGoodSignalsCut" value="(4,10)" />
<parameter name="fullIntegralCut" value="(1,500000)" />
<parameter name="thresholdIntegralCut" value="(1,150000)" />
<parameter name="peakTimeDelayCut" value="(0,10)" />

I went to sultan where you placed the files at the webserver, just executed

restManager  --c rawToSignalCris.rml --f R10513_Calibration_15min_Vm_340_Vd_113_Pr_1.4_Gain_0x1_Shape_0xD_Clock_0x02-000.aqs

And got 64k events

Screenshot 2020-08-21 at 11.43.39

So, it is the problem solved?

We are using now a generic way to define cuts, I guess

<parameter name="cutsEnabled" value="false" />

has no effect now?

At least at TRestRawSignalAnalysisProcess, since ApplyCut is implemented.

Or it is ApplyCut implemented at any process? If it is not the case, what if ApplyCut would be integrated at any process? Would it be as simple as adding

    // If cut condition matches the event will be not registered.
    if (ApplyCut()) return NULL;

to TRestEventProcess::EndOfEventProcess?

BTW, @CMargalejo you need to remove the key verboseLevel="silent" from rawToSignalCris.rml at section TRestProcessRunner in order to be able to print the metadata information of processes at the run time.

I think I found the bug: TRestEventProcess::ApplyCut() has no return!

I have fixed that in Sign in · GitLab

It works now, thanks a lot!!