Jpp 19.3.0-rc.2
the software that should make you happy
Loading...
Searching...
No Matches
JConvertDetectorFormat.cc
Go to the documentation of this file.
1#include <string>
2
5#include "JSupport/JMeta.hh"
6
7#include "Jeep/JParser.hh"
8#include "Jeep/JMessage.hh"
9
10
11/**
12 * \file
13 *
14 * Auxiliary program to convert format of detector files.
15 *
16 * The following combinations of file name extensions are supported:
17 * <table>
18 * <tr><th> input </th><th> output </th></tr>
19 * <tr><td> detx </td><td> detx </td></tr>
20 * <tr><td> detx </td><td> datx </td></tr>
21 * <tr><td> detx </td><td> gdml </td></tr>
22 * <tr><td> datx </td><td> detx </td></tr>
23 * <tr><td> datx </td><td> datx </td></tr>
24 * <tr><td> datx </td><td> gdml </td></tr>
25 * <tr><td> det </td><td> detx </td></tr>
26 * <tr><td> det </td><td> datx </td></tr>
27 * <tr><td> det </td><td> gdml </td></tr>
28 * </table>
29 *
30 * Note that if the output file name is the same as the input file name,
31 * the original file will be overwritten.
32 * \author rbruijn
33 */
34int main(int argc, char **argv)
35{
36
37 using namespace std;
38 using namespace JPP;
39
40 string detectorFile;
41 string outputFile;
42 string variant;
43 bool squash;
44 int debug;
45
46 try {
47
48 JParser<> zap("Auxiliary program to convert format of detector files.");
49
50 zap['a'] = make_field(detectorFile);
51 zap['o'] = make_field(outputFile);
52 zap['V'] = make_field(variant, "\"\" maintains version") = getDetectorVersions<string>(), "";
53 zap['q'] = make_field(squash, "squash meta data");
54 zap['d'] = make_field(debug, "debug level") = 2;
55
56 zap(argc, argv);
57 }
58 catch(const exception &error) {
59 FATAL(error.what() << endl);
60 }
61
63
64 try {
65 load(detectorFile, detector);
66 }
67 catch(const JException& error) {
68 FATAL(error);
69 }
70
71 if (variant != "") {
72 detector.setVersion(variant);
73 }
74
75 if (squash) {
76 detector.comment.clear();
77 }
78
79 detector.comment.add(JMeta(argc,argv));
80
81 try {
82 store(outputFile, detector);
83 }
84 catch(const JException& error) {
85 FATAL(error);
86 }
87}
int main(int argc, char **argv)
string outputFile
Data structure for detector geometry and calibration.
General purpose messaging.
#define FATAL(A)
Definition JMessage.hh:67
int debug
debug level
Definition JSirene.cc:72
ROOT I/O of application specific meta data.
Utility class to parse command line options.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Definition JParser.hh:2142
Detector data structure.
Definition JDetector.hh:96
General exception.
Definition JException.hh:24
Utility class to parse command line options.
Definition JParser.hh:1698
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Detector file.
Definition JHead.hh:227
Auxiliary class for ROOT I/O of application specific meta data.
Definition JMeta.hh:72