Jpp 19.3.0-rc.1
the software that should make you happy
Loading...
Searching...
No Matches
JPrintMultiHeader.cc
Go to the documentation of this file.
1#include <string>
2#include <iostream>
3#include <iomanip>
4
6
7#include "JAAnet/JHead.hh"
8#include "JAAnet/JAAnetDictionary.hh"
9
11#include "JSupport/JSupport.hh"
12
14
16
17#include "Jeep/JParser.hh"
18#include "Jeep/JMessage.hh"
19
20
21/**
22 * \file
23 * Auxiliary program to print Monte Carlo run headers.
24 *
25 * \author mdejong
26 */
27int main(int argc, char **argv)
28{
29 using namespace std;
30 using namespace JPP;
31
33 bool print_as_head;
34 bool print_as_json;
35 int debug;
36
37 try {
38
39 JParser<> zap("Auxiliary program to print Monte Carlo run headers.");
40
41 zap['f'] = make_field(inputFile);
42 zap['H'] = make_field(print_as_head);
43 zap['J'] = make_field(print_as_json);
44 zap['d'] = make_field(debug) = 1;
45
46 zap(argc, argv);
47 }
48 catch(const exception &error) {
49 FATAL(error.what() << endl);
50 }
51
52 typedef JTYPELIST<Head, JHead>::typelist typelist;
53 typedef JObjectOutput<typelist>* output_type;
54
55 output_type out = (print_as_json ?
56 (output_type) new JSonObjectOutput <typelist>(cout) :
57 (output_type) new JStreamObjectOutput<typelist>(cout));
58
59 while (inputFile.hasNext()) {
60
61 const MultiHead* head = inputFile.next();
62
63 for (MultiHead::const_iterator i = head->begin(); i != head->end(); ++i) {
64
65 if (print_as_head)
66 out->put(*i);
67 else
68 out->put(JHead(*i));
69 }
70 }
71
72 delete out;
73}
74
General purpose messaging.
#define FATAL(A)
Definition JMessage.hh:67
int debug
debug level
Definition JSirene.cc:72
Utility class to parse command line options.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Definition JParser.hh:2142
int main(int argc, char **argv)
Scanning of objects from a single file according a format that follows from the extension of each fil...
ROOT TTree parameter settings of various packages.
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:1698
Object reading from a list of files.
virtual bool hasNext() override
Check availability of next element.
virtual const pointer_type & next() override
Get next element.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Type list.
Definition JTypeList.hh:23