180{
183
186
201
202 try {
203
205
206 properties[
"focus"] =
focus;
207
208 JParser<> zap(
"Auxiliary program to draw the footprint of detector(s).");
209
223
225 }
226 catch(const exception &error) {
228 }
229
230
233 }
234
235
237
239
242
244 ((
TRootCanvas *) cv->GetCanvasImp())->
Connect(
"CloseWindow()",
"TApplication", tp,
"Terminate()");
245 }
246
248
249 gROOT->SetStyle(
"gplot");
251
252 cv->SetFillStyle(4000);
254 cv->Divide(1, 1);
255 cv->cd(1);
256
257 JMarkerAttributes::getInstance().setMarkerSize(
markerSize);
258
264 };
265
268 double offset = 0.0;
269
271
273
274 try {
276 }
279 }
280
281 position =
detector.getUTMPosition();
282
283 const TAttMarker& marker = *JMarkerAttributes::getInstance().next();
286
287 if (offset == 0.0) {
289 }
290
292
294
295 if (
module->getFloor() == 0) {
296
299 marker,
301 offset));
302
303 counter.insert(
module->getString());
304 }
305 }
306
308
309 const bool status = (counter.count(
module->getString()) == 0);
310
312
315 marker,
317 offset));
318
319 counter.insert(
module->getString());
320 }
321 }
322 }
323
325
327
329
330 const TAttMarker& marker = *JMarkerAttributes::getInstance().next();
333
334 if (offset == 0.0) {
336 }
337
338 for (tripods_container::iterator i = tripods.begin(); i != tripods.end(); ++i) {
339
342 marker,
344 offset));
345 }
346 }
347
349
351
353
355
357
359
361
362 const TAttMarker& marker = *JMarkerAttributes::getInstance().next();
365
366 if (offset == 0.0) {
368 }
369
370 for (transmitters_container::iterator i = transmitters.begin(); i != transmitters.end(); ++i) {
371
373
376 marker,
378 offset));
379 }
380 }
381
382 } else {
383
384 FATAL(
"Tranmitter files and detector files should match one-to-one." <<
endl);
385 }
386 }
387
389
392 }
393
395
396 if (
focus.getRadius() > 0.0) {
398 }
399
401
402
403
406 }
407
409
410
411
412
413 cv->cd(1);
414
419
421
422 h2.GetXaxis()->SetTitle("x [m]");
423 h2.GetYaxis()->SetTitle("y [m]");
424
425 h2.GetXaxis()->CenterTitle(true);
426 h2.GetYaxis()->CenterTitle(true);
427
429 h2.Draw("AXIS");
430
431
433
436 }
437
439 i->second.Draw();
440 }
441
443
446
448 width = max(width, (
Ssiz_t) i->first.size());
449 }
450
452
454
456 if (!i->second.empty()) {
457 lg->AddEntry(&i->second[0].marker, i->first.c_str(),
"P");
458 }
459 }
460
462 }
463
464 cv->Update();
465
468 }
469
471 tp->Run();
472 }
473}
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
#define MAKE_STRING(A)
Make string.
Utility class to parse parameter values.
Data structure for circle in two dimensions.
double getRadius() const
Get radius.
Data structure for position in two dimensions.
Data structure for position in three dimensions.
double getY() const
Get y position.
double getX() const
Get x position.
Template definition of a multi-dimensional oscillation probability interpolation table.
Utility class to parse command line options.
Data structure for size of TCanvas.
Wrapper class around ROOT TStyle.
Data structure for UTM position.
double getUTMNorth() const
Get UTM north.
double getUTMEast() const
Get UTM east.
void copy(const Head &from, JHead &to)
Copy header from from to to.
JPosition3D getPosition(const Vec &pos)
Get position.
void load(const std::string &file_name, JDetector &detector)
Load detector from input file.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
TLegend * getLegend(const Int_t width, const Int_t height, const std::string option, const Double_t factor=1.0)
Get legend.
Auxiliary data structure for floating point format specification.
void load(const char *file_name)
Load from input file.
Empty structure for specification of parser element that is initialised (i.e. does not require input)...
JProperties getProperties()
Get properties of this class.