GCC Code Coverage Report


Directory: ./
File: src/dp/extendedTrackScoreGetters.cc
Date: 2025-09-01 06:19:01
Exec Total Coverage
Lines: 0 57 0.0%
Functions: 0 18 0.0%
Branches: 0 5 0.0%

Line Branch Exec Source
1 #include "na64dp/extendedTrackScoreGetters.hh"
2
3 namespace na64dp {
4
5 // trivial "getter" -- returns 1
6 static ExtendedTrackScoreGetters::EventGetterValue_t
7 _identity(const event::ScoreFitInfo &) { return 1.0; }
8
9 // trivial "getter" -- returns 0
10 static ExtendedTrackScoreGetters::EventGetterValue_t
11 _zero(const event::ScoreFitInfo &) { return 0.0; }
12
13 ExtendedTrackScoreGetters::EventGetterValue_t
14 ExtendedTrackScoreGetters::metric_uncertainty_u(DetID did, const event::ScoreFitInfo & sfi) const {
15 if(!sfi.score) return std::nan("0");
16 const auto & item = get_placement_defined_item_for(did);
17 std::cout << " xxx " << sfi.score->lRErr[0] << "*" << item.uNorm << std::endl; // XXX
18 return sfi.score->lRErr[0]*item.uNorm;
19 }
20
21 ExtendedTrackScoreGetters::EventGetterValue_t
22 ExtendedTrackScoreGetters::metric_uncertainty_v(DetID did, const event::ScoreFitInfo & sfi) const {
23 if(!sfi.score) return std::nan("0");
24 const auto & item = get_placement_defined_item_for(did);
25 return sfi.score->lRErr[1]*item.vNorm;
26 }
27
28 ExtendedTrackScoreGetters::EventGetterValue_t
29 ExtendedTrackScoreGetters::metric_uncertainty_w(DetID did, const event::ScoreFitInfo & sfi) const {
30 if(!sfi.score) return std::nan("0");
31 const auto & item = get_placement_defined_item_for(did);
32 return sfi.score->lRErr[2]*item.wNorm;
33 }
34
35
36 ExtendedTrackScoreGetters::EventGetterValue_t
37 ExtendedTrackScoreGetters::metric_biased_err_u(DetID did, const event::ScoreFitInfo & sfi) const {
38 const auto & item = get_placement_defined_item_for(did);
39 return sfi.lRBErr[0]*item.uNorm;
40 }
41
42 ExtendedTrackScoreGetters::EventGetterValue_t
43 ExtendedTrackScoreGetters::metric_biased_err_v(DetID did, const event::ScoreFitInfo & sfi) const {
44 const auto & item = get_placement_defined_item_for(did);
45 return sfi.lRBErr[1]*item.vNorm;
46 }
47
48 ExtendedTrackScoreGetters::EventGetterValue_t
49 ExtendedTrackScoreGetters::metric_biased_err_w(DetID did, const event::ScoreFitInfo & sfi) const {
50 const auto & item = get_placement_defined_item_for(did);
51 return sfi.lRBErr[2]*item.wNorm;
52 }
53
54
55 ExtendedTrackScoreGetters::EventGetterValue_t
56 ExtendedTrackScoreGetters::metric_unbiased_err_u(DetID did, const event::ScoreFitInfo & sfi) const {
57 const auto & item = get_placement_defined_item_for(did);
58 return sfi.lRUErr[0]*item.uNorm;
59 }
60
61 ExtendedTrackScoreGetters::EventGetterValue_t
62 ExtendedTrackScoreGetters::metric_unbiased_err_v(DetID did, const event::ScoreFitInfo & sfi) const {
63 const auto & item = get_placement_defined_item_for(did);
64 return sfi.lRUErr[1]*item.vNorm;
65 }
66
67 ExtendedTrackScoreGetters::EventGetterValue_t
68 ExtendedTrackScoreGetters::metric_unbiased_err_w(DetID did, const event::ScoreFitInfo & sfi) const {
69 const auto & item = get_placement_defined_item_for(did);
70 return sfi.lRUErr[2]*item.wNorm;
71 }
72
73
74 ExtendedTrackScoreGetters::EventGetterValue_t
75 ExtendedTrackScoreGetters::detector_cx( DetID did, const event::ScoreFitInfo &) const {
76 const auto & item = get_placement_defined_item_for(did);
77 return item.placement.center[0];
78 }
79
80 ExtendedTrackScoreGetters::EventGetterValue_t
81 ExtendedTrackScoreGetters::detector_cy( DetID did, const event::ScoreFitInfo &) const {
82 const auto & item = get_placement_defined_item_for(did);
83 return item.placement.center[1];
84 }
85
86 ExtendedTrackScoreGetters::EventGetterValue_t
87 ExtendedTrackScoreGetters::detector_cz( DetID did, const event::ScoreFitInfo &) const {
88 const auto & item = get_placement_defined_item_for(did);
89 return item.placement.center[2];
90 }
91
92
93 ExtendedTrackScoreGetters::EventGetterValue_t
94 ExtendedTrackScoreGetters::detector_su( DetID did, const event::ScoreFitInfo &) const {
95 const auto & item = get_placement_defined_item_for(did);
96 return item.placement.size[0];
97 }
98
99 ExtendedTrackScoreGetters::EventGetterValue_t
100 ExtendedTrackScoreGetters::detector_sv( DetID did, const event::ScoreFitInfo &) const {
101 const auto & item = get_placement_defined_item_for(did);
102 return item.placement.size[1];
103 }
104
105 ExtendedTrackScoreGetters::EventGetterValue_t
106 ExtendedTrackScoreGetters::detector_sw( DetID did, const event::ScoreFitInfo &) const {
107 const auto & item = get_placement_defined_item_for(did);
108 return item.placement.size[2];
109 }
110
111 static const struct {
112 const char * name;
113 ExtendedTrackScoreGetters::Getter getter;
114 } gGetters[] = {
115 {"identity", {true, {.plainGetter = _identity}} },
116 {"zero", {true, {.plainGetter = _zero}} },
117 //
118 {"metricUncertaintyU", {false, {.methodGetter = &ExtendedTrackScoreGetters::metric_uncertainty_u}}},
119 {"metricUncertaintyV", {false, {.methodGetter = &ExtendedTrackScoreGetters::metric_uncertainty_v}}},
120 {"metricUncertaintyW", {false, {.methodGetter = &ExtendedTrackScoreGetters::metric_uncertainty_w}}},
121 {"metricUResidualU", {false, {.methodGetter = &ExtendedTrackScoreGetters::metric_unbiased_err_u}}},
122 {"metricUResidualV", {false, {.methodGetter = &ExtendedTrackScoreGetters::metric_unbiased_err_v}}},
123 {"metricUResidualW", {false, {.methodGetter = &ExtendedTrackScoreGetters::metric_unbiased_err_w}}},
124 {"metricBResidualU", {false, {.methodGetter = &ExtendedTrackScoreGetters::metric_biased_err_u}}},
125 {"metricBResidualV", {false, {.methodGetter = &ExtendedTrackScoreGetters::metric_biased_err_v}}},
126 {"metricBResidualW", {false, {.methodGetter = &ExtendedTrackScoreGetters::metric_biased_err_w}}},
127 {"det_cx", {false, {.methodGetter = &ExtendedTrackScoreGetters::detector_cx}}},
128 {"det_cy", {false, {.methodGetter = &ExtendedTrackScoreGetters::detector_cy}}},
129 {"det_cz", {false, {.methodGetter = &ExtendedTrackScoreGetters::detector_cz}}},
130 {"det_su", {false, {.methodGetter = &ExtendedTrackScoreGetters::detector_su}}},
131 {"det_sv", {false, {.methodGetter = &ExtendedTrackScoreGetters::detector_sv}}},
132 {"det_sw", {false, {.methodGetter = &ExtendedTrackScoreGetters::detector_sw}}},
133 // Sentinel:
134 {NULL, {false, {nullptr}}},
135 };
136
137 ExtendedTrackScoreGetters::Getter
138 ExtendedTrackScoreGetters::get_extended_getter(const std::string & nm) {
139 for(const auto * c = gGetters; c->name; ++c ) {
140 if(!strcmp(c->name, nm.c_str())) return c->getter;
141 }
142 ExtendedTrackScoreGetters::Getter emptyG = {false};
143 bzero(&emptyG.cllb, sizeof(emptyG.cllb));
144 return emptyG;
145 }
146
147 } // namespace na64dp
148
149