63{
67
69
72 JLimit_t& numberOfEvents = inputFile.getLimit();
79
80 try {
81
82 JParser<> zap(
"Auxiliary program to re-trigger event data.");
83
93
95 }
96 catch(const exception &error) {
98 }
99
100
102
104
105 try {
107 }
110 }
111
113
114 try {
115
117
118 NOTICE(
"Set trigger parameters from input." <<
endl);
119 }
121 FATAL(
"No trigger parameters from input." <<
endl);
122 }
123 }
124
125
126
127 if (parameters.disableHighRateVeto) {
128
129 NOTICE(
"Disabling high-rate veto of all PMTs." <<
endl);
130
132 }
133
135
136 parameters.triggerNB.write.prescale = 1;
137
141
143
144 if (parameters.writeSummary()) {
WARNING(
"Discard writeSummary option during reprocesing of data." <<
endl); }
145 if (parameters.writeL1()) {
WARNING(
"Discard writeL1 option during reprocesing of data." <<
endl); }
146 if (parameters.writeL2()) {
WARNING(
"Discard writeL2 option during reprocesing of data." <<
endl); }
147 if (parameters.writeSN()) {
WARNING(
"Discard writeSN option during reprocesing of data." <<
endl); }
148
149
150
152
158
159 const JBuildL1_t buildL1(parameters);
160 const JBuildL2_t buildL2(parameters.L2);
161 const JBuildL2_t buildSN(parameters.SN);
162 const JBuildL2_t buildNB(parameters.NB);
163
165
170
171
173
176 }
177
180
181
183
185
186 if (
scan.getEntries() == 0) {
188 }
189
190 while (inputFile.hasNext()) {
191
193
197
200 }
201
203
205
206 timesliceRouter.configure(timeslice);
207
208
209 JTimeslice_t
timesliceL0(timeslice.getDAQChronometer());
210 JTimeslice_t
timesliceL1(timeslice.getDAQChronometer());
211 JTimeslice_t
timesliceL2(timeslice.getDAQChronometer());
212 JTimeslice_t
timesliceSN(timeslice.getDAQChronometer());
213 JTimeslice_t
timesliceNB(timeslice.getDAQChronometer());
214
216
217 if (moduleRouter.hasModule(
super_frame->getModuleID())) {
218
219
220
221 const JModule&
module = moduleRouter.getModule(super_frame->getModuleID());
223
224
225
226 buffer.applyHighRateVeto(parameters.highRateVeto_Hz);
227
228
229
231
232
233
234 if (parameters.triggerNB.enabled) {
235
236 JSuperFrame2D_t::iterator __end =
partition(buffer.begin(), buffer.end(), parameters.triggerNB.pmts);
237
238 if (buffer.begin() != __end) {
239
243
244
245 JSuperFrame1D_t zbuf;
246
248
250 }
251 }
252
253
254
258
260
261
262
266
268
269
270 {
271 JTimeslice_t::value_type tv(
super_frame->getDAQChronometer(),
274
276
277 if (!tv.empty()) {
279 }
280 }
281 }
282 }
283
284
285
286
287 if (parameters.triggerNB.enabled) {
288
290
292
293 if (parameters.triggerNB.write()) {
294
296 getTriggerMask(triggerNB.getTriggerBit()),
298 timesliceRouter,
299 moduleRouter,
300 parameters.TMaxLocal_ns,
301 parameters.triggerNB.DMax_m,
302 getTimeRange(parameters.triggerNB));
303
305 }
306 }
307 }
308
311
315
317
319
321
323 timesliceRouter,
324 moduleRouter,
325 parameters.TMaxLocal_ns,
326 getTimeRange(parameters));
327
329
331 }
332 }
334
336
338
340
342}
#define DEBUG(A)
Message macros.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Router for direct addressing of module data in detector data structure.
Data structure for a composite optical module.
Template definition of a multi-dimensional oscillation probability interpolation table.
Template definition for direct access of elements in ROOT TChain.
Auxiliary class to build KM3NETDAQ::JDAQEvent for a triggered event.
int getFrameIndex() const
Get frame index.
JTriggerCounter_t getCounter() const
Get trigger counter.
void load(const std::string &file_name, JDetector &detector)
Load detector from input file.
double getMaximalDistance(const JDetector &detector, const bool option=false)
Get maximal distance between modules in detector.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
JTriggerParameters getTriggerParameters(const JMultipleFileScanner_t &file_list)
Get trigger parameters.
KM3NeT DAQ data structures and auxiliaries.
double getFrameTime()
Get frame time duration.
void setDAQLongprint(const bool option)
Set DAQ print option.
double getRTS()
Get TDC dynamic range.
static const int HIGH_RATE_VETO_DISABLE
Enable (disable) use of high-rate veto test if this status bit is 0 (1);.
Match of two events considering overlap in time and position.
Transmission with position.
Empty structure for specification of parser element that is initialised (i.e. does not require input)...
Auxiliary class for ROOT class selection.
void remove()
Remove data type.
Auxiliary class for defining the range of iterations of objects.
static counter_type max()
Get maximum counter value.
Router for fast addressing of hits in KM3NETDAQ::JDAQTimeslice data structure as a function of the op...