19{
20
23
24 string detectorFile_a;
25 string detectorFile_b;
27 bool squash;
29
30 try {
31
32 JParser<> zap(
"Auxiliary program to attach PMTs to detector.");
33
34 zap[
'a'] =
make_field(detectorFile_a,
"detector file w/o PMTs");
35 zap[
'f'] =
make_field(detectorFile_b,
"detector file with PMTs");
37 zap[
'q'] =
make_field(squash,
"squash meta data");
39
40 zap(argc, argv);
41 }
42 catch(const exception &error) {
43 FATAL(error.what() << endl);
44 }
45
48
49 try {
50 load(detectorFile_a, detector_a);
51 load(detectorFile_b, detector_b);
52 }
55 }
56
57 if (squash) {
59 }
60
62
65 }
66
67 for (JDetector::iterator module_b = detector_b.begin(); module_b != detector_b.end(); ++module_b) {
68
69 for (JDetector::iterator module_a = detector_a.begin(); module_a != detector_a.end(); ++module_a) {
70
71 if (module_a->getID() == module_b->getID()) {
72
73 DEBUG(
"Attach PMTs in module " << setw(10) << module_a->getID() << endl);
74
75 module_b->set ( module_a->getPosition());
76 module_b->swap(*module_a);
77
78 break;
79 }
80 }
81 }
82
83 try {
85 }
88 }
89}
#define DEBUG(A)
Message macros.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
bool setToLatestVersion()
Set to latest version.
Utility class to parse command line options.
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).
const std::string & getVersion() const
Get version.