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));
149 const JModule& module = router.getModule(i->getModuleID());
152 DEBUG(
"Hit (DAQ): " << setw(5) << pmt.
getID() <<
' ' <<
FIXED(6,1) << converter.getTime(*i, pmt) << endl);
154 data[pmt.
getID()].insert(converter.getTime(*i, pmt));
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.
Data structure for a composite optical module.
bool empty() const
Check emptyness of hit container.
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)...
Auxiliary data structure for floating point format specification.
double getTime(const Hit &hit)
Get true time of hit.
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.
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.
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.