You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: Common/DCAFitter/README.md
+38Lines changed: 38 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -93,3 +93,41 @@ In this case the relevant correlation coefficient of the cov.matrix is redefined
93
93
94
94
`DCAFitterN::setBadCovPolicy(DCAFitterN::OverrideAnFlag);` continue fit with overridden cov.matrix but set the propagation failure flag (can be checked using the same `isPropagationFailure(int cand = 0)` method).
95
95
96
+
## Fit status
97
+
The fitter provides a fit status for each candidate, which can be retrieved using:
98
+
```
99
+
FitStatus status = ft.getFitStatus(int cand = 0);
100
+
```
101
+
The possible values are:
102
+
```
103
+
enum FitStatus : uint8_t { // part of the DCAFitterN class
104
+
None, // no status set (should not be possible!)
105
+
106
+
/* Good Conditions */
107
+
Converged, // fit converged
108
+
MaxIter, // max iterations reached before fit convergence (can still be a good vertex)
109
+
110
+
/* Error Conditions */
111
+
NoCrossing, // no reasonable crossing was found
112
+
RejRadius, // radius of crossing was not acceptable
113
+
RejTrackX, // one candidate track x was below the minimum required radius
114
+
RejTrackRoughZ, // rejected by rough cut on tracks Z difference
115
+
RejChi2Max, // rejected by maximum chi2 cut
116
+
FailProp, // propagation of at least prong to PCA failed
117
+
FailInvCov, // inversion of cov.-matrix failed
118
+
FailInvWeight, // inversion of Ti weight matrix failed
119
+
FailInv2ndDeriv, // inversion of 2nd derivatives failed
120
+
FailCorrTracks, // correction of tracks to updated x failed
121
+
FailCloserAlt, // alternative PCA is closer
122
+
};
123
+
```
124
+
This is allows to track where candiate fit was abondended.
125
+
```
126
+
int nc = ft.process(tr0,tr1,tr2);
127
+
auto status = ft.getFitStatus();
128
+
if (nc) {
129
+
// status can either be FitStatus::Converged or FitStatus::MaxIter
130
+
}
131
+
// status can be on of the error conditions
132
+
```
133
+
A more thorough example is given in `testDCAFitterN.cxx`.
0 commit comments