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
{{ message }}
Repository navigation
Commit 149ac80
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: Detectors/TPC/calibration/include/TPCCalibration/CalculatedEdx.h
+10-8Lines changed: 10 additions & 8 deletions
Original file line number
Diff line number
Diff line change
@@ -213,7 +213,7 @@ class CalculatedEdx
213
213
/// \return returns the number of rows where refit/propagation failed (row.propagationFailed) since the last resetDebugCounters(); with setRefit(), this only counts rows where the propagation fallback was also unable to recover the row
/// \return returns the number of rows where setRefit()'s RefitTrackAsGPU() could not reach the row and the row's track state instead came from the propagation fallback since the last resetDebugCounters(); always 0 outside setRefit() mode
216
+
/// \return returns the number of rows of tracks where setRefit()'s RefitTrackAsGPU() failed and the row's track state instead came from propagating the original track since the last resetDebugCounters(); always 0 outside setRefit() mode
/// \return returns the number of rows gathered by gatherRowClusterData() (processed for refit/propagation) since the last resetDebugCounters()
@@ -400,7 +400,7 @@ class CalculatedEdx
400
400
int stackNumber;
401
401
StackID stackID;
402
402
bool propagationFailed; ///< true if refit/propagation to this row failed, or the resulting track param is NaN, and no fallback recovered it either
403
-
bool refitFellBack; ///< true if setRefit() mode's RefitTrackAsGPU() could not reach this row
403
+
bool refitFellBack; ///< true if setRefit() mode's refit of this track failed and the row's track state came from propagating the original track
404
404
int missingClusters; ///< number of skipped rows since the previous entry in rowData (i.e. rowIndex - previous rowIndex - 1); same for every settings entry since rowOrder does not depend on the settings
405
405
bool sameSectorAsPrevRow; ///< true if this row's sector equals the previous entry in rowData's sector
406
406
bool missingClusterGapDeadOrEdge; ///< true if any of the missingClusters skipped row(s) would land on a dead channel or off the padrow edge
@@ -433,11 +433,13 @@ class CalculatedEdx
433
433
/// \param sectorIndexOld sectorIndex of the previous entry appended to rowData (255 if this is the first row)
434
434
/// \param occupancyROC per-region occupancy accumulator, updated in place
435
435
/// \param rowData output per-row data; the new row is appended, and rowData.back() (if non-empty) is read as the previous row for the missing-cluster-gap check
436
-
/// \param refitAbandoned setRefit() mode only: false as long as RefitTrackAsGPU() keeps succeeding; the first
437
-
/// time it fails for this track, set to true and stays true for the rest of the track. On that first
438
-
/// failure, the propagation fallback resumes from the track's state just before the failed attempt
439
-
/// (i.e. its state after the last successfully refit row), not from the track's pristine pre-loop state.
/// \param refitFailed setRefit() mode only: true if the single per-track refit in refitTrack() failed, in which case the rows are propagated from the track's original state
/// setRefit() mode only: refit the whole track once, outward, so that it ends at the outermost cluster; the track is then propagated row by row in gatherRowClusterDataForRow()
440
+
/// \param track input track, mutated in place by the refit; left unchanged if the refit fails
441
+
/// \return true if the refit failed
442
+
boolrefitTrack(o2::tpc::TrackTPC& track);
441
443
442
444
/// geometrically propagate track (rotating into the row's sector frame first) to xPosition
443
445
/// \return true if any of the three attempts succeeded (track left at xPosition); false if all failed (track left unchanged, at its state on entry)
@@ -479,7 +481,7 @@ class CalculatedEdx
479
481
std::unordered_map<std::string, std::unique_ptr<o2::utils::TreeStreamRedirector>> mStreamers; ///< debug streamers, keyed by output file name so each debugRootFile gets its own tree
480
482
longmDebugTrackIndex{-1}; ///< running index of the track being processed, written to the debug trees so per-cluster rows can be grouped back into tracks
481
483
longmNPropagationFailed{0}; ///< number of rows where refit/propagation failed (and the fallback below, if applicable, also failed) since the last resetDebugCounters()
482
-
longmNRefitFallback{0}; ///< number of rows where setRefit()'s RefitTrackAsGPU() failed but the propagation fallback recovered the row, since the last resetDebugCounters()
484
+
longmNRefitFallback{0}; ///< number of rows of tracks where setRefit()'s RefitTrackAsGPU() failed but propagating the original track recovered the row, since the last resetDebugCounters()
483
485
longmNRowsProcessed{0}; ///< number of rows gathered by gatherRowClusterData() since the last resetDebugCounters()
484
486
std::vector<long> mNSubThresholdFilledPerSettings; ///< number of row gaps filled as subthreshold clusters, per dEdxSettings list index, since the last resetDebugCounters()
// RefitTrackAsGPU() refits the whole track from its clusters (not just up to the current row) and may write into the track even if it fails, so keep the original state to fall back from
// RefitTrackAsGPU() returns < 0 when it fails; reachedReference is false when the fit succeeded but the final move-to-reference step could not reach xPosition, so both trigger the fallback.
// propagate this track to the plane X=xk (cm) in the field "b" (kG)
436
+
if (mRefit || mPropagateTrack) {
437
+
// mRefit: the track was refit once in gatherRowClusterData() and is only propagated from row to row here, if that refit failed, the propagation starts from the track's original state
438
+
// mPropagateTrack: propagate this track to the plane X=xk (cm) in the field "b" (kG)
0 commit comments