39 int main(
int argc, 
char **argv)
 
   45   JSingleFileScanner<JDAQSummaryslice>                         inputFile;
 
   46   JFileRecorder<JTYPELIST<JDAQSummaryslice, JMeta>::typelist>  
outputFile;
 
   49   JPMTParametersMap      pmtParameters;
 
   55     JParser<> zap(
"Example program to simulate summary data.");
 
   57     zap[
'f'] = 
make_field(inputFile,           
"input DAQ file");
 
   59     zap[
'n'] = 
make_field(numberOfEvents)                     = JLimit::max();
 
   60     zap[
'a'] = 
make_field(detectorFile ,       
"detector file");
 
   67   catch(
const exception &error) {
 
   68     FATAL(error.what() << endl);
 
   76     load(detectorFile, detector);
 
   78   catch(
const JException& error) {
 
   82   JPMTParametersMap::Throw(
true);
 
   84   if (!pmtParameters.is_valid()) {
 
   85     FATAL(
"Invalid PMT parameters " << pmtParameters << endl);
 
   88   const JModuleRouter moduleRouter(detector);
 
   89   JDetectorSimulator  simbad      (detector);
 
   90   JSummaryRouter      summaryRouter;
 
   93     simbad.reset(
new JK40RunByRunSimulator(summaryRouter, JK40Rates()));
 
   94     simbad.reset(
new JPMTRunByRunSimulator(summaryRouter, pmtParameters, detector, R_Hz));
 
   95     simbad.reset(
new JCLBDefaultSimulator());
 
   97   catch(
const JException& error) {
 
   98     FATAL(error.what() << endl);
 
  109   while (inputFile.hasNext()) {
 
  111     STATUS(
"event: " << setw(10) << inputFile.getCounter() << 
'\r'); 
DEBUG(endl);
 
  115     summaryRouter.update(summary);
 
  117     summaryRouter.correct(dynamic_cast<const JPMTDefaultSimulatorInterface&>(simbad.getPMTSimulator()));