18 m_eLossCorrection(true),
22 declareInterface<Trk::IMaterialEffectsEngine>(
this);
41 return StatusCode::SUCCESS;
48 return StatusCode::SUCCESS;
67 double mFactor =
layer->layerMaterialProperties()->factor(rlDir, matupstage);
73 pathCorrection = mFactor*pathCorrection;
79 if (materialProperties && std::abs(pathCorrection)>0.){
88 eCell.
addMaterial(pathCorrection, materialProperties);
126 double mFactor =
layer->layerMaterialProperties()->factor(rlDir, matupstage);
128 EX_MSG_VERBOSE(eCell.
navigationStep,
"layer",
layer->layerIndex().value(),
"material update with " << (matupstage > 0. ?
"pre " :
"post ") <<
"factor 0. No update done.");
132 pathCorrection = mFactor*pathCorrection;
138 if (materialProperties && std::abs(pathCorrection)>0. &&
146 ? std::make_unique<AmgSymMatrix(5)>(*
parameters.covariance())
151 double thickness = materialProperties->
thickness();
155 double E = sqrt(
p*
p+
m*
m);
158 if (m_eLossCorrection){
163 double dE = thickness*pathCorrection*dEdl;
164 sigmaP *= thickness*pathCorrection;
166 double newP = sqrt((
E+dE)*(
E+dE)-
m*
m);
168 double sigmaDeltaE = thickness*pathCorrection*sigmaP;
175 if (uCovariance && m_mscCorrection){
179 double sigmaDeltaPhiSq = sigmaMS*sigmaMS/(sinTheta*sinTheta);
180 double sigmaDeltaThetaSq = sigmaMS*sigmaMS;
191 eCell.
addMaterial(pathCorrection, materialProperties);
197 parameters.updateParameters(uParameters,*uCovariance);
209 *uCovariance).release();