DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
dunedaq
sourcecode
trgdataformats
include
trgdataformats
TriggerCandidateData.hpp
Go to the documentation of this file.
1
9
#ifndef TRGDATAFORMATS_INCLUDE_TRGDATAFORMATS_TRIGGERCANDIDATEDATA_HPP_
10
#define TRGDATAFORMATS_INCLUDE_TRGDATAFORMATS_TRIGGERCANDIDATEDATA_HPP_
11
12
#include "
trgdataformats/Types.hpp
"
13
14
#include <cstdint>
15
#include <map>
16
#include <string>
17
18
namespace
dunedaq::trgdataformats
{
19
20
struct
TriggerCandidateData
21
{
22
enum class
Type
23
{
24
kUnknown
= 0,
25
kTiming
= 1,
26
kTPCLowE
= 2,
27
kSupernova
= 3,
28
kRandom
= 4,
29
kPrescale
= 5,
30
kADCSimpleWindow
= 6,
31
kHorizontalMuon
= 7,
32
kMichelElectron
= 8,
33
kPlaneCoincidence
= 9,
34
kDBSCAN
= 10,
35
kChannelDistance
= 11,
36
kBundle
= 12,
37
kCTBFakeTrigger
= 13,
38
kCTBBeam
= 14,
39
kCTBBeamChkvHL
= 15,
40
kCTBCustomD
= 16,
41
kCTBCustomE
= 17,
42
kCTBCustomF
= 18,
43
kCTBCustomG
= 19,
44
kCTBBeamChkvHLx
= 20,
45
kCTBBeamChkvHxL
= 21,
46
kCTBBeamChkvHxLx
= 22,
47
kNeutronSourceCalib
= 23,
48
kChannelAdjacency
= 24,
49
kCIBFakeTrigger
= 25,
50
kCIBLaserTriggerP1
= 26,
51
kCIBLaserTriggerP2
= 27,
52
kCIBLaserTriggerP3
= 28,
53
kCTBOffSpillSnapshot
= 29,
54
kCTBOffSpillCosmicJura
= 30,
55
kCTBOffSpillCRTCosmic
= 31,
56
kCTBCustomA
= 32,
57
kCTBCustomB
= 33,
58
kCTBCustomC
= 34,
59
kCTBCustomPulseTrain
= 35,
60
kDTSPulser
= 36,
61
kDTSCosmic
= 37,
62
kSSPLEDCalibration
= 38,
63
};
64
65
enum class
Algorithm
66
{
67
kUnknown
= 0,
68
kSupernova
= 1,
69
kHSIEventToTriggerCandidate
= 2,
70
kPrescale
= 3,
71
kADCSimpleWindow
= 4,
72
kHorizontalMuon
= 5,
73
kMichelElectron
= 6,
74
kPlaneCoincidence
= 7,
75
kCustom
= 8,
76
kDBSCAN
= 9,
77
kChannelDistance
= 10,
78
kBundle
= 11,
79
kChannelAdjacency
= 12,
80
};
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)
86
timestamp_t
time_start
=
INVALID_TIMESTAMP
;
87
timestamp_t
time_end
=
INVALID_TIMESTAMP
;
88
timestamp_t
time_candidate
=
INVALID_TIMESTAMP
;
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)
94
Type
type =
Type::kUnknown
;
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
100
inline
std::map<TriggerCandidateData::Type, std::string>
101
get_trigger_candidate_type_names
()
102
{
103
return
{
104
{
TriggerCandidateData::Type::kUnknown
,
"kUnknown"
},
105
{
TriggerCandidateData::Type::kTiming
,
"kTiming"
},
106
{
TriggerCandidateData::Type::kTPCLowE
,
"kTPCLowE"
},
107
{
TriggerCandidateData::Type::kSupernova
,
"kSupernova"
},
108
{
TriggerCandidateData::Type::kRandom
,
"kRandom"
},
109
{
TriggerCandidateData::Type::kPrescale
,
"kPrescale"
},
110
{
TriggerCandidateData::Type::kADCSimpleWindow
,
"kADCSimpleWindow"
},
111
{
TriggerCandidateData::Type::kHorizontalMuon
,
"kHorizontalMuon"
},
112
{
TriggerCandidateData::Type::kMichelElectron
,
"kMichelElectron"
},
113
{
TriggerCandidateData::Type::kPlaneCoincidence
,
"kPlaneCoincidence"
},
114
{
TriggerCandidateData::Type::kDBSCAN
,
"kDBSCAN"
},
115
{
TriggerCandidateData::Type::kChannelDistance
,
"kChannelDistance"
},
116
{
TriggerCandidateData::Type::kBundle
,
"kBundle"
},
117
{
TriggerCandidateData::Type::kCTBFakeTrigger
,
"kCTBFakeTrigger"
},
118
{
TriggerCandidateData::Type::kCTBBeam
,
"kCTBBeam"
},
119
{
TriggerCandidateData::Type::kCTBBeamChkvHL
,
"kCTBBeamChkvHL"
},
120
{
TriggerCandidateData::Type::kCTBCustomD
,
"kCTBCustomD"
},
121
{
TriggerCandidateData::Type::kCTBCustomE
,
"kCTBCustomE"
},
122
{
TriggerCandidateData::Type::kCTBCustomF
,
"kCTBCustomF"
},
123
{
TriggerCandidateData::Type::kCTBCustomG
,
"kCTBCustomG"
},
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::kCTBCustomA
,
"kCTBCustomA"
},
137
{
TriggerCandidateData::Type::kCTBCustomB
,
"kCTBCustomB"
},
138
{
TriggerCandidateData::Type::kCTBCustomC
,
"kCTBCustomC"
},
139
{
TriggerCandidateData::Type::kCTBCustomPulseTrain
,
"kCTBCustomPulseTrain"
},
140
{
TriggerCandidateData::Type::kDTSPulser
,
"kDTSPulser"
},
141
{
TriggerCandidateData::Type::kDTSCosmic
,
"kDTSCosmic"
},
142
{
TriggerCandidateData::Type::kSSPLEDCalibration
,
"kSSPLEDCalibration"
},
143
};
144
}
145
146
inline
int
147
string_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
156
inline
std::string
157
trigger_candidate_type_to_string
(
const
TriggerCandidateData::Type
& type)
158
{
159
try
{
160
return
get_trigger_candidate_type_names
().at(type);
161
}
162
catch
(std::exception &e) {
163
}
164
return
"kUnknown"
;
165
}
166
167
}
// namespace dunedaq::trgdataformats
168
169
#endif
// TRGDATAFORMATS_INCLUDE_TRGDATAFORMATS_TRIGGERCANDIDATEDATA_HPP_
dunedaq::trgdataformats
Definition
TriggerActivityData.hpp:15
dunedaq::trgdataformats::get_trigger_candidate_type_names
std::map< TriggerCandidateData::Type, std::string > get_trigger_candidate_type_names()
Definition
TriggerCandidateData.hpp:101
dunedaq::trgdataformats::version_t
uint8_t version_t
Definition
Types.hpp:62
dunedaq::trgdataformats::detid_t
uint8_t detid_t
Definition
Types.hpp:36
dunedaq::trgdataformats::trigger_candidate_type_to_string
std::string trigger_candidate_type_to_string(const TriggerCandidateData::Type &type)
Definition
TriggerCandidateData.hpp:157
dunedaq::trgdataformats::INVALID_TIMESTAMP
constexpr timestamp_t INVALID_TIMESTAMP
Definition
Types.hpp:22
dunedaq::trgdataformats::string_to_trigger_candidate_type
int string_to_trigger_candidate_type(const std::string &name)
Definition
TriggerCandidateData.hpp:147
dunedaq::trgdataformats::TriggerCandidateData
Definition
TriggerCandidateData.hpp:21
dunedaq::trgdataformats::TriggerCandidateData::s_trigger_candidate_version
static constexpr version_t s_trigger_candidate_version
Definition
TriggerCandidateData.hpp:83
dunedaq::trgdataformats::TriggerCandidateData::Type
Type
Definition
TriggerCandidateData.hpp:23
dunedaq::trgdataformats::TriggerCandidateData::Type::kCTBBeamChkvHLx
@ kCTBBeamChkvHLx
dunedaq::trgdataformats::TriggerCandidateData::Type::kChannelAdjacency
@ kChannelAdjacency
dunedaq::trgdataformats::TriggerCandidateData::Type::kCTBOffSpillSnapshot
@ kCTBOffSpillSnapshot
dunedaq::trgdataformats::TriggerCandidateData::Type::kCTBCustomD
@ kCTBCustomD
dunedaq::trgdataformats::TriggerCandidateData::Type::kUnknown
@ kUnknown
dunedaq::trgdataformats::TriggerCandidateData::Type::kCTBFakeTrigger
@ kCTBFakeTrigger
dunedaq::trgdataformats::TriggerCandidateData::Type::kCTBCustomE
@ kCTBCustomE
dunedaq::trgdataformats::TriggerCandidateData::Type::kCTBCustomF
@ kCTBCustomF
dunedaq::trgdataformats::TriggerCandidateData::Type::kHorizontalMuon
@ kHorizontalMuon
dunedaq::trgdataformats::TriggerCandidateData::Type::kCTBBeam
@ kCTBBeam
dunedaq::trgdataformats::TriggerCandidateData::Type::kCTBCustomG
@ kCTBCustomG
dunedaq::trgdataformats::TriggerCandidateData::Type::kCTBOffSpillCosmicJura
@ kCTBOffSpillCosmicJura
dunedaq::trgdataformats::TriggerCandidateData::Type::kChannelDistance
@ kChannelDistance
dunedaq::trgdataformats::TriggerCandidateData::Type::kCTBBeamChkvHL
@ kCTBBeamChkvHL
dunedaq::trgdataformats::TriggerCandidateData::Type::kCTBCustomPulseTrain
@ kCTBCustomPulseTrain
dunedaq::trgdataformats::TriggerCandidateData::Type::kCIBLaserTriggerP1
@ kCIBLaserTriggerP1
dunedaq::trgdataformats::TriggerCandidateData::Type::kDTSPulser
@ kDTSPulser
dunedaq::trgdataformats::TriggerCandidateData::Type::kTPCLowE
@ kTPCLowE
dunedaq::trgdataformats::TriggerCandidateData::Type::kTiming
@ kTiming
dunedaq::trgdataformats::TriggerCandidateData::Type::kCTBCustomA
@ kCTBCustomA
dunedaq::trgdataformats::TriggerCandidateData::Type::kCIBLaserTriggerP3
@ kCIBLaserTriggerP3
dunedaq::trgdataformats::TriggerCandidateData::Type::kDTSCosmic
@ kDTSCosmic
dunedaq::trgdataformats::TriggerCandidateData::Type::kADCSimpleWindow
@ kADCSimpleWindow
dunedaq::trgdataformats::TriggerCandidateData::Type::kCTBBeamChkvHxLx
@ kCTBBeamChkvHxLx
dunedaq::trgdataformats::TriggerCandidateData::Type::kCTBBeamChkvHxL
@ kCTBBeamChkvHxL
dunedaq::trgdataformats::TriggerCandidateData::Type::kCIBFakeTrigger
@ kCIBFakeTrigger
dunedaq::trgdataformats::TriggerCandidateData::Type::kBundle
@ kBundle
dunedaq::trgdataformats::TriggerCandidateData::Type::kPrescale
@ kPrescale
dunedaq::trgdataformats::TriggerCandidateData::Type::kDBSCAN
@ kDBSCAN
dunedaq::trgdataformats::TriggerCandidateData::Type::kCTBCustomC
@ kCTBCustomC
dunedaq::trgdataformats::TriggerCandidateData::Type::kPlaneCoincidence
@ kPlaneCoincidence
dunedaq::trgdataformats::TriggerCandidateData::Type::kSSPLEDCalibration
@ kSSPLEDCalibration
dunedaq::trgdataformats::TriggerCandidateData::Type::kMichelElectron
@ kMichelElectron
dunedaq::trgdataformats::TriggerCandidateData::Type::kCTBCustomB
@ kCTBCustomB
dunedaq::trgdataformats::TriggerCandidateData::Type::kNeutronSourceCalib
@ kNeutronSourceCalib
dunedaq::trgdataformats::TriggerCandidateData::Type::kSupernova
@ kSupernova
dunedaq::trgdataformats::TriggerCandidateData::Type::kRandom
@ kRandom
dunedaq::trgdataformats::TriggerCandidateData::Type::kCTBOffSpillCRTCosmic
@ kCTBOffSpillCRTCosmic
dunedaq::trgdataformats::TriggerCandidateData::Type::kCIBLaserTriggerP2
@ kCIBLaserTriggerP2
dunedaq::trgdataformats::TriggerCandidateData::time_candidate
timestamp_t time_candidate
Definition
TriggerCandidateData.hpp:88
dunedaq::trgdataformats::TriggerCandidateData::version
version_t version
Definition
TriggerCandidateData.hpp:85
dunedaq::trgdataformats::TriggerCandidateData::time_end
timestamp_t time_end
Definition
TriggerCandidateData.hpp:87
dunedaq::trgdataformats::TriggerCandidateData::time_start
timestamp_t time_start
Definition
TriggerCandidateData.hpp:86
dunedaq::trgdataformats::TriggerCandidateData::Algorithm
Algorithm
Definition
TriggerCandidateData.hpp:66
dunedaq::trgdataformats::TriggerCandidateData::Algorithm::kUnknown
@ kUnknown
dunedaq::trgdataformats::TriggerCandidateData::Algorithm::kHSIEventToTriggerCandidate
@ kHSIEventToTriggerCandidate
dunedaq::trgdataformats::TriggerCandidateData::Algorithm::kCustom
@ kCustom
dunedaq::trgdataformats::TriggerCandidateData::algorithm
Algorithm algorithm
Definition
TriggerCandidateData.hpp:95
dunedaq::trgdataformats::TriggerCandidateData::detid
detid_t detid
Definition
TriggerCandidateData.hpp:93
Types.hpp
Generated on Sat Jun 28 2025 for DUNE-DAQ by
1.12.0