28int main(
int argc, 
char **argv)
 
   54  catch(
const exception &error) {
 
   55    FATAL(error.what() << endl);
 
   70    FATAL(
"Empty detector." << endl);
 
   73  const int number_of_strings = getNumberOfStrings(
detector);
 
   74  const int number_of_floors  = getNumberOfFloors (
detector);
 
   76  const int ny = number_of_strings * number_of_floors;
 
   79  TFile* in = TFile::Open(inputFile.c_str(), 
"read");
 
   82    FATAL(
"No data in inputfile " << inputFile << endl);
 
   87  for (map_type::const_iterator i = parameters.begin(); i != parameters.end(); ++i) {
 
   89    const string   key   = i->first;
 
   90    const JRange_t range = i->second;
 
   94            100, range.first, range.second);
 
   98            NUMBER_OF_PMTS,  -0.5, NUMBER_OF_PMTS  - 0.5,
 
  103    for (
size_t dom = 0; dom != 
detector.size(); ++dom) {
 
  113      const int iy = (
module.getString() - 1) * number_of_floors  +  module.getFloor();
 
  115      for (
int pmt = 0; pmt != NUMBER_OF_PMTS; ++pmt) {
 
  117        const double value = 
p1->GetBinContent(pmt+1);
 
  121        h2.SetBinContent(pmt+1, iy, value);
 
  127    h1.GetXaxis()->SetTitle(key.c_str());
 
  128    h1.GetYaxis()->SetTitle(
"PMTs");
 
  130    h2.GetXaxis()->SetTitle(
"PMT DAQ index");
 
  132    for (
size_t dom = 0; dom != 
detector.size(); ++dom) {
 
  137                                                     << setw(3) << setfill(
'0') << module.
getString() << 
' '  
  138                                                     << setw(2) << setfill(
'0') << module.
getFloor()));
 
  141    h2.GetZaxis()->SetTitle(key.c_str());