diff --git a/Configuration/Eras/python/Era_Run3_2021_cff.py b/Configuration/Eras/python/Era_Run3_2021_cff.py new file mode 100644 index 0000000000000..30c36bd29dd4f --- /dev/null +++ b/Configuration/Eras/python/Era_Run3_2021_cff.py @@ -0,0 +1,21 @@ +import FWCore.ParameterSet.Config as cms + +from Configuration.Eras.Era_Run2_2018_cff import Run2_2018 +from Configuration.Eras.Modifier_run3_common_cff import run3_common +from Configuration.Eras.Modifier_run3_GEM_cff import run3_GEM +from Configuration.Eras.Modifier_run3_HB_cff import run3_HB +from Configuration.Eras.Modifier_run3_HFSL_cff import run3_HFSL +from Configuration.Eras.Modifier_run2_GEM_2017_cff import run2_GEM_2017 +from Configuration.Eras.Modifier_stage2L1Trigger_2021_cff import stage2L1Trigger_2021 +from Configuration.Eras.Modifier_ctpps_2018_cff import ctpps_2018 +from Configuration.Eras.Modifier_ctpps_2021_cff import ctpps_2021 +from Configuration.ProcessModifiers.dd4hep_cff import dd4hep +from Configuration.Eras.Modifier_run3_egamma_cff import run3_egamma +from Configuration.Eras.Modifier_run2_egamma_2018_cff import run2_egamma_2018 +from Configuration.Eras.Modifier_run2_HLTconditions_2018_cff import run2_HLTconditions_2018 +from Configuration.Eras.Modifier_run3_RPC_cff import run3_RPC +from Configuration.Eras.Modifier_run3_ecal_cff import run3_ecal + +Run3_2021 = cms.ModifierChain(Run2_2018.copyAndExclude([run2_GEM_2017, ctpps_2018, run2_egamma_2018, run2_HLTconditions_2018]), + run3_common, run3_egamma, run3_GEM, run3_HB, run3_HFSL, stage2L1Trigger_2021, ctpps_2021, dd4hep, run3_RPC, run3_ecal) + diff --git a/Configuration/Eras/python/Modifier_ctpps_2021_cff.py b/Configuration/Eras/python/Modifier_ctpps_2021_cff.py new file mode 100644 index 0000000000000..15c9d30d3a7e4 --- /dev/null +++ b/Configuration/Eras/python/Modifier_ctpps_2021_cff.py @@ -0,0 +1,3 @@ +import FWCore.ParameterSet.Config as cms + +ctpps_2021 = cms.Modifier() diff --git a/Configuration/StandardSequences/python/Eras.py b/Configuration/StandardSequences/python/Eras.py index 74d2b6bdb424d..b1e6688ae6e00 100644 --- a/Configuration/StandardSequences/python/Eras.py +++ b/Configuration/StandardSequences/python/Eras.py @@ -34,6 +34,7 @@ def __init__(self): 'Run2_2018_highBetaStar', 'Run2_2018_noMkFit', 'Run3', + 'Run3_2021', 'Run3_2023', 'Run3_noMkFit', 'Run3_pp_on_PbPb', @@ -79,7 +80,7 @@ def __init__(self): 'phase2_trigger', 'phase2_squarePixels', 'phase2_3DPixels', 'trackingLowPU', 'trackingPhase1', - 'ctpps', 'ctpps_2016', 'ctpps_2017', 'ctpps_2018', 'ctpps_2022', + 'ctpps', 'ctpps_2016', 'ctpps_2017', 'ctpps_2018', 'ctpps_2022', 'ctpps_2021', 'trackingPhase2PU140','highBetaStar_2018', 'tracker_apv_vfp30_2016', 'pf_badHcalMitigationOff', 'run2_miniAOD_80XLegacy','run2_miniAOD_94XFall17', diff --git a/EventFilter/CTPPSRawToDigi/python/ctppsDiamondRawToDigi_cfi.py b/EventFilter/CTPPSRawToDigi/python/ctppsDiamondRawToDigi_cfi.py index a90f4de12f213..73c87307b4122 100644 --- a/EventFilter/CTPPSRawToDigi/python/ctppsDiamondRawToDigi_cfi.py +++ b/EventFilter/CTPPSRawToDigi/python/ctppsDiamondRawToDigi_cfi.py @@ -3,6 +3,7 @@ from Configuration.Eras.Modifier_ctpps_2016_cff import ctpps_2016 from Configuration.Eras.Modifier_ctpps_2017_cff import ctpps_2017 from Configuration.Eras.Modifier_ctpps_2018_cff import ctpps_2018 +from Configuration.Eras.Modifier_ctpps_2021_cff import ctpps_2021 from Configuration.Eras.Modifier_ctpps_2022_cff import ctpps_2022 from EventFilter.CTPPSRawToDigi.totemVFATRawToDigi_cfi import totemVFATRawToDigi @@ -19,4 +20,4 @@ # for Run 2 backward compatibility # empty list of fedIds means that the ids will be read from DataFormats/FEDRawData/interface/FEDNumbering.h -(ctpps_2016 | ctpps_2017 | ctpps_2018).toModify(ctppsDiamondRawToDigi, fedIds = [] ) \ No newline at end of file +(ctpps_2016 | ctpps_2017 | ctpps_2018).toModify(ctppsDiamondRawToDigi, fedIds = [] ) diff --git a/EventFilter/CTPPSRawToDigi/python/ctppsDigiToRaw_cff.py b/EventFilter/CTPPSRawToDigi/python/ctppsDigiToRaw_cff.py index 51fd91185b809..8e0dc5f70d8e8 100644 --- a/EventFilter/CTPPSRawToDigi/python/ctppsDigiToRaw_cff.py +++ b/EventFilter/CTPPSRawToDigi/python/ctppsDigiToRaw_cff.py @@ -16,5 +16,8 @@ #from Configuration.Eras.Modifier_ctpps_2018_cff import ctpps_2018 #ctpps_2018.toReplaceWith(ctppsRawData, cms.Task(ctppsPixelRawData)) +from Configuration.Eras.Modifier_ctpps_2021_cff import ctpps_2021 +ctpps_2021.toReplaceWith(ctppsRawData, cms.Task(ctppsPixelRawData)) + from Configuration.Eras.Modifier_ctpps_2022_cff import ctpps_2022 ctpps_2022.toReplaceWith(ctppsRawData, cms.Task(ctppsPixelRawData)) diff --git a/EventFilter/RawDataCollector/python/rawDataCollector_cfi.py b/EventFilter/RawDataCollector/python/rawDataCollector_cfi.py index 1399733403726..9325be3933e26 100644 --- a/EventFilter/RawDataCollector/python/rawDataCollector_cfi.py +++ b/EventFilter/RawDataCollector/python/rawDataCollector_cfi.py @@ -39,6 +39,10 @@ from Configuration.Eras.Modifier_ctpps_2022_cff import ctpps_2022 ctpps_2022.toModify(rawDataCollector.RawCollectionList, func = lambda list: list.extend([cms.InputTag("ctppsTotemRawData"),cms.InputTag("ctppsPixelRawData")]) ) +from Configuration.Eras.Modifier_ctpps_2021_cff import ctpps_2021 +ctpps_2021.toModify(rawDataCollector.RawCollectionList, func = lambda list: list.extend([cms.InputTag("ctppsTotemRawData"),cms.InputTag("ctppsPixelRawData")]) ) + + # Phase-2 Tracker from Configuration.Eras.Modifier_phase2_tracker_cff import phase2_tracker phase2_tracker.toModify( rawDataCollector.RawCollectionList, func = lambda list: list.remove(cms.InputTag("SiStripDigiToRaw")) ) diff --git a/SimGeneral/MixingModule/python/mixObjects_cfi.py b/SimGeneral/MixingModule/python/mixObjects_cfi.py index 8644ee7a254fd..727090a9434af 100644 --- a/SimGeneral/MixingModule/python/mixObjects_cfi.py +++ b/SimGeneral/MixingModule/python/mixObjects_cfi.py @@ -313,3 +313,12 @@ crossingFrames = theMixObjects.mixSH.crossingFrames + [ 'TotemHitsRP' , 'CTPPSPixelHits'] ) ) + +from Configuration.Eras.Modifier_ctpps_2021_cff import ctpps_2021 +ctpps_2021.toModify( theMixObjects, + mixSH = dict( + input = theMixObjects.mixSH.input + [ cms.InputTag("g4SimHits","TotemHitsRP"),cms.InputTag("g4SimHits","CTPPSPixelHits") ], + subdets = theMixObjects.mixSH.subdets + [ 'TotemHitsRP', 'CTPPSPixelHits' ], + crossingFrames = theMixObjects.mixSH.crossingFrames + [ 'TotemHitsRP' , 'CTPPSPixelHits'] + ) +) diff --git a/SimPPS/Configuration/python/GenPPS_cff.py b/SimPPS/Configuration/python/GenPPS_cff.py index c0626c2ada206..5a6bef3bbc0ea 100644 --- a/SimPPS/Configuration/python/GenPPS_cff.py +++ b/SimPPS/Configuration/python/GenPPS_cff.py @@ -15,5 +15,9 @@ #from Configuration.Eras.Modifier_ctpps_2018_cff import ctpps_2018 #ctpps_2018.toReplaceWith(PPSTransportTask, cms.Task(LHCTransport)) +from Configuration.Eras.Modifier_ctpps_2021_cff import ctpps_2021 +ctpps_2021.toReplaceWith(PPSTransportTask, cms.Task(LHCTransport)) + from Configuration.Eras.Modifier_ctpps_2022_cff import ctpps_2022 ctpps_2022.toReplaceWith(PPSTransportTask, cms.Task(LHCTransport)) + diff --git a/SimPPS/Configuration/python/SimPPS_cff.py b/SimPPS/Configuration/python/SimPPS_cff.py index 4ee9d7fd4f806..f0cc0ef3f31b8 100644 --- a/SimPPS/Configuration/python/SimPPS_cff.py +++ b/SimPPS/Configuration/python/SimPPS_cff.py @@ -23,5 +23,8 @@ #from Configuration.Eras.Modifier_ctpps_2018_cff import ctpps_2018 #ctpps_2018.toReplaceWith(ctppsDigiTask, RPixDetDigitizerTask) +from Configuration.Eras.Modifier_ctpps_2021_cff import ctpps_2021 +ctpps_2021.toReplaceWith(ctppsDigiTask, RPixDetDigitizerTask) + from Configuration.Eras.Modifier_ctpps_2022_cff import ctpps_2022 ctpps_2022.toReplaceWith(ctppsDigiTask, RPixDetDigitizerTask) diff --git a/SimPPS/Configuration/python/directSimPPS_cff.py b/SimPPS/Configuration/python/directSimPPS_cff.py index 893df712c5424..bf6d4f0c968f1 100644 --- a/SimPPS/Configuration/python/directSimPPS_cff.py +++ b/SimPPS/Configuration/python/directSimPPS_cff.py @@ -47,6 +47,7 @@ def _modify2022(process): if hasattr(process, 'ctppsGeometryESModule'): # replaced by the composite ESSource delattr(process, 'ctppsGeometryESModule') + modifyConfigurationStandardSequencesFor2016_ = eras.ctpps_2016.makeProcessModifier(_modify2016) modifyConfigurationStandardSequencesFor2017_ = eras.ctpps_2017.makeProcessModifier(_modify2017) diff --git a/SimPPS/DirectSimProducer/python/profiles_2021_cff.py b/SimPPS/DirectSimProducer/python/profiles_2021_cff.py new file mode 100644 index 0000000000000..d916bea2f1724 --- /dev/null +++ b/SimPPS/DirectSimProducer/python/profiles_2021_cff.py @@ -0,0 +1,31 @@ +import FWCore.ParameterSet.Config as cms +from SimPPS.DirectSimProducer.profile_base_cff import profile_base as _base +from CalibPPS.ESProducers.ctppsOpticalFunctions_non_DB_cff import optics_2021 as _optics + +# base profile settings for 2021 +_base_2021 = _base.clone( + ctppsOpticalFunctions = _base.ctppsOpticalFunctions.clone( + opticalFunctions = _optics.opticalFunctions, + scoringPlanes = _optics.scoringPlanes, + ), + ctppsDirectSimuData = _base.ctppsDirectSimuData.clone( + empiricalAperture45 = "1.e3*([xi] - 0.20)", + empiricalAperture56 = "1.e3*([xi] - 0.20)" + ) +) + +profile_2021_default = _base_2021.clone( + L_int = 1., + ctppsLHCInfo = _base_2021.ctppsLHCInfo.clone( + # NB: until a dedicated 2021 distributions are issued, it is OK to use 2021 ones here + xangleBetaStarHistogramObject = "2021/h2_betaStar_vs_xangle" + ), + ctppsRPAlignmentCorrectionsDataXML = _base_2021.ctppsRPAlignmentCorrectionsDataXML.clone( + MisalignedFiles = ["Validation/CTPPS/alignment/alignment_2021.xml"], + RealFiles = ["Validation/CTPPS/alignment/alignment_2021.xml"] + ), + ctppsDirectSimuData = _base_2021.ctppsDirectSimuData.clone( + timeResolutionDiamonds45 = "0.200", + timeResolutionDiamonds56 = "0.200" + ) +) diff --git a/SimPPS/DirectSimProducer/python/profiles_2022_cff.py b/SimPPS/DirectSimProducer/python/profiles_2022_cff.py index 05bbefd0d9587..8f482ed2d4cdb 100644 --- a/SimPPS/DirectSimProducer/python/profiles_2022_cff.py +++ b/SimPPS/DirectSimProducer/python/profiles_2022_cff.py @@ -1,6 +1,6 @@ import FWCore.ParameterSet.Config as cms from SimPPS.DirectSimProducer.profile_base_cff import profile_base as _base -from CalibPPS.ESProducers.ctppsOpticalFunctions_non_DB_cff import optics_2021 as _optics +from CalibPPS.ESProducers.ctppsOpticalFunctions_non_DB_cff import optics_2022 as _optics # base profile settings for 2022 _base_2022 = _base.clone( diff --git a/SimPPS/DirectSimProducer/python/simPPS2021_cfi.py b/SimPPS/DirectSimProducer/python/simPPS2021_cfi.py new file mode 100644 index 0000000000000..76335a30dac68 --- /dev/null +++ b/SimPPS/DirectSimProducer/python/simPPS2021_cfi.py @@ -0,0 +1,20 @@ +import FWCore.ParameterSet.Config as cms +from CalibPPS.ESProducers.ctppsCompositeESSource_cfi import ctppsCompositeESSource as _esComp +from CalibPPS.ESProducers.ppsAssociationCuts_non_DB_cff import use_single_infinite_iov_entry, p2021 +from CalibPPS.ESProducers.ppsAssociationCuts_non_DB_cff import ppsAssociationCutsESSource as _esAssCuts +from Geometry.VeryForwardGeometry.commons_cff import cloneGeometry +from SimPPS.DirectSimProducer.profiles_2021_cff import profile_2021_default +from SimPPS.DirectSimProducer.simPPS2017_cfi import rpIds + +ppsAssociationCutsESSource = _esAssCuts.clone() +use_single_infinite_iov_entry(ppsAssociationCutsESSource, p2021) +XMLIdealGeometryESSource_CTPPS, _ctppsGeometryESModule = cloneGeometry('Geometry.VeryForwardGeometry.geometryRPFromDD_2021_cfi') +# not cloning the ctppsGeometryESModule, as it is replaced by the composite ES source + +ctppsCompositeESSource = _esComp.clone( + generateEveryNEvents = 100, + periods = [profile_2021_default], + # geometry (using 2017 here is OK) + compactViewTag = _ctppsGeometryESModule.compactViewTag, + isRun2 = _ctppsGeometryESModule.isRun2 +) diff --git a/SimTransport/PPSProtonTransport/python/HectorTransport_cfi.py b/SimTransport/PPSProtonTransport/python/HectorTransport_cfi.py index 04e06c4e61f45..a5216f789ef61 100644 --- a/SimTransport/PPSProtonTransport/python/HectorTransport_cfi.py +++ b/SimTransport/PPSProtonTransport/python/HectorTransport_cfi.py @@ -168,3 +168,8 @@ baseHectorParameters, Nominal_RunIII ) + +hector_2022 = cms.PSet( + baseHectorParameters, + Nominal_RunIII +) diff --git a/SimTransport/PPSProtonTransport/python/OpticalFunctionsConfig_cfi.py b/SimTransport/PPSProtonTransport/python/OpticalFunctionsConfig_cfi.py index 67984cd3e18cb..2d3723839cdfc 100644 --- a/SimTransport/PPSProtonTransport/python/OpticalFunctionsConfig_cfi.py +++ b/SimTransport/PPSProtonTransport/python/OpticalFunctionsConfig_cfi.py @@ -147,6 +147,29 @@ ) ) +_config_2022 = cms.PSet( + opticalFunctionConfig = cms.PSet( + es_source = cms.PSet( + validityRange = cms.EventRange("0:min - 999999:max"), + opticalFunctions = cms.VPSet( + cms.PSet( xangle = cms.double(144.974), fileName = cms.FileInPath("CalibPPS/ESProducers/data/optical_functions/2022/version_pre1/144.974urad.root") ), + cms.PSet( xangle = cms.double(160.000), fileName = cms.FileInPath("CalibPPS/ESProducers/data/optical_functions/2022/version_pre1/160.000urad.root") ) + ) + ), + defaultCrossingAngle = cms.double(0.0) + ), + optics_parameters = cms.PSet( + empiricalAperture45_xi0_int = cms.double(0.079), + empiricalAperture45_xi0_slp = cms.double(4.211E-04), + empiricalAperture45_a_int = cms.double(42.8), + empiricalAperture45_a_slp = cms.double(0.669), + empiricalAperture56_xi0_int = cms.double(0.074), + empiricalAperture56_xi0_slp = cms.double(6.604E-04), + empiricalAperture56_a_int = cms.double(-22.7), + empiricalAperture56_a_slp = cms.double(1.600) + ) +) + _opticalfunctionsTransportSetup_2016_preTS2 =cms.PSet( BeamEnergy=cms.double(6500), opticalFunctionConfig = _config_2016_preTS2.opticalFunctionConfig, @@ -184,6 +207,13 @@ BeamEnergy=cms.double(7000) ) +opticalfunctionsTransportSetup_2022 =cms.PSet( + _baseOpticalFunctionsParameters, + _config_2022.opticalFunctionConfig, + _config_2022.optics_parameters, + BeamEnergy=cms.double(6800) +) + # Default setup opticalfunctionsTransportSetup_2016 = _opticalfunctionsTransportSetup_2016_preTS2.clone() opticalfunctionsTransportSetup_2017 = _opticalfunctionsTransportSetup_2017_preTS2.clone() diff --git a/SimTransport/PPSProtonTransport/python/PPSTransport_cff.py b/SimTransport/PPSProtonTransport/python/PPSTransport_cff.py index bdf7a80564d8f..9c4e796877dff 100644 --- a/SimTransport/PPSProtonTransport/python/PPSTransport_cff.py +++ b/SimTransport/PPSProtonTransport/python/PPSTransport_cff.py @@ -8,10 +8,12 @@ from SimTransport.PPSProtonTransport.HectorTransport_cfi import hector_2016 as _hector_2017 from SimTransport.PPSProtonTransport.HectorTransport_cfi import hector_2016 as _hector_2018 from SimTransport.PPSProtonTransport.HectorTransport_cfi import hector_2021 as _hector_2021 +from SimTransport.PPSProtonTransport.HectorTransport_cfi import hector_2022 as _hector_2022 from SimTransport.PPSProtonTransport.OpticalFunctionsConfig_cfi import opticalfunctionsTransportSetup_2016 as _opticalfunctionsTransportSetup_2016 from SimTransport.PPSProtonTransport.OpticalFunctionsConfig_cfi import opticalfunctionsTransportSetup_2017 as _opticalfunctionsTransportSetup_2017 from SimTransport.PPSProtonTransport.OpticalFunctionsConfig_cfi import opticalfunctionsTransportSetup_2018 as _opticalfunctionsTransportSetup_2018 from SimTransport.PPSProtonTransport.OpticalFunctionsConfig_cfi import opticalfunctionsTransportSetup_2021 as _opticalfunctionsTransportSetup_2021 +from SimTransport.PPSProtonTransport.OpticalFunctionsConfig_cfi import opticalfunctionsTransportSetup_2022 as _opticalfunctionsTransportSetup_2022 _LHCTransportPSet = cms.PSet() @@ -27,8 +29,13 @@ ctpps_2018.toReplaceWith(_LHCTransportPSet,_hector_2018) #ctpps_2018.toReplaceWith(_LHCTransportPSet,_opticalfunctionsTransportSetup_2018) -from Configuration.Eras.Modifier_ctpps_2022_cff import ctpps_2022 +from Configuration.Eras.Modifier_ctpps_2021_cff import ctpps_2021 #ctpps_2021.toReplaceWith(_LHCTransportPSet, _hector_2021) # there is no LHCInfo tag for Run3 yet, force to use a nonDB propagation -ctpps_2022.toReplaceWith(_LHCTransportPSet, _opticalfunctionsTransportSetup_2021) # there is no LHCInfo tag for Run3 yet, force to use a nonDB propagation +ctpps_2021.toReplaceWith(_LHCTransportPSet, _opticalfunctionsTransportSetup_2021) # there is no LHCInfo tag for Run3 yet, force to use a nonDB propagation + +from Configuration.Eras.Modifier_ctpps_2022_cff import ctpps_2022 +#ctpps_2022.toReplaceWith(_LHCTransportPSet, _hector_2022) # there is no LHCInfo tag for Run3 yet, force to use a nonDB propagation +ctpps_2022.toReplaceWith(_LHCTransportPSet, _opticalfunctionsTransportSetup_2022) # there is no LHCInfo tag for Run3 yet, force to use a nonDB propagation + LHCTransport = cms.EDProducer("PPSSimTrackProducer",_commonParameters,_LHCTransportPSet)