23{
26
28
29 string detectorFile;
30 string tripodsFile;
31 double Tx;
32 double Ty;
34
35 try {
36
37 JParser<> zap(
"Auxiliary application to apply tilt angles to seabed.");
38
39 zap[
'a'] =
make_field(detectorFile,
"detector file.");
40 zap[
'T'] =
make_field(tripodsFile,
"tripods file.");
41 zap[
'x'] =
make_field(Tx,
"tilt angle x-z [rad]");
42 zap[
'y'] =
make_field(Ty,
"tilt angle y-z [rad]");
44
45 zap(argc, argv);
46 }
47 catch(const exception& error) {
48 FATAL(error.what() << endl);
49 }
50
51
53
54 try {
55 tripods.
load(tripodsFile.c_str());
56 }
57 catch(const exception& error) {
58 FATAL(error.what() << endl);
59 }
60
61
63
64 try {
66 }
67 catch(const exception& error) {
68 FATAL(error.what() << endl);
69 }
70
71
73
74 if (!tripods.empty()) {
75
77
78 for (tripods_container::const_iterator i = tripods.begin(); i != tripods.end(); ++i) {
80 }
81
82 pos /= tripods.size();
83 }
84
85
87
89
91
93 }
94
96
97
99
100 for (tripods_container::iterator i = tripods.begin(); i != tripods.end(); ++i) {
101
102 const double dz = Tx * (i->getX() - pos.
getX()) + Ty * (i->getY() - pos.
getY());
103
105 }
106
107 tripods.
store(tripodsFile.c_str());
108
109 return 0;
110}
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Data structure for position in three dimensions.
Utility class to parse command line options.
Data structure for UTM position.
double getY() const
Get y.
double getX() const
Get x.
const JUTMPosition & getUTMPosition() const
Get UTM position.
void load(const std::string &file_name, JDetector &detector)
Load detector from input file.
void store(const std::string &file_name, const JDetector &detector)
Store detector to output file.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Auxiliary wrapper for I/O of container with optional comment (see JComment).
void store(const char *file_name) const
Store to output file.
void load(const char *file_name)
Load from input file.