|
Celeritas 0.7.0-dev.264+develop.12c52268
|
Abstract interface for optical propagation. More...
#include <IOpticalPropagation.h>

Public Types | |
Type aliases | |
| using | VecSED = std::vector< sim::SimEnergyDeposit > |
| using | UPVecBTR = std::unique_ptr< std::vector< sim::OpDetBacktrackerRecord > > |
Public Member Functions | |
| virtual void | beginJob ()=0 |
| virtual UPVecBTR | executeEvent (VecSED const &edeps)=0 |
| virtual void | endJob ()=0 |
Abstract interface for optical propagation.
This interface allows the addition of different optical photon propagation tools. As an art::tool, the executeEvent function is called once during a art::EDProducer::produce module execution, and uses all sim::SimEnergyDeposits from an art::Event found by the art::Handle .
I.e. a single executeEvent function call propagates all resulting optical photons from the existing batch of energy depositions on an event-by-event basis. It is currently expected to manage 3 methods:
PDFastSimPAR : already available in larsimCeleritas : Full optical particle transport on CPU and GPUOpticks : Full optical particle transport on Nvidia GPUsThe interfaces takes a vector of sim::SimEnergyDeposit as input and produces a vector of sim::OpDetBacktrackerRecord from detector hits.
|
pure virtual |
Implemented in celeritas::LarCelerStandalone.
|
pure virtual |
Implemented in celeritas::LarCelerStandalone.
|
pure virtual |
Implemented in celeritas::LarCelerStandalone.