29int main(
int argc,
char **argv)
36 Long64_t numberOfSlices;
44 JParser<> zap(
"Example program to test generation of time slices with random data.");
48 zap[
'B'] =
make_field(rate_Hz,
"background rate [Hz]");
49 zap[
'N'] =
make_field(recycling,
"number of recycles / time interval for sampling data") = make_pair(0, 0.0);
55 catch(
const exception &error) {
56 FATAL(error.what() << endl);
60 gRandom->SetSeed(seed);
66 for (Long64_t counter = 0; counter != numberOfSlices; ++counter) {
68 STATUS(
"slice: " << setw(10) << counter <<
'\r');
DEBUG(endl);
79 double period_ns = 1.0e9 / (NUMBER_OF_PMTS * rate_Hz);
81 for (
double t1 = 0.0 *
getFrameTime() + gRandom->Exp(period_ns); t1 < 0.5 * getFrameTime(); t1 += gRandom->Exp(period_ns)) {
82 buffer.push_back(
JDAQHit(PMT_L0[0], t1, 0));
87 for (
double t1 = 0.5 *
getFrameTime() + gRandom->Exp(period_ns); t1 < 1.0 * getFrameTime(); t1 += gRandom->Exp(period_ns)) {
88 buffer.push_back(
JDAQHit(PMT_L0[1], t1, 0));
92 timeslice[0].
add(buffer.size(), buffer.data());
97 h0->Fill((Double_t) hit->getT());
100 for (
size_t i = 1; i <= recycling.first; ++i) {
102 timeslice.
recycle(recycling.second);
107 h0->Fill((Double_t) hit->getT());
KM3NeT DAQ constants, bit handling, etc.
Dynamic ROOT object management.
General purpose messaging.
#define DEBUG(A)
Message macros.
Utility class to parse command line options.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Utility class to parse command line options.
Auxiliary class to manage set of compatible ROOT objects (e.g. histograms) using unique keys.
void Write(TDirectory &out, const bool wm=false)
Write objects to file.
unsigned char JPMT_t
PMT channel in FPGA.
JDAQTimeslice & add(const JDAQTimeslice ×lice)
Add another timeslice.
int main(int argc, char **argv)
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
KM3NeT DAQ data structures and auxiliaries.
double getFrameTime()
Get frame time duration.
Timeslice with random data.
void recycle(const double T_ns)
Recycle time slice by randomly shuffling time intervals of data.