@@ -17,19 +17,68 @@ namespace traccc::opts {
1717truth_finding::truth_finding () : interface(" Truth Track Finding Options" ) {
1818 m_desc.add_options ()(
1919 " truth-finding-min-pt" ,
20- boost::program_options::value (&m_min_pt)->default_value (m_min_pt),
21- " Candidate particule pT cut [GeV]" );
20+ boost::program_options::value (&m_pT_min)->default_value (m_pT_min),
21+ " Candidate particle pT cut [GeV]" );
22+ m_desc.add_options ()(
23+ " truth-finding-min-z" ,
24+ boost::program_options::value (&m_z_min)->default_value (m_z_min),
25+ " Candidate particle min z cut [mm]" );
26+ m_desc.add_options ()(
27+ " truth-finding-max-z" ,
28+ boost::program_options::value (&m_z_max)->default_value (m_z_max),
29+ " Candidate particle max z cut [mm]" );
30+ m_desc.add_options ()(
31+ " truth-finding-max-r" ,
32+ boost::program_options::value (&m_r_max)->default_value (m_r_max),
33+ " Candidate particle max r cut [mm]" );
34+ m_desc.add_options ()(" truth-finding-matching-ratio" ,
35+ boost::program_options::value (&m_matching_ratio)
36+ ->default_value (m_matching_ratio),
37+ " Minimum track state matching ratio" );
38+ m_desc.add_options ()(" truth-finding-min-track-candidates" ,
39+ boost::program_options::value (&m_min_track_candidates)
40+ ->default_value (m_min_track_candidates),
41+ " Minimum track candidates on track" );
42+ m_desc.add_options ()(" truth-finding-double-matching" ,
43+ boost::program_options::bool_switch (&m_double_matching)
44+ ->default_value (m_double_matching),
45+ " Enable double truth-reco matching" );
2246}
2347
2448void truth_finding::read (const boost::program_options::variables_map &) {
25- m_min_pt *= unit<float >::GeV;
49+ m_pT_min *= unit<float >::GeV;
50+ m_z_min *= unit<float >::mm;
51+ m_z_max *= unit<float >::mm;
52+ m_r_max *= unit<float >::mm;
53+ }
54+
55+ truth_finding::operator truth_matching_config () const {
56+ return truth_matching_config{.pT_min = m_pT_min,
57+ .z_min = m_z_min,
58+ .z_max = m_z_max,
59+ .r_max = m_r_max,
60+ .matching_ratio = m_matching_ratio,
61+ .min_track_candidates = m_min_track_candidates,
62+ .double_matching = m_double_matching};
2663}
2764
2865std::unique_ptr<configuration_printable> truth_finding::as_printable () const {
2966 auto cat = std::make_unique<configuration_category>(m_description);
3067
3168 cat->add_child (std::make_unique<configuration_kv_pair>(
32- " Minimum pT" , std::format (" {} GeV" , m_min_pt / unit<float >::GeV)));
69+ " Minimum pT" , std::format (" {} GeV" , m_pT_min / unit<float >::GeV)));
70+ cat->add_child (std::make_unique<configuration_kv_pair>(
71+ " Minimum z" , std::format (" {} mm" , m_z_min / unit<float >::mm)));
72+ cat->add_child (std::make_unique<configuration_kv_pair>(
73+ " Maximum z" , std::format (" {} mm" , m_z_max / unit<float >::mm)));
74+ cat->add_child (std::make_unique<configuration_kv_pair>(
75+ " Maximum r" , std::format (" {} mm" , m_r_max / unit<float >::mm)));
76+ cat->add_child (std::make_unique<configuration_kv_pair>(
77+ " Matching ratio" , std::format (" {}" , m_matching_ratio)));
78+ cat->add_child (std::make_unique<configuration_kv_pair>(
79+ " Minimum track candidates" , std::format (" {}" , m_min_track_candidates)));
80+ cat->add_child (std::make_unique<configuration_kv_pair>(
81+ " Double matching" , std::format (" {}" , m_double_matching)));
3382
3483 return cat;
3584}
0 commit comments