Skip to content

MatchCosmics: propagate the seed covariance to the DCA - #15894

Open
matthias-kleiner wants to merge 1 commit into
AliceO2Group:devfrom
matthias-kleiner:matchcosmics-dca-cov
Open

matthias-kleiner wants to merge 1 commit into
AliceO2Group:devfrom
matthias-kleiner:matchcosmics-dca-cov

Conversation

@matthias-kleiner

Copy link
Copy Markdown
Contributor

MatchCosmics::process propagates every seed to the DCA to the origin with propagateToDCABxByBz(Point3D, ...). With a Point3D this resolves to the TrackPar_t overload: only the track parameters are propagated, the covariance stays the one at the track's reference X (TPC inner radius). checkPair then compares the two legs at the DCA with these too small errors, so the y/snp cuts and the chi2 are far too tight and genuine legs are rejected (RejY). Using a VertexBase (origin, zero covariance) selects the TrackParCov overload; the propagation itself is unchanged.

Tests, same input with and without the fix, TPC-only legs:

  • COSMICS run 562658 (0.5 T, no TPC distortion correction), 2000 TFs: cosmics with legs in opposite halves 221 -> 402 (total 253 -> 456). Example of a rejected pair (matcher debug tree): dy = 0.79 cm with sigma2_y = 0.0013 cm2 used (= the value at x = 83 cm), while the covariance propagated to the DCA gives sigma2_y = 0.021 cm2, i.e. a 7 sigma window of 1.6 cm instead of < 0.8 cm.

  • Cosmic MC (O2DPG, GenCosmics, 0.5 T, no distortions, 5 TFs, MC labels): practically unchanged, 159 -> 165 cosmics; efficiency for muons with a TPC leg in each half 79.5 % -> 82.1 %; no wrong leg pairs (legs from different muons) in either case.

The gain in data comes from the uncorrected static distortions shifting the legs beyond the too narrow window; without distortions (MC) the legs agree well enough to pass also with the unpropagated covariance.

MatchCosmics::process propagates every seed to the DCA to the origin with
propagateToDCABxByBz(Point3D, ...). With a Point3D this resolves to the
TrackPar_t overload: only the track parameters are propagated, the
covariance stays the one at the track's reference X (TPC inner radius).
checkPair then compares the two legs at the DCA with these too small
errors, so the y/snp cuts and the chi2 are far too tight and genuine legs
are rejected (RejY). Using a VertexBase (origin, zero covariance) selects
the TrackParCov overload; the propagation itself is unchanged.

Tests, same input with and without the fix, TPC-only legs:

- COSMICS run 562658 (0.5 T, no TPC distortion correction), 2000 TFs:
  cosmics with legs in opposite halves 221 -> 402 (total 253 -> 456).
  Example of a rejected pair (matcher debug tree): dy = 0.79 cm with
  sigma2_y = 0.0013 cm2 used (= the value at x = 83 cm), while the
  covariance propagated to the DCA gives sigma2_y = 0.021 cm2, i.e. a
  7 sigma window of 1.6 cm instead of < 0.8 cm.

- Cosmic MC (O2DPG, GenCosmics, 0.5 T, no distortions, 5 TFs, MC labels):
  practically unchanged, 159 -> 165 cosmics; efficiency for muons with a
  TPC leg in each half 79.5 % -> 82.1 %; no wrong leg pairs (legs from
  different muons) in either case.

The gain in data comes from the uncorrected static distortions shifting the
legs beyond the too narrow window; without distortions (MC) the legs agree
well enough to pass also with the unpropagated covariance.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

@shahor02 shahor02 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the fix.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants