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()));