50{
54
56
59 JLimit_t& numberOfEvents = inputFile.getLimit();
65
66 try {
67
68 JParser<> zap(
"Auxiliary program to re-process time slice data.");
69
78
80 }
81 catch(const exception &error) {
83 }
84
85
87
91
93
94 try {
96 }
99 }
100
102
103 try {
104
106
107 NOTICE(
"Set trigger parameters from input." <<
endl);
108 }
110 FATAL(
"No trigger parameters from input." <<
endl);
111 }
112 }
113
114
115 if (parameters.disableHighRateVeto) {
116
117 NOTICE(
"Disabling high-rate veto of all PMTs." <<
endl);
118
120 }
121
123
125
126 if (parameters.writeSummary()) {
WARNING(
"Discard writeSummary option during reprocesing of data." <<
endl); }
127
128
129
131
137
138 const JBuildL1_t buildL1(parameters);
139 const JBuildL2_t buildL2(parameters.L2);
140 const JBuildL2_t buildSN(parameters.SN);
141
143
145
148 }
149
152
154
155 void add(const size_t value)
156 {
157 this->value += value;
158 this->count += 1;
159 }
160
161 size_t value = 0;
162 size_t count = 0;
163 };
164
166
168
170
171 for ( ; in.hasNext() && counter != inputFile.getLimit(); ++counter) {
172
174
176
178
179 timesliceRouter.configure(*timeslice);
180
185
187
188 if (moduleRouter.hasModule(
super_frame->getModuleID())) {
189
190
191
192 const JModule&
module = moduleRouter.getModule(super_frame->getModuleID());
194
195
196
197 buffer.applyHighRateVeto(parameters.highRateVeto_Hz);
198
199
200
202
203
204
208
210
211
212
216
218
219
220 {
221 JTimeslice_t::value_type tv(
super_frame->getDAQChronometer(),
224
226
227 if (!tv.empty()) {
229 }
230 }
231 }
232 }
233
234 for (
const auto& i :
timesliceL1) {
ls[
"L1"].add(i.size()); }
235 for (
const auto& i :
timesliceL2) {
ls[
"L2"].add(i.size()); }
236 for (
const auto& i :
timesliceSN) {
ls[
"SN"].add(i.size()); }
237
238 if (parameters.writeL0()) {
240 }
241
242 if (parameters.writeL1()) {
244 }
245
246 if (parameters.writeL2()) {
248 }
249
250 if (parameters.writeSN()) {
252 }
253 }
255
256 for (
const auto& i :
ls) {
257 NOTICE(left <<
setw(4) << i.first << right <<
FIXED(7,2) << (i.second.count != 0 ? (
double) i.second.value / ((
double) i.second.count * 1.0e-9 * getFrameTime()) : 0.0) <<
" Hz" <<
endl);
258 }
259
261
263
265}
#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.
const JDAQChronometer & getDAQChronometer() const
Get DAQ chronometer.
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);.
Auxiliary data structure for floating point format specification.
Transmission with position.
Empty structure for specification of parser element that is initialised (i.e. does not require input)...
Auxiliary class to select ROOT class based on class name.
Auxiliary class for defining the range of iterations of objects.
static counter_type max()
Get maximum counter value.
Auxiliary data structure to list files in directory.
Router for fast addressing of hits in KM3NETDAQ::JDAQTimeslice data structure as a function of the op...