35int main(
int argc, 
char **argv)
 
   52    JParser<> zap(
"Auxiliary application to plot PMT parameters as a function of variant.");
 
   54    zap[
's'] = 
make_field(server)     = getServernames();
 
   58    zap[
'a'] = 
make_field(detectorFile,      
"detector file.");
 
   59    zap[
'f'] = 
make_field(inputFile,         
"output of JPrintDB -q \"integration\" -c \";\" -W1")  = 
"";
 
   61    zap[
'P'] = 
make_field(parameters,        
"PMT calibration data (or corresponding file name)");
 
   66  catch(
const exception &error) {
 
   67    FATAL(error.what() << endl);
 
   88    JDB::reset(usr, pwd, cookie);
 
   90    detid = getDetector(
detector.getID());
 
   92  catch(
const exception& error) {
 
   93    FATAL(error.what() << endl);
 
   96  if (inputFile != 
"") {
 
   98    integration.
load(inputFile.c_str());
 
  102    DEBUG(
"Reading database table " << getTable<JDetectorIntegration_t>() << endl); 
 
  106      ResultSet& rs  = getResultSet(getTable<JDetectorIntegration_t>());
 
  108      if (! (rs >> integration)) {
 
  112    catch(
const exception& error) {
 
  113      FATAL(error.what() << endl);
 
  119  const JProductRouter product(integration, getPBSSequences(PBS::PMT));
 
  123  JManager<string, TH1D> H1(
new TH1D(
"TTS_ns[%]",     NULL, 100, 0.0, 4.0));
 
  124  JManager<string, TH1D> H2(
new TH1D(
"QE[%]",         NULL, 100, 0.0, 2.0));
 
  125  JManager<string, TH1D> H3(
new TH1D(
"gain[%]",       NULL, 100, 0.0, 2.0));
 
  126  JManager<string, TH1D> H4(
new TH1D(
"gainSpread[%]", NULL, 100, 0.0, 1.0));
 
  130    const JUPI_t      upi      = integration[i->second].content.getUPI();
 
  133    DEBUG(
"PMT " << left << setw(24) << upi.
getVariant() << right << 
' ' << location << endl); 
 
  149  out << H1 << H2 << H3 << H4;
 
 
int main(int argc, char **argv)
 
Data structure for detector geometry and calibration.
 
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
 
Direct access to location in detector data structure.
 
Dynamic ROOT object management.
 
General purpose messaging.
 
#define DEBUG(A)
Message macros.
 
Utility class to parse command line options.
 
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
 
Router for direct addressing of location data in detector data structure.
 
const JModule & getModule(const JLocation &location) const
Get module parameters.
 
Logical location of module.
 
Data structure for a composite optical module.
 
Auxiliary class for map of PMT parameters.
 
const JPMTParameters & getPMTParameters(const JPMTIdentifier &id) const
Get PMT parameters.
 
Data structure for PMT parameters.
 
double QE
relative quantum efficiency
 
double gainSpread
gain spread [unit]
 
double TTS_ns
transition time spread [ns]
 
int getID() const
Get identifier.
 
Utility class to parse command line options.
 
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
 
void load(const char *const file_name, const std::string &separator=";")
Load detector integration from CSV formatted input file.
 
map_type::const_iterator range_const_iterator
 
void configure(const std::string &detid, const bool option=false)
Configure detector integration for given detector identifier.
 
range_type find(const JUPI_t &upi) const
Find range of products with given UPI.
 
Auxiliary data structure for location of product in detector.
 
int string
position in detector
 
bool is_valid() const
Check validity of location.
 
int floor
position in string
 
int position
position in floor
 
Auxiliary class to map UPI to location in detector.
 
JLocation_t getLocation(const JUPI_t &upi) const
Get location of product with given UPI.
 
Wrapper class for server name.
 
Universal product identifier (UPI).
 
const std::string & getVariant() const
Get variant.