34int main(
int argc,
char* argv[])
38 std::vector<std::string> infile(1,
"NOFILE");
39 std::vector<unsigned> region(1, 0);
40 std::vector<unsigned> link(1, 0);
41 std::vector<int> sampaVersion(1, -1);
43 bool useRawInMode3 =
true;
44 std::string verbLevel =
"LOW";
45 std::string logLevel =
"ERROR";
47 bpo::variables_map vm;
48 bpo::options_description desc(
"Allowed options");
49 desc.add_options()(
"help,h",
"Produce help message.")(
"infile,i", bpo::value<std::vector<std::string>>(&infile),
51 "vl,", bpo::value<std::string>(&verbLevel),
"Fairlogger verbosity level (LOW, MED, HIGH)")(
52 "ll,", bpo::value<std::string>(&logLevel),
53 "Fairlogger screen log level (FATAL, ERROR, WARNING, INFO, DEBUG, DEBUG1, DEBUG2, DEBUG3, DEBUG4)")(
54 "region,r", bpo::value<std::vector<unsigned>>(®ion),
"Region for mapping")(
55 "link,l", bpo::value<std::vector<unsigned>>(&link),
"Link for mapping")(
56 "sVersion,s", bpo::value<std::vector<int>>(&sampaVersion),
"SAMPA version for decoding")(
57 "rawInMode3", bpo::value<bool>(&useRawInMode3),
"Use Raw data in mode 3 instead of decoded one")(
58 ",n", bpo::value<int>(&readEvents),
"Events to read");
60 bpo::store(parse_command_line(argc, argv, desc), vm);
64 if (vm.count(
"help")) {
65 std::cout << desc << std::endl;
69 if (infile[0] ==
"NOFILE") {
74 fair::Logger::SetVerbosity(verbLevel.c_str());
75 fair::Logger::SetConsoleSeverity(logLevel.c_str());
76 fair::Logger::SetConsoleColor(
false);
78 std::vector<RawReader> readers;
79 std::shared_ptr<RawReaderEventSync> eventSync = std::make_shared<RawReaderEventSync>();
81 for (
int i = 0;
i < infile.size(); ++
i) {
82 readers.emplace_back();
83 readers[
i].addEventSynchronizer(eventSync);
84 if (region.size() != infile.size() && link.size() == infile.size()) {
85 readers[
i].addInputFile(region[0], link[
i], sampaVersion[
i], infile[
i]);
86 }
else if (region.size() == infile.size() && link.size() != infile.size()) {
87 readers[
i].addInputFile(region[
i], link[0], sampaVersion[
i], infile[
i]);
89 readers[
i].addInputFile(region[
i], link[
i], sampaVersion[
i], infile[
i]);
91 readers[
i].setUseRawInMode3(useRawInMode3);
92 readers[
i].setCheckAdcClock(
false);
97 while ((
j < readers[0].getNumberOfEvents()) & ((readEvents >= 0) ?
j <= readEvents :
true)) {
98 for (
auto&
rr : readers) {