DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
TriggerCandidateData.hpp
Go to the documentation of this file.
1
8
9#ifndef TRGDATAFORMATS_INCLUDE_TRGDATAFORMATS_TRIGGERCANDIDATEDATA_HPP_
10#define TRGDATAFORMATS_INCLUDE_TRGDATAFORMATS_TRIGGERCANDIDATEDATA_HPP_
11
13
14#include <cstdint>
15#include <map>
16#include <string>
17
19
21{
64
81
82 // Update this version number if there are any changes to the in-memory representation of this class!
83 static constexpr version_t s_trigger_candidate_version = 3; // NOLINT(build/unsigned)
84
85 version_t version = s_trigger_candidate_version; // NOLINT(build/unsigned)
89 // TODO P. Rodrigues 2021-01-06: This was originally a
90 // std::vector<detid_t> but that messes up the overlay scheme, so
91 // I've changed it for now to be just a detid_t. Need to work out
92 // what to do longer term
93 detid_t detid; // NOLINT(build/unsigned)
95 Algorithm algorithm = Algorithm::kUnknown; // NOLINT(build/unsigned)
96};
97
98// This map needs to be updated for each new TC type, as this is used when configuring Trigger Bitwords, affecting
99// trigger logic in trigger::MLT
100inline std::map<TriggerCandidateData::Type, std::string>
102{
103 return {
110 { TriggerCandidateData::Type::kADCSimpleWindow, "kADCSimpleWindow" },
111 { TriggerCandidateData::Type::kHorizontalMuon, "kHorizontalMuon" },
112 { TriggerCandidateData::Type::kMichelElectron, "kMichelElectron" },
113 { TriggerCandidateData::Type::kPlaneCoincidence, "kPlaneCoincidence" },
115 { TriggerCandidateData::Type::kChannelDistance, "kChannelDistance" },
117 { TriggerCandidateData::Type::kCTBFakeTrigger, "kCTBFakeTrigger" },
119 { TriggerCandidateData::Type::kCTBBeamChkvHL, "kCTBBeamChkvHL" },
124 { TriggerCandidateData::Type::kCTBBeamChkvHLx, "kCTBBeamChkvHLx" },
125 { TriggerCandidateData::Type::kCTBBeamChkvHxL, "kCTBBeamChkvHxL" },
126 { TriggerCandidateData::Type::kCTBBeamChkvHxLx, "kCTBBeamChkvHxLx" },
127 { TriggerCandidateData::Type::kNeutronSourceCalib, "kNeutronSourceCalib" },
128 { TriggerCandidateData::Type::kChannelAdjacency, "kChannelAdjacency" },
129 { TriggerCandidateData::Type::kCIBFakeTrigger, "kCIBFakeTrigger" },
130 { TriggerCandidateData::Type::kCIBLaserTriggerP1, "kCIBLaserTriggerP1" },
131 { TriggerCandidateData::Type::kCIBLaserTriggerP2, "kCIBLaserTriggerP2" },
132 { TriggerCandidateData::Type::kCIBLaserTriggerP3, "kCIBLaserTriggerP3" },
133 { TriggerCandidateData::Type::kCTBOffSpillSnapshot, "kCTBOffSpillSnapshot" },
134 { TriggerCandidateData::Type::kCTBOffSpillCosmicJura, "kCTBOffSpillCosmicJura" },
135 { TriggerCandidateData::Type::kCTBOffSpillCRTCosmic, "kCTBOffSpillCRTCosmic" },
136 { TriggerCandidateData::Type::kCTBBeamSpillStart, "kCTBBeamSpillStart" },
137 { TriggerCandidateData::Type::kCTBBeamSpillSnapshot, "kCTBBeamSpillSnapshot" },
139 { TriggerCandidateData::Type::kCTBCustomPulseTrain, "kCTBCustomPulseTrain" },
142 { TriggerCandidateData::Type::kSSPLEDCalibration, "kSSPLEDCalibration" },
143 };
144}
145
146inline int
147string_to_trigger_candidate_type(const std::string& name)
148{
149 for (auto& it : get_trigger_candidate_type_names()) {
150 if (it.second == name)
151 return static_cast<int>(it.first);
152 }
153 return static_cast<int>(TriggerCandidateData::Type::kUnknown);
154}
155
156inline std::string
158{
159 try {
161 }
162 catch(std::exception &e) {
163 }
164 return "kUnknown";
165}
166
167} // namespace dunedaq::trgdataformats
168
169#endif // TRGDATAFORMATS_INCLUDE_TRGDATAFORMATS_TRIGGERCANDIDATEDATA_HPP_
std::map< TriggerCandidateData::Type, std::string > get_trigger_candidate_type_names()
std::string trigger_candidate_type_to_string(const TriggerCandidateData::Type &type)
constexpr timestamp_t INVALID_TIMESTAMP
Definition Types.hpp:22
int string_to_trigger_candidate_type(const std::string &name)