Jpp 19.3.0-rc.3
the software that should make you happy
Loading...
Searching...
No Matches
JAAnetPreprocessor.cc
Go to the documentation of this file.
4
10
11#include "Jeep/JParser.hh"
12#include "Jeep/JMessage.hh"
13
14#include "JSupport/JMeta.hh"
15
16
17/**
18 * \file
19 * Auxiliary program to preprocess an aanet file.\n
20 * Currently it provide support for the suppression of empty events from a file, but implementation of other options is encouraged.
21 * \author mlincetto
22 */
23
24int main(int argc, char **argv)
25{
26 using namespace std;
27 using namespace JPP;
28
30 JFileRecorder <JAAnetTypes_t> outputFile;
31 JLimit_t& numberOfEvents = inputFile.getLimit();
32 int debug;
33 bool filterEmptyMCH;
34 double timeOffset_ms;
35
36 try {
37
38 JParser<> zap("Auxiliary program to preprocess aanet files.");
39
40 zap['f'] = make_field(inputFile);
41 zap['o'] = make_field(outputFile);
42 zap['n'] = make_field(numberOfEvents) = JLimit::max();
43 zap['d'] = make_field(debug) = 1;
44 zap['H'] = make_field(filterEmptyMCH, "Filter events without hits.");
45 zap['T'] = make_field(timeOffset_ms, "Add time offset [ms] to events.") = 0;
46
47 zap(argc, argv);
48 }
49 catch(const exception& error) {
50 FATAL(error.what() << endl);
51 }
52
53 outputFile.open();
54
55 // put header
56 Head header = inputFile.getHeader();
57
58 JMultipleFileScanner<Evt> in = inputFile;
59
60 outputFile.put(header);
61
62 while (in.hasNext()) {
63
64 Evt* cur = in.next();
65
66 if (filterEmptyMCH and cur->mc_hits.empty()) { continue; }
67
68 if (timeOffset_ms != 0) { add_time_offset (*cur, 1.0e6 * timeOffset_ms); }
69
70 outputFile.put(*cur);
71
72 } // while
73
74 outputFile.close();
75}
int main(int argc, char **argv)
Definition of hit and track types and auxiliary methods for handling Monte Carlo data.
string outputFile
Recording of objects on file according a format that follows from the file name extension.
General purpose messaging.
#define FATAL(A)
Definition JMessage.hh:67
int debug
debug level
Definition JSirene.cc:72
ROOT I/O of application specific meta data.
Scanning of objects from multiple files according a format that follows from the extension of each fi...
Utility class to parse command line options.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Definition JParser.hh:2142
ROOT TTree parameter settings of various packages.
Utility class to parse command line options.
Definition JParser.hh:1698
General purpose class for object reading from a list of file names.
virtual bool hasNext() override
Check availability of next element.
virtual const pointer_type & next() override
Get next element.
void add_time_offset(Evt &evt, const double tOff)
Add time offset to mc event; according to current definition, the absolute time of the event is defin...
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
The Evt class respresent a Monte Carlo (MC) event as well as an offline event.
Definition Evt.hh:21
std::vector< Hit > mc_hits
MC: list of MC truth hits.
Definition Evt.hh:48
The Head class reflects the header of Monte-Carlo event files, which consists of keys (also referred ...
Definition Head.hh:65
Auxiliary class for defining the range of iterations of objects.
Definition JLimit.hh:45
static counter_type max()
Get maximum counter value.
Definition JLimit.hh:128