1 import FWCore.ParameterSet.Config
as cms
21 """Customise the HLT to run on Run 2 data/MC using the old readout for the HCAL barel""" 25 producer.processQIE8 =
True 29 producer.HBThreshold1 = 0.7
30 producer.HBThreshold2 = 0.7
31 producer.HBThreshold = 0.7
36 logWeightDenominatorHCAL2018 = cms.VPSet(
38 depths = cms.vint32(1, 2, 3, 4),
39 detector = cms.string(
'HCAL_BARREL1'),
40 logWeightDenominator = _thresholdsHB
43 depths = cms.vint32(1, 2, 3, 4, 5, 6, 7),
44 detector = cms.string(
'HCAL_ENDCAP'),
45 logWeightDenominator = _thresholdsHEphase1
50 if producer.producers[0].name.value() ==
'PFHBHERecHitCreator':
51 producer.producers[0].qualityTests[0].cuts[0].threshold = _thresholdsHB
54 if producer.seedFinder.thresholdsByDetector[0].detector.value() ==
'HCAL_BARREL1':
55 producer.seedFinder.thresholdsByDetector[0].seedingThreshold = _seedingThresholdsHB
56 producer.initialClusteringStep.thresholdsByDetector[0].gatheringThreshold = _thresholdsHB
57 producer.pfClusterBuilder.recHitEnergyNorms[0].recHitEnergyNorm = _thresholdsHB
58 producer.pfClusterBuilder.positionCalc.logWeightDenominatorByDetector = logWeightDenominatorHCAL2018
59 producer.pfClusterBuilder.allCellsPositionCalc.logWeightDenominatorByDetector = logWeightDenominatorHCAL2018
62 producer.pfClusterBuilder.allCellsPositionCalc.logWeightDenominatorByDetector = logWeightDenominatorHCAL2018
68 """Adapt the HLT to run the legacy DT unpacking 69 for pre2018 data/MC workflows as the default""" 71 if hasattr(process,
'hltMuonDTDigis'):
72 process.hltMuonDTDigis = cms.EDProducer(
"DTUnpackingModule",
73 useStandardFEDid = cms.bool(
True ),
74 maxFEDid = cms.untracked.int32( 779 ),
75 inputLabel = cms.InputTag(
"rawDataCollector" ),
76 minFEDid = cms.untracked.int32( 770 ),
77 dataType = cms.string(
"DDU" ),
78 readOutParameters = cms.PSet(
79 localDAQ = cms.untracked.bool(
False ),
80 debug = cms.untracked.bool(
False ),
81 rosParameters = cms.PSet(
82 localDAQ = cms.untracked.bool(
False ),
83 debug = cms.untracked.bool(
False ),
84 writeSC = cms.untracked.bool(
True ),
85 readDDUIDfromDDU = cms.untracked.bool(
True ),
86 readingDDU = cms.untracked.bool(
True ),
87 performDataIntegrityMonitor = cms.untracked.bool(
False )
89 performDataIntegrityMonitor = cms.untracked.bool(
False )
91 dqmOnly = cms.bool(
False )
97 """Customise the HLT to run on Run 2 data/MC using the old definition of the pixel calibrations 99 Up to 11.0.x, the pixel calibarations were fully specified in the configuration: 100 VCaltoElectronGain = 47 101 VCaltoElectronGain_L1 = 50 102 VCaltoElectronOffset = -60 103 VCaltoElectronOffset_L1 = -670 105 Starting with 11.1.x, the calibrations for Run 3 were moved to the conditions, leaving in the configuration only: 106 VCaltoElectronGain = 1 107 VCaltoElectronGain_L1 = 1 108 VCaltoElectronOffset = 0 109 VCaltoElectronOffset_L1 = 0 111 Since the conditions for Run 2 have not been updated to the new scheme, the HLT configuration needs to be reverted. 115 producer.VCaltoElectronGain = 47
116 producer.VCaltoElectronGain_L1 = 50
117 producer.VCaltoElectronOffset = -60
118 producer.VCaltoElectronOffset_L1 = -670
120 for pluginType
in [
"SiPixelRawToClusterCUDA",
"SiPixelRawToClusterCUDAPhase1",
"SiPixelRawToClusterCUDAHIonPhase1"]:
122 producer.VCaltoElectronGain = 47
123 producer.VCaltoElectronGain_L1 = 50
124 producer.VCaltoElectronOffset = -60
125 producer.VCaltoElectronOffset_L1 = -670
132 if hasattr(producer,
"ClusterThreshold_L1"):
133 producer.ClusterThreshold_L1 = 2000
134 for pluginType
in [
"SiPixelRawToClusterCUDA",
"SiPixelRawToClusterCUDAPhase1",
"SiPixelRawToClusterCUDAHIonPhase1"]:
136 if hasattr(producer,
"clusterThreshold_layer1"):
137 producer.clusterThreshold_layer1 = 2000
139 if hasattr(producer,
"clusterThreshold_layer1"):
140 producer.clusterThreshold_layer1 = 2000
154 if hasattr(prod,
'regressionConfig'):
155 prod.regressionConfig.regTrainedWithPS = cms.bool(
False)
160 """Customisation for the HLT BeamSpot when running on Run-2 (2018) data: 161 - For Run-2 data, disable the use of the BS transient record, in order to read the BS record from SCAL. 162 - Additionally, remove all instances of OnlineBeamSpotESProducer (not needed if useTransientRecord=False). 163 - See CMSHLT-2271 and CMSHLT-2300 for further details. 166 prod.useTransientRecord =
False 167 onlineBeamSpotESPLabels = [prod.label_()
for prod
in esproducers_by_type(process,
'OnlineBeamSpotESProducer')]
168 for espLabel
in onlineBeamSpotESPLabels:
169 delattr(process, espLabel)
172 if not hasattr(process,
'hltScalersRawToDigi')
and hasattr(process,
'HLTBeamSpot')
and isinstance(process.HLTBeamSpot, cms.Sequence):
174 if hasattr(process,
'hltOnlineBeamSpot'):
175 process.hltOnlineBeamSpot.src =
'hltScalersRawToDigi' 177 if hasattr(process,
'hltPixelTrackerHVOn'):
178 process.hltPixelTrackerHVOn.DcsStatusLabel =
'hltScalersRawToDigi' 180 if hasattr(process,
'hltStripTrackerHVOn'):
181 process.hltStripTrackerHVOn.DcsStatusLabel =
'hltScalersRawToDigi' 183 process.hltScalersRawToDigi = cms.EDProducer(
"ScalersRawToDigi",
184 scalersInputTag = cms.InputTag(
"rawDataCollector" )
187 process.HLTBeamSpot.insert(0, process.hltScalersRawToDigi)
192 """Customisation to apply the ECAL Run-2 Ultra-Legacy calibrations (CMSHLT-2339)""" 193 if hasattr(process,
'GlobalTag'):
194 if not hasattr(process.GlobalTag,
'toGet'):
195 process.GlobalTag.toGet = cms.VPSet()
196 process.GlobalTag.toGet += [
198 record = cms.string(
'EcalLaserAlphasRcd'),
199 tag = cms.string(
'EcalLaserAlphas_UL_Run1_Run2_2018_lastIOV_movedTo1')
202 record = cms.string(
'EcalIntercalibConstantsRcd'),
203 tag = cms.string(
'EcalIntercalibConstants_UL_Run1_Run2_2018_lastIOV_movedTo1')
207 print(
'# customiseECALCalibrationsFor2018Input -- the process.GlobalTag ESSource does not exist: no customisation applied.')
212 """Customise the HLT to run on Run 2 data/MC""" 232 prod.timeThreshold =
int(1e6)
239 if hasattr(process,
'GlobalTag'):
241 process.GlobalTag.ReconnectEachRun = cms.untracked.bool(
False)
242 process.GlobalTag.RefreshEachRun = cms.untracked.bool(
False)
244 if hasattr(process.GlobalTag,
'toGet'):
246 process.GlobalTag.toGet = [
247 pset
for pset
in process.GlobalTag.toGet
248 if set(pset.parameterNames_()) != {
'record',
'refreshTime'}
254 filt_types = [
"HLTEgammaGenericFilter",
"HLTEgammaGenericQuadraticEtaFilter",
"HLTEgammaGenericQuadraticFilter",
"HLTElectronGenericFilter"]
255 absAbleVar = [
"DEta",
"deta",
"DetaSeed",
"Dphi",
"OneOESuperMinusOneOP",
"OneOESeedMinusOneOP"]
256 for filt_type
in filt_types:
258 if filt.varTag.productInstanceLabel
in absAbleVar:
259 if (filt.useAbs != cms.bool(
True)):
260 print(
'# TSG WARNING: check value of parameter "useAbs" in',filt,
'(expect True but is False)!')
266 dqmPixelRecoPathName =
None 267 for pathName
in process.paths_():
268 if pathName.startswith(
'DQM_PixelReconstruction_v'):
269 dqmPixelRecoPathName = pathName
272 if dqmPixelRecoPathName ==
None:
279 SiPixelPhase1RawDataConfForCPU = copy.deepcopy(SiPixelPhase1RawDataConf)
280 for pset
in SiPixelPhase1RawDataConfForCPU:
281 pset.topFolderName =
"SiPixelHeterogeneous/PixelErrorsCPU" 283 process.hltPixelPhase1MonitorRawDataACPU = SiPixelPhase1RawDataAnalyzer.clone(
284 src =
"hltSiPixelDigiErrorsSerialSync",
285 histograms = SiPixelPhase1RawDataConfForCPU
289 SiPixelPhase1RawDataConfForGPU = copy.deepcopy(SiPixelPhase1RawDataConf)
290 for pset
in SiPixelPhase1RawDataConfForGPU:
291 pset.topFolderName =
"SiPixelHeterogeneous/PixelErrorsGPU" 293 process.hltPixelPhase1MonitorRawDataAGPU = SiPixelPhase1RawDataAnalyzer.clone(
294 src =
"hltSiPixelDigiErrors",
295 histograms = SiPixelPhase1RawDataConfForGPU
299 process.hltPixelDigiErrorsCompareGPUvsCPU = cms.EDProducer(
'SiPixelPhase1RawDataErrorComparator',
300 pixelErrorSrcCPU = cms.InputTag(
'hltSiPixelDigiErrorsSerialSync' ),
301 pixelErrorSrcGPU = cms.InputTag(
'hltSiPixelDigiErrors' ),
302 topFolderName = cms.string(
'SiPixelHeterogeneous/PixelErrorsCompareGPUvsCPU' )
306 process.hltPixelRecHitsSoACompareGPUvsCPU = cms.EDProducer(
'SiPixelPhase1CompareRecHits',
307 pixelHitsReferenceSoA = cms.InputTag(
'hltSiPixelRecHitsSoASerialSync'),
308 pixelHitsTargetSoA = cms.InputTag(
'hltSiPixelRecHitsSoA'),
309 topFolderName = cms.string(
'SiPixelHeterogeneous/PixelRecHitsCompareGPUvsCPU'),
310 minD2cut = cms.double(1.0e-4)
313 process.hltPixelTracksSoACompareGPUvsCPU = cms.EDProducer(
"SiPixelPhase1CompareTracks",
314 deltaR2cut = cms.double(0.04),
315 minQuality = cms.string(
'loose'),
316 pixelTrackReferenceSoA = cms.InputTag(
"hltPixelTracksSoASerialSync"),
317 pixelTrackTargetSoA = cms.InputTag(
"hltPixelTracksSoA"),
318 topFolderName = cms.string(
'SiPixelHeterogeneous/PixelTrackCompareGPUvsCPU'),
319 useQualityCut = cms.bool(
True)
322 process.hltPixelVertexSoACompareGPUvsCPU = cms.EDProducer(
"SiPixelCompareVertices",
323 beamSpotSrc = cms.InputTag(
"hltOnlineBeamSpot"),
324 dzCut = cms.double(1),
325 pixelVertexReferenceSoA = cms.InputTag(
"hltPixelVerticesSoASerialSync"),
326 pixelVertexTargetSoA = cms.InputTag(
"hltPixelVerticesSoA"),
327 topFolderName = cms.string(
'SiPixelHeterogeneous/PixelVertexCompareGPUvsCPU')
330 process.HLTDQMPixelReconstruction = cms.Sequence(
331 process.hltPixelPhase1MonitorRawDataACPU
332 + process.hltPixelPhase1MonitorRawDataAGPU
333 + process.hltPixelDigiErrorsCompareGPUvsCPU
334 + process.hltPixelRecHitsSoAMonitorCPU
335 + process.hltPixelRecHitsSoAMonitorGPU
336 + process.hltPixelRecHitsSoACompareGPUvsCPU
337 + process.hltPixelTracksSoAMonitorCPU
338 + process.hltPixelTracksSoAMonitorGPU
339 + process.hltPixelTracksSoACompareGPUvsCPU
340 + process.hltPixelVertexSoAMonitorCPU
341 + process.hltPixelVertexSoAMonitorGPU
342 + process.hltPixelVertexSoACompareGPUvsCPU
349 for modLabel
in [
'hltDoubleEle10Mass50PPOnAAFilter',
'hltDoubleEle15Mass50PPOnAAFilter']:
350 if hasattr(process, modLabel):
351 mod = getattr(process, modLabel)
352 mod.l1EGCand = cms.InputTag(
'hltEgammaCandidatesPPOnAA')
def producers_by_type(process, types)
def customisePixelL1ClusterThresholdForRun2Input(process)
def customizeHLTforCMSSW(process, menuType="GRun")
def filters_by_type(process, types)
def customiseECALCalibrationsFor2018Input(process)
def customizeHLTfor44746(process)
def customiseFor2017DtUnpacking(process)
def customiseForOffline(process)
def customizeHLTfor45302(process)
void print(TMatrixD &m, const char *label=nullptr, bool mathematicaFormat=false)
def customiseHCALFor2018Input(process)
def customiseCTPPSFor2018Input(process)
def customiseFor2018Input(process)
def customiseEGammaRecoFor2018Input(process)
def customiseBeamSpotFor2018Input(process)
def checkHLTfor43774(process)
def customisePixelGainForRun2Input(process)
def esproducers_by_type(process, types)