@@ -227,6 +227,9 @@ struct Alice3MulticharmFinder {
227227 if (nCand == 0 ) {
228228 return false ;
229229 }
230+
231+ const u_int8_t fitterStatusCode = fitter.getFitStatus ();
232+ histos.fill (HIST (" hFitterStatusCode" ), fitterStatusCode);
230233 // }-{}-{}-{}-{}-{}-{}-{}-{}-{}
231234
232235 o2::track::TrackParCov t0new = fitter.getTrack (0 );
@@ -298,6 +301,9 @@ struct Alice3MulticharmFinder {
298301 if (nCand == 0 ) {
299302 return false ;
300303 }
304+
305+ const u_int8_t fitter3StatusCode = fitter3.getFitStatus ();
306+ histos.fill (HIST (" hFitter3StatusCode" ), fitter3StatusCode);
301307 // }-{}-{}-{}-{}-{}-{}-{}-{}-{}
302308
303309 t0 = fitter3.getTrack (0 );
@@ -433,6 +439,48 @@ struct Alice3MulticharmFinder {
433439 fitter3.setBz (magneticField);
434440 fitter3.setMatCorrType (o2::base::Propagator::MatCorrType::USEMatCorrNONE);
435441
442+ auto hFitterStatusCode = histos.add <TH1>(" hFitterStatusCode" , " hFitterStatusCode" , kTH1D , {{15 , -0.5 , 14.5 }});
443+ hFitterStatusCode->GetXaxis ()->SetBinLabel (1 , " None" ); // no status set (should not be possible!)
444+
445+ /* Good Conditions */
446+ hFitterStatusCode->GetXaxis ()->SetBinLabel (2 , " Converged" ); // fit converged
447+ hFitterStatusCode->GetXaxis ()->SetBinLabel (3 , " MaxIter" ); // max iterations reached before fit convergence
448+
449+ /* Error Conditions */
450+ hFitterStatusCode->GetXaxis ()->SetBinLabel (4 , " NoCrossing" ); // no reasaonable crossing was found
451+ hFitterStatusCode->GetXaxis ()->SetBinLabel (5 , " RejRadius" ); // radius of crossing was not acceptable
452+ hFitterStatusCode->GetXaxis ()->SetBinLabel (6 , " RejTrackX" ); // one candidate track x was below the mimimum required radius
453+ hFitterStatusCode->GetXaxis ()->SetBinLabel (7 , " RejTrackRoughZ" ); // rejected by rough cut on tracks Z difference
454+ hFitterStatusCode->GetXaxis ()->SetBinLabel (8 , " RejChi2Max" ); // rejected by maximum chi2 cut
455+ hFitterStatusCode->GetXaxis ()->SetBinLabel (9 , " FailProp" ); // propagation of at least prong to PCA failed
456+ hFitterStatusCode->GetXaxis ()->SetBinLabel (10 , " FailInvCov" ); // inversion of cov.-matrix failed
457+ hFitterStatusCode->GetXaxis ()->SetBinLabel (11 , " FailInvWeight" ); // inversion of Ti weight matrix failed
458+ hFitterStatusCode->GetXaxis ()->SetBinLabel (12 , " FailInv2ndDeriv" ); // inversion of 2nd derivatives failed
459+ hFitterStatusCode->GetXaxis ()->SetBinLabel (13 , " FailCorrTracks" ); // correction of tracks to updated x failed
460+ hFitterStatusCode->GetXaxis ()->SetBinLabel (14 , " FailCloserAlt" ); // alternative PCA is closer
461+ hFitterStatusCode->GetXaxis ()->SetBinLabel (15 , " NStatusesDefined" );
462+
463+ auto hFitter3StatusCode = histos.add <TH1>(" hFitter3StatusCode" , " hFitter3StatusCode" , kTH1D , {{15 , -0.5 , 14.5 }});
464+ hFitter3StatusCode->GetXaxis ()->SetBinLabel (1 , " None" ); // no status set (should not be possible!)
465+
466+ /* Good Conditions */
467+ hFitter3StatusCode->GetXaxis ()->SetBinLabel (2 , " Converged" ); // fit converged
468+ hFitter3StatusCode->GetXaxis ()->SetBinLabel (3 , " MaxIter" ); // max iterations reached before fit convergence
469+
470+ /* Error Conditions */
471+ hFitter3StatusCode->GetXaxis ()->SetBinLabel (4 , " NoCrossing" ); // no reasaonable crossing was found
472+ hFitter3StatusCode->GetXaxis ()->SetBinLabel (5 , " RejRadius" ); // radius of crossing was not acceptable
473+ hFitter3StatusCode->GetXaxis ()->SetBinLabel (6 , " RejTrackX" ); // one candidate track x was below the mimimum required radius
474+ hFitter3StatusCode->GetXaxis ()->SetBinLabel (7 , " RejTrackRoughZ" ); // rejected by rough cut on tracks Z difference
475+ hFitter3StatusCode->GetXaxis ()->SetBinLabel (8 , " RejChi2Max" ); // rejected by maximum chi2 cut
476+ hFitter3StatusCode->GetXaxis ()->SetBinLabel (9 , " FailProp" ); // propagation of at least prong to PCA failed
477+ hFitter3StatusCode->GetXaxis ()->SetBinLabel (10 , " FailInvCov" ); // inversion of cov.-matrix failed
478+ hFitter3StatusCode->GetXaxis ()->SetBinLabel (11 , " FailInvWeight" ); // inversion of Ti weight matrix failed
479+ hFitter3StatusCode->GetXaxis ()->SetBinLabel (12 , " FailInv2ndDeriv" ); // inversion of 2nd derivatives failed
480+ hFitter3StatusCode->GetXaxis ()->SetBinLabel (13 , " FailCorrTracks" ); // correction of tracks to updated x failed
481+ hFitter3StatusCode->GetXaxis ()->SetBinLabel (14 , " FailCloserAlt" ); // alternative PCA is closer
482+ hFitter3StatusCode->GetXaxis ()->SetBinLabel (15 , " NStatusesDefined" );
483+
436484 INSERT_HIST (std::string (" h2dGenXi" ), " h2dGenXi" , {kTH2D , {{axisPt, axisEta}}});
437485 INSERT_HIST (std::string (" h2dGenXiC" ), " h2dGenXiC" , {kTH2D , {{axisPt, axisEta}}});
438486 INSERT_HIST (std::string (" h2dGenXiCC" ), " h2dGenXiCC" , {kTH2D , {{axisPt, axisEta}}});
0 commit comments