Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Simulating waveforms with the Geant4 extension throws an error when using Float64 #436

Closed
fhagemann opened this issue Nov 20, 2024 · 0 comments · Fixed by #437
Closed

Simulating waveforms with the Geant4 extension throws an error when using Float64 #436

fhagemann opened this issue Nov 20, 2024 · 0 comments · Fixed by #437
Labels
breaking Changes syntax to older versions geant4 Anything related to the Geant4 support

Comments

@fhagemann
Copy link
Collaborator

If the Geant4 extension tutorial is run with T = Float64 instead of T = Float32, we get the following error at the end of the tutorial:

wf = simulate_waveforms(events[1:100], sim, Δt = 1u"ns", max_nsteps = 2000)
plot(wf[1:20].waveform, label = "")
[ Info: Detector has 2 contacts
[ Info: Table has 100 physics events (4587 single charge depositions).

MethodError: no method matching move_charges_inside_semiconductor!(::Vector{Vector{CartesianPoint{Float32}}}, ::Vector{Vector{Float32}}, ::SolidStateDetector{Float64, SolidStateDetectors.Semiconductor{Float64, SolidStateDetectors.ConstructiveSolidGeometry.CSGDifference{Float64, SolidStateDetectors.ConstructiveSolidGeometry.Cone{Float64, SolidStateDetectors.ConstructiveSolidGeometry.ClosedPrimitive, Float64, Nothing}, SolidStateDetectors.ConstructiveSolidGeometry.CSGUnion{Float64, SolidStateDetectors.ConstructiveSolidGeometry.Cone{Float64, SolidStateDetectors.ConstructiveSolidGeometry.OpenPrimitive, Tuple{Tuple{Float64, Float64}, Tuple{Float64, Float64}}, Nothing}, SolidStateDetectors.ConstructiveSolidGeometry.Cone{Float64, SolidStateDetectors.ConstructiveSolidGeometry.OpenPrimitive, Float64, Nothing}}}, @NamedTuple{E_ionisation::Quantity{Float64, 𝐋^2 𝐌 𝐓^-2, Unitful.FreeUnits{(eV,), 𝐋^2 𝐌 𝐓^-2, nothing}}, f_fano::Float64, ϵ_r::Float64, ρ::Quantity{Float64, 𝐌 𝐋^-3, Unitful.FreeUnits{(g, cm^-3), 𝐌 𝐋^-3, nothing}}, name::String, ml::Float64, mt::Float64, De::Quantity{Int64, 𝐋^2 𝐓^-1, Unitful.FreeUnits{(cm^2, s^-1), 𝐋^2 𝐓^-1, nothing}}, Dh::Quantity{Int64, 𝐋^2 𝐓^-1, Unitful.FreeUnits{(cm^2, s^-1), 𝐋^2 𝐓^-1, nothing}}}, ADLChargeDriftModel{Float64, SolidStateDetectors.HPGe, 4, SolidStateDetectors.VacuumModel{Float64}}, SolidStateDetectors.LinearImpurityDensity{Float64}, NoChargeTrappingModel{Float64}}, Vector{SolidStateDetectors.Contact{Float64, G, @NamedTuple{E_ionisation::Quantity{Float64, 𝐋^2 𝐌 𝐓^-2, Unitful.FreeUnits{(eV,), 𝐋^2 𝐌 𝐓^-2, nothing}}, f_fano::Float64, ϵ_r::Float64, ρ::Quantity{Float64, 𝐌 𝐋^-3, Unitful.FreeUnits{(g, cm^-3), 𝐌 𝐋^-3, nothing}}, name::String, ml::Float64, mt::Float64, De::Quantity{Int64, 𝐋^2 𝐓^-1, Unitful.FreeUnits{(cm^2, s^-1), 𝐋^2 𝐓^-1, nothing}}, Dh::Quantity{Int64, 𝐋^2 𝐓^-1, Unitful.FreeUnits{(cm^2, s^-1), 𝐋^2 𝐓^-1, nothing}}}} where G}, Vector{SolidStateDetectors.Passive{Float64}}, Missing})
The function `move_charges_inside_semiconductor!` exists, but no method is defined for this combination of argument types.

Closest candidates are:
  move_charges_inside_semiconductor!(::AbstractVector{<:AbstractArray{CartesianPoint{T}, 1}}, ::AbstractVector{<:AbstractVector{T}}, ::SolidStateDetector{T}; fraction) where T<:Union{Float16, Float32, Float64}
   @ SolidStateDetectors /user/.julia/packages/SolidStateDetectors/vJEoq/src/Event/Event.jl:94
  move_charges_inside_semiconductor!(::Event{T}, ::SolidStateDetector{T}; fraction) where T<:Union{Float16, Float32, Float64}
   @ SolidStateDetectors /user/.julia/packages/SolidStateDetectors/vJEoq/src/Event/Event.jl:89


Stacktrace:
  [1] (::SolidStateDetectors.var"#367#373"{Int64, Int64, Int64, Vector{Vector{StaticArraysCore.SVector{3, Quantity{Float32, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}}}}, Vector{Vector{Quantity{Float32, 𝐋^2 𝐌 𝐓^-2, Unitful.FreeUnits{(keV,), 𝐋^2 𝐌 𝐓^-2, nothing}}}}, SolidStateDetector{Float64, SolidStateDetectors.Semiconductor{Float64, SolidStateDetectors.ConstructiveSolidGeometry.CSGDifference{Float64, SolidStateDetectors.ConstructiveSolidGeometry.Cone{Float64, SolidStateDetectors.ConstructiveSolidGeometry.ClosedPrimitive, Float64, Nothing}, SolidStateDetectors.ConstructiveSolidGeometry.CSGUnion{Float64, SolidStateDetectors.ConstructiveSolidGeometry.Cone{Float64, SolidStateDetectors.ConstructiveSolidGeometry.OpenPrimitive, Tuple{Tuple{Float64, Float64}, Tuple{Float64, Float64}}, Nothing}, SolidStateDetectors.ConstructiveSolidGeometry.Cone{Float64, SolidStateDetectors.ConstructiveSolidGeometry.OpenPrimitive, Float64, Nothing}}}, @NamedTuple{E_ionisation::Quantity{Float64, 𝐋^2 𝐌 𝐓^-2, Unitful.FreeUnits{(eV,), 𝐋^2 𝐌 𝐓^-2, nothing}}, f_fano::Float64, ϵ_r::Float64, ρ::Quantity{Float64, 𝐌 𝐋^-3, Unitful.FreeUnits{(g, cm^-3), 𝐌 𝐋^-3, nothing}}, name::String, ml::Float64, mt::Float64, De::Quantity{Int64, 𝐋^2 𝐓^-1, Unitful.FreeUnits{(cm^2, s^-1), 𝐋^2 𝐓^-1, nothing}}, Dh::Quantity{Int64, 𝐋^2 𝐓^-1, Unitful.FreeUnits{(cm^2, s^-1), 𝐋^2 𝐓^-1, nothing}}}, ADLChargeDriftModel{Float64, SolidStateDetectors.HPGe, 4, SolidStateDetectors.VacuumModel{Float64}}, SolidStateDetectors.LinearImpurityDensity{Float64}, NoChargeTrappingModel{Float64}}, Vector{SolidStateDetectors.Contact{Float64, G, @NamedTuple{E_ionisation::Quantity{Float64, 𝐋^2 𝐌 𝐓^-2, Unitful.FreeUnits{(eV,), 𝐋^2 𝐌 𝐓^-2, nothing}}, f_fano::Float64, ϵ_r::Float64, ρ::Quantity{Float64, 𝐌 𝐋^-3, Unitful.FreeUnits{(g, cm^-3), 𝐌 𝐋^-3, nothing}}, name::String, ml::Float64, mt::Float64, De::Quantity{Int64, 𝐋^2 𝐓^-1, Unitful.FreeUnits{(cm^2, s^-1), 𝐋^2 𝐓^-1, nothing}}, Dh::Quantity{Int64, 𝐋^2 𝐓^-1, Unitful.FreeUnits{(cm^2, s^-1), 𝐋^2 𝐓^-1, nothing}}}} where G}, Vector{SolidStateDetectors.Passive{Float64}}, Missing}})(i_together::Int64)
    @ SolidStateDetectors /user/.julia/packages/SolidStateDetectors/vJEoq/src/MCEventsProcessing/MCEventsProcessing.jl:111
  [2] _broadcast_getindex_evalf
    @ ./broadcast.jl:673 [inlined]
  [3] _broadcast_getindex
    @ ./broadcast.jl:646 [inlined]
  [4] getindex
    @ ./broadcast.jl:605 [inlined]
  [5] copy
    @ ./broadcast.jl:906 [inlined]
  [6] materialize
    @ ./broadcast.jl:867 [inlined]
  [7] broadcast
    @ ./broadcast.jl:805 [inlined]
  [8] #366
    @ /user/.julia/packages/SolidStateDetectors/vJEoq/src/MCEventsProcessing/MCEventsProcessing.jl:103 [inlined]
  [9] _broadcast_getindex_evalf
    @ ./broadcast.jl:673 [inlined]
 [10] _broadcast_getindex
    @ ./broadcast.jl:646 [inlined]
 [11] getindex
    @ ./broadcast.jl:605 [inlined]
 [12] macro expansion
    @ ./broadcast.jl:968 [inlined]
 [13] macro expansion
    @ ./simdloop.jl:77 [inlined]
 [14] copyto!
    @ ./broadcast.jl:967 [inlined]
 [15] copyto!
    @ ./broadcast.jl:920 [inlined]
 [16] copy
    @ ./broadcast.jl:892 [inlined]
 [17] materialize(bc::Base.Broadcast.Broadcasted{Base.Broadcast.DefaultArrayStyle{1}, Nothing, SolidStateDetectors.var"#366#372"{Int64, Int64, Vector{Vector{StaticArraysCore.SVector{3, Quantity{Float32, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}}}}, Vector{Vector{Quantity{Float32, 𝐋^2 𝐌 𝐓^-2, Unitful.FreeUnits{(keV,), 𝐋^2 𝐌 𝐓^-2, nothing}}}}, SolidStateDetector{Float64, SolidStateDetectors.Semiconductor{Float64, SolidStateDetectors.ConstructiveSolidGeometry.CSGDifference{Float64, SolidStateDetectors.ConstructiveSolidGeometry.Cone{Float64, SolidStateDetectors.ConstructiveSolidGeometry.ClosedPrimitive, Float64, Nothing}, SolidStateDetectors.ConstructiveSolidGeometry.CSGUnion{Float64, SolidStateDetectors.ConstructiveSolidGeometry.Cone{Float64, SolidStateDetectors.ConstructiveSolidGeometry.OpenPrimitive, Tuple{Tuple{Float64, Float64}, Tuple{Float64, Float64}}, Nothing}, SolidStateDetectors.ConstructiveSolidGeometry.Cone{Float64, SolidStateDetectors.ConstructiveSolidGeometry.OpenPrimitive, Float64, Nothing}}}, @NamedTuple{E_ionisation::Quantity{Float64, 𝐋^2 𝐌 𝐓^-2, Unitful.FreeUnits{(eV,), 𝐋^2 𝐌 𝐓^-2, nothing}}, f_fano::Float64, ϵ_r::Float64, ρ::Quantity{Float64, 𝐌 𝐋^-3, Unitful.FreeUnits{(g, cm^-3), 𝐌 𝐋^-3, nothing}}, name::String, ml::Float64, mt::Float64, De::Quantity{Int64, 𝐋^2 𝐓^-1, Unitful.FreeUnits{(cm^2, s^-1), 𝐋^2 𝐓^-1, nothing}}, Dh::Quantity{Int64, 𝐋^2 𝐓^-1, Unitful.FreeUnits{(cm^2, s^-1), 𝐋^2 𝐓^-1, nothing}}}, ADLChargeDriftModel{Float64, SolidStateDetectors.HPGe, 4, SolidStateDetectors.VacuumModel{Float64}}, SolidStateDetectors.LinearImpurityDensity{Float64}, NoChargeTrappingModel{Float64}}, Vector{SolidStateDetectors.Contact{Float64, G, @NamedTuple{E_ionisation::Quantity{Float64, 𝐋^2 𝐌 𝐓^-2, Unitful.FreeUnits{(eV,), 𝐋^2 𝐌 𝐓^-2, nothing}}, f_fano::Float64, ϵ_r::Float64, ρ::Quantity{Float64, 𝐌 𝐋^-3, Unitful.FreeUnits{(g, cm^-3), 𝐌 𝐋^-3, nothing}}, name::String, ml::Float64, mt::Float64, De::Quantity{Int64, 𝐋^2 𝐓^-1, Unitful.FreeUnits{(cm^2, s^-1), 𝐋^2 𝐓^-1, nothing}}, Dh::Quantity{Int64, 𝐋^2 𝐓^-1, Unitful.FreeUnits{(cm^2, s^-1), 𝐋^2 𝐓^-1, nothing}}}} where G}, Vector{SolidStateDetectors.Passive{Float64}}, Missing}}, Tuple{Base.OneTo{Int64}}})
    @ Base.Broadcast ./broadcast.jl:867
 [18] broadcast
    @ ./broadcast.jl:805 [inlined]
 [19] _convertEnergyDepsToChargeDeps(pos::Vector{Vector{StaticArraysCore.SVector{3, Quantity{Float32, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}}}}, edep::Vector{Vector{Quantity{Float32, 𝐋^2 𝐌 𝐓^-2, Unitful.FreeUnits{(keV,), 𝐋^2 𝐌 𝐓^-2, nothing}}}}, det::SolidStateDetector{Float64, SolidStateDetectors.Semiconductor{Float64, SolidStateDetectors.ConstructiveSolidGeometry.CSGDifference{Float64, SolidStateDetectors.ConstructiveSolidGeometry.Cone{Float64, SolidStateDetectors.ConstructiveSolidGeometry.ClosedPrimitive, Float64, Nothing}, SolidStateDetectors.ConstructiveSolidGeometry.CSGUnion{Float64, SolidStateDetectors.ConstructiveSolidGeometry.Cone{Float64, SolidStateDetectors.ConstructiveSolidGeometry.OpenPrimitive, Tuple{Tuple{Float64, Float64}, Tuple{Float64, Float64}}, Nothing}, SolidStateDetectors.ConstructiveSolidGeometry.Cone{Float64, SolidStateDetectors.ConstructiveSolidGeometry.OpenPrimitive, Float64, Nothing}}}, @NamedTuple{E_ionisation::Quantity{Float64, 𝐋^2 𝐌 𝐓^-2, Unitful.FreeUnits{(eV,), 𝐋^2 𝐌 𝐓^-2, nothing}}, f_fano::Float64, ϵ_r::Float64, ρ::Quantity{Float64, 𝐌 𝐋^-3, Unitful.FreeUnits{(g, cm^-3), 𝐌 𝐋^-3, nothing}}, name::String, ml::Float64, mt::Float64, De::Quantity{Int64, 𝐋^2 𝐓^-1, Unitful.FreeUnits{(cm^2, s^-1), 𝐋^2 𝐓^-1, nothing}}, Dh::Quantity{Int64, 𝐋^2 𝐓^-1, Unitful.FreeUnits{(cm^2, s^-1), 𝐋^2 𝐓^-1, nothing}}}, ADLChargeDriftModel{Float64, SolidStateDetectors.HPGe, 4, SolidStateDetectors.VacuumModel{Float64}}, SolidStateDetectors.LinearImpurityDensity{Float64}, NoChargeTrappingModel{Float64}}, Vector{SolidStateDetectors.Contact{Float64, G, @NamedTuple{E_ionisation::Quantity{Float64, 𝐋^2 𝐌 𝐓^-2, Unitful.FreeUnits{(eV,), 𝐋^2 𝐌 𝐓^-2, nothing}}, f_fano::Float64, ϵ_r::Float64, ρ::Quantity{Float64, 𝐌 𝐋^-3, Unitful.FreeUnits{(g, cm^-3), 𝐌 𝐋^-3, nothing}}, name::String, ml::Float64, mt::Float64, De::Quantity{Int64, 𝐋^2 𝐓^-1, Unitful.FreeUnits{(cm^2, s^-1), 𝐋^2 𝐓^-1, nothing}}, Dh::Quantity{Int64, 𝐋^2 𝐓^-1, Unitful.FreeUnits{(cm^2, s^-1), 𝐋^2 𝐓^-1, nothing}}}} where G}, Vector{SolidStateDetectors.Passive{Float64}}, Missing}; number_of_carriers::Int64, number_of_shells::Int64)
    @ SolidStateDetectors /user/.julia/packages/SolidStateDetectors/vJEoq/src/MCEventsProcessing/MCEventsProcessing.jl:102
 [20] _convertEnergyDepsToChargeDeps
    @ /user/.julia/packages/SolidStateDetectors/vJEoq/src/MCEventsProcessing/MCEventsProcessing.jl:100 [inlined]
 [21] #_convertEnergyDepsToChargeDeps#360
    @ /user/.julia/packages/SolidStateDetectors/vJEoq/src/MCEventsProcessing/MCEventsProcessing.jl:97 [inlined]
 [22] (::SolidStateDetectors.var"#378#380"{Float64, Simulation{Float64, Cylindrical}, Quantity{Int64, 𝐓, Unitful.FreeUnits{(ns,), 𝐓, nothing}}, Int64, Interpolations.Extrapolation{StaticArraysCore.SVector{3, Float64}, 3, Interpolations.GriddedInterpolation{StaticArraysCore.SVector{3, Float64}, 3, Array{StaticArraysCore.SVector{3, Float64}, 3}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Tuple{Vector{Float64}, Vector{Float64}, Vector{Float64}}}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Tuple{Interpolations.Line{Nothing}, Interpolations.Periodic{Nothing}, Interpolations.Line{Nothing}}}, Bool, Bool, Int64, Int64, Bool})(phyevt::@NamedTuple{evtno::Int32, detno::Vector{Int32}, thit::Vector{Quantity{Float32, 𝐓, Unitful.FreeUnits{(s,), 𝐓, nothing}}}, edep::Vector{Quantity{Float32, 𝐋^2 𝐌 𝐓^-2, Unitful.FreeUnits{(keV,), 𝐋^2 𝐌 𝐓^-2, nothing}}}, pos::Vector{StaticArraysCore.SVector{3, Quantity{Float32, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}}}})
    @ SolidStateDetectors /user/.julia/packages/SolidStateDetectors/vJEoq/src/MCEventsProcessing/MCEventsProcessing.jl:132
 [23] #46
    @ /user/.julia/packages/ProgressMeter/kVZZH/src/ProgressMeter.jl:1050 [inlined]
 [24] iterate
    @ ./generator.jl:48 [inlined]
 [25] _collect(c::TypedTables.Table{@NamedTuple{evtno::Int32, detno::Vector{Int32}, thit::Vector{Quantity{Float32, 𝐓, Unitful.FreeUnits{(s,), 𝐓, nothing}}}, edep::Vector{Quantity{Float32, 𝐋^2 𝐌 𝐓^-2, Unitful.FreeUnits{(keV,), 𝐋^2 𝐌 𝐓^-2, nothing}}}, pos::Vector{StaticArraysCore.SVector{3, Quantity{Float32, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}}}}, 1, @NamedTuple{evtno::Vector{Int32}, detno::ArraysOfArrays.VectorOfVectors{Int32, Vector{Int32}, Vector{Int64}, Vector{Tuple{}}}, thit::ArraysOfArrays.VectorOfVectors{Quantity{Float32, 𝐓, Unitful.FreeUnits{(s,), 𝐓, nothing}}, Vector{Quantity{Float32, 𝐓, Unitful.FreeUnits{(s,), 𝐓, nothing}}}, Vector{Int64}, Vector{Tuple{}}}, edep::ArraysOfArrays.VectorOfVectors{Quantity{Float32, 𝐋^2 𝐌 𝐓^-2, Unitful.FreeUnits{(keV,), 𝐋^2 𝐌 𝐓^-2, nothing}}, Vector{Quantity{Float32, 𝐋^2 𝐌 𝐓^-2, Unitful.FreeUnits{(keV,), 𝐋^2 𝐌 𝐓^-2, nothing}}}, Vector{Int64}, Vector{Tuple{}}}, pos::ArraysOfArrays.VectorOfVectors{StaticArraysCore.SVector{3, Quantity{Float32, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}}, Vector{StaticArraysCore.SVector{3, Quantity{Float32, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}}}, Vector{Int64}, Vector{Tuple{}}}}}, itr::Base.Generator{TypedTables.Table{@NamedTuple{evtno::Int32, detno::Vector{Int32}, thit::Vector{Quantity{Float32, 𝐓, Unitful.FreeUnits{(s,), 𝐓, nothing}}}, edep::Vector{Quantity{Float32, 𝐋^2 𝐌 𝐓^-2, Unitful.FreeUnits{(keV,), 𝐋^2 𝐌 𝐓^-2, nothing}}}, pos::Vector{StaticArraysCore.SVector{3, Quantity{Float32, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}}}}, 1, @NamedTuple{evtno::Vector{Int32}, detno::ArraysOfArrays.VectorOfVectors{Int32, Vector{Int32}, Vector{Int64}, Vector{Tuple{}}}, thit::ArraysOfArrays.VectorOfVectors{Quantity{Float32, 𝐓, Unitful.FreeUnits{(s,), 𝐓, nothing}}, Vector{Quantity{Float32, 𝐓, Unitful.FreeUnits{(s,), 𝐓, nothing}}}, Vector{Int64}, Vector{Tuple{}}}, edep::ArraysOfArrays.VectorOfVectors{Quantity{Float32, 𝐋^2 𝐌 𝐓^-2, Unitful.FreeUnits{(keV,), 𝐋^2 𝐌 𝐓^-2, nothing}}, Vector{Quantity{Float32, 𝐋^2 𝐌 𝐓^-2, Unitful.FreeUnits{(keV,), 𝐋^2 𝐌 𝐓^-2, nothing}}}, Vector{Int64}, Vector{Tuple{}}}, pos::ArraysOfArrays.VectorOfVectors{StaticArraysCore.SVector{3, Quantity{Float32, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}}, Vector{StaticArraysCore.SVector{3, Quantity{Float32, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}}}, Vector{Int64}, Vector{Tuple{}}}}}, ProgressMeter.var"#46#49"{Distributed.RemoteChannel{Channel{Bool}}, SolidStateDetectors.var"#378#380"{Float64, Simulation{Float64, Cylindrical}, Quantity{Int64, 𝐓, Unitful.FreeUnits{(ns,), 𝐓, nothing}}, Int64, Interpolations.Extrapolation{StaticArraysCore.SVector{3, Float64}, 3, Interpolations.GriddedInterpolation{StaticArraysCore.SVector{3, Float64}, 3, Array{StaticArraysCore.SVector{3, Float64}, 3}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Tuple{Vector{Float64}, Vector{Float64}, Vector{Float64}}}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Tuple{Interpolations.Line{Nothing}, Interpolations.Periodic{Nothing}, Interpolations.Line{Nothing}}}, Bool, Bool, Int64, Int64, Bool}}}, ::Base.EltypeUnknown, isz::Base.HasShape{1})
    @ Base ./array.jl:800
 [26] collect_similar(cont::TypedTables.Table{@NamedTuple{evtno::Int32, detno::Vector{Int32}, thit::Vector{Quantity{Float32, 𝐓, Unitful.FreeUnits{(s,), 𝐓, nothing}}}, edep::Vector{Quantity{Float32, 𝐋^2 𝐌 𝐓^-2, Unitful.FreeUnits{(keV,), 𝐋^2 𝐌 𝐓^-2, nothing}}}, pos::Vector{StaticArraysCore.SVector{3, Quantity{Float32, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}}}}, 1, @NamedTuple{evtno::Vector{Int32}, detno::ArraysOfArrays.VectorOfVectors{Int32, Vector{Int32}, Vector{Int64}, Vector{Tuple{}}}, thit::ArraysOfArrays.VectorOfVectors{Quantity{Float32, 𝐓, Unitful.FreeUnits{(s,), 𝐓, nothing}}, Vector{Quantity{Float32, 𝐓, Unitful.FreeUnits{(s,), 𝐓, nothing}}}, Vector{Int64}, Vector{Tuple{}}}, edep::ArraysOfArrays.VectorOfVectors{Quantity{Float32, 𝐋^2 𝐌 𝐓^-2, Unitful.FreeUnits{(keV,), 𝐋^2 𝐌 𝐓^-2, nothing}}, Vector{Quantity{Float32, 𝐋^2 𝐌 𝐓^-2, Unitful.FreeUnits{(keV,), 𝐋^2 𝐌 𝐓^-2, nothing}}}, Vector{Int64}, Vector{Tuple{}}}, pos::ArraysOfArrays.VectorOfVectors{StaticArraysCore.SVector{3, Quantity{Float32, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}}, Vector{StaticArraysCore.SVector{3, Quantity{Float32, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}}}, Vector{Int64}, Vector{Tuple{}}}}}, itr::Base.Generator{TypedTables.Table{@NamedTuple{evtno::Int32, detno::Vector{Int32}, thit::Vector{Quantity{Float32, 𝐓, Unitful.FreeUnits{(s,), 𝐓, nothing}}}, edep::Vector{Quantity{Float32, 𝐋^2 𝐌 𝐓^-2, Unitful.FreeUnits{(keV,), 𝐋^2 𝐌 𝐓^-2, nothing}}}, pos::Vector{StaticArraysCore.SVector{3, Quantity{Float32, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}}}}, 1, @NamedTuple{evtno::Vector{Int32}, detno::ArraysOfArrays.VectorOfVectors{Int32, Vector{Int32}, Vector{Int64}, Vector{Tuple{}}}, thit::ArraysOfArrays.VectorOfVectors{Quantity{Float32, 𝐓, Unitful.FreeUnits{(s,), 𝐓, nothing}}, Vector{Quantity{Float32, 𝐓, Unitful.FreeUnits{(s,), 𝐓, nothing}}}, Vector{Int64}, Vector{Tuple{}}}, edep::ArraysOfArrays.VectorOfVectors{Quantity{Float32, 𝐋^2 𝐌 𝐓^-2, Unitful.FreeUnits{(keV,), 𝐋^2 𝐌 𝐓^-2, nothing}}, Vector{Quantity{Float32, 𝐋^2 𝐌 𝐓^-2, Unitful.FreeUnits{(keV,), 𝐋^2 𝐌 𝐓^-2, nothing}}}, Vector{Int64}, Vector{Tuple{}}}, pos::ArraysOfArrays.VectorOfVectors{StaticArraysCore.SVector{3, Quantity{Float32, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}}, Vector{StaticArraysCore.SVector{3, Quantity{Float32, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}}}, Vector{Int64}, Vector{Tuple{}}}}}, ProgressMeter.var"#46#49"{Distributed.RemoteChannel{Channel{Bool}}, SolidStateDetectors.var"#378#380"{Float64, Simulation{Float64, Cylindrical}, Quantity{Int64, 𝐓, Unitful.FreeUnits{(ns,), 𝐓, nothing}}, Int64, Interpolations.Extrapolation{StaticArraysCore.SVector{3, Float64}, 3, Interpolations.GriddedInterpolation{StaticArraysCore.SVector{3, Float64}, 3, Array{StaticArraysCore.SVector{3, Float64}, 3}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Tuple{Vector{Float64}, Vector{Float64}, Vector{Float64}}}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Tuple{Interpolations.Line{Nothing}, Interpolations.Periodic{Nothing}, Interpolations.Line{Nothing}}}, Bool, Bool, Int64, Int64, Bool}}})
    @ Base ./array.jl:709
 [27] map(f::Function, A::TypedTables.Table{@NamedTuple{evtno::Int32, detno::Vector{Int32}, thit::Vector{Quantity{Float32, 𝐓, Unitful.FreeUnits{(s,), 𝐓, nothing}}}, edep::Vector{Quantity{Float32, 𝐋^2 𝐌 𝐓^-2, Unitful.FreeUnits{(keV,), 𝐋^2 𝐌 𝐓^-2, nothing}}}, pos::Vector{StaticArraysCore.SVector{3, Quantity{Float32, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}}}}, 1, @NamedTuple{evtno::Vector{Int32}, detno::ArraysOfArrays.VectorOfVectors{Int32, Vector{Int32}, Vector{Int64}, Vector{Tuple{}}}, thit::ArraysOfArrays.VectorOfVectors{Quantity{Float32, 𝐓, Unitful.FreeUnits{(s,), 𝐓, nothing}}, Vector{Quantity{Float32, 𝐓, Unitful.FreeUnits{(s,), 𝐓, nothing}}}, Vector{Int64}, Vector{Tuple{}}}, edep::ArraysOfArrays.VectorOfVectors{Quantity{Float32, 𝐋^2 𝐌 𝐓^-2, Unitful.FreeUnits{(keV,), 𝐋^2 𝐌 𝐓^-2, nothing}}, Vector{Quantity{Float32, 𝐋^2 𝐌 𝐓^-2, Unitful.FreeUnits{(keV,), 𝐋^2 𝐌 𝐓^-2, nothing}}}, Vector{Int64}, Vector{Tuple{}}}, pos::ArraysOfArrays.VectorOfVectors{StaticArraysCore.SVector{3, Quantity{Float32, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}}, Vector{StaticArraysCore.SVector{3, Quantity{Float32, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}}}, Vector{Int64}, Vector{Tuple{}}}}})
    @ Base ./abstractarray.jl:3371
 [28] macro expansion
    @ /user/.julia/packages/ProgressMeter/kVZZH/src/ProgressMeter.jl:1049 [inlined]
 [29] macro expansion
    @ ./task.jl:498 [inlined]
 [30] macro expansion
    @ /user/.julia/packages/ProgressMeter/kVZZH/src/ProgressMeter.jl:1048 [inlined]
 [31] macro expansion
    @ ./task.jl:498 [inlined]
 [32] progress_map(::Function, ::Vararg{Any}; mapfun::typeof(map), progress::ProgressMeter.Progress, channel_bufflen::Int64, kwargs::@Kwargs{})
    @ ProgressMeter /user/.julia/packages/ProgressMeter/kVZZH/src/ProgressMeter.jl:1041
 [33] progress_map
    @ /user/.julia/packages/ProgressMeter/kVZZH/src/ProgressMeter.jl:1032 [inlined]
 [34] _simulate_charge_drifts(mcevents::TypedTables.Table{@NamedTuple{evtno::Int32, detno::Vector{Int32}, thit::Vector{Quantity{Float32, 𝐓, Unitful.FreeUnits{(s,), 𝐓, nothing}}}, edep::Vector{Quantity{Float32, 𝐋^2 𝐌 𝐓^-2, Unitful.FreeUnits{(keV,), 𝐋^2 𝐌 𝐓^-2, nothing}}}, pos::Vector{StaticArraysCore.SVector{3, Quantity{Float32, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}}}}, 1, @NamedTuple{evtno::Vector{Int32}, detno::ArraysOfArrays.VectorOfVectors{Int32, Vector{Int32}, Vector{Int64}, Vector{Tuple{}}}, thit::ArraysOfArrays.VectorOfVectors{Quantity{Float32, 𝐓, Unitful.FreeUnits{(s,), 𝐓, nothing}}, Vector{Quantity{Float32, 𝐓, Unitful.FreeUnits{(s,), 𝐓, nothing}}}, Vector{Int64}, Vector{Tuple{}}}, edep::ArraysOfArrays.VectorOfVectors{Quantity{Float32, 𝐋^2 𝐌 𝐓^-2, Unitful.FreeUnits{(keV,), 𝐋^2 𝐌 𝐓^-2, nothing}}, Vector{Quantity{Float32, 𝐋^2 𝐌 𝐓^-2, Unitful.FreeUnits{(keV,), 𝐋^2 𝐌 𝐓^-2, nothing}}}, Vector{Int64}, Vector{Tuple{}}}, pos::ArraysOfArrays.VectorOfVectors{StaticArraysCore.SVector{3, Quantity{Float32, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}}, Vector{StaticArraysCore.SVector{3, Quantity{Float32, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}}}, Vector{Int64}, Vector{Tuple{}}}}}, sim::Simulation{Float64, Cylindrical}, Δt::Quantity{Int64, 𝐓, Unitful.FreeUnits{(ns,), 𝐓, nothing}}, max_nsteps::Int64, electric_field::Interpolations.Extrapolation{StaticArraysCore.SVector{3, Float64}, 3, Interpolations.GriddedInterpolation{StaticArraysCore.SVector{3, Float64}, 3, Array{StaticArraysCore.SVector{3, Float64}, 3}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Tuple{Vector{Float64}, Vector{Float64}, Vector{Float64}}}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Tuple{Interpolations.Line{Nothing}, Interpolations.Periodic{Nothing}, Interpolations.Line{Nothing}}}, diffusion::Bool, self_repulsion::Bool, number_of_carriers::Int64, number_of_shells::Int64, verbose::Bool)
    @ SolidStateDetectors /user/.julia/packages/SolidStateDetectors/vJEoq/src/MCEventsProcessing/MCEventsProcessing.jl:131
 [35] simulate_waveforms(mcevents::TypedTables.Table{@NamedTuple{evtno::Int32, detno::Vector{Int32}, thit::Vector{Quantity{Float32, 𝐓, Unitful.FreeUnits{(s,), 𝐓, nothing}}}, edep::Vector{Quantity{Float32, 𝐋^2 𝐌 𝐓^-2, Unitful.FreeUnits{(keV,), 𝐋^2 𝐌 𝐓^-2, nothing}}}, pos::Vector{StaticArraysCore.SVector{3, Quantity{Float32, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}}}}, 1, @NamedTuple{evtno::Vector{Int32}, detno::ArraysOfArrays.VectorOfVectors{Int32, Vector{Int32}, Vector{Int64}, Vector{Tuple{}}}, thit::ArraysOfArrays.VectorOfVectors{Quantity{Float32, 𝐓, Unitful.FreeUnits{(s,), 𝐓, nothing}}, Vector{Quantity{Float32, 𝐓, Unitful.FreeUnits{(s,), 𝐓, nothing}}}, Vector{Int64}, Vector{Tuple{}}}, edep::ArraysOfArrays.VectorOfVectors{Quantity{Float32, 𝐋^2 𝐌 𝐓^-2, Unitful.FreeUnits{(keV,), 𝐋^2 𝐌 𝐓^-2, nothing}}, Vector{Quantity{Float32, 𝐋^2 𝐌 𝐓^-2, Unitful.FreeUnits{(keV,), 𝐋^2 𝐌 𝐓^-2, nothing}}}, Vector{Int64}, Vector{Tuple{}}}, pos::ArraysOfArrays.VectorOfVectors{StaticArraysCore.SVector{3, Quantity{Float32, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}}, Vector{StaticArraysCore.SVector{3, Quantity{Float32, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}}}, Vector{Int64}, Vector{Tuple{}}}}}, sim::Simulation{Float64, Cylindrical}; Δt::Quantity{Int64, 𝐓, Unitful.FreeUnits{(ns,), 𝐓, nothing}}, max_nsteps::Int64, diffusion::Bool, self_repulsion::Bool, number_of_carriers::Int64, number_of_shells::Int64, verbose::Bool)
    @ SolidStateDetectors /user/.julia/packages/SolidStateDetectors/vJEoq/src/MCEventsProcessing/MCEventsProcessing.jl:73
 [36] top-level scope
    @ In[12]:1

Seems like the CartesianPoints in the simulated events are not adapted to the floating point precision required by the Simulation.

@fhagemann fhagemann added breaking Changes syntax to older versions geant4 Anything related to the Geant4 support labels Nov 20, 2024
@fhagemann fhagemann linked a pull request Nov 20, 2024 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
breaking Changes syntax to older versions geant4 Anything related to the Geant4 support
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant