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)
 
  110   JLimit_t&              numberOfEvents = inputFile.getLimit();
 
  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) {}
 
  179               if (
distance(i, p) >= numberOfHits) {
 
  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;
 
std::istream & operator>>(std::istream &in, JAANET::JHead &header)
Read header from input.
 
Keyboard settings for unbuffered input.
 
General purpose messaging.
 
#define DEBUG(A)
Message macros.
 
Scanning of objects from multiple files according a format that follows from the extension of each fi...
 
Utility class to parse command line options.
 
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
 
I/O formatting auxiliaries.
 
Auxiliary class to define a range between two values.
 
ROOT TTree parameter settings of various packages.
 
int main(int argc, char **argv)
 
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 for multiplexing object iterators.
 
virtual bool hasNext() override
Check availability of next element.
 
virtual const pointer_type & next() override
Get next element.
 
Utility class to parse command line options.
 
General purpose class for object reading from a list of file names.
 
Enable unbuffered terminal input.
 
char get()
Get single character.
 
int getRunNumber() const
Get run number.
 
int getFrameIndex() const
Get frame index.
 
JTDC_t getT() const
Get time.
 
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
 
Long64_t counter_type
Type definition for counter.
 
KM3NeT DAQ data structures and auxiliaries.
 
static const int NUMBER_OF_PMTS
Total number of PMTs in module.
 
Auxiliary data structure for sequence of same character.
 
Type definition of range.
 
Empty structure for specification of parser element that is initialised (i.e. does not require input)...
 
Auxiliary class to select ROOT class based on class name.
 
Auxiliary class for defining the range of iterations of objects.