19 declareInterface<Trk::IMaterialEffectsEngine>(
this);
30 m_sopPrefix = m_sopPrefix_prop;
31 m_sopPostfix = m_sopPostfix_prop;
34 return StatusCode::SUCCESS;
41 return StatusCode::SUCCESS;
60 double mFactor =
layer->layerMaterialProperties()->factor(rlDir, matupstage);
66 pathCorrection = mFactor*pathCorrection;
72 if (materialProperties && std::abs(pathCorrection)>0.){
81 eCell.
addMaterial(pathCorrection, materialProperties);
119 double mFactor =
layer->layerMaterialProperties()->factor(rlDir, matupstage);
121 EX_MSG_VERBOSE(eCell.
navigationStep,
"layer",
layer->layerIndex().value(),
"material update with " << (matupstage > 0. ?
"pre " :
"post ") <<
"factor 0. No update done.");
125 pathCorrection = mFactor*pathCorrection;
131 if (materialProperties && std::abs(pathCorrection)>0. &&
139 ? std::make_unique<AmgSymMatrix(5)>(*
parameters.covariance())
144 double thickness = materialProperties->
thickness();
148 double E = sqrt(
p*
p+
m*
m);
151 if (m_eLossCorrection){
156 double dE = thickness*pathCorrection*dEdl;
157 sigmaP *= thickness*pathCorrection;
159 double newP = sqrt((
E+dE)*(
E+dE)-
m*
m);
161 double sigmaDeltaE = thickness*pathCorrection*sigmaP;
168 if (uCovariance && m_mscCorrection){
172 double sigmaDeltaPhiSq = sigmaMS*sigmaMS/(sinTheta*sinTheta);
173 double sigmaDeltaThetaSq = sigmaMS*sigmaMS;
184 eCell.
addMaterial(pathCorrection, materialProperties);
190 parameters.updateParameters(uParameters,*uCovariance);
202 *uCovariance).release();