|
Celeritas 0.7.0-dev.245+develop.a7be925e
|
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::LarStandaloneRunner |
Public Member Functions | |
| LarStandaloneRunner (Input const &) | |
| Construct with input parameters. | |
| LarStandaloneRunner (LarStandaloneRunner const &)=delete | |
| LarStandaloneRunner & | operator= (LarStandaloneRunner const &)=delete |
| LarStandaloneRunner (LarStandaloneRunner &&)=default | |
| LarStandaloneRunner & | operator= (LarStandaloneRunner &&)=default |
| VecBTR | operator() (VecSED const &edep) |
| Run optical photons from a single set of energy steps. | |
Setup and run a standalone optical simulation.
This class manages the interface between LArSoft data objects and Celeritas. It is separated from the LarCelerStandalone 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.
celeritas::inp::LarStandaloneRunner .