Skip to content

Fix bugs of SCT_SurfaceChargesGenerator. (ATLASSIM-4936)

Susumu Oda requested to merge oda/athena:master-ATLASSIM-4936 into master

Updates to fix unexpected differences when using SCT_InducedChargeModel.

Fix a bug of SCT_SurfaceChargesGenerator.

dstrip = dstrip - static_cast<double>(int(dstrip)) + 1;

was modified to

dstrip -= static_cast<double>(static_cast<int>(dstrip)) + 1;

by https://gitlab.cern.ch/atlas/athenaprivate1/-/merge_requests/13814 This should be

dstrip -= static_cast<double>(static_cast<int>(dstrip)) - 1;

For clarity, I changed this to

dstrip = dstrip - static_cast<double>(static_cast<int>(dstrip)) + 1;

dstrip is not used by the standard ballistic model.

Use conditions database in SCT_SurfaceChargesGenerator.

The default value of m_useSiCondDB of SCT_SurfaceChargesGenerator is true in 21.0 and false in master. This difference was introduced by my MR !22629 (merged) unintentionally. (I now checked there were no more unintentional changes.) The defaul value in master was changed to true because the use of cond DB is better to reproduce the detector condition of data.

Electron mobility update

After fixing SCT_SurfaceChargesGenerator::m_useSiCondDB and SCT_SurfaceChargesGenerator::processSiHit::dstrip, still differences are seen. This comes from SCT_InducedChargeModel::getVxVyD. Electron mobility was changed in master branch intentionally by !34280 (merged) These remaining differences are fine.

Expected impact

Some differences in output (of the standard chain) are expected by the change of SCT_SurfaceChargesGenerator::m_useSiCondDB. RunTier0Tests.py was fine. RunTier0Tests.log

With this fix the default ballistic model

master_def

and the Induced Charge model (SCT_SurfaceChargesGenerator::m_doInducedChargeModel=true)

master_fix2

give similar results. These plots were made by q221 test with this MR + Athena master latest.

Edited by Susumu Oda

Merge request reports