Skip to content
Snippets Groups Projects
Commit 96d5cafe authored by Xiaocong Ai's avatar Xiaocong Ai Committed by Paul Gessinger
Browse files

Adapt materialInteractor in KF for no material case

parent 9b544814
No related branches found
No related tags found
1 merge request!793Fix kf surface check
......@@ -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);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment