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