60     JParser<> zap(
"Example program to verify Monte Carlo data.");
 
   63     zap[
'n'] = 
make_field(numberOfEvents)      = JLimit::max();
 
   71   catch(
const exception &error) {
 
   72     FATAL(error.what() << endl);
 
   79   if (detectorFile != 
"") {
 
   95   NOTICE(
"Apply detector offset " << center << endl); 
 
  103   for ( ; 
x <  -10.0; 
x +=  5.0) { 
X.push_back(
x); }
 
  104   for ( ; 
x <  +20.0; 
x +=  1.0) { 
X.push_back(
x); }
 
  105   for ( ; 
x <  +50.0; 
x +=  2.0) { 
X.push_back(
x); }
 
  106   for ( ; 
x < +100.0; 
x +=  5.0) { 
X.push_back(
x); }
 
  107   for ( ; 
x < +250.0; 
x += 10.0) { 
X.push_back(
x); }
 
  108   for ( ; 
x < +900.0; 
x += 50.0) { 
X.push_back(
x); }
 
  112   size_t number_of_events = 0;
 
  114   while (inputFile.hasNext()) {
 
  116     STATUS(
"event: " << setw(10) << inputFile.getCounter() << 
'\r'); 
DEBUG(endl);
 
  118     const Evt* 
event = inputFile.next();
 
  120     if (!event->mc_hits.empty()) {
 
  124     size_t number_of_muons = 0;
 
  128         number_of_muons += 1;
 
  132     if (!
M(number_of_muons)) {
 
  138       const double t1 = 
getTime(*hit);
 
  141                                                   event->mc_trks.end(),
 
  144       if (track != event->mc_trks.end() && 
is_muon(*track)) {
 
  148         if (router.hasPMT(hit->pmt_id)) {
 
  150           const JPMT&  pmt = router.getPMT(hit->pmt_id);
 
  151           const double t0  = muon.
getT(pmt);
 
  153           H1[pmt.
getID()]->Fill(t1 - t0, hit->a);
 
  155           H1->Fill(t1 - t0, hit->a);
 
  162   if (number_of_events != 0) {
 
  164     const double W = 1.0 / (double) number_of_events;
 
Router for direct addressing of PMT data in detector data structure. 
 
Utility class to parse command line options. 
 
JPredicate< JResult_t T::*, JComparison::eq > make_predicate(JResult_t T::*member, const JResult_t value)
Helper method to create predicate for data member. 
 
JTrack3E getTrack(const Trk &track)
Get track. 
 
bool is_muon(const Trk &track)
Test whether given track is a (anti-)muon. 
 
double getTime(const Hit &hit)
Get true time of hit. 
 
Head getHeader(const JMultipleFileScanner_t &file_list)
Get Monte Carlo header. 
 
Auxiliary class for defining the range of iterations of objects. 
 
Type definition of range. 
 
Auxiliary class to manage set of compatible ROOT objects (e.g. histograms) using unique keys...
 
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object 
 
int getID() const 
Get identifier. 
 
void convertToPDF(TH1 &h1, const std::string &option="NW", const double factor=1.0)
Convert 1D histogram to PDF. 
 
Data structure for PMT geometry, calibration and status. 
 
then break fi done getCenter read X Y Z let X
 
double getT(const JVector3D &pos) const 
Get arrival time of Cherenkov light at given position. 
 
void load(const std::string &file_name, JDetector &detector)
Load detector from input file. 
 
General purpose class for object reading from a list of file names. 
 
then usage $script< input_file >< detector_file > fi set_variable OUTPUT_DIR set_variable SELECTOR JDAQTimesliceL1 set_variable DEBUG case set_variable DEBUG
 
Data structure for position in three dimensions. 
 
const JLimit & getLimit() const 
Get limit. 
 
The Evt class respresent a Monte Carlo (MC) event as well as an offline event.