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) {