Skip to content

Commit

Permalink
feat: MultiTrajectory chi2 handling (#1057)
Browse files Browse the repository at this point in the history
This PR makes `MultiTrajectory` always initialize the `chi2` value to `0`. In addition, I updated `MultiTrajectoryHelpers::trajectoryState` to only add track state `chi2` to the overall `chi2sum` for measurement track states.
Outlier track states' `chi2` is still recorded in the separate `outlierChi2`. 
I think this makes sense since the outlier is not actually used in the fit, and the track state can only contain the *predicted* `chi2` rather than the *filtered* `chi2` that the measurement states have.
  • Loading branch information
paulgessinger committed Oct 29, 2021
1 parent af862bc commit 8ce4d31
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 5 deletions.
2 changes: 1 addition & 1 deletion Core/include/Acts/EventData/MultiTrajectory.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ struct IndexData {
IndexType ijacobian = kInvalid;
IndexType iprojector = kInvalid;

double chi2;
double chi2 = 0;
double pathLength;
TrackStateType typeFlags;

Expand Down
10 changes: 6 additions & 4 deletions Core/include/Acts/EventData/MultiTrajectoryHelpers.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -61,16 +61,17 @@ TrajectoryState trajectoryState(
const auto& volume = geoID.volume();
const auto& layer = geoID.layer();
trajState.nStates++;
trajState.chi2Sum += state.chi2();
trajState.NDF += state.calibratedSize();
auto typeFlags = state.typeFlags();
if (typeFlags.test(Acts::TrackStateFlag::MeasurementFlag)) {
if (typeFlags.test(Acts::TrackStateFlag::SharedHitFlag))
if (typeFlags.test(Acts::TrackStateFlag::SharedHitFlag)) {
trajState.nSharedHits++;
}
trajState.nMeasurements++;
trajState.measurementChi2.push_back(state.chi2());
trajState.measurementVolume.push_back(volume);
trajState.measurementLayer.push_back(layer);
trajState.chi2Sum += state.chi2();
} else if (typeFlags.test(Acts::TrackStateFlag::OutlierFlag)) {
trajState.nOutliers++;
trajState.outlierChi2.push_back(state.chi2());
Expand Down Expand Up @@ -113,16 +114,17 @@ VolumeTrajectoryStateContainer trajectoryState(
// The trajectory state for this volume
auto& trajState = trajStateContainer[volume];
trajState.nStates++;
trajState.chi2Sum += state.chi2();
trajState.NDF += state.calibratedSize();
auto typeFlags = state.typeFlags();
if (typeFlags.test(Acts::TrackStateFlag::MeasurementFlag)) {
if (typeFlags.test(Acts::TrackStateFlag::SharedHitFlag))
if (typeFlags.test(Acts::TrackStateFlag::SharedHitFlag)) {
trajState.nSharedHits++;
}
trajState.nMeasurements++;
trajState.measurementChi2.push_back(state.chi2());
trajState.measurementVolume.push_back(volume);
trajState.measurementLayer.push_back(layer);
trajState.chi2Sum += state.chi2();
} else if (typeFlags.test(Acts::TrackStateFlag::OutlierFlag)) {
trajState.nOutliers++;
trajState.outlierChi2.push_back(state.chi2());
Expand Down

0 comments on commit 8ce4d31

Please sign in to comment.