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.