From 9813e960824c457da46a241b8da23212749073f1 Mon Sep 17 00:00:00 2001 From: tomeichlersmith Date: Mon, 7 Nov 2022 10:43:29 -0600 Subject: [PATCH] move noise RMS to hgcroc emulator conditions tables --- include/Ecal/EcalDigiProducer.h | 3 --- python/digi.py | 6 +----- python/ecal_hardcoded_conditions.py | 2 ++ src/Ecal/EcalDigiProducer.cxx | 5 ++--- 4 files changed, 5 insertions(+), 11 deletions(-) diff --git a/include/Ecal/EcalDigiProducer.h b/include/Ecal/EcalDigiProducer.h index 54951ec..9c86c33 100644 --- a/include/Ecal/EcalDigiProducer.h +++ b/include/Ecal/EcalDigiProducer.h @@ -98,9 +98,6 @@ class EcalDigiProducer : public framework::Producer { */ bool zero_suppression_; - /// Store Average Noise RMS for no-zero-suppresion noise emulation mode - double avgNoiseRMS_; - /////////////////////////////////////////////////////////////////////////////////////// // Other member variables diff --git a/python/digi.py b/python/digi.py index cd9af98..06080b7 100644 --- a/python/digi.py +++ b/python/digi.py @@ -26,10 +26,6 @@ def EcalHgcrocEmulator() : to a test readout of an ECal module and then thresholds to the default construction using 37k electrons as the number of electrons per MIP. - - Noise RMS is calculated using the average readout pad capacitance (20pF), - noise at zero capacitance (700 electrons), and noise increase - per capacitance increase (25 electrons per pF). """ from LDMX.Tools import HgcrocEmulator @@ -42,7 +38,6 @@ def EcalHgcrocEmulator() : hgcroc.timeDnSlope = 87.7649 hgcroc.timePeak = 77.732 - hgcroc.noiseRMS = (700. + 25.*20.)*(0.1602/1000.)*(1./20.) #mV hgcroc.nADCs = 10 hgcroc.iSOI = 2 @@ -92,6 +87,7 @@ def __init__(self, instance_name = 'ecalDigis', si_thickness = 0.3) : avgGain = 0.3125/20. self.avgReadoutThreshold = 53.*avgGain self.avgPedestal = 50.*avgGain + self.avgNoiseRMS = 2.0*avgGain # Should we suppress noise "hits" below readout threshold? self.zero_suppression = True diff --git a/python/ecal_hardcoded_conditions.py b/python/ecal_hardcoded_conditions.py index 3b89a1f..ad2307f 100644 --- a/python/ecal_hardcoded_conditions.py +++ b/python/ecal_hardcoded_conditions.py @@ -30,6 +30,7 @@ EcalHgcrocConditionsHardcode=SimpleCSVDoubleTableProvider("EcalHgcrocConditions", [ "PEDESTAL", + "NOISE", "MEAS_TIME", "PAD_CAPACITANCE", "TOT_MAX", @@ -42,6 +43,7 @@ EcalHgcrocConditionsHardcode.validForAllRows([ 50. , #PEDESTAL + 2.0, #NOISE 0.0, #MEAS_TIME - ns 20., #PAD_CAPACITANCE - pF 200., #TOT_MAX - ns - maximum time chip would be in TOT mode diff --git a/src/Ecal/EcalDigiProducer.cxx b/src/Ecal/EcalDigiProducer.cxx index 015c38f..beea761 100644 --- a/src/Ecal/EcalDigiProducer.cxx +++ b/src/Ecal/EcalDigiProducer.cxx @@ -52,10 +52,9 @@ void EcalDigiProducer::configure(framework::config::Parameters& ps) { // Configure generator that will produce noise hits in empty channels double readoutThreshold = ps.getParameter("avgReadoutThreshold"); double pedestal = ps.getParameter("avgPedestal"); - // saved because it might be used later - avgNoiseRMS_ = hgcrocParams.getParameter("noiseRMS"); + double noiseRMS = ps.getParameter("avgNoiseRMS"); // rms noise in mV - noiseGenerator_->setNoise(avgNoiseRMS_); + noiseGenerator_->setNoise(noiseRMS); // mean noise amplitude (if using Gaussian Model for the noise) in mV noiseGenerator_->setPedestal(pedestal); // threshold for readout in mV