ATLAS Offline Software
Loading...
Searching...
No Matches
FitterStatusCode.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3*/
4
5/***************************************************************************
6 FitterStatusCode.cxx - description
7 -------------------
8 email : sebastian.fleischmann -at- cern.ch
9 ***************************************************************************/
10
11
13#include "GaudiKernel/MsgStream.h"
14//#include <iostream>
16 :
17 //StatusCode( ),
18 m_code( 0 ) {}
19
21 :
22 //StatusCode( (thecode>1)?StatusCode::SUCCESS : StatusCode::FAILURE ),
23 m_code( thecode ) {}
24
26 return m_code>1;
27}
28
29Trk::FitterStatusCode::operator unsigned long() const {
30 return m_code;
31}
32
33Trk::FitterStatusCode::operator StatusCode() const {
34 return { (m_code>1)?StatusCode::SUCCESS : StatusCode::FAILURE };
35}
36
37unsigned long Trk::FitterStatusCode::getCode() const {
38 return m_code;
39}
40
42 switch(m_code)
43 {
44 case Success:
45 return "success";
47 return "success, using straight track model";
48 case BadInput:
49 return "bad input";
50 case UpdateFailure:
51 return "parameter update failure";
53 return "fit quality production failed";
55 return "covariance missing";
57 return "extrapolation failed";
59 return "extrapolation failed due to small momentum";
61 return "fit states combination failed";
63 return "parameters only weakly constrained";
65 return "outlier logic failed";
67 return "perigee could not be produced";
69 return "forward filter failed";
70 case SmootherFailure:
71 return "smoother failed";
73 return "too few fittable measurements";
75 return "matrix inversion failed";
76 case NoConvergence:
77 return "fit did not converge";
78 case InvalidAngles:
79 return "invalid results for theta, phi";
80 default :
81 return "unknown";
82 };
83}
84
85MsgStream& operator<<(MsgStream& out, const Trk::FitterStatusCode& fitStatCode){
86 out << fitStatCode.getString();
87 return out;
88}
89
90std::ostream& operator<<(std::ostream& out, const Trk::FitterStatusCode& fitStatCode) {
91 out << fitStatCode.getString();
92 return out;
93}
94
95// bool operator< ( const Trk::FitterStatusCode& a, const Trk::FitterStatusCode& b ) {
96// return a.m_code < b.m_code;
97// }
98//
99// bool operator> ( const Trk::FitterStatusCode& a, const Trk::FitterStatusCode& b ) {
100// return a.m_code > b.m_code;
101// }
Status codes for track fitters.
FitterStatusCode()
default constructor
FitCode
fitter status codes
@ UpdateFailure
parameter update failed
@ FitQualityFailure
fit quality production failed
@ ForwardFilterFailure
forward filter failed
@ ExtrapolationFailureDueToSmallMomentum
extrapolation failed due to small momentum
@ SmootherFailure
smoother failed
@ FewFittableMeasurements
number of fittable measurements on trajectory too small
@ MissingCovariance
covariance missed
@ OutlierLogicFailure
outlier logic failed
@ ExtrapolationFailure
extrapolation failed
@ WeaklyConstraintPars
parameters only weakly constrained
@ CombineStatesFailure
fit states could not be combined
@ PerigeeMakingFailure
perigee could not be produced
@ StraightTrackModelUsed
fit successfull, but straight track model was used
@ Success
fit successfull
unsigned long m_code
fitter status code
std::string getString() const
Get the status code as descriptive string.
unsigned long getCode() const
Get the status code by value.
MsgStream & operator<<(MsgStream &sl, const AlignModule &alignModule)
overload of << operator for MsgStream for debug output