JeffersonLab / coatjava

1 stars 20 forks source link

First implementation of the extract() method #371

Closed ftouchte closed 3 weeks ago

ftouchte commented 3 weeks ago

In this pull request, I present the main structure of my extractor algorithm.

This code can be relocated in a new file, for example a new Mode?.java file.

The goal of this pull request is to open a discussion on the way I manage intermediaries variables and settings variable.

I add new relevant information in the Pulse.

// Standard attributs to be filled // there are used as calculation intermediaries
private int binMax; //Bin of the max ADC over the pulse
private int binOffset; //Offset due to sparse sample
private float adcMax; //Max value of ADC over the pulse (fitted)
private float timeMax; //Time of the max ADC over the pulse (fitted)
private float integral; //Sum of ADCs over the pulse (not fitted)
private long timestamp;

// New attributs to be filled // there are used as calculation intermediaries
private float timeRiseCFA; // moment when the signal reaches a Constant Fraction of its Amplitude uphill (fitted)
private float timeFallCFA; // moment when the signal reaches a Constant Fraction of its Amplitude downhill (fitted)
private float timeOverThresholdCFA; // is equal to (timeFallCFA - timeRiseCFA)
private float timeCFD; // time extracted using the Constant Fraction Discriminator (CFD) algorithm (fitted)

Some settings parameters must be initialized before using the extract () method.

// Setting parameters // Should ideally be arguments in the extarct() methods by comparison to MVTFitter.java
public float samplingTime;
public int sparseSample;
public short adcOffset; 
public long timeStamp;
public float fineTimeStampResolution;
public static final short ADC_LIMIT = 4095; // 2^12-1
public float amplitudeFractionCFA;
public int binDelayCFD;
public float fractionCFD;

How can we see the output of the extractor in the reconstructed hipo file ?

Thank you in advance for your help.