Jpp master_rocky-44-g75b7c4f75
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
13#include "JROOT/JRootPrinter.hh"
15
17
18#include "Jeep/JParser.hh"
19#include "Jeep/JMessage.hh"
20
21
22/**
23 * \file
24 * Auxiliary program to print Monte Carlo run headers.
25 *
26 * \author mdejong
27 */
28int main(int argc, char **argv)
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}
75
General purpose messaging.
#define FATAL(A)
Definition JMessage.hh:67
int debug
debug level
Definition JSirene.cc:69
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)
Print objects in ASCII format using ROOT dictionary.
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