39int main(
int argc,
char **argv)
51 JParser<> zap(
"Auxiliary program to compare PDF tables of the arrival time of the Cherenkov light from a muon.");
60 catch(
const exception &error) {
70 typedef JFunction1D_t::argument_type argument_type;
76 const JFunction1D_t::JSupervisor
supervisor(
new JFunction1D_t::JDefaultResult(0.0));
79 const string file_name;
90 NOTICE(
"loading input from file " << i.file_name <<
"... " << flush);
92 i.pdf.load(i.file_name.c_str());
105 JPDF_t::super_const_iterator i = pdfA.super_begin();
106 JPDF_t::super_const_iterator j = pdfB.super_begin();
108 for ( ; i != pdfA.super_end() &&
109 j != pdfB.super_end(); ++i, ++j) {
111 const double Wa = pdfA.transformer->getWeight(
JArray_t(i.getKey()));
112 const double Wb = pdfB.transformer->getWeight(
JArray_t(j.getKey()));
114 if (fabs(i->first - j->first) > precision ||
115 fabs(i->second->first - j->second->first) > precision ||
116 fabs(i->second->second->first - j->second->second->first) > precision ||
117 fabs(
Wa -
Wb) > precision) {
121 << i->second->first <<
' '
122 << i->second->second->first <<
' '
127 << j->second->first <<
' '
128 << j->second->second->first <<
' '
134 const JFunction1D_t&
fa = i.getValue();
135 const JFunction1D_t& fb = j.getValue();
137 JFunction1D_t::const_iterator p =
fa.begin();
138 JFunction1D_t::const_iterator q = fb.begin();
140 while (p !=
fa.end() &&
143 if (fabs(p->getX() - q->getX()) > precision) {
151 if (!compare(p->getY(), q->getY(), precision)) {
153 DEBUG(
"a.y " << p->getX() <<
' ' << p->getY() <<
endl);
154 DEBUG(
"b.y " << q->getX() <<
' ' << q->getY() <<
endl);
159 if (p->getX() < q->getX())
161 else if (q->getX() < p->getX())
169 for ( ; p !=
fa.end(); ++p) {
176 for ( ; q != fb.end(); ++q) {
184 for ( ; i != pdfA.super_end(); ++i) {
188 << i->second->first <<
' '
189 << i->second->second->first <<
endl);
194 for ( ; j != pdfB.super_end(); ++j) {
198 << j->second->first <<
' '
199 << j->second->second->first <<
endl);