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.
1.8.5