Celeritas 0.7+28f01d9
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
 
using VecReal3 = std::vector< Real3 >
 

Public Member Functions

 LarStandaloneRunner (Input &&, VecReal3 const &det_coords)
 Construct with problem setup and detector ID coordinates.
 
 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 .

Constructor & Destructor Documentation

◆ LarStandaloneRunner()

celeritas::LarStandaloneRunner::LarStandaloneRunner ( Input &&  i,
VecReal3 const det_coords 
)

Construct with problem setup and detector ID coordinates.

The detector "channels" (coordinates) should be input as a vector.

Member Function Documentation

◆ operator()()

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

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: