From dd1e28eece2d7444673751ecefa7460be2768a8f Mon Sep 17 00:00:00 2001 From: Pieter David Date: Wed, 19 Sep 2018 16:58:17 +0200 Subject: [PATCH 1/4] APVRestorer: allow 'Hybrid' inspect mode with baseline follower (and use it in hybrid customisation) --- .../SiStripZeroSuppression/python/customiseHybrid.py | 1 + .../SiStripZeroSuppression/src/SiStripAPVRestorer.cc | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/RecoLocalTracker/SiStripZeroSuppression/python/customiseHybrid.py b/RecoLocalTracker/SiStripZeroSuppression/python/customiseHybrid.py index f4416d6447efa..bc3f90795ab7b 100644 --- a/RecoLocalTracker/SiStripZeroSuppression/python/customiseHybrid.py +++ b/RecoLocalTracker/SiStripZeroSuppression/python/customiseHybrid.py @@ -4,6 +4,7 @@ def runOnHybridZS(process): process.load("RecoLocalTracker.SiStripZeroSuppression.SiStripZeroSuppression_cfi") process.load("RecoLocalTracker.SiStripClusterizer.SiStripClusterizer_cfi") + process.siStripZeroSuppression.Algorithms.APVInspectMode = "Hybrid" zsInputs = process.siStripZeroSuppression.RawDigiProducersList clusInputs = process.siStripClusters.DigiProducersList unpackedZS = cms.InputTag("siStripDigis", "ZeroSuppressed") diff --git a/RecoLocalTracker/SiStripZeroSuppression/src/SiStripAPVRestorer.cc b/RecoLocalTracker/SiStripZeroSuppression/src/SiStripAPVRestorer.cc index 0443d3634b135..eaf6cac8fb0ad 100644 --- a/RecoLocalTracker/SiStripZeroSuppression/src/SiStripAPVRestorer.cc +++ b/RecoLocalTracker/SiStripZeroSuppression/src/SiStripAPVRestorer.cc @@ -46,8 +46,8 @@ SiStripAPVRestorer::SiStripAPVRestorer(const edm::ParameterSet& conf): size_window_(conf.getParameter("sizeWindow")), width_cluster_(conf.getParameter("widthCluster")) { - if ( restoreAlgo_ == "BaselineFollower" && inspectAlgo_ != "BaselineFollower" ) - throw cms::Exception("Incompatible Algorithm") << "The BaselineFollower restore method requires the BaselineFollower inspect method"; + if ( restoreAlgo_ == "BaselineFollower" && inspectAlgo_ != "BaselineFollower" && inspectAlgo_ != "Hybrid" ) + throw cms::Exception("Incompatible Algorithm") << "The BaselineFollower restore method requires the BaselineFollower (or Hybrid) inspect method"; } From 16656ccc1b8b91666f337e5be22cfabc38723efe Mon Sep 17 00:00:00 2001 From: Pieter David Date: Wed, 19 Sep 2018 16:59:51 +0200 Subject: [PATCH 2/4] Use auto:run2_hlt_hi (with complete pedestals) for the hybrid emulation relval step --- Configuration/PyReleaseValidation/python/relval_steps.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Configuration/PyReleaseValidation/python/relval_steps.py b/Configuration/PyReleaseValidation/python/relval_steps.py index 11a79d1840532..3e5f545e2cb51 100644 --- a/Configuration/PyReleaseValidation/python/relval_steps.py +++ b/Configuration/PyReleaseValidation/python/relval_steps.py @@ -1549,7 +1549,7 @@ def lhegensim2017(fragment,howMuch): steps['HYBRIDRepackHI2015VR']={'--eventcontent':'RAW', '--datatier':'RAW', - '--conditions':'auto:run2_data', + '--conditions':'auto:run2_hlt_hi', '--step':'RAW2DIGI,REPACK:DigiToHybridRawRepack', '--scenario':'HeavyIons', '--data':'', From 493255289bbb116eb76e79f985ab3c6b2ee7f6ea Mon Sep 17 00:00:00 2001 From: Pieter David Date: Wed, 19 Sep 2018 17:39:37 +0200 Subject: [PATCH 3/4] Hybrid emulation: correct for the x->(x+1024)/2 transformation in the MeanCM parameter --- .../SiStripZeroSuppression/python/customiseHybrid.py | 2 +- .../SiStripZeroSuppression/src/SiStripAPVRestorer.cc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/RecoLocalTracker/SiStripZeroSuppression/python/customiseHybrid.py b/RecoLocalTracker/SiStripZeroSuppression/python/customiseHybrid.py index bc3f90795ab7b..42efe243f56cc 100644 --- a/RecoLocalTracker/SiStripZeroSuppression/python/customiseHybrid.py +++ b/RecoLocalTracker/SiStripZeroSuppression/python/customiseHybrid.py @@ -34,7 +34,7 @@ def addHybridEmulationBeforeRepack(process): zs.Algorithms.APVInspectMode = "HybridEmulation" zs.Algorithms.APVRestoreMode = "" zs.Algorithms.CommonModeNoiseSubtractionMode = 'Median' - zs.Algorithms.MeanCM = 512 + zs.Algorithms.MeanCM = 0 zs.Algorithms.DeltaCMThreshold = 20 zs.Algorithms.Use10bitsTruncation = True zs.RawDigiProducersList = cms.VInputTag(cms.InputTag("siStripDigis", "VirginRaw")) diff --git a/RecoLocalTracker/SiStripZeroSuppression/src/SiStripAPVRestorer.cc b/RecoLocalTracker/SiStripZeroSuppression/src/SiStripAPVRestorer.cc index eaf6cac8fb0ad..2c51acc337389 100644 --- a/RecoLocalTracker/SiStripZeroSuppression/src/SiStripAPVRestorer.cc +++ b/RecoLocalTracker/SiStripZeroSuppression/src/SiStripAPVRestorer.cc @@ -323,7 +323,7 @@ inline uint16_t SiStripAPVRestorer::hybridEmulationInspect(uint16_t firstAPV, co if ( useRealMeanCM_ && ( std::end(meanCMmap_) != itCMMap ) ) MeanAPVCM = itCMMap->second[iAPV]; - const float DeltaCM = median_[iAPV] - MeanAPVCM; + const float DeltaCM = median_[iAPV] - (MeanAPVCM+1024)/2; if ( ( DeltaCM < 0 ) && ( std::abs(DeltaCM) > deltaCMThreshold_ ) ) { apvFlags_[iAPV] = "HybridEmulation"; ++nAPVflagged; From 77d2eda1d440416ea467b416a5284d24c208d337 Mon Sep 17 00:00:00 2001 From: Pieter David Date: Fri, 21 Sep 2018 10:42:42 +0200 Subject: [PATCH 4/4] Hybrid emulation: also divide the DeltaCMThreshold parameter by two --- .../SiStripZeroSuppression/src/SiStripAPVRestorer.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RecoLocalTracker/SiStripZeroSuppression/src/SiStripAPVRestorer.cc b/RecoLocalTracker/SiStripZeroSuppression/src/SiStripAPVRestorer.cc index 2c51acc337389..24716ef61bd7d 100644 --- a/RecoLocalTracker/SiStripZeroSuppression/src/SiStripAPVRestorer.cc +++ b/RecoLocalTracker/SiStripZeroSuppression/src/SiStripAPVRestorer.cc @@ -324,7 +324,7 @@ inline uint16_t SiStripAPVRestorer::hybridEmulationInspect(uint16_t firstAPV, co MeanAPVCM = itCMMap->second[iAPV]; const float DeltaCM = median_[iAPV] - (MeanAPVCM+1024)/2; - if ( ( DeltaCM < 0 ) && ( std::abs(DeltaCM) > deltaCMThreshold_ ) ) { + if ( ( DeltaCM < 0 ) && ( std::abs(DeltaCM) > deltaCMThreshold_/2 ) ) { apvFlags_[iAPV] = "HybridEmulation"; ++nAPVflagged; }