All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
icarus::TriggerConfigurationExtractor Class Reference

Class to extract PMT readout board configuration. More...

#include <TriggerConfigurationExtractor.h>

Inheritance diagram for icarus::TriggerConfigurationExtractor:
icarus::TriggerConfigurationExtractorBase

Public Member Functions

 TriggerConfigurationExtractor (std::string const &expectedFragmentType="ICARUSTriggerUDP")
 Learns the name of the trigger fragment type. More...
 
- Public Member Functions inherited from icarus::TriggerConfigurationExtractorBase
ConfigurationData_t extract (fhicl::ParameterSet const &config) const
 Extracts all supported Trigger configuration from config. More...
 

Private Member Functions

icarus::TriggerConfiguration extractTriggerConfiguration (fhicl::ParameterSet const &pset) const
 Extracts trigger readout board configuration from pset. More...
 
std::optional
< fhicl::ParameterSet > 
readTriggerConfig (fhicl::ParameterSet const &pset, std::string const &key) const
 Returns the specified Trigger readout board configuration. More...
 
unsigned long parsePrescaleString (std::string prescaleString, std::size_t source) const
 
unsigned int parseWindowMode (std::string bitStr) const
 

Private Attributes

std::string const fExpectedFragmentType
 

Static Private Attributes

static std::vector< std::regex >
const 
ConfigurationNames { std::regex{ "icarustrigger.*" } }
 Regular expressions matching all names of supported Trigger configurations. More...
 

Interface

icarus::TriggerConfiguration extract (fhicl::ParameterSet const &config) const
 Extracts all supported Trigger configuration from config. More...
 
static bool mayHaveConfiguration (fhicl::ParameterSet const &pset)
 Returns whether pset may contain the needed configuration. More...
 
static bool isGoodConfiguration (fhicl::ParameterSet const &pset, std::string const &key)
 Returns whether the specified key of pset is a good configuration. More...
 

Additional Inherited Members

- Public Types inherited from icarus::TriggerConfigurationExtractorBase
using ConfigurationData_t = icarus::TriggerConfiguration
 
- Static Public Member Functions inherited from icarus::TriggerConfigurationExtractorBase
static fhicl::ParameterSet convertConfigurationDocuments (fhicl::ParameterSet const &container, std::string const &configListKey, std::initializer_list< std::regex const > components)
 Returns a parameter set with the content of configuration_documents key from container. More...
 
template<typename RBegin , typename REnd >
static bool matchKey (std::string const &key, RBegin rbegin, REnd rend)
 
static bool mayHaveConfiguration (fhicl::ParameterSet const &pset)
 Returns whether pset may contain the needed configuration. More...
 

Detailed Description

Class to extract PMT readout board configuration.

This is an example of PMT readout board configuration taken from ICARUS run 4774 (destinations and metrics have been omitted):

