@@ -109,16 +109,17 @@ function fit_sipm_spectrum(pe_cal::Vector{<:Real}, min_pe::Real=0.5, max_pe::Rea
109
109
# get pe resolution (FWHM)
110
110
get_pe_res = pe -> let sel = in .(μ, (- Δpe_peak_assignment.. Δpe_peak_assignment) .+ pe)
111
111
model_parameters = [
112
- view (μ_ml, sel),
113
- view (σ_ml, sel),
114
- view (w_ml, sel)
115
- ]
112
+ Vector ( view (μ_ml, sel) ),
113
+ Vector ( view (σ_ml, sel) ),
114
+ Vector ( view (w_ml, sel) )
115
+ ]
116
116
117
117
# Find maximum of PDF in the expected range, step size depends on the maximum variance of the single gaussians
118
- range_steps = maximum ([μ[i] . err for i in size (μ)] ) / 100
118
+ range_steps = maximum (getfield .( view (μ, sel), :err ) ) / 100
119
119
x_max = 0.0
120
120
f_max = 0.0
121
- for x_i in 0.8 : range_steps: 1.2
121
+ # Main.@infiltrate
122
+ for x_i in minimum (view (μ_ml, sel)): range_steps: maximum (view (μ_ml, sel))
122
123
if _gmm_pdf (x_i, model_parameters) > f_max
123
124
x_max = x_i
124
125
f_max = _gmm_pdf (x_i, model_parameters)
@@ -196,7 +197,7 @@ function _gmm_binned_loglike_func(
196
197
end
197
198
198
199
function _gmm_pdf (x:: Real , μ:: Vector{<:Real} , σ:: Vector{<:Real} , w:: Vector{<:Real} )
199
- return sum (w . * exp . (- 0.5 . * ((x . - μ) . / σ). ^ 2 ) . / (σ . * sqrt (2 π)))
200
+ return sum (@. w * exp (- 0.5 * ((x - μ) / σ)^ 2 ) / (σ * sqrt (2 π)))
200
201
end
201
202
202
- _gmm_pdf (x:: Real , V:: Vector{<:Vector{<:Real}} ) = _gmm_pdf (x, V[ 1 ], V[ 2 ], V[ 3 ] )
203
+ _gmm_pdf (x:: Real , V:: Vector{<:Vector{<:Real}} ) = _gmm_pdf (x, V... )
0 commit comments