193 JLimit_t& numberOfEvents = inputFile.getLimit();
201 JParser<> zap(
"Example program to verify Monte Carlo data.");
212 catch(
const exception &error) {
244 NOTICE(
"Apply detector offset " << offset <<
endl);
255 NOTICE(
"JDomino: Instrumented volume dimensions (x, y, r, zmin, zmax): " <<
inst_vol <<
endl);
276 const int nx = (
int) ((xmax - xmin) / 0.1);
278 const Double_t T[] = { -50.0, -20.0, -10.0, -5.0, -2.0, 0.0, +2.0, +5.0, +10.0, +15.0, +20.0, +30.0, +40.0, +50.0,
279 +75.0, +100.0, +150.0, +200.0, +250.0, +300.0, +400.0, +500.0, 1000.0 };
285 TH1D hits(
"hits",
NULL, 100, 0.0, 8.0);
286 TH1D trks(
"trks",
NULL, 10001, -5000.5, 5000.5);
289 TProfile hits_per_E_in (
"hits_per_E_in",
"average number of hits per E_{#nu} inside instrumented volume",
nx, xmin, xmax);
290 TProfile hits_per_E_out(
"hits_per_E_out",
"average number of hits per E_{#nu} outside instrumented volume",
nx, xmin, xmax);
347 while (inputFile.hasNext()) {
351 const Evt*
event = inputFile.next();
362 trks.Fill(
track->type);
383 const int type =
hit->type;
395 event->mc_trks.end(),
398 if (
track == event->mc_trks.end()) {
403 if (
count_if(event->mc_trks.begin(),
404 event->mc_trks.end(),
406 ERROR(
"Hit " << *
hit <<
" has ambiguous origin." <<
endl);
410 job.Fill((
double)
track->type, npe);
420 const double E = muon.
getE();
421 const double x =
log10(E);
423 const double t0 = muon.
getT (pmt);
432 const double E = neutrino.
getE();
433 const double x =
log10(E);
434 const double D =
vertex.getDistance(pmt);
435 const double t0 =
vertex.getT(pmt);
454 for (map_type::const_iterator i =
npe_pmt.begin(); i !=
npe_pmt.end(); ++i) {
458 for (map_type::const_iterator i =
npe_type.begin(); i !=
npe_type.end(); ++i) {
473 const double E = muon.
getE();
474 const double x =
log10(E);
482 if (R <
muRxU.GetXaxis()->GetXmax()) {
483 for (JModule::const_iterator pmt =
module->begin(); pmt !=
module->end(); ++pmt) {
488 if (R <
muRxT.GetXaxis()->GetXmax()) {
504 const double E = neutrino.
getE();
505 const double x =
log10(E);
521 if (D <
nuDxU.GetXaxis()->GetXmax()) {
522 for (JModule::const_iterator pmt =
module->begin(); pmt !=
module->end(); ++pmt) {
527 if (D <
nuDxT.GetXaxis()->GetXmax()) {
546 if (inputFile.getCounter() != 0) {