54   using namespace KM3NETDAQ;
 
   57   typedef JParallelFileScanner< JTypeList<JDAQEvent, JEvt> >       JParallelFileScanner_t;
 
   58   typedef JParallelFileScanner_t::multi_pointer_type               multi_pointer_type;
 
   61   JParallelFileScanner_t  inputFile;
 
   67   size_t         numberOfPrefits;
 
   74     JParser<> zap(
"Program to determine veto of muon trajectory.");
 
   79     zap[
'n'] = 
make_field(numberOfEvents)      = JLimit::max();
 
   80     zap[
'R'] = 
make_field(roadWidth_m)         = numeric_limits<double>::max();
 
   89   catch(
const exception& error) {
 
   90     FATAL(error.what() << endl);
 
   99     load(detectorFile, detector);
 
  101   catch(
const JException& error) {
 
  105   const JModuleRouter moduleRouter(detector);
 
  108   const JBuildL0<JHitL0>  buildL0;
 
  113     VS += vs->getLength() * 1.0e-9;
 
  121   while (inputFile.hasNext()) {
 
  123     STATUS(
"event: " << setw(10) << inputFile.getCounter() << 
'\r'); 
DEBUG(endl);
 
  125     multi_pointer_type ps = inputFile.next();
 
  131     JEvt::iterator __end = evt->
end();
 
  134       __end = partition(evt->begin(), __end, JHistory::is_not_event(
JMUONVETO));
 
  137     if (evt->begin() != __end) {
 
  139       copy(evt->begin(), __end, back_inserter(out));
 
  141       if (numberOfPrefits > 0) {
 
  142         advance(__end = evt->begin(), min(numberOfPrefits, out.size()));
 
  145       partial_sort(evt->begin(), __end, evt->end(), 
qualitySorter);
 
  147       __end = partition(evt->begin(), __end, JHistory::is_event(evt->begin()->getHistory()));
 
  152       buildL0(*tev, moduleRouter, 
true, back_inserter(dataL0));
 
  155       for (JEvt::iterator track = evt->begin(); track != __end; ++track) {
 
  164         for (JDataL0_t::const_iterator i = dataL0.begin(); i != dataL0.end(); ++i) {
 
  170           bool is_veto = 
false;
 
  172           if (tz.getDistance(hit) <= roadWidth_m) {
 
  174             const double t1 = hit.getT() - tz.getT(hit);
 
  182             top.insert(hit.getPMTIdentifier());
 
  190         for (JDetector::const_iterator module = detector.begin(); module != detector.end(); ++module) {
 
  192           JPosition3D pos(module->getPosition());
 
  196           if (tz.getDistance(pos) <= roadWidth_m) {
 
  198             for (
unsigned int i = 0; i != module->size(); ++i) {
 
  203               count += top.count(
id);
 
  208         out.push_back(JFit(*track).add(
JMUONVETO));
 
  223   JSingleFileScanner<JRemove<typelist, JEvt>::typelist> io(inputFile);
 
Utility class to parse command line options. 
 
number of photo-electrons from JVeto.cc 
 
number of hits from JVeto.cc 
 
JLimit JLimit_t
Type definition of limit. 
 
const_iterator< T > end() const 
Get end of data. 
 
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object 
 
void load(const JString &file_name, JDetector &detector)
Load detector from input file. 
 
counter_type advance(counter_type &counter, const counter_type value, const counter_type limit=std::numeric_limits< counter_type >::max())
Advance counter. 
 
bool qualitySorter(const JFIT::JFit &first, const JFIT::JFit &second)
Comparison of fit results. 
 
void copy(const Head &from, JHead &to)
Copy header from from to to. 
 
JDirection3D getDirection(const Vec &v)
Get direction. 
 
const JLimit & getLimit() const 
Get limit. 
 
JPosition3D & rotate(const JRotation3D &R)
Rotate. 
 
#define DEBUG(A)
Message macros. 
 
JPosition3D getPosition(const Vec &v)
Get position.