*daq: {
fragment_receiver: {
....
fpga_init_params: {
MajLevelBeamCryo1: {
name: "Majority level inside Beam Gate cryo1"
value: "5"
}
MajLevelBeamCryo2: {
name: "Majority level inside Beam Gate cryo2"
value: "5"
}
MajLevelEnableCryo1: {
name: "Majority level inside enable and outside Beam Gate cryo1"
value: "10"
}
MajLevelEnableCryo2: {
name: "Majority level inside enable and outside Beam Gate cryo2"
value: "10"
}
MajorityTriggerType: {
name: "Majority Trigger Type"
value: "majo1or2"
}
RunType: {
name: "Run type"
value: "Majority"
}
SlidingWindowCryo1: {
name: "Sliding window option cryo1"
value: "Separated Window"
}
SlidingWindowCryo2: {
name: "Sliding window option cryo2"
value: "Separated Window"
}
Veto: {
name: "Veto beam gate [ns]"
value: "4000"
}
}
....
generator: "ICARUSTriggerUDP"
....
spexi_init_params: {
BNB1DOffset: {
name: "BNB ($1D) Early Warning Offset"
value: "0"
}
BNBBESOffset: {
name: "BNB (gatedBES) Early Warning Offset"
value: "0"
}
BNBBeamWidth: {
name: "BNB Beam Gate Width [ns]"
value: "8000"
}
BNBEnableWidth: {
name: "BNB Enable Gate Width [ns]"
value: "2000000"
}
GateSelection: {
name: "Gate Selection [hex]"
value: "FF"
}
MI12Ethertype: {
name: "MI12 Ethertype"
value: "5752"
}
MI12MACAddressLSB: {
name: "MI12 MAC Address (LSB)"
value: "30E971C8"
}
MI12MACAddressMSB: {
name: "MI12 MAC Address (MSB)"
value: "0800"
}
MI60Ethertype: {
name: "MI60 Ethertype"
value: "5752"
}
MI60MACAddressLSB: {
name: "MI60 MAC Address (LSB)"
value: "30E93B4F"
}
MI60MACAddressMSB: {
name: "MI60 MAC Address (MSB)"
value: "0800"
}
NuMIADOffset: {
name: "NUMI ($AD) Early Warning Offset"
value: "0"
}
NuMIBeamWidth: {
name: "NuMI Beam Gate Width [ns]"
value: "18000"
}
NuMIEnableWidth: {
name: "NuMI Enable Gate Width [ns]"
value: "2000000"
}
NuMIMIBSOffset: {
name: "NuMI (MIBS$74) Early Warning Offset"
value: "0"
}
OffBeamBNBBeamWidth: {
name: "OffBeam-BNB Gate Width [ns]"
value: "8000"
}
OffBeamBNBEnableWidth: {
name: "OffBeam-BNB Enable Gate Width [ns]"
value: "2000000"
}
OffBeamGateRate: {
name: "OffBeam Gate Rate"
value: "00010003"
}
OffBeamNuMIBeamWidth: {
name: "OffBeam-NuMI Gate Width [ns]"
value: "18000"
}
OffBeamNuMIEnableWidth: {
name: "OffBeam-NuMI Enable Gate Width [ns]"
value: "2000000"
}
PPSWidth: {
name: "PPS Pulse Width [ns]"
value: "1000"
}
PreScaleBNBNuMI: {
name: "Prescale BNB-NuMI Number"
value: "00010001"
}
PreScaleOffBeam: {
name: "Prescale OffBeam Number"
value: "00020002"
}
PrescaleZeroBias: {
name: "Prescale ZeroBias Number"
value: "0064"
}
TPCTriggerDelay: {
name: "TPC Trigger Delay/400"
value: "3250"
}
ZeroBiasEnableWidth: {
name: "ZeroBias Enable Gate Width [ns]"
value: "2000000"
}
ZeroBiasFreq: {
name: "ZeroBias Frequency Period [ns]"
value: "1000000000"
}
ZeroBiasWidth: {
name: "ZeroBias Gate Width [ns]"
value: "1600"
}
}
use_wr_time: true
wr_time_offset_ns: 1e9
}
....
*}

Definition at line 309 of file TriggerConfigurationExtractor.h.

Constructor & Destructor Documentation

icarus::TriggerConfigurationExtractor::TriggerConfigurationExtractor ( std::string const &  expectedFragmentType = "ICARUSTriggerUDP")
inline

Learns the name of the trigger fragment type.

Definition at line 317 of file TriggerConfigurationExtractor.h.

318  : fExpectedFragmentType{ expectedFragmentType }
319  {}

Member Function Documentation

icarus::TriggerConfiguration icarus::TriggerConfigurationExtractor::extract ( fhicl::ParameterSet const &  config) const

Extracts all supported Trigger configuration from config.

Parameters
configa FHiCL parameter set with component configuration
Returns
an object with the supported Trigger configuration

All Trigger-related configuration that is known to this code is extracted and returned.

Definition at line 114 of file TriggerConfigurationExtractor.cxx.

115 {
116 
117  std::optional<icarus::TriggerConfiguration> config;
118 
119  for (std::string const& key: pset.get_names()) {
120 
121  std::optional<fhicl::ParameterSet> triggerConfigPset
122  = readTriggerConfig(pset, key);
123 
124  if (!triggerConfigPset) continue;
125 
126  std::optional triggerConfig
127  = extractTriggerConfiguration(*triggerConfigPset);
128 
129  if (config) {
130  throw cet::exception{ "TriggerConfigurationExtractor" }
131  << "Found multiple configurations for the trigger:"
132  << "\n" << std::string(80, '-') << "\n"
133  << *config
134  << "\n" << std::string(80, '-') << "\n"
135  << "and"
136  << "\n" << std::string(80, '-') << "\n"
137  << *triggerConfig
138  << "\n" << std::string(80, '-') << "\n"
139  ;
140  }
141 
142  config = std::move(triggerConfig);
143 
144  } // for
145  if (!config) {
146  throw cet::exception{ "TriggerConfigurationExtractor" }
147  << "No trigger configuration found (fragment type: '"
148  << fExpectedFragmentType << "').\n";
149  }
150 
151  return *config;
152 } // icarus::PMTconfigurationExtractor::extract()
std::optional< fhicl::ParameterSet > readTriggerConfig(fhicl::ParameterSet const &pset, std::string const &key) const
Returns the specified Trigger readout board configuration.
icarus::TriggerConfiguration extractTriggerConfiguration(fhicl::ParameterSet const &pset) const
Extracts trigger readout board configuration from pset.
auto icarus::TriggerConfigurationExtractor::extractTriggerConfiguration ( fhicl::ParameterSet const &  pset) const
private

