GCC Code Coverage Report


Directory: ./
File: src/event/data/track.cc
Date: 2025-09-01 06:19:01
Exec Total Coverage
Lines: 0 243 0.0%
Functions: 0 71 0.0%
Branches: 0 32 0.0%

Line Branch Exec Source
1 /**\file
2 * A (reconstructed) particle track data declaration.
3 *
4 * \warning This is a file generated for event's data structure.
5 * \note Generated at 14/08/2025 23:52:56 with template utils/evstruct/templates/cpp/impl.cc
6 * \version 0.1
7 */
8
9
10 #include "na64event/data/track.hh"
11
12 #include "na64event/data/track.hh"
13
14 #include "na64event/data/track.hh"
15
16 #include "na64event/data/track.hh"
17
18 #include "na64event/data/track.hh"
19
20 #include "na64event/data/track.hh"
21
22 #include <cmath>
23 #include "na64event/reset-values.hh"
24
25 namespace na64dp {
26
27
28
29
30
31
32
33 namespace event {
34 TrackScore::TrackScore( LocalMemory & lmem )
35 : hitRefs(lmem)
36
37 {}
38 } // namespace ::event::na64dp
39
40
41
42 namespace event {
43 ScoreFitInfo::ScoreFitInfo( LocalMemory & lmem )
44
45 {}
46 } // namespace ::event::na64dp
47
48
49
50
51
52 namespace event {
53 Track::Track( LocalMemory & lmem )
54 : scores(lmem)
55
56 {}
57 } // namespace ::event::na64dp
58
59
60
61
62 namespace util {
63 void reset( event::DriftDetScoreFeatures & obj ) {
64 using namespace event;
65
66 ::na64dp::util::reset(obj.distance);
67
68 ::na64dp::util::reset(obj.distanceError);
69
70 ::na64dp::util::reset(obj.maxDistance);
71
72 ::na64dp::util::reset(obj.wireCoordinates);
73
74 ::na64dp::util::reset(obj.sideHitUError);
75
76 ::na64dp::util::reset(obj.sideHitBError);
77
78 ::na64dp::util::reset(obj.sideWeight);
79
80 ::na64dp::util::reset(obj.uError);
81
82 }
83 } // namespace ::na64dp::util
84
85 namespace util {
86 void reset( event::MCTrueTrackScore & obj ) {
87 using namespace event;
88
89 ::na64dp::util::reset(obj.globalPosition);
90
91 ::na64dp::util::reset(obj.geant4TrackID);
92
93 }
94 } // namespace ::na64dp::util
95
96 namespace util {
97 void reset( event::TrackScore & obj ) {
98 using namespace event;
99
100 obj.hitRefs.clear();
101 ::na64dp::util::reset(obj.lR);
102
103 ::na64dp::util::reset(obj.gR);
104
105 ::na64dp::util::reset(obj.lRErr);
106
107 ::na64dp::util::reset(obj.driftFts);
108
109 ::na64dp::util::reset(obj.time);
110
111 ::na64dp::util::reset(obj.mcTruth);
112
113 }
114 } // namespace ::na64dp::util
115
116 namespace util {
117 void reset( event::ScoreFitInfo & obj ) {
118 using namespace event;
119
120 ::na64dp::util::reset(obj.score);
121
122 ::na64dp::util::reset(obj.lR);
123
124 ::na64dp::util::reset(obj.lRUErr);
125
126 ::na64dp::util::reset(obj.lRBErr);
127
128 ::na64dp::util::reset(obj.lTan);
129
130 ::na64dp::util::reset(obj.qop);
131
132 ::na64dp::util::reset(obj.time);
133
134 ::na64dp::util::reset(obj.weight);
135
136 }
137 } // namespace ::na64dp::util
138
139 namespace util {
140 void reset( event::TrackFitInfo & obj ) {
141 using namespace event;
142
143 ::na64dp::util::reset(obj.positionSeed);
144
145 ::na64dp::util::reset(obj.momentumSeed);
146
147 ::na64dp::util::reset(obj.covarSeed);
148
149 ::na64dp::util::reset(obj.chi2);
150
151 ::na64dp::util::reset(obj.ndf);
152
153 ::na64dp::util::reset(obj.pval);
154
155 }
156 } // namespace ::na64dp::util
157
158 namespace util {
159 void reset( event::Track & obj ) {
160 using namespace event;
161
162 obj.scores.clear();
163 ::na64dp::util::reset(obj.momentum);
164
165 ::na64dp::util::reset(obj.pdg);
166
167 ::na64dp::util::reset(obj.fitInfo);
168
169 ::na64dp::util::reset(obj.zonePattern);
170
171 }
172 } // namespace ::na64dp::util
173
174
175 namespace event {
176
177
178
179
180 static StdFloat_t _DriftDetScoreFeatures_get_distance( const DriftDetScoreFeatures & obj ) {
181 return static_cast<StdFloat_t>(obj.distance); // simple value
182 }
183 static StdFloat_t _DriftDetScoreFeatures_get_distanceError( const DriftDetScoreFeatures & obj ) {
184 return static_cast<StdFloat_t>(obj.distanceError); // simple value
185 }
186 static StdFloat_t _DriftDetScoreFeatures_get_maxDistance( const DriftDetScoreFeatures & obj ) {
187 return static_cast<StdFloat_t>(obj.maxDistance); // simple value
188 }
189 // getter for DriftDetScoreFeatures::wireCoordinates disabled
190 static StdFloat_t _DriftDetScoreFeatures_get_sideHitUError( const DriftDetScoreFeatures & obj ) {
191 return static_cast<StdFloat_t>(obj.sideHitUError); // simple value
192 }
193 static StdFloat_t _DriftDetScoreFeatures_get_sideHitBError( const DriftDetScoreFeatures & obj ) {
194 return static_cast<StdFloat_t>(obj.sideHitBError); // simple value
195 }
196 static StdFloat_t _DriftDetScoreFeatures_get_sideWeight( const DriftDetScoreFeatures & obj ) {
197 return static_cast<StdFloat_t>(obj.sideWeight); // simple value
198 }
199 // getter for DriftDetScoreFeatures::uError disabled
200
201
202
203 const Traits<DriftDetScoreFeatures>::Getters
204 Traits<DriftDetScoreFeatures>::getters = {
205
206 { "distance", { "Estimated distance, cm", _DriftDetScoreFeatures_get_distance } },
207 { "distanceError", { "Error of distance estimation, cm", _DriftDetScoreFeatures_get_distanceError } },
208 { "maxDistance", { "max distance (cm) from the wire; typically a wire\u0027s stride", _DriftDetScoreFeatures_get_maxDistance } },
209
210 // getter for DriftDetScoreFeatures::wireCoordinates disabled
211 { "sideHitUError", { "unbiased error on other side of isochrone", _DriftDetScoreFeatures_get_sideHitUError } },
212 { "sideHitBError", { "biased error on other side of isochrone", _DriftDetScoreFeatures_get_sideHitBError } },
213 { "sideWeight", { "tracking weight of other side isochrone", _DriftDetScoreFeatures_get_sideWeight } },
214
215 // getter for DriftDetScoreFeatures::uError disabled
216
217
218 };
219
220
221
222
223 // getter for MCTrueTrackScore::globalPosition disabled
224 static StdFloat_t _MCTrueTrackScore_get_geant4TrackID( const MCTrueTrackScore & obj ) {
225 return static_cast<StdFloat_t>(obj.geant4TrackID); // simple value
226 }
227
228
229
230 const Traits<MCTrueTrackScore>::Getters
231 Traits<MCTrueTrackScore>::getters = {
232
233
234 // getter for MCTrueTrackScore::globalPosition disabled
235 { "geant4TrackID", { "(only for MC) Geant4 track ID for this score", _MCTrueTrackScore_get_geant4TrackID } },
236
237
238 };
239
240
241
242
243 // getter for TrackScore::hitRefs disabled
244 // getter for TrackScore::lR disabled
245 // getter for TrackScore::gR disabled
246 // getter for TrackScore::lRErr disabled
247
248
249 // propagated from / driftFts:mem::Ref<DriftDetScoreFeatures> / distance:float
250 static StdFloat_t _TrackScore_get_driftFts_distance( const TrackScore & obj_ ) {
251 if(!obj_.driftFts) return std::nan("0");
252 const auto & driftFts = *obj_.driftFts;
253 const auto & obj = driftFts;
254
255 return static_cast<StdFloat_t>(obj.distance); // simple value
256
257 }
258
259 // propagated from / driftFts:mem::Ref<DriftDetScoreFeatures> / distanceError:float
260 static StdFloat_t _TrackScore_get_driftFts_distanceError( const TrackScore & obj_ ) {
261 if(!obj_.driftFts) return std::nan("0");
262 const auto & driftFts = *obj_.driftFts;
263 const auto & obj = driftFts;
264
265 return static_cast<StdFloat_t>(obj.distanceError); // simple value
266
267 }
268
269 // propagated from / driftFts:mem::Ref<DriftDetScoreFeatures> / maxDistance:float
270 static StdFloat_t _TrackScore_get_driftFts_maxDistance( const TrackScore & obj_ ) {
271 if(!obj_.driftFts) return std::nan("0");
272 const auto & driftFts = *obj_.driftFts;
273 const auto & obj = driftFts;
274
275 return static_cast<StdFloat_t>(obj.maxDistance); // simple value
276
277 }
278
279 // no std getter for TrackScore/driftFts/wireCoordinates
280 // propagated from / driftFts:mem::Ref<DriftDetScoreFeatures> / sideHitUError:float
281 static StdFloat_t _TrackScore_get_driftFts_sideHitUError( const TrackScore & obj_ ) {
282 if(!obj_.driftFts) return std::nan("0");
283 const auto & driftFts = *obj_.driftFts;
284 const auto & obj = driftFts;
285
286 return static_cast<StdFloat_t>(obj.sideHitUError); // simple value
287
288 }
289
290 // propagated from / driftFts:mem::Ref<DriftDetScoreFeatures> / sideHitBError:float
291 static StdFloat_t _TrackScore_get_driftFts_sideHitBError( const TrackScore & obj_ ) {
292 if(!obj_.driftFts) return std::nan("0");
293 const auto & driftFts = *obj_.driftFts;
294 const auto & obj = driftFts;
295
296 return static_cast<StdFloat_t>(obj.sideHitBError); // simple value
297
298 }
299
300 // propagated from / driftFts:mem::Ref<DriftDetScoreFeatures> / sideWeight:float
301 static StdFloat_t _TrackScore_get_driftFts_sideWeight( const TrackScore & obj_ ) {
302 if(!obj_.driftFts) return std::nan("0");
303 const auto & driftFts = *obj_.driftFts;
304 const auto & obj = driftFts;
305
306 return static_cast<StdFloat_t>(obj.sideWeight); // simple value
307
308 }
309
310 // no std getter for TrackScore/driftFts/uError
311
312
313 static StdFloat_t _TrackScore_get_time( const TrackScore & obj ) {
314 return static_cast<StdFloat_t>(obj.time); // simple value
315 }
316
317
318 // no std getter for TrackScore/mcTruth/globalPosition
319 // propagated from / mcTruth:mem::Ref<MCTrueTrackScore> / geant4TrackID:int
320 static StdFloat_t _TrackScore_get_mcTruth_geant4TrackID( const TrackScore & obj_ ) {
321 if(!obj_.mcTruth) return std::nan("0");
322 const auto & mcTruth = *obj_.mcTruth;
323 const auto & obj = mcTruth;
324
325 return static_cast<StdFloat_t>(obj.geant4TrackID); // simple value
326
327 }
328
329
330
331
332 static StdFloat_t _TrackScore_get_u( const TrackScore & obj ) { return obj.lR[0]; }
333 static StdFloat_t _TrackScore_get_v( const TrackScore & obj ) { return obj.lR[1]; }
334 static StdFloat_t _TrackScore_get_w( const TrackScore & obj ) { return obj.lR[2]; }
335 static StdFloat_t _TrackScore_get_uE( const TrackScore & obj ) { return obj.lRErr[0]; }
336 static StdFloat_t _TrackScore_get_vE( const TrackScore & obj ) { return obj.lRErr[1]; }
337 static StdFloat_t _TrackScore_get_wE( const TrackScore & obj ) { return obj.lRErr[2]; }
338
339
340 const Traits<TrackScore>::Getters
341 Traits<TrackScore>::getters = {
342
343
344 // getter for TrackScore::hitRefs disabled
345
346 // getter for TrackScore::lR disabled
347
348 // getter for TrackScore::gR disabled
349
350 // getter for TrackScore::lRErr disabled
351
352
353 // propagated from / driftFts:mem::Ref<DriftDetScoreFeatures> / distance:float
354 { "driftFts.distance", { "Estimated distance, cm", _TrackScore_get_driftFts_distance } },
355 // propagated from / driftFts:mem::Ref<DriftDetScoreFeatures> / distanceError:float
356 { "driftFts.distanceError", { "Error of distance estimation, cm", _TrackScore_get_driftFts_distanceError } },
357 // propagated from / driftFts:mem::Ref<DriftDetScoreFeatures> / maxDistance:float
358 { "driftFts.maxDistance", { "max distance (cm) from the wire; typically a wire\u0027s stride", _TrackScore_get_driftFts_maxDistance } },
359 // no std getter for TrackScore/driftFts/wireCoordinates
360 // propagated from / driftFts:mem::Ref<DriftDetScoreFeatures> / sideHitUError:float
361 { "driftFts.sideHitUError", { "unbiased error on other side of isochrone", _TrackScore_get_driftFts_sideHitUError } },
362 // propagated from / driftFts:mem::Ref<DriftDetScoreFeatures> / sideHitBError:float
363 { "driftFts.sideHitBError", { "biased error on other side of isochrone", _TrackScore_get_driftFts_sideHitBError } },
364 // propagated from / driftFts:mem::Ref<DriftDetScoreFeatures> / sideWeight:float
365 { "driftFts.sideWeight", { "tracking weight of other side isochrone", _TrackScore_get_driftFts_sideWeight } },
366 // no std getter for TrackScore/driftFts/uError
367
368
369 { "time", { "Hit time, global to event (averaged on hits or provided by MC)", _TrackScore_get_time } },
370
371
372 // no std getter for TrackScore/mcTruth/globalPosition
373 // propagated from / mcTruth:mem::Ref<MCTrueTrackScore> / geant4TrackID:int
374 { "mcTruth.geant4TrackID", { "(only for MC) Geant4 track ID for this score", _TrackScore_get_mcTruth_geant4TrackID } },
375
376
377
378 { "u", { "Local U of the measurement", _TrackScore_get_u } },
379 { "v", { "Local V of the measurement", _TrackScore_get_v } },
380 { "w", { "Local W of the measurement", _TrackScore_get_w } },
381 { "uE", { "Local uncertainty by U of the measurement", _TrackScore_get_uE } },
382 { "vE", { "Local uncertainty by V of the measurement", _TrackScore_get_vE } },
383 { "wE", { "Local uncertainty by W of the measurement", _TrackScore_get_wE } },
384
385 };
386
387
388
389
390
391
392 // no std getter for ScoreFitInfo/score/hitRefs
393 // no std getter for ScoreFitInfo/score/lR
394 // no std getter for ScoreFitInfo/score/gR
395 // no std getter for ScoreFitInfo/score/lRErr
396
397
398 // propagated from / score:mem::Ref<TrackScore> / driftFts:mem::Ref<DriftDetScoreFeatures> / distance:float
399 static StdFloat_t _ScoreFitInfo_get_score_driftFts_distance( const ScoreFitInfo & obj_ ) {
400 if(!obj_.score) return std::nan("0");
401 const auto & score = *obj_.score;
402 if(!score.driftFts) return std::nan("0");
403 const auto & driftFts = *score.driftFts;
404 const auto & obj = driftFts;
405
406 return static_cast<StdFloat_t>(obj.distance); // simple value
407
408 }
409
410 // propagated from / score:mem::Ref<TrackScore> / driftFts:mem::Ref<DriftDetScoreFeatures> / distanceError:float
411 static StdFloat_t _ScoreFitInfo_get_score_driftFts_distanceError( const ScoreFitInfo & obj_ ) {
412 if(!obj_.score) return std::nan("0");
413 const auto & score = *obj_.score;
414 if(!score.driftFts) return std::nan("0");
415 const auto & driftFts = *score.driftFts;
416 const auto & obj = driftFts;
417
418 return static_cast<StdFloat_t>(obj.distanceError); // simple value
419
420 }
421
422 // propagated from / score:mem::Ref<TrackScore> / driftFts:mem::Ref<DriftDetScoreFeatures> / maxDistance:float
423 static StdFloat_t _ScoreFitInfo_get_score_driftFts_maxDistance( const ScoreFitInfo & obj_ ) {
424 if(!obj_.score) return std::nan("0");
425 const auto & score = *obj_.score;
426 if(!score.driftFts) return std::nan("0");
427 const auto & driftFts = *score.driftFts;
428 const auto & obj = driftFts;
429
430 return static_cast<StdFloat_t>(obj.maxDistance); // simple value
431
432 }
433
434 // no std getter for ScoreFitInfo/score/driftFts/wireCoordinates
435 // propagated from / score:mem::Ref<TrackScore> / driftFts:mem::Ref<DriftDetScoreFeatures> / sideHitUError:float
436 static StdFloat_t _ScoreFitInfo_get_score_driftFts_sideHitUError( const ScoreFitInfo & obj_ ) {
437 if(!obj_.score) return std::nan("0");
438 const auto & score = *obj_.score;
439 if(!score.driftFts) return std::nan("0");
440 const auto & driftFts = *score.driftFts;
441 const auto & obj = driftFts;
442
443 return static_cast<StdFloat_t>(obj.sideHitUError); // simple value
444
445 }
446
447 // propagated from / score:mem::Ref<TrackScore> / driftFts:mem::Ref<DriftDetScoreFeatures> / sideHitBError:float
448 static StdFloat_t _ScoreFitInfo_get_score_driftFts_sideHitBError( const ScoreFitInfo & obj_ ) {
449 if(!obj_.score) return std::nan("0");
450 const auto & score = *obj_.score;
451 if(!score.driftFts) return std::nan("0");
452 const auto & driftFts = *score.driftFts;
453 const auto & obj = driftFts;
454
455 return static_cast<StdFloat_t>(obj.sideHitBError); // simple value
456
457 }
458
459 // propagated from / score:mem::Ref<TrackScore> / driftFts:mem::Ref<DriftDetScoreFeatures> / sideWeight:float
460 static StdFloat_t _ScoreFitInfo_get_score_driftFts_sideWeight( const ScoreFitInfo & obj_ ) {
461 if(!obj_.score) return std::nan("0");
462 const auto & score = *obj_.score;
463 if(!score.driftFts) return std::nan("0");
464 const auto & driftFts = *score.driftFts;
465 const auto & obj = driftFts;
466
467 return static_cast<StdFloat_t>(obj.sideWeight); // simple value
468
469 }
470
471 // no std getter for ScoreFitInfo/score/driftFts/uError
472
473
474 // propagated from / score:mem::Ref<TrackScore> / time:float
475 static StdFloat_t _ScoreFitInfo_get_score_time( const ScoreFitInfo & obj_ ) {
476 if(!obj_.score) return std::nan("0");
477 const auto & score = *obj_.score;
478 const auto & obj = score;
479
480 return static_cast<StdFloat_t>(obj.time); // simple value
481
482 }
483
484
485
486 // no std getter for ScoreFitInfo/score/mcTruth/globalPosition
487 // propagated from / score:mem::Ref<TrackScore> / mcTruth:mem::Ref<MCTrueTrackScore> / geant4TrackID:int
488 static StdFloat_t _ScoreFitInfo_get_score_mcTruth_geant4TrackID( const ScoreFitInfo & obj_ ) {
489 if(!obj_.score) return std::nan("0");
490 const auto & score = *obj_.score;
491 if(!score.mcTruth) return std::nan("0");
492 const auto & mcTruth = *score.mcTruth;
493 const auto & obj = mcTruth;
494
495 return static_cast<StdFloat_t>(obj.geant4TrackID); // simple value
496
497 }
498
499
500
501
502 // propagated from / score:mem::Ref<TrackScore> / u:
503 static StdFloat_t _ScoreFitInfo_get_score_u( const ScoreFitInfo & obj_ ) {
504 if(!obj_.score) return std::nan("0");
505 const auto & score = *obj_.score;
506 const auto & obj = score;
507 return obj.lR[0]; // custom getter
508 }
509 // propagated from / score:mem::Ref<TrackScore> / v:
510 static StdFloat_t _ScoreFitInfo_get_score_v( const ScoreFitInfo & obj_ ) {
511 if(!obj_.score) return std::nan("0");
512 const auto & score = *obj_.score;
513 const auto & obj = score;
514 return obj.lR[1]; // custom getter
515 }
516 // propagated from / score:mem::Ref<TrackScore> / w:
517 static StdFloat_t _ScoreFitInfo_get_score_w( const ScoreFitInfo & obj_ ) {
518 if(!obj_.score) return std::nan("0");
519 const auto & score = *obj_.score;
520 const auto & obj = score;
521 return obj.lR[2]; // custom getter
522 }
523 // propagated from / score:mem::Ref<TrackScore> / uE:
524 static StdFloat_t _ScoreFitInfo_get_score_uE( const ScoreFitInfo & obj_ ) {
525 if(!obj_.score) return std::nan("0");
526 const auto & score = *obj_.score;
527 const auto & obj = score;
528 return obj.lRErr[0]; // custom getter
529 }
530 // propagated from / score:mem::Ref<TrackScore> / vE:
531 static StdFloat_t _ScoreFitInfo_get_score_vE( const ScoreFitInfo & obj_ ) {
532 if(!obj_.score) return std::nan("0");
533 const auto & score = *obj_.score;
534 const auto & obj = score;
535 return obj.lRErr[1]; // custom getter
536 }
537 // propagated from / score:mem::Ref<TrackScore> / wE:
538 static StdFloat_t _ScoreFitInfo_get_score_wE( const ScoreFitInfo & obj_ ) {
539 if(!obj_.score) return std::nan("0");
540 const auto & score = *obj_.score;
541 const auto & obj = score;
542 return obj.lRErr[2]; // custom getter
543 }
544
545 // getter for ScoreFitInfo::lR disabled
546 // getter for ScoreFitInfo::lRUErr disabled
547 // getter for ScoreFitInfo::lRBErr disabled
548 // getter for ScoreFitInfo::lTan disabled
549 static StdFloat_t _ScoreFitInfo_get_qop( const ScoreFitInfo & obj ) {
550 return static_cast<StdFloat_t>(obj.qop); // simple value
551 }
552 static StdFloat_t _ScoreFitInfo_get_time( const ScoreFitInfo & obj ) {
553 return static_cast<StdFloat_t>(obj.time); // simple value
554 }
555 static StdFloat_t _ScoreFitInfo_get_weight( const ScoreFitInfo & obj ) {
556 return static_cast<StdFloat_t>(obj.weight); // simple value
557 }
558
559 static StdFloat_t _ScoreFitInfo_get_biasedResidualU( const ScoreFitInfo & obj ) { return obj.lRBErr[0]; }
560 static StdFloat_t _ScoreFitInfo_get_biasedResidualV( const ScoreFitInfo & obj ) { return obj.lRBErr[1]; }
561 static StdFloat_t _ScoreFitInfo_get_biasedResidualW( const ScoreFitInfo & obj ) { return obj.lRBErr[2]; }
562 static StdFloat_t _ScoreFitInfo_get_unbiasedResidualU( const ScoreFitInfo & obj ) { return obj.lRUErr[0]; }
563 static StdFloat_t _ScoreFitInfo_get_unbiasedResidualV( const ScoreFitInfo & obj ) { return obj.lRUErr[1]; }
564 static StdFloat_t _ScoreFitInfo_get_unbiasedResidualW( const ScoreFitInfo & obj ) { return obj.lRUErr[2]; }
565 static StdFloat_t _ScoreFitInfo_get_tanU( const ScoreFitInfo & obj ) { return obj.lTan[0]; }
566 static StdFloat_t _ScoreFitInfo_get_tanV( const ScoreFitInfo & obj ) { return obj.lTan[1]; }
567 static StdFloat_t _ScoreFitInfo_get_tanW( const ScoreFitInfo & obj ) { return obj.lTan[2]; }
568 static StdFloat_t _ScoreFitInfo_get_u( const ScoreFitInfo & obj ) { return obj.lR[0]; }
569 static StdFloat_t _ScoreFitInfo_get_v( const ScoreFitInfo & obj ) { return obj.lR[1]; }
570 static StdFloat_t _ScoreFitInfo_get_w( const ScoreFitInfo & obj ) { return obj.lR[2]; }
571
572
573 const Traits<ScoreFitInfo>::Getters
574 Traits<ScoreFitInfo>::getters = {
575
576
577
578 // no std getter for ScoreFitInfo/score/hitRefs
579 // no std getter for ScoreFitInfo/score/lR
580 // no std getter for ScoreFitInfo/score/gR
581 // no std getter for ScoreFitInfo/score/lRErr
582
583
584 // propagated from / score:mem::Ref<TrackScore> / driftFts:mem::Ref<DriftDetScoreFeatures> / distance:float
585 { "score.driftFts.distance", { "Estimated distance, cm", _ScoreFitInfo_get_score_driftFts_distance } },
586 // propagated from / score:mem::Ref<TrackScore> / driftFts:mem::Ref<DriftDetScoreFeatures> / distanceError:float
587 { "score.driftFts.distanceError", { "Error of distance estimation, cm", _ScoreFitInfo_get_score_driftFts_distanceError } },
588 // propagated from / score:mem::Ref<TrackScore> / driftFts:mem::Ref<DriftDetScoreFeatures> / maxDistance:float
589 { "score.driftFts.maxDistance", { "max distance (cm) from the wire; typically a wire\u0027s stride", _ScoreFitInfo_get_score_driftFts_maxDistance } },
590 // no std getter for ScoreFitInfo/score/driftFts/wireCoordinates
591 // propagated from / score:mem::Ref<TrackScore> / driftFts:mem::Ref<DriftDetScoreFeatures> / sideHitUError:float
592 { "score.driftFts.sideHitUError", { "unbiased error on other side of isochrone", _ScoreFitInfo_get_score_driftFts_sideHitUError } },
593 // propagated from / score:mem::Ref<TrackScore> / driftFts:mem::Ref<DriftDetScoreFeatures> / sideHitBError:float
594 { "score.driftFts.sideHitBError", { "biased error on other side of isochrone", _ScoreFitInfo_get_score_driftFts_sideHitBError } },
595 // propagated from / score:mem::Ref<TrackScore> / driftFts:mem::Ref<DriftDetScoreFeatures> / sideWeight:float
596 { "score.driftFts.sideWeight", { "tracking weight of other side isochrone", _ScoreFitInfo_get_score_driftFts_sideWeight } },
597 // no std getter for ScoreFitInfo/score/driftFts/uError
598
599
600 // propagated from / score:mem::Ref<TrackScore> / time:float
601 { "score.time", { "Hit time, global to event (averaged on hits or provided by MC)", _ScoreFitInfo_get_score_time } },
602
603
604 // no std getter for ScoreFitInfo/score/mcTruth/globalPosition
605 // propagated from / score:mem::Ref<TrackScore> / mcTruth:mem::Ref<MCTrueTrackScore> / geant4TrackID:int
606 { "score.mcTruth.geant4TrackID", { "(only for MC) Geant4 track ID for this score", _ScoreFitInfo_get_score_mcTruth_geant4TrackID } },
607
608
609
610 // propagated from / score:mem::Ref<TrackScore> / u:
611 { "score.u", { "propagated from / score:mem::Ref\u003cTrackScore\u003e / u:", _ScoreFitInfo_get_score_u } },
612 // propagated from / score:mem::Ref<TrackScore> / v:
613 { "score.v", { "propagated from / score:mem::Ref\u003cTrackScore\u003e / v:", _ScoreFitInfo_get_score_v } },
614 // propagated from / score:mem::Ref<TrackScore> / w:
615 { "score.w", { "propagated from / score:mem::Ref\u003cTrackScore\u003e / w:", _ScoreFitInfo_get_score_w } },
616 // propagated from / score:mem::Ref<TrackScore> / uE:
617 { "score.uE", { "propagated from / score:mem::Ref\u003cTrackScore\u003e / uE:", _ScoreFitInfo_get_score_uE } },
618 // propagated from / score:mem::Ref<TrackScore> / vE:
619 { "score.vE", { "propagated from / score:mem::Ref\u003cTrackScore\u003e / vE:", _ScoreFitInfo_get_score_vE } },
620 // propagated from / score:mem::Ref<TrackScore> / wE:
621 { "score.wE", { "propagated from / score:mem::Ref\u003cTrackScore\u003e / wE:", _ScoreFitInfo_get_score_wE } },
622
623
624 // getter for ScoreFitInfo::lR disabled
625
626 // getter for ScoreFitInfo::lRUErr disabled
627
628 // getter for ScoreFitInfo::lRBErr disabled
629
630 // getter for ScoreFitInfo::lTan disabled
631 { "qop", { "charge over momentum, [GeV/c]", _ScoreFitInfo_get_qop } },
632 { "time", { "estimated fit time, [TODO: GenFit2 RK units?]", _ScoreFitInfo_get_time } },
633 { "weight", { "weight for track fit, if appliable", _ScoreFitInfo_get_weight } },
634
635 { "biasedResidualU", { "Biased residual by U, cm", _ScoreFitInfo_get_biasedResidualU } },
636 { "biasedResidualV", { "Biased residual by V, cm", _ScoreFitInfo_get_biasedResidualV } },
637 { "biasedResidualW", { "Biased residual by W, cm", _ScoreFitInfo_get_biasedResidualW } },
638 { "unbiasedResidualU", { "Unbiased residual by U, cm", _ScoreFitInfo_get_unbiasedResidualU } },
639 { "unbiasedResidualV", { "Unbiased residual by V, cm", _ScoreFitInfo_get_unbiasedResidualV } },
640 { "unbiasedResidualW", { "Unbiased residual by W, cm", _ScoreFitInfo_get_unbiasedResidualW } },
641 { "tanU", { "First DRS tangent of track at intersection point", _ScoreFitInfo_get_tanU } },
642 { "tanV", { "Second DRS tangent of track at intersection point", _ScoreFitInfo_get_tanV } },
643 { "tanW", { "Third DRS tangent of track at intersection point", _ScoreFitInfo_get_tanW } },
644 { "u", { "First local coordinate, cm", _ScoreFitInfo_get_u } },
645 { "v", { "Second local coordinate, cm", _ScoreFitInfo_get_v } },
646 { "w", { "Third local coordinate, cm", _ScoreFitInfo_get_w } },
647
648 };
649
650
651
652
653 // getter for TrackFitInfo::positionSeed disabled
654 // getter for TrackFitInfo::momentumSeed disabled
655 // getter for TrackFitInfo::covarSeed disabled
656 static StdFloat_t _TrackFitInfo_get_chi2( const TrackFitInfo & obj ) {
657 return static_cast<StdFloat_t>(obj.chi2); // simple value
658 }
659 static StdFloat_t _TrackFitInfo_get_ndf( const TrackFitInfo & obj ) {
660 return static_cast<StdFloat_t>(obj.ndf); // simple value
661 }
662 static StdFloat_t _TrackFitInfo_get_pval( const TrackFitInfo & obj ) {
663 return static_cast<StdFloat_t>(obj.pval); // simple value
664 }
665
666 static StdFloat_t _TrackFitInfo_get_chi2ndf( const TrackFitInfo & obj ) { return obj.chi2/obj.ndf; }
667
668
669 const Traits<TrackFitInfo>::Getters
670 Traits<TrackFitInfo>::getters = {
671
672
673 // getter for TrackFitInfo::positionSeed disabled
674
675 // getter for TrackFitInfo::momentumSeed disabled
676
677 // getter for TrackFitInfo::covarSeed disabled
678 { "chi2", { "chi-squared value of track fit", _TrackFitInfo_get_chi2 } },
679 { "ndf", { "Number of degrees of freedom of track fit", _TrackFitInfo_get_ndf } },
680 { "pval", { "p-value of track fitting", _TrackFitInfo_get_pval } },
681
682 { "chi2ndf", { "chi^2/NDF value", _TrackFitInfo_get_chi2ndf } },
683
684 };
685
686
687
688
689 // getter for Track::scores disabled
690 static StdFloat_t _Track_get_momentum( const Track & obj ) {
691 return static_cast<StdFloat_t>(obj.momentum); // simple value
692 }
693 static StdFloat_t _Track_get_pdg( const Track & obj ) {
694 return static_cast<StdFloat_t>(obj.pdg); // simple value
695 }
696
697
698 // no std getter for Track/fitInfo/positionSeed
699 // no std getter for Track/fitInfo/momentumSeed
700 // no std getter for Track/fitInfo/covarSeed
701 // propagated from / fitInfo:mem::Ref<TrackFitInfo> / chi2:float
702 static StdFloat_t _Track_get_fitInfo_chi2( const Track & obj_ ) {
703 if(!obj_.fitInfo) return std::nan("0");
704 const auto & fitInfo = *obj_.fitInfo;
705 const auto & obj = fitInfo;
706
707 return static_cast<StdFloat_t>(obj.chi2); // simple value
708
709 }
710
711 // propagated from / fitInfo:mem::Ref<TrackFitInfo> / ndf:int32_t
712 static StdFloat_t _Track_get_fitInfo_ndf( const Track & obj_ ) {
713 if(!obj_.fitInfo) return std::nan("0");
714 const auto & fitInfo = *obj_.fitInfo;
715 const auto & obj = fitInfo;
716
717 return static_cast<StdFloat_t>(obj.ndf); // simple value
718
719 }
720
721 // propagated from / fitInfo:mem::Ref<TrackFitInfo> / pval:float
722 static StdFloat_t _Track_get_fitInfo_pval( const Track & obj_ ) {
723 if(!obj_.fitInfo) return std::nan("0");
724 const auto & fitInfo = *obj_.fitInfo;
725 const auto & obj = fitInfo;
726
727 return static_cast<StdFloat_t>(obj.pval); // simple value
728
729 }
730
731
732 // propagated from / fitInfo:mem::Ref<TrackFitInfo> / chi2ndf:
733 static StdFloat_t _Track_get_fitInfo_chi2ndf( const Track & obj_ ) {
734 if(!obj_.fitInfo) return std::nan("0");
735 const auto & fitInfo = *obj_.fitInfo;
736 const auto & obj = fitInfo;
737 return obj.chi2/obj.ndf; // custom getter
738 }
739
740 static StdFloat_t _Track_get_zonePattern( const Track & obj ) {
741 return static_cast<StdFloat_t>(obj.zonePattern); // simple value
742 }
743
744 static StdFloat_t _Track_get_nscores( const Track & obj ) { return obj.scores.size(); }
745
746
747 const Traits<Track>::Getters
748 Traits<Track>::getters = {
749
750
751 // getter for Track::scores disabled
752 { "momentum", { "Initial momentum of the track", _Track_get_momentum } },
753 { "pdg", { "Particle type PDG code", _Track_get_pdg } },
754
755
756 // no std getter for Track/fitInfo/positionSeed
757 // no std getter for Track/fitInfo/momentumSeed
758 // no std getter for Track/fitInfo/covarSeed
759 // propagated from / fitInfo:mem::Ref<TrackFitInfo> / chi2:float
760 { "fitInfo.chi2", { "chi-squared value of track fit", _Track_get_fitInfo_chi2 } },
761 // propagated from / fitInfo:mem::Ref<TrackFitInfo> / ndf:int32_t
762 { "fitInfo.ndf", { "Number of degrees of freedom of track fit", _Track_get_fitInfo_ndf } },
763 // propagated from / fitInfo:mem::Ref<TrackFitInfo> / pval:float
764 { "fitInfo.pval", { "p-value of track fitting", _Track_get_fitInfo_pval } },
765
766 // propagated from / fitInfo:mem::Ref<TrackFitInfo> / chi2ndf:
767 { "fitInfo.chi2ndf", { "propagated from / fitInfo:mem::Ref\u003cTrackFitInfo\u003e / chi2ndf:", _Track_get_fitInfo_chi2ndf } },
768
769 { "zonePattern", { "Bitmask of zones for the track", _Track_get_zonePattern } },
770
771 { "nscores", { "Number of scores in a track.", _Track_get_nscores } },
772
773 };
774
775
776
777 } // namespace ::na64dp::event
778 } // namespace na64dp
779