29{
32
35
37 string inputFile;
39 map_type parameters;
41
42 try {
43
45
51
53 }
54 catch(const exception &error) {
56 }
57
59
61
62 try {
64 }
67 }
68
71 }
72
75
77
78
79 TFile* in = TFile::Open(inputFile.c_str(),
"read");
80
82 FATAL(
"No data in inputfile " << inputFile <<
endl);
83 }
84
86
87 for (map_type::const_iterator i = parameters.begin(); i != parameters.end(); ++i) {
88
89 const string key = i->first;
90 const JRange_t range = i->second;
91
94 100, range.first, range.second);
95
98 NUMBER_OF_PMTS, -0.5, NUMBER_OF_PMTS - 0.5,
100
101
102
104
105 const JModule&
module = detector.at(dom);
106
108
110 continue;
111 }
112
113 const int iy = (
module.getString() - 1) * number_of_floors + module.getFloor();
114
115 for (int pmt = 0; pmt != NUMBER_OF_PMTS; ++pmt) {
116
117 const double value =
p1->GetBinContent(pmt+1);
118
119 h1.Fill(value);
120
121 h2.SetBinContent(pmt+1,
iy, value);
122 }
123 }
124
125
126
127 h1.GetXaxis()->SetTitle(
key.c_str());
128 h1.GetYaxis()->SetTitle("PMTs");
129
130 h2.GetXaxis()->SetTitle("PMT DAQ index");
131
133
134 const JModule&
module = detector.at(dom);
135
139 }
140
141 h2.GetZaxis()->SetTitle(
key.c_str());
142
143
144 h2.Write();
145 h1.Write();
146 }
147
148 out.Close();
149}
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
#define MAKE_CSTRING(A)
Make C-string.
Data structure for a composite optical module.
Template definition of a multi-dimensional oscillation probability interpolation table.
Utility class to parse command line options.
int getNumberOfFloors(const JDetector &detector)
Get number of floors.
void load(const std::string &file_name, JDetector &detector)
Load detector from input file.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
KM3NeT DAQ data structures and auxiliaries.