From 0d5e096dd86ad3bdb7d4811f026cee1ecae9d8a4 Mon Sep 17 00:00:00 2001 From: Andrea Bocci Date: Wed, 23 Dec 2020 09:42:03 +0100 Subject: [PATCH] Update the default configuration of ECAL modules (#598) Update the default configuration of "EcalRawToDigiGPU" and "EcalUncalibRecHitProducerGPU": - enable the ECAL pulse timing computation in the offline workflow; - change the ECAL GPU digis label to match the CPU ones. Other clean up: - remove an unused cfi file; - rename "EcalUncalibRecHitMultiFitAlgo_gpu_new" to "EcalUncalibRecHitMultiFitAlgoGPU". --- .../plugins/EcalCPUDigisProducer.cc | 4 +- .../EcalRawToDigi/plugins/EcalRawToDigiGPU.cc | 4 +- .../EcalRawToDigi/python/ecalDigis_cff.py | 4 +- .../python/customizeHLTforPatatrack.py | 5 +- ...cu => EcalUncalibRecHitMultiFitAlgoGPU.cu} | 2 +- ...w.h => EcalUncalibRecHitMultiFitAlgoGPU.h} | 6 +- .../plugins/EcalUncalibRecHitProducerGPU.cc | 15 ++-- .../ecalMultiFitUncalibRecHitGPU_cfi.py | 86 ------------------- .../python/ecalMultiFitUncalibRecHit_cff.py | 4 +- 9 files changed, 22 insertions(+), 108 deletions(-) rename RecoLocalCalo/EcalRecProducers/plugins/{EcalUncalibRecHitMultiFitAlgo_gpu_new.cu => EcalUncalibRecHitMultiFitAlgoGPU.cu} (99%) rename RecoLocalCalo/EcalRecProducers/plugins/{EcalUncalibRecHitMultiFitAlgo_gpu_new.h => EcalUncalibRecHitMultiFitAlgoGPU.h} (89%) delete mode 100644 RecoLocalCalo/EcalRecProducers/python/ecalMultiFitUncalibRecHitGPU_cfi.py diff --git a/EventFilter/EcalRawToDigi/plugins/EcalCPUDigisProducer.cc b/EventFilter/EcalRawToDigi/plugins/EcalCPUDigisProducer.cc index e3b283d3e91ec..5563dd5b52cc8 100644 --- a/EventFilter/EcalRawToDigi/plugins/EcalCPUDigisProducer.cc +++ b/EventFilter/EcalRawToDigi/plugins/EcalCPUDigisProducer.cc @@ -69,8 +69,8 @@ class EcalCPUDigisProducer : public edm::stream::EDProducer { void EcalCPUDigisProducer::fillDescriptions(edm::ConfigurationDescriptions& confDesc) { edm::ParameterSetDescription desc; - desc.add("digisInLabelEB", edm::InputTag{"ecalRawToDigiGPU", "ebDigisGPU"}); - desc.add("digisInLabelEE", edm::InputTag{"ecalRawToDigiGPU", "eeDigisGPU"}); + desc.add("digisInLabelEB", edm::InputTag{"ecalRawToDigiGPU", "ebDigis"}); + desc.add("digisInLabelEE", edm::InputTag{"ecalRawToDigiGPU", "eeDigis"}); desc.add("digisOutLabelEB", "ebDigis"); desc.add("digisOutLabelEE", "eeDigis"); diff --git a/EventFilter/EcalRawToDigi/plugins/EcalRawToDigiGPU.cc b/EventFilter/EcalRawToDigi/plugins/EcalRawToDigiGPU.cc index 66d7203ac3d2b..4f0743c9b1b51 100644 --- a/EventFilter/EcalRawToDigi/plugins/EcalRawToDigiGPU.cc +++ b/EventFilter/EcalRawToDigi/plugins/EcalRawToDigiGPU.cc @@ -50,8 +50,8 @@ void EcalRawToDigiGPU::fillDescriptions(edm::ConfigurationDescriptions& confDesc desc.add>("FEDs", feds); desc.add("maxChannelsEB", 61200); desc.add("maxChannelsEE", 14648); - desc.add("digisLabelEB", "ebDigisGPU"); - desc.add("digisLabelEE", "eeDigisGPU"); + desc.add("digisLabelEB", "ebDigis"); + desc.add("digisLabelEE", "eeDigis"); std::string label = "ecalRawToDigiGPU"; confDesc.add(label, desc); diff --git a/EventFilter/EcalRawToDigi/python/ecalDigis_cff.py b/EventFilter/EcalRawToDigi/python/ecalDigis_cff.py index f6b873704dcd8..00a54ad56c128 100644 --- a/EventFilter/EcalRawToDigi/python/ecalDigis_cff.py +++ b/EventFilter/EcalRawToDigi/python/ecalDigis_cff.py @@ -19,8 +19,8 @@ # copy the digi from the GPU to the CPU and convert to legacy format from EventFilter.EcalRawToDigi.ecalCPUDigisProducer_cfi import ecalCPUDigisProducer as _ecalCPUDigisProducer _ecalDigis_gpu = _ecalCPUDigisProducer.clone( - digisInLabelEB = cms.InputTag('ecalDigisGPU', 'ebDigisGPU'), - digisInLabelEE = cms.InputTag('ecalDigisGPU', 'eeDigisGPU'), + digisInLabelEB = ('ecalDigisGPU', 'ebDigis'), + digisInLabelEE = ('ecalDigisGPU', 'eeDigis'), produceDummyIntegrityCollections = True ) gpu.toReplaceWith(ecalDigis, _ecalDigis_gpu) diff --git a/HLTrigger/Configuration/python/customizeHLTforPatatrack.py b/HLTrigger/Configuration/python/customizeHLTforPatatrack.py index a8624de594ec8..6b1807b8389b5 100644 --- a/HLTrigger/Configuration/python/customizeHLTforPatatrack.py +++ b/HLTrigger/Configuration/python/customizeHLTforPatatrack.py @@ -429,8 +429,9 @@ def customiseEcalLocalReconstruction(process): # ECAL multifit running on gpu from RecoLocalCalo.EcalRecProducers.ecalUncalibRecHitProducerGPU_cfi import ecalUncalibRecHitProducerGPU as _ecalUncalibRecHitProducerGPU process.hltEcalUncalibRecHitGPU = _ecalUncalibRecHitProducerGPU.clone( - digisLabelEB = cms.InputTag("hltEcalDigisGPU", "ebDigis"), - digisLabelEE = cms.InputTag("hltEcalDigisGPU", "eeDigis") + digisLabelEB = ("hltEcalDigisGPU", "ebDigis"), + digisLabelEE = ("hltEcalDigisGPU", "eeDigis"), + shouldRunTimingComputation = False ) # copy the ECAL uncalibrated rechits from gpu to cpu in SoA format diff --git a/RecoLocalCalo/EcalRecProducers/plugins/EcalUncalibRecHitMultiFitAlgo_gpu_new.cu b/RecoLocalCalo/EcalRecProducers/plugins/EcalUncalibRecHitMultiFitAlgoGPU.cu similarity index 99% rename from RecoLocalCalo/EcalRecProducers/plugins/EcalUncalibRecHitMultiFitAlgo_gpu_new.cu rename to RecoLocalCalo/EcalRecProducers/plugins/EcalUncalibRecHitMultiFitAlgoGPU.cu index 2b68b56e501f2..9d5a8a2ad1bd3 100644 --- a/RecoLocalCalo/EcalRecProducers/plugins/EcalUncalibRecHitMultiFitAlgo_gpu_new.cu +++ b/RecoLocalCalo/EcalRecProducers/plugins/EcalUncalibRecHitMultiFitAlgoGPU.cu @@ -16,7 +16,7 @@ #include "AmplitudeComputationCommonKernels.h" #include "AmplitudeComputationKernels.h" #include "Common.h" -#include "EcalUncalibRecHitMultiFitAlgo_gpu_new.h" +#include "EcalUncalibRecHitMultiFitAlgoGPU.h" #include "TimeComputationKernels.h" //#define DEBUG diff --git a/RecoLocalCalo/EcalRecProducers/plugins/EcalUncalibRecHitMultiFitAlgo_gpu_new.h b/RecoLocalCalo/EcalRecProducers/plugins/EcalUncalibRecHitMultiFitAlgoGPU.h similarity index 89% rename from RecoLocalCalo/EcalRecProducers/plugins/EcalUncalibRecHitMultiFitAlgo_gpu_new.h rename to RecoLocalCalo/EcalRecProducers/plugins/EcalUncalibRecHitMultiFitAlgoGPU.h index 93923e63be632..c84047a8bf8e7 100644 --- a/RecoLocalCalo/EcalRecProducers/plugins/EcalUncalibRecHitMultiFitAlgo_gpu_new.h +++ b/RecoLocalCalo/EcalRecProducers/plugins/EcalUncalibRecHitMultiFitAlgoGPU.h @@ -1,5 +1,5 @@ -#ifndef RecoLocalCalo_EcalRecProducers_plugins_EcalUncalibRecHitMultiFitAlgo_gpu_new_h -#define RecoLocalCalo_EcalRecProducers_plugins_EcalUncalibRecHitMultiFitAlgo_gpu_new_h +#ifndef RecoLocalCalo_EcalRecProducers_plugins_EcalUncalibRecHitMultiFitAlgoGPU_h +#define RecoLocalCalo_EcalRecProducers_plugins_EcalUncalibRecHitMultiFitAlgoGPU_h #include @@ -20,4 +20,4 @@ namespace ecal { } // namespace multifit } // namespace ecal -#endif // RecoLocalCalo_EcalRecProducers_plugins_EcalUncalibRecHitMultiFitAlgo_gpu_new_h +#endif // RecoLocalCalo_EcalRecProducers_plugins_EcalUncalibRecHitMultiFitAlgoGPU_h diff --git a/RecoLocalCalo/EcalRecProducers/plugins/EcalUncalibRecHitProducerGPU.cc b/RecoLocalCalo/EcalRecProducers/plugins/EcalUncalibRecHitProducerGPU.cc index 6e8cc15b63f98..a321f35144c39 100644 --- a/RecoLocalCalo/EcalRecProducers/plugins/EcalUncalibRecHitProducerGPU.cc +++ b/RecoLocalCalo/EcalRecProducers/plugins/EcalUncalibRecHitProducerGPU.cc @@ -29,7 +29,7 @@ #include "Common.h" #include "DeclsForKernels.h" -#include "EcalUncalibRecHitMultiFitAlgo_gpu_new.h" +#include "EcalUncalibRecHitMultiFitAlgoGPU.h" class EcalUncalibRecHitProducerGPU : public edm::stream::EDProducer { public: @@ -73,8 +73,8 @@ class EcalUncalibRecHitProducerGPU : public edm::stream::EDProducer("digisLabelEB", edm::InputTag("ecalRawToDigiGPU", "ebDigisGPU")); - desc.add("digisLabelEE", edm::InputTag("ecalRawToDigiGPU", "eeDigisGPU")); + desc.add("digisLabelEB", edm::InputTag("ecalRawToDigiGPU", "ebDigis")); + desc.add("digisLabelEE", edm::InputTag("ecalRawToDigiGPU", "eeDigis")); desc.add("recHitsLabelEB", "EcalUncalibRecHitsEB"); desc.add("recHitsLabelEE", "EcalUncalibRecHitsEE"); @@ -99,10 +99,9 @@ void EcalUncalibRecHitProducerGPU::fillDescriptions(edm::ConfigurationDescriptio desc.add("amplitudeThresholdEE", 10); desc.add("maxNumberHitsEB", 61200); desc.add("maxNumberHitsEE", 14648); - desc.add>("kernelMinimizeThreads", {32, 1, 1}); - // ---- default false or true? It was set to true, but at HLT it is false - desc.add("shouldRunTimingComputation", false); - confDesc.add("ecalUncalibRecHitProducerGPU", desc); + desc.addUntracked>("kernelMinimizeThreads", {32, 1, 1}); + desc.add("shouldRunTimingComputation", true); + confDesc.addWithDefaultLabel(desc); } EcalUncalibRecHitProducerGPU::EcalUncalibRecHitProducerGPU(const edm::ParameterSet& ps) @@ -150,7 +149,7 @@ EcalUncalibRecHitProducerGPU::EcalUncalibRecHitProducerGPU(const edm::ParameterS configParameters_.shouldRunTimingComputation = ps.getParameter("shouldRunTimingComputation"); // minimize kernel launch conf - auto threadsMinimize = ps.getParameter>("kernelMinimizeThreads"); + auto threadsMinimize = ps.getUntrackedParameter>("kernelMinimizeThreads"); configParameters_.kernelMinimizeThreads[0] = threadsMinimize[0]; configParameters_.kernelMinimizeThreads[1] = threadsMinimize[1]; configParameters_.kernelMinimizeThreads[2] = threadsMinimize[2]; diff --git a/RecoLocalCalo/EcalRecProducers/python/ecalMultiFitUncalibRecHitGPU_cfi.py b/RecoLocalCalo/EcalRecProducers/python/ecalMultiFitUncalibRecHitGPU_cfi.py deleted file mode 100644 index b27196ce34e2c..0000000000000 --- a/RecoLocalCalo/EcalRecProducers/python/ecalMultiFitUncalibRecHitGPU_cfi.py +++ /dev/null @@ -1,86 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from RecoLocalCalo.EcalRecProducers.ecalPulseShapeParameters_cff import * - -ecalMultiFitUncalibRecHitGPU = cms.EDProducer("EcalUncalibRecHitProducerGPU", - digisLabelEB = cms.untracked.InputTag("ecalDigis","ebDigis"), - digisLabelEE = cms.untracked.InputTag("ecalDigis","eeDigis"), - recHitsLabelEB = cms.untracked.string("EcalUncalibRecHitsEBGPU"), - recHitsLabelEE = cms.untracked.string("EcalUncalibRecHitsEEGPU"), -) - - -tmp = """ - algo = cms.string("EcalUncalibRecHitWorkerMultiFitGPUNew"), - algoPSet = cms.PSet( - # for multifit method - EcalPulseShapeParameters = cms.PSet( ecal_pulse_shape_parameters ), - activeBXs = cms.vint32(-5,-4,-3,-2,-1,0,1,2,3,4), - ampErrorCalculation = cms.bool(True), - useLumiInfoRunHeader = cms.bool(True), - - doPrefitEB = cms.bool(False), - doPrefitEE = cms.bool(False), - prefitMaxChiSqEB = cms.double(25.), - prefitMaxChiSqEE = cms.double(10.), - - dynamicPedestalsEB = cms.bool(False), - dynamicPedestalsEE = cms.bool(False), - mitigateBadSamplesEB = cms.bool(False), - mitigateBadSamplesEE = cms.bool(False), - gainSwitchUseMaxSampleEB = cms.bool(True), - gainSwitchUseMaxSampleEE = cms.bool(False), - selectiveBadSampleCriteriaEB = cms.bool(False), - selectiveBadSampleCriteriaEE = cms.bool(False), - simplifiedNoiseModelForGainSwitch = cms.bool(True), - addPedestalUncertaintyEB = cms.double(0.), - addPedestalUncertaintyEE = cms.double(0.), - - # decide which algorithm to be use to calculate the jitter - timealgo = cms.string("RatioMethod"), - - # for ratio method - EBtimeFitParameters = cms.vdouble(-2.015452e+00, 3.130702e+00, -1.234730e+01, 4.188921e+01, -8.283944e+01, 9.101147e+01, -5.035761e+01, 1.105621e+01), - EEtimeFitParameters = cms.vdouble(-2.390548e+00, 3.553628e+00, -1.762341e+01, 6.767538e+01, -1.332130e+02, 1.407432e+02, -7.541106e+01, 1.620277e+01), - EBamplitudeFitParameters = cms.vdouble(1.138,1.652), - EEamplitudeFitParameters = cms.vdouble(1.890,1.400), - EBtimeFitLimits_Lower = cms.double(0.2), - EBtimeFitLimits_Upper = cms.double(1.4), - EEtimeFitLimits_Lower = cms.double(0.2), - EEtimeFitLimits_Upper = cms.double(1.4), - # for time error - EBtimeConstantTerm= cms.double(.6), - EEtimeConstantTerm= cms.double(1.0), - - # for kOutOfTime flag - EBtimeNconst = cms.double(28.5), - EEtimeNconst = cms.double(31.8), - outOfTimeThresholdGain12pEB = cms.double(5), # times estimated precision - outOfTimeThresholdGain12mEB = cms.double(5), # times estimated precision - outOfTimeThresholdGain61pEB = cms.double(5), # times estimated precision - outOfTimeThresholdGain61mEB = cms.double(5), # times estimated precision - outOfTimeThresholdGain12pEE = cms.double(1000), # times estimated precision - outOfTimeThresholdGain12mEE = cms.double(1000), # times estimated precision - outOfTimeThresholdGain61pEE = cms.double(1000), # times estimated precision - outOfTimeThresholdGain61mEE = cms.double(1000), # times estimated precision - amplitudeThresholdEB = cms.double(10), - amplitudeThresholdEE = cms.double(10), - - ebSpikeThreshold = cms.double(1.042), - - # these are now taken from DB. Here the MC parameters for backward compatibility - ebPulseShape = cms.vdouble( 5.2e-05,-5.26e-05 , 6.66e-05, 0.1168, 0.7575, 1., 0.8876, 0.6732, 0.4741, 0.3194 ), - eePulseShape = cms.vdouble( 5.2e-05,-5.26e-05 , 6.66e-05, 0.1168, 0.7575, 1., 0.8876, 0.6732, 0.4741, 0.3194 ), - - # for kPoorReco flag - kPoorRecoFlagEB = cms.bool(True), - kPoorRecoFlagEE = cms.bool(False), - chi2ThreshEB_ = cms.double(65.0), - chi2ThreshEE_ = cms.double(50.0), - - # threads/blocks config - threads = cms.vint32(256, 1, 1), - runV1 = cms.bool(True), - ) -) -""" diff --git a/RecoLocalCalo/EcalRecProducers/python/ecalMultiFitUncalibRecHit_cff.py b/RecoLocalCalo/EcalRecProducers/python/ecalMultiFitUncalibRecHit_cff.py index aa7c818452195..72a3efaae38ba 100644 --- a/RecoLocalCalo/EcalRecProducers/python/ecalMultiFitUncalibRecHit_cff.py +++ b/RecoLocalCalo/EcalRecProducers/python/ecalMultiFitUncalibRecHit_cff.py @@ -19,8 +19,8 @@ # ECAL multifit running on GPU from RecoLocalCalo.EcalRecProducers.ecalUncalibRecHitProducerGPU_cfi import ecalUncalibRecHitProducerGPU as _ecalUncalibRecHitProducerGPU ecalMultiFitUncalibRecHitGPU = _ecalUncalibRecHitProducerGPU.clone( - digisLabelEB = cms.InputTag('ecalDigisGPU', 'ebDigisGPU'), - digisLabelEE = cms.InputTag('ecalDigisGPU', 'eeDigisGPU'), + digisLabelEB = cms.InputTag('ecalDigisGPU', 'ebDigis'), + digisLabelEE = cms.InputTag('ecalDigisGPU', 'eeDigis'), ) # copy the uncalibrated rechits from GPU to CPU