Skip to content

New Module: DepositionCosmics

Simon Spannagel requested to merge cosmics into master

This module uses the CRY framework to simulate a realistic distribution of particles from cosmic ray showers as a function of the date and the latitude. This module inherits most of its functionality for handling sensors from DepositionGeant4 and just replaces the GeneratorAction with the call to the framework and adds some sugar on top (parsing of config etc).

This required only a minor modification in the DepositionGeant4 module to allow daughter classes to overwrite the method configuring and setting the ActionInitialization class without touching (and therefore re-writing) the rest of the Geant4 initialization.

We have in already

  • multithreading, we hook up to the event-seeded G4 PRNGs and the CRY instances are independent
  • automatic calculation of surface area required for simulation (inferring this from the total size of the setup via GeometryManager)
  • Checking for correct altitude levels, only three are available

We need

  • Testing (as in: does it work and make sense?)
  • Tests (as in CI tests)
  • Exclude CRY library from linting
  • particle time / event time should start at 0 with subsequent particles coming later
  • take care of absolute time information - total simulated time interesting for normalization, but have to combine form different threads...?
  • fetch tabulated reference data files during build using CMake's ExternalData module

I decided to place CRY as an in-source dependency since there does not seem to be any CVS, or at least no publicly accessible one. This comes with the downside that currently the linting and formatting tools also run at those sources (and therefore fail). I'll see if I can simply exclude that directory. Reference for CRY here: https://nuclear.llnl.gov/simulation/

Edited by Simon Spannagel

Merge request reports