26 int main(
int argc,
char **argv)
38 JParser<> zap(
"Auxiliary program to compose detector from separate calibrations.");
40 zap[
'a'] =
make_field(detectorFile,
"detector file (module identifiers, module locations and PMT identifiers are used)");
41 zap[
'f'] =
make_field(inputFile,
"detector calibrations file (json format)");
47 catch(
const exception &error) {
48 FATAL(error.what() << endl);
55 load(detectorFile, detector);
57 catch(
const JException& error) {
62 FATAL(
"No detector address map for detector identier " << detector.getID() << endl);
67 const JModuleRouter moduleRouter(detector);
68 const JPMTRouter pmtRouter (detector);
73 istream* in = open<istream>(inputFile.c_str());
79 DEBUG(setw(4) << js << endl);
87 json::const_iterator data = js.find(
Data_t);
89 if (data != js.end()) {
91 for (
size_t i = 0; i != data->size(); ++i) {
93 if (data->at(i).contains(
PMTT0s_t)) {
109 for (JModuleRotation::const_iterator i = rotation.begin(); i != rotation.end(); ++i) {
111 if (moduleRouter.hasModule(i->getID())) {
113 JModule& module = detector.getModule(moduleRouter.getAddress(i->getID()));
115 module =
getModule(demo.get(module.getID()), module.getID(), module.getLocation());
121 for (JModulePosition::const_iterator i = position.begin(); i != position.end(); ++i) {
123 if (moduleRouter.hasModule(i->getID())) {
125 JModule& module = detector.getModule(moduleRouter.getAddress(i->getID()));
131 for (JPMTCalibration::const_iterator i = calibration.begin(); i != calibration.end(); ++i) {
133 if (pmtRouter.hasPMT(i->getID())) {
135 JPMT& pmt = detector.getPMT(pmtRouter.getAddress(i->getID()));
137 pmt.setCalibration(*i);
142 detector.comment.add(JMeta(argc,argv));
147 catch(
const JException& error) {