95{
98
100
101 string inputFile;
105 bool option;
107
108 try {
109
111
118
119 zap(argc, argv);
120 }
121 catch(const exception &error) {
122 FATAL(error.what() << endl);
123 }
124
125
127
128 const double latitude = 36.0 + 16.0/60.0;
130
131 DEBUG(
"Latitude " <<
FIXED(7,3) << latitude << endl);
132 DEBUG(
"Gravitational constant [m/s^2] " <<
FIXED(7,3) << g << endl);
133
134 ifstream in(inputFile.c_str());
135
136 while (in.peek() == '#') {
137 in.ignore(numeric_limits<streamsize>::max(), '\n');
138 }
139
140 JGraph_t ga;
141 JGraph_t gb;
142 JGraph_t gc;
143 JGraph_t gd;
144
145 TH1D hz("hz", NULL, 101, -2.5, +2.5);
146 TH1D h1("v1 [DelGrosso]", NULL, 101, -1.0, +1.0);
147 TH1D h2("v2 [KM3NeT]", NULL, 101, -1.0, +1.0);
148
149 {
150 for (seabird object; in >> object; ) {
151
152 const double z =
getDepth(
object.P * 1.0e-2, latitude, option);
155 const double P =
getPressure(
object.z, latitude, option);
156
157 if (
debug >= debug_t) {
158
159 cout <<
FIXED(9,3) <<
object.P <<
' ';
160
161 cout <<
FIXED(9,3) <<
object.z <<
' '
162 <<
FIXED(9,6) <<
object.v <<
' ';
163
164 cout <<
FIXED(9,6) << v1 <<
' '
165 <<
FIXED(9,6) << v2 <<
' ';
166
167 cout <<
FIXED(9,4) <<
object.rho <<
' ';
168
169 cout <<
FIXED(9,6) << P <<
' ';
170 cout <<
FIXED(9,3) << z <<
' ';
171 cout << endl;
172 }
173
174 if (D(object.z)) {
175 hz.Fill(object.z - z);
176 h1.Fill(object.v - v1);
177 h2.Fill(object.v - v2);
178 }
179
180 ga.put(object.z, object.v);
181 gb.put(object.z, v1);
182 gc.put(object.z, object.v - v1);
183 gd.put(object.z, object.v - v2);
184 }
185 }
186
187
189
190 out << hz << h1 << h2;
191
196
197 out.Write();
198 out.Close();
199}
#define DEBUG(A)
Message macros.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Utility class to parse command line options.
double getPressure(const double z, const double phi, const bool option=true)
Get pressure.
double getVelocityDelGrosso(const double p, const double S, const double T)
Get sound velocity.
double getGravity(const double phi)
Get gravitational constant.
double getDepth(const double P, const double phi, const bool option=true)
Get depth.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Auxiliary data structure for floating point format specification.
Implementation for depth dependend velocity of sound.
JSoundVelocity & set(const double z0)
Set depth.
Empty structure for specification of parser element that is initialised (i.e. does not require input)...
Auxiliary data structure to build TGraph.