Celeritas 0.7.0-dev.356+develop.6a0c715
Loading...
Searching...
No Matches
Public Member Functions | List of all members
celeritas::LarStandaloneRunner Class Reference

Setup and run a standalone optical simulation. More...

#include <LarStandaloneRunner.hh>

Public Types

Type aliases
using VecSED = std::vector< sim::SimEnergyDeposit >
 
using VecBTR = std::vector< sim::OpDetBacktrackerRecord >
 
using Input = inp::OpticalStandaloneInput
 

Public Member Functions

 LarStandaloneRunner (Input &&)
 Construct with input parameters.
 
 LarStandaloneRunner (LarStandaloneRunner const &)=delete
 
LarStandaloneRunneroperator= (LarStandaloneRunner const &)=delete
 
 LarStandaloneRunner (LarStandaloneRunner &&)=default
 
LarStandaloneRunneroperator= (LarStandaloneRunner &&)=default
 
VecBTR operator() (VecSED const &edep)
 Run scintillation optical photons from a single set of energy steps.
 

Detailed Description

Setup and run a standalone optical simulation.

This class manages the interface between LArSoft data objects and Celeritas. It is separated from the PDFullSimCeler plugin to allow testing and extension to future plugin frameworks (e.g., Phlex). Instantiating the class sets up Celeritas shared and state objects using an input configuration, and each call take a set of energy deposition steps and returns a vector of detector hits.

The implementation of this class will set up a standalone celeritas optical simulation using internal Celeritas code to extra hits and "backtracker" data. Conversion between Celeritas objects and the LArSoft data model happens in this class inside the "call" operator.

Since LArSoft is single-threaded, this runner uses only a single "stream". We can in theory enable OpenMP to support parallelism across multiple CPUs in a single-process execution.

Construction
See celeritas::inp::LarStandaloneRunner .

Member Function Documentation

◆ operator()()

auto celeritas::LarStandaloneRunner::operator() ( VecSED const sed)

Run scintillation optical photons from a single set of energy steps.

The optical material is determined in Celeritas when the tracks are initialized from the pre-step position.

Todo:
With Cherenkov enabled we would need to determine the incident particle's charge and the pre- and post-step speed.
Todo:
For neutral particles, set this to 0 (LED at post-step point)

The documentation for this class was generated from the following files: