41 struct JTreeRouter_t {
54 JTreeRouter_t(
const std::string& input_file) :
68 const Long64_t i = indexer.find(evt);
72 return scanner.getEntry(i);
89 int main(
int argc,
char **argv)
96 typedef JParallelFileScanner_t::multi_pointer_type multi_pointer_type;
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.");
110 zap[
'f'] =
make_field(inputFile,
"list of JEvt compatible files");
116 catch(
const exception& error) {
117 FATAL(error.what() << endl);
121 if (inputFile.empty()) {
122 FATAL(
"No input files." << endl);
129 JParallelFileScanner_t in(inputFile[0]);
133 for (
size_t i = 1; i != inputFile.size(); ++i) {
134 buffer.push_back(JTreeRouter_t(inputFile[i]));
137 while (in.hasNext()) {
139 STATUS(
"event: " << setw(10) << in.getCounter() <<
'\r');
DEBUG(endl);
141 multi_pointer_type ps = in.next();
144 const JEvt* evt = ps;
148 for (
size_t i = 1; i != inputFile.size(); ++i) {
150 const JEvt* p = buffer[i].get(*tev);
154 copy(p->begin(), p->end(), back_inserter(out));
158 FATAL(
"Inconsistent data at " << in.getFilename() <<
":" << in.getCounter() << endl);
Recording of objects on file according a format that follows from the file name extension.
int main(int argc, char **argv)
General purpose messaging.
#define DEBUG(A)
Message macros.
Parallel scanning of objects from a single file or multiple files according a format that follows fro...
Utility class to parse command line options.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
ROOT TTree parameter settings of various packages.
Utility class to parse command line options.
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.
Template definition for direct access of elements in ROOT TChain.
void copy(const Head &from, JHead &to)
Copy header from from to to.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
KM3NeT DAQ data structures and auxiliaries.
Auxiliary class to determine time of DAQ objects.