36 using namespace KM3NETDAQ;
48 JParser<> zap(
"Auxiliary application to plot PMT parameters.");
50 zap[
'a'] =
make_field(detectorFile,
"detector file.");
51 zap[
'P'] =
make_field(inputFile,
"PMT calibration data file(s)");
53 zap[
'r'] =
make_field(regexp,
"regular expresion to extract bin labels for the x-axis") =
" ";
54 zap[
'A'] =
make_field(showPMTAddress,
"show PMT address on y-axis");
55 zap[
'L'] =
make_field(labelInterval,
"interval between x-axis bins for which labels are shown") = 1;
60 catch(
const exception &error) {
61 FATAL(error.what() << endl);
74 FATAL(
"Empty detector." << endl);
89 NUMBER_OF_FILES, -0.5, NUMBER_OF_FILES - 0.5,
92 manager->Sumw2(kFALSE);
96 const int n = (NUMBER_OF_FILES < labelInterval) ? 1 : labelInterval;
98 const TPRegexp buffer(regexp);
100 for (
int i = 0; i != NUMBER_OF_FILES; ++i) {
103 manager->GetXaxis()->SetBinLabel(i+1 ,
parse(buffer, TString(inputFile[i].c_str())));
105 manager->GetXaxis()->SetBinLabel(i+1 ,
" ");
109 for (JDetector::iterator module =
detector.begin(); module !=
detector.end(); ++module) {
111 DEBUG(
"Module " << setw(10) << module->getID() << endl);
115 for (
int i = 0; i != NUMBER_OF_FILES; ++i) {
119 for (JProperties::const_iterator p = properties.begin(); p != properties.end(); ++p) {
122 manager[
MAKE_CSTRING(module->getID() <<
"." << p->first)]->SetBinContent(i + 1, pmt + 1, p->second.getValue<
const double>());
124 catch(
const exception& error) {}
127 manager[
MAKE_CSTRING(module->getID() <<
"." << p->first)]->SetBinContent(i + 1, pmt + 1, p->second.getValue<
const bool>() ? 1.0 : 0.0);
129 catch(
const exception& error) {}
140 i->second->Sumw2(kFALSE);
149 istringstream(i->first) >> id;
Utility class to parse command line options.
Utility class to parse parameter values.
*fatal Wrong number of arguments esac JCookie sh typeset Z DETECTOR typeset Z SOURCE_RUN typeset Z TARGET_RUN set_variable PARAMETERS_FILE $WORKDIR parameters
#define MAKE_CSTRING(A)
Make C-string.
Lookup table for PMT addresses in detector.
boost::property_tree::ptree parse(std::string str)
Auxiliary class to manage set of compatible ROOT objects (e.g. histograms) using unique keys...
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
void setAxisLabels(TAxis *axis, const JModuleAddressMap &memo)
Set axis with PMT address labels.
Auxiliary class for map of PMT parameters.
JDetectorAddressMap & getDetectorAddressMap()
Get detector address map.
void load(const std::string &file_name, JDetector &detector)
Load detector from input file.
double getSurvivalProbability(const JPMTParameters ¶meters)
Get model dependent probability that a one photo-electron hit survives the simulation of the PMT assu...
then usage $script< input_file >< detector_file > fi set_variable OUTPUT_DIR set_variable SELECTOR JDAQTimesliceL1 set_variable DEBUG case set_variable DEBUG
Data structure for PMT parameters.
do set_variable DETECTOR_TXT $WORKDIR detector
static const int NUMBER_OF_PMTS
Total number of PMTs in module.
double QE
relative quantum efficiency