diff --git a/Configuration/ProcessModifiers/python/ecal_component_cff.py b/Configuration/ProcessModifiers/python/ecal_component_cff.py new file mode 100644 index 0000000000000..05892de5b17c5 --- /dev/null +++ b/Configuration/ProcessModifiers/python/ecal_component_cff.py @@ -0,0 +1,3 @@ +import FWCore.ParameterSet.Config as cms + +ecal_component = cms.Modifier() diff --git a/Configuration/ProcessModifiers/python/ecal_component_finely_sampled_waveforms_cff.py b/Configuration/ProcessModifiers/python/ecal_component_finely_sampled_waveforms_cff.py new file mode 100644 index 0000000000000..f2169751e785e --- /dev/null +++ b/Configuration/ProcessModifiers/python/ecal_component_finely_sampled_waveforms_cff.py @@ -0,0 +1,3 @@ +import FWCore.ParameterSet.Config as cms + +ecal_component_finely_sampled_waveforms = cms.Modifier() diff --git a/Configuration/PyReleaseValidation/README.md b/Configuration/PyReleaseValidation/README.md index f124270a5749a..e042b26062c20 100644 --- a/Configuration/PyReleaseValidation/README.md +++ b/Configuration/PyReleaseValidation/README.md @@ -66,6 +66,8 @@ The offsets currently in use are: * 0.31: Photon energy corrections with DRN architecture * 0.61: ECAL `phase2_ecal_devel` era, on CPU * 0.612: ECAL `phase2_ecal_devel` era, with automatic offload to GPU if available +* 0.631: ECAL component-method based digis +* 0.632: ECAL component-method based finely-sampled waveforms * 0.75: Phase-2 HLT * 0.91: Track DNN modifier * 0.97: Premixing stage1 diff --git a/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py b/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py index 7690fe281ffaf..ddbd565cc6dfa 100644 --- a/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py +++ b/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py @@ -1794,6 +1794,48 @@ def condition(self, fragment, stepList, key, hasHarvest): offset = 0.612, ) +# ECAL component +class UpgradeWorkflow_ECalComponent(UpgradeWorkflow): + def __init__(self, suffix, offset, ecalMod, + steps = [ + 'GenSim', + 'GenSimHLBeamSpot', + 'GenSimHLBeamSpot14', + 'GenSimHLBeamSpotHGCALCloseBy', + 'Digi', + 'DigiTrigger', + ], + PU = [ + 'GenSim', + 'GenSimHLBeamSpot', + 'GenSimHLBeamSpot14', + 'GenSimHLBeamSpotHGCALCloseBy', + 'Digi', + 'DigiTrigger', + ]): + super(UpgradeWorkflow_ECalComponent, self).__init__(steps, PU, suffix, offset) + self.__ecalMod = ecalMod + + def setup_(self, step, stepName, stepDict, k, properties): + if 'Sim' in step or 'Digi' in step: + if self.__ecalMod is not None: + stepDict[stepName][k] = merge([{'--procModifiers':self.__ecalMod},stepDict[step][k]]) + + def condition(self, fragment, stepList, key, hasHarvest): + return ('2021' in key or '2023' in key or '2026' in key) + +upgradeWFs['ECALComponent'] = UpgradeWorkflow_ECalComponent( + suffix = '_ecalComponent', + offset = 0.631, + ecalMod = 'ecal_component', +) + +upgradeWFs['ECALComponentFSW'] = UpgradeWorkflow_ECalComponent( + suffix = '_ecalComponentFSW', + offset = 0.632, + ecalMod = 'ecal_component_finely_sampled_waveforms', +) + class UpgradeWorkflow_0T(UpgradeWorkflow): def setup_(self, step, stepName, stepDict, k, properties): myGT=stepDict[step][k]['--conditions'] diff --git a/SimCalorimetry/EcalSimProducers/python/componentDigiParameters_cff.py b/SimCalorimetry/EcalSimProducers/python/componentDigiParameters_cff.py index c0cc379c4542e..8518c3d98409e 100644 --- a/SimCalorimetry/EcalSimProducers/python/componentDigiParameters_cff.py +++ b/SimCalorimetry/EcalSimProducers/python/componentDigiParameters_cff.py @@ -5,6 +5,9 @@ componentTimeTag = cms.string("Component"), componentSeparateDigi = cms.bool(False), componentAddToBarrel = cms.bool(False), - componentTimePhase = cms.double(0.), - + componentTimePhase = cms.double(0.) ) + +from Configuration.ProcessModifiers.ecal_component_cff import ecal_component +from Configuration.ProcessModifiers.ecal_component_finely_sampled_waveforms_cff import ecal_component_finely_sampled_waveforms +(ecal_component | ecal_component_finely_sampled_waveforms).toModify(component_digi_parameters,componentSeparateDigi=True) diff --git a/SimCalorimetry/EcalSimProducers/python/ecalTimeDigiParameters_cff.py b/SimCalorimetry/EcalSimProducers/python/ecalTimeDigiParameters_cff.py index 9413074d206b8..b7d36145292fc 100644 --- a/SimCalorimetry/EcalSimProducers/python/ecalTimeDigiParameters_cff.py +++ b/SimCalorimetry/EcalSimProducers/python/ecalTimeDigiParameters_cff.py @@ -8,4 +8,7 @@ timeLayerBarrel = cms.int32(7), timeLayerEndcap = cms.int32(3), componentWaveform = cms.bool(False) - ) +) + +from Configuration.ProcessModifiers.ecal_component_finely_sampled_waveforms_cff import ecal_component_finely_sampled_waveforms +(ecal_component_finely_sampled_waveforms).toModify(ecal_time_digi_parameters,componentWaveform=True) diff --git a/SimG4Core/Application/python/g4SimHits_cfi.py b/SimG4Core/Application/python/g4SimHits_cfi.py index 63079a0bff09d..23f0028650fd9 100644 --- a/SimG4Core/Application/python/g4SimHits_cfi.py +++ b/SimG4Core/Application/python/g4SimHits_cfi.py @@ -679,6 +679,13 @@ TimeSliceUnit = 0.001 ) ) +## +## For ECAL component study +## +from Configuration.ProcessModifiers.ecal_component_cff import ecal_component +from Configuration.ProcessModifiers.ecal_component_finely_sampled_waveforms_cff import ecal_component_finely_sampled_waveforms +(ecal_component | ecal_component_finely_sampled_waveforms).toModify(g4SimHits,ECalSD = dict(StoreLayerTimeSim = True, SlopeLightYield = 0.0)) + ## ## Change CALO Thresholds ##