60   using namespace KM3NETDAQ;
 
   64   JSingleFileScanner<JDAQEvent> inputFile;
 
   69   bool               reuse_parameters;
 
   74     JParser<> zap(
"Auxiliary program to re-trigger event data.");
 
   78     zap[
'n'] = 
make_field(numberOfEvents)      = JLimit::max();
 
   86   catch(
const exception &error) {
 
   87     FATAL(error.what() << endl);
 
   96   DEBUG(
"Reset time [ms] " << 
getRTS()       * 1e-6 << endl);
 
   97   DEBUG(
"Trigger"          << endl << parameters    << endl);
 
  102     load(detectorFile, detector);
 
  104   catch(
const JException& error) {
 
  108   if (reuse_parameters) {
 
  114       NOTICE(
"Set trigger parameters from input." << endl);
 
  116     catch(
const JException& error) {
 
  117       FATAL(
"No trigger parameters from input." << endl);
 
  123   const JModuleRouter moduleRouter(detector);
 
  125   if (parameters.writeSummary()) { 
WARNING(
"Disgard writeSummary option during reprocesing of data." << endl); }
 
  126   if (parameters.writeL1())      { 
WARNING(
"Disgard writeL1 option during reprocesing of data."      << endl); }
 
  127   if (parameters.writeL2())      { 
WARNING(
"Disgard writeL2 option during reprocesing of data."      << endl); }
 
  128   if (parameters.writeSN())      { 
WARNING(
"Disgard writeSN option during reprocesing of data."      << endl); }
 
  143   JTimesliceRouter timesliceRouter(parameters.numberOfBins);
 
  145   const JTrigger3DMuon   trigger3DMuon  (parameters);
 
  146   const JTrigger3DShower trigger3DShower(parameters);
 
  147   const JTriggerMXShower triggerMXShower(parameters, detector);
 
  160   JTreeScanner<JDAQSummaryslice, JDAQEvaluator> scan(inputFile);
 
  162   if (scan.getEntries() == 0) {
 
  163     FATAL(
"No summary data." << endl);
 
  166   while (inputFile.hasNext()) {
 
  168     STATUS(
"event: " << setw(10) << inputFile.getCounter() << 
'\r'); 
DEBUG(endl);
 
  171     Long64_t          index   = scan.find(*evt);
 
  180     DEBUG(timeslice << endl);
 
  182     timesliceRouter.configure(timeslice);
 
  185     JTimeslice_t    timesliceL0(timeslice.getDAQChronometer());
 
  186     JTimeslice_t    timesliceL1(timeslice.getDAQChronometer());
 
  187     JTimeslice_t    timesliceL2(timeslice.getDAQChronometer());
 
  189     for (JDAQTimeslice::const_iterator super_frame = timeslice.begin(); super_frame != timeslice.end(); ++super_frame) {
 
  191       if (!moduleRouter.hasModule(super_frame->getModuleID())) {
 
  192         ERROR(
"Missing module: " << super_frame->getModuleID() << endl);
 
  198       const JModule&   module = moduleRouter.getModule(super_frame->getModuleID()); 
 
  199       JSuperFrame2D_t& buffer = JSuperFrame2D_t::demultiplex(*super_frame, module);
 
  211       timesliceL1.push_back(
JSuperFrame1D_t(super_frame->getDAQChronometer(),
 
  212                                             super_frame->getModuleIdentifier(),
 
  213                                             module.getPosition()));
 
  215       buildL1(*timesliceL0.rbegin(), back_inserter(*timesliceL1.rbegin()));
 
  219       timesliceL2.push_back(
JSuperFrame1D_t(super_frame->getDAQChronometer(),
 
  220                                             super_frame->getModuleIdentifier(),
 
  221                                             module.getPosition()));
 
  223       buildL2(buffer, *timesliceL1.rbegin(), back_inserter(*timesliceL2.rbegin()));
 
  229     JTriggerInput  trigger_input(timesliceL2);
 
  230     JTriggerOutput trigger_output;
 
  232     trigger3DMuon  (trigger_input, back_inserter(trigger_output));
 
  233     trigger3DShower(trigger_input, back_inserter(trigger_output));
 
  234     triggerMXShower(trigger_input, timesliceL0, back_inserter(trigger_output));
 
  236     trigger_output.merge(JEventOverlap(parameters.TMaxEvent_ns));
 
  238     DEBUG(
"Number of triggers: " << trigger_output.size() << endl);
 
  240     for (JTriggerOutput::const_iterator 
event = trigger_output.begin(); 
event != trigger_output.end(); ++
event) {
 
  242       JTriggeredEvent tev(*
event, 
 
  245                           parameters.TMaxLocal_ns, 
 
  255   JSingleFileScanner<JRemove<typelist, JDAQEvent>::typelist> io(inputFile);
 
Utility class to parse command line options. 
 
Data structure for all trigger parameters. 
 
JBuildL2< hit_type > JBuildL2_t
 
Structure to store the ToT mean and standard deviation of the hits produced by a nanobeacon in a sour...
 
Empty structure for specification of parser element that is initialised (i.e. 
 
JSuperFrame2D< hit_type > JSuperFrame2D_t
 
int getFrameIndex() const 
Get frame index. 
 
JTimeRange getTimeRange(const Evt &event)
Get time range (i.e. 
 
JLimit JLimit_t
Type definition of limit. 
 
JBuildL1< hit_type > JBuildL1_t
 
void setDAQLongprint(const bool option)
Set DAQ print option. 
 
double getMaximalDistance(const JDetector &detector)
Get maximal distance between modules in detector. 
 
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object 
 
double getFrameTime()
Get frame time duration. 
 
void applyHighRateVeto(const double rate_Hz)
Apply high-rate veto. 
 
void load(const JString &file_name, JDetector &detector)
Load detector from input file. 
 
JTimeslice< hit_type > JTimeslice_t
 
double getRTS()
Get TDC dynamic range. 
 
2-dimensional frame with time calibrated data from one optical module. 
 
const JLimit & getLimit() const 
Get limit. 
 
JTriggerCounter_t getCounter() const 
Get trigger counter. 
 
JTriggerParameters getTriggerParameters(const JMultipleFileScanner_t &file_list)
Get trigger parameters. 
 
JTriggerCounter_t next()
Increment trigger counter. 
 
Time slice with calibrated data. 
 
#define DEBUG(A)
Message macros. 
 
JSuperFrame1D< hit_type > JSuperFrame1D_t