33{
   36 
   40 
   41  try {
   42 
   43    JParser<> zap(
"Program to add multi-dimensional histograms of muon light");
 
   44 
   48 
   49    zap(argc, argv);
   50  }
   51  catch(const exception &error) {
   52    FATAL(error.what() << endl);
 
   53  }
   54 
   55 
   57 
   62 
   64 
   65  JMultiHistogram_t h0;   
   66  JMultiHistogram_t h1;   
   67  JMultiHistogram_t h2;   
   68 
   69  h1.transformer.reset(new JFunctionTransformer_t());
   70  h2.transformer.reset(new JFunctionTransformer_t());
   71 
   72  bool add = false;
   73 
   74  for(vector<string>::const_iterator file_name = inputFile.begin(); file_name != inputFile.end(); ++file_name) {
   75 
   76    NOTICE(
"loading input from file " << *file_name << 
"... " << flush);
 
   77 
   78    try {
   79 
   81 
   82      if (add) {
   83 
   84        JMultiHistogram_t p0;
   86        JMultiHistogram_t p2;
   87 
   88        p1.transformer.reset(
new JFunctionTransformer_t());
 
   89        p2.transformer.reset(new JFunctionTransformer_t());
   90 
   91        for(JMultiHistogram_t* p : { &p0, &
p1, &p2 }) {
 
   92          in.load(*p);
   93        }
   94 
   95        in.close();
   96 
   98 
   99        
  100 
  101        for(JMultiHistogram_t::super_iterator
  102              i0 = h0.super_begin(), i1 = h1.super_begin(), i2 = h2.super_begin(),
  103              j0 = p0.super_begin(), j1 = 
p1.super_begin(), j2 = p2.super_begin();
 
  104            i0 != h0.super_end(); ++i0, ++i1, ++i2, ++j0, ++j1, ++j2)
  105          {
  106            i0.getValue().add(j0.getValue());
  107            i1.getValue().add(j1.getValue());
  108            i2.getValue().add(j2.getValue());
  109          }
  110      }
  111      else {
  112 
  113        for(JMultiHistogram_t* p : { &h0, &h1, &h2 }) {
  114          in.load(*p);
  115        }
  116 
  117        in.close();
  118 
  120 
  121        add = true;
  122      }
  123    }
  126    }
  127  }
  128 
  130 
  131  NOTICE(
"Storing, " << flush);
 
  132 
  133  for (const JMultiHistogram_t* p : { &h0, &h1, &h2 }) {
  134    out.store(*p);
  135  }
  136 
  137  out.close();
  139}
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
 
Binary buffered file input.
 
Binary buffered file output.
 
virtual const char * what() const override
Get error message.
 
Utility class to parse command line options.
 
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).