34{
   37 
   39  JLimit_t&      numberOfEvents = inputFile.getLimit();
 
   41  string         detectorFile;
   43 
   44  try { 
   45 
   46    JParser<> zap(
"Example program to determine speed of PMT router.");
 
   47    
   53    
   54    zap(argc, argv);
   55  }
   56  catch(const exception& error) {
   57    FATAL(error.what() << endl);
 
   58  }
   59 
   60 
   62 
   63  try {
   65  }
   68  }
   69 
   71 
   73 
   74  map_t zmap;
   75 
   76  for (JDetector::const_iterator module = 
detector.begin(); module != 
detector.end(); ++module) {
 
   77    for (JModule::const_iterator pmt = module->begin(); pmt != module->end(); ++pmt) {
   78      zmap[pmt->getID()] = module->getLocation();
   79    }
   80  }
   81 
   83 
   84  JRange_t floor  = JRange_t::DEFAULT_RANGE();
 
   85  JRange_t string = JRange_t::DEFAULT_RANGE();
 
   86 
   87  for (JDetector::const_iterator module = 
detector.begin(); module != 
detector.end(); ++module) {
 
   88    floor .
include(module->getFloor());
 
   89    string.
include(module->getString());
 
   90  }
   91 
   92  NOTICE(
"String  " << 
string.getLowerLimit() << 
" - " << 
string.getUpperLimit() << endl);
 
   93  NOTICE(
"Floor   " << floor .getLowerLimit() << 
" - " << floor .getUpperLimit() << endl);
 
   94 
   95 
   97 
   98  TH2D h1("h1", NULL,
   99          string.getLength() + 1,
  100          string.getLowerLimit() - 0.5,
  101          string.getUpperLimit() + 0.5,
  105 
  106  TH2D h2("h2", NULL,
  107          string.getLength() + 1,
  108          string.getLowerLimit() - 0.5,
  109          string.getUpperLimit() + 0.5,
  113 
  116 
  118 
  120 
  121    const Evt* 
event = inputFile.
next();
 
  122 
  123    t1.start();
  124 
  125    for (vector<Hit>::const_iterator hit = event->mc_hits.begin(); hit != event->mc_hits.end(); ++hit) {
  126      
  127      const JLocation& pos = zmap[hit->pmt_id];
 
  128      
  130    }
  131    
  132    t1.stop();
  133  }
  135 
  137 
  139 
  141 
  142    const Evt* 
event = inputFile.
next();
 
  143 
  144    t2.start();
  145    
  146    for (vector<Hit>::const_iterator hit = event->mc_hits.begin(); hit != event->mc_hits.end(); ++hit) {
  147      
  148      const JLocation& pos = router.getParentModule(hit->pmt_id);
 
  149      
  151    }
  152    
  153    t2.stop();
  154  }
  156 
  157  t1.print(cout);
  158  t2.print(cout);
  159 
  160  out.Write();
  161  out.Close();
  162}
#define DEBUG(A)
Message macros.
 
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
 
Logical location of module.
 
int getFloor() const
Get floor number.
 
int getString() const
Get string number.
 
Router for direct addressing of PMT data in detector data structure.
 
Auxiliary class for CPU timing and usage.
 
Utility class to parse command line options.
 
General purpose class for object reading from a list of file names.
 
virtual void rewind() override
Rewind.
 
virtual bool hasNext() override
Check availability of next element.
 
counter_type getCounter() const
Get counter.
 
virtual const pointer_type & next() override
Get next element.
 
void load(const std::string &file_name, JDetector &detector)
Load detector from input file.
 
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
 
The Evt class respresent a Monte Carlo (MC) event as well as an offline event.
 
Type definition of range.
 
Auxiliary class for defining the range of iterations of objects.
 
static counter_type max()
Get maximum counter value.