62int main(
int argc, 
char **argv)
 
   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.");
 
   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); }
 
  155  typedef JTimeslice   <hit_type>   JTimeslice_t;
 
  156  typedef JBuildL1     <hit_type>   JBuildL1_t;
 
  157  typedef JBuildL2     <hit_type>   JBuildL2_t;
 
  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);
 
  215    for (JDAQTimeslice::const_iterator super_frame = timeslice.begin(); super_frame != timeslice.end(); ++super_frame) {
 
  217      if (moduleRouter.
hasModule(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,
 
  298                              getTimeRange(parameters.triggerNB));
 
  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, 
 
  322                          getTimeRange(parameters));