ATLAS Offline Software
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 
29 Trk::FitterStatusCode::operator unsigned long() const {
30  return m_code;
31 }
32 
33 Trk::FitterStatusCode::operator StatusCode() const {
34  return { (m_code>1)?StatusCode::SUCCESS : StatusCode::FAILURE };
35 }
36 
37 unsigned long Trk::FitterStatusCode::getCode() const {
38  return m_code;
39 }
40 
41 std::string Trk::FitterStatusCode::getString() const {
42  switch(m_code)
43  {
44  case Success:
45  return "success";
46  case StraightTrackModelUsed:
47  return "success, using straight track model";
48  case BadInput:
49  return "bad input";
50  case UpdateFailure:
51  return "parameter update failure";
52  case FitQualityFailure:
53  return "fit quality production failed";
54  case MissingCovariance:
55  return "covariance missing";
56  case ExtrapolationFailure:
57  return "extrapolation failed";
58  case ExtrapolationFailureDueToSmallMomentum:
59  return "extrapolation failed due to small momentum";
60  case CombineStatesFailure:
61  return "fit states combination failed";
62  case WeaklyConstraintPars:
63  return "parameters only weakly constrained";
64  case OutlierLogicFailure:
65  return "outlier logic failed";
66  case PerigeeMakingFailure:
67  return "perigee could not be produced";
68  case ForwardFilterFailure:
69  return "forward filter failed";
70  case SmootherFailure:
71  return "smoother failed";
72  case FewFittableMeasurements:
73  return "too few fittable measurements";
74  case MatrixInversionFailure:
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 
85 MsgStream& operator<<(MsgStream& out, const Trk::FitterStatusCode& fitStatCode){
86  out << fitStatCode.getString();
87  return out;
88 }
89 
90 std::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 // }
Trk::FitterStatusCode::FitCode
FitCode
fitter status codes
Definition: FitterStatusCode.h:37
python.AthDsoLogger.out
out
Definition: AthDsoLogger.py:71
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
FitterStatusCode.h
Trk::FitterStatusCode
Status codes for track fitters.
Definition: FitterStatusCode.h:34
Trk::FitterStatusCode::getString
std::string getString() const
Get the status code as descriptive string.
Definition: FitterStatusCode.cxx:41
Trk::operator<<
MsgStream & operator<<(MsgStream &sl, const AlignModule &alignModule)
overload of << operator for MsgStream for debug output
Definition: AlignModule.cxx:204
Trk::FitterStatusCode::getCode
unsigned long getCode() const
Get the status code by value.
Definition: FitterStatusCode.cxx:37
python.CaloScaleNoiseConfig.default
default
Definition: CaloScaleNoiseConfig.py:79
Trk::FitterStatusCode::FitterStatusCode
FitterStatusCode()
default constructor
Definition: FitterStatusCode.cxx:15
Trk::FitterStatusCode::isFailure
bool isFailure() const
Definition: FitterStatusCode.cxx:25