Produces discriminated optical waveforms. More...
Classes | |
struct | Config |
Public Types | |
using | TriggerGateData_t = icarus::trigger::OpticalTriggerGate::GateData_t |
The type of data produced for a single channel. More... | |
using | Parameters = art::EDProducer::Table< Config > |
Public Member Functions | |
DiscriminatePMTwaveforms (Parameters const &config) | |
DiscriminatePMTwaveforms (DiscriminatePMTwaveforms const &)=delete | |
DiscriminatePMTwaveforms (DiscriminatePMTwaveforms &&)=delete | |
DiscriminatePMTwaveforms & | operator= (DiscriminatePMTwaveforms const &)=delete |
DiscriminatePMTwaveforms & | operator= (DiscriminatePMTwaveforms &&)=delete |
virtual void | produce (art::Event &event) override |
Creates the data products. More... | |
Private Member Functions | |
icarus::trigger::TriggerGateBuilder::TriggerGates::GateData_t | fillChannelGaps (icarus::trigger::TriggerGateBuilder::TriggerGates::GateData_t gates) const |
Creates a collection with one gate per channel and no gaps. More... | |
Static Private Member Functions | |
static unsigned int | getNOpDetChannels (fhicl::OptionalAtom< unsigned int > const ¶m) |
Fetches the optical detector count from geometry unless in param . More... | |
Private Attributes | |
art::InputTag const | fOpDetWaveformTag |
Input optical waveform tag. More... | |
std::optional< art::InputTag > const | fBaselineTag |
std::optional< float > const | fBaseline |
A constant baseline level. More... | |
unsigned int const | fNOpDetChannels |
Number of optical detector channels. More... | |
std::map < icarus::trigger::ADCCounts_t, std::string > | fSelectedThresholds |
Thresholds selected for saving, and their instance name. More... | |
bool const | fSavePMTcoverage |
Whether to save also sbn::OpDetWaveformMeta . More... | |
std::string const | fLogCategory |
Category name for the console output stream. More... | |
std::unique_ptr < icarus::trigger::TriggerGateBuilder > | fTriggerGateBuilder |
Algorithms to simulate trigger gates out of optical channel output. More... | |
Produces discriminated optical waveforms.
This module produces a "discriminated waveform" for each optical detector channel and for each configured threshold, via an algorithm of the class of icarus::trigger::TriggerGateBuilder
(TriggerGateBuilder
configuration parameter).
Thresholds are ultimately chosen by the tool in charge of actually run the discrimination algorithm. Out of the thresholds that this algorithm produces, it is possible to choose only a subset of them (SelectThresholds
).
std::vector<sbn::OpDetWaveformMeta>
parallel to the input optical detector waveforms, if SavePMTcoverage
parameter is set; each entry in the collection is matched with the corresponding one in the input waveform collection; an association art::Assns<sbn::OpDetWaveformMeta, raw::OpDetWaveform>
is also produced."70"
):std::vector<icarus::trigger::OpticalTriggerGate::GateData_t>
, with one entry per optical channel, including all optical channels (even when no signal above threshold is ever present); each gate object has as index in the vector the number of the optical channel;art::Assns<icarus::trigger::OpticalTriggerGate::GateData_t, raw::OpDetWaveform>
; similarly, if SavePMTcoverage
parameter was set, also an association art::Assns<icarus::trigger::OpticalTriggerGate::GateData_t, sbn::OpDetWaveformMeta>
is produced.std::vector<raw::OpDetWaveform>
: a single waveform for each recorded optical detector activity; the activity belongs to a single channel, but there may be multiple waveforms on the same channel. The time stamp is expected to be from the electronics time scale and therefore expressed in microseconds.The following services are required:
detinfo::DetectorClocksService
A terse description of the parameters is printed by running lar --print-description DiscriminatePMTwaveforms
.
OpticalWaveforms
(input tag): the data product containing all optical detector waveformsBaselines
(input tag): the data product containing one baseline per waveform in data product (from OpticalWaveforms
)TriggerGateBuilder
(tool configuration): configuration of the art tool used to discriminate the optional waveforms; the tool interface is icarus::trigger::TriggerGateBuilder
.SavePMTcoverage
(flag, default: true
): also produces a collection of sbn::OpDetWaveformMeta
representing each of the input waveforms; trigger tools can use this information in place for the more space-hungry waveforms for further processing.OutputCategory
(string, default: "DiscriminatePMTwaveforms"
): label for the category of messages in the console output; this is the label that can be used for filtering messages via MessageFacility service configuration.SelectThresholds
(sequence of ADC thresholds): if specified, only the waveforms discriminated with the thresholds in this list will be saved by the module; if not specified, all the thresholds produced by the algorithm will be saved. Definition at line 151 of file DiscriminatePMTwaveforms_module.cc.
using icarus::trigger::DiscriminatePMTwaveforms::Parameters = art::EDProducer::Table<Config> |
Definition at line 211 of file DiscriminatePMTwaveforms_module.cc.
using icarus::trigger::DiscriminatePMTwaveforms::TriggerGateData_t = icarus::trigger::OpticalTriggerGate::GateData_t |
The type of data produced for a single channel.
Definition at line 156 of file DiscriminatePMTwaveforms_module.cc.
|
explicit |
Definition at line 304 of file DiscriminatePMTwaveforms_module.cc.
|
delete |
|
delete |
|
private |
Creates a collection with one gate per channel and no gaps.
gates | the trigger gates to be put in the collection |
The returned collection includes one gate per channel, and at least fNOpDetChannels
channels (more if there are channels with higher number than that). For each channel, a gate is set in the item of the collection with index the channel ID (i.e. the first gate in the collection will be the one for channel 0
, the next the one for channel 1
and so on). It is assumed that there is only at most one gate per channel. The gates
specified in the argument are moved to the proper item in the returned collection. The other gates are assigned the proper channel number but are closed gates and associated with no waveform.
Definition at line 572 of file DiscriminatePMTwaveforms_module.cc.
|
staticprivate |
Fetches the optical detector count from geometry unless in param
.
Definition at line 619 of file DiscriminatePMTwaveforms_module.cc.
|
delete |
|
delete |
|
overridevirtual |
Creates the data products.
Definition at line 395 of file DiscriminatePMTwaveforms_module.cc.
|
private |
A constant baseline level.
Definition at line 244 of file DiscriminatePMTwaveforms_module.cc.
|
private |
Definition at line 242 of file DiscriminatePMTwaveforms_module.cc.
|
private |
Category name for the console output stream.
Definition at line 253 of file DiscriminatePMTwaveforms_module.cc.
|
private |
Number of optical detector channels.
Definition at line 246 of file DiscriminatePMTwaveforms_module.cc.
|
private |
Input optical waveform tag.
Input waveform baseline tag.
Definition at line 239 of file DiscriminatePMTwaveforms_module.cc.
|
private |
Whether to save also sbn::OpDetWaveformMeta
.
Definition at line 251 of file DiscriminatePMTwaveforms_module.cc.
|
private |
Thresholds selected for saving, and their instance name.
Definition at line 249 of file DiscriminatePMTwaveforms_module.cc.
|
private |
Algorithms to simulate trigger gates out of optical channel output.
Definition at line 266 of file DiscriminatePMTwaveforms_module.cc.