Simulates the digitization of ICARUS PMT response and trigger.
The module is a simple interface to the simulation algorithm, icarus::opdet::PMTsimulationAlg
.
Configuration
All the configuration parameters are passed directly to the icarus::opdet::PMTsimulationAlg
algorithm, with the following exceptions:
- InputModule (input tag): tag of the data product containing the
sim::SimPhotons
collection to be digitized;
- SinglePhotonResponse (configuration table): configuration of the art tool delivering the single photon response function (see below);
- EfficiencySeed, DarkNoiseSeed and ElectronicsNoiseSeed (integers, optional): if specified, each number is used to seed the pertaining random engine; otherwise, the seed is assigned by
NuRandomService
;
- ElectronicsNoiseRandomEngine and DarkNoiseRandomEngine (strings, default:
HepJamesRandom
): name of the random number generation algorithm to use; valid values are all the ones supported by art::RandomNumberGenerator
(which match the random engine classes derived from clhep::HepRandomEngine
in CLHEP 2.3 except NonRandomEngine
and RandEngine
);
- WritePhotons (boolean, default:
false
): saves in an additional sim::SimPhotons
collection the photons effectively contributing to the waveforms; currently, no selection ever happens and all photons are contributing, making this collection the same as the input one.
See the documentation of icarus::PMTsimulationAlg
for the purpose of the three random number engines.
Currently, no configuration interface is provided to directly control their seeds, which is delegated to rndm::NuRandomService
service.
Input
The module utilizes as input a collection of sim::SimPhotons
, each containing the photons propagated to a single optical detector channel.
Output
A collection of optical detector waveforms (std::vector<raw::OpDetWaveform>
) is produced. See icarus::opdet::PMTsimulationAlg
algorithm documentation for details.
If WritePhotons
configuration parameter is set true
, a collection of the scintillation photons (std::vector<sim::SimPhotons>
) which contributed to the waveforms is also produced.
Requirements
This module currently requires LArSoft services:
DetectorClocksService
for timing conversions and settings
LArPropertiesService
for the scintillation yield(s)
Three random streams are also used.
Single photon response function tool
The single photon response function passed to the underlying algorithm, icarus::opdet::PMTsimulationAlg
, is extracted from an art tool. The specifications of the tool are:
- the art tool class must implement the
icarus::opdet::SinglePhotonPulseFunctionTool
interface;
- the resulting function describes the signal as digitized by the PMT readout;
- the function must therefore express the level of the response as digitized ADC count above the baseline; this level is negative if the signal polarity is negative;
- the time scale of this function has
0
as the photoelectron production time.
These requirements imply that the tool (or the underlying function) must include electronics effects like the the time it takes to form the signal, the signal shape at PMT output, the delay and distortion of the cables and the ones of the digitization electronics, but the baseline is assumed flat at 0.
Definition at line 144 of file SimPMTIcarus_module.cc.