diff --git a/include/TFRPropagator.cpp b/include/TFRPropagator.cpp index 363e6b8e040fc22eb16e12d08abbab1ba1bc5fa9..d31b2f667517fec9adf017e2245fe8e8b65fb36d 100644 --- a/include/TFRPropagator.cpp +++ b/include/TFRPropagator.cpp @@ -18,15 +18,13 @@ bool TFRPropagator::PropagateState(TFRState *state, double z){ //Do the extrapolation from layer to layer for(int i = 0; i < layers.GetEntries(); i++){ - //Do the actual extrapolation to the next layer - if(!PropagateStateNoScattering(state, ((TFRLayer*) layers.At(i))->GetPosition()[2])) - return false; - //Add uncertainty due to multiple scattering at this layer - if(!AddScatteringToCovariance(state, (TFRLayer*) layers.At(i))) return false; + //TASK: extrapolate the state to the next layer (without multiple scattering) and add the scattering effect to the covariance + } + + //TASK: last step of the extrapolation, to the final z after the last layer + // Should you consider multiple scattering here? - //Do the remaining extrapolation after the last layer - if(!PropagateStateNoScattering(state, z)) return false; return true; } @@ -51,7 +49,6 @@ bool TFRPropagator::PropagateStateNoScattering(TFRState *state, double z){ //inside the possible B-field if(!PropagateStateInBField(state, min(z,m_geo->GetBFieldEndZ()))) return false; } - //If we are already in the B-field else if(m_geo->GetBFieldEndZ() >= state->GetZ()){ if(!PropagateStateInBField(state, min(z,m_geo->GetBFieldEndZ()))) return false; @@ -69,13 +66,11 @@ bool TFRPropagator::PropagateStateNoScattering(TFRState *state, double z){ if(!PropagateStateInBField(state, max(z,m_geo->GetBFieldStartZ()))) return false; } - //If we are already in the B-field else if(m_geo->GetBFieldStartZ() <= state->GetZ()){ if(!PropagateStateInBField(state, max(z,m_geo->GetBFieldStartZ()))) return false; } - //Straight in the possible rest after the B-field PropagateStateStraight(state, z);