48 std::map<uint32_t, std::vector<PixelData>> chipData;
49 while (chipData.size() < mNumberOfChips) {
51 if (!chipData.contains(chipID)) {
57 std::vector<Digit> digVec;
58 for (
auto const& chip : chipData) {
59 uint32_t chipID = chip.first;
60 const std::vector<PixelData>&
pixels = chip.second;
61 for (
auto pixel :
pixels) {
62 Digit dig(chipID, pixel.getRow(), pixel.getCol());
63 digVec.push_back(dig);
70int main(
int argc,
char** argv)
72 bpo::variables_map vm;
73 bpo::options_description opt_general(
"Usage:\n " + std::string(argv[0]) +
74 "Simulates ALPIDE data\n");
75 bpo::options_description opt_hidden(
"");
76 bpo::options_description opt_all;
77 bpo::positional_options_description opt_pos;
80 auto add_option = opt_general.add_options();
81 add_option(
"help,h",
"Print this help message");
82 add_option(
"verbosity,v", bpo::value<uint32_t>()->default_value(0),
83 "verbosity level [0 = no output]");
85 bpo::value<bool>()->default_value(
false)->implicit_value(
true),
86 "generate the data in the digits format");
87 add_option(
"enable-errors",
88 bpo::value<bool>()->default_value(
false)->implicit_value(
true),
89 "enable additon of errors to the raw data");
90 add_option(
"seed", bpo::value<int32_t>()->default_value(0),
91 "random seed for data generation");
93 "max-pixels-per-chip", bpo::value<uint32_t>()->default_value(100),
94 (
"maximum number of fired pixels per chip (0 - " +
98 add_option(
"number-of-chip", bpo::value<uint32_t>()->default_value(10),
99 (
"number of chips to be present in the data (0 - " +
102 add_option(
"configKeyValues", bpo::value<std::string>()->default_value(
""),
103 "comma-separated configKeyValues");
105 opt_all.add(opt_general).add(opt_hidden);
106 bpo::store(bpo::command_line_parser(argc, argv)
112 if (vm.count(
"help")) {
113 std::cout << opt_general << std::endl;
117 if (vm[
"max-pixels-per-chip"].as<uint32_t>() >
119 std::cerr <<
"Invalid max pixels per chip, valid range (0, "
125 std::cerr <<
"Invalid number of chips, valid range (0, "
131 }
catch (bpo::error& e) {
132 std::cerr <<
"ERROR: " << e.what() << std::endl
134 std::cerr << opt_general << std::endl;
136 }
catch (std::exception& e) {
137 std::cerr << e.what() <<
", application will now exit" << std::endl;
142 vm[
"seed"].as<int32_t>(), vm[
"number-of-chip"].as<uint32_t>(),
143 vm[
"max-pixels-per-chip"].as<uint32_t>(), vm[
"digits"].as<bool>(),
144 vm[
"enable-errors"].as<bool>());