Skip to content

Commit

Permalink
wip from live testing
Browse files Browse the repository at this point in the history
  • Loading branch information
timjarsky committed Dec 18, 2024
1 parent cd1ca3c commit 2dae507
Show file tree
Hide file tree
Showing 2 changed files with 52 additions and 41 deletions.
91 changes: 51 additions & 40 deletions Packages/MIES/MIES_SweepFormula_PSX.ipf
Original file line number Diff line number Diff line change
Expand Up @@ -591,7 +591,7 @@ static Function [variable baseline_t, variable baseline] PSX_CalculateEventBasel

variable range

WaveStats/M=1/Q/R=(peak_t - 4 * kernelRiseTau, peak_t) sweepDataOffFilt
WaveStats/M=1/Q/R=(peak_t - 10 * kernelRiseTau, peak_t) sweepDataOffFilt

if(kernelAmp > 0)
baseline_t = V_minloc
Expand Down Expand Up @@ -692,12 +692,12 @@ static Function [WAVE/D peakX, WAVE/D peakY] PSX_AnalyzePeaks(WAVE sweepDataOffF

return [peakX, peakY]
End

static Function PSX_GetGoodTauFallback(WAVE tau)

WaveStats/Q tau
return V_avg + 2 * V_sdev
End
//
//static Function PSX_GetGoodTauFallback(WAVE tau)
//
// WaveStats/Q tau
// return V_avg + 2 * V_sdev
//End

static Function PSX_GetGoodTau(WAVE psxEvent)

Expand Down Expand Up @@ -728,43 +728,47 @@ static Function PSX_GetGoodTauImpl(WAVE psxEvent)
if(!WaveExists(tau))
return NaN
endif

WaveStats/Q tau

return V_avg + 2.5 * V_sdev

numEvents = DimSize(tau, ROWS)

if(numEvents <= 10)
return PSX_GetGoodTauFallback(tau)
endif

Make/FREE/D/N=0 hist
Histogram/B=5/DP/DEST=hist tau; err = GetRTError(1)

if(err)
return PSX_GetGoodTauFallback(tau)
endif

// Gaussian peak: y = K0+K1*exp(-((x-K2)/K3)^2)
// with:
// K0 = y0
// K1 = A
// K2 = x0
// K3 = \sqrt{2} * sigma
[WAVE coefWave, WAVE fitWave] = PSX_FitHistogram(hist)

// Duplicate/O fitWave, root:fitwave

if(!WaveExists(coefWave))
return PSX_GetGoodTauFallback(tau)
endif

// XXXX sigma away from the center
xVal = coefWave[2] + 2.5 * (coefWave[3] / sqrt(2))
return xval // Gauss1D(coefWave, xVal)
// numEvents = DimSize(tau, ROWS)
//
// if(numEvents <= 10)
// return PSX_GetGoodTauFallback(tau)
// endif
//
// Make/FREE/D/N=0 hist
// Histogram/B=5/DP/DEST=hist tau; err = GetRTError(1)
//
// if(err)
// return PSX_GetGoodTauFallback(tau)
// endif
//
// // Gaussian peak: y = K0+K1*exp(-((x-K2)/K3)^2)
// // with:
// // K0 = y0
// // K1 = A
// // K2 = x0
// // K3 = \sqrt{2} * sigma
// [WAVE coefWave, WAVE fitWave] = PSX_FitHistogram(hist)
//
// // Duplicate/O fitWave, root:fitwave
//
// if(!WaveExists(coefWave))
// return PSX_GetGoodTauFallback(tau)
// endif
//
// // XXXX sigma away from the center
// xVal = coefWave[2] + 2.5 * (coefWave[3] / sqrt(2))
// return xval // Gauss1D(coefWave, xVal)
End

/// @brief Return the x-axis range useful for displaying and extracting a single event
static Function [variable first, variable last] PSX_GetSingleEventRange(WAVE psxEvent, WAVE sweepDataOffFilt, variable index)

variable numEvents, offset
variable numEvents, offset, onset, baseline

numEvents = DimSize(psxEvent, ROWS)

Expand All @@ -776,7 +780,14 @@ static Function [variable first, variable last] PSX_GetSingleEventRange(WAVE psx
offset = PSX_DEFAULT_X_START_OFFSET
endif

first = psxEvent[index][%baseline_t] // - 0.5
onset = psxEvent[index][%$"Onset Time"]
baseline = psxEvent[index][%baseline_t]

if(!IsNaN(onset))
first = min(onset, baseline)
else
first = baseline
endif

if(index == numEvents - 1)
last = min(first + offset, IndexToScale(sweepDataOffFilt, DimSize(sweepDataOffFilt, ROWS) - 1, ROWS))
Expand Down Expand Up @@ -2255,7 +2266,7 @@ static Function PSX_UpdateAverageTraces(string win, WAVE/T eventIndexFromTraces,
fitStartAbs = psxEvent[idx][%$"Onset Time"]

if(IsFinite(fitStartAbs))
ASSERT(fitStartAbs > extractStartAbs, "Unexpected fit/extraction start positions")
ASSERT(fitStartAbs >= extractStartAbs, "Unexpected fit/extraction start positions")

eventStartTime[acceptIndex] = fitStartAbs - extractStartAbs
eventStopTime[acceptIndex] = extractStopAbs - extractStartAbs
Expand Down
2 changes: 1 addition & 1 deletion Packages/MIES/MIES_WaveDataFolderGetters.ipf
Original file line number Diff line number Diff line change
Expand Up @@ -8232,7 +8232,7 @@ End
/// in the filtered sweep wave
/// - 4/peak_t: peak time
/// - 5/baseline: Maximum (negative kernel amp sign) or minimum (positive kernel amp sign) in the range of
/// [peak_t – 4 * kernelRiseTau, peak_t], averaged over +/- 5 points, in the filtered sweep wave
/// [peak_t – 10 * kernelRiseTau, peak_t], averaged over +/- 5 points, in the filtered sweep wave
/// - 6/baseline_t: baseline time
/// - 7/amplitude: Relative amplitude: [3] - [5]
/// - 8/iei: Time difference to previous event (inter event interval) [ms]
Expand Down

0 comments on commit 2dae507

Please sign in to comment.