Extracts trigger readout board configuration from pset.

Parameters
psetinformation source (FHiCL configuration)
boardNamename of the board we are given the configuration of
Returns
the requested configuration

Definition at line 157 of file TriggerConfigurationExtractor.cxx.

159 {
160 
161  auto const& triggerParams
162  = pset.get<fhicl::ParameterSet>("daq.fragment_receiver");
163 
164  auto const& fpgaParams
165  = pset.get<fhicl::ParameterSet>("daq.fragment_receiver.fpga_init_params");
166 
167  auto const& spexiParams
168  = pset.get<fhicl::ParameterSet>("daq.fragment_receiver.spexi_init_params");
169 
170  icarus::TriggerConfiguration rc; // readout config, for friends
171 
172 
173  rc.useWrTime
174  = triggerParams.get<bool>("use_wr_time");
175  rc.wrTimeOffset
176  = triggerParams.get<unsigned int>("wr_time_offset_ns");
177 
178  rc.vetoDelay
179  = fpgaParams.get<unsigned int>("Veto.value");
180 
181  rc.cryoConfig[icarus::trigger::kEast].majLevelInTime
182  = fpgaParams.get<unsigned int>("MajLevelBeamCryo1.value");
183  rc.cryoConfig[icarus::trigger::kEast].majLevelDrift
184  = fpgaParams.get<unsigned int>("MajLevelEnableCryo1.value");
185  rc.cryoConfig[icarus::trigger::kEast].slidingWindow
186  = parseWindowMode( fpgaParams.get<std::string>("SlidingWindowCryo1.value") );
187  rc.cryoConfig[icarus::trigger::kWest].majLevelInTime
188  = fpgaParams.get<unsigned int>("MajLevelBeamCryo2.value");
189  rc.cryoConfig[icarus::trigger::kWest].majLevelDrift
190  = fpgaParams.get<unsigned int>("MajLevelEnableCryo2.value");
191  rc.cryoConfig[icarus::trigger::kWest].slidingWindow
192  = parseWindowMode( fpgaParams.get<std::string>("SlidingWindowCryo2.value") );
193  rc.majorityTriggerType
194  = fpgaParams.get<std::string>( "MajorityTriggerType.value");
195  rc.runType
196  = fpgaParams.get<std::string>( "RunType.value");
197 
198  rc.tpcTriggerDelay
199  = spexiParams.get<unsigned int>("TPCTriggerDelay.value");
200 
201  auto gateSelection = sbn::bits::makeMask<sbn::gateSelection>
202  (std::stoul( spexiParams.get<std::string>("GateSelection.value"), nullptr, 16));
203 
204  // Read the prescale configuraton as string for now
205  auto prescaleMinBiasBeam =
206  spexiParams.get<std::string>("PreScaleBNBNuMI.value");
207  auto prescaleMinBiasOffBeam =
208  spexiParams.get<std::string>("PreScaleOffBeam.value");
209  auto offBeamGateRate =
210  spexiParams.get<std::string>("OffBeamGateRate.value");
211  auto prescaleMinBiasCalibration =
212  spexiParams.get<std::string>("PrescaleZeroBias.value");
213 
214  // BNB Full Config
215  rc.gateConfig[icarus::trigger::kBNB].hasGate
217  rc.gateConfig[icarus::trigger::kBNB].hasDriftGate
219  rc.gateConfig[icarus::trigger::kBNB].hasMinBiasGate
221  rc.gateConfig[icarus::trigger::kBNB].hasMinBiasDriftGate
223  rc.gateConfig[icarus::trigger::kBNB].gateWidth
224  = spexiParams.get<unsigned int>("BNBBeamWidth.value");
225  rc.gateConfig[icarus::trigger::kBNB].driftGateWidth
226  = spexiParams.get<unsigned int>("BNBEnableWidth.value");
227  rc.gateConfig[icarus::trigger::kBNB].prescaleMinBias
228  = parsePrescaleString(prescaleMinBiasBeam, icarus::trigger::kBNB);
229  rc.gateConfig[icarus::trigger::kBNB].earlyWarningOffset
230  = spexiParams.get<unsigned int>("BNBBESOffset.value");
231  rc.gateConfig[icarus::trigger::kBNB].earlyEarlyWarningOffset
232  = spexiParams.get<unsigned int>("BNB1DOffset.value");
233 
234  // OffBeamBNB config
235  rc.gateConfig[icarus::trigger::kOffBeamBNB].hasGate
237  rc.gateConfig[icarus::trigger::kOffBeamBNB].hasDriftGate
239  rc.gateConfig[icarus::trigger::kOffBeamBNB].hasMinBiasGate
241  rc.gateConfig[icarus::trigger::kOffBeamBNB].hasMinBiasDriftGate
243  rc.gateConfig[icarus::trigger::kOffBeamBNB].gateWidth
244  = spexiParams.get<unsigned int>("OffBeamBNBBeamWidth.value");
245  rc.gateConfig[icarus::trigger::kOffBeamBNB].driftGateWidth
246  = spexiParams.get<unsigned int>("OffBeamBNBEnableWidth.value");
247  rc.gateConfig[icarus::trigger::kOffBeamBNB].prescaleMinBias
248  = parsePrescaleString(prescaleMinBiasOffBeam, icarus::trigger::kOffBeamBNB);
249  rc.gateConfig[icarus::trigger::kOffBeamBNB].offBeamGateRate
251 
252  // NuMI Configuration
253  rc.gateConfig[icarus::trigger::kNuMI].hasGate
255  rc.gateConfig[icarus::trigger::kNuMI].hasDriftGate
257  rc.gateConfig[icarus::trigger::kNuMI].hasMinBiasGate
259  rc.gateConfig[icarus::trigger::kNuMI].hasMinBiasDriftGate
261  rc.gateConfig[icarus::trigger::kNuMI].gateWidth
262  = spexiParams.get<unsigned int>("NuMIBeamWidth.value");
263  rc.gateConfig[icarus::trigger::kNuMI].driftGateWidth
264  = spexiParams.get<unsigned int>("NuMIEnableWidth.value");
265  rc.gateConfig[icarus::trigger::kNuMI].prescaleMinBias
266  = parsePrescaleString(prescaleMinBiasBeam, icarus::trigger::kNuMI);
267  rc.gateConfig[icarus::trigger::kNuMI].earlyWarningOffset
268  = spexiParams.get<unsigned int>("NuMIMIBSOffset.value");
269  rc.gateConfig[icarus::trigger::kNuMI].earlyEarlyWarningOffset
270  = spexiParams.get<unsigned int>("NuMIADOffset.value");
271 
272  // OffbeamNuMI config
273  rc.gateConfig[icarus::trigger::kOffBeamNuMI].hasGate
275  rc.gateConfig[icarus::trigger::kOffBeamNuMI].hasDriftGate
277  rc.gateConfig[icarus::trigger::kOffBeamNuMI].hasMinBiasGate
279  rc.gateConfig[icarus::trigger::kOffBeamNuMI].hasMinBiasDriftGate
281  rc.gateConfig[icarus::trigger::kOffBeamNuMI].gateWidth
282  = spexiParams.get<unsigned int>("OffBeamNuMIBeamWidth.value");
283  rc.gateConfig[icarus::trigger::kOffBeamNuMI].driftGateWidth
284  = spexiParams.get<unsigned int>("OffBeamNuMIEnableWidth.value");
285  rc.gateConfig[icarus::trigger::kOffBeamNuMI].prescaleMinBias
286  = parsePrescaleString(prescaleMinBiasOffBeam, icarus::trigger::kOffBeamNuMI);
287  rc.gateConfig[icarus::trigger::kOffBeamNuMI].offBeamGateRate
289 
290  // Calibration configuration
291  rc.gateConfig[icarus::trigger::kCalibration].hasGate
293  rc.gateConfig[icarus::trigger::kCalibration].hasDriftGate
295  rc.gateConfig[icarus::trigger::kCalibration].hasMinBiasGate
297  rc.gateConfig[icarus::trigger::kCalibration].hasMinBiasDriftGate
299  rc.gateConfig[icarus::trigger::kCalibration].gateWidth
300  = spexiParams.get<unsigned int>("ZeroBiasWidth.value");
301  rc.gateConfig[icarus::trigger::kCalibration].driftGateWidth
302  = spexiParams.get<unsigned int>("ZeroBiasEnableWidth.value");
303  rc.gateConfig[icarus::trigger::kCalibration].prescaleMinBias
304  = parsePrescaleString( prescaleMinBiasCalibration, icarus::trigger::kCalibration );
305  rc.gateConfig[icarus::trigger::kCalibration].period
306  = spexiParams.get<unsigned int>("ZeroBiasFreq.value"); //it is actually a period
307 
308  return rc;
309 
310 } // icarus::TriggerConfigurationExtractor::extractTriggerConfiguration()
static constexpr std::size_t kOffBeamNuMI
Definition: BeamBits.h:370
static constexpr std::size_t kWest
Definition: BeamBits.h:364
Enabke MinBias triggers for the Offbeam BNB stream.
Enable MinBias triggers for the Calibration stream.
constexpr bool hasBitSet(mask_t< EnumType > bitMask, EnumType bit)
Returns whether the specified bit is set in bitMask.
Definition: BeamBits.h:232
Enable Offbeam drift gate NuMI (for light out-of-time in offbeam gates)
gateSelection
Enabled gates in the trigger configuration. See register 0X00050008 in docdb SBN-doc-23778-v1.
Definition: BeamBits.h:149
static constexpr std::size_t kBNB
Definition: BeamBits.h:367
Enable NuMI early warning signal (MIBS$74) to open NuMI gates.
Enable light out-of-time for MinBias triggers in NuMI stream.
Enable light out-of-time for MinBias triggers in BNB stream.
Enable light out-of-time for MinBias triggers in Offbeam NuMI stream.
static constexpr std::size_t kCalibration
Definition: BeamBits.h:371
Enable MinBias triggers for the Offbeam NuMI stream.
Enable Offbeam gate for BNB.
static constexpr std::size_t kNuMI
Definition: BeamBits.h:368
unsigned long parsePrescaleString(std::string prescaleString, std::size_t source) const
Enable Offbeam drift gate BNB (for light out-of-time in offbeam gates)
unsigned int parseWindowMode(std::string bitStr) const
Enable MinBias triggers for the BNB stream.
Enable Calibration drift gate (for light out-of-time in calibration gates)
static constexpr std::size_t kOffBeamBNB
Definition: BeamBits.h:369
Enable Offbeam gate for NuMI.
Enable BNB early-early warning signal ($1D) for light out-of-time in BNB gates.
Enable receiving NuMI early-early warning signal ($AD) for light out-of-time in NuMI gates...
Enable MinBias triggers for the NuMI stream.
static constexpr std::size_t kEast
Definition: BeamBits.h:363
Enable receiving BNB early warning signal (gatedBES) to open BNB gates.
Enable light out-of-time for MinBias triggers in Calibration stream.
Enable light out-of-time for MinBias triggers in Offbeam BNB stream.
bool icarus::TriggerConfigurationExtractor::isGoodConfiguration ( fhicl::ParameterSet const &  pset,
std::string const &  key 
)
static

