Go to the documentation of this file.
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)
77 JLimit_t& numberOfEvents = inputFile.getLimit();
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);
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);
Auxiliary class to set-up Hit.
Auxiliary class for defining the range of iterations of objects.
Auxiliary data structure for floating point format specification.
const_iterator< T > begin() const
Get begin of data.
#define ASSERT(A,...)
Assert macro.
const JModule & getModule(const JObjectID &id) const
Get module parameters.
void load(const JString &file_name, JDetector &detector)
Load detector from input file.
General purpose class for multiple pointers.
The Evt class respresent a Monte Carlo (MC) event as well as an offline event.
Auxiliary class to convert DAQ/trigger hit time to/from Monte Carlo hit time.
int main(int argc, char **argv)
Utility class to parse command line options.
bool empty() const
Check emptyness of hit container.
const_iterator< T > end() const
Get end of data.
virtual bool hasNext()
Check availability of next element.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
unsigned int size() const
Get number of hits.
counter_type getCounter() const
Get counter.
const JPMT & getPMT(const int index) const
Get PMT.
virtual const multi_pointer_type & next()
Get next element.
int getID() const
Get identifier.
double getTime(const Hit &hit)
Get true time of hit.
Data structure for a composite optical module.
Data structure for PMT geometry and calibration.
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)...
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
double getTime() const
Get DAQ/trigger minus Monte Carlo hit time.
#define DEBUG(A)
Message macros.
KM3NeT DAQ data structures and auxiliaries.
bool is_noise(const Hit &hit)
Verify hit origin.