39     return KM3NETDAQ::getDataType<T>();
 
   49 int main(
int argc, 
char **argv)
 
   55   Long64_t       numberOfEvents;
 
   60     JParser<> zap(
"Auxiliary program to convert binary data to ROOT formatted data.");
 
   64     zap[
'n'] = 
make_field(numberOfEvents)  = numeric_limits<Long64_t>::max();
 
   69   catch(
const exception &error) {
 
   70     FATAL(error.what() << endl);
 
   80   JAutoTreeWriter<int> writer;
 
   84   if (!writer.is_open())
 
   93   Long64_t event_count = 0;
 
   97     STATUS(
"File: " << *i << endl);
 
   99     ifstream in(i->c_str());
 
  101     for (JStreamReader is(in); event_count < numberOfEvents; ++event_count) {
 
  103       STATUS(
"event: " << setw(10) << event_count << 
'\r'); 
DEBUG(endl);
 
  105       if (!(is >> preamble))
 
  108       DEBUG(
"length   " << preamble.getLength()   << endl);
 
  109       DEBUG(
"type     " << preamble.getDataType() << endl);
 
  111       if (preamble.getLength() < JDAQPreamble::sizeOf()) {
 
  113         ERROR(
"File " << *i << 
" invalid length " << preamble.getLength() << endl);
 
  118       JAutoTreeWriter<int>::iterator i = writer.find(preamble.getDataType());
 
  120       if (i != writer.end()) {
 
  122         buffer.resize(preamble.getLength());
 
  124         memcpy(buffer.data(), static_cast<JDAQAbstractPreamble*>(&preamble), JDAQPreamble::sizeOf());
 
  126         is.read(buffer.data()        + JDAQPreamble::sizeOf(), 
 
  127                 preamble.getLength() - JDAQPreamble::sizeOf());
 
  129         JByteArrayReader bin(buffer.data(), buffer.size());
 
  131         i->second->copy(bin);
 
  135         in.ignore((streamsize) (preamble.getLength() - JDAQPreamble::sizeOf()));
 
  137         ERROR(
"Illegal data type, skip" << endl);