Returns whether the specified key of pset is a good configuration.

Definition at line 68 of file TriggerConfigurationExtractor.cxx.

69 {
70  return matchKey(key, ConfigurationNames.begin(), ConfigurationNames.end());
71 } // icarus::PMTconfigurationExtractor::isGoodConfiguration()
static bool matchKey(std::string const &key, RBegin rbegin, REnd rend)
static std::vector< std::regex > const ConfigurationNames
Regular expressions matching all names of supported Trigger configurations.
static bool icarus::TriggerConfigurationExtractor::mayHaveConfiguration ( fhicl::ParameterSet const &  pset)
inlinestatic

Returns whether pset may contain the needed configuration.

Definition at line 326 of file TriggerConfigurationExtractor.h.

327  { return pset.has_key("configuration_documents"); }
unsigned long icarus::TriggerConfigurationExtractor::parsePrescaleString ( std::string  prescaleString,
std::size_t  source 
) const
private

Definition at line 76 of file TriggerConfigurationExtractor.cxx.

77 {
78 
79  /*
80  * The prescale strings represents the hex econding of a 32-bit number
81  * The first, least significative 16-bit word is the prescale associated
82  * to BNB, while the most significative 16-bits are associated to NuMI.
83  * if the word has only 16-bits (4 character string) then it is the
84  * prescale associated to the calibration gate
85  */
86 
87  using namespace std::string_literals;
88  switch( source ){
89  case icarus::trigger::kBNB: return std::stoul( prescaleString.substr(4,8), nullptr, 16);
90  case icarus::trigger::kNuMI: return std::stoul( prescaleString.substr(0,4), nullptr, 16);
91  case icarus::trigger::kOffBeamBNB: return std::stoul( prescaleString.substr(4,8), nullptr, 16);
92  case icarus::trigger::kOffBeamNuMI: return std::stoul( prescaleString.substr(0,4), nullptr, 16);
93  case icarus::trigger::kCalibration: return std::stoul( prescaleString, nullptr ,16);
94  }
95  throw std::runtime_error(" icarus::TriggerConfigurationExtractor::parsePrescaleString triggerSource{"s
96  + std::to_string(source) + "}): unknown value"s);
97 
98 }
static constexpr std::size_t kOffBeamNuMI
Definition: BeamBits.h:370
do source
static constexpr std::size_t kBNB
Definition: BeamBits.h:367
static constexpr std::size_t kCalibration
Definition: BeamBits.h:371
static constexpr std::size_t kNuMI
Definition: BeamBits.h:368
std::string to_string(WindowPattern const &pattern)
then echo File list $list not found else cat $list while read file do echo $file sed s
Definition: file_to_url.sh:60
static constexpr std::size_t kOffBeamBNB
Definition: BeamBits.h:369
unsigned int icarus::TriggerConfigurationExtractor::parseWindowMode ( std::string  bitStr) const
private

