@@ -75,21 +75,20 @@ struct TrackDeriv {
7575// /< Log log-throttling helper
7676struct LogLogThrottler {
7777 size_t evCount{0 };
78- size_t evCountPrev{0 };
79- size_t logCount{0 };
80-
78+ size_t nextLog{1 };
8179 GPUdi () bool needToLog ()
8280 {
83- if (size_t ( o2::gpu::GPUCommonMath::Log ( ++evCount)) + 1 > logCount ) {
84- logCount++ ;
81+ if (++evCount > nextLog ) {
82+ nextLog *= 2 ;
8583 return true ;
8684 }
8785 return false ;
8886 }
89-
90- GPUdi () size_t getNMuted () const { return evCount - evCountPrev - 1 ; }
91-
92- GPUdi () void clear () { evCount = evCountPrev = logCount = 0 ; }
87+ GPUdi () void clear ()
88+ {
89+ evCount = 0 ;
90+ nextLog = 1 ;
91+ }
9392};
9493
9594template <int N, typename ... Args>
@@ -747,12 +746,11 @@ GPUd() bool DCAFitterN<N, Args...>::recalculatePCAWithErrors(int cand)
747746 if (mLoggerBadCov .needToLog ()) {
748747#ifndef GPUCA_GPUCODE
749748 printf (" fitter %d: error (%ld muted): overrode invalid track covariance from %s\n " ,
750- mFitterID , mLoggerBadCov .getNMuted () , mCandTr [mCurHyp ][i].asString ().c_str ());
749+ mFitterID , mLoggerBadCov .evCount , mCandTr [mCurHyp ][i].asString ().c_str ());
751750#else
752751 printf (" fitter %d: error (%ld muted): overrode invalid track covariance cyy:%e czz:%e cyz:%e\n " ,
753- mFitterID , mLoggerBadCov .getNMuted () , mCandTr [mCurHyp ][i].getSigmaY2 (), mCandTr [mCurHyp ][i].getSigmaZ2 (), mCandTr [mCurHyp ][i].getSigmaZY ());
752+ mFitterID , mLoggerBadCov .evCount , mCandTr [mCurHyp ][i].getSigmaY2 (), mCandTr [mCurHyp ][i].getSigmaZ2 (), mCandTr [mCurHyp ][i].getSigmaZY ());
754753#endif
755- mLoggerBadCov .evCountPrev = mLoggerBadCov .evCount ;
756754 }
757755 mFitStatus [mCurHyp ] = FitStatus::FailInvCov;
758756 if (mBadCovPolicy == Discard) {
@@ -975,12 +973,11 @@ GPUd() bool DCAFitterN<N, Args...>::minimizeChi2()
975973 if (mLoggerBadCov .needToLog ()) {
976974#ifndef GPUCA_GPUCODE
977975 printf (" fitter %d: error (%ld muted): overrode invalid track covariance from %s\n " ,
978- mFitterID , mLoggerBadCov .getNMuted () , mCandTr [mCurHyp ][i].asString ().c_str ());
976+ mFitterID , mLoggerBadCov .evCount , mCandTr [mCurHyp ][i].asString ().c_str ());
979977#else
980978 printf (" fitter %d: error (%ld muted): overrode invalid track covariance cyy:%e czz:%e cyz:%e\n " ,
981- mFitterID , mLoggerBadCov .getNMuted () , mCandTr [mCurHyp ][i].getSigmaY2 (), mCandTr [mCurHyp ][i].getSigmaZ2 (), mCandTr [mCurHyp ][i].getSigmaZY ());
979+ mFitterID , mLoggerBadCov .evCount , mCandTr [mCurHyp ][i].getSigmaY2 (), mCandTr [mCurHyp ][i].getSigmaZ2 (), mCandTr [mCurHyp ][i].getSigmaZY ());
982980#endif
983- mLoggerBadCov .evCountPrev = mLoggerBadCov .evCount ;
984981 }
985982 mFitStatus [mCurHyp ] = FitStatus::FailInvCov;
986983 if (mBadCovPolicy == Discard) {
@@ -1010,8 +1007,7 @@ GPUd() bool DCAFitterN<N, Args...>::minimizeChi2()
10101007 // do Newton-Rapson iteration with corrections = - dchi2/d{x0..xN} * [ d^2chi2/d{x0..xN}^2 ]^-1
10111008 if (!mD2Chi2Dx2 .Invert ()) {
10121009 if (mLoggerBadInv .needToLog ()) {
1013- printf (" fitter %d: error (%ld muted): Inversion failed\n " , mFitterID , mLoggerBadCov .getNMuted ());
1014- mLoggerBadInv .evCountPrev = mLoggerBadInv .evCount ;
1010+ printf (" fitter %d: error (%ld muted): Inversion failed\n " , mFitterID , mLoggerBadCov .evCount );
10151011 }
10161012 mFitStatus [mCurHyp ] = FitStatus::FailInv2ndDeriv;
10171013 return false ;
@@ -1079,8 +1075,7 @@ GPUd() bool DCAFitterN<N, Args...>::minimizeChi2NoErr()
10791075 // do Newton-Rapson iteration with corrections = - dchi2/d{x0..xN} * [ d^2chi2/d{x0..xN}^2 ]^-1
10801076 if (!mD2Chi2Dx2 .Invert ()) {
10811077 if (mLoggerBadInv .needToLog ()) {
1082- printf (" fitter %d: error (%ld muted): Inversion failed\n " , mFitterID , mLoggerBadCov .getNMuted ());
1083- mLoggerBadInv .evCountPrev = mLoggerBadInv .evCount ;
1078+ printf (" fitter %d: error (%ld muted): Inversion failed\n " , mFitterID , mLoggerBadCov .evCount );
10841079 }
10851080 mFitStatus [mCurHyp ] = FitStatus::FailInv2ndDeriv;
10861081 return false ;
@@ -1244,11 +1239,10 @@ GPUdi() bool DCAFitterN<N, Args...>::propagateParamToX(o2::track::TrackPar& t, f
12441239 mPropFailed [mCurHyp ] = true ;
12451240 if (mLoggerBadProp .needToLog ()) {
12461241#ifndef GPUCA_GPUCODE
1247- printf (" fitter %d: error (%ld muted): propagation failed for %s\n " , mFitterID , mLoggerBadProp .getNMuted () , t.asString ().c_str ());
1242+ printf (" fitter %d: error (%ld muted): propagation failed for %s\n " , mFitterID , mLoggerBadProp .evCount , t.asString ().c_str ());
12481243#else
1249- printf (" fitter %d: error (%ld muted): propagation failed\n " , mFitterID , mLoggerBadProp .getNMuted () );
1244+ printf (" fitter %d: error (%ld muted): propagation failed\n " , mFitterID , mLoggerBadProp .evCount );
12501245#endif
1251- mLoggerBadProp .evCountPrev = mLoggerBadProp .evCount ;
12521246 }
12531247 }
12541248 return res;
@@ -1271,11 +1265,10 @@ GPUdi() bool DCAFitterN<N, Args...>::propagateToX(o2::track::TrackParCov& t, flo
12711265 mPropFailed [mCurHyp ] = true ;
12721266 if (mLoggerBadProp .needToLog ()) {
12731267#ifndef GPUCA_GPUCODE
1274- printf (" fitter %d: error (%ld muted): propagation failed for %s\n " , mFitterID , mLoggerBadProp .getNMuted () , t.asString ().c_str ());
1268+ printf (" fitter %d: error (%ld muted): propagation failed for %s\n " , mFitterID , mLoggerBadProp .evCount , t.asString ().c_str ());
12751269#else
1276- printf (" fitter %d: error (%ld muted): propagation failed\n " , mFitterID , mLoggerBadProp .getNMuted () );
1270+ printf (" fitter %d: error (%ld muted): propagation failed\n " , mFitterID , mLoggerBadProp .evCount );
12771271#endif
1278- mLoggerBadProp .evCountPrev = mLoggerBadProp .evCount ;
12791272 }
12801273 }
12811274 return res;
0 commit comments