71   JLimit_t&                numberOfEvents = inputFile.getLimit();
 
   82     JParser<> zap(
"Auxiliary program to trigger time slice 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.");
 
   90     zap[
'C'] = 
make_field(selector,       
"timeslice selector, e.g. JDAQTimesliceL1.")    = getROOTClassSelection<JDAQTimesliceTypes_t>();
 
   96   catch(
const exception &error) {
 
   97     FATAL(error.what() << endl);
 
  110   DEBUG(
"Reset time [ms] " << 
getRTS()       * 1e-6 << endl);
 
  111   DEBUG(
"Trigger"          << endl << parameters    << endl);
 
  124   if (parameters.disableHighRateVeto) {
 
  126     NOTICE(
"Disabling high-rate veto of all PMTs." << endl);
 
  145   const JBuildL1_t buildL1(parameters);
 
  146   const JBuildL2_t buildL2(parameters.L2);
 
  147   const JBuildL2_t buildSN(parameters.SN);
 
  148   const JBuildL2_t buildNB(parameters.NB);
 
  150   JTimer timerCC(
"Calibration");
 
  155   JTimer timerRX(
"Timeslice router");
 
  156   JTimer timerTR(
"Trigger");
 
  157   JTimer timerTX(
"Trigger router");
 
  158   JTimer timerTW(
"Timeslice writer");
 
  159   JTimer timerSW(
"Summary writer");
 
  176   unsigned int numberOfTriggers = 0;
 
  182   for ( ; in.hasNext() && counter != inputFile.getLimit(); ++counter) {
 
  184     STATUS(
"event: " << setw(10) << counter << 
'\r'); 
DEBUG(endl);
 
  188     DEBUG(*timeslice << endl);
 
  192     timesliceRouter.configure(*timeslice);
 
  203     for (JDAQTimeslice::const_iterator super_frame = timeslice->begin(); super_frame != timeslice->end(); ++super_frame) {
 
  205       if (moduleRouter.hasModule(super_frame->getModuleID())) {
 
  211         const JModule&   module = moduleRouter.getModule(super_frame->getModuleID()); 
 
  212         JSuperFrame2D_t& buffer = JSuperFrame2D_t::demultiplex(*super_frame, module);
 
  218         buffer.applyHighRateVeto(parameters.highRateVeto_Hz);
 
  224         timesliceL0.push_back(JSuperFrame1D_t(buffer));
 
  230         if (parameters.triggerNB.enabled) {
 
  232           JSuperFrame2D_t::iterator __end = partition(buffer.begin(), buffer.end(), parameters.triggerNB.pmts);
 
  234           if (buffer.begin() != __end) {
 
  236             timesliceNB.push_back(JSuperFrame1D_t(super_frame->getDAQChronometer(),
 
  237                                                   super_frame->getModuleIdentifier(),
 
  240             JSuperFrame1D_t zbuf;
 
  242             buildL1(buffer.begin(), __end , back_inserter(zbuf));
 
  244             buildNB(buffer.begin() , __end, zbuf, back_inserter(*timesliceNB.rbegin()));
 
  252         timesliceL1.push_back(JSuperFrame1D_t(super_frame->getDAQChronometer(),
 
  253                                               super_frame->getModuleIdentifier(),
 
  256         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()));
 
  276         timesliceSN.push_back(JSuperFrame1D_t(super_frame->getDAQChronometer(),
 
  277                                               super_frame->getModuleIdentifier(),
 
  280         buildSN(buffer, *timesliceL1.rbegin(), back_inserter(*timesliceSN.rbegin()));
 
  288     if (parameters.triggerNB.enabled) {      
 
  294       for (JTriggerInput::const_iterator hit = trigger_input.begin(); hit != trigger_input.end(); ++hit) {
 
  296         if (parameters.triggerNB.write()) {
 
  303                               parameters.TMaxLocal_ns, 
 
  304                               parameters.triggerNB.DMax_m,
 
  319     trigger3DMuon  (trigger_input, back_inserter(trigger_output));
 
  320     trigger3DShower(trigger_input, back_inserter(trigger_output));
 
  321     triggerMXShower(trigger_input, timesliceL0, back_inserter(trigger_output));
 
  325     numberOfTriggers += trigger_output.size();
 
  329     DEBUG(
"Number of triggers: " << trigger_output.size() << endl);
 
  331     for (JTriggerOutput::const_iterator event = trigger_output.begin(); event != trigger_output.end(); ++event) {
 
  338                           parameters.TMaxLocal_ns, 
 
  346     if (parameters.writeL0()) {
 
  355     if (parameters.writeL1()) {
 
  364     if (parameters.writeL2()) {
 
  373     if (parameters.writeSN()) {
 
  382     if (parameters.writeSummary()) {
 
  395     const double factor = 1.0 / (double) counter;
 
  397     for (
const JTimer* p : { &timerCC, &timerL0, &timerL1, &timerL2, &timerSN, &timerRX, &timerTR, &timerTX, &timerTW, &timerSW }) {
 
  398       p->print(cout, factor);
 
  401     NOTICE(
"Number of trigger/slices " << numberOfTriggers << 
"/" << counter << endl);
 
  402     NOTICE(
"Trigger rate [Hz]        " << numberOfTriggers * 1.0e9 * factor / 
getFrameTime() << endl);
 
#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.
 
Auxiliary class for CPU timing and usage.
 
const JPosition3D & getPosition() const
Get position.
 
Auxiliary class for multiplexing object iterators.
 
Utility class to parse command line options.
 
General purpose class for object reading from a list of file names.
 
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.
 
Time slice with calibrated data.
 
Auxiliary class to build JDAQEvent for a triggered event.
 
const JDAQChronometer & getDAQChronometer() const
Get DAQ chronometer.
 
Auxiliary class to set DAQ system clock parameters.
 
void set(const JDAQClock_t clock)
Set clock type.
 
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).
 
Long64_t counter_type
Type definition for counter.
 
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 to select ROOT class based on class name.
 
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...