Creates a CustomPulseFunction
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 | |
CustomPulseFunctionTool (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 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... | |
Private Attributes | |
std::unique_ptr< PulseFunction_t > | fPulseFunction |
Function stored while waiting to be delivered. More... | |
Creates a CustomPulseFunction
pulse shape.
This tool creates a icarus::opdet::CustomPulseFunction<nanosecond>
function to describe an arbitrary pulse shape.
See icarus::opdet::CustomPulseFunction
for the details of the function.
Run lar --print-description CustomPulseFunctionTool
(or read Config
data structure) for a short explanation of the meaning of the parameters.
[A] * exp(-0.5*((x - [mu])/(sqrt2*[sigma]))**2)
is an extended way to describe a Gaussian pulse; the syntax is mostly C++ with a few ROOT extensions (see ROOT 6 TFormula
documentation); x
variable represents the time in nanoseconds, with x = 0
the time of emission of the photoelectron;ShapeFormula
and it can use any of the parameters in ShapeFormula
, but no extra parameters and with no variable, for example [mu]
for the Gaussian pulse peak; or it can be a time, for example 55.1 ns
;mu: 55.1 sigma: 2.4 A: -10.1
sets the parameters of the Gaussian shape in the previous example. This parameter must contain one entry for each parameter in ShapeFormula
and no extra values; if ShapeFormula
has no parameters, the Parameters
table can be omitted.Parameters
specification, the names of the parameters need to be simple (e.g. [mu]
rather than [mu]
). Definition at line 77 of file CustomPulseFunctionTool_tool.cc.
using icarus::opdet::CustomPulseFunctionTool::Parameters = art::ToolConfigTable<Config> |
Tool parameter configuration.
Definition at line 106 of file CustomPulseFunctionTool_tool.cc.
|
inline |
Constructor: sets the configuration.
Definition at line 109 of file CustomPulseFunctionTool_tool.cc.
|
inlineoverrideprivatevirtual |
Returns the function that was created at construction time.
Implements icarus::opdet::SinglePhotonPulseFunctionTool.
Definition at line 118 of file CustomPulseFunctionTool_tool.cc.
|
staticprivate |
Creates and returns a pulse function with the specified configuration.
Definition at line 139 of file CustomPulseFunctionTool_tool.cc.
|
private |
Function stored while waiting to be delivered.
Definition at line 124 of file CustomPulseFunctionTool_tool.cc.