49int main(
int argc,
char **argv)
59 JLimit_t& numberOfEvents = inputFile.getLimit();
62 bool reuse_parameters;
68 JParser<> zap(
"Auxiliary program to re-process time slice data.");
81 catch(
const exception &error) {
82 FATAL(error.what() << endl);
89 DEBUG(
"Reset time [ms] " <<
getRTS() * 1e-6 << endl);
90 DEBUG(
"Trigger" << endl << parameters << endl);
101 if (reuse_parameters) {
107 NOTICE(
"Set trigger parameters from input." << endl);
110 FATAL(
"No trigger parameters from input." << endl);
115 if (parameters.disableHighRateVeto) {
117 NOTICE(
"Disabling high-rate veto of all PMTs." << endl);
126 if (parameters.writeSummary()) {
WARNING(
"Discard writeSummary option during reprocesing of data." << endl); }
134 typedef JTimeslice <hit_type> JTimeslice_t;
135 typedef JBuildL1 <hit_type> JBuildL1_t;
136 typedef JBuildL2 <hit_type> JBuildL2_t;
138 const JBuildL1_t buildL1(parameters);
139 const JBuildL2_t buildL2(parameters.L2);
140 const JBuildL2_t buildSN(parameters.SN);
155 void add(
const size_t value)
157 this->value += value;
171 for ( ; in.
hasNext() && counter != inputFile.getLimit(); ++counter) {
173 STATUS(
"event: " << setw(10) << counter <<
'\r');
DEBUG(endl);
177 DEBUG(*timeslice << endl);
186 for (JDAQTimeslice::const_iterator super_frame = timeslice->begin(); super_frame != timeslice->end(); ++super_frame) {
188 if (moduleRouter.
hasModule(super_frame->getModuleID())) {
193 JSuperFrame2D_t& buffer = JSuperFrame2D_t::demultiplex(*super_frame, module);
197 buffer.applyHighRateVeto(parameters.highRateVeto_Hz);
201 timesliceL0.push_back(JSuperFrame1D_t(buffer));
205 timesliceL1.push_back(JSuperFrame1D_t(super_frame->getDAQChronometer(),
206 super_frame->getModuleIdentifier(),
209 buildL1(*timesliceL0.rbegin(), back_inserter(*timesliceL1.rbegin()));
213 timesliceL2.push_back(JSuperFrame1D_t(super_frame->getDAQChronometer(),
214 super_frame->getModuleIdentifier(),
217 buildL2(buffer, *timesliceL1.rbegin(), back_inserter(*timesliceL2.rbegin()));
221 timesliceSN.push_back(JSuperFrame1D_t(super_frame->getDAQChronometer(),
222 super_frame->getModuleIdentifier(),
225 buildSN(buffer, *timesliceL1.rbegin(), back_inserter(*timesliceSN.rbegin()));
229 for (
const auto& i : timesliceL1) {
ls[
"L1"].add(i.size()); }
230 for (
const auto& i : timesliceL2) {
ls[
"L2"].add(i.size()); }
231 for (
const auto& i : timesliceSN) {
ls[
"SN"].add(i.size()); }
233 if (parameters.writeL0()) {
237 if (parameters.writeL1()) {
241 if (parameters.writeL2()) {
245 if (parameters.writeSN()) {
251 for (
const auto& i :
ls) {
252 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);
KM3NeT DAQ constants, bit handling, etc.
Data structure for detector geometry and calibration.
Recording of objects on file according a format that follows from the file name extension.
General purpose messaging.
#define DEBUG(A)
Message macros.
Direct access to module in detector data structure.
Utility class to parse command line options.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Scanning of objects from a single file according a format that follows from the extension of each fil...
ROOT TTree parameter settings of various packages.
int main(int argc, char **argv)
Basic data structure for time and time over threshold information of hit.
Router for direct addressing of module data in detector data structure.
bool hasModule(const JObjectID &id) const
Has module.
const JModule & getModule(const JObjectID &id) const
Get module parameters.
Data structure for a composite optical module.
const JPosition3D & getPosition() const
Get position.
Auxiliary class for multiplexing object iterators.
virtual bool hasNext() override
Check availability of next element.
virtual const pointer_type & next() override
Get next element.
Utility class to parse command line options.
Object reading from a list of files.
1-dimensional frame with time calibrated data from one optical module.
2-dimensional frame with time calibrated data from one optical module.
Auxiliary class to build JDAQTimeslice for L1 timeslice.
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).
std::set< JROOTClassSelector > getROOTClassSelection(const bool option=false)
Get ROOT class selection.
Long64_t counter_type
Type definition for counter.
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...
void configure(const JDAQTimeslice ×lice)
Configure.