44 int main(
int argc, 
char **argv)
 
   57     JParser<> zap(
"Example program to verify generator data.");
 
   61     zap[
'n'] = 
make_field(numberOfEvents)                                                 = JLimit::max();
 
   67   catch(
const exception &error) {
 
   68     FATAL(error.what() << endl);
 
   80   TH1D h0  (
"h0", 
"Energy conservation",
 
   83   TH1D h1  (
"h1", 
"Momentum conservation",
 
   86   TH1D job (
"job",  
"Particle types",
 
   87             10001, -5000.5, +5000.5);
 
   88   TH2D hv  (
"hv", 
"Logarithmic visible energy as function of logarithmic initial state energy",
 
   89             100, 
log10(Erange.getLowerLimit()), 
log10(Erange.getUpperLimit()),    
 
   90             100, 
log10(Erange.getLowerLimit()), 
log10(Erange.getUpperLimit()));
 
   91   TH1D ha  (
"ha", 
"Angle between neutrino-direction and visible-energy-weighted direction",
 
   94   TH1D hn  (
"hn", 
"Number of muons per event",
 
   96   TH1D he  (
"he", 
"Muon energies",
 
   98   TH2D hp  (
"hp", 
"Muon positions",
 
  102   while (inputFile.hasNext()) {
 
  104     STATUS(
"event: " << setw(10) << inputFile.getCounter() << 
'\r'); 
DEBUG(endl);
 
  106     const Evt* 
event = inputFile.next();
 
  109       job.Fill((
double) track->type);
 
  114       const Trk&   neutrino = 
event->mc_trks[0];
 
  119       const double E0 = 
getE0(*event);
 
  120       const double E1 = 
getE1(*event);
 
  128         NOTICE(
"event: " << 
RIGHT(8) << event->mc_id << 
RIGHT(67) << 
"energy [GeV] momentum (x, y, z) [GeV] distance [m]" << endl);
 
  130         for (
size_t i = 0; 
i != 
event->mc_trks.size(); ++
i) {
 
  132           const Trk& track = 
event->mc_trks[
i];
 
  138           NOTICE(
LEFT(32) << showpos << name << 
' ' << 
FIXED(7,3) << track.
E << 
"    " << 
FIXED(7,3) << track.
E * track.
dir << 
"    " << 
FIXED(7,3) << (track.
pos - neutrino.
pos).len() << endl);
 
  140         NOTICE(
LEFT(32) << 
"balance:" << 
' ' << 
FIXED(7,3) << E0 - E1 << 
"    " << 
FIXED(7,3) << P0 - P1 << endl);
 
  144       h1.Fill((P0 - P1).len());
 
  157         he.Fill(
log10(track->E));
 
  158         hp.Fill(track->pos.x*track->pos.x + track->pos.y*track->pos.y, track->pos.z);
 
  162     hn.Fill((Double_t) n);
 
Vec getP1(const Evt &evt)
Get momentum vector of the final state of a neutrino interaction. 
 
Utility class to parse command line options. 
 
int main(int argc, char *argv[])
 
ROOT TTree parameter settings of various packages. 
 
JCylinder3D getCylinder(const JHead &header)
Get cylinder corresponding to the positions of generated tracks (i.e. 
 
double getE0(const Evt &evt)
Get initial state energy of a neutrino interaction. 
 
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. 
 
double getE1(const Evt &evt)
Get final state energy of a neutrino interaction. 
 
Vec getVisibleEnergyVector(const Trk &track, const JCylinder3D &can=getMaximumContainmentVolume())
Get the visible energy vector of a track. 
 
Auxiliary data structure for floating point format specification. 
 
double E
Energy [GeV] (either MC truth or reconstructed) 
 
#define MAKE_STRING(A)
Make string. 
 
double len() const 
Get length. 
 
Head getHeader(const JMultipleFileScanner_t &file_list)
Get Monte Carlo header. 
 
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. 
 
I/O formatting auxiliaries. 
 
JDirection3D getDirection(const Vec &dir)
Get direction. 
 
T & getInstance(const T &object)
Get static instance from temporary object. 
 
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object 
 
set_variable E_E log10(E_{fit}/E_{#mu})"
 
double getVisibleEnergy(const Trk &track, const JCylinder3D &can=getMaximumContainmentVolume())
Get the visible energy of a track. 
 
General purpose messaging. 
 
Auxiliary data structure for sequence of same character. 
 
then fatal The output file must have the wildcard in the name
 
Scanning of objects from multiple files according a format that follows from the extension of each fi...
 
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 [m] of the track at time t 
 
Auxiliary class to define a range between two values. 
 
General purpose class for object reading from a list of file names. 
 
Utility class to parse command line options. 
 
const JLimit & getLimit() const 
Get limit. 
 
Vec getP0(const Evt &evt)
Get momentum vector of the initial state of a neutrino interaction. 
 
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. 
 
#define DEBUG(A)
Message macros. 
 
The cylinder used for photon tracking.