18const static unsigned int ttdc = 1414808643;
 
   19const static unsigned int taes = 1413563731;
 
   25  static bool const is_a_tty = isatty(1);
 
   32    ioctl(1, TIOCGWINSZ, &sz);
 
 
   44inline std::ostream& 
operator <<(std::ostream& stream, 
const hit_t& hit)
 
   46  return stream << 
"C: " 
   47                << std::setfill(
' ') << std::setw(2)
 
   48                << (
unsigned int) hit.channel
 
   51                << std::setfill(
' ') << std::setw(6)
 
   52                << ntohl(hit.timestamp)
 
   55                << std::setfill(
' ') << std::setw(6)
 
   56                << (
unsigned int) hit.ToT;
 
 
   63    std::cout << 
"InfoWord: yes\n" 
   64              << *
static_cast<const InfoWord* const
>(
static_cast<const void* const
>(
 
   70    std::cout << 
"InfoWord: no\n";
 
 
   78  for (
unsigned i = 0; i < nhits; ++i) {
 
   79    if (hits[i].channel < 0 || hits[i].channel > 30) {
 
   82      ++summary[hits[i].channel];
 
   88  for (
unsigned i = 0; i < summary.size(); ++i) {
 
   89    std::cout << 
"CH" << std::setfill(
'0') << std::setw(2) << i
 
   90              << 
": " << std::setfill(
' ') << std::setw(4) << summary[i] << 
' ';
 
   92    if ((i + 1) % n == 0) {
 
  100    std::cout << 
"wrong channels: " << wrong << 
'\n';
 
 
  106  const unsigned int nhits = 
buffer_size / 
sizeof(hit_t);
 
  108  std::cout << 
"Number of hits: " << nhits << 
'\n';
 
  110  const hit_t* 
const hits = 
static_cast<const hit_t* const
>(
 
  111      static_cast<const void* const
>(buffer)
 
  115    const int printing = 20 > nhits ? nhits : 20;
 
  118    for (
int i = 0; i < printing; ++i)
 
  121                << std::setfill(
'0') << std::setw(2)
 
  126      if ((i + 1) % n == 0)
 
 
  149    stream.read((
char*) &header, 
sizeof(header));
 
  151    if (stream.gcount() != 
sizeof(header))
 
  156    std::cout << 
"Counter: " << ++count << 
'\n';
 
  159    assert(header.
FrameLength - 
sizeof(header) >= 0 && 
"Wrong frame length.");
 
  161    std::size_t 
const payload_size = header.
FrameLength - 
sizeof(header);
 
  163    if (payload.capacity() < payload_size)
 
  165      payload.resize(payload_size);
 
  168    stream.read((
char*) payload.data(), payload_size);
 
  170    if (
static_cast<std::size_t
>(stream.gcount()) != payload_size)
 
  180      std::cout << 
"Unknown data type\n";
 
 
  187int main(
int argc, 
char* argv[])
 
  191    if (strcmp(argv[1], 
"-h") == 0)
 
  193      std::cout << 
"Usage: " << argv[0] << 
" [-h] [filename]\n" 
  195                << 
"-h shows this help\n" 
  196                << 
"filename: if specified reads from file, otherwise stdin is used\n";
 
  213    std::ifstream input_file(argv[1], std::ios::binary);
 
 
static const size_t buffer_size
 
struct __attribute__((packed)) hit_t
 
int main(int argc, char *argv[])
 
void parseData(std::istream &stream)
 
void print_summary(hit_t const *const hits, std::size_t nhits)
 
static const unsigned int taes
 
static int terminal_width
 
void print_acoustic_data(const char *const buffer, ssize_t buffer_size)
 
std::ostream & operator<<(std::ostream &stream, const hit_t &hit)
 
void sig_term_change(int)
 
static const unsigned int ttdc
 
void print_optical_data(const char *const buffer, ssize_t buffer_size)
 
bool is_infoword(const void *const data)