193 JParser<> zap(
"Program to compare acoustics fit data.");
195 zap[
'f'] =
make_field(inputFile,
"two outputs of JKatoomba[.sh]");
196 zap[
'n'] =
make_field(numberOfEvents) = JLimit::max();
201 catch(
const exception &error) {
202 FATAL(error.what() << endl);
205 if (inputFile.size() != 2
u) {
206 FATAL(
"Wrong number of input files " << inputFile.size() << endl);
209 const size_t width = max(inputFile[0].size(), inputFile[1].size());
214 for (
int i = 0; i != 2; ++i) {
217 buffer[i].push_back(*
in.next());
220 sort(buffer[i].begin(), buffer[i].end());
224 for (
int i = 0; i != 2; ++i) {
231 int count[] = { 0, 0 };
234 p0 = buffer[0].begin(),
235 p1 = buffer[1].begin(); p0 != buffer[0].end() &&
p1 != buffer[1].end(); ) {
237 for ( ; p0 != buffer[0].end() &&
p1 != buffer[1].end() && compare(*p0,*
p1); ++p0, ++
count[1]) {
238 print(cout, inputFile[0],
distance(buffer[0].cbegin(),p0), *p0,
">>",
"");
241 for ( ; p0 != buffer[0].end() &&
p1 != buffer[1].end() && compare(*
p1,*p0); ++
p1, ++
count[1]) {
245 if (p0 != buffer[0].end() &&
p1 != buffer[1].end()) {
247 if (!compare(*p0,*
p1) && !compare(*
p1,*p0)) {
251 print(cout, inputFile[0],
distance(buffer[0].cbegin(),p0), *p0,
"",
"\\");
258 if (p0->oid ==
p1->oid &&
259 p0->UNIXTimeStart ==
p1->UNIXTimeStart &&
260 p0->UNIXTimeStop ==
p1->UNIXTimeStop) {
262 print(cout, inputFile[0],
distance(buffer[0].cbegin(),p0), *p0,
"",
"");
265 JEvt::const_iterator i0 = p0->begin();
266 JEvt::const_iterator i1 =
p1->begin();
268 for ( ; i0 != p0->end() && i1 !=
p1->end(); ++i0, ++i1) {
269 if (compare(*i0, *i1) || compare(*i1,*i0)) {
270 print(cout, *i0,
">>",
"");
271 print(cout, *i1,
"<<",
"");
275 for ( ; i0 != p0->end(); ++i0) {
276 print(cout, *i0,
">>",
"");
279 for ( ; i1 !=
p1->end(); ++i1) {
280 print(cout, *i1,
"<<",
"");
285 print(cout, inputFile[0],
distance(buffer[0].cbegin(),p0), *p0,
">>",
"");
290 if (compare(*p0,*
p1) || compare(*
p1,*p0)) {
300 STATUS(
"Number of differences / events: " <<
count[1] <<
" / " <<
count[0] << endl);
303 FATAL(
"Number of differences " <<
count[1] << endl);
Utility class to parse command line options.
JComparator< JResult_t T::*, JComparison::lt > make_comparator(JResult_t T::*member)
Helper method to create comparator between values of data member.
std::vector< T >::difference_type distance(typename std::vector< T >::const_iterator first, typename PhysicsEvent::const_iterator< T > second)
Specialisation of STL distance.
Auxiliary class for defining the range of iterations of objects.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Object reading from a list of files.
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable INPUT_FILE $argv[2] eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY source JAcoustics sh $DETECTOR_ID CHECK_EXIT_CODE typeset A TRIPODS get_tripods $WORKDIR tripod txt TRIPODS for EMITTER in