|
| LightSource (fhicl::ParameterSet const &pset) |
|
void | produce (art::Event &evt) |
|
void | beginRun (art::Run &run) |
|
| EDProducer (fhicl::ParameterSet const &pset) |
|
template<typename Config > |
| EDProducer (Table< Config > const &config) |
|
std::string | workerType () const |
|
virtual | ~Producer () noexcept |
|
| Producer (fhicl::ParameterSet const &) |
|
| Producer (Producer const &)=delete |
|
| Producer (Producer &&)=delete |
|
Producer & | operator= (Producer const &)=delete |
|
Producer & | operator= (Producer &&)=delete |
|
void | doBeginJob (SharedResources const &resources) |
|
void | doEndJob () |
|
void | doRespondToOpenInputFile (FileBlock const &fb) |
|
void | doRespondToCloseInputFile (FileBlock const &fb) |
|
void | doRespondToOpenOutputFiles (FileBlock const &fb) |
|
void | doRespondToCloseOutputFiles (FileBlock const &fb) |
|
bool | doBeginRun (RunPrincipal &rp, ModuleContext const &mc) |
|
bool | doEndRun (RunPrincipal &rp, ModuleContext const &mc) |
|
bool | doBeginSubRun (SubRunPrincipal &srp, ModuleContext const &mc) |
|
bool | doEndSubRun (SubRunPrincipal &srp, ModuleContext const &mc) |
|
bool | doEvent (EventPrincipal &ep, ModuleContext const &mc, std::atomic< std::size_t > &counts_run, std::atomic< std::size_t > &counts_passed, std::atomic< std::size_t > &counts_failed) |
|
| ~Modifier () noexcept |
|
| Modifier () |
|
| Modifier (Modifier const &)=delete |
|
| Modifier (Modifier &&)=delete |
|
Modifier & | operator= (Modifier const &)=delete |
|
Modifier & | operator= (Modifier &&)=delete |
|
virtual | ~ModuleBase () noexcept |
|
| ModuleBase () |
|
ModuleDescription const & | moduleDescription () const |
|
void | setModuleDescription (ModuleDescription const &) |
|
std::array< std::vector< ProductInfo >, NumBranchTypes > const & | getConsumables () const |
|
void | sortConsumables (std::string const ¤t_process_name) |
|
template<typename T , BranchType BT> |
ViewToken< T > | consumesView (InputTag const &tag) |
|
template<typename T , BranchType BT> |
ViewToken< T > | mayConsumeView (InputTag const &tag) |
|
|
using | ModuleType = EDProducer |
|
using | WorkerType = WorkerT< EDProducer > |
|
template<typename UserConfig , typename KeysToIgnore = void> |
using | Table = Modifier::Table< UserConfig, KeysToIgnore > |
|
template<typename UserConfig , typename UserKeysToIgnore = void> |
using | Table = ProducerTable< UserConfig, detail::ModuleConfig, UserKeysToIgnore > |
|
static void | commitEvent (EventPrincipal &ep, Event &e) |
|
ConsumesCollector & | consumesCollector () |
|
template<typename T , BranchType = InEvent> |
ProductToken< T > | consumes (InputTag const &) |
|
template<typename Element , BranchType = InEvent> |
ViewToken< Element > | consumesView (InputTag const &) |
|
template<typename T , BranchType = InEvent> |
void | consumesMany () |
|
template<typename T , BranchType = InEvent> |
ProductToken< T > | mayConsume (InputTag const &) |
|
template<typename Element , BranchType = InEvent> |
ViewToken< Element > | mayConsumeView (InputTag const &) |
|
template<typename T , BranchType = InEvent> |
void | mayConsumeMany () |
|
A module for optical MC testing and library building.
Light source event generator which simulate an extended isotropic photon source.
The light source can be run in two modes, file mode or scan mode. Each requires the specification of a different set of parameters.
File mode
Light source position, intensity and shape are supplied on an event by event basis in a text file. See the example provided for the format. Pararmeters required:
int32 SourceMode = 0 - sets light source to file mode
string FileName - file of per event light source specifications
int32 PosDist - how to distribute production points sampled in momentum, position
int32 PDist and time ranges specified. For all of these :
int32 TDist 0 = uniform and 1 = gauss
bool FillTree - whether to write a tree of photon production points to fileservice
Upon reaching the end of the file, the light source will loop back to the first point. hence a one line text file will give a constant light source size, position and intensity.
Scan mode
Divide volume into cuboidal regions and produce an isotropic light source in each, using one region per event. User can specify either to use the full detector volume or some custom specified volume.
This mode is used when building a fast photon sim library, and performing volume scan sensitivity studies.
int32 SourceMode = 1 - sets light source to scan mode
int32 N - number of photons to shoot from each point
double P - peak photon momentum (or energy) in eV
double SigmaP - momentum distribution width
double XSteps - Number of regions to divide volume into in each direction
double YSteps
double ZSteps
double T0 - Peak time of photon production
double SigmaT - time distribution width
int32 PosDist - how to distribute production points sampled in momentum, position
int32 PDist and time ranges specified. For all of these :
int32 TDist 0 = uniform and 1 = gaussian
bool FillTree - whether to write a tree of photon production points to fileservice
bool UseCustomRegion - supply our own volume specification or use the full detector volume?
vdouble[3] RegionMin - bounding corners of the custom volume specification
vdouble[3] RegionMax (only used if UseCustomRegion=true)
Configuration parameters
This is a partial list of the supported configuration parameters:
SelectMaterials
(list of strings, default: empty): if specified, generation points are required to be in a volume with any of the materials included in this list; a useful value is SelectMaterials: [ "LAr" ]
, which generates photons only in liquid argon; the rest of the constraints are also respected (that means that if the configured generation volume has none of the selected materials, generation can go on forever: see NMaxFactor
configuration parameter)
NMaxFactor
(real value, default: 100 times N
): as a safety valve, do not attempt more than this times the requested number of photons: for example, in an event where 500 photons are required, with NMax: 20
no more than 10000 generations will be attempted; this is useful if the generation volume efficiency can't be guaranteed to be high (e.g. if only generation in liquid argon is requested in a generation volume that is entirely made of steel).
Definition at line 129 of file LightSource_module.cc.