Skip to content
Snippets Groups Projects

Fix kf surface check

Merged Xiaocong Ai requested to merge fix-KF-surface-check into master
1 file
+ 34
21
Compare changes
  • Side-by-side
  • Inline
@@ -747,27 +747,40 @@ class KalmanFitter {
void materialInteractor(
const Surface* surface, propagator_state_t& state, stepper_t& stepper,
const MaterialUpdateStage& updateStage = fullUpdate) const {
// Prepare relevant input particle properties
detail::PointwiseMaterialInteraction interaction(surface, state, stepper);
// Evaluate the material properties
if (interaction.evaluateMaterialProperties(state, updateStage)) {
// Evaluate the material effects
interaction.evaluatePointwiseMaterialInteraction(multipleScattering,
energyLoss);
ACTS_VERBOSE("Material effects on surface: "
<< surface->geoID() << " at update stage: " << updateStage
<< " are :");
ACTS_VERBOSE("eLoss = "
<< interaction.Eloss << ", "
<< "variancePhi = " << interaction.variancePhi << ", "
<< "varianceTheta = " << interaction.varianceTheta << ", "
<< "varianceQoverP = " << interaction.varianceQoverP);
// Update the state and stepper with material effects
interaction.updateState(state, stepper);
} else {
// Indicator if having material
bool hasMaterial = false;
if (surface and surface->surfaceMaterial()) {
// Prepare relevant input particle properties
detail::PointwiseMaterialInteraction interaction(surface, state,
stepper);
// Evaluate the material properties
if (interaction.evaluateMaterialProperties(state, updateStage)) {
// Surface has material at this stage
hasMaterial = true;
// Evaluate the material effects
interaction.evaluatePointwiseMaterialInteraction(multipleScattering,
energyLoss);
// Screen out material effects info
ACTS_VERBOSE("Material effects on surface: "
<< surface->geoID()
<< " at update stage: " << updateStage << " are :");
ACTS_VERBOSE("eLoss = "
<< interaction.Eloss << ", "
<< "variancePhi = " << interaction.variancePhi << ", "
<< "varianceTheta = " << interaction.varianceTheta
<< ", "
<< "varianceQoverP = " << interaction.varianceQoverP);
// Update the state and stepper with material effects
interaction.updateState(state, stepper);
}
}
if (not hasMaterial) {
// Screen out message
ACTS_VERBOSE("No material effects on surface: " << surface->geoID()
<< " at update stage: "
<< updateStage);
Loading