Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-07-26 08:21:58

0001 /** TRACCC library, part of the ACTS project (R&D line)
0002  *
0003  * (c) 2022-2025 CERN for the benefit of the ACTS project
0004  *
0005  * Mozilla Public License Version 2.0
0006  */
0007 
0008 #pragma once
0009 
0010 // System include(s).
0011 #include <cstdint>
0012 
0013 namespace traccc {
0014 
0015 /// Possible outcomes of a track fit
0016 enum class track_fit_outcome : std::uint16_t {
0017   UNKNOWN,
0018   SUCCESS,
0019   FAILURE_NON_POSITIVE_NDF,
0020   FAILURE_NOT_ALL_FITTED,
0021   FAILURE_NOT_ALL_SMOOTHED,
0022   FAILURE_FITTER,
0023   FAILURE_SMOOTHER,
0024   FAILURE_FORWARD_PROPAGATION,
0025   FAILURE_BACKWARD_PROPAGATION,
0026   MAX_OUTCOME
0027 };
0028 
0029 /// Convert a fit outcome code into a human readable string
0030 struct fit_outcome_debug_msg {
0031   TRACCC_HOST std::string operator()() const {
0032     switch (m_code) {
0033       using enum track_fit_outcome;
0034       case UNKNOWN: {
0035         return "Unknown";
0036       }
0037       case SUCCESS: {
0038         return "Success";
0039       }
0040       case FAILURE_NON_POSITIVE_NDF: {
0041         return "Negative NDF";
0042       }
0043       case FAILURE_NOT_ALL_FITTED: {
0044         return "Not all track states fitted";
0045       }
0046       case FAILURE_NOT_ALL_SMOOTHED: {
0047         return "Not all track states smoothed";
0048       }
0049       case FAILURE_FITTER: {
0050         return "Fitter failure";
0051       }
0052       case FAILURE_SMOOTHER: {
0053         return "Smoother failure";
0054       }
0055       case FAILURE_FORWARD_PROPAGATION: {
0056         return "Forward propagation failure";
0057       }
0058       case FAILURE_BACKWARD_PROPAGATION: {
0059         return "Backward propagation failure";
0060       }
0061       default: {
0062         return "Not a defined fit outcome code: " +
0063                std::to_string(static_cast<int>(m_code));
0064       }
0065     }
0066   }
0067 
0068   track_fit_outcome m_code{track_fit_outcome::MAX_OUTCOME};
0069 };
0070 
0071 }  // namespace traccc