49{
   53 
   54  string               detectorFile;
   57  bool                 showPMTAddress;
   59 
   60  try { 
   61 
   62    JParser<> zap(
"Auxiliary application to plot PMT parameters.");
 
   63 
   64    zap[
'a'] = 
make_field(detectorFile,      
"detector file.");
 
   66    zap[
'P'] = 
make_field(parameters,        
"PMT calibration data (or corresponding file name)");
 
   67    zap[
'A'] = 
make_field(showPMTAddress,    
"show PMT address on y-axis");
 
   69 
   70    zap(argc, argv);
   71  }
   72  catch(const exception &error) {
   73    FATAL(error.what() << endl);
 
   74  }
   75 
   77 
   78  try {
   80  }
   83  }
   84 
   86    FATAL(
"Empty detector." << endl);
 
   87  }
   88 
   89  JManager<string, TH1D> manager(new TH1D("%", NULL, NUMBER_OF_PMTS, -0.5, NUMBER_OF_PMTS - 0.5));
   90 
   91  for (JDetector::iterator module = 
detector.begin(); module != 
detector.end(); ++module) {
 
   92 
   93    DEBUG(
"Module " << setw(10) << module->getID() << endl);
 
   94 
   95    for (int pmt = 0; pmt != NUMBER_OF_PMTS; ++pmt) {
   96 
   98 
   99      for (JProperties::const_iterator p = properties.begin(); p != properties.end(); ++p) {
  100 
  101        double value = 0.0;
  102 
  103        try { value = (p->second.getValue<const double>()); }           catch(const exception& error) {}
  104        try { value = (p->second.getValue<const bool>() ? 1.0 : 0.0); } catch(const exception& error) {}
  105 
  106        manager[
MAKE_CSTRING(module->getID() << 
"." << p->first)]->SetBinContent(pmt + 1, value);
 
  107      }
  108 
  110      
  111      manager[
MAKE_CSTRING(module->getID() << 
"." << EFFICIENCY)]->SetBinContent(pmt + 1, value);
 
  112    }
  113  }
  114 
  115  if (showPMTAddress) {
  116 
  118 
  119    for (JManager<string, TH1D>::iterator i = manager.begin(); i != manager.end(); ++i) {
  120 
  121      int id;
  122 
  123      istringstream(i->first) >> id;
  124 
  126    }
  127  }
  128 
  130}
#define DEBUG(A)
Message macros.
 
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
 
#define MAKE_CSTRING(A)
Make C-string.
 
Lookup table for PMT addresses in detector.
 
const JModuleAddressMap & get(const int id) const
Get module address map.
 
Auxiliary class for map of PMT parameters.
 
const JPMTParameters & getPMTParameters(const JPMTIdentifier &id) const
Get PMT parameters.
 
JProperties getProperties(const JEquationParameters &equation=JPMTParameters::getEquationParameters())
Get properties of this class.
 
Utility class to parse parameter values.
 
Utility class to parse command line options.
 
void load(const std::string &file_name, JDetector &detector)
Load detector from input file.
 
JDetectorAddressMap & getDetectorAddressMap()
Get detector address map.
 
void setAxisLabels(TAxis *axis, const JModuleAddressMap &memo)
Set axis with PMT address labels.
 
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
 
KM3NeT DAQ data structures and auxiliaries.