43     int number_of_hits = 0;
 
   47       while (p != data1.end() && q != data2.end() && *p < *q - Tmax_ns) { ++p; }
 
   48       while (p != data1.end() && q != data2.end() && *q < *p - Tmax_ns) { ++q; }
 
   50       if (p == data1.end() || q == data2.end()) {
 
   54       if (fabs(*p - *q) <= Tmax_ns) {
 
   59     return number_of_hits;
 
   70 int main(
int argc, 
char **argv)
 
   74   using namespace KM3NETDAQ;
 
   84     JParser<> zap(
"Example program to test conversion between Monte Carlo and DAQ times.");
 
   88     zap[
'n'] = 
make_field(numberOfEvents)      = JLimit::max();
 
   94   catch(
const exception &error) {
 
   95     FATAL(error.what() << endl);
 
   99   using namespace KM3NETDAQ;
 
  119   while (inputFile.hasNext()) {
 
  121     STATUS(
"event: " << setw(10) << inputFile.getCounter() << 
'\r'); 
DEBUG(endl);
 
  126     const Evt*       
event = ps;
 
  141         DEBUG(
"Hit (MC):  " << setw(5) << i->pmt_id << 
' ' << 
FIXED(6,1) << 
getTime(*i) << endl);
 
  143         mc[i->pmt_id].insert(
getTime(*i));
 
  152       DEBUG(
"Hit (DAQ): " << setw(5) << pmt.
getID() << 
' ' << 
FIXED(6,1) << converter.
getTime(*i, pmt) << endl);
 
  157     int number_of_hits = 0;
 
  159     for (map_type::const_iterator p = mc.begin(), q = data.begin(); ; ++p, ++q) {
 
  161       while (p != mc.end() && q != data.end() && p->first < q->first) { ++p; }
 
  162       while (p != mc.end() && q != data.end() && q->first < p->first) { ++q; }
 
  164       if (p == mc.end() || q == data.end()) {
 
  168       if (p->first == q->first) {
 
  169         number_of_hits += get_count(p->second, q->second, Tmax_ns);
 
  173     NOTICE(
"Number of hits " << setw(5) << number_of_hits << 
'/' << setw(5) << tev->
size<
JHit_t>() << endl);
 
  175     ASSERT(number_of_hits != 0);
 
  178   ASSERT(inputFile.getCounter() != 0);
 
Auxiliary class to set-up Hit. 
 
Utility class to parse command line options. 
 
ROOT TTree parameter settings. 
 
const JModule & getModule(const JObjectID &id) const 
Get module parameters. 
 
Data structure for a composite optical module. 
 
bool empty() const 
Check emptyness of hit container. 
 
Synchronously read DAQ events and Monte Carlo events (and optionally other events). 
 
Router for direct addressing of module data in detector data structure. 
 
Auxiliary class to synchronously read DAQ events and Monte Carlo events (and optionally other events)...
 
double getTime() const 
Get DAQ/trigger minus Monte Carlo hit time. 
 
Auxiliary data structure for floating point format specification. 
 
double getTime(const Hit &hit)
Get true time of hit. 
 
Data structure for detector geometry and calibration. 
 
unsigned int size() const 
Get number of hits. 
 
esac $JPP_DIR examples JDetector JTransitTime o $OUTPUT_FILE n N $NPE T $TTS_NS d $DEBUG for HISTOGRAM in tts tt2 pmt
 
bool is_noise(const Hit &hit)
Verify hit origin. 
 
Auxiliary class for defining the range of iterations of objects. 
 
const_iterator< T > end() const 
Get end of data. 
 
#define ASSERT(A,...)
Assert macro. 
 
I/O formatting auxiliaries. 
 
const_iterator< T > begin() const 
Get begin of data. 
 
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object 
 
int getID() const 
Get identifier. 
 
Data structure for PMT geometry and calibration. 
 
void load(const JString &file_name, JDetector &detector)
Load detector from input file. 
 
const JPMT & getPMT(const int index) const 
Get PMT. 
 
General purpose messaging. 
 
Direct access to module in detector data structure. 
 
Utility class to parse command line options. 
 
Auxiliary class to convert DAQ/trigger hit time to/from Monte Carlo hit time. 
 
const JLimit & getLimit() const 
Get limit. 
 
General purpose class for multiple pointers. 
 
The Evt class respresent a Monte Carlo (MC) event as well as an offline event. 
 
#define DEBUG(A)
Message macros. 
 
int main(int argc, char *argv[])