Skip to content
Snippets Groups Projects
Commit 175ce210 authored by Vakhtang Tsulaia's avatar Vakhtang Tsulaia
Browse files

Merge branch 'NSWDigiUpdates_CherryPick' into 'master'

Manually sweeping !37961 from 21.3 to master BugFix MM Overlay and sTGC

See merge request atlas/athena!38055
parents 3e6e242f e768f9c9
No related branches found
No related tags found
No related merge requests found
...@@ -7,12 +7,14 @@ from Digitization.DigitizationFlags import jobproperties ...@@ -7,12 +7,14 @@ from Digitization.DigitizationFlags import jobproperties
from AthenaCommon import CfgMgr from AthenaCommon import CfgMgr
# The earliest bunch crossing time for which interactions will be sent # The earliest bunch crossing time for which interactions will be sent
# to the MdtDigitizationTool. # to the MMDigitizationTool.
# MM readout window is 8BC. To be safe, do [-7,7]
def MM_FirstXing(): def MM_FirstXing():
return -250 return -200
# The latest bunch crossing time for which interactions will be sent # The latest bunch crossing time for which interactions will be sent
# to the MdtDigitizationTool. # to the MMDigitizationTool.
# MM readout window is 8BC. To be safe, do [-7,7]
def MM_LastXing(): def MM_LastXing():
return 200 return 200
......
...@@ -7,14 +7,14 @@ from Digitization.DigitizationFlags import jobproperties ...@@ -7,14 +7,14 @@ from Digitization.DigitizationFlags import jobproperties
from AthenaCommon import CfgMgr from AthenaCommon import CfgMgr
# The earliest bunch crossing time for which interactions will be sent # The earliest bunch crossing time for which interactions will be sent
# to the sTGCDigitizationTool. # to the sTGCDigitizationTool. BCID = -4
def sTGC_FirstXing(): def sTGC_FirstXing():
return -375 return -100
# The latest bunch crossing time for which interactions will be sent # The latest bunch crossing time for which interactions will be sent
# to the sTGCDigitizationTool. # to the sTGCDigitizationTool. BCID = 3
def sTGC_LastXing(): def sTGC_LastXing():
return 175 return 100
def sTgcDigitizationTool(name="sTgcDigitizationTool",**kwargs): def sTgcDigitizationTool(name="sTgcDigitizationTool",**kwargs):
if jobproperties.Digitization.doXingByXingPileUp(): if jobproperties.Digitization.doXingByXingPileUp():
......
neighborON 1 neighborON 1
mainThreshold 0.02 mainThreshold 0.001
neighborThreshold 0.0 neighborThreshold 0.0
readoutTick 1 readoutTick 1
...@@ -52,7 +52,7 @@ sTgcDigitMaker::sTgcDigitMaker(sTgcHitIdHelper* hitIdHelper, const MuonGM::MuonD ...@@ -52,7 +52,7 @@ sTgcDigitMaker::sTgcDigitMaker(sTgcHitIdHelper* hitIdHelper, const MuonGM::MuonD
m_GausMean = 2.27; //mm; VMM response from Oct/Nov 2013 test beam m_GausMean = 2.27; //mm; VMM response from Oct/Nov 2013 test beam
m_GausSigma = 0.1885;//mm; VMM response from Oct/Nov 2013 test beam m_GausSigma = 0.1885;//mm; VMM response from Oct/Nov 2013 test beam
m_IntegralTimeOfElectr = 20.00; // ns m_IntegralTimeOfElectr = 20.00; // ns
m_CrossTalk = 0.03; m_CrossTalk = 0.00; // Turn off cross-talk. Old guesstimate was 0.03: Alexandre Laurier 2020-10-11
m_StripResolution = 0.07; // Angular strip resolution parameter m_StripResolution = 0.07; // Angular strip resolution parameter
m_ChargeSpreadFactor = 0.; m_ChargeSpreadFactor = 0.;
m_channelTypes = 3; // 1 -> strips, 2 -> strips+pad, 3 -> strips/wires/pads m_channelTypes = 3; // 1 -> strips, 2 -> strips+pad, 3 -> strips/wires/pads
......
...@@ -34,13 +34,31 @@ namespace Overlay ...@@ -34,13 +34,31 @@ namespace Overlay
throw std::runtime_error("mergeChannelData<MmDigit>() called by a wrong parent algorithm? Must be MM_Overlay."); throw std::runtime_error("mergeChannelData<MmDigit>() called by a wrong parent algorithm? Must be MM_Overlay.");
} }
// This is a needed temporary hack for which I dont fully understand the source. Alexandre Laurier 2020-10-06
// For some reason, sometimes the "main digit"'s size is empty.
// In these cases, dataContainer is larger than mcContainer which goes against the basic overlay assumption
// These happen in cases where we create very busy signal events.
// A MicroMega digit is a vector of strips, so an empty digit makes no sense.
bool skipOverlay = false;
if (signalDigit.stripResponseTime().size() == 0) {
signalDigit = bkgDigit;
skipOverlay = true;
}
float sig_time = signalDigit.stripResponseTime()[0]; float sig_time = signalDigit.stripResponseTime()[0];
float bkg_time = bkgDigit.stripResponseTime()[0]; float bkg_time = bkgDigit.stripResponseTime()[0];
if (skipOverlay) { // do nothing since 1 digit was empty. Keep the original
algorithm->msg(MSG::WARNING)
<< "Skipping overlay of empty MM digit!"
<< endmsg;
}
// As of now, we need to decide how to overlay MM digits // As of now, we need to decide how to overlay MM digits
// NEEDS TO BE ADDRESSED // NEEDS TO BE ADDRESSED
// For this preliminary version of July 2019, use only the data from the 1st digit in vector. // For this preliminary version of July 2019, use only the data from the 1st digit in vector.
/** signal masks the background */ /** signal masks the background */
if ( abs(sig_time - bkg_time) > parent->timeIntegrationWindow() && sig_time < bkg_time ) { else if ( abs(sig_time - bkg_time) > parent->timeIntegrationWindow() && sig_time < bkg_time ) {
// do nothing - keep baseDigit. // do nothing - keep baseDigit.
} }
/** Background hit masks the signal hit */ /** Background hit masks the signal hit */
......
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