345     JParser<> zap(
"Example program to verify generator data.");
 
  349     zap[
'n'] = 
make_field(numberOfEvents)                                                 = JLimit::max();
 
  355   catch(
const exception &error) {
 
  356     FATAL(error.what() << endl);
 
  363   TH1D h0 (
"h0",  
"Fractional energy conservation",
 
  365   TH1D 
h1 (
"h1",  
"Fractional momentum conservation",
 
  367   TH1D job(
"job", 
"Particle types",
 
  368            10001, -5000.5, +5000.5);
 
  370   TH1D hv(
"hv", 
"Visible energy as fraction of initial state energy",
 
  372   TH1D ha(
"ha", 
"Angle between neutrino-direction and visible-energy-weighted direction",
 
  374   TH1D ht(
"ht", 
"Square-root of summed squared transverse visible energy as fraction of initial state energy",
 
  377   TH1D hn(
"hn", 
"Number of muons per event",
 
  378           2001,   -0.5, +2000.5);
 
  379   TH1D he(
"he", 
"Muon energies",
 
  381   TH2D hp(
"hp", 
"Muon positions",
 
  386   while (inputFile.hasNext()) {
 
  388     STATUS(
"event: " << setw(10) << inputFile.getCounter() << 
'\r'); 
DEBUG(endl);
 
  390     const Evt* 
event = inputFile.next();
 
  393       job.Fill((
double) track->type);
 
  398       const Trk&   neutrino = 
event->mc_trks[0];
 
  400       const Vec&   P0 = getP0(*event);
 
  401       const Vec&   P1 = getP1(*event);
 
  403       const double E0 = getE0(*event);
 
  404       const double E1 = getE1(*event);
 
  406       const double Evis    = getVisibleEnergy          (*event);
 
  407       const Vec&   EvisDir = getVisibleEnergyDirection (*event);
 
  408       const double EvisT   = getTransverseVisibleEnergy(*event, EvisDir);
 
  412         cout << endl << 
"--------------------------------------------------------" << endl;
 
  413         cout << 
"event: " << setw(8) << 
event->mc_id << 
"                energy [GeV] momentum (x, y, z) [GeV] distance [m]" << endl;
 
  415         for (
size_t i = 0; i != 
event->mc_trks.size(); ++i) {
 
  417           const Trk& track = 
event->mc_trks[i];
 
  419           const TDatabasePDG  pdg;
 
  420           const TParticlePDG* particle = pdg.GetParticle(track.
type);
 
  422           cout << setw(32) << left << showpos << particle->GetName() << 
' ' << 
FIXED(7,3) << track.
E << 
"    " << 
FIXED(7,3) << track.
E * track.
dir << 
"    " << 
FIXED(7,3) << (track.
pos - neutrino.
pos).len() << endl;
 
  424         cout << setw(32) << left << 
"balance:" << 
' ' << 
FIXED(7,3) << E0 - E1 << 
"    " << 
FIXED(7,3) << P0 - P1 << endl;
 
  431       h0.Fill((E0 - E1)/E0);
 
  432       h1.Fill((P0 - P1).len()/P0.
len());
 
  442         he.Fill(log10(track->
E));
 
  447     hn.Fill((Double_t) n);
 
Utility class to parse command line options. 
 
double getDot(const JNeutrinoDirection &first, const JNeutrinoDirection &second)
Dot product. 
 
bool has_neutrino(const Evt &evt)
Test whether given event has an incoming neutrino. 
 
bool is_muon(const Trk &track)
Test whether given track is a (anti-)muon. 
 
then for HISTOGRAM in h0 h1
 
Auxiliary data structure for floating point format specification. 
 
double E
Energy [GeV] (either MC truth or reconstructed) 
 
double len() const 
Get length. 
 
bool is_neutrino(const Trk &track)
Test whether given track is a neutrino. 
 
Auxiliary class for defining the range of iterations of objects. 
 
The Vec class is a straightforward 3-d vector, which also works in pyroot. 
 
JDirection3D getDirection(const Vec &dir)
Get direction. 
 
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object 
 
int type
MC: particle type in PDG encoding. 
 
z range($ZMAX-$ZMIN)< $MINIMAL_DZ." fi fi typeset -Z 4 STRING typeset -Z 2 FLOOR JPlot1D -f $
 
Vec pos
postion of the track at time t [m] 
 
General purpose class for object reading from a list of file names. 
 
alias put_queue eval echo n
 
then usage $script< input_file >< detector_file > fi set_variable OUTPUT_DIR set_variable SELECTOR JDAQTimesliceL1 set_variable DEBUG case set_variable DEBUG
 
const JLimit & getLimit() const 
Get limit. 
 
The Trk class represents a Monte Carlo (MC) particle as well as a reconstructed track/shower. 
 
The Evt class respresent a Monte Carlo (MC) event as well as an offline event.