32 if (first.
RUN == second.
RUN) {
79 return first.
RUN < second.
RUN;
100 out << setw(8) <<
object.RUN <<
' '
101 << setw(8) <<
object.DOMID <<
' '
102 << setw(2) <<
object.WAVEFORMID <<
' '
103 <<
FIXED(15,1) << (
static_cast<double>(
object.SECONDS) + static_cast<double>(
object.TICKS)*16
E-9) <<
' '
104 <<
FIXED( 9,6) <<
object.TOA_NS <<
' '
105 <<
FIXED( 9,3) <<
object.QUALITYFACTOR;
117 int main(
int argc,
char **argv)
128 JParser<> zap(
"Program to compare toa data.");
130 zap[
'f'] =
make_field(inputFile,
"two outputs of JToA");
131 zap[
'n'] =
make_field(numberOfEvents) = JLimit::max();
136 catch(
const exception &error) {
137 FATAL(error.what() << endl);
140 if (inputFile.size() != 2
u) {
141 FATAL(
"Wrong number of input files " << inputFile.size() << endl);
144 const size_t width = max(inputFile[0].size(), inputFile[1].size());
148 for (
int i = 0;
i != 2; ++
i) {
151 buffer[
i].push_back(*
in.next());
154 sort(buffer[i].begin(), buffer[i].end(), compare);
157 int count[] = { 0, 0 };
160 p0 = buffer[0].begin(),
161 p1 = buffer[1].begin(); p0 != buffer[0].end() &&
p1 != buffer[1].end(); ) {
163 for ( ; p0 != buffer[0].end() &&
p1 != buffer[1].end() && compare(*p0,*
p1); ++p0, ++
count[1]) {
164 DEBUG(
">> " << setw(width) << left << inputFile[0] << right <<
' ' << *p0 << endl);
167 for ( ; p0 != buffer[0].end() &&
p1 != buffer[1].end() && compare(*
p1,*p0); ++
p1, ++
count[1]) {
168 DEBUG(
"<< " << setw(width) << left << inputFile[1] << right <<
' ' << *
p1 << endl);
171 if (p0 != buffer[0].end() &&
p1 != buffer[1].end() && !compare(*p0,*
p1) && !compare(*
p1,*p0)) {
175 DEBUG(setw(width) << left << inputFile[0] << right <<
' ' << *p0 <<
" \\" << endl);
176 DEBUG(setw(width) << left << inputFile[1] << right <<
' ' << *
p1 <<
" / " << endl);
183 STATUS(
"Number of differences / events: " <<
count[1] <<
" / " <<
count[0] << endl);
185 if (buffer[0].size() != buffer[1].size()) {
186 FATAL(
"Different size " << buffer[0].size() <<
' ' << buffer[1].size() << endl);
190 FATAL(
"Number of differences " <<
count[1] << endl);
Utility class to parse command line options.
int main(int argc, char *argv[])
then usage $script< input file >[option[primary[working directory]]] nWhere option can be E
ROOT TTree parameter settings.
then usage $script< input file >[option] nPossible options count
int32_t WAVEFORMID
DOM unique identifeir.
Time-of-arrival data from acoustic piezo sensor or hydrophone.
Auxiliary data structure for floating point format specification.
then echo The file $DIR KM3NeT_00000001_00000000 root already please rename or remove it first
Scanning of objects from a single file according a format that follows from the extension of each fil...
Auxiliary class for defining the range of iterations of objects.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
int32_t RUN
detector identifier
uint32_t QUALITYFACTOR
The ticks (16ns) part of the DAQ frame timestamp.
General purpose messaging.
uint32_t QUALITYNORMALISATION
A measure of how good the waveform match was to the signal.
then fatal The output file must have the wildcard in the e g root fi eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY JAcoustics sh $DETECTOR_ID source JAcousticsToolkit sh CHECK_EXIT_CODE typeset A EMITTERS get_tripods $WORKDIR tripod txt EMITTERS get_transmitters $WORKDIR transmitter txt EMITTERS for EMITTER in
Utility class to parse command line options.
uint32_t TICKS
The seconds part of the DAQ frame timestamp.
Object reading from a list of files.
uint32_t DOMID
DAQ run number.
int64_t TOA_NS
Unique ID of the waveform that best described the signal around TOA_NS.
#define DEBUG(A)
Message macros.
uint32_t SECONDS
Time of Arrival, in ns (relative to Unix epoch, 1 January 1970 00:00:00 UTC)