44   inline double getE0(
const Evt& evt)
 
   48     if (!evt.mc_trks.empty() && 
is_neutrino(evt.mc_trks[0])) {
 
   50       const Trk& neutrino = evt.mc_trks[0];
 
   54       for (
size_t i = 1; i != evt.mc_trks.size(); ++i) {
 
   56         const Trk& track = evt.mc_trks[i];
 
   91   inline double getE1(
const Evt& evt)
 
   95     if (!evt.mc_trks.empty() && 
is_neutrino(evt.mc_trks[0])) {
 
   97       const Trk& neutrino = evt.mc_trks[0];
 
   99       for (
size_t i = 1; i != evt.mc_trks.size(); ++i) {
 
  101         const Trk& track = evt.mc_trks[i];
 
  106           E1 += 
gWater(track.E, -(track.pos - neutrino.pos).len());
 
  126 int main(
int argc, 
char **argv)
 
  132   JLimit_t&       numberOfEvents = inputFile.getLimit();
 
  139     JParser<> zap(
"Example program to verify generator data.");
 
  143     zap[
'n'] = 
make_field(numberOfEvents)                                    = JLimit::max();
 
  149   catch(
const exception &error) {
 
  150     FATAL(error.what() << endl);
 
  157   TH1D h0 (
"h0",  NULL,  1001,    -1.0,    +1.0);
 
  158   TH1D job(
"job", NULL, 10001, -5000.5, +5000.5);
 
  160   TH1D hn (
"hn",  NULL,  2001,    -0.5, +2000.5);
 
  161   TH1D he (
"he",  NULL,  1000,     0.0,    10.0); 
 
  172     const Evt* 
event = inputFile.
next();
 
  175       job.Fill((
double) track->type);
 
  180       const double E0 = getE0(*event);
 
  181       const double E1 = getE1(*event);
 
  185         const Trk& neutrino = 
event->mc_trks[0];
 
  187         cout << endl << 
"--------------------------------------------------------" << endl;
 
  188         cout << 
"event: " << setw(8) << 
event->mc_id << 
"                energy [GeV] distance [m]" << endl;
 
  190         for (
size_t i = 0; i != 
event->mc_trks.size(); ++i) {
 
  192           const Trk&       track    = 
event->mc_trks[i];
 
  195           cout << setw(32) << left << particle.
name << 
' ' << 
FIXED(7,3) << track.E << 
"    " << 
FIXED(7,3) << (track.pos - neutrino.pos).len() << endl;
 
  197         cout << setw(32) << left << 
"balance" << 
' ' << 
FIXED(7,3) << E0 - E1 << endl;
 
  200       h0.Fill((E0 - E1)/E0);
 
  210         he.Fill(log10(track->E));
 
  211         h2.Fill(track->pos.x*track->pos.x + track->pos.y*track->pos.y, track->pos.z);
 
  215     hn.Fill((Double_t) 
n);