49 Long64_t numberOfEvents;
58 JParser<> zap(
"Example program to test hit coincidence building with random data.");
70 catch(
const exception &error) {
71 FATAL(error.what() << endl);
74 gRandom->SetSeed(seed);
76 using namespace KM3NETDAQ;
89 simbad.reset(k40Simulator.clone());
94 TProfile hn(
"hn", NULL, 31, 0.5, +31.5);
95 TProfile hc(
"hc", NULL, 21, -1.05, +1.05);
96 TProfile ht(
"ht", NULL, 20, 0.5, +20.5);
101 typedef double hit_type;
108 JSuperFrame2D_t buffer;
111 for (
int event_count = 0; event_count < numberOfEvents; ++event_count) {
113 STATUS(
"event: " << setw(10) << event_count <<
'\r');
DEBUG(endl);
115 const int frame_index = 1;
121 for (JDAQTimeslice::const_iterator super_frame = timeslice.begin(); super_frame != timeslice.end(); ++super_frame) {
123 if (moduleRouter.hasModule(super_frame->getModuleID())) {
127 const JModule& module =
detector.getModule(moduleRouter.getAddress(super_frame->getModuleID()));
129 buffer(*super_frame, module);
133 buildL1(buffer, back_inserter(dataL1));
136 if (!dataL1.empty()) {
140 JFrameL1_t d1(dataL1);
143 for (
int i = 1; i <= hn.GetNbinsX(); ++i) {
145 buildL2.numberOfHits = (int) hn.GetBinCenter(i);
149 buildL2(buffer, d1, back_inserter(d2));
151 hn.Fill((
double) buildL2.numberOfHits, (
double) d2.size() / (double) dataL1.size());
158 if (!dataL1.empty()) {
162 JFrameL1_t d1(dataL1);
165 for (
int i = 1; i <= hc.GetNbinsX(); ++i) {
167 buildL2.ctMin = hc.GetBinCenter(i);
171 buildL2(buffer, d1, back_inserter(d2));
173 hc.Fill(buildL2.ctMin, (
double) d2.size() / (double) dataL1.size());
180 if (!dataL1.empty()) {
184 JFrameL1_t d1(dataL1);
187 for (
int i = ht.GetNbinsX(); i != 0; --i) {
189 buildL2.TMaxLocal_ns = ht.GetBinCenter(i);
193 buildL2(buffer, d1, back_inserter(d2));
195 ht.Fill(buildL2.TMaxLocal_ns, (
double) d2.size() / (double) dataL1.size());
Utility class to parse command line options.
Data structure for a composite optical module.
Router for direct addressing of module data in detector data structure.
Empty structure for specification of parser element that is initialised (i.e. does not require input)...
Auxiliary class to handle optional I/O.
Data structure for UTC time.
double getTimeOfFrame(const int frame_index)
Get start time of frame in ns since start of run for a given frame index.
T & getInstance(const T &object)
Get static instance from temporary object.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Auxiliary class for map of PMT parameters.
Data structure for L2 parameters.
Auxiliary data structure for L1 build parameters.
2-dimensional frame with time calibrated data from one optical module.
Timeslice with random data.
#define DEBUG(A)
Message macros.