|
| | Readout (std::string IpAddress, const int UDPPort, const int TCPPort, const int Type, const pulse_grid grid) |
| |
| | Readout (std::string IpAddress, const int UDPPort, const int TCPPort, const int Type=0x34, const efu_time p=efu_time(1)) |
| |
|
void | addReadout (uint8_t Ring, uint8_t FEN, double tof, double weight, const void *data) |
| | Add a weighted readout: draws n ~ Poisson(weight) and buffers the event n times (weight <= 0 is a noise event, sent once); a full buffer is transmitted and a new packet started automatically.
|
| |
|
void | addReadout (uint8_t Ring, uint8_t FEN, efu_time t, const void *data) |
| | Add a single readout with an explicit event time.
|
| |
|
void | addReadout (uint8_t Ring, uint8_t FEN, efu_time t, const CAEN_readout_t *data) |
| |
|
void | addReadout (uint8_t Ring, uint8_t FEN, efu_time t, const CDT_readout_t *data) |
| |
|
void | addReadout (uint8_t Ring, uint8_t FEN, efu_time t, const VMM3_readout_t *data) |
| |
|
void | addReadout (uint8_t Ring, uint8_t FEN, efu_time t, const BM0_readout_t *data) |
| |
|
void | addReadout (uint8_t Ring, uint8_t FEN, efu_time t, const BM2_readout_t *data) |
| |
|
void | addReadout (uint8_t Ring, uint8_t FEN, efu_time t, const BMI_readout_t *data) |
| |
|
int | send () |
| | Transmit the current data buffer.
|
| |
|
void | setPulseTime (uint32_t PHI, uint32_t PLO, uint32_t PPHI, uint32_t PPLO) |
| | Update the pulse and previous pulse times (high/low pairs).
|
| |
| void | update_time () |
| | Advance the reference (pulse) time to now, flushing the buffer and starting a new packet; keeps (now - prev) within the 5-period window required by the ESS CAEN EFUs.
|
| |
|
std::pair< uint32_t, uint32_t > | lastPulseTime () const |
| |
|
std::pair< uint32_t, uint32_t > | prevPulseTime () const |
| |
|
std::pair< uint32_t, uint32_t > | lastEventTime () const |
| |
|
void | newPacket () |
| | Initialize a new packet with no readouts.
|
| |
|
int | command_shutdown () const |
| | Tell the remote EFU to shut down via its TCP command port.
|
| |
| int | verbose (const Verbosity v) |
| | Set verbosity via enum.
|
| |
| int | verbose (const int v) |
| |
|
void | dump_to (const std::string &filename, const std::string &dataset_name="events") |
| | Also store every added readout to a legacy flat HDF5 file (see Writer).
|
| |
| void | fold_tof (const bool fold) |
| | Choose whether add-by-time-of-flight readouts are stamped at pulse + (tof % period) — attributing each event to the frame it would be detected in, as the real readout system reports it — instead of pulse + tof. Either way, a time-of-flight of a period or more is counted and reported.
|
| |
| uint64_t | long_tof_count () const |
| | How many readouts so far had a time-of-flight of at least one pulse period.
|
| |
| void | output_queue (const int queue) |
| | Send on this output queue (0 until set). An EFU keeps one packet sequence per queue, so several processes sending to one EFU – MPI ranks – each need their own.
|
| |
| int | output_queue () const |
| |
| int | sequence_number () const |
| | The number the next packet will be sent with.
|
| |
| void | enable_network () |
| |
| void | disable_network () |
| |
| void | set_random_seed (const uint32_t seed) |
| |
| int | random_poisson (const double mean) |
| |
Runtime-streaming readout generator used by the legacy Readout components.
Buffers ESS readout packets and sends them over UDP to one EFU while the simulation runs. The weighted addReadout() draws n ~ Poisson(weight) and sends the event that many times (weight <= 0 marks a noise event, sent exactly once); it can also mirror every stored record to a legacy flat HDF5 file via dump_to(). The replay path uses Sender instead.
Pulse (reference) times are ticks of an epoch-anchored pulse_grid, so every Readout – one per MPI rank – and mccode-plumber's mp-tdc agree on them.
Definition at line 36 of file ReadoutClass.h.