42void trap2raw(
const std::string& inpDigitsName,
const std::string& inpTrackletsName,
46int main(
int argc,
char** argv)
48 bpo::variables_map vm;
49 bpo::options_description opt_general(
"Usage:\n " + std::string(argv[0]) +
50 "Convert TRD sim otuput to CRU raw data\n");
51 bpo::options_description opt_hidden(
"");
52 bpo::options_description opt_all;
53 bpo::positional_options_description opt_pos;
56 auto add_option = opt_general.add_options();
57 add_option(
"help,h",
"Print this help message");
58 add_option(
"verbosity,v", bpo::value<int>()->default_value(0),
"verbosity level");
59 add_option(
"input-file-digits,d", bpo::value<std::string>()->default_value(
"trddigits.root"),
"input Trapsim digits file");
60 add_option(
"input-file-tracklets,t", bpo::value<std::string>()->default_value(
"trdtracklets.root"),
"input Trapsim tracklets file");
61 add_option(
"file-for,l", bpo::value<std::string>()->default_value(
"cruendpoint"),
"all : raw file(false), cruendpoint : cru end point, cru : one file per cru, sm: one file per supermodule");
62 add_option(
"output-dir,o", bpo::value<std::string>()->default_value(
"./"),
"output directory for raw data");
63 add_option(
"tracklethcheader,x", bpo::value<int>()->default_value(2),
"include tracklet half chamber header (for run3). 0 never, 1 if there is tracklet data, 2 always");
64 add_option(
"no-empty-hbf,e", bpo::value<bool>()->default_value(
false)->implicit_value(
true),
"do not create empty HBF pages (except for HBF starting TF)");
65 add_option(
"rdh-version,r", bpo::value<uint32_t>()->default_value(
DefRDHVersion),
"rdh version in use");
66 add_option(
"configKeyValues", bpo::value<std::string>()->default_value(
""),
"comma-separated configKeyValues");
69 opt_all.add(opt_general).add(opt_hidden);
70 bpo::store(bpo::command_line_parser(argc, argv).options(opt_all).positional(opt_pos).run(), vm);
72 if (vm.count(
"help")) {
73 std::cout << opt_general << std::endl;
78 }
catch (bpo::error& e) {
79 std::cerr <<
"ERROR: " << e.what() << std::endl
81 std::cerr << opt_general << std::endl;
83 }
catch (std::exception& e) {
84 std::cerr << e.what() <<
", application will now exit" << std::endl;
87 std::string confDig = vm[
"hbfutils-config"].as<std::string>();
88 if (!confDig.empty() && confDig !=
"none") {
95 trap2raw(vm[
"input-file-digits"].as<std::string>(), vm[
"input-file-tracklets"].as<std::string>(), vm[
"output-dir"].as<std::string>(), vm[
"verbosity"].as<int>(), vm[
"file-for"].as<std::string>(), vm[
"rdh-version"].as<uint32_t>(), vm[
"no-empty-hbf"].as<bool>(), vm[
"tracklethcheader"].as<int>(), 1024 * 1024, hbfu.startTime);
100void trap2raw(
const std::string& inpDigitsName,
const std::string& inpTrackletsName,
const std::string& outDir,
int verbosity, std::string filePer, uint32_t rdhV,
bool noEmptyHBF,
int trackletHCHeader,
int superPageSizeInB,
long startTime)
104 LOG(info) <<
"timer started";
106 LOG(info) <<
"class instantiated";
115 wr.setSuperPageSize(superPageSizeInB);
116 wr.useRDHVersion(rdhV);
117 wr.setDontFillEmptyHBF(noEmptyHBF);
121 std::string outDirName(outDir);
122 if (outDirName.back() !=
'/') {
void trap2raw(const std::string &inpDigitsName, const std::string &inpTrackletsName, const std::string &outDir, int verbosity, std::string filePerLink, uint32_t rdhV=DefRDHVersion, bool noEmptyHBF=false, int tracklethcheader=0, int superPageSizeInB=1024 *1024, long startTime=1547590800000)