Jpp test-rotations-old
the software that should make you happy
Loading...
Searching...
No Matches
JMergeFit.cc File Reference

Program to merge different files with JFIT::JEvt data. More...

#include <string>
#include <iostream>
#include <iomanip>
#include <vector>
#include <algorithm>
#include <iterator>
#include "km3net-dataformat/offline/Head.hh"
#include "km3net-dataformat/offline/MultiHead.hh"
#include "km3net-dataformat/offline/Evt.hh"
#include "JDAQ/JDAQEventIO.hh"
#include "JDAQ/JDAQTimesliceIO.hh"
#include "JDAQ/JDAQSummarysliceIO.hh"
#include "JDAQ/JDAQEvaluator.hh"
#include "JTrigger/JTriggerParameters.hh"
#include "JSupport/JParallelFileScanner.hh"
#include "JSupport/JTreeScanner.hh"
#include "JSupport/JFileRecorder.hh"
#include "JSupport/JSupport.hh"
#include "JSupport/JMeta.hh"
#include "JReconstruction/JEvt.hh"
#include "Jeep/JParser.hh"
#include "Jeep/JMessage.hh"

Go to the source code of this file.

Functions

int main (int argc, char **argv)
 

Detailed Description

Program to merge different files with JFIT::JEvt data.

Author
mdejong

Definition in file JMergeFit.cc.

Function Documentation

◆ main()

int main ( int argc,
char ** argv )

Definition at line 89 of file JMergeFit.cc.

90{
91 using namespace std;
92 using namespace JPP;
93 using namespace KM3NETDAQ;
94
95 typedef JParallelFileScanner< JTypeList<JDAQEvent, JEvt> > JParallelFileScanner_t;
96 typedef JParallelFileScanner_t::multi_pointer_type multi_pointer_type;
97
99
100 vector<std::string> inputFile;
102 int debug;
103
104 try {
105
106 JParser<> zap("Program to merge different files with JFIT::JEvt data " \
107 "(e.g. from JMuonXXX[.sh] and JShowerXXX[.sh] applied to the same input data)." \
108 "\nThe input files should be event-by-event synchronised.");
109
110 zap['f'] = make_field(inputFile, "list of JEvt compatible files");
111 zap['o'] = make_field(outputFile, "single file with merged JEvt data");
112 zap['d'] = make_field(debug) = 1;
113
114 zap(argc, argv);
115 }
116 catch(const exception& error) {
117 FATAL(error.what() << endl);
118 }
119
120
121 if (inputFile.empty()) {
122 FATAL("No input files." << endl);
123 }
124
125 outputFile.open();
126
127 outputFile.put(JMeta(argc, argv));
128
129 JParallelFileScanner_t in(inputFile[0]);
130
131 vector<JTreeRouter_t> buffer(1); // skip one entry
132
133 for (size_t i = 1; i != inputFile.size(); ++i) {
134 buffer.push_back(JTreeRouter_t(inputFile[i]));
135 }
136
137 while (in.hasNext()) {
138
139 STATUS("event: " << setw(10) << in.getCounter() << '\r'); DEBUG(endl);
140
141 multi_pointer_type ps = in.next();
142
143 const JDAQEvent* tev = ps;
144 const JEvt* evt = ps;
145
146 JEvt out(*evt);
147
148 for (size_t i = 1; i != inputFile.size(); ++i) {
149
150 const JEvt* p = buffer[i].get(*tev);
151
152 if (p != NULL) {
153
154 copy(p->begin(), p->end(), back_inserter(out));
155
156 } else {
157
158 FATAL("Inconsistent data at " << in.getFilename() << ":" << in.getCounter() << endl);
159 }
160 }
161
162 outputFile.put(out);
163 }
164 STATUS(endl);
165
166 {
168
169 io >> outputFile;
170 }
171 {
173
174 io >> outputFile;
175 }
176
177 outputFile.close();
178}
string outputFile
#define DEBUG(A)
Message macros.
Definition JMessage.hh:62
#define STATUS(A)
Definition JMessage.hh:63
#define FATAL(A)
Definition JMessage.hh:67
int debug
debug level
Definition JSirene.cc:72
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Definition JParser.hh:2142
Utility class to parse command line options.
Definition JParser.hh:1698
Object writing to file.
General purpose class for object reading from a list of file names.
General purpose class for parallel reading of objects from a single file or multiple files.
void copy(const Head &from, JHead &to)
Copy header from from to to.
Definition JHead.cc:163
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
KM3NeT DAQ data structures and auxiliaries.
Definition DataQueue.cc:39
Acoustic event fit.
Type list.
Definition JTypeList.hh:23
Auxiliary class for ROOT I/O of application specific meta data.
Definition JMeta.hh:72