123{
127
129
131 string usr;
137 double precision;
140 string option;
142
143 try {
144
146
148
150
156 zap[
'f'] =
make_field(inputFile,
"pair of input files (output of JCalibrateK40)");
158 zap[
'e'] =
make_field(precision,
"precision for HV comparison") = 0.5;
161 zap[
'O'] =
make_field(option,
"ROOT fit option, see TH1::Fit.") =
"";
164
166 }
167 catch(const exception &error) {
169 }
170
171
172 try {
174 }
175 catch(const exception& error) {
177 }
178
182 };
183
184 for (int i = 0; i != 2; ++i) {
186 }
187
189
190 try {
192 }
195 }
196
197 if (option.find('S') == string::npos) { option += 'S'; }
199
200
202
203
204 TF1 f1("f1", "[0]*TMath::Gaus(x,[1],[2]) + [3]");
205
207
211 };
212
214
217 continue;
218 }
219
221
223
225
227
229
231
234
237
238 double t1[] = {
241 };
242
244
245 for (int i = 0; i != 2; ++i) {
246
248
249
250
256
257 for (
int iy = 1;
iy <= h1.GetNbinsX(); ++
iy) {
258
261
262 h1.SetBinContent(
iy, y);
263 h1.SetBinError (
iy, sqrt(y));
264
268 }
269
272 }
273
275 }
276
278
279 f1.SetParameter(0,
ymax);
280 f1.SetParameter(1, mean);
281 f1.SetParameter(2, sigma);
282 f1.SetParameter(3,
ymin);
283
284 for (
Int_t i = 0; i != f1.GetNpar(); ++i) {
285 f1.SetParError(i, 0.0);
286 }
287
289
291 FATAL(
"Invalid TFitResultPtr " << h1.GetName() <<
endl);
292 }
293
295 cout <<
"Histogram slice: "
297 <<
FIXED(7,3) << f1.GetParameter(1) <<
" +/- "
298 <<
FIXED(7,3) << f1.GetParError(1) <<
' '
301 << (
result->IsValid() ?
"" :
"failed") <<
endl;
302 }
303
304 t1[i] = f1.GetParameter(1);
305 }
306 }
307
310
312
314
317 }
318
321 }
322
324 cout <<
setw(10) <<
module->getID() << "." << FILL(2,'0') << p2.first << FILL() << ' ';
325 cout <<
"(" <<
FILL(2,
'0') << p2.second <<
FILL() <<
")" <<
' ';
327 }
328
329 Q[p2.first].put(
combinatorics.getSign(p2) * (t1[1] - t1[0]));
330 }
331 }
332 }
333
336 H1[
module->getID()]->SetBinContent(i+1, Q[i].getMean());
337 H1[
module->getID()]->SetBinError (i+1, Q[i].getSTDev());
338 }
339 }
340 }
341
344 }
345}
#define DEBUG(A)
Message macros.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
#define MAKE_CSTRING(A)
Make C-string.
#define gmake_property(A)
macros to convert (template) parameter to JPropertiesElement object
Utility class to parse parameter values.
Template definition of a multi-dimensional oscillation probability interpolation table.
static const char *const _2S
Name extension for 2D counts.
std::vector< JServer > getServernames()
Get list of names of available database servers.
void load(const std::string &file_name, JDetector &detector)
Load detector from input file.
size_t getCount(const array_type< T > &buffer, const JCompare_t &compare)
Count number of unique values.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
KM3NeT DAQ data structures and auxiliaries.
static const int NUMBER_OF_PMTS
Total number of PMTs in module.
Auxiliary data structure for sequence of same character.
Auxiliary data structure for floating point format specification.
Type definition of range.
Auxiliary data structure for setup of complete system.
Auxiliary class to sort pairs of PMT addresses within optical module.
Auxiliary data structure for location of product in detector.
Wrapper class for server name.
Empty structure for specification of parser element that is initialised (i.e. does not require input)...