23int main(
int argc,
char** argv)
27 std::string configDir;
29 configDir = std::string(argv[1]);
32 fmt::print(
"Using top-level configuration directory {}\n", configDir);
35 for(
int example = 1; example <= 6; example++) {
39 auto algo = std::make_unique<iguana::clas12::ZVertexFilter>();
40 algo->SetLogLevel(
"debug");
47 auto key = algo->PrepareEvent(4800);
48 assert((algo->GetRunNum(key) == 4800));
49 fmt::println(
"Z-vertex cuts: {} to {}", algo->GetElectronZcuts(key).at(0), algo->GetElectronZcuts(key).at(1));
59 iguana::concurrent_key_t
const key = 0;
60 algo->SetElectronZcuts(-5.0, 3.0, key);
61 assert((algo->GetElectronZcuts(key).at(0) == -5.0));
62 assert((algo->GetElectronZcuts(key).at(1) == 3.0));
68 algo->SetConfigFile(configDir +
"/my_z_vertex_cuts.yaml");
70 auto key = algo->PrepareEvent(5500);
71 assert((algo->GetElectronZcuts(key).at(0) == -0.8));
72 assert((algo->GetElectronZcuts(key).at(1) == 0.7));
79 algo->SetConfigDirectory(configDir);
80 algo->SetConfigFile(
"my_z_vertex_cuts.yaml");
82 auto key = algo->PrepareEvent(0);
83 assert((algo->GetElectronZcuts(key).at(0) == -1.5));
84 assert((algo->GetElectronZcuts(key).at(1) == 1.3));
93 algo->SetConfigDirectory(configDir +
"/my_config_directory");
95 auto key = algo->PrepareEvent(0);
96 assert((algo->GetElectronZcuts(key).at(0) == -15.0));
97 assert((algo->GetElectronZcuts(key).at(1) == 15.0));
103 algo->SetConfigDirectory(configDir);
104 algo->SetConfigFile(
"my_combined_config_file.yaml");
106 auto key = algo->PrepareEvent(0);
107 assert((algo->GetElectronZcuts(key).at(0) == -33.0));
108 assert((algo->GetElectronZcuts(key).at(1) == 11.0));
113 fmt::print(stderr,
"ERROR: unknown example number '{}'\n", example);