Jpp  19.1.0-rc.1
the software that should make you happy
Functions
JPrintMultiHeader.cc File Reference

Auxiliary program to print Monte Carlo run headers. More...

#include <string>
#include <iostream>
#include <iomanip>
#include "km3net-dataformat/offline/MultiHead.hh"
#include "JAAnet/JHead.hh"
#include "JAAnet/JAAnetDictionary.hh"
#include "JSupport/JSingleFileScanner.hh"
#include "JSupport/JSupport.hh"
#include "JROOT/JRootPrinter.hh"
#include "JROOT/JSonObjectOutput.hh"
#include "JLang/JStreamObjectOutput.hh"
#include "Jeep/JParser.hh"
#include "Jeep/JMessage.hh"

Go to the source code of this file.

Functions

int main (int argc, char **argv)
 

Detailed Description

Auxiliary program to print Monte Carlo run headers.

Author
mdejong

Definition in file JPrintMultiHeader.cc.

Function Documentation

◆ main()

int main ( int  argc,
char **  argv 
)

Definition at line 28 of file JPrintMultiHeader.cc.

29 {
30  using namespace std;
31  using namespace JPP;
32 
34  bool print_as_head;
35  bool print_as_json;
36  int debug;
37 
38  try {
39 
40  JParser<> zap("Auxiliary program to print Monte Carlo run headers.");
41 
42  zap['f'] = make_field(inputFile);
43  zap['H'] = make_field(print_as_head);
44  zap['J'] = make_field(print_as_json);
45  zap['d'] = make_field(debug) = 1;
46 
47  zap(argc, argv);
48  }
49  catch(const exception &error) {
50  FATAL(error.what() << endl);
51  }
52 
53  typedef JTYPELIST<Head, JHead>::typelist typelist;
54  typedef JObjectOutput<typelist>* output_type;
55 
56  output_type out = (print_as_json ?
57  (output_type) new JSonObjectOutput <typelist>(cout) :
58  (output_type) new JStreamObjectOutput<typelist>(cout));
59 
60  while (inputFile.hasNext()) {
61 
62  const MultiHead* head = inputFile.next();
63 
64  for (MultiHead::const_iterator i = head->begin(); i != head->end(); ++i) {
65 
66  if (print_as_head)
67  out->put(*i);
68  else
69  out->put(JHead(*i));
70  }
71  }
72 
73  delete out;
74 }
#define FATAL(A)
Definition: JMessage.hh:67
int debug
debug level
Definition: JSirene.cc:69
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Definition: JParser.hh:2158
Monte Carlo run header.
Definition: JHead.hh:1236
Template interface of object output for single data type.
Template implementation of stream output for single data type.
Utility class to parse command line options.
Definition: JParser.hh:1714
Template implementation of stream output for single data type.
Object reading from a list of files.
virtual const pointer_type & next() override
Get next element.
virtual bool hasNext() override
Check availability of next element.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Definition: JSTDTypes.hh:14
Type list.
Definition: JTypeList.hh:23