celeritas-project / celeritas

Celeritas is a new Monte Carlo transport code designed to accelerate scientific discovery in high energy physics by improving detector simulation throughput and energy efficiency using GPUs.
https://celeritas-project.github.io/celeritas/
Other
64 stars 35 forks source link

Add multiple scattering #181

Closed sethrj closed 2 years ago

sethrj commented 3 years ago

Moved from #1 .

Multiple scattering (MSC) will require additional integration into the stepping algorithm, since it reduces the "true" path length traveled to a "geometric" path length.

Implementation details for MSC models (different path from other discrete-continuous EM processes and modes):

  1. Initialization
    • [ ] import MSC cross section (lambda) tables to evaluate the mean free path
    • [x] build MSC data including material dependent MSC parameters
    • [x] access the range (and inverse range) and dedx tables through PhysicsTrackView
  2. Model components (for each model)
    • [x] a. step limitation (including conversion from the true path length to the geometry path length)
    • [x] b. conversion from the geometry path length to the true path length after transportation (linear or field propagation)
    • [x] c. sampling angular distribution and evaluating the lateral displacement which requires information from the step limiter (true path length and its minimum limit, alpha parameter, flag for lateral displacement)
  3. Integration
    • [ ] need safety from GeoTrackView for the step limitation and the angular sampling
    • [ ] test for the candidate selection with the true step length against the physics step length after the step limitation by the energy loss process with (2a) and pass the geometry path length to the propagator.
    • [ ] do the lateral displacement based on the geometry condition (i.e., near boundary) and the size of lateral swift after (2c)
  4. Validation (with respect to Geant4)
    • [x] model data and parameters
    • [x] step limitation
    • [ ] angular distribution
  5. Performance evaluation
  6. Extension for muons, charged hadrons and ions
sethrj commented 3 years ago

See https://github.com/celeritas-project/celeritas-docs/blob/master/graphs/UrbanMscModel-SampleScattering.pdf and other files in that directory for @tmdelellis 's disentangling of the geant call graph for the Urban MSC Models.

whokion commented 3 years ago

@sethrj @tmdelellis, we also need to decide which low energy MSC model we would like to implement (i.e., Urban vs. Goudsmit-Saunderson) - FYI, GS was/is the choice of GeantV/Adept. Just for a future reference, I added callgraphs of AlongStepGPIL and AlongStepDoIt of the Goudsmit-Saunderson Msc model under the celeritas-docs/graphs directory.

sethrj commented 2 years ago

Integrated in #282 .