Creates a SampledWaveformFunction
pulse shape.
More...
Classes | |
struct | Config |
Configuration parameters. More... | |
Public Types | |
using | Parameters = art::ToolConfigTable< Config > |
Tool parameter configuration. More... | |
Public Types inherited from icarus::opdet::SinglePhotonPulseFunctionTool | |
using | nanoseconds = util::quantities::nanosecond |
Convenience definition for time stored in nanoseconds. More... | |
using | PulseFunction_t = icarus::opdet::PhotoelectronPulseFunction< nanoseconds > |
Type of function returned. More... | |
Public Member Functions | |
SampledWaveformFunctionTool (Parameters const &config) | |
Constructor: sets the configuration. More... | |
Public Member Functions inherited from icarus::opdet::SinglePhotonPulseFunctionTool | |
virtual | ~SinglePhotonPulseFunctionTool ()=default |
std::unique_ptr< PulseFunction_t > | getPulseFunction () |
Returns an instance of the pulse function. More... | |
Private Types | |
using | MyFunction_t = icarus::opdet::SampledWaveformFunction< nanoseconds > |
The actual function type we offer. More... | |
Private Member Functions | |
virtual std::unique_ptr < PulseFunction_t > | doGetPulseFunction () override |
Returns the function that was created at construction time. More... | |
Static Private Member Functions | |
static std::unique_ptr < PulseFunction_t > | makePulseFunction (Config const &config) |
Creates and returns a pulse function with the specified configuration. More... | |
static MyFunction_t::WaveformSpecs_t | extractWaveformSpecification (std::string const &path) |
Parses the specified file and returns the information on the SPR waveform. More... | |
Private Attributes | |
std::unique_ptr< PulseFunction_t > | fPulseFunction |
Function stored while waiting to be delivered. More... | |
Creates a SampledWaveformFunction
pulse shape.
This tool creates a icarus::opdet::SampledWaveformFunction<nanosecond>
function to describe a R5912 PMT pulse attached to the ICARUS detector.
See icarus::opdet::SampledWaveformFunction
for the details of the function.
The response must be described in a plain text file following the syntax from icarus::details::KeyValueParser
. The following fields are supported:
"FileFormat"
(integer, implied: 1
) represents the version of the data format, i.e. the list of the supported fields and their meaning. Currently it's only a formal parameter, which is ignored."Name"
(string): short name identifying this response"Description"
(string): the description of this response; may be long and spanning multiple lines (always adhering icarus::details::KeyValueParser
syntax)"Date"
(string): the date of this response; free-form."Version"
(positive integer): the version of this response; it may describe updates for the same response Name
."Tick"
(time quantity string, mandatory): the duration of one tick in the response sampling, in time quantity format (e.g. "2 ns"
or "0.4 us")."Gain"
(real number): the PMT gain associated to this response. If provided, it will allow rescaling to different gains."Samples"
(sequence of samples in mV, mandatory): values of the samples in the response, one per tick. No reference time is needed (the algorithms will look for the peak sample to be used as reference time)."NSamples"
(positive integer): the number of samples in the Samples
array; used to validate the input.Run lar --print-description SampledWaveformFunctionTool
(or read Config
data structure) for a short explanation of the meaning of the parameters.
TransitTime
(time, mandatory): time from the arrival of a photoelectron to the surface of the photodetector to the peak of the signal that the photodetector produces. It must include the unit (e.g. "51.5 ns"
).WaveformData
(path, mandatory): path to the file with the complete information about the single photoelectron response. The file is searched for in FW_SEARCH_PATH
pathGain
(real, optional): if specified, the input must provide the nominal gain of the response, and that response will be rescaled from its gain value to the one specified with this parameter. If not specified, the response is used as is. Definition at line 97 of file SampledWaveformFunctionTool_tool.cc.
|
private |
The actual function type we offer.
Definition at line 136 of file SampledWaveformFunctionTool_tool.cc.
using icarus::opdet::SampledWaveformFunctionTool::Parameters = art::ToolConfigTable<Config> |
Tool parameter configuration.
Definition at line 126 of file SampledWaveformFunctionTool_tool.cc.
|
inline |
Constructor: sets the configuration.
Definition at line 129 of file SampledWaveformFunctionTool_tool.cc.
|
inlineoverrideprivatevirtual |
Returns the function that was created at construction time.
Implements icarus::opdet::SinglePhotonPulseFunctionTool.
Definition at line 142 of file SampledWaveformFunctionTool_tool.cc.
|
staticprivate |
Parses the specified file and returns the information on the SPR waveform.
Definition at line 167 of file SampledWaveformFunctionTool_tool.cc.
|
staticprivate |
Creates and returns a pulse function with the specified configuration.
Definition at line 316 of file SampledWaveformFunctionTool_tool.cc.
|
private |
Function stored while waiting to be delivered.
Definition at line 148 of file SampledWaveformFunctionTool_tool.cc.