61       const int t1 = (second.
getT() - first.
getT()) % period;
 
   63       return (t1 <= margin || t1 >= period - margin);
 
   73     friend std::istream& 
operator>>(std::istream& 
in, JPeriod& 
object)
 
   75       return in >> 
object.period >> 
object.margin;
 
   85     friend std::ostream& 
operator<<(std::ostream& out, 
const JPeriod& 
object)
 
   87       return out << 
object.period << 
' ' << 
object.margin;
 
  101 int main(
int argc, 
char **argv)
 
  105   using namespace KM3NETDAQ;
 
  121     JParser<> zap(
"Example program to search for spurious hits.");
 
  123     zap[
'f'] = 
make_field(inputFile,         
"input file).");
 
  124     zap[
'n'] = 
make_field(numberOfEvents)    = JLimit::max(); 
 
  125     zap[
'C'] = 
make_field(selector,          
"timeslice selector, e.g. JDAQTimeslice.")   = getROOTClassSelection<JDAQTimesliceTypes_t>();
 
  126     zap[
'T'] = 
make_field(ToT_ns,            
"time-over-threshold range [ns]");
 
  127     zap[
'p'] = 
make_field(is_periodic,       
"periodicity");
 
  128     zap[
'M'] = 
make_field(numberOfHits,      
"minimum number of hits for periodicity");
 
  129     zap[
'N'] = 
make_field(numberOfColumns,   
"number of columns for printing")            = 5;
 
  135   catch(
const exception& error) {
 
  136     FATAL(error.what() << endl);
 
  142   for (
counter_type counter = 0; in.
hasNext() && counter != inputFile.getLimit(); ++counter) {
 
  144     STATUS(
"event: " << setw(10) << counter << 
'\r'); 
DEBUG(endl);
 
  148     for (JDAQTimeslice::const_iterator frame = timeslice->begin(); frame != timeslice->end(); ++frame) {
 
  155       buffer2D_type buffer(numeric_limits<JDAQHit::JPMT_t>::max(), buffer1D_type());
 
  158         buffer[hit->getPMT()].push_back(*hit);
 
  167         if (!buffer[pmt].empty()) {
 
  171           for (buffer1D_type::iterator 
i = buffer[pmt].begin(); 
i != buffer[pmt].end(); ) {
 
  173             if (ToT_ns(
i->getToT())) {
 
  175               buffer1D_type::iterator p = 
i;
 
  177               for (++p; p != buffer[pmt].end() && ToT_ns(p->getToT()) && is_periodic(*
i, *p); ++p) {}
 
  180                 top[id].push_back(*
i);
 
  198           if (veto.count(
i->first) == 0) {
 
  200             const int pmt = 
i->first.getPMTAddress();
 
  203                  << setw(9) << 
i->first.getModuleID() << 
'.' << 
FILL(2,
'0') << 
i->first.getPMTAddress()   << 
FILL() << 
' ' 
  204                  << setw(1) << frame->testHighRateVeto(pmt) 
 
  205                  << setw(1) << frame->testFIFOStatus  (pmt)  << endl;
 
  213               const bool has_pmt  =  (hit->getPMT() == 
i->first.getPMTAddress());
 
  214               const bool has_hit  =  (find(
i->second.begin(), 
i->second.end(), *hit) != 
i->second.end());
 
  222                 cout << setw(10) << hit->getT() << 
' ' << setw(3) << (int) hit->getToT() << 
' ' << 
RESET;
 
  224                 if ((++count % numberOfColumns) == 0) {
 
  233             cout << endl << 
"press any key to continue> " << flush;
 
Utility class to parse command line options. 
 
int main(int argc, char *argv[])
 
ROOT TTree parameter settings of various packages. 
 
std::vector< T >::difference_type distance(typename std::vector< T >::const_iterator first, typename PhysicsEvent::const_iterator< T > second)
Specialisation of STL distance. 
 
Auxiliary class to select ROOT class based on class name. 
 
Empty structure for specification of parser element that is initialised (i.e. does not require input)...
 
Long64_t counter_type
Type definition for counter. 
 
Auxiliary class for multiplexing object iterators. 
 
JTDC_t getT() const 
Get time. 
 
int getRunNumber() const 
Get run number. 
 
then echo The file $DIR KM3NeT_00000001_00000000 root already please rename or remove it first
 
int getFrameIndex() const 
Get frame index. 
 
Auxiliary class for defining the range of iterations of objects. 
 
Type definition of range. 
 
I/O formatting auxiliaries. 
 
char get()
Get single character. 
 
Keyboard settings for unbuffered input. 
 
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object 
 
Enable unbuffered terminal input. 
 
virtual const pointer_type & next() override
Get next element. 
 
virtual bool hasNext() override
Check availability of next element. 
 
General purpose messaging. 
 
Auxiliary data structure for sequence of same character. 
 
Scanning of objects from multiple files according a format that follows from the extension of each fi...
 
std::istream & operator>>(std::istream &in, JAANET::JHead &header)
Read header from input. 
 
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. 
 
static const int NUMBER_OF_PMTS
Total number of PMTs in module. 
 
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable INPUT_FILE $argv[2] eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY JAcoustics sh $DETECTOR_ID source JAcousticsToolkit sh CHECK_EXIT_CODE typeset A EMITTERS get_tripods $WORKDIR tripod txt EMITTERS get_transmitters $WORKDIR transmitter txt EMITTERS for EMITTER in
 
#define DEBUG(A)
Message macros.