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{
65
82
83 // Update this version number if there are any changes to the in-memory representation of this class!
84 static constexpr version_t s_trigger_candidate_version = 3; // NOLINT(build/unsigned)
85
86 version_t version = s_trigger_candidate_version; // NOLINT(build/unsigned)
90 // TODO P. Rodrigues 2021-01-06: This was originally a
91 // std::vector<detid_t> but that messes up the overlay scheme, so
92 // I've changed it for now to be just a detid_t. Need to work out
93 // what to do longer term
94 detid_t detid; // NOLINT(build/unsigned)
96 Algorithm algorithm = Algorithm::kUnknown; // NOLINT(build/unsigned)
97};
98
99// This map needs to be updated for each new TC type, as this is used when configuring Trigger Bitwords, affecting
100// trigger logic in trigger::MLT
101inline std::map<TriggerCandidateData::Type, std::string>
103{
104 return {
111 { TriggerCandidateData::Type::kADCSimpleWindow, "kADCSimpleWindow" },
112 { TriggerCandidateData::Type::kHorizontalMuon, "kHorizontalMuon" },
113 { TriggerCandidateData::Type::kMichelElectron, "kMichelElectron" },
114 { TriggerCandidateData::Type::kPlaneCoincidence, "kPlaneCoincidence" },
116 { TriggerCandidateData::Type::kChannelDistance, "kChannelDistance" },
118 { TriggerCandidateData::Type::kCTBFakeTrigger, "kCTBFakeTrigger" },
120 { TriggerCandidateData::Type::kCTBBeamChkvHL, "kCTBBeamChkvHL" },
125 { TriggerCandidateData::Type::kCTBBeamChkvHLx, "kCTBBeamChkvHLx" },
126 { TriggerCandidateData::Type::kCTBBeamChkvHxL, "kCTBBeamChkvHxL" },
127 { TriggerCandidateData::Type::kCTBBeamChkvHxLx, "kCTBBeamChkvHxLx" },
128 { TriggerCandidateData::Type::kNeutronSourceCalib, "kNeutronSourceCalib" },
129 { TriggerCandidateData::Type::kChannelAdjacency, "kChannelAdjacency" },
130 { TriggerCandidateData::Type::kCIBFakeTrigger, "kCIBFakeTrigger" },
131 { TriggerCandidateData::Type::kCIBLaserTriggerP1, "kCIBLaserTriggerP1" },
132 { TriggerCandidateData::Type::kCIBLaserTriggerP2, "kCIBLaserTriggerP2" },
133 { TriggerCandidateData::Type::kCIBLaserTriggerP3, "kCIBLaserTriggerP3" },
134 { TriggerCandidateData::Type::kCTBOffSpillSnapshot, "kCTBOffSpillSnapshot" },
135 { TriggerCandidateData::Type::kCTBOffSpillCosmicJura, "kCTBOffSpillCosmicJura" },
136 { TriggerCandidateData::Type::kCTBOffSpillCRTCosmic, "kCTBOffSpillCRTCosmic" },
137 { TriggerCandidateData::Type::kCTBBeamSpillStart, "kCTBBeamSpillStart" },
138 { TriggerCandidateData::Type::kCTBBeamSpillSnapshot, "kCTBBeamSpillSnapshot" },
140 { TriggerCandidateData::Type::kCTBCustomPulseTrain, "kCTBCustomPulseTrain" },
143 { TriggerCandidateData::Type::kSSPLEDCalibration, "kSSPLEDCalibration" },
144 { TriggerCandidateData::Type::kProtoDUNEBSMWindow, "kProtoDUNEBSMWindow" }
145 };
146}
147
148inline int
149string_to_trigger_candidate_type(const std::string& name)
150{
151 for (auto& it : get_trigger_candidate_type_names()) {
152 if (it.second == name)
153 return static_cast<int>(it.first);
154 }
155 return static_cast<int>(TriggerCandidateData::Type::kUnknown);
156}
157
158inline std::string
160{
161 try {
163 }
164 catch(std::exception &e) {
165 }
166 return "kUnknown";
167}
168
169} // namespace dunedaq::trgdataformats
170
171#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)