72   JLimit_t&           numberOfEvents = inputFile.getLimit();
 
   75   bool                reuse_parameters;
 
   82     JParser<> zap(
"Auxiliary program to re-trigger event data.");
 
   84     zap[
'f'] = 
make_field(inputFile,        
"input file.");
 
   86     zap[
'n'] = 
make_field(numberOfEvents)      = JLimit::max();
 
   87     zap[
'a'] = 
make_field(detectorFile,     
"detector file.");
 
   89     zap[
'U'] = 
make_field(reuse_parameters, 
"reuse trigger parameters from input file.");
 
   90     zap[
'S'] = 
make_field(snapshot,         
"use snapshot hits instead of triggered hits.");
 
   96   catch(
const exception &error) {
 
   97     FATAL(error.what() << endl);
 
  112   if (reuse_parameters) {
 
  118       NOTICE(
"Set trigger parameters from input." << endl);
 
  121       FATAL(
"No trigger parameters from input." << endl);
 
  127   if (parameters.disableHighRateVeto) {
 
  129     NOTICE(
"Disabling high-rate veto of all PMTs." << endl);
 
  136   parameters.triggerNB.write.prescale = 1;
 
  139   DEBUG(
"Reset time [ms] " << 
getRTS()       * 1e-6 << endl);
 
  140   DEBUG(
"Trigger"          << endl << parameters    << endl);
 
  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); }
 
  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);
 
  186   if (scan.getEntries() == 0) {
 
  187     FATAL(
"No summary data." << endl);
 
  195     Long64_t          index   = scan.find(*evt);
 
  204     DEBUG(timeslice << endl);
 
  206     timesliceRouter.configure(timeslice);
 
  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());
 
  215     for (JDAQTimeslice::const_iterator super_frame = timeslice.begin(); super_frame != timeslice.end(); ++super_frame) {
 
  217       if (moduleRouter.hasModule(super_frame->getModuleID())) {
 
  221         const JModule&   module = moduleRouter.getModule(super_frame->getModuleID()); 
 
  222         JSuperFrame2D_t& buffer = JSuperFrame2D_t::demultiplex(*super_frame, module);
 
  226         buffer.applyHighRateVeto(parameters.highRateVeto_Hz);
 
  230         timesliceL0.push_back(JSuperFrame1D_t(buffer));
 
  234         if (parameters.triggerNB.enabled) {
 
  236           JSuperFrame2D_t::iterator __end = partition(buffer.begin(), buffer.end(), parameters.triggerNB.pmts);
 
  238           if (buffer.begin() != __end) {
 
  240             timesliceNB.push_back(JSuperFrame1D_t(super_frame->getDAQChronometer(),
 
  241                                                   super_frame->getModuleIdentifier(),
 
  245             JSuperFrame1D_t zbuf;
 
  247             buildL1(buffer.begin(), __end , back_inserter(zbuf));
 
  250             buildNB(buffer.begin() , __end, zbuf, back_inserter(*timesliceNB.rbegin()));
 
  256         timesliceL1.push_back(JSuperFrame1D_t(super_frame->getDAQChronometer(),
 
  257                                               super_frame->getModuleIdentifier(),
 
  260         buildL1(*timesliceL0.rbegin(), back_inserter(*timesliceL1.rbegin()));
 
  264         timesliceL2.push_back(JSuperFrame1D_t(super_frame->getDAQChronometer(),
 
  265                                               super_frame->getModuleIdentifier(),
 
  268         buildL2(buffer, *timesliceL1.rbegin(), back_inserter(*timesliceL2.rbegin()));
 
  272         timesliceSN.push_back(JSuperFrame1D_t(super_frame->getDAQChronometer(),
 
  273                                               super_frame->getModuleIdentifier(),
 
  276         buildSN(buffer, *timesliceL1.rbegin(), back_inserter(*timesliceSN.rbegin()));
 
  283     if (parameters.triggerNB.enabled) {
 
  287       for (JTriggerInput::const_iterator hit = trigger_input.begin(); hit != trigger_input.end(); ++hit) {
 
  289         if (parameters.triggerNB.write()) {
 
  296                               parameters.TMaxLocal_ns,
 
  297                               parameters.triggerNB.DMax_m,
 
  308     trigger3DMuon  (trigger_input, back_inserter(trigger_output));
 
  309     trigger3DShower(trigger_input, back_inserter(trigger_output));
 
  310     triggerMXShower(trigger_input, timesliceL0, back_inserter(trigger_output));
 
  314     DEBUG(
"Number of triggers: " << trigger_output.size() << endl);
 
  316     for (JTriggerOutput::const_iterator event = trigger_output.begin(); event != trigger_output.end(); ++event) {
 
  321                           parameters.TMaxLocal_ns, 
 
#define DEBUG(A)
Message macros.
 
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
 
void merge(const JMatch_t &match)
Merge events.
 
Router for direct addressing of module data in detector data structure.
 
Data structure for a composite optical module.
 
const JPosition3D & getPosition() const
Get position.
 
Auxiliary class for selection of data type.
 
Utility class to parse command line options.
 
Object reading from a list of files.
 
virtual const pointer_type & next() override
Get next element.
 
virtual bool hasNext() override
Check availability of next element.
 
counter_type getCounter() const
Get counter.
 
Template definition for direct access of elements in ROOT TChain.
 
1-dimensional frame with time calibrated data from one optical module.
 
2-dimensional frame with time calibrated data from one optical module.
 
Time slice with calibrated data.
 
Auxiliary class to build JDAQEvent for a triggered event.
 
int getFrameIndex() const
Get frame index.
 
JTriggerCounter_t getCounter() const
Get trigger counter.
 
JTimeRange getTimeRange(const Evt &event)
Get time range (i.e. time between earliest and latest hit) of Monte Carlo event.
 
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.
 
JTriggerMask_t getTriggerMask(const unsigned int bit)
Convert trigger bit to trigger mask.
 
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.
 
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.
 
Router for fast addressing of hits in KM3NETDAQ::JDAQTimeslice data structure as a function of the op...