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);
 
  144   for (
counter_type counter = 0; 
in.hasNext() && counter != inputFile.getLimit(); ++counter) {
 
  146     STATUS(
"event: " << setw(10) << counter << 
'\r'); 
DEBUG(endl);
 
  150     for (JDAQTimeslice::const_iterator frame = timeslice->begin(); frame != timeslice->end(); ++frame) {
 
  157       buffer2D_type buffer(numeric_limits<JDAQHit::JPMT_t>::max(), buffer1D_type());
 
  160         buffer[hit->getPMT()].push_back(*hit);
 
  169         if (!buffer[
pmt].empty()) {
 
  173           for (buffer1D_type::iterator i = buffer[
pmt].begin(); i != buffer[
pmt].end(); ) {
 
  175             if (ToT_ns(i->getToT())) {
 
  177               buffer1D_type::iterator p = i;
 
  179               for (++p; p != buffer[
pmt].end() && ToT_ns(p->getToT()) && is_periodic(*i, *p); ++p) {}
 
  181               if (
distance(i, p) >= numberOfHits) {
 
  182                 top[id].push_back(*i);
 
  200           if (veto.count(i->first) == 0) {
 
  202             const int pmt = i->
first.getPMTAddress();
 
  205                  << setw(9) << i->first.getModuleID() << 
'.' << 
FILL(2,
'0') << i->first.getPMTAddress()   << 
FILL() << 
' ' 
  206                  << setw(1) << frame->testHighRateVeto(pmt) 
 
  207                  << setw(1) << frame->testFIFOStatus  (pmt)  << endl;
 
  215               const bool has_pmt  =  (hit->getPMT() == i->first.getPMTAddress());
 
  216               const bool has_hit  =  (find(i->second.begin(), i->second.end(), *hit) != i->second.end());
 
  224                 cout << setw(10) << hit->getT() << 
' ' << setw(3) << (int) hit->getToT() << 
' ' << 
RESET;
 
  226                 if ((++count % numberOfColumns) == 0) {
 
  235             cout << endl << 
"press any key to continue> " << flush;
 
Utility class to parse command line options. 
 
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. 
 
esac print_variable DETECTOR INPUT_FILE OUTPUT_FILE CDF for TYPE in
 
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. 
 
int getRunNumber() const 
Get run number. 
 
int getFrameIndex() const 
Get frame index. 
 
esac $JPP_DIR examples JDetector JTransitTime o $OUTPUT_FILE n N $NPE T $TTS_NS d $DEBUG for HISTOGRAM in tts tt2 pmt
 
Auxiliary class for defining the range of iterations of objects. 
 
char get()
Get single character. 
 
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object 
 
Enable unbuffered terminal input. 
 
Auxiliary data structure for sequence of same character. 
 
JRange< Double_t > JRange_t
 
General purpose class for object reading from a list of file names. 
 
const JLimit & getLimit() const 
Get limit. 
 
static const int NUMBER_OF_PMTS
Total number of PMTs in module. 
 
#define DEBUG(A)
Message macros.