Definition at line 102 of file TriggerConfigurationExtractor.cxx.

102  {
103  for (unsigned int bitValue = 0; bitValue < value(sbn::bits::triggerWindowMode::NBits); ++bitValue) {
104  auto const bit = static_cast<sbn::bits::triggerWindowMode>(bitValue);
105  if (bitStr == bitName(bit)) return bitValue;
106  }
107  throw cet::exception{ "TriggerConfigurationExtractor" }
108  << "Trigger window mode '" << bitStr << "' is not known.\n";
109 }
Number of bits currently supported.
triggerWindowMode
Trigger window mode.
Definition: BeamBits.h:139
std::string bitName(triggerSource bit)
Returns a mnemonic short name of the beam type.
Definition: BeamBits.h:267
temporary value
std::optional< fhicl::ParameterSet > icarus::TriggerConfigurationExtractor::readTriggerConfig ( fhicl::ParameterSet const &  pset,
std::string const &  key 
) const
private

Returns the specified Trigger readout board configuration.

Parameters
psetparameter set including key
keykey of the Trigger readout configuration candidate
Returns
the configuration, or an empty object if key does not represent one

Definition at line 316 of file TriggerConfigurationExtractor.cxx.

317 {
318  std::optional<fhicl::ParameterSet> config;
319 
320  do { // fake loop for fast exit
321 
322  // it must be a parameter set
323  if (!pset.has_key(key) || !pset.is_key_to_table(key)) break;
324 
325  auto boardPSet = pset.get<fhicl::ParameterSet>(key);
326 
327  // its "fragment_type" must be the expected one
328  std::string fragmentType;
329  if (!boardPSet.get_if_present("daq.fragment_receiver.generator", fragmentType))
330  break;
331  if (fragmentType != fExpectedFragmentType) break;
332 
333  config.emplace(std::move(boardPSet)); // success
334  } while (false);
335  return config;
336 } // icarus::TriggerConfigurationExtractor::readTriggerConfig()

Member Data Documentation

std::vector< std::regex > const icarus::TriggerConfigurationExtractor::ConfigurationNames { std::regex{ "icarustrigger.*" } }
staticprivate

Regular expressions matching all names of supported Trigger configurations.

Definition at line 352 of file TriggerConfigurationExtractor.h.

std::string const icarus::TriggerConfigurationExtractor::fExpectedFragmentType
private

Definition at line 349 of file TriggerConfigurationExtractor.h.


The documentation for this class was generated from